summaryrefslogtreecommitdiff
path: root/arm9/asm/unk_02038C78.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/asm/unk_02038C78.s')
-rw-r--r--arm9/asm/unk_02038C78.s3491
1 files changed, 1747 insertions, 1744 deletions
diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s
index 9b591348..f9124993 100644
--- a/arm9/asm/unk_02038C78.s
+++ b/arm9/asm/unk_02038C78.s
@@ -1,1744 +1,1747 @@
- .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
- bl memset
- 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
- bl memset
- 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
- bl abs
- strh r0, [r5, #0x0]
- ldr r1, [r4, #0x8]
- ldr r0, [sp, #0x14]
- sub r1, r0, r1
- mov r0, #0x7
- sub r0, r0, r1
- bl 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
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .extern UNK_020F34DC
+ .extern UNK_020F2DB4
+
+ .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
+ bl memset
+ 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 ; =UNK_020F34DC
+ 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 UNK_020F34DC
+_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
+ bl memset
+ 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 ; =UNK_020F2DB4
+ 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 UNK_020F2DB4
+
+ 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 ; =UNK_020F2DB4
+ 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 ; =UNK_020F2DB4
+ ldrh r1, [r1, r0]
+ strh r1, [r7, #0x0]
+ ldr r1, _02039750 ; =UNK_020F2DB4
+ 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 UNK_020F2DB4
+
+ 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
+ bl abs
+ strh r0, [r5, #0x0]
+ ldr r1, [r4, #0x8]
+ ldr r0, [sp, #0x14]
+ sub r1, r0, r1
+ mov r0, #0x7
+ sub r0, r0, r1
+ bl 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