summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/arm9_thumb.s565
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