diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-05-22 12:19:01 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-05-22 12:19:01 -0400 |
commit | 5a03fca0374e2c9e13360ac184acb321096fb527 (patch) | |
tree | 86f4ebe0101dc794d4ae1348505dc3f67b576d6d | |
parent | 3ce8764b195ab3137b5ee96da7b3c1bede5a0c51 (diff) |
slot_machine nonmatching sub_81406E8
Register allocation differences
-rw-r--r-- | asm/slot_machine.s | 284 | ||||
-rw-r--r-- | data/slot_machine.s | 55 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/slot_machine.c | 423 |
4 files changed, 422 insertions, 341 deletions
diff --git a/asm/slot_machine.s b/asm/slot_machine.s index 62ff4a784..df42b5d5c 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -5,290 +5,6 @@ .text - thumb_func_start sub_81406E8 -sub_81406E8: @ 81406E8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r7, r0, 0 - adds r5, r1, 0 - mov r8, r2 - ldr r0, _081407C8 @ =sSlotMachineState - ldr r2, [r0] - movs r1, 0x32 - ldrsh r0, [r2, r1] - lsls r0, 1 - adds r1, r2, 0 - adds r1, 0x20 - adds r0, r1, r0 - movs r3, 0 - ldrsh r0, [r0, r3] - adds r6, r0, 0x1 - movs r3, 0x34 - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r1, r0 - movs r3, 0 - ldrsh r0, [r1, r3] - adds r3, r0, 0x1 - adds r5, 0x1 - cmp r6, 0x14 - ble _08140726 - movs r6, 0 -_08140726: - cmp r3, 0x14 - ble _0814072C - movs r3, 0 -_0814072C: - cmp r5, 0x14 - ble _08140732 - movs r5, 0 -_08140732: - movs r4, 0 - lsls r1, r7, 1 - lsls r0, r7, 2 - mov r9, r2 - ldr r2, _081407CC @ =gUnknown_8464926 - mov r10, r2 - adds r1, r7 - add r1, sp - mov r12, r1 - adds r0, r7 - lsls r0, 2 - adds r0, r7 - str r0, [sp, 0xC] -_0814074C: - mov r7, r9 - movs r0, 0x32 - ldrsh r1, [r7, r0] - lsls r0, r1, 1 - adds r0, r1 - adds r0, r4 - mov r7, sp - adds r2, r7, r0 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r1 - adds r0, r6, r0 - add r0, r10 - ldrb r0, [r0] - strb r0, [r2] - mov r0, r9 - movs r2, 0x34 - ldrsh r1, [r0, r2] - lsls r0, r1, 1 - adds r0, r1 - adds r0, r4 - adds r2, r7, r0 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r1 - adds r0, r3, r0 - add r0, r10 - ldrb r0, [r0] - strb r0, [r2] - ldr r7, [sp, 0xC] - adds r0, r5, r7 - add r0, r10 - ldrb r0, [r0] - mov r1, r12 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0x14 - ble _0814079E - movs r6, 0 -_0814079E: - adds r3, 0x1 - cmp r3, 0x14 - ble _081407A6 - movs r3, 0 -_081407A6: - adds r5, 0x1 - cmp r5, 0x14 - ble _081407AE - movs r5, 0 -_081407AE: - movs r2, 0x1 - add r12, r2 - adds r4, 0x1 - cmp r4, 0x2 - ble _0814074C - mov r3, r8 - cmp r3, 0x1 - beq _08140828 - cmp r3, 0x1 - bgt _081407D0 - cmp r3, 0 - beq _081407D8 - b _081408A0 - .align 2, 0 -_081407C8: .4byte sSlotMachineState -_081407CC: .4byte gUnknown_8464926 -_081407D0: - mov r6, r8 - cmp r6, 0x2 - beq _08140870 - b _081408A0 -_081407D8: - movs r4, 0 -_081407DA: - mov r7, sp - adds r0, r7, r4 - ldrb r1, [r0] - movs r0, 0x1 - bl sub_81408F4 - cmp r0, 0 - bne _081408DC - adds r4, 0x1 - cmp r4, 0x2 - ble _081407DA - movs r4, 0 - ldr r2, _08140824 @ =gUnknown_84648AE - movs r3, 0 - adds r5, r2, 0x2 -_081407F8: - ldrb r0, [r2] - mov r6, sp - adds r1, r6, r0 - ldrb r0, [r2, 0x1] - add r0, sp - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _08140816 - adds r0, r3, r5 - ldrb r0, [r0] - add r0, sp - ldrb r0, [r0] - cmp r1, r0 - beq _081408DC -_08140816: - adds r2, 0x3 - adds r3, 0x3 - adds r4, 0x1 - cmp r4, 0x4 - ble _081407F8 -_08140820: - movs r0, 0x1 - b _081408DE - .align 2, 0 -_08140824: .4byte gUnknown_84648AE -_08140828: - movs r4, 0 - ldr r5, _0814086C @ =gUnknown_84648AE -_0814082C: - ldrb r0, [r5] - mov r7, sp - adds r2, r7, r0 - ldrb r0, [r5, 0x1] - adds r1, r7, r0 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bne _0814084A - adds r1, r0, 0 - mov r0, r8 - bl sub_81408F4 - cmp r0, 0 - bne _081408DC -_0814084A: - adds r5, 0x3 - adds r4, 0x1 - cmp r4, 0x4 - ble _0814082C - movs r4, 0 -_08140854: - mov r1, sp - adds r0, r1, r4 - ldrb r1, [r0] - mov r0, r8 - bl sub_81408F4 - cmp r0, 0 - bne _08140820 - adds r4, 0x1 - cmp r4, 0x2 - ble _08140854 - b _081408DC - .align 2, 0 -_0814086C: .4byte gUnknown_84648AE -_08140870: - movs r4, 0 - ldr r5, _0814089C @ =gUnknown_84648AE -_08140874: - ldrb r0, [r5] - mov r3, sp - adds r2, r3, r0 - ldrb r0, [r5, 0x1] - adds r1, r3, r0 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bne _08140892 - adds r1, r0, 0 - mov r0, r8 - bl sub_81408F4 - cmp r0, 0 - bne _08140820 -_08140892: - adds r5, 0x3 - adds r4, 0x1 - cmp r4, 0x4 - ble _08140874 - b _081408DC - .align 2, 0 -_0814089C: .4byte gUnknown_84648AE -_081408A0: - movs r4, 0 - ldr r5, _081408F0 @ =gUnknown_84648AE - adds r7, r5, 0 - movs r6, 0 -_081408A8: - ldrb r0, [r5] - mov r1, sp - adds r2, r1, r0 - adds r0, r7, 0x1 - adds r0, r6, r0 - ldrb r0, [r0] - add r0, sp - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _081408D2 - ldrb r0, [r5, 0x2] - add r0, sp - ldrb r0, [r0] - cmp r1, r0 - bne _081408D2 - mov r0, r8 - bl sub_81408F4 - cmp r0, 0 - bne _08140820 -_081408D2: - adds r5, 0x3 - adds r6, 0x3 - adds r4, 0x1 - cmp r4, 0x4 - ble _081408A8 -_081408DC: - movs r0, 0 -_081408DE: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081408F0: .4byte gUnknown_84648AE - thumb_func_end sub_81406E8 - thumb_func_start sub_81408F4 sub_81408F4: @ 81408F4 push {lr} diff --git a/data/slot_machine.s b/data/slot_machine.s index a85e26b75..5c2093bd0 100644 --- a/data/slot_machine.s +++ b/data/slot_machine.s @@ -3,61 +3,6 @@ .section .rodata .align 2 -gUnknown_8464890:: @ 8464890 - .byte 0x00, 0x03 - .byte 0x00, 0x06 - .byte 0x03, 0x06 - .byte 0x01, 0x04 - .byte 0x01, 0x07 - .byte 0x04, 0x07 - .byte 0x02, 0x05 - .byte 0x02, 0x08 - .byte 0x05, 0x08 - .byte 0x00, 0x04 - .byte 0x00, 0x08 - .byte 0x04, 0x08 - .byte 0x02, 0x04 - .byte 0x02, 0x06 - .byte 0x04, 0x06 - -gUnknown_84648AE:: @ 84648AE - .byte 0x00, 0x03, 0x06 - .byte 0x01, 0x04, 0x07 - .byte 0x02, 0x05, 0x08 - .byte 0x00, 0x04, 0x08 - .byte 0x02, 0x04, 0x06 - -gUnknown_84648BD:: @ 84648BD - .byte 0x00, 0x04, 0x08, 0x03 - .byte 0x00, 0x03, 0x06, 0x02 - .byte 0x01, 0x04, 0x07, 0x01 - .byte 0x02, 0x05, 0x08, 0x02 - .byte 0x02, 0x04, 0x06, 0x03 - - .align 1 -gUnknown_84648D2:: @ 84648D2 - .2byte 0x1fa1, 0x2eab, 0x3630, 0x39f3, 0x3bd4, 0x3bfc, 0x0049 - .2byte 0x1f97, 0x2ea2, 0x3627, 0x39e9, 0x3bca, 0x3bf8, 0x0049 - .2byte 0x1f91, 0x2e9b, 0x3620, 0x39e3, 0x3bc4, 0x3bf4, 0x0049 - .2byte 0x1f87, 0x2e92, 0x3617, 0x39d9, 0x3bba, 0x3bef, 0x0050 - .2byte 0x1f7f, 0x2e89, 0x360e, 0x39d1, 0x3bb2, 0x3bea, 0x0050 - .2byte 0x1fc9, 0x2efc, 0x3696, 0x3a63, 0x3c49, 0x3c8b, 0x0073 - -gUnknown_8464926:: @ 8464926 - .byte 0x00, 0x03, 0x04, 0x01, 0x02, 0x06, 0x02, 0x05, 0x00, 0x06, 0x03, 0x01, 0x04, 0x02, 0x06, 0x00, 0x05, 0x02, 0x01, 0x06, 0x02 - .byte 0x00, 0x05, 0x04, 0x03, 0x01, 0x05, 0x04, 0x03, 0x02, 0x05, 0x04, 0x03, 0x00, 0x05, 0x04, 0x01, 0x03, 0x06, 0x05, 0x03, 0x04 - .byte 0x00, 0x03, 0x06, 0x05, 0x02, 0x03, 0x06, 0x05, 0x02, 0x03, 0x05, 0x06, 0x02, 0x03, 0x05, 0x06, 0x02, 0x03, 0x05, 0x06, 0x01 - - .align 1 -gUnknown_8464966:: @ 8464966 - .2byte 0 - .2byte 2 - .2byte 6 - .2byte 8 - .2byte 15 - .2byte 100 - .2byte 300 - gUnknown_8464974:: .incbin "graphics/slot_machine/unk_8464974.gbapal" diff --git a/ld_script.txt b/ld_script.txt index ea0c43fd1..3057ccdb7 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -416,6 +416,7 @@ SECTIONS { data/berry_pouch.o(.rodata); data/itemfinder.o(.rodata); data/buy_menu_helpers.o(.rodata); + src/slot_machine.o(.rodata); data/slot_machine.o(.rodata); src/roamer.o(.rodata); src/mystery_gift_menu.o(.rodata); diff --git a/src/slot_machine.c b/src/slot_machine.c index 41271b425..064105bba 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -67,8 +67,68 @@ void sub_8141148(u16 a0, u8 a1); bool32 sub_8141180(u8 a0); void sub_8141C30(u8, u8); -extern const u8 gUnknown_8464890[][2]; -extern const u8 gUnknown_8464926[][21]; +const u8 gUnknown_8464890[][2] = { + {0x00, 0x03}, + {0x00, 0x06}, + {0x03, 0x06}, + + {0x01, 0x04}, + {0x01, 0x07}, + {0x04, 0x07}, + + {0x02, 0x05}, + {0x02, 0x08}, + {0x05, 0x08}, + + {0x00, 0x04}, + {0x00, 0x08}, + {0x04, 0x08}, + + {0x02, 0x04}, + {0x02, 0x06}, + {0x04, 0x06} +}; + +const u8 gUnknown_84648AE[][3] = { + {0x00, 0x03, 0x06}, // top row + {0x01, 0x04, 0x07}, // middle row + {0x02, 0x05, 0x08}, // bottom row + {0x00, 0x04, 0x08}, // tl-br + {0x02, 0x04, 0x06} // bl-tr +}; + +const u8 gUnknown_84648BD[][4] = { + {0x00, 0x04, 0x08, 0x03}, + {0x00, 0x03, 0x06, 0x02}, + {0x01, 0x04, 0x07, 0x01}, + {0x02, 0x05, 0x08, 0x02}, + {0x02, 0x04, 0x06, 0x03} +}; + +const u16 gUnknown_84648D2[][7] = { + {0x1fa1, 0x2eab, 0x3630, 0x39f3, 0x3bd4, 0x3bfc, 0x0049}, + {0x1f97, 0x2ea2, 0x3627, 0x39e9, 0x3bca, 0x3bf8, 0x0049}, + {0x1f91, 0x2e9b, 0x3620, 0x39e3, 0x3bc4, 0x3bf4, 0x0049}, + {0x1f87, 0x2e92, 0x3617, 0x39d9, 0x3bba, 0x3bef, 0x0050}, + {0x1f7f, 0x2e89, 0x360e, 0x39d1, 0x3bb2, 0x3bea, 0x0050}, + {0x1fc9, 0x2efc, 0x3696, 0x3a63, 0x3c49, 0x3c8b, 0x0073}, +}; + +const u8 gUnknown_8464926[][21] = { + {0x00, 0x03, 0x04, 0x01, 0x02, 0x06, 0x02, 0x05, 0x00, 0x06, 0x03, 0x01, 0x04, 0x02, 0x06, 0x00, 0x05, 0x02, 0x01, 0x06, 0x02}, + {0x00, 0x05, 0x04, 0x03, 0x01, 0x05, 0x04, 0x03, 0x02, 0x05, 0x04, 0x03, 0x00, 0x05, 0x04, 0x01, 0x03, 0x06, 0x05, 0x03, 0x04}, + {0x00, 0x03, 0x06, 0x05, 0x02, 0x03, 0x06, 0x05, 0x02, 0x03, 0x05, 0x06, 0x02, 0x03, 0x05, 0x06, 0x02, 0x03, 0x05, 0x06, 0x01}, +}; + +const u16 gUnknown_8464966[] = { + 0, + 2, + 6, + 8, + 15, + 100, + 300 +}; void PlaySlotMachine(u16 machineIdx, MainCallback savedCallback) { @@ -776,3 +836,362 @@ bool32 sub_814054C(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4) } return FALSE; } + +#ifdef NONMATCHING +bool32 sub_81406E8(s32 a0, s32 a1, s32 a2) +{ + u8 sp0[9]; + s32 r3, r6; + s32 i; + + r6 = sSlotMachineState->field_20[sSlotMachineState->field_32[0]] + 1; + r3 = sSlotMachineState->field_20[sSlotMachineState->field_32[1]] + 1; + a1++; + if (r6 >= 21) + r6 = 0; + if (r3 >= 21) + r3 = 0; + if (a1 >= 21) + a1 = 0; + for (i = 0; i < 3; i++) + { + sp0[sSlotMachineState->field_32[0] * 3 + i] = gUnknown_8464926[sSlotMachineState->field_32[0]][r6]; + sp0[sSlotMachineState->field_32[1] * 3 + i] = gUnknown_8464926[sSlotMachineState->field_32[1]][r3]; + sp0[a0 * 3 + i] = gUnknown_8464926[a0][a1]; + r6++; + if (r6 >= 21) + r6 = 0; + r3++; + if (r3 >= 21) + r3 = 0; + a1++; + if (a1 >= 21) + a1++; + } + switch (a2) + { + case 0: + for (i = 0; i < 3; i++) + { + if (sub_81408F4(1, sp0[i])) + return FALSE; + } + for (i = 0; i < 5; i++) + { + if (sp0[gUnknown_84648AE[i][0]] == sp0[gUnknown_84648AE[i][1]] && sp0[gUnknown_84648AE[i][0]] == sp0[gUnknown_84648AE[i][2]]) + return FALSE; + } + return TRUE; + case 1: + for (i = 0; i < 5; i++) + { + if (sp0[gUnknown_84648AE[i][0]] == sp0[gUnknown_84648AE[i][1]] && sub_81408F4(a2, sp0[gUnknown_84648AE[i][0]])) + return FALSE; + } + for (i = 0; i < 3; i++) + { + if (sub_81408F4(a2, sp0[i])) + return TRUE; + } + return FALSE; + case 2: + for (i = 0; i < 5; i++) + { + if (sp0[gUnknown_84648AE[i][0]] == sp0[gUnknown_84648AE[i][1]] && sub_81408F4(a2, sp0[gUnknown_84648AE[i][0]])) + return TRUE; + } + return FALSE; + } + for (i = 0; i < 5; i++) + { + if (sp0[gUnknown_84648AE[i][0]] == sp0[gUnknown_84648AE[i][1]] && sp0[gUnknown_84648AE[i][0]] == sp0[gUnknown_84648AE[i][2]] && sub_81408F4(a2, sp0[gUnknown_84648AE[i][0]])) + return TRUE; + } + return FALSE; +} +#else +NAKED +bool32 sub_81406E8(s32 a0, s32 a1, s32 a2) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tsub sp, 0x10\n" + "\tadds r7, r0, 0\n" + "\tadds r5, r1, 0\n" + "\tmov r8, r2\n" + "\tldr r0, _081407C8 @ =sSlotMachineState\n" + "\tldr r2, [r0]\n" + "\tmovs r1, 0x32\n" + "\tldrsh r0, [r2, r1]\n" + "\tlsls r0, 1\n" + "\tadds r1, r2, 0\n" + "\tadds r1, 0x20\n" + "\tadds r0, r1, r0\n" + "\tmovs r3, 0\n" + "\tldrsh r0, [r0, r3]\n" + "\tadds r6, r0, 0x1\n" + "\tmovs r3, 0x34\n" + "\tldrsh r0, [r2, r3]\n" + "\tlsls r0, 1\n" + "\tadds r1, r0\n" + "\tmovs r3, 0\n" + "\tldrsh r0, [r1, r3]\n" + "\tadds r3, r0, 0x1\n" + "\tadds r5, 0x1\n" + "\tcmp r6, 0x14\n" + "\tble _08140726\n" + "\tmovs r6, 0\n" + "_08140726:\n" + "\tcmp r3, 0x14\n" + "\tble _0814072C\n" + "\tmovs r3, 0\n" + "_0814072C:\n" + "\tcmp r5, 0x14\n" + "\tble _08140732\n" + "\tmovs r5, 0\n" + "_08140732:\n" + "\tmovs r4, 0\n" + "\tlsls r1, r7, 1\n" + "\tlsls r0, r7, 2\n" + "\tmov r9, r2\n" + "\tldr r2, _081407CC @ =gUnknown_8464926\n" + "\tmov r10, r2\n" + "\tadds r1, r7\n" + "\tadd r1, sp\n" + "\tmov r12, r1\n" + "\tadds r0, r7\n" + "\tlsls r0, 2\n" + "\tadds r0, r7\n" + "\tstr r0, [sp, 0xC]\n" + "_0814074C:\n" + "\tmov r7, r9\n" + "\tmovs r0, 0x32\n" + "\tldrsh r1, [r7, r0]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tadds r0, r4\n" + "\tmov r7, sp\n" + "\tadds r2, r7, r0\n" + "\tlsls r0, r1, 2\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tadds r0, r6, r0\n" + "\tadd r0, r10\n" + "\tldrb r0, [r0]\n" + "\tstrb r0, [r2]\n" + "\tmov r0, r9\n" + "\tmovs r2, 0x34\n" + "\tldrsh r1, [r0, r2]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tadds r0, r4\n" + "\tadds r2, r7, r0\n" + "\tlsls r0, r1, 2\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tadds r0, r3, r0\n" + "\tadd r0, r10\n" + "\tldrb r0, [r0]\n" + "\tstrb r0, [r2]\n" + "\tldr r7, [sp, 0xC]\n" + "\tadds r0, r5, r7\n" + "\tadd r0, r10\n" + "\tldrb r0, [r0]\n" + "\tmov r1, r12\n" + "\tstrb r0, [r1]\n" + "\tadds r6, 0x1\n" + "\tcmp r6, 0x14\n" + "\tble _0814079E\n" + "\tmovs r6, 0\n" + "_0814079E:\n" + "\tadds r3, 0x1\n" + "\tcmp r3, 0x14\n" + "\tble _081407A6\n" + "\tmovs r3, 0\n" + "_081407A6:\n" + "\tadds r5, 0x1\n" + "\tcmp r5, 0x14\n" + "\tble _081407AE\n" + "\tmovs r5, 0\n" + "_081407AE:\n" + "\tmovs r2, 0x1\n" + "\tadd r12, r2\n" + "\tadds r4, 0x1\n" + "\tcmp r4, 0x2\n" + "\tble _0814074C\n" + "\tmov r3, r8\n" + "\tcmp r3, 0x1\n" + "\tbeq _08140828\n" + "\tcmp r3, 0x1\n" + "\tbgt _081407D0\n" + "\tcmp r3, 0\n" + "\tbeq _081407D8\n" + "\tb _081408A0\n" + "\t.align 2, 0\n" + "_081407C8: .4byte sSlotMachineState\n" + "_081407CC: .4byte gUnknown_8464926\n" + "_081407D0:\n" + "\tmov r6, r8\n" + "\tcmp r6, 0x2\n" + "\tbeq _08140870\n" + "\tb _081408A0\n" + "_081407D8:\n" + "\tmovs r4, 0\n" + "_081407DA:\n" + "\tmov r7, sp\n" + "\tadds r0, r7, r4\n" + "\tldrb r1, [r0]\n" + "\tmovs r0, 0x1\n" + "\tbl sub_81408F4\n" + "\tcmp r0, 0\n" + "\tbne _081408DC_return_false\n" + "\tadds r4, 0x1\n" + "\tcmp r4, 0x2\n" + "\tble _081407DA\n" + "\tmovs r4, 0\n" + "\tldr r2, _08140824 @ =gUnknown_84648AE\n" + "\tmovs r3, 0\n" + "\tadds r5, r2, 0x2\n" + "_081407F8:\n" + "\tldrb r0, [r2]\n" + "\tmov r6, sp\n" + "\tadds r1, r6, r0\n" + "\tldrb r0, [r2, 0x1]\n" + "\tadd r0, sp\n" + "\tldrb r1, [r1]\n" + "\tldrb r0, [r0]\n" + "\tcmp r1, r0\n" + "\tbne _08140816\n" + "\tadds r0, r3, r5\n" + "\tldrb r0, [r0]\n" + "\tadd r0, sp\n" + "\tldrb r0, [r0]\n" + "\tcmp r1, r0\n" + "\tbeq _081408DC_return_false\n" + "_08140816:\n" + "\tadds r2, 0x3\n" + "\tadds r3, 0x3\n" + "\tadds r4, 0x1\n" + "\tcmp r4, 0x4\n" + "\tble _081407F8\n" + "_08140820_return_true:\n" + "\tmovs r0, 0x1\n" + "\tb _081408DE\n" + "\t.align 2, 0\n" + "_08140824: .4byte gUnknown_84648AE\n" + "_08140828:\n" + "\tmovs r4, 0\n" + "\tldr r5, _0814086C @ =gUnknown_84648AE\n" + "_0814082C:\n" + "\tldrb r0, [r5]\n" + "\tmov r7, sp\n" + "\tadds r2, r7, r0\n" + "\tldrb r0, [r5, 0x1]\n" + "\tadds r1, r7, r0\n" + "\tldrb r0, [r2]\n" + "\tldrb r1, [r1]\n" + "\tcmp r0, r1\n" + "\tbne _0814084A\n" + "\tadds r1, r0, 0\n" + "\tmov r0, r8\n" + "\tbl sub_81408F4\n" + "\tcmp r0, 0\n" + "\tbne _081408DC_return_false\n" + "_0814084A:\n" + "\tadds r5, 0x3\n" + "\tadds r4, 0x1\n" + "\tcmp r4, 0x4\n" + "\tble _0814082C\n" + "\tmovs r4, 0\n" + "_08140854:\n" + "\tmov r1, sp\n" + "\tadds r0, r1, r4\n" + "\tldrb r1, [r0]\n" + "\tmov r0, r8\n" + "\tbl sub_81408F4\n" + "\tcmp r0, 0\n" + "\tbne _08140820_return_true\n" + "\tadds r4, 0x1\n" + "\tcmp r4, 0x2\n" + "\tble _08140854\n" + "\tb _081408DC_return_false\n" + "\t.align 2, 0\n" + "_0814086C: .4byte gUnknown_84648AE\n" + "_08140870:\n" + "\tmovs r4, 0\n" + "\tldr r5, _0814089C @ =gUnknown_84648AE\n" + "_08140874:\n" + "\tldrb r0, [r5]\n" + "\tmov r3, sp\n" + "\tadds r2, r3, r0\n" + "\tldrb r0, [r5, 0x1]\n" + "\tadds r1, r3, r0\n" + "\tldrb r0, [r2]\n" + "\tldrb r1, [r1]\n" + "\tcmp r0, r1\n" + "\tbne _08140892\n" + "\tadds r1, r0, 0\n" + "\tmov r0, r8\n" + "\tbl sub_81408F4\n" + "\tcmp r0, 0\n" + "\tbne _08140820_return_true\n" + "_08140892:\n" + "\tadds r5, 0x3\n" + "\tadds r4, 0x1\n" + "\tcmp r4, 0x4\n" + "\tble _08140874\n" + "\tb _081408DC_return_false\n" + "\t.align 2, 0\n" + "_0814089C: .4byte gUnknown_84648AE\n" + "_081408A0:\n" + "\tmovs r4, 0\n" + "\tldr r5, _081408F0 @ =gUnknown_84648AE\n" + "\tadds r7, r5, 0\n" + "\tmovs r6, 0\n" + "_081408A8:\n" + "\tldrb r0, [r5]\n" + "\tmov r1, sp\n" + "\tadds r2, r1, r0\n" + "\tadds r0, r7, 0x1\n" + "\tadds r0, r6, r0\n" + "\tldrb r0, [r0]\n" + "\tadd r0, sp\n" + "\tldrb r1, [r2]\n" + "\tldrb r0, [r0]\n" + "\tcmp r1, r0\n" + "\tbne _081408D2\n" + "\tldrb r0, [r5, 0x2]\n" + "\tadd r0, sp\n" + "\tldrb r0, [r0]\n" + "\tcmp r1, r0\n" + "\tbne _081408D2\n" + "\tmov r0, r8\n" + "\tbl sub_81408F4\n" + "\tcmp r0, 0\n" + "\tbne _08140820_return_true\n" + "_081408D2:\n" + "\tadds r5, 0x3\n" + "\tadds r6, 0x3\n" + "\tadds r4, 0x1\n" + "\tcmp r4, 0x4\n" + "\tble _081408A8\n" + "_081408DC_return_false:\n" + "\tmovs r0, 0\n" + "_081408DE:\n" + "\tadd sp, 0x10\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r1}\n" + "\tbx r1\n" + "\t.align 2, 0\n" + "_081408F0: .4byte gUnknown_84648AE"); +} +#endif //NONMATCHING |