diff options
Diffstat (limited to 'arm9/asm/unk_02038C78.s')
-rw-r--r-- | arm9/asm/unk_02038C78.s | 1744 |
1 files changed, 1744 insertions, 0 deletions
diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s new file mode 100644 index 00000000..785e5b48 --- /dev/null +++ b/arm9/asm/unk_02038C78.s @@ -0,0 +1,1744 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ thumb_func_start FUN_02038C78
+FUN_02038C78: ; 0x02038C78
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_02038E20
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_02038E60
+ ldr r1, _02038CA4 ; =FUN_02038D48
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020463CC
+ pop {r3-r7, pc}
+ nop
+_02038CA4: .word FUN_02038D48
+
+ thumb_func_start FUN_02038CA8
+FUN_02038CA8: ; 0x02038CA8
+ push {r4-r6, lr}
+ ldr r0, [r0, #0x10]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_0204652C
+ ldr r2, [sp, #0x1c]
+ mov r1, #0x1c
+ add r3, r2, #0x0
+ add r0, #0x50
+ mul r3, r1
+ add r1, r0, r3
+ str r4, [r0, r3]
+ ldr r0, [sp, #0x10]
+ str r6, [r1, #0x4]
+ str r0, [r1, #0x8]
+ ldr r0, [sp, #0x14]
+ str r0, [r1, #0xc]
+ ldr r0, [sp, #0x18]
+ str r0, [r1, #0x10]
+ str r5, [r1, #0x14]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02038CD8
+FUN_02038CD8: ; 0x02038CD8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ str r2, [sp, #0x4]
+ add r5, r3, #0x0
+ bl FUN_02046528
+ str r0, [sp, #0x8]
+ bl FUN_02038E20
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x8]
+ ldr r3, [sp, #0x4]
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ str r5, [sp, #0x0]
+ bl FUN_02038E60
+ ldr r1, _02038D0C ; =FUN_02038D48
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02038D0C: .word FUN_02038D48
+
+ thumb_func_start FUN_02038D10
+FUN_02038D10: ; 0x02038D10
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_02046528
+ str r0, [sp, #0x4]
+ bl FUN_02038E20
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_02038E60
+ ldr r1, _02038D44 ; =FUN_02038D48
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020463EC
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02038D44: .word FUN_02038D48
+
+ thumb_func_start FUN_02038D48
+FUN_02038D48: ; 0x02038D48
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ ldrb r1, [r4, #0x4]
+ str r0, [sp, #0x0]
+ cmp r1, #0x0
+ beq _02038D68
+ cmp r1, #0x1
+ beq _02038D9E
+ b _02038E1A
+_02038D68:
+ ldrh r1, [r4, #0xa]
+ bl FUN_02038EB0
+ str r0, [r4, #0x38]
+ mov r0, #0x1
+ strb r0, [r4, #0x9]
+ mov r0, #0x8
+ mov r1, #0x40
+ mov r2, #0xb
+ bl FUN_0200AA90
+ str r0, [r4, #0x40]
+ mov r0, #0x1
+ lsl r0, r0, #0xa
+ mov r1, #0xb
+ bl FUN_020219F4
+ str r0, [r4, #0x44]
+ mov r0, #0x1
+ lsl r0, r0, #0xa
+ mov r1, #0xb
+ bl FUN_020219F4
+ str r0, [r4, #0x48]
+ ldrb r0, [r4, #0x4]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x4]
+_02038D9E:
+ mov r0, #0x0
+ add r7, r4, #0x0
+ str r0, [sp, #0x4]
+ add r5, r4, #0x0
+ add r7, #0x9
+_02038DA8:
+ ldr r6, [r5, #0x38]
+ cmp r6, #0x0
+ beq _02038DD2
+ add r0, r6, #0x0
+ bl RunScriptCommand
+ cmp r0, #0x0
+ bne _02038DD2
+ add r0, r6, #0x0
+ bl FUN_02038E48
+ ldrb r0, [r4, #0x9]
+ cmp r0, #0x0
+ bne _02038DC8
+ bl ErrorHandling
+_02038DC8:
+ mov r0, #0x0
+ str r0, [r5, #0x38]
+ ldrb r0, [r7, #0x0]
+ sub r0, r0, #0x1
+ strb r0, [r7, #0x0]
+_02038DD2:
+ ldr r0, [sp, #0x4]
+ add r5, r5, #0x4
+ add r0, r0, #0x1
+ str r0, [sp, #0x4]
+ cmp r0, #0x2
+ blt _02038DA8
+ ldrb r0, [r4, #0x9]
+ cmp r0, #0x0
+ bne _02038E1A
+ add r0, r4, #0x0
+ add r0, #0xa4
+ ldr r5, [r0, #0x0]
+ ldr r0, [r4, #0x40]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x44]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x48]
+ bl FUN_02021A20
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ cmp r5, #0x0
+ beq _02038E14
+ ldr r0, [sp, #0x0]
+ blx r5
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02038E14:
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02038E1A:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02038E20
+FUN_02038E20: ; 0x02038E20
+ push {r4, lr}
+ mov r0, #0xb
+ mov r1, #0xdc
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _02038E32
+ bl ErrorHandling
+_02038E32:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0xdc
+ blx Call_FillMemWithValue
+ ldr r0, _02038E44 ; =0x0003643F
+ str r0, [r4, #0x0]
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02038E44: .word 0x0003643F
+
+ thumb_func_start FUN_02038E48
+FUN_02038E48: ; 0x02038E48
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x78]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x7c]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02038E60
+FUN_02038E60: ; 0x02038E60
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x36
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02039300
+ str r0, [sp, #0x0]
+ ldr r0, [r7, #0x38]
+ bl FUN_020552F8
+ str r0, [r5, #0x28]
+ str r6, [r5, #0x2c]
+ ldr r0, [sp, #0x18]
+ strh r4, [r5, #0xa]
+ str r0, [r5, #0x34]
+ cmp r6, #0x0
+ beq _02038E92
+ add r0, r6, #0x0
+ bl FUN_02058448
+ ldr r1, [sp, #0x0]
+ strh r0, [r1, #0x0]
+_02038E92:
+ mov r0, #0x7d
+ lsl r0, r0, #0x6
+ cmp r4, r0
+ blo _02038EA8
+ ldr r0, _02038EAC ; =0x0000225F
+ cmp r4, r0
+ bhi _02038EA8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020396E8
+_02038EA8:
+ pop {r3-r7, pc}
+ nop
+_02038EAC: .word 0x0000225F
+
+ thumb_func_start FUN_02038EB0
+FUN_02038EB0: ; 0x02038EB0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x84
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _02038EC6
+ bl ErrorHandling
+_02038EC6:
+ ldr r2, _02038EE4 ; =0x020F34DC
+ ldr r1, _02038EE8 ; =gScriptCmdTable
+ ldr r2, [r2, #0x0]
+ add r0, r4, #0x0
+ bl InitScriptContext
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x0
+ bl FUN_02038EEC
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ nop
+_02038EE4: .word 0x020F34DC
+_02038EE8: .word gScriptCmdTable
+
+ thumb_func_start FUN_02038EEC
+FUN_02038EEC: ; 0x02038EEC
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r3, r4, #0x0
+ add r5, r0, #0x0
+ add r3, #0x80
+ str r5, [r3, #0x0]
+ bl FUN_02038F18
+ add r6, r0, #0x0
+ ldr r1, [r4, #0x7c]
+ add r0, r4, #0x0
+ bl SetupBytecodeScript
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_02039484
+ ldr r1, [r5, #0x10]
+ add r0, r4, #0x0
+ bl FUN_02038B6C
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02038F18
+FUN_02038F18: ; 0x02038F18
+ push {r3-r5, lr}
+ ldr r3, _02039210 ; =0x0000283C
+ add r4, r2, #0x0
+ cmp r4, r3
+ blo _02038F36
+ mov r3, #0x1f
+ ldr r2, _02039214 ; =0x000003D1
+ lsl r3, r3, #0x4
+ bl FUN_020392B4
+ ldr r0, _02039210 ; =0x0000283C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038F36:
+ add r2, r3, #0x0
+ sub r2, #0x64
+ cmp r4, r2
+ blo _02038F52
+ ldr r2, _02039218 ; =0x00000175
+ add r3, r2, #0x0
+ sub r3, #0x29
+ bl FUN_020392B4
+ ldr r0, _0203921C ; =0x000027D8
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038F52:
+ add r2, r3, #0x0
+ sub r2, #0x96
+ cmp r4, r2
+ blo _02038F6C
+ ldr r2, _02039220 ; =0x00000412
+ ldr r3, _02039224 ; =0x00000232
+ bl FUN_020392B4
+ ldr r0, _02039228 ; =0x000027A6
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038F6C:
+ sub r3, #0xc8
+ cmp r4, r3
+ blo _02038F84
+ ldr r2, _0203922C ; =0x00000411
+ ldr r3, _02039230 ; =0x00000233
+ bl FUN_020392B4
+ ldr r0, _02039234 ; =0x00002774
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038F84:
+ ldr r3, _02039238 ; =0x00002710
+ cmp r4, r3
+ blo _02038F9E
+ ldr r2, _0203923C ; =0x00000177
+ add r3, r2, #0x0
+ sub r3, #0x29
+ bl FUN_020392B4
+ ldr r0, _02039238 ; =0x00002710
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038F9E:
+ add r2, r3, #0x0
+ sub r2, #0x32
+ cmp r4, r2
+ blo _02038FBC
+ mov r2, #0x5e
+ lsl r2, r2, #0x2
+ add r3, r2, #0x0
+ sub r3, #0x29
+ bl FUN_020392B4
+ ldr r0, _02039240 ; =0x000026DE
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038FBC:
+ add r2, r3, #0x0
+ sub r2, #0x64
+ cmp r4, r2
+ blo _02038FD6
+ ldr r2, _02039244 ; =0x0000016D
+ mov r3, #0xc7
+ bl FUN_020392B4
+ ldr r0, _02039248 ; =0x000026AC
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038FD6:
+ add r2, r3, #0x0
+ sub r2, #0xc8
+ cmp r4, r2
+ blo _02038FF0
+ mov r2, #0xce
+ mov r3, #0xcb
+ bl FUN_020392B4
+ ldr r0, _0203924C ; =0x00002648
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038FF0:
+ ldr r5, _02039250 ; =0x000025E4
+ cmp r4, r5
+ blo _0203900A
+ ldr r2, _02039254 ; =0x00000183
+ add r3, r2, #0x0
+ sub r3, #0x9
+ bl FUN_020392B4
+ add r0, r5, #0x0
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_0203900A:
+ add r2, r5, #0x0
+ sub r2, #0x64
+ cmp r4, r2
+ blo _02039026
+ ldr r2, _02039258 ; =0x00000179
+ mov r3, #0xc7
+ bl FUN_020392B4
+ add r0, r5, #0x0
+ sub r0, #0x64
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02039026:
+ sub r5, #0xc8
+ cmp r4, r5
+ blo _02039042
+ mov r2, #0x1d
+ lsl r2, r2, #0x4
+ add r3, r2, #0x0
+ add r3, #0x1c
+ bl FUN_020392B4
+ ldr r0, _0203925C ; =0x0000251C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02039042:
+ ldr r5, _02039260 ; =0x000024B8
+ cmp r4, r5
+ blo _0203905C
+ ldr r2, _02039264 ; =0x00000187
+ add r3, r2, #0x0
+ sub r3, #0xa
+ bl FUN_020392B4
+ add r0, r5, #0x0
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_0203905C:
+ add r2, r5, #0x0
+ sub r2, #0x64
+ cmp r4, r2
+ blo _0203907C
+ mov r2, #0x5d
+ lsl r2, r2, #0x2
+ add r3, r2, #0x0
+ sub r3, #0x2b
+ bl FUN_020392B4
+ add r0, r5, #0x0
+ sub r0, #0x64
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_0203907C:
+ sub r5, #0xc8
+ cmp r4, r5
+ blo _02039098
+ mov r2, #0x61
+ lsl r2, r2, #0x2
+ add r3, r2, #0x0
+ sub r3, #0x9
+ bl FUN_020392B4
+ ldr r0, _02039268 ; =0x000023F0
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02039098:
+ ldr r2, _0203926C ; =0x0000238C
+ cmp r4, r2
+ blo _020390B0
+ mov r2, #0x0
+ mov r3, #0x9
+ bl FUN_020392B4
+ ldr r0, _0203926C ; =0x0000238C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020390B0:
+ add r5, r2, #0x0
+ sub r5, #0x64
+ cmp r4, r5
+ blo _020390CA
+ mov r2, #0xcf
+ add r3, r2, #0x0
+ bl FUN_020392B4
+ ldr r0, _02039270 ; =0x00002328
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020390CA:
+ add r5, r2, #0x0
+ sub r5, #0x82
+ cmp r4, r5
+ blo _020390E4
+ ldr r2, _02039274 ; =0x00000186
+ mov r3, #0x7
+ bl FUN_020392B4
+ ldr r0, _02039278 ; =0x0000230A
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020390E4:
+ add r5, r2, #0x0
+ sub r5, #0x96
+ cmp r4, r5
+ blo _02039100
+ ldr r2, _0203927C ; =0x000001CF
+ add r3, r2, #0x0
+ add r3, #0x17
+ bl FUN_020392B4
+ ldr r0, _02039280 ; =0x000022F6
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02039100:
+ sub r2, #0xc8
+ cmp r4, r2
+ blo _0203911A
+ ldr r2, _02039284 ; =0x00000185
+ add r3, r2, #0x0
+ sub r3, #0x9
+ bl FUN_020392B4
+ ldr r0, _02039288 ; =0x000022C4
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_0203911A:
+ ldr r2, _0203928C ; =0x00002260
+ cmp r4, r2
+ blo _02039134
+ ldr r2, _02039290 ; =0x000001CE
+ add r3, r2, #0x0
+ add r3, #0x17
+ bl FUN_020392B4
+ ldr r0, _0203928C ; =0x00002260
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02039134:
+ mov r2, #0x7d
+ lsl r2, r2, #0x6
+ cmp r4, r2
+ blo _02039152
+ ldr r2, _02039294 ; =0x00000176
+ add r3, r2, #0x0
+ sub r3, #0x29
+ bl FUN_020392B4
+ mov r0, #0x7d
+ lsl r0, r0, #0x6
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02039152:
+ ldr r5, _02039298 ; =0x00001B58
+ cmp r4, r5
+ blo _0203916C
+ ldr r2, _0203929C ; =0x00000172
+ add r3, r2, #0x0
+ sub r3, #0x2d
+ bl FUN_020392B4
+ add r0, r5, #0x0
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_0203916C:
+ lsr r5, r3, #0x1
+ cmp r4, r5
+ blo _02039186
+ mov r2, #0x41
+ lsl r2, r2, #0x4
+ mov r3, #0xc7
+ bl FUN_020392B4
+ ldr r0, _020392A0 ; =0x00001388
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02039186:
+ ldr r5, _020392A4 ; =0x00000BB8
+ cmp r4, r5
+ blo _020391A0
+ mov r2, #0x41
+ lsl r2, r2, #0x4
+ mov r3, #0xc7
+ bl FUN_020392B4
+ add r0, r5, #0x0
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020391A0:
+ sub r5, #0xc8
+ cmp r4, r5
+ blo _020391BC
+ ldr r2, _020392A8 ; =0x0000017A
+ add r3, r2, #0x0
+ sub r3, #0x1c
+ bl FUN_020392B4
+ mov r0, #0xaf
+ lsl r0, r0, #0x4
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020391BC:
+ lsr r3, r3, #0x2
+ cmp r4, r3
+ blo _020391D4
+ mov r2, #0x1
+ mov r3, #0xd
+ bl FUN_020392B4
+ ldr r0, _020392AC ; =0x000009C4
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020391D4:
+ lsr r2, r2, #0x2
+ cmp r4, r2
+ blo _020391EE
+ mov r2, #0xcd
+ mov r3, #0xc7
+ bl FUN_020392B4
+ mov r0, #0x7d
+ lsl r0, r0, #0x4
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020391EE:
+ cmp r4, #0x1
+ blo _020391FE
+ bl FUN_020392D8
+ sub r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020391FE:
+ ldr r2, _020392B0 ; =0x00000171
+ add r3, r2, #0x0
+ sub r3, #0x34
+ bl FUN_020392B4
+ mov r4, #0x0
+_0203920A:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_02039210: .word 0x0000283C
+_02039214: .word 0x000003D1
+_02039218: .word 0x00000175
+_0203921C: .word 0x000027D8
+_02039220: .word 0x00000412
+_02039224: .word 0x00000232
+_02039228: .word 0x000027A6
+_0203922C: .word 0x00000411
+_02039230: .word 0x00000233
+_02039234: .word 0x00002774
+_02039238: .word 0x00002710
+_0203923C: .word 0x00000177
+_02039240: .word 0x000026DE
+_02039244: .word 0x0000016D
+_02039248: .word 0x000026AC
+_0203924C: .word 0x00002648
+_02039250: .word 0x000025E4
+_02039254: .word 0x00000183
+_02039258: .word 0x00000179
+_0203925C: .word 0x0000251C
+_02039260: .word 0x000024B8
+_02039264: .word 0x00000187
+_02039268: .word 0x000023F0
+_0203926C: .word 0x0000238C
+_02039270: .word 0x00002328
+_02039274: .word 0x00000186
+_02039278: .word 0x0000230A
+_0203927C: .word 0x000001CF
+_02039280: .word 0x000022F6
+_02039284: .word 0x00000185
+_02039288: .word 0x000022C4
+_0203928C: .word 0x00002260
+_02039290: .word 0x000001CE
+_02039294: .word 0x00000176
+_02039298: .word 0x00001B58
+_0203929C: .word 0x00000172
+_020392A0: .word 0x00001388
+_020392A4: .word 0x00000BB8
+_020392A8: .word 0x0000017A
+_020392AC: .word 0x000009C4
+_020392B0: .word 0x00000171
+
+ thumb_func_start FUN_020392B4
+FUN_020392B4: ; 0x020392B4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r1, r2, #0x0
+ add r4, r3, #0x0
+ mov r0, #0xa
+ mov r2, #0xb
+ bl LoadFromNarc_2
+ str r0, [r5, #0x7c]
+ mov r0, #0x1
+ mov r1, #0x1a
+ add r2, r4, #0x0
+ mov r3, #0xb
+ bl FUN_0200A86C
+ str r0, [r5, #0x78]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020392D8
+FUN_020392D8: ; 0x020392D8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x1c]
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ bl FUN_0203949C
+ str r0, [r4, #0x7c]
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B0
+ add r2, r0, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r3, #0xb
+ bl FUN_0200A86C
+ str r0, [r4, #0x78]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02039300
+FUN_02039300: ; 0x02039300
+ push {r3, lr}
+ cmp r1, #0x36
+ bls _02039308
+ b _02039430
+_02039308:
+ add r2, r1, r1
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02039314: ; jump table (using 16-bit offset)
+ .short _02039382 - _02039314 - 2; case 0
+ .short _02039386 - _02039314 - 2; case 1
+ .short _0203938A - _02039314 - 2; case 2
+ .short _0203938E - _02039314 - 2; case 3
+ .short _02039392 - _02039314 - 2; case 4
+ .short _02039396 - _02039314 - 2; case 5
+ .short _0203939A - _02039314 - 2; case 6
+ .short _0203939E - _02039314 - 2; case 7
+ .short _020393A2 - _02039314 - 2; case 8
+ .short _020393A6 - _02039314 - 2; case 9
+ .short _020393AA - _02039314 - 2; case 10
+ .short _020393AE - _02039314 - 2; case 11
+ .short _020393B2 - _02039314 - 2; case 12
+ .short _020393B6 - _02039314 - 2; case 13
+ .short _020393BA - _02039314 - 2; case 14
+ .short _020393BE - _02039314 - 2; case 15
+ .short _020393C2 - _02039314 - 2; case 16
+ .short _020393C6 - _02039314 - 2; case 17
+ .short _020393CA - _02039314 - 2; case 18
+ .short _020393CE - _02039314 - 2; case 19
+ .short _020393D2 - _02039314 - 2; case 20
+ .short _020393D6 - _02039314 - 2; case 21
+ .short _020393DA - _02039314 - 2; case 22
+ .short _020393DE - _02039314 - 2; case 23
+ .short _020393E2 - _02039314 - 2; case 24
+ .short _020393E6 - _02039314 - 2; case 25
+ .short _020393EA - _02039314 - 2; case 26
+ .short _020393EE - _02039314 - 2; case 27
+ .short _020393F2 - _02039314 - 2; case 28
+ .short _020393F6 - _02039314 - 2; case 29
+ .short _020393FA - _02039314 - 2; case 30
+ .short _020393FE - _02039314 - 2; case 31
+ .short _02039402 - _02039314 - 2; case 32
+ .short _02039406 - _02039314 - 2; case 33
+ .short _0203940A - _02039314 - 2; case 34
+ .short _0203940E - _02039314 - 2; case 35
+ .short _02039412 - _02039314 - 2; case 36
+ .short _02039416 - _02039314 - 2; case 37
+ .short _0203941A - _02039314 - 2; case 38
+ .short _0203941E - _02039314 - 2; case 39
+ .short _02039422 - _02039314 - 2; case 40
+ .short _02039426 - _02039314 - 2; case 41
+ .short _02039426 - _02039314 - 2; case 42
+ .short _02039426 - _02039314 - 2; case 43
+ .short _02039426 - _02039314 - 2; case 44
+ .short _02039426 - _02039314 - 2; case 45
+ .short _02039426 - _02039314 - 2; case 46
+ .short _02039426 - _02039314 - 2; case 47
+ .short _02039426 - _02039314 - 2; case 48
+ .short _02039426 - _02039314 - 2; case 49
+ .short _02039426 - _02039314 - 2; case 50
+ .short _02039426 - _02039314 - 2; case 51
+ .short _02039426 - _02039314 - 2; case 52
+ .short _02039426 - _02039314 - 2; case 53
+ .short _02039426 - _02039314 - 2; case 54
+_02039382:
+ add r0, #0x10
+ pop {r3, pc}
+_02039386:
+ add r0, #0x14
+ pop {r3, pc}
+_0203938A:
+ add r0, #0x24
+ pop {r3, pc}
+_0203938E:
+ add r0, r0, #0x5
+ pop {r3, pc}
+_02039392:
+ add r0, r0, #0x6
+ pop {r3, pc}
+_02039396:
+ add r0, r0, #0x7
+ pop {r3, pc}
+_0203939A:
+ add r0, #0x8
+ pop {r3, pc}
+_0203939E:
+ add r0, #0x9
+ pop {r3, pc}
+_020393A2:
+ add r0, #0xa
+ pop {r3, pc}
+_020393A6:
+ add r0, #0x28
+ pop {r3, pc}
+_020393AA:
+ add r0, #0x2c
+ pop {r3, pc}
+_020393AE:
+ add r0, #0x30
+ pop {r3, pc}
+_020393B2:
+ add r0, #0x34
+ pop {r3, pc}
+_020393B6:
+ add r0, #0x38
+ pop {r3, pc}
+_020393BA:
+ add r0, #0x3c
+ pop {r3, pc}
+_020393BE:
+ add r0, #0x40
+ pop {r3, pc}
+_020393C2:
+ add r0, #0x44
+ pop {r3, pc}
+_020393C6:
+ add r0, #0x48
+ pop {r3, pc}
+_020393CA:
+ add r0, #0x4c
+ pop {r3, pc}
+_020393CE:
+ add r0, #0xa8
+ pop {r3, pc}
+_020393D2:
+ add r0, #0xac
+ pop {r3, pc}
+_020393D6:
+ add r0, #0xb0
+ pop {r3, pc}
+_020393DA:
+ add r0, #0xb4
+ pop {r3, pc}
+_020393DE:
+ add r0, #0xc
+ pop {r3, pc}
+_020393E2:
+ add r0, #0x50
+ pop {r3, pc}
+_020393E6:
+ add r0, #0x54
+ pop {r3, pc}
+_020393EA:
+ add r0, #0x58
+ pop {r3, pc}
+_020393EE:
+ add r0, #0x5c
+ pop {r3, pc}
+_020393F2:
+ add r0, #0x60
+ pop {r3, pc}
+_020393F6:
+ add r0, #0x64
+ pop {r3, pc}
+_020393FA:
+ add r0, #0x68
+ pop {r3, pc}
+_020393FE:
+ add r0, #0x6c
+ pop {r3, pc}
+_02039402:
+ add r0, #0x70
+ pop {r3, pc}
+_02039406:
+ add r0, #0x74
+ pop {r3, pc}
+_0203940A:
+ add r0, #0x78
+ pop {r3, pc}
+_0203940E:
+ add r0, #0x7c
+ pop {r3, pc}
+_02039412:
+ add r0, #0x80
+ pop {r3, pc}
+_02039416:
+ add r0, #0x84
+ pop {r3, pc}
+_0203941A:
+ add r0, #0xb8
+ pop {r3, pc}
+_0203941E:
+ add r0, #0xc8
+ pop {r3, pc}
+_02039422:
+ add r0, #0xd8
+ pop {r3, pc}
+_02039426:
+ sub r1, #0x29
+ add r0, #0x88
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ pop {r3, pc}
+_02039430:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02039438
+FUN_02039438: ; 0x02039438
+ push {r3-r5, lr}
+ ldr r0, [r0, #0x10]
+ add r5, r1, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _0203945C ; =0x0003643F
+ cmp r1, r0
+ beq _02039450
+ bl ErrorHandling
+_02039450:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02039300
+ pop {r3-r5, pc}
+ nop
+_0203945C: .word 0x0003643F
+
+ thumb_func_start FUN_02039460
+FUN_02039460: ; 0x02039460
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x10]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02035068
+ cmp r0, #0x1
+ bne _0203947C
+ ldr r0, _02039480 ; =FUN_020351A0
+ add r4, #0xa4
+ str r0, [r4, #0x0]
+_0203947C:
+ pop {r3-r5, pc}
+ nop
+_02039480: .word FUN_020351A0
+
+ thumb_func_start FUN_02039484
+FUN_02039484: ; 0x02039484
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r2, [r4, #0x8]
+ lsl r1, r1, #0x2
+ add r1, r2, r1
+ str r1, [r4, #0x8]
+ bl ScriptReadWord
+ ldr r1, [r4, #0x8]
+ add r0, r1, r0
+ str r0, [r4, #0x8]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203949C
+FUN_0203949C: ; 0x0203949C
+ push {r3, lr}
+ bl FUN_02034788
+ add r1, r0, #0x0
+ mov r0, #0xa
+ mov r2, #0xb
+ bl LoadFromNarc_2
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020394B0
+FUN_020394B0: ; 0x020394B0
+ ldr r3, _020394B4 ; =FUN_02034774
+ bx r3
+ .balign 4
+_020394B4: .word FUN_02034774
+
+ thumb_func_start FUN_020394B8
+FUN_020394B8: ; 0x020394B8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ mov r1, #0x1
+ lsl r1, r1, #0xe
+ cmp r4, r1
+ bhs _020394D0
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020394D0:
+ lsl r1, r1, #0x1
+ cmp r4, r1
+ bhs _020394DE
+ add r1, r4, #0x0
+ bl FUN_02046380
+ pop {r3-r5, pc}
+_020394DE:
+ ldr r1, _020394EC ; =0x00007FD7
+ add r0, r5, #0x0
+ sub r1, r4, r1
+ bl FUN_02039438
+ pop {r3-r5, pc}
+ nop
+_020394EC: .word 0x00007FD7
+
+ thumb_func_start FUN_020394F0
+FUN_020394F0: ; 0x020394F0
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_020394B8
+ cmp r0, #0x0
+ beq _020394FE
+ ldrh r4, [r0, #0x0]
+_020394FE:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039504
+FUN_02039504: ; 0x02039504
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x10
+ blo _02039512
+ bl ErrorHandling
+_02039512:
+ ldr r1, _02039524 ; =0x00004020
+ add r0, r5, #0x0
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_020394F0
+ pop {r3-r5, pc}
+ nop
+_02039524: .word 0x00004020
+
+ thumb_func_start FUN_02039528
+FUN_02039528: ; 0x02039528
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ add r1, r4, #0x0
+ bl FUN_020462B8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203953C
+FUN_0203953C: ; 0x0203953C
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ add r1, r4, #0x0
+ bl FUN_020462E4
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039550
+FUN_02039550: ; 0x02039550
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ add r1, r4, #0x0
+ bl FUN_0204630C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039564
+FUN_02039564: ; 0x02039564
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x1
+ add r4, r0, #0x0
+ bl FUN_02046338
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ strb r1, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ strb r1, [r0, #0x6]
+ strb r1, [r0, #0x7]
+ mov r1, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0xe
+ bl FUN_02046380
+ mov r1, #0x0
+ mov r2, #0x40
+ blx Call_FillMemWithValue
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203959C
+FUN_0203959C: ; 0x0203959C
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #0xaa
+ lsl r1, r1, #0x4
+ bl FUN_02046338
+ mov r2, #0x18
+ mov r1, #0x0
+_020395B0:
+ strb r1, [r0, #0x0]
+ add r0, r0, #0x1
+ sub r2, r2, #0x1
+ bne _020395B0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020395BC
+FUN_020395BC: ; 0x020395BC
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ mov r1, #0x29
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02039438
+ strh r4, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2a
+ bl FUN_02039438
+ strh r6, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2b
+ bl FUN_02039438
+ strh r7, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2c
+ bl FUN_02039438
+ add r1, sp, #0x8
+ ldrh r1, [r1, #0x10]
+ strh r1, [r0, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020395F4
+FUN_020395F4: ; 0x020395F4
+ ldr r1, _02039610 ; =0x00001388
+ cmp r0, r1
+ bhs _02039604
+ ldr r1, _02039614 ; =0x00000BB7
+ sub r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_02039604:
+ sub r1, r1, #0x1
+ sub r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+ nop
+_02039610: .word 0x00001388
+_02039614: .word 0x00000BB7
+
+ thumb_func_start FUN_02039618
+FUN_02039618: ; 0x02039618
+ ldr r1, _02039628 ; =0x00001388
+ cmp r0, r1
+ blo _02039622
+ mov r0, #0x1
+ bx lr
+_02039622:
+ mov r0, #0x0
+ bx lr
+ nop
+_02039628: .word 0x00001388
+
+ thumb_func_start FUN_0203962C
+FUN_0203962C: ; 0x0203962C
+ push {r3, lr}
+ mov r1, #0x9
+ bl FUN_0206AC74
+ cmp r0, #0x0
+ beq _0203963C
+ mov r0, #0x1
+ pop {r3, pc}
+_0203963C:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02039640
+FUN_02039640: ; 0x02039640
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ mov r1, #0x55
+ lsl r1, r1, #0x4
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_020462B8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203965C
+FUN_0203965C: ; 0x0203965C
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ mov r1, #0x55
+ lsl r1, r1, #0x4
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_020462E4
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039678
+FUN_02039678: ; 0x02039678
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ mov r1, #0x55
+ lsl r1, r1, #0x4
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0204630C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039694
+FUN_02039694: ; 0x02039694
+ ldr r1, _020396A0 ; =0x00001C66
+ sub r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+ nop
+_020396A0: .word 0x00001C66
+
+ thumb_func_start FUN_020396A4
+FUN_020396A4: ; 0x020396A4
+ mov r1, #0x7d
+ lsl r1, r1, #0x6
+ sub r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+
+ thumb_func_start FUN_020396B0
+FUN_020396B0: ; 0x020396B0
+ push {r4, lr}
+ ldr r4, _020396E4 ; =0x020F2DB4
+ bl FUN_020396A4
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ mov r1, #0x0
+ add r2, r4, #0x0
+_020396C0:
+ ldrh r0, [r2, #0x6]
+ cmp r3, r0
+ beq _020396CE
+ add r1, r1, #0x1
+ add r2, #0x8
+ cmp r1, #0xe5
+ blo _020396C0
+_020396CE:
+ cmp r1, #0xe5
+ blo _020396DA
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r4, pc}
+_020396DA:
+ lsl r0, r1, #0x3
+ add r0, r4, r0
+ ldrb r0, [r0, #0x3]
+ pop {r4, pc}
+ nop
+_020396E4: .word 0x020F2DB4
+
+ thumb_func_start FUN_020396E8
+FUN_020396E8: ; 0x020396E8
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ mov r1, #0x29
+ bl FUN_02039300
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x2a
+ bl FUN_02039300
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x2b
+ bl FUN_02039300
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020396A4
+ lsl r0, r0, #0x18
+ ldr r2, _02039750 ; =0x020F2DB4
+ lsr r3, r0, #0x18
+ mov r1, #0x0
+_02039718:
+ ldrh r0, [r2, #0x6]
+ cmp r3, r0
+ beq _02039726
+ add r1, r1, #0x1
+ add r2, #0x8
+ cmp r1, #0xe5
+ blo _02039718
+_02039726:
+ cmp r1, #0xe5
+ blo _02039732
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02039732:
+ lsl r0, r1, #0x3
+ ldr r1, _02039750 ; =0x020F2DB4
+ ldrh r1, [r1, r0]
+ strh r1, [r7, #0x0]
+ ldr r1, _02039750 ; =0x020F2DB4
+ add r0, r1, r0
+ ldrb r0, [r0, #0x2]
+ strh r0, [r6, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02039694
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_02039750: .word 0x020F2DB4
+
+ thumb_func_start FUN_02039754
+FUN_02039754: ; 0x02039754
+ push {r4-r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x0]
+ add r4, r1, #0x0
+ mov r6, #0x0
+ bl FUN_02034AF8
+ add r5, r0, #0x0
+ add r2, r5, #0x1
+ mov r1, #0x6
+ add r0, r4, #0x0
+ mul r1, r2
+ bl FUN_02016998
+ str r0, [sp, #0x1c]
+ cmp r5, #0x0
+ bne _02039786
+ mov r2, #0xff
+ add r1, r0, #0x0
+ strb r2, [r1, #0x4]
+ ldr r2, _02039870 ; =0x0000FFFF
+ add sp, #0x24
+ strh r2, [r1, #0x0]
+ strh r2, [r1, #0x2]
+ pop {r4-r7, pc}
+_02039786:
+ ldr r0, [sp, #0x0]
+ bl FUN_02034AF0
+ add r4, r0, #0x0
+ bne _020397A0
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xff
+ strb r1, [r0, #0x4]
+ ldr r1, _02039870 ; =0x0000FFFF
+ add sp, #0x24
+ strh r1, [r0, #0x0]
+ strh r1, [r0, #0x2]
+ pop {r4-r7, pc}
+_020397A0:
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055320
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_0205532C
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ sub r0, r0, #0x7
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #0x7
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ sub r0, r0, #0x7
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #0x6
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ bge _020397D6
+ add r0, r6, #0x0
+ str r0, [sp, #0x10]
+_020397D6:
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ bge _020397E0
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+_020397E0:
+ add r0, r5, #0x1
+ mov r7, #0x0
+ str r0, [sp, #0x20]
+ cmp r0, #0x0
+ ble _02039856
+ ldr r5, [sp, #0x1c]
+_020397EC:
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x2
+ bne _0203984C
+ ldrh r0, [r4, #0x0]
+ bl FUN_02039694
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_02039528
+ cmp r0, #0x0
+ bne _0203984C
+ ldr r1, [r4, #0x4]
+ ldr r0, [sp, #0x10]
+ cmp r1, r0
+ blt _0203984C
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ bgt _0203984C
+ ldr r1, [r4, #0x8]
+ ldr r0, [sp, #0x8]
+ cmp r1, r0
+ blt _0203984C
+ ldr r0, [sp, #0x4]
+ cmp r1, r0
+ bgt _0203984C
+ ldrh r0, [r4, #0x0]
+ bl FUN_020396B0
+ strb r0, [r5, #0x4]
+ ldr r1, [r4, #0x4]
+ ldr r0, [sp, #0x18]
+ sub r1, r0, r1
+ mov r0, #0x7
+ sub r0, r0, r1
+ blx abs
+ strh r0, [r5, #0x0]
+ ldr r1, [r4, #0x8]
+ ldr r0, [sp, #0x14]
+ sub r1, r0, r1
+ mov r0, #0x7
+ sub r0, r0, r1
+ blx abs
+ strh r0, [r5, #0x2]
+ add r5, r5, #0x6
+ add r6, r6, #0x1
+_0203984C:
+ ldr r0, [sp, #0x20]
+ add r7, r7, #0x1
+ add r4, #0x14
+ cmp r7, r0
+ blt _020397EC
+_02039856:
+ mov r0, #0x6
+ add r3, r6, #0x0
+ mul r3, r0
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xff
+ add r2, r0, r3
+ strb r1, [r2, #0x4]
+ ldr r1, _02039870 ; =0x0000FFFF
+ strh r1, [r0, r3]
+ strh r1, [r2, #0x2]
+ add sp, #0x24
+ pop {r4-r7, pc}
+ nop
+_02039870: .word 0x0000FFFF
+
+ thumb_func_start FUN_02039874
+FUN_02039874: ; 0x02039874
+ ldr r3, _0203987C ; =FUN_02039880
+ mov r1, #0x96
+ lsl r1, r1, #0x6
+ bx r3
+ .balign 4
+_0203987C: .word FUN_02039880
+
+ thumb_func_start FUN_02039880
+FUN_02039880: ; 0x02039880
+ push {r4, lr}
+ bl FUN_02038EB0
+ add r4, r0, #0x0
+_02039888:
+ add r0, r4, #0x0
+ bl RunScriptCommand
+ cmp r0, #0x1
+ beq _02039888
+ add r0, r4, #0x0
+ bl FUN_02038E48
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203989C
+FUN_0203989C: ; 0x0203989C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02034D2C
+ add r1, r0, #0x0
+ bne _020398AE
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020398AE:
+ cmp r4, #0x1
+ bne _020398BC
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02039914
+ b _020398C2
+_020398BC:
+ add r1, r4, #0x0
+ bl _020398EC
+_020398C2:
+ add r1, r0, #0x0
+ ldr r0, _020398E8 ; =0x0000FFFF
+ cmp r1, r0
+ bne _020398CE
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020398CE:
+ cmp r4, #0x1
+ bne _020398DC
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02038C78
+ b _020398E2
+_020398DC:
+ add r0, r5, #0x0
+ bl FUN_02039880
+_020398E2:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ nop
+_020398E8: .word 0x0000FFFF
+_020398EC:
+ ldrb r2, [r0, #0x0]
+ cmp r2, #0x0
+ bne _020398F6
+ ldr r0, _02039910 ; =0x0000FFFF
+ bx lr
+_020398F6:
+ cmp r2, r1
+ bne _02039908
+ ldrb r1, [r0, #0x1]
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x8
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_02039908:
+ add r0, r0, #0x5
+ b _020398EC
+_0203990C: ; 0x0203990C
+ bx lr
+ nop
+_02039910: .word 0x0000FFFF
+
+ thumb_func_start FUN_02039914
+FUN_02039914: ; 0x02039914
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+_0203991A:
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02039924
+ ldr r0, _0203999C ; =0x0000FFFF
+ pop {r3-r7, pc}
+_02039924:
+ cmp r0, r2
+ bne _02039940
+ ldrb r0, [r4, #0x4]
+ ldrb r2, [r4, #0x2]
+ ldrb r3, [r4, #0x1]
+ lsl r1, r0, #0x18
+ ldrb r0, [r4, #0x3]
+ lsl r2, r2, #0x8
+ add r2, r3, r2
+ lsl r0, r0, #0x10
+ add r0, r0, r2
+ add r1, r1, r0
+ add r0, r4, #0x5
+ b _02039944
+_02039940:
+ add r4, r4, #0x5
+ b _0203991A
+_02039944:
+ cmp r1, #0x0
+ bne _0203994C
+ ldr r0, _0203999C ; =0x0000FFFF
+ pop {r3-r7, pc}
+_0203994C:
+ add r4, r0, r1
+_0203994E:
+ ldrb r1, [r4, #0x0]
+ cmp r1, #0x0
+ bne _02039958
+ ldr r0, _0203999C ; =0x0000FFFF
+ pop {r3-r7, pc}
+_02039958:
+ ldrb r0, [r4, #0x1]
+ lsl r0, r0, #0x8
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ bne _02039968
+ ldr r0, _0203999C ; =0x0000FFFF
+ pop {r3-r7, pc}
+_02039968:
+ ldrb r0, [r4, #0x3]
+ ldrb r2, [r4, #0x2]
+ lsl r0, r0, #0x8
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r5, #0x0
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020394F0
+ cmp r7, r0
+ bne _02039996
+ ldrb r0, [r4, #0x5]
+ ldrb r1, [r4, #0x4]
+ lsl r0, r0, #0x8
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3-r7, pc}
+_02039996:
+ add r4, r4, #0x6
+ b _0203994E
+ pop {r3-r7, pc}
+ .balign 4
+_0203999C: .word 0x0000FFFF
|