diff options
-rw-r--r-- | asm/arm9_thumb.s | 565 |
1 files changed, 483 insertions, 82 deletions
diff --git a/asm/arm9_thumb.s b/asm/arm9_thumb.s index 99146fa9..82e25175 100644 --- a/asm/arm9_thumb.s +++ b/asm/arm9_thumb.s @@ -24475,9 +24475,15 @@ _0200C596: mov r0, #0x0 pop {r3-r7, pc} .balign 4 -_0200C59C: - .byte 0x01, 0x4B, 0x01, 0x21 - .byte 0x09, 0x03, 0x18, 0x47, 0xE5, 0x01, 0x02, 0x02 + + thumb_func_start FUN_0200C59C +FUN_0200C59C: ; 0x0200C59C + ldr r3, _0200C5A4 ; =FUN_020201E4 + mov r1, #0x1 + lsl r1, r1, #0xc + bx r3 + .balign 4 +_0200C5A4: .word FUN_020201E4 + 1 thumb_func_start FUN_0200C5A8 FUN_0200C5A8: ; 0x0200C5A8 @@ -24555,8 +24561,13 @@ FUN_0200C608: ; 0x0200C608 bx r3 nop _0200C610: .word FUN_0200C600 + 1 -_0200C614: - .byte 0x00, 0x4B, 0x18, 0x47, 0x09, 0x02, 0x02, 0x02 + + thumb_func_start FUN_0200C614 +FUN_0200C614: ; 0x0200C614 + ldr r3, _0200C618 ; =FUN_02020208 + bx r3 + .balign 4 +_0200C618: .word FUN_02020208 + 1 thumb_func_start FUN_0200C61C FUN_0200C61C: ; 0x0200C61C @@ -24892,8 +24903,13 @@ FUN_0200C82C: ; 0x0200C82C bx r3 nop _0200C834: .word FUN_0200C7FC + 1 -_0200C838: - .byte 0x00, 0x4B, 0x18, 0x47, 0xED, 0x00, 0x02, 0x02 + + thumb_func_start FUN_0200C838 +FUN_0200C838: ; 0x0200C838 + ldr r3, _0200C83C ; =FUN_020200EC + bx r3 + .balign 4 +_0200C83C: .word FUN_020200EC + 1 thumb_func_start FUN_0200C840 FUN_0200C840: ; 0x0200C840 @@ -42975,9 +42991,15 @@ _02014F16: add r0, r4, #0x0 pop {r4, pc} .balign 4 -_02014F1C: - .byte 0x01, 0x4B, 0x0A, 0x1C - .byte 0x00, 0x21, 0x18, 0x47, 0x09, 0x4F, 0x01, 0x02 + + thumb_func_start FUN_02014F1C +FUN_02014F1C: ; 0x02014F1C + ldr r3, _02014F24 ; =FUN_02014F08 + add r2, r1, #0x0 + mov r1, #0x0 + bx r3 + .balign 4 +_02014F24: .word FUN_02014F08 + 1 thumb_func_start FUN_02014F28 FUN_02014F28: ; 0x02014F28 @@ -56907,11 +56929,32 @@ _0201B53C: add r0, r2, #0x0 bx lr .balign 4 -_0201B54C: - .byte 0x42, 0x88, 0x00, 0x2A - .byte 0x01, 0xD1, 0x00, 0x20, 0x70, 0x47, 0x08, 0x60, 0x02, 0x1D, 0x8A, 0x60, 0x4A, 0x60, 0x00, 0x22 - .byte 0xCA, 0x60, 0x0A, 0x61, 0x4A, 0x61, 0x42, 0x88, 0x52, 0x1E, 0x42, 0x80, 0x02, 0x6A, 0x40, 0x88 - .byte 0x80, 0x00, 0x11, 0x50, 0x01, 0x20, 0x70, 0x47 + + thumb_func_start FUN_0201B54C +FUN_0201B54C: ; 0x0201B54C + ldrh r2, [r0, #0x2] + cmp r2, #0x0 + bne _0201B556 + mov r0, #0x0 + bx lr +_0201B556: + str r0, [r1, #0x0] + add r2, r0, #0x4 + str r2, [r1, #0x8] + str r2, [r1, #0x4] + mov r2, #0x0 + str r2, [r1, #0xc] + str r2, [r1, #0x10] + str r2, [r1, #0x14] + ldrh r2, [r0, #0x2] + sub r2, r2, #0x1 + strh r2, [r0, #0x2] + ldr r2, [r0, #0x20] + ldrh r0, [r0, #0x2] + lsl r0, r0, #0x2 + str r1, [r2, r0] + mov r0, #0x1 + bx lr thumb_func_start FUN_0201B578 FUN_0201B578: ; 0x0201B578 @@ -59053,14 +59096,60 @@ FUN_0201C500: ; 0x0201C500 bx r3 .balign 4 _0201C508: .word 0x0201C541 -_0201C50C: - .byte 0x18, 0xB4, 0x02, 0x1C - .byte 0x42, 0x32, 0x12, 0x88, 0x04, 0x1C, 0x3C, 0x34, 0xA3, 0x18, 0xA2, 0x5A, 0x1B, 0x1D, 0x51, 0x43 - .byte 0x5B, 0x18, 0x02, 0xD1, 0x00, 0x20, 0x18, 0xBC, 0x70, 0x47, 0x41, 0x69, 0x42, 0x18, 0x19, 0x68 - .byte 0x80, 0x68, 0x09, 0x04, 0x09, 0x0C, 0x08, 0x18, 0xC0, 0x00, 0x10, 0x18, 0x18, 0xBC, 0x70, 0x47 - .byte 0x18, 0xB4, 0x82, 0x8E, 0x84, 0x18, 0xE2, 0x88, 0xA3, 0x18, 0xA2, 0x5A, 0x1B, 0x1D, 0x51, 0x43 - .byte 0x5A, 0x18, 0x02, 0xD1, 0x00, 0x20, 0x18, 0xBC, 0x70, 0x47, 0x81, 0x6B, 0x41, 0x18, 0x10, 0x88 - .byte 0xC0, 0x00, 0x08, 0x18, 0x18, 0xBC, 0x70, 0x47 + + thumb_func_start FUN_0201C50C +FUN_0201C50C: ; 0x0201C50C + push {r3-r4} + add r2, r0, #0x0 + add r2, #0x42 + ldrh r2, [r2, #0x0] + add r4, r0, #0x0 + add r4, #0x3c + add r3, r4, r2 + ldrh r2, [r4, r2] + add r3, r3, #0x4 + mul r1, r2 + add r3, r3, r1 + bne _0201C52A + mov r0, #0x0 + pop {r3-r4} + bx lr +_0201C52A: + ldr r1, [r0, #0x14] + add r2, r0, r1 + ldr r1, [r3, #0x0] + ldr r0, [r0, #0x8] + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r1, r0 + lsl r0, r0, #0x3 + add r0, r2, r0 + pop {r3-r4} + bx lr + + thumb_func_start FUN_0201C540 +FUN_0201C540: ; 0x0201C540 + push {r3-r4} + ldrh r2, [r0, #0x34] + add r4, r0, r2 + ldrh r2, [r4, #0x6] + add r3, r4, r2 + ldrh r2, [r4, r2] + add r3, r3, #0x4 + mul r1, r2 + add r2, r3, r1 + bne _0201C55A + mov r0, #0x0 + pop {r3-r4} + bx lr +_0201C55A: + ldr r1, [r0, #0x38] + add r1, r0, r1 + ldrh r0, [r2, #0x0] + lsl r0, r0, #0x3 + add r0, r1, r0 + pop {r3-r4} + bx lr thumb_func_start FUN_0201C568 FUN_0201C568: ; 0x0201C568 @@ -62770,10 +62859,29 @@ _0201E060: pop {r3-r7, pc} nop _0201E064: .word 0x021C5998 -_0201E068: - .byte 0x01, 0x29, 0x05, 0xD1, 0x06, 0x49, 0x0A, 0x68 - .byte 0x91, 0x8C, 0x08, 0x43, 0x90, 0x84, 0x70, 0x47, 0x02, 0x29, 0x04, 0xD1, 0x02, 0x49, 0x0A, 0x68 - .byte 0xD1, 0x8C, 0x08, 0x43, 0xD0, 0x84, 0x70, 0x47, 0x98, 0x59, 0x1C, 0x02 + + thumb_func_start FUN_0201E068 +FUN_0201E068: ; 0x0201E068 + cmp r1, #0x1 + bne _0201E078 + ldr r1, _0201E088 ; =0x021C5998 + ldr r2, [r1, #0x0] + ldrh r1, [r2, #0x24] + orr r0, r1 + strh r0, [r2, #0x24] + bx lr +_0201E078: + cmp r1, #0x2 + bne _0201E086 + ldr r1, _0201E088 ; =0x021C5998 + ldr r2, [r1, #0x0] + ldrh r1, [r2, #0x26] + orr r0, r1 + strh r0, [r2, #0x26] +_0201E086: + bx lr + .balign 4 +_0201E088: .word 0x021C5998 thumb_func_start FUN_0201E08C FUN_0201E08C: ; 0x0201E08C @@ -67478,8 +67586,13 @@ FUN_02020238: ; 0x02020238 strb r1, [r0, #0x0] bx lr .balign 4 -_02020240: - .byte 0xF2, 0x30, 0x00, 0x78, 0x70, 0x47, 0x00, 0x00 + + thumb_func_start FUN_02020240 +FUN_02020240: ; 0x02020240 + add r0, #0xf2 + ldrb r0, [r0, #0x0] + bx lr + .balign 4 thumb_func_start FUN_02020248 FUN_02020248: ; 0x02020248 @@ -67644,10 +67757,30 @@ FUN_02020350: ; 0x02020350 FUN_02020354: ; 0x02020354 add r0, #0xd8 bx lr -_02020358: - .byte 0xC1, 0x62, 0x01, 0x29, 0x07, 0xD1, 0x01, 0x1C - .byte 0x28, 0x31, 0x0A, 0x78, 0x04, 0x21, 0x28, 0x30, 0x11, 0x43, 0x01, 0x70, 0x70, 0x47, 0x01, 0x1C - .byte 0x28, 0x31, 0x0A, 0x78, 0x04, 0x21, 0x51, 0x40, 0x28, 0x30, 0x01, 0x70, 0x70, 0x47, 0x00, 0x00 + + thumb_func_start FUN_02020358 +FUN_02020358: ; 0x02020358 + str r1, [r0, #0x2c] + cmp r1, #0x1 + bne _0202036E + add r1, r0, #0x0 + add r1, #0x28 + ldrb r2, [r1, #0x0] + mov r1, #0x4 + add r0, #0x28 + orr r1, r2 + strb r1, [r0, #0x0] + bx lr +_0202036E: + add r1, r0, #0x0 + add r1, #0x28 + ldrb r2, [r1, #0x0] + mov r1, #0x4 + eor r1, r2 + add r0, #0x28 + strb r1, [r0, #0x0] + bx lr + .balign 4 thumb_func_start FUN_02020380 FUN_02020380: ; 0x02020380 @@ -72455,8 +72588,13 @@ _0202261E: pop {r3-r5, pc} .balign 4 _02022630: .word 0x0002022C -_02022634: - .byte 0x00, 0x4B, 0x18, 0x47, 0x11, 0x26, 0x02, 0x02 + + thumb_func_start FUN_02022634 +FUN_02022634: ; 0x02022634 + ldr r3, _02022638 ; =FUN_02022610 + bx r3 + .balign 4 +_02022638: .word FUN_02022610 + 1 thumb_func_start FUN_0202263C FUN_0202263C: ; 0x0202263C @@ -159680,8 +159818,11 @@ _0204BE0A: add r0, r4, #0x0 pop {r4-r7} bx lr -_0204BE10: - .byte 0x80, 0x6C, 0x70, 0x47 + + thumb_func_start FUN_0204BE10 +FUN_0204BE10: ; 0x0204BE10 + ldr r0, [r0, #0x48] + bx lr thumb_func_start FUN_0204BE14 FUN_0204BE14: ; 0x0204BE14 @@ -171511,8 +171652,14 @@ _020519BA: bl FUN_02051810 pop {r4, pc} .balign 4 -_020519E4: - .byte 0x01, 0x4B, 0x00, 0x69, 0x18, 0x47, 0xC0, 0x46, 0x2D, 0x65, 0x04, 0x02 + + thumb_func_start FUN_020519E4 +FUN_020519E4: ; 0x020519E4 + ldr r3, _020519EC ; =FUN_0204652C + ldr r0, [r0, #0x10] + bx r3 + nop +_020519EC: .word FUN_0204652C + 1 thumb_func_start FUN_020519F0 FUN_020519F0: ; 0x020519F0 @@ -172069,10 +172216,27 @@ FUN_02051E24: ; 0x02051E24 bx r3 .balign 4 _02051E2C: .word FUN_0200CCF8 + 1 -_02051E30: - .byte 0x10, 0xB5, 0x04, 0x1C, 0x18, 0x1C, 0xFF, 0xF7, 0xD5, 0xFD, 0x01, 0x1C, 0x86, 0x31, 0x09, 0x88 - .byte 0xA1, 0x42, 0x06, 0xD0, 0x01, 0x1C, 0x89, 0x31, 0x0A, 0x78, 0x02, 0x21, 0x89, 0x30, 0x11, 0x43 - .byte 0x01, 0x70, 0x10, 0xBD + + thumb_func_start FUN_02051E30 +FUN_02051E30: ; 0x02051E30 + push {r4, lr} + add r4, r0, #0x0 + add r0, r3, #0x0 + bl FUN_020519E4 + add r1, r0, #0x0 + add r1, #0x86 + ldrh r1, [r1, #0x0] + cmp r1, r4 + beq _02051E52 + add r1, r0, #0x0 + add r1, #0x89 + ldrb r2, [r1, #0x0] + mov r1, #0x2 + add r0, #0x89 + orr r1, r2 + strb r1, [r0, #0x0] +_02051E52: + pop {r4, pc} thumb_func_start FUN_02051E54 FUN_02051E54: ; 0x02051E54 @@ -172083,44 +172247,281 @@ FUN_02051E54: ; 0x02051E54 add r0, r0, #0x4 pop {r3, pc} .balign 4 -_02051E64: - .byte 0x10, 0xB5, 0x04, 0x1C, 0x08, 0x1C, 0xFF, 0xF7, 0xBB, 0xFD, 0x01, 0x1C - .byte 0x86, 0x31, 0x09, 0x88, 0xA1, 0x42, 0x01, 0xD0, 0x80, 0x6C, 0x10, 0xBD, 0x00, 0x20, 0x10, 0xBD - .byte 0x38, 0xB5, 0x05, 0x1C, 0x18, 0x1C, 0x14, 0x1C, 0xFF, 0xF7, 0xAC, 0xFD, 0x01, 0x1C, 0x86, 0x31 - .byte 0x09, 0x88, 0xA9, 0x42, 0x0A, 0xD0, 0x22, 0x78, 0x01, 0x1C, 0x85, 0x31, 0x0A, 0x70, 0x01, 0x1C - .byte 0x89, 0x31, 0x0A, 0x78, 0x02, 0x21, 0x89, 0x30, 0x11, 0x43, 0x01, 0x70, 0x38, 0xBD, 0x00, 0x00 - .byte 0x70, 0xB5, 0x04, 0x1C, 0xF4, 0xF7, 0x38, 0xFB, 0x05, 0x1C, 0x20, 0x1C, 0xF4, 0xF7, 0x36, 0xFB - .byte 0x04, 0x1C, 0x00, 0x21, 0x60, 0x6A, 0x0A, 0x1C, 0xFE, 0xF7, 0x96, 0xFE, 0x06, 0x1C, 0xA0, 0x6A - .byte 0x07, 0x28, 0x00, 0xD9, 0xAF, 0xE0, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14 - .byte 0x87, 0x44, 0x0E, 0x00, 0x98, 0x00, 0xE8, 0x00, 0xF8, 0x00, 0x08, 0x01, 0x1A, 0x01, 0x28, 0x01 - .byte 0x44, 0x01, 0x04, 0x20, 0xB8, 0xF7, 0xC4, 0xFD, 0xA0, 0x61, 0x00, 0x20, 0x1A, 0x21, 0x09, 0x22 - .byte 0x04, 0x23, 0xB8, 0xF7, 0xB3, 0xFC, 0xE0, 0x61, 0xC8, 0x20, 0x04, 0x21, 0xCF, 0xF7, 0x72, 0xFD - .byte 0x20, 0x60, 0xC8, 0x20, 0x04, 0x21, 0xCF, 0xF7, 0x6D, 0xFD, 0x60, 0x60, 0xF1, 0x78, 0xE0, 0x69 - .byte 0x22, 0x68, 0x89, 0x1C, 0xB8, 0xF7, 0xDC, 0xFC, 0x60, 0x6A, 0xDC, 0xF7, 0x3B, 0xF8, 0x02, 0x1C - .byte 0xA0, 0x69, 0x00, 0x21, 0xB8, 0xF7, 0x44, 0xFE, 0xA0, 0x69, 0x61, 0x68, 0x22, 0x68, 0xB9, 0xF7 - .byte 0x3B, 0xFC, 0x21, 0x1C, 0xA8, 0x68, 0x08, 0x31, 0x03, 0x22, 0x02, 0xF0, 0x35, 0xFB, 0xE8, 0x68 - .byte 0xD1, 0xF7, 0xD6, 0xFC, 0x01, 0x1C, 0x20, 0x1C, 0x08, 0x30, 0x02, 0xF0, 0x55, 0xFB, 0xE8, 0x68 - .byte 0xD1, 0xF7, 0xCE, 0xFC, 0x02, 0x1C, 0x20, 0x1C, 0x61, 0x68, 0x08, 0x30, 0x01, 0x23, 0x02, 0xF0 - .byte 0x73, 0xFB, 0x20, 0x62, 0xA0, 0x6A, 0x40, 0x1C, 0xA0, 0x62, 0x5E, 0xE0, 0x20, 0x6A, 0x00, 0x06 - .byte 0x00, 0x0E, 0x02, 0xF0, 0xA1, 0xFB, 0x00, 0x28, 0x57, 0xD0, 0x2D, 0x48, 0x81, 0x6C, 0x01, 0x20 - .byte 0x08, 0x42, 0x52, 0xD0, 0xE0, 0x69, 0xB8, 0xF7, 0x8F, 0xFC, 0xA0, 0x69, 0xB8, 0xF7, 0xBC, 0xFD - .byte 0x20, 0x68, 0xCF, 0xF7, 0x3D, 0xFD, 0x60, 0x68, 0xCF, 0xF7, 0x3A, 0xFD, 0x20, 0x1C, 0x08, 0x30 - .byte 0x00, 0x21, 0xBB, 0xF7, 0x95, 0xF8, 0x20, 0x1C, 0x08, 0x30, 0xC7, 0xF7, 0xDD, 0xF8, 0x00, 0x20 - .byte 0x85, 0xF1, 0x70, 0xFE, 0xA0, 0x6A, 0x40, 0x1C, 0xA0, 0x62, 0x36, 0xE0, 0xBC, 0xF7, 0x9C, 0xF9 - .byte 0x00, 0x28, 0x32, 0xD0, 0xA0, 0x6A, 0x40, 0x1C, 0xA0, 0x62, 0x2E, 0xE0, 0x28, 0x1C, 0x31, 0x1C - .byte 0xE6, 0xF7, 0x4E, 0xFB, 0xA0, 0x6A, 0x40, 0x1C, 0xA0, 0x62, 0x26, 0xE0, 0x28, 0x1C, 0xF4, 0xF7 - .byte 0x45, 0xFA, 0x00, 0x28, 0x21, 0xD1, 0xA0, 0x6A, 0x40, 0x1C, 0xA0, 0x62, 0x1D, 0xE0, 0x28, 0x1C - .byte 0xF4, 0xF7, 0x4C, 0xFA, 0xA0, 0x6A, 0x40, 0x1C, 0xA0, 0x62, 0x16, 0xE0, 0x28, 0x1C, 0xF4, 0xF7 - .byte 0x49, 0xFA, 0x00, 0x28, 0x11, 0xD1, 0x01, 0x20, 0x85, 0xF1, 0x44, 0xFE, 0xFA, 0xF7, 0x3E, 0xFE - .byte 0xA0, 0x6A, 0x40, 0x1C, 0xA0, 0x62, 0x08, 0xE0, 0xFD, 0xF7, 0xE8, 0xFB, 0x20, 0x1C, 0xC4, 0xF7 - .byte 0xF3, 0xFC, 0x01, 0x20, 0x70, 0xBD, 0x01, 0x20, 0x70, 0xBD, 0x00, 0x20, 0x70, 0xBD, 0xC0, 0x46 - .byte 0xB8, 0x48, 0x1C, 0x02, 0xF8, 0xB5, 0x00, 0x90, 0xDF, 0xF7, 0xA2, 0xF8, 0x05, 0x1C, 0xFC, 0xF7 - .byte 0x41, 0xFA, 0x07, 0x1C, 0x28, 0x1C, 0xFC, 0xF7, 0x59, 0xFA, 0x06, 0x1C, 0x00, 0x24, 0xDE, 0xF7 - .byte 0x5F, 0xFF, 0x00, 0x28, 0x1F, 0xDD, 0xAC, 0x42, 0x18, 0xD0, 0x20, 0x1C, 0xFC, 0xF7, 0xBE, 0xF9 - .byte 0x87, 0x42, 0x13, 0xD1, 0x20, 0x1C, 0xFC, 0xF7, 0xE3, 0xF9, 0x86, 0x42, 0x0E, 0xD1, 0x0B, 0x20 - .byte 0x2C, 0x21, 0xC4, 0xF7, 0xA9, 0xFC, 0x02, 0x1C, 0x54, 0x62, 0x00, 0x20, 0x90, 0x62, 0x00, 0x98 - .byte 0x05, 0x49, 0xF4, 0xF7, 0x9B, 0xF9, 0xE5, 0xF7, 0x63, 0xFB, 0xF8, 0xBD, 0x64, 0x1C, 0xDE, 0xF7 - .byte 0x3F, 0xFF, 0x84, 0x42, 0xDF, 0xDB, 0xF8, 0xBD, 0xB1, 0x1E, 0x05, 0x02 + + thumb_func_start FUN_02051E64 +FUN_02051E64: ; 0x02051E64 + push {r4, lr} + add r4, r0, #0x0 + add r0, r1, #0x0 + bl FUN_020519E4 + add r1, r0, #0x0 + add r1, #0x86 + ldrh r1, [r1, #0x0] + cmp r1, r4 + beq _02051E7C + ldr r0, [r0, #0x48] + pop {r4, pc} +_02051E7C: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start FUN_02051E80 +FUN_02051E80: ; 0x02051E80 + push {r3-r5, lr} + add r5, r0, #0x0 + add r0, r3, #0x0 + add r4, r2, #0x0 + bl FUN_020519E4 + add r1, r0, #0x0 + add r1, #0x86 + ldrh r1, [r1, #0x0] + cmp r1, r5 + beq _02051EAC + ldrb r2, [r4, #0x0] + add r1, r0, #0x0 + add r1, #0x85 + strb r2, [r1, #0x0] + add r1, r0, #0x0 + add r1, #0x89 + ldrb r2, [r1, #0x0] + mov r1, #0x2 + add r0, #0x89 + orr r1, r2 + strb r1, [r0, #0x0] +_02051EAC: + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02051EB0 +FUN_02051EB0: ; 0x02051EB0 + push {r4-r6, lr} + add r4, r0, #0x0 + bl FUN_02046528 + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FUN_0204652C + add r4, r0, #0x0 + mov r1, #0x0 + ldr r0, [r4, #0x24] + add r2, r1, #0x0 + bl FUN_02050BF8 + add r6, r0, #0x0 + ldr r0, [r4, #0x28] + cmp r0, #0x7 + bls _02051ED6 + b _02052036 +_02051ED6: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02051EE2: ; jump table (using 16-bit offset) + .short _02051EF2 - _02051EE2 - 2; case 0 + .short _02051F7C - _02051EE2 - 2; case 1 + .short _02051FCC - _02051EE2 - 2; case 2 + .short _02051FDC - _02051EE2 - 2; case 3 + .short _02051FEC - _02051EE2 - 2; case 4 + .short _02051FFE - _02051EE2 - 2; case 5 + .short _0205200C - _02051EE2 - 2; case 6 + .short _02052028 - _02051EE2 - 2; case 7 +_02051EF2: + mov r0, #0x4 + bl FUN_0200AA80 + str r0, [r4, #0x18] + mov r0, #0x0 + mov r1, #0x1a + mov r2, #0x9 + mov r3, #0x4 + bl FUN_0200A86C + str r0, [r4, #0x1c] + mov r0, #0xc8 + mov r1, #0x4 + bl FUN_020219F4 + str r0, [r4, #0x0] + mov r0, #0xc8 + mov r1, #0x4 + bl FUN_020219F4 + str r0, [r4, #0x4] + ldrb r1, [r6, #0x3] + ldr r0, [r4, #0x1c] + ldr r2, [r4, #0x0] + add r1, r1, #0x2 + bl FUN_0200A8E0 + ldr r0, [r4, #0x24] + bl FUN_0202DFA4 + add r2, r0, #0x0 + ldr r0, [r4, #0x18] + mov r1, #0x0 + bl FUN_0200ABC0 + ldr r0, [r4, #0x18] + ldr r1, [r4, #0x4] + ldr r2, [r4, #0x0] + bl FUN_0200B7B8 + add r1, r4, #0x0 + ldr r0, [r5, #0x8] + add r1, #0x8 + mov r2, #0x3 + bl FUN_020545B8 + ldr r0, [r5, #0xc] + bl FUN_02023900 + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x8 + bl FUN_02054608 + ldr r0, [r5, #0xc] + bl FUN_02023900 + add r2, r0, #0x0 + add r0, r4, #0x0 + ldr r1, [r4, #0x4] + add r0, #0x8 + mov r3, #0x1 + bl FUN_02054658 + str r0, [r4, #0x20] + ldr r0, [r4, #0x28] + add r0, r0, #0x1 + str r0, [r4, #0x28] + b _0205203A +_02051F7C: + ldr r0, [r4, #0x20] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_020546C8 + cmp r0, #0x0 + beq _0205203A + ldr r0, _02052040 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x1 + tst r0, r1 + beq _0205203A + ldr r0, [r4, #0x1c] + bl FUN_0200A8B8 + ldr r0, [r4, #0x18] + bl FUN_0200AB18 + ldr r0, [r4, #0x0] + bl FUN_02021A20 + ldr r0, [r4, #0x4] + bl FUN_02021A20 + add r0, r4, #0x0 + add r0, #0x8 + mov r1, #0x0 + bl FUN_0200D0E0 + add r0, r4, #0x0 + add r0, #0x8 + bl FUN_02019178 + mov r0, #0x0 + bl FUN_021D7CA4 + ldr r0, [r4, #0x28] + add r0, r0, #0x1 + str r0, [r4, #0x28] + b _0205203A +_02051FCC: + bl FUN_0200E308 + cmp r0, #0x0 + beq _0205203A + ldr r0, [r4, #0x28] + add r0, r0, #0x1 + str r0, [r4, #0x28] + b _0205203A +_02051FDC: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02038680 + ldr r0, [r4, #0x28] + add r0, r0, #0x1 + str r0, [r4, #0x28] + b _0205203A +_02051FEC: + add r0, r5, #0x0 + bl FUN_0204647C + cmp r0, #0x0 + bne _0205203A + ldr r0, [r4, #0x28] + add r0, r0, #0x1 + str r0, [r4, #0x28] + b _0205203A +_02051FFE: + add r0, r5, #0x0 + bl FUN_0204649C + ldr r0, [r4, #0x28] + add r0, r0, #0x1 + str r0, [r4, #0x28] + b _0205203A +_0205200C: + add r0, r5, #0x0 + bl FUN_020464A4 + cmp r0, #0x0 + bne _0205203A + mov r0, #0x1 + bl FUN_021D7CA4 + bl FUN_0204CC9C + ldr r0, [r4, #0x28] + add r0, r0, #0x1 + str r0, [r4, #0x28] + b _0205203A +_02052028: + bl FUN_0204F7FC + add r0, r4, #0x0 + bl FUN_02016A18 + mov r0, #0x1 + pop {r4-r6, pc} +_02052036: + mov r0, #0x1 + pop {r4-r6, pc} +_0205203A: + mov r0, #0x0 + pop {r4-r6, pc} + nop +_02052040: .word 0x021C48B8 + + thumb_func_start FUN_02052044 +FUN_02052044: ; 0x02052044 + push {r3-r7, lr} + str r0, [sp, #0x0] + bl FUN_02031190 + add r5, r0, #0x0 + bl FUN_0204E4D4 + add r7, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0204E50C + add r6, r0, #0x0 + mov r4, #0x0 + bl FUN_02030F20 + cmp r0, #0x0 + ble _020520A6 +_02052066: + cmp r4, r5 + beq _0205209C + add r0, r4, #0x0 + bl FUN_0204E3EC + cmp r7, r0 + bne _0205209C + add r0, r4, #0x0 + bl FUN_0204E440 + cmp r6, r0 + bne _0205209C + mov r0, #0xb + mov r1, #0x2c + bl FUN_020169D8 + add r2, r0, #0x0 + str r4, [r2, #0x24] + mov r0, #0x0 + str r0, [r2, #0x28] + ldr r0, [sp, #0x0] + ldr r1, _020520A8 ; =FUN_02051EB0 + bl FUN_020463CC + bl FUN_02037760 + pop {r3-r7, pc} +_0205209C: + add r4, r4, #0x1 + bl FUN_02030F20 + cmp r4, r0 + blt _02052066 +_020520A6: + pop {r3-r7, pc} + .balign 4 +_020520A8: .word FUN_02051EB0 + 1 thumb_func_start FUN_020520AC FUN_020520AC: ; 0x020520AC @@ -262527,7 +262928,7 @@ _0207D684: str r1, [r4, r0] b _0207D692 _0207D690: - .byte 0xF8, 0xBD + pop {r3-r7, pc} _0207D692: mov r1, #0x92 lsl r1, r1, #0x2 |