diff options
author | Cleverking2003 <30466983+Cleverking2003@users.noreply.github.com> | 2020-04-29 23:06:12 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-29 23:06:12 +0300 |
commit | facbc48530af3c516f3e11bb68eac112a413fc47 (patch) | |
tree | 1516c41edc6659db71c3cec21c632265037194e1 | |
parent | c197dfc985e15a330a5cb2a8115f84b1f77aa97b (diff) | |
parent | 84f0713c691a24a69b780ce92ea906265f8dad98 (diff) |
Merge branch 'master' into master
-rw-r--r-- | arm7/arm7.lcf | 4 | ||||
-rw-r--r-- | arm7/asm/dtcm.s | 3614 | ||||
-rw-r--r-- | arm7/asm/dtcm2.s | 3 | ||||
-rw-r--r-- | arm7/asm/ext.s | 29611 | ||||
-rw-r--r-- | arm7/asm/itcm.s (renamed from arm7/asm/arm7_rom.s) | 5 | ||||
-rw-r--r-- | arm7/global.inc | 63 | ||||
-rw-r--r-- | arm7/undefined_syms.txt | 67 | ||||
-rw-r--r-- | arm9/Makefile | 2 |
8 files changed, 31534 insertions, 1835 deletions
diff --git a/arm7/arm7.lcf b/arm7/arm7.lcf index 9a1b8879..0a861ce6 100644 --- a/arm7/arm7.lcf +++ b/arm7/arm7.lcf @@ -21,7 +21,7 @@ SECTIONS { SDK_AUTOLOAD_START = .; .itcm : AT (0x1b0) { - arm7_rom.o (.itcm) + itcm.o (.text) } > .itcm .dtcm : AT (0x28C) { @@ -32,7 +32,7 @@ SECTIONS { } > .dtcm .ewram : AT (0xF998) { - arm7_rom.o (.ewram) + ext.o (.text) } > .ewram .autoload : AT (0x292F8) { diff --git a/arm7/asm/dtcm.s b/arm7/asm/dtcm.s index 4c4c9cbc..3e1ecc31 100644 --- a/arm7/asm/dtcm.s +++ b/arm7/asm/dtcm.s @@ -3,10 +3,10 @@ .section .text arm_func_start FUN_037F8000 -FUN_037F8000: ;@ 0x037F8000 +FUN_037F8000: ; 0x037F8000 stmfd sp!, {lr} sub sp, sp, #4 - ldr r0, _037F8028 ;@ =_03809F34 + ldr r0, _037F8028 ; =_03809F34 ldr r0, [r0] cmp r0, #0 beq _037F801C @@ -18,7 +18,7 @@ _037F801C: _037F8028: .word _03809F34 arm_func_start FUN_037F802C -FUN_037F802C: ;@ 0x037F802C +FUN_037F802C: ; 0x037F802C stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov sl, r0 @@ -30,40 +30,40 @@ FUN_037F802C: ;@ 0x037F802C mov r7, r0 mov r9, r8 mov r4, #1 - mov fp, #138 ;@ 0x8a - mov r5, #112 ;@ 0x70 + mov fp, #138 ; 0x8a + mov r5, #112 ; 0x70 _037F8060: add r6, sl, r9, lsl #8 - ldr r0, _037F81B4 ;@ =0x0000FFFF + ldr r0, _037F81B4 ; =0x0000FFFF mov r1, r6 mov r2, r5 bl FUN_037F81B8 mov r2, r6 - ldrh r1, [r2, #114] ;@ 0x72 + ldrh r1, [r2, #114] ; 0x72 cmp r0, r1 bne _037F80E0 - ldrh r0, [r2, #112] ;@ 0x70 - cmp r0, #128 ;@ 0x80 + ldrh r0, [r2, #112] ; 0x70 + cmp r0, #128 ; 0x80 bcs _037F80E0 - ldr r0, _037F81B4 ;@ =0x0000FFFF - add r1, r6, #116 ;@ 0x74 + ldr r0, _037F81B4 ; =0x0000FFFF + add r1, r6, #116 ; 0x74 mov r2, fp bl FUN_037F81B8 mov r3, r6 - ldrh r1, [r3, #254] ;@ 0xfe + ldrh r1, [r3, #254] ; 0xfe cmp r0, r1 bne _037F80E0 - ldrh r2, [r3, #118] ;@ 0x76 - ldrb r0, [r3, #117] ;@ 0x75 + ldrh r2, [r3, #118] ; 0x76 + ldrb r0, [r3, #117] ; 0x75 mov r1, r4, lsl r0 ands r1, r1, r2 beq _037F80E0 ands r1, r7, r2 - ldrneh r1, [r6, #100] ;@ 0x64 + ldrneh r1, [r6, #100] ; 0x64 bicne r1, r1, #7 andne r0, r0, #7 orrne r0, r1, r0 - strneh r0, [r6, #100] ;@ 0x64 + strneh r0, [r6, #100] ; 0x64 orr r8, r8, r4, lsl r9 _037F80E0: add r0, r9, #1 @@ -79,19 +79,19 @@ _037F80F8: bne _037F81A8 mov r7, r8 mov r4, #1 - ldr r6, _037F81B4 ;@ =0x0000FFFF - mov r5, #112 ;@ 0x70 + ldr r6, _037F81B4 ; =0x0000FFFF + mov r5, #112 ; 0x70 _037F8118: mov r0, r6 add r1, sl, r7, lsl #8 mov r2, r5 bl FUN_037F81B8 add r2, sl, r7, lsl #8 - ldrh r1, [r2, #114] ;@ 0x72 + ldrh r1, [r2, #114] ; 0x72 cmp r0, r1 bne _037F8144 - ldrh r0, [r2, #112] ;@ 0x70 - cmp r0, #128 ;@ 0x80 + ldrh r0, [r2, #112] ; 0x70 + cmp r0, #128 ; 0x80 orrcc r8, r8, r4, lsl r7 _037F8144: add r0, r7, #1 @@ -111,12 +111,12 @@ _037F8174: mov r0, r8 b _037F81A8 _037F817C: - ldrh r0, [sl, #112] ;@ 0x70 + ldrh r0, [sl, #112] ; 0x70 add r0, r0, #1 - and r0, r0, #127 ;@ 0x7f - and r1, r0, #255 ;@ 0xff - add r0, sl, #256 ;@ 0x100 - ldrh r0, [r0, #112] ;@ 0x70 + and r0, r0, #127 ; 0x7f + and r1, r0, #255 ; 0xff + add r0, sl, #256 ; 0x100 + ldrh r0, [r0, #112] ; 0x70 cmp r1, r0 moveq r0, #2 movne r0, #1 @@ -130,25 +130,25 @@ _037F81A8: _037F81B4: .word 0x0000FFFF arm_func_start FUN_037F81B8 -FUN_037F81B8: ;@ 0x037F81B8 - ldr ip, _037F81C0 ;@ =SVC_GetCRC16 +FUN_037F81B8: ; 0x037F81B8 + ldr ip, _037F81C0 ; =SVC_GetCRC16 bx ip _037F81C0: .word SVC_GetCRC16 arm_func_start FUN_037F81C4 -FUN_037F81C4: ;@ 0x037F81C4 +FUN_037F81C4: ; 0x037F81C4 mov r0, #0 - ldr r1, _037F81E4 ;@ =0x027FFE1D + ldr r1, _037F81E4 ; =0x027FFE1D ldrb r1, [r1] - cmp r1, #128 ;@ 0x80 - orreq r0, r0, #64 ;@ 0x40 + cmp r1, #128 ; 0x80 + orreq r0, r0, #64 ; 0x40 moveq r0, r0, lsl #16 moveq r0, r0, lsr #16 bx lr _037F81E4: .word 0x027FFE1D arm_func_start FUN_037F81E8 -FUN_037F81E8: ;@ 0x037F81E8 +FUN_037F81E8: ; 0x037F81E8 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #29 @@ -156,10 +156,10 @@ FUN_037F81E8: ;@ 0x037F81E8 add r2, sp, #0 bl FUN_03804E50 ldrb r0, [sp] - cmp r0, #255 ;@ 0xff + cmp r0, #255 ; 0xff moveq r0, #0 beq _037F821C - ands r0, r0, #64 ;@ 0x40 + ands r0, r0, #64 ; 0x40 movne r0, #1 moveq r0, #0 _037F821C: @@ -168,9 +168,9 @@ _037F821C: bx lr arm_func_start FUN_037F8228 -FUN_037F8228: ;@ 0x037F8228 +FUN_037F8228: ; 0x037F8228 stmdb sp!, {r4, lr} - sub sp, sp, #528 ;@ 0x210 + sub sp, sp, #528 ; 0x210 mov r0, #32 mov r1, #2 add r2, sp, #4 @@ -178,28 +178,28 @@ FUN_037F8228: ;@ 0x037F8228 ldr r0, [sp, #4] mov r0, r0, lsl #3 str r0, [sp, #4] - mov r1, #256 ;@ 0x100 + mov r1, #256 ; 0x100 add r2, sp, #16 bl FUN_03804E50 ldr r0, [sp, #4] - add r0, r0, #256 ;@ 0x100 - mov r1, #256 ;@ 0x100 - add r2, sp, #272 ;@ 0x110 + add r0, r0, #256 ; 0x100 + mov r1, #256 ; 0x100 + add r2, sp, #272 ; 0x110 bl FUN_03804E50 add r0, sp, #16 bl FUN_037F802C cmp r0, #3 blt _037F8290 mvn r0, #0 - ldr r1, _037F83A4 ;@ =0x027FFC80 - mov r2, #116 ;@ 0x74 + ldr r1, _037F83A4 ; =0x027FFC80 + mov r2, #116 ; 0x74 bl FUN_037FB334 b _037F834C _037F8290: cmp r0, #0 beq _037F833C mov r2, r0, lsl #8 - ldr r1, _037F83A8 ;@ =0xFFFFFF2A + ldr r1, _037F83A8 ; =0xFFFFFF2A add r1, sp, r1 ldrb r1, [r1, r0, lsl #8] cmp r1, #10 @@ -211,15 +211,15 @@ _037F8290: b _037F82D0 _037F82C4: add r1, r2, ip, lsl #1 - strh r3, [r1, #-252] ;@ 0xffffff04 + strh r3, [r1, #-252] ; 0xffffff04 sub ip, ip, #1 _037F82D0: - ldrb r1, [r2, #-230] ;@ 0xffffff1a + ldrb r1, [r2, #-230] ; 0xffffff1a cmp ip, r1 bgt _037F82C4 _037F82DC: mov r2, r0, lsl #8 - ldr r1, _037F83AC ;@ =0xFFFFFF60 + ldr r1, _037F83AC ; =0xFFFFFF60 add r1, sp, r1 ldrb r1, [r1, r0, lsl #8] cmp r1, #26 @@ -231,37 +231,37 @@ _037F82DC: b _037F8314 _037F8308: add r1, r2, ip, lsl #1 - strh r3, [r1, #-230] ;@ 0xffffff1a + strh r3, [r1, #-230] ; 0xffffff1a sub ip, ip, #1 _037F8314: - ldrb r1, [r2, #-176] ;@ 0xffffff50 + ldrb r1, [r2, #-176] ; 0xffffff50 cmp ip, r1 bgt _037F8308 _037F8320: add r1, sp, #16 sub r0, r0, #1 add r0, r1, r0, lsl #8 - ldr r1, _037F83A4 ;@ =0x027FFC80 - mov r2, #116 ;@ 0x74 + ldr r1, _037F83A4 ; =0x027FFC80 + mov r2, #116 ; 0x74 bl FUN_037FB348 b _037F834C _037F833C: mov r0, #0 - ldr r1, _037F83A4 ;@ =0x027FFC80 - mov r2, #116 ;@ 0x74 + ldr r1, _037F83A4 ; =0x027FFC80 + mov r2, #116 ; 0x74 bl FUN_037FB334 _037F834C: - mov r0, #54 ;@ 0x36 + mov r0, #54 ; 0x36 mov r1, #6 add r2, sp, #8 bl FUN_03804E50 - ldr r0, _037F83A4 ;@ =0x027FFC80 - add r4, r0, #116 ;@ 0x74 + ldr r0, _037F83A4 ; =0x027FFC80 + add r4, r0, #116 ; 0x74 add r0, sp, #8 mov r1, r4 mov r2, #6 bl FUN_037FB478 - mov r0, #60 ;@ 0x3c + mov r0, #60 ; 0x3c mov r1, #2 add r2, sp, #0 bl FUN_03804E50 @@ -270,7 +270,7 @@ _037F834C: mov r0, r0, lsr #16 bl FUN_03807408 strh r0, [r4, #6] - add sp, sp, #528 ;@ 0x210 + add sp, sp, #528 ; 0x210 ldmia sp!, {r4, lr} bx lr _037F83A4: .word 0x027FFC80 @@ -278,7 +278,7 @@ _037F83A8: .word 0xFFFFFF2A _037F83AC: .word 0xFFFFFF60 arm_func_start FUN_037F83B0 -FUN_037F83B0: ;@ 0x037F83B0 +FUN_037F83B0: ; 0x037F83B0 stmdb sp!, {r4, lr} mov r0, #8 bl FUN_037F9CD0 @@ -320,7 +320,7 @@ _037F8438: mov r0, #8 mov r1, r4 bl FUN_037F9D88 - cmp r0, #8448 ;@ 0x2100 + cmp r0, #8448 ; 0x2100 bcs _037F845C bl FUN_037FB1F0 _037F845C: @@ -329,7 +329,7 @@ _037F845C: bx lr arm_func_start FUN_037F8468 -FUN_037F8468: ;@ 0x037F8468 +FUN_037F8468: ; 0x037F8468 stmdb sp!, {r4, lr} bl FUN_027E0000 bl FUN_037F9B84 @@ -342,16 +342,16 @@ FUN_037F8468: ;@ 0x037F8468 bl FUN_037FC488 bl FUN_037FB96C mov r0, #1 - ldr r1, _037F8524 ;@ =FUN_037F8000 + ldr r1, _037F8524 ; =FUN_037F8000 bl FUN_037F894C mov r0, #1 bl FUN_037F8894 - ldr r1, _037F8528 ;@ =0x04000004 + ldr r1, _037F8528 ; =0x04000004 ldrh r0, [r1] ldrh r0, [r1] orr r0, r0, #8 strh r0, [r1] - ldr r1, _037F852C ;@ =0x04000208 + ldr r1, _037F852C ; =0x04000208 ldrh r0, [r1] mov r0, #1 strh r0, [r1] @@ -384,16 +384,16 @@ _037F8528: .word 0x04000004 _037F852C: .word 0x04000208 arm_func_start FUN_037F8530 -FUN_037F8530: ;@ 0x037F8530 - ldr ip, _037F8538 ;@ =SVC_Halt +FUN_037F8530: ; 0x037F8530 + ldr ip, _037F8538 ; =SVC_Halt bx ip _037F8538: .word SVC_Halt arm_func_start FUN_037F853C -FUN_037F853C: ;@ 0x037F853C +FUN_037F853C: ; 0x037F853C stmfd sp!, {lr} - mov ip, #67108864 ;@ 0x4000000 - add ip, ip, #528 ;@ 0x210 + mov ip, #67108864 ; 0x4000000 + add ip, ip, #528 ; 0x210 ldr r1, [ip, #-8] cmp r1, #0 ldmeqfd sp!, {pc} @@ -407,57 +407,57 @@ _037F8568: addeq r0, r0, #1 beq _037F8568 str r2, [ip, #4] - ldr r1, _037F8588 ;@ =_038075F8 + ldr r1, _037F8588 ; =_038075F8 ldr r0, [r1, r0, lsl #2] - ldr lr, _037F858C ;@ =FUN_037F8590 + ldr lr, _037F858C ; =FUN_037F8590 bx r0 _037F8588: .word _038075F8 _037F858C: .word FUN_037F8590 arm_func_start FUN_037F8590 FUN_037F8590: - ldr ip, _037F86AC ;@ =_0380770C + ldr ip, _037F86AC ; =_0380770C mov r3, #0 ldr ip, [ip] mov r2, #1 cmp ip, #0 beq _037F85E0 _037F85A8: - str r2, [ip, #72] ;@ 0x48 - str r3, [ip, #92] ;@ 0x5c - str r3, [ip, #96] ;@ 0x60 - ldr r0, [ip, #100] ;@ 0x64 - str r3, [ip, #100] ;@ 0x64 + str r2, [ip, #72] ; 0x48 + str r3, [ip, #92] ; 0x5c + str r3, [ip, #96] ; 0x60 + ldr r0, [ip, #100] ; 0x64 + str r3, [ip, #100] ; 0x64 mov ip, r0 cmp ip, #0 bne _037F85A8 - ldr ip, _037F86AC ;@ =_0380770C + ldr ip, _037F86AC ; =_0380770C str r3, [ip] str r3, [ip, #4] - ldr ip, _037F86B0 ;@ =_0380779C + ldr ip, _037F86B0 ; =_0380779C mov r1, #1 strh r1, [ip] _037F85E0: - ldr ip, _037F86B0 ;@ =_0380779C + ldr ip, _037F86B0 ; =_0380779C ldrh r1, [ip] cmp r1, #0 - ldreq pc, [sp], #4 ;@ (ldreq pc, [sp], #4) + ldreq pc, [sp], #4 ; (ldreq pc, [sp], #4) mov r1, #0 strh r1, [ip] - mov r3, #210 ;@ 0xd2 + mov r3, #210 ; 0xd2 msr CPSR_c, r3 add r2, ip, #8 ldr r1, [r2] _037F8608: cmp r1, #0 - ldrneh r0, [r1, #72] ;@ 0x48 + ldrneh r0, [r1, #72] ; 0x48 cmpne r0, #1 - ldrne r1, [r1, #76] ;@ 0x4c + ldrne r1, [r1, #76] ; 0x4c bne _037F8608 cmp r1, #0 bne _037F8630 _037F8624: - mov r3, #146 ;@ 0x92 + mov r3, #146 ; 0x92 msr CPSR_c, r3 ldr pc, [sp], #4 _037F8630: @@ -469,7 +469,7 @@ _037F8630: beq _037F8658 arm_func_start FUN_037F8648 -FUN_037F8648: ;@ 0x037F8648 +FUN_037F8648: ; 0x037F8648 stmdb sp!, {r0, r1, ip} mov lr, pc bx r3 @@ -483,29 +483,29 @@ _037F8658: ldmib sp!, {r2, r3, ip, lr} stmib r0!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr}^ stmib r0!, {lr} - mov r3, #211 ;@ 0xd3 + mov r3, #211 ; 0xd3 msr CPSR_c, r3 stmib r0!, {sp} - ldr sp, [r1, #68] ;@ 0x44 - mov r3, #210 ;@ 0xd2 + ldr sp, [r1, #68] ; 0x44 + mov r3, #210 ; 0xd2 msr CPSR_c, r3 ldr r2, [r1, #0]! msr SPSR_fc, r2 - ldr lr, [r1, #64] ;@ 0x40 + ldr lr, [r1, #64] ; 0x40 ldmib r1!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr}^ - nop ;@ (mov r0, r0) + nop ; (mov r0, r0) stmda sp!, {r0, r1, r2, r3, ip, lr} ldmia sp!, {pc} _037F86AC: .word _0380770C _037F86B0: .word _0380779C arm_func_start FUN_037F86B4 -FUN_037F86B4: ;@ 0x037F86B4 +FUN_037F86B4: ; 0x037F86B4 stmfd sp!, {lr} sub sp, sp, #4 - ldr r0, _037F8700 ;@ =_03807714 - ldr r2, [r0, #96] ;@ 0x60 - ldr r1, _037F8704 ;@ =0x027FFC3C + ldr r0, _037F8700 ; =_03807714 + ldr r2, [r0, #96] ; 0x60 + ldr r1, _037F8704 ; =0x027FFC3C ldr r0, [r1] add r0, r0, #1 str r0, [r1] @@ -514,7 +514,7 @@ FUN_037F86B4: ;@ 0x037F86B4 mov lr, pc bx r2 _037F86E4: - ldr r1, _037F8708 ;@ =0x0380FFF8 + ldr r1, _037F8708 ; =0x0380FFF8 ldr r0, [r1] orr r0, r0, #1 str r0, [r1] @@ -526,88 +526,88 @@ _037F8704: .word 0x027FFC3C _037F8708: .word 0x0380FFF8 arm_func_start FUN_037F870C -FUN_037F870C: ;@ 0x037F870C +FUN_037F870C: ; 0x037F870C mov r0, #7 - ldr ip, _037F8718 ;@ =FUN_037F878C + ldr ip, _037F8718 ; =FUN_037F878C bx ip _037F8718: .word FUN_037F878C arm_func_start FUN_037F871C -FUN_037F871C: ;@ 0x037F871C +FUN_037F871C: ; 0x037F871C mov r0, #6 - ldr ip, _037F8728 ;@ =FUN_037F878C + ldr ip, _037F8728 ; =FUN_037F878C bx ip _037F8728: .word FUN_037F878C arm_func_start FUN_037F872C -FUN_037F872C: ;@ 0x037F872C +FUN_037F872C: ; 0x037F872C mov r0, #5 - ldr ip, _037F8738 ;@ =FUN_037F878C + ldr ip, _037F8738 ; =FUN_037F878C bx ip _037F8738: .word FUN_037F878C arm_func_start FUN_037F873C -FUN_037F873C: ;@ 0x037F873C +FUN_037F873C: ; 0x037F873C mov r0, #4 - ldr ip, _037F8748 ;@ =FUN_037F878C + ldr ip, _037F8748 ; =FUN_037F878C bx ip _037F8748: .word FUN_037F878C arm_func_start FUN_037F874C -FUN_037F874C: ;@ 0x037F874C +FUN_037F874C: ; 0x037F874C mov r0, #3 - ldr ip, _037F8758 ;@ =FUN_037F878C + ldr ip, _037F8758 ; =FUN_037F878C bx ip _037F8758: .word FUN_037F878C arm_func_start FUN_037F875C -FUN_037F875C: ;@ 0x037F875C +FUN_037F875C: ; 0x037F875C mov r0, #2 - ldr ip, _037F8768 ;@ =FUN_037F878C + ldr ip, _037F8768 ; =FUN_037F878C bx ip _037F8768: .word FUN_037F878C arm_func_start FUN_037F876C -FUN_037F876C: ;@ 0x037F876C +FUN_037F876C: ; 0x037F876C mov r0, #1 - ldr ip, _037F8778 ;@ =FUN_037F878C + ldr ip, _037F8778 ; =FUN_037F878C bx ip _037F8778: .word FUN_037F878C arm_func_start FUN_037F877C -FUN_037F877C: ;@ 0x037F877C +FUN_037F877C: ; 0x037F877C mov r0, #0 - ldr ip, _037F8788 ;@ =FUN_037F878C + ldr ip, _037F8788 ; =FUN_037F878C bx ip _037F8788: .word FUN_037F878C arm_func_start FUN_037F878C -FUN_037F878C: ;@ 0x037F878C +FUN_037F878C: ; 0x037F878C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r3, #1 mov r2, r0, lsl #1 - ldr r1, _037F880C ;@ =_038075E4 + ldr r1, _037F880C ; =_038075E4 ldrh r1, [r1, r2] mov r5, r3, lsl r1 mov r1, #12 mul r4, r0, r1 - ldr r2, _037F8810 ;@ =_03807714 + ldr r2, _037F8810 ; =_03807714 ldr r1, [r2, r4] mov r0, #0 str r0, [r2, r4] cmp r1, #0 beq _037F87D8 - ldr r0, _037F8814 ;@ =_0380771C + ldr r0, _037F8814 ; =_0380771C ldr r0, [r0, r4] mov lr, pc bx r1 _037F87D8: - ldr r1, _037F8818 ;@ =0x0380FFF8 + ldr r1, _037F8818 ; =0x0380FFF8 ldr r0, [r1] orr r0, r0, r5 str r0, [r1] - ldr r0, _037F881C ;@ =_03807718 + ldr r0, _037F881C ; =_03807718 ldr r0, [r0, r4] cmp r0, #0 bne _037F8800 @@ -624,16 +624,16 @@ _037F8818: .word 0x0380FFF8 _037F881C: .word _03807718 arm_func_start FUN_037F8820 -FUN_037F8820: ;@ 0x037F8820 +FUN_037F8820: ; 0x037F8820 bx lr arm_func_start FUN_037F8824 -FUN_037F8824: ;@ 0x037F8824 - ldr ip, _037F8850 ;@ =0x04000208 +FUN_037F8824: ; 0x037F8824 + ldr ip, _037F8850 ; =0x04000208 ldrh r3, [ip] mov r1, #0 strh r1, [ip] - ldr r2, _037F8854 ;@ =0x04000214 + ldr r2, _037F8854 ; =0x04000214 ldr r1, [r2] str r0, [r2] ldrh r0, [ip] @@ -644,12 +644,12 @@ _037F8850: .word 0x04000208 _037F8854: .word 0x04000214 arm_func_start FUN_037F8858 -FUN_037F8858: ;@ 0x037F8858 - ldr ip, _037F888C ;@ =0x04000208 +FUN_037F8858: ; 0x037F8858 + ldr ip, _037F888C ; =0x04000208 ldrh r3, [ip] mov r1, #0 strh r1, [ip] - ldr r2, _037F8890 ;@ =0x04000210 + ldr r2, _037F8890 ; =0x04000210 ldr r1, [r2] mvn r0, r0 and r0, r1, r0 @@ -662,12 +662,12 @@ _037F888C: .word 0x04000208 _037F8890: .word 0x04000210 arm_func_start FUN_037F8894 -FUN_037F8894: ;@ 0x037F8894 - ldr ip, _037F88C4 ;@ =0x04000208 +FUN_037F8894: ; 0x037F8894 + ldr ip, _037F88C4 ; =0x04000208 ldrh r3, [ip] mov r1, #0 strh r1, [ip] - ldr r2, _037F88C8 ;@ =0x04000210 + ldr r2, _037F88C8 ; =0x04000210 ldr r1, [r2] orr r0, r1, r0 str r0, [r2] @@ -679,12 +679,12 @@ _037F88C4: .word 0x04000208 _037F88C8: .word 0x04000210 arm_func_start FUN_037F88CC -FUN_037F88CC: ;@ 0x037F88CC - ldr ip, _037F88F8 ;@ =0x04000208 +FUN_037F88CC: ; 0x037F88CC + ldr ip, _037F88F8 ; =0x04000208 ldrh r3, [ip] mov r1, #0 strh r1, [ip] - ldr r2, _037F88FC ;@ =0x04000210 + ldr r2, _037F88FC ; =0x04000210 ldr r1, [r2] str r0, [r2] ldrh r0, [ip] @@ -695,20 +695,20 @@ _037F88F8: .word 0x04000208 _037F88FC: .word 0x04000210 arm_func_start FUN_037F8900 -FUN_037F8900: ;@ 0x037F8900 +FUN_037F8900: ; 0x037F8900 stmdb sp!, {r4, lr} mov r3, #12 mul r4, r0, r3 - ldr r3, _037F8940 ;@ =_03807744 + ldr r3, _037F8940 ; =_03807744 str r1, [r3, r4] - ldr r1, _037F8944 ;@ =_0380774C + ldr r1, _037F8944 ; =_0380774C str r2, [r1, r4] mov r1, #1 add r0, r0, #3 mov r0, r1, lsl r0 bl FUN_037F8894 mov r1, #1 - ldr r0, _037F8948 ;@ =_03807748 + ldr r0, _037F8948 ; =_03807748 str r1, [r0, r4] ldmia sp!, {r4, lr} bx lr @@ -717,14 +717,14 @@ _037F8944: .word _0380774C _037F8948: .word _03807748 arm_func_start FUN_037F894C -FUN_037F894C: ;@ 0x037F894C +FUN_037F894C: ; 0x037F894C stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r9, #0 mov r7, r9 - ldr lr, _037F89E8 ;@ =_038075F8 - ldr r4, _037F89EC ;@ =_03807774 - ldr r6, _037F89F0 ;@ =_03807714 + ldr lr, _037F89E8 ; =_038075F8 + ldr r4, _037F89EC ; =_03807774 + ldr r6, _037F89F0 ; =_03807714 mov ip, r9 mov r3, #1 mov r2, #12 @@ -767,29 +767,29 @@ _037F89EC: .word _03807774 _037F89F0: .word _03807714 arm_func_start FUN_037F89F4 -FUN_037F89F4: ;@ 0x037F89F4 +FUN_037F89F4: ; 0x037F89F4 mov r1, #0 - ldr r0, _037F8A10 ;@ =_0380770C + ldr r0, _037F8A10 ; =_0380770C str r1, [r0, #4] str r1, [r0] - ldr r0, _037F8A14 ;@ =0x027FFC3C + ldr r0, _037F8A14 ; =0x027FFC3C str r1, [r0] bx lr _037F8A10: .word _0380770C _037F8A14: .word 0x027FFC3C arm_func_start FUN_037F8A18 -FUN_037F8A18: ;@ 0x037F8A18 - ldr r1, _037F8A20 ;@ =FUN_037F8B1C +FUN_037F8A18: ; 0x037F8A18 + ldr r1, _037F8A20 ; =FUN_037F8B1C bx r1 _037F8A20: .word FUN_037F8B1C arm_func_start FUN_037F8A24 -FUN_037F8A24: ;@ 0x037F8A24 - ldr r3, _037F8AB4 ;@ =0x027FFFB8 +FUN_037F8A24: ; 0x037F8A24 + ldr r3, _037F8AB4 ; =0x027FFFB8 ldr r1, [r3] mov r2, #0 - mov r0, #-2147483648 ;@ 0x80000000 + mov r0, #-2147483648 ; 0x80000000 _037F8A34: tst r1, r0 bne _037F8A50 @@ -800,12 +800,12 @@ _037F8A34: b _037F8A34 _037F8A50: cmp r2, #32 - movne r0, #128 ;@ 0x80 + movne r0, #128 ; 0x80 bne _037F8A98 add r3, r3, #4 ldr r1, [r3] mov r2, #0 - mov r0, #-2147483648 ;@ 0x80000000 + mov r0, #-2147483648 ; 0x80000000 _037F8A6C: tst r1, r0 bne _037F8A88 @@ -816,12 +816,12 @@ _037F8A6C: b _037F8A6C _037F8A88: cmp r2, #32 - ldr r0, _037F8AB8 ;@ =0xFFFFFFFD + ldr r0, _037F8AB8 ; =0xFFFFFFFD bxeq lr - mov r0, #160 ;@ 0xa0 + mov r0, #160 ; 0xa0 _037F8A98: add r0, r0, r2 - mov r1, #-2147483648 ;@ 0x80000000 + mov r1, #-2147483648 ; 0x80000000 mov r1, r1, lsr r2 ldr r2, [r3] bic r2, r2, r1 @@ -831,13 +831,13 @@ _037F8AB4: .word 0x027FFFB8 _037F8AB8: .word 0xFFFFFFFD arm_func_start FUN_037F8ABC -FUN_037F8ABC: ;@ 0x037F8ABC - ldr r3, _037F8AE8 ;@ =0x027FFFB8 - cmp r0, #160 ;@ 0xa0 +FUN_037F8ABC: ; 0x037F8ABC + ldr r3, _037F8AE8 ; =0x027FFFB8 + cmp r0, #160 ; 0xa0 addpl r3, r3, #4 - subpl r0, r0, #160 ;@ 0xa0 - submi r0, r0, #128 ;@ 0x80 - mov r1, #-2147483648 ;@ 0x80000000 + subpl r0, r0, #160 ; 0xa0 + submi r0, r0, #128 ; 0x80 + mov r1, #-2147483648 ; 0x80000000 mov r1, r1, lsr r0 ldr r2, [r3] orr r2, r2, r1 @@ -846,7 +846,7 @@ FUN_037F8ABC: ;@ 0x037F8ABC _037F8AE8: .word 0x027FFFB8 arm_func_start FUN_037F8AEC -FUN_037F8AEC: ;@ 0x037F8AEC +FUN_037F8AEC: ; 0x037F8AEC ldrh r0, [r0, #4] bx lr _037F8AF4: @@ -855,40 +855,40 @@ _037F8AF8: bx lr arm_func_start FUN_037F8AFC -FUN_037F8AFC: ;@ 0x037F8AFC - ldr r1, _037F8B10 ;@ =0x027FFFE8 - ldr r2, _037F8B14 ;@ =_037F8AF8 +FUN_037F8AFC: ; 0x037F8AFC + ldr r1, _037F8B10 ; =0x027FFFE8 + ldr r2, _037F8B14 ; =_037F8AF8 mov r3, #1 - ldr ip, _037F8B18 ;@ =FUN_037F8B5C + ldr ip, _037F8B18 ; =FUN_037F8B5C bx ip _037F8B10: .word 0x027FFFE8 _037F8B14: .word _037F8AF8 _037F8B18: .word FUN_037F8B5C arm_func_start FUN_037F8B1C -FUN_037F8B1C: ;@ 0x037F8B1C - ldr r1, _037F8B30 ;@ =0x027FFFE8 - ldr r2, _037F8B34 ;@ =_037F8AF4 +FUN_037F8B1C: ; 0x037F8B1C + ldr r1, _037F8B30 ; =0x027FFFE8 + ldr r2, _037F8B34 ; =_037F8AF4 mov r3, #1 - ldr ip, _037F8B38 ;@ =FUN_037F8BE0 + ldr ip, _037F8B38 ; =FUN_037F8BE0 bx ip _037F8B30: .word 0x027FFFE8 _037F8B34: .word _037F8AF4 _037F8B38: .word FUN_037F8BE0 arm_func_start FUN_037F8B3C -FUN_037F8B3C: ;@ 0x037F8B3C - ldr r1, _037F8B50 ;@ =0x027FFFE8 - ldr r2, _037F8B54 ;@ =_037F8AF8 +FUN_037F8B3C: ; 0x037F8B3C + ldr r1, _037F8B50 ; =0x027FFFE8 + ldr r2, _037F8B54 ; =_037F8AF8 mov r3, #1 - ldr ip, _037F8B58 ;@ =FUN_037F8C6C + ldr ip, _037F8B58 ; =FUN_037F8C6C bx ip _037F8B50: .word 0x027FFFE8 _037F8B54: .word _037F8AF8 _037F8B58: .word FUN_037F8C6C arm_func_start FUN_037F8B5C -FUN_037F8B5C: ;@ 0x037F8B5C +FUN_037F8B5C: ; 0x037F8B5C stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r9, r0 @@ -930,7 +930,7 @@ _037F8BD0: bx lr arm_func_start FUN_037F8BE0 -FUN_037F8BE0: ;@ 0x037F8BE0 +FUN_037F8BE0: ; 0x037F8BE0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r1 @@ -974,13 +974,13 @@ _037F8C60: bx lr arm_func_start FUN_037F8C6C -FUN_037F8C6C: ;@ 0x037F8C6C +FUN_037F8C6C: ; 0x037F8C6C stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r8, r0 mov r7, r1 mov r6, r2 mov r5, r3 - mov r4, #1024 ;@ 0x400 + mov r4, #1024 ; 0x400 b _037F8C90 _037F8C88: mov r0, r4 @@ -997,41 +997,41 @@ _037F8C90: bx lr arm_func_start FUN_037F8CB4 -FUN_037F8CB4: ;@ 0x037F8CB4 - ldr ip, _037F8CBC ;@ =SVC_WaitByLoop +FUN_037F8CB4: ; 0x037F8CB4 + ldr ip, _037F8CBC ; =SVC_WaitByLoop bx ip _037F8CBC: .word SVC_WaitByLoop arm_func_start FUN_037F8CC0 -FUN_037F8CC0: ;@ 0x037F8CC0 +FUN_037F8CC0: ; 0x037F8CC0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 - ldr r0, _037F8D38 ;@ =_03807780 + ldr r0, _037F8D38 ; =_03807780 ldr r1, [r0] cmp r1, #0 bne _037F8D2C mov r1, #1 str r1, [r0] mov r0, #0 - ldr r4, _037F8D3C ;@ =0x027FFFF0 + ldr r4, _037F8D3C ; =0x027FFFF0 strh r0, [r4, #6] - mov r5, #1024 ;@ 0x400 + mov r5, #1024 ; 0x400 b _037F8CFC _037F8CF4: mov r0, r5 bl FUN_037F8CB4 _037F8CFC: ldrh r0, [r4, #4] - cmp r0, #127 ;@ 0x7f + cmp r0, #127 ; 0x7f bne _037F8CF4 mvn r1, #0 - ldr r0, _037F8D40 ;@ =0x027FFFB8 + ldr r0, _037F8D40 ; =0x027FFFB8 str r1, [r0] - mov r0, #65536 ;@ 0x10000 + mov r0, #65536 ; 0x10000 rsb r1, r0, #0 - ldr r0, _037F8D44 ;@ =0x027FFFBC + ldr r0, _037F8D44 ; =0x027FFFBC str r1, [r0] - mov r0, #191 ;@ 0xbf + mov r0, #191 ; 0xbf strh r0, [r4, #6] _037F8D2C: add sp, sp, #4 @@ -1043,16 +1043,16 @@ _037F8D40: .word 0x027FFFB8 _037F8D44: .word 0x027FFFBC arm_func_start FUN_037F8D48 -FUN_037F8D48: ;@ 0x037F8D48 - str r1, [r0, #152] ;@ 0x98 +FUN_037F8D48: ; 0x037F8D48 + str r1, [r0, #152] ; 0x98 bx lr arm_func_start FUN_037F8D50 -FUN_037F8D50: ;@ 0x037F8D50 +FUN_037F8D50: ; 0x037F8D50 stmdb sp!, {r4, lr} bl FUN_037FB05C mov r4, #0 - ldr r1, _037F8D84 ;@ =_03807788 + ldr r1, _037F8D84 ; =_03807788 ldr r3, [r1] cmp r3, #0 subne r2, r3, #1 @@ -1065,10 +1065,10 @@ FUN_037F8D50: ;@ 0x037F8D50 _037F8D84: .word _03807788 arm_func_start FUN_037F8D88 -FUN_037F8D88: ;@ 0x037F8D88 +FUN_037F8D88: ; 0x037F8D88 stmdb sp!, {r4, lr} bl FUN_037FB05C - ldr r2, _037F8DBC ;@ =_03807788 + ldr r2, _037F8DBC ; =_03807788 ldr r3, [r2] mvn r1, #0 cmp r3, r1 @@ -1082,12 +1082,12 @@ FUN_037F8D88: ;@ 0x037F8D88 _037F8DBC: .word _03807788 arm_func_start FUN_037F8DC0 -FUN_037F8DC0: ;@ 0x037F8DC0 +FUN_037F8DC0: ; 0x037F8DC0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 bl FUN_037FB05C - ldr r1, _037F8DF0 ;@ =_0380779C + ldr r1, _037F8DF0 ; =_0380779C ldr r4, [r1, #12] str r5, [r1, #12] bl FUN_037FB070 @@ -1100,20 +1100,20 @@ _037F8DF4: ldr r2, [r0] mov r1, #0 str r1, [r0] - str r1, [r2, #148] ;@ 0x94 + str r1, [r2, #148] ; 0x94 mov r0, r2 - ldr ip, _037F8E10 ;@ =FUN_037F8FB4 + ldr ip, _037F8E10 ; =FUN_037F8FB4 bx ip _037F8E10: .word FUN_037F8FB4 arm_func_start FUN_037F8E14 -FUN_037F8E14: ;@ 0x037F8E14 +FUN_037F8E14: ; 0x037F8E14 stmdb sp!, {r4, r5, lr} - sub sp, sp, #52 ;@ 0x34 + sub sp, sp, #52 ; 0x34 mov r5, r0 add r0, sp, #8 bl FUN_037FA900 - ldr r0, _037F8EAC ;@ =_03807794 + ldr r0, _037F8EAC ; =_03807794 ldr r0, [r0] ldr r0, [r0] str r0, [sp, #4] @@ -1121,18 +1121,18 @@ FUN_037F8E14: ;@ 0x037F8E14 mov r4, r0 add r0, sp, #8 ldr r1, [sp, #4] - str r0, [r1, #148] ;@ 0x94 + str r0, [r1, #148] ; 0x94 add r1, sp, #4 str r1, [sp] mov r2, #0 - ldr r1, _037F8EB0 ;@ =0x000082EA + ldr r1, _037F8EB0 ; =0x000082EA umull ip, r3, r5, r1 mla r3, r5, r2, r3 mla r3, r2, r1, r3 mov r2, r3, lsr #6 mov r1, ip, lsr #6 orr r1, r1, r3, lsl #26 - ldr r3, _037F8EB4 ;@ =_037F8DF4 + ldr r3, _037F8EB4 ; =_037F8DF4 bl FUN_037FA75C mov r5, #0 b _037F8E8C @@ -1145,7 +1145,7 @@ _037F8E8C: bne _037F8E84 mov r0, r4 bl FUN_037FB070 - add sp, sp, #52 ;@ 0x34 + add sp, sp, #52 ; 0x34 ldmia sp!, {r4, r5, lr} bx lr _037F8EAC: .word _03807794 @@ -1153,11 +1153,11 @@ _037F8EB0: .word 0x000082EA _037F8EB4: .word _037F8DF4 arm_func_start FUN_037F8EB8 -FUN_037F8EB8: ;@ 0x037F8EB8 +FUN_037F8EB8: ; 0x037F8EB8 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r6, r0 mov r5, r1 - ldr r0, _037F8F60 ;@ =_0380779C + ldr r0, _037F8F60 ; =_0380779C ldr r8, [r0, #8] mov r7, #0 bl FUN_037FB05C @@ -1165,7 +1165,7 @@ FUN_037F8EB8: ;@ 0x037F8EB8 b _037F8EE4 _037F8EDC: mov r7, r8 - ldr r8, [r8, #76] ;@ 0x4c + ldr r8, [r8, #76] ; 0x4c _037F8EE4: cmp r8, #0 beq _037F8EF4 @@ -1174,7 +1174,7 @@ _037F8EE4: _037F8EF4: cmp r8, #0 beq _037F8F08 - ldr r0, _037F8F64 ;@ =_038077AC + ldr r0, _037F8F64 ; =_038077AC cmp r8, r0 bne _037F8F18 _037F8F08: @@ -1183,16 +1183,16 @@ _037F8F08: mov r0, #0 b _037F8F58 _037F8F18: - ldr r0, [r8, #84] ;@ 0x54 + ldr r0, [r8, #84] ; 0x54 cmp r0, r5 beq _037F8F4C cmp r7, #0 - ldreq r1, [r6, #76] ;@ 0x4c - ldreq r0, _037F8F60 ;@ =_0380779C + ldreq r1, [r6, #76] ; 0x4c + ldreq r0, _037F8F60 ; =_0380779C streq r1, [r0, #8] - ldrne r0, [r6, #76] ;@ 0x4c - strne r0, [r7, #76] ;@ 0x4c - str r5, [r6, #84] ;@ 0x54 + ldrne r0, [r6, #76] ; 0x4c + strne r0, [r7, #76] ; 0x4c + str r5, [r6, #84] ; 0x54 mov r0, r6 bl FUN_037F9584 bl FUN_037F945C @@ -1207,7 +1207,7 @@ _037F8F60: .word _0380779C _037F8F64: .word _038077AC arm_func_start FUN_037F8F68 -FUN_037F8F68: ;@ 0x037F8F68 +FUN_037F8F68: ; 0x037F8F68 stmdb sp!, {r4, lr} bl FUN_037FB05C mov r4, r0 @@ -1218,30 +1218,30 @@ FUN_037F8F68: ;@ 0x037F8F68 bx lr arm_func_start FUN_037F8F88 -FUN_037F8F88: ;@ 0x037F8F88 - ldr r0, _037F8FB0 ;@ =_0380779C +FUN_037F8F88: ; 0x037F8F88 + ldr r0, _037F8FB0 ; =_0380779C ldr r0, [r0, #8] b _037F8F98 _037F8F94: - ldr r0, [r0, #76] ;@ 0x4c + ldr r0, [r0, #76] ; 0x4c _037F8F98: cmp r0, #0 bxeq lr - ldr r1, [r0, #72] ;@ 0x48 + ldr r1, [r0, #72] ; 0x48 cmp r1, #1 bne _037F8F94 bx lr _037F8FB0: .word _0380779C arm_func_start FUN_037F8FB4 -FUN_037F8FB4: ;@ 0x037F8FB4 +FUN_037F8FB4: ; 0x037F8FB4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 bl FUN_037FB05C mov r4, r0 mov r0, #1 - str r0, [r5, #72] ;@ 0x48 + str r0, [r5, #72] ; 0x48 bl FUN_037F945C mov r0, r4 bl FUN_037FB070 @@ -1250,7 +1250,7 @@ FUN_037F8FB4: ;@ 0x037F8FB4 bx lr arm_func_start FUN_037F8FE8 -FUN_037F8FE8: ;@ 0x037F8FE8 +FUN_037F8FE8: ; 0x037F8FE8 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r5, r0 @@ -1265,11 +1265,11 @@ FUN_037F8FE8: ;@ 0x037F8FE8 _037F9014: mov r0, r5 bl FUN_037F967C - str r7, [r0, #72] ;@ 0x48 - str r6, [r0, #92] ;@ 0x5c - str r6, [r0, #100] ;@ 0x64 - ldr r1, [r0, #100] ;@ 0x64 - str r1, [r0, #96] ;@ 0x60 + str r7, [r0, #72] ; 0x48 + str r6, [r0, #92] ; 0x5c + str r6, [r0, #100] ; 0x64 + ldr r1, [r0, #100] ; 0x64 + str r1, [r0, #96] ; 0x60 _037F9030: ldr r0, [r5] cmp r0, #0 @@ -1287,46 +1287,49 @@ _037F9050: bx lr arm_func_start FUN_037F9064 -FUN_037F9064: ;@ 0x037F9064 +FUN_037F9064: ; 0x037F9064 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 bl FUN_037FB05C mov r5, r0 - ldr r0, _037F90B4 ;@ =_03807794 + ldr r0, _037F90B4 ; =_03807794 ldr r0, [r0] ldr r4, [r0] cmp r6, #0 beq _037F9098 - str r6, [r4, #92] ;@ 0x5c + str r6, [r4, #92] ; 0x5c mov r0, r6 mov r1, r4 bl FUN_037F96B0 _037F9098: mov r0, #0 - str r0, [r4, #72] ;@ 0x48 + str r0, [r4, #72] ; 0x48 bl FUN_037F945C mov r0, r5 bl FUN_037FB070 ldmia sp!, {r4, r5, r6, lr} bx lr _037F90B4: .word _03807794 - ldr r0, [r0, #72] ;@ 0x48 + + arm_func_start FUN_037F90B8 +FUN_037F90B8: ; 0x037F90B8 + ldr r0, [r0, #72] ; 0x48 cmp r0, #2 moveq r0, #1 movne r0, #0 bx lr arm_func_start FUN_037F90CC -FUN_037F90CC: ;@ 0x037F90CC +FUN_037F90CC: ; 0x037F90CC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 bl FUN_037FB05C mov r4, r0 - ldr r0, [r5, #72] ;@ 0x48 + ldr r0, [r5, #72] ; 0x48 cmp r0, #2 beq _037F90F4 - add r0, r5, #128 ;@ 0x80 + add r0, r5, #128 ; 0x80 bl FUN_037F9064 _037F90F4: mov r0, r4 @@ -1336,15 +1339,15 @@ _037F90F4: bx lr arm_func_start FUN_037F9108 -FUN_037F9108: ;@ 0x037F9108 +FUN_037F9108: ; 0x037F9108 stmdb sp!, {r4, lr} - ldr r0, _037F9164 ;@ =_03807794 + ldr r0, _037F9164 ; =_03807794 ldr r0, [r0] ldr r4, [r0] bl FUN_037F8D88 mov r0, r4 bl FUN_037F9A30 - ldr r0, [r4, #92] ;@ 0x5c + ldr r0, [r4, #92] ; 0x5c cmp r0, #0 beq _037F9138 mov r1, r4 @@ -1353,8 +1356,8 @@ _037F9138: mov r0, r4 bl FUN_037F953C mov r0, #2 - str r0, [r4, #72] ;@ 0x48 - add r0, r4, #128 ;@ 0x80 + str r0, [r4, #72] ; 0x48 + add r0, r4, #128 ; 0x80 bl FUN_037F8FE8 bl FUN_037F8D50 bl FUN_037F8F68 @@ -1364,17 +1367,17 @@ _037F9138: _037F9164: .word _03807794 arm_func_start FUN_037F9168 -FUN_037F9168: ;@ 0x037F9168 +FUN_037F9168: ; 0x037F9168 stmfd sp!, {lr} sub sp, sp, #4 - ldr r1, _037F91AC ;@ =_03807794 + ldr r1, _037F91AC ; =_03807794 ldr r1, [r1] ldr r3, [r1] - ldr r2, [r3, #152] ;@ 0x98 + ldr r2, [r3, #152] ; 0x98 cmp r2, #0 beq _037F919C mov r1, #0 - str r1, [r3, #152] ;@ 0x98 + str r1, [r3, #152] ; 0x98 mov lr, pc bx r2 bl FUN_037FB05C @@ -1386,23 +1389,23 @@ _037F919C: _037F91AC: .word _03807794 arm_func_start FUN_037F91B0 -FUN_037F91B0: ;@ 0x037F91B0 +FUN_037F91B0: ; 0x037F91B0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 - ldr r1, _037F9210 ;@ =_03807784 + ldr r1, _037F9210 ; =_03807784 ldr r2, [r1] cmp r2, #0 beq _037F91FC - ldr r1, _037F9214 ;@ =FUN_037F9168 + ldr r1, _037F9214 ; =FUN_037F9168 bl FUN_037F9740 str r4, [r5, #4] ldr r0, [r5] - orr r0, r0, #128 ;@ 0x80 + orr r0, r0, #128 ; 0x80 str r0, [r5] mov r0, #1 - str r0, [r5, #72] ;@ 0x48 + str r0, [r5, #72] ; 0x48 mov r0, r5 bl FUN_037F97E0 b _037F9204 @@ -1417,11 +1420,11 @@ _037F9210: .word _03807784 _037F9214: .word FUN_037F9168 arm_func_start FUN_037F9218 -FUN_037F9218: ;@ 0x037F9218 +FUN_037F9218: ; 0x037F9218 stmfd sp!, {lr} sub sp, sp, #4 bl FUN_037FB05C - ldr r0, _037F9240 ;@ =_0380779C + ldr r0, _037F9240 ; =_0380779C ldr r0, [r0, #4] mov r1, #0 bl FUN_037F91B0 @@ -1431,7 +1434,7 @@ FUN_037F9218: ;@ 0x037F9218 _037F9240: .word _0380779C arm_func_start FUN_037F9244 -FUN_037F9244: ;@ 0x037F9244 +FUN_037F9244: ; 0x037F9244 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r9, r0 @@ -1441,57 +1444,57 @@ FUN_037F9244: ;@ 0x037F9244 bl FUN_037FB05C mov r4, r0 bl FUN_037F9728 - ldr r1, [sp, #36] ;@ 0x24 - str r1, [r9, #84] ;@ 0x54 - str r0, [r9, #80] ;@ 0x50 + ldr r1, [sp, #36] ; 0x24 + str r1, [r9, #84] ; 0x54 + str r0, [r9, #80] ; 0x50 mov r0, #0 - str r0, [r9, #72] ;@ 0x48 - str r0, [r9, #88] ;@ 0x58 + str r0, [r9, #72] ; 0x48 + str r0, [r9, #88] ; 0x58 mov r0, r9 bl FUN_037F9584 - str r6, [r9, #120] ;@ 0x78 + str r6, [r9, #120] ; 0x78 ldr r0, [sp, #32] sub r5, r6, r0 - str r5, [r9, #116] ;@ 0x74 + str r5, [r9, #116] ; 0x74 mov r2, #0 - str r2, [r9, #124] ;@ 0x7c - ldr r1, _037F9348 ;@ =0xD73BFDF7 - ldr r0, [r9, #120] ;@ 0x78 + str r2, [r9, #124] ; 0x7c + ldr r1, _037F9348 ; =0xD73BFDF7 + ldr r0, [r9, #120] ; 0x78 str r1, [r0, #-4] - ldr r1, _037F934C ;@ =0xFBDD37BB - ldr r0, [r9, #116] ;@ 0x74 + ldr r1, _037F934C ; =0xFBDD37BB + ldr r0, [r9, #116] ; 0x74 str r1, [r0] - str r2, [r9, #132] ;@ 0x84 - ldr r0, [r9, #132] ;@ 0x84 - str r0, [r9, #128] ;@ 0x80 + str r2, [r9, #132] ; 0x84 + ldr r0, [r9, #132] ; 0x84 + str r0, [r9, #128] ; 0x80 mov r0, r9 mov r1, r8 sub r2, r6, #4 bl FUN_037F9740 str r7, [r9, #4] - ldr r0, _037F9350 ;@ =FUN_037F9218 - str r0, [r9, #60] ;@ 0x3c + ldr r0, _037F9350 ; =FUN_037F9218 + str r0, [r9, #60] ; 0x3c mov r0, #0 add r1, r5, #4 ldr r2, [sp, #32] sub r2, r2, #8 bl FUN_037FB334 mov r1, #0 - str r1, [r9, #104] ;@ 0x68 - str r1, [r9, #108] ;@ 0x6c - str r1, [r9, #112] ;@ 0x70 + str r1, [r9, #104] ; 0x68 + str r1, [r9, #108] ; 0x6c + str r1, [r9, #112] ; 0x70 mov r0, r9 bl FUN_037F8D48 mov r0, #0 - str r0, [r9, #92] ;@ 0x5c - str r0, [r9, #100] ;@ 0x64 - ldr r1, [r9, #100] ;@ 0x64 - str r1, [r9, #96] ;@ 0x60 - add r1, r9, #136 ;@ 0x88 + str r0, [r9, #92] ; 0x5c + str r0, [r9, #100] ; 0x64 + ldr r1, [r9, #100] ; 0x64 + str r1, [r9, #96] ; 0x60 + add r1, r9, #136 ; 0x88 mov r2, #12 bl FUN_037FB334 mov r0, #0 - str r0, [r9, #148] ;@ 0x94 + str r0, [r9, #148] ; 0x94 mov r0, r4 bl FUN_037FB070 add sp, sp, #4 @@ -1502,56 +1505,56 @@ _037F934C: .word 0xFBDD37BB _037F9350: .word FUN_037F9218 arm_func_start FUN_037F9354 -FUN_037F9354: ;@ 0x037F9354 +FUN_037F9354: ; 0x037F9354 stmfd sp!, {lr} sub sp, sp, #4 - ldr r0, _037F942C ;@ =_03807798 + ldr r0, _037F942C ; =_03807798 ldr r1, [r0] cmp r1, #0 bne _037F9420 mov r2, #1 str r2, [r0] - ldr r1, _037F9430 ;@ =_038077A0 - ldr r0, _037F9434 ;@ =_03807794 + ldr r1, _037F9430 ; =_038077A0 + ldr r0, _037F9434 ; =_03807794 str r1, [r0] mov r0, #16 - ldr r1, _037F9438 ;@ =_03807850 - str r0, [r1, #84] ;@ 0x54 + ldr r1, _037F9438 ; =_03807850 + str r0, [r1, #84] ; 0x54 mov r0, #0 - str r0, [r1, #80] ;@ 0x50 - str r2, [r1, #72] ;@ 0x48 - str r0, [r1, #76] ;@ 0x4c - str r0, [r1, #88] ;@ 0x58 - ldr r0, _037F943C ;@ =_0380779C + str r0, [r1, #80] ; 0x50 + str r2, [r1, #72] ; 0x48 + str r0, [r1, #76] ; 0x4c + str r0, [r1, #88] ; 0x58 + ldr r0, _037F943C ; =_0380779C str r1, [r0, #8] str r1, [r0, #4] - ldr r2, _037F9440 ;@ =0x00000400 + ldr r2, _037F9440 ; =0x00000400 cmp r2, #0 - ldrle r0, _037F9444 ;@ =FUN_037F8000 + ldrle r0, _037F9444 ; =FUN_037F8000 suble r2, r0, r2 - ldrgt r1, _037F9448 ;@ =0x00000400 - ldrgt r0, _037F944C ;@ =0x0380FF80 + ldrgt r1, _037F9448 ; =0x00000400 + ldrgt r0, _037F944C ; =0x0380FF80 subgt r0, r0, r1 subgt r2, r0, r2 - ldr r1, _037F9448 ;@ =0x00000400 - ldr r0, _037F944C ;@ =0x0380FF80 + ldr r1, _037F9448 ; =0x00000400 + ldr r0, _037F944C ; =0x0380FF80 sub r3, r0, r1 - ldr r1, _037F9438 ;@ =_03807850 - str r3, [r1, #120] ;@ 0x78 - str r2, [r1, #116] ;@ 0x74 + ldr r1, _037F9438 ; =_03807850 + str r3, [r1, #120] ; 0x78 + str r2, [r1, #116] ; 0x74 mov r0, #0 - str r0, [r1, #124] ;@ 0x7c - ldr r2, _037F9450 ;@ =0xD73BFDF7 + str r0, [r1, #124] ; 0x7c + ldr r2, _037F9450 ; =0xD73BFDF7 str r2, [r3, #-4] - ldr r3, _037F9454 ;@ =0xFBDD37BB - ldr r2, [r1, #116] ;@ 0x74 + ldr r3, _037F9454 ; =0xFBDD37BB + ldr r2, [r1, #116] ; 0x74 str r3, [r2] - str r0, [r1, #132] ;@ 0x84 - str r0, [r1, #128] ;@ 0x80 - ldr r1, _037F943C ;@ =_0380779C + str r0, [r1, #132] ; 0x84 + str r0, [r1, #128] ; 0x80 + ldr r1, _037F943C ; =_0380779C strh r0, [r1] strh r0, [r1, #2] - ldr r2, _037F9458 ;@ =0x027FFFA4 + ldr r2, _037F9458 ; =0x027FFFA4 str r1, [r2] bl FUN_037F8DC0 _037F9420: @@ -1572,13 +1575,13 @@ _037F9454: .word 0xFBDD37BB _037F9458: .word 0x027FFFA4 arm_func_start FUN_037F945C -FUN_037F945C: ;@ 0x037F945C +FUN_037F945C: ; 0x037F945C stmdb sp!, {r4, r5, r6, lr} - ldr r0, _037F952C ;@ =_03807788 + ldr r0, _037F952C ; =_03807788 ldr r0, [r0] cmp r0, #0 bne _037F9524 - ldr r4, _037F9530 ;@ =_0380779C + ldr r4, _037F9530 ; =_0380779C ldrh r0, [r4, #2] cmp r0, #0 bne _037F948C @@ -1590,7 +1593,7 @@ _037F948C: strh r0, [r4] b _037F9524 _037F9498: - ldr r0, _037F9534 ;@ =_03807794 + ldr r0, _037F9534 ; =_03807794 ldr r0, [r0] ldr r6, [r0] bl FUN_037F8F88 @@ -1599,7 +1602,7 @@ _037F9498: beq _037F9524 cmp r5, #0 beq _037F9524 - ldr r0, [r6, #72] ;@ 0x48 + ldr r0, [r6, #72] ; 0x48 cmp r0, #2 beq _037F94D8 mov r0, r6 @@ -1607,7 +1610,7 @@ _037F9498: cmp r0, #0 bne _037F9524 _037F94D8: - ldr r0, _037F9538 ;@ =_03807790 + ldr r0, _037F9538 ; =_03807790 ldr r2, [r0] cmp r2, #0 beq _037F94F8 @@ -1624,7 +1627,7 @@ _037F94F8: mov lr, pc bx r2 _037F9514: - ldr r0, _037F9530 ;@ =_0380779C + ldr r0, _037F9530 ; =_0380779C str r5, [r0, #4] mov r0, r5 bl FUN_037F97E0 @@ -1637,14 +1640,14 @@ _037F9534: .word _03807794 _037F9538: .word _03807790 arm_func_start FUN_037F953C -FUN_037F953C: ;@ 0x037F953C - ldr r1, _037F9580 ;@ =_0380779C +FUN_037F953C: ; 0x037F953C + ldr r1, _037F9580 ; =_0380779C ldr r2, [r1, #8] mov r1, #0 b _037F9554 _037F954C: mov r1, r2 - ldr r2, [r2, #76] ;@ 0x4c + ldr r2, [r2, #76] ; 0x4c _037F9554: cmp r2, #0 beq _037F9564 @@ -1652,48 +1655,48 @@ _037F9554: bne _037F954C _037F9564: cmp r1, #0 - ldreq r1, [r0, #76] ;@ 0x4c - ldreq r0, _037F9580 ;@ =_0380779C + ldreq r1, [r0, #76] ; 0x4c + ldreq r0, _037F9580 ; =_0380779C streq r1, [r0, #8] - ldrne r0, [r0, #76] ;@ 0x4c - strne r0, [r1, #76] ;@ 0x4c + ldrne r0, [r0, #76] ; 0x4c + strne r0, [r1, #76] ; 0x4c bx lr _037F9580: .word _0380779C arm_func_start FUN_037F9584 -FUN_037F9584: ;@ 0x037F9584 +FUN_037F9584: ; 0x037F9584 stmfd sp!, {lr} sub sp, sp, #4 - ldr r1, _037F95E8 ;@ =_0380779C + ldr r1, _037F95E8 ; =_0380779C ldr r3, [r1, #8] mov lr, r3 mov ip, #0 b _037F95A8 _037F95A0: mov ip, lr - ldr lr, [lr, #76] ;@ 0x4c + ldr lr, [lr, #76] ; 0x4c _037F95A8: cmp lr, #0 beq _037F95C0 - ldr r2, [lr, #84] ;@ 0x54 - ldr r1, [r0, #84] ;@ 0x54 + ldr r2, [lr, #84] ; 0x54 + ldr r1, [r0, #84] ; 0x54 cmp r2, r1 bcc _037F95A0 _037F95C0: cmp ip, #0 - streq r3, [r0, #76] ;@ 0x4c - ldreq r1, _037F95E8 ;@ =_0380779C + streq r3, [r0, #76] ; 0x4c + ldreq r1, _037F95E8 ; =_0380779C streq r0, [r1, #8] - ldrne r1, [ip, #76] ;@ 0x4c - strne r1, [r0, #76] ;@ 0x4c - strne r0, [ip, #76] ;@ 0x4c + ldrne r1, [ip, #76] ; 0x4c + strne r1, [r0, #76] ; 0x4c + strne r0, [ip, #76] ; 0x4c add sp, sp, #4 ldmia sp!, {lr} bx lr _037F95E8: .word _0380779C arm_func_start FUN_037F95EC -FUN_037F95EC: ;@ 0x037F95EC +FUN_037F95EC: ; 0x037F95EC ldr r2, [r0] cmp r2, #0 beq _037F9614 @@ -1709,24 +1712,24 @@ _037F9614: bx lr arm_func_start FUN_037F961C -FUN_037F961C: ;@ 0x037F961C +FUN_037F961C: ; 0x037F961C stmfd sp!, {lr} sub sp, sp, #4 ldr r2, [r0] mov lr, r2 b _037F9664 _037F9630: - ldr ip, [lr, #100] ;@ 0x64 + ldr ip, [lr, #100] ; 0x64 cmp lr, r1 bne _037F9660 - ldr r3, [lr, #96] ;@ 0x60 + ldr r3, [lr, #96] ; 0x60 cmp r2, lr streq ip, [r0] - strne ip, [r3, #100] ;@ 0x64 + strne ip, [r3, #100] ; 0x64 ldr r1, [r0, #4] cmp r1, lr streq r3, [r0, #4] - strne r3, [ip, #96] ;@ 0x60 + strne r3, [ip, #96] ; 0x60 b _037F966C _037F9660: mov lr, ip @@ -1740,35 +1743,35 @@ _037F966C: bx lr arm_func_start FUN_037F967C -FUN_037F967C: ;@ 0x037F967C +FUN_037F967C: ; 0x037F967C ldr r2, [r0] cmp r2, #0 beq _037F96A8 - ldr r1, [r2, #100] ;@ 0x64 + ldr r1, [r2, #100] ; 0x64 str r1, [r0] cmp r1, #0 movne r0, #0 - strne r0, [r1, #96] ;@ 0x60 + strne r0, [r1, #96] ; 0x60 moveq r1, #0 streq r1, [r0, #4] - streq r1, [r2, #92] ;@ 0x5c + streq r1, [r2, #92] ; 0x5c _037F96A8: mov r0, r2 bx lr arm_func_start FUN_037F96B0 -FUN_037F96B0: ;@ 0x037F96B0 +FUN_037F96B0: ; 0x037F96B0 ldr ip, [r0] b _037F96C4 _037F96B8: cmp ip, r1 bxeq lr - ldr ip, [ip, #100] ;@ 0x64 + ldr ip, [ip, #100] ; 0x64 _037F96C4: cmp ip, #0 beq _037F96DC - ldr r3, [ip, #84] ;@ 0x54 - ldr r2, [r1, #84] ;@ 0x54 + ldr r3, [ip, #84] ; 0x54 + ldr r2, [r1, #84] ; 0x54 cmp r3, r2 bls _037F96B8 _037F96DC: @@ -1777,25 +1780,25 @@ _037F96DC: ldr r2, [r0, #4] cmp r2, #0 streq r1, [r0] - strne r1, [r2, #100] ;@ 0x64 - str r2, [r1, #96] ;@ 0x60 + strne r1, [r2, #100] ; 0x64 + str r2, [r1, #96] ; 0x60 mov r2, #0 - str r2, [r1, #100] ;@ 0x64 + str r2, [r1, #100] ; 0x64 str r1, [r0, #4] bx lr _037F9708: - ldr r2, [ip, #96] ;@ 0x60 + ldr r2, [ip, #96] ; 0x60 cmp r2, #0 streq r1, [r0] - strne r1, [r2, #100] ;@ 0x64 - str r2, [r1, #96] ;@ 0x60 - str ip, [r1, #100] ;@ 0x64 - str r1, [ip, #96] ;@ 0x60 + strne r1, [r2, #100] ; 0x64 + str r2, [r1, #96] ; 0x60 + str ip, [r1, #100] ; 0x64 + str r1, [ip, #96] ; 0x60 bx lr arm_func_start FUN_037F9728 -FUN_037F9728: ;@ 0x037F9728 - ldr r1, _037F973C ;@ =_0380778C +FUN_037F9728: ; 0x037F9728 + ldr r1, _037F973C ; =_0380778C ldr r0, [r1] add r0, r0, #1 str r0, [r1] @@ -1803,16 +1806,16 @@ FUN_037F9728: ;@ 0x037F9728 _037F973C: .word _0380778C arm_func_start FUN_037F9740 -FUN_037F9740: ;@ 0x037F9740 +FUN_037F9740: ; 0x037F9740 add r1, r1, #4 - str r1, [r0, #64] ;@ 0x40 - str r2, [r0, #68] ;@ 0x44 - sub r2, r2, #64 ;@ 0x40 + str r1, [r0, #64] ; 0x40 + str r2, [r0, #68] ; 0x44 + sub r2, r2, #64 ; 0x40 tst r2, #4 subne r2, r2, #4 - str r2, [r0, #56] ;@ 0x38 + str r2, [r0, #56] ; 0x38 ands r1, r1, #1 - movne r1, #63 ;@ 0x3f + movne r1, #63 ; 0x3f moveq r1, #31 str r1, [r0] mov r1, #0 @@ -1824,46 +1827,46 @@ FUN_037F9740: ;@ 0x037F9740 str r1, [r0, #24] str r1, [r0, #28] str r1, [r0, #32] - str r1, [r0, #36] ;@ 0x24 - str r1, [r0, #40] ;@ 0x28 - str r1, [r0, #44] ;@ 0x2c - str r1, [r0, #48] ;@ 0x30 - str r1, [r0, #52] ;@ 0x34 - str r1, [r0, #60] ;@ 0x3c + str r1, [r0, #36] ; 0x24 + str r1, [r0, #40] ; 0x28 + str r1, [r0, #44] ; 0x2c + str r1, [r0, #48] ; 0x30 + str r1, [r0, #52] ; 0x34 + str r1, [r0, #60] ; 0x3c bx lr arm_func_start FUN_037F97AC -FUN_037F97AC: ;@ 0x037F97AC +FUN_037F97AC: ; 0x037F97AC add r1, r0, #0 mrs r2, CPSR str r2, [r1], #4 - mov r0, #211 ;@ 0xd3 + mov r0, #211 ; 0xd3 msr CPSR_c, r0 - str sp, [r1, #64] ;@ 0x40 + str sp, [r1, #64] ; 0x40 msr CPSR_c, r2 mov r0, #1 stmia r1, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr} adr r0, FUN_037F97E0 - str r0, [r1, #60] ;@ 0x3c + str r0, [r1, #60] ; 0x3c mov r0, #0 bx lr arm_func_start FUN_037F97E0 -FUN_037F97E0: ;@ 0x037F97E0 +FUN_037F97E0: ; 0x037F97E0 mrs r1, CPSR bic r1, r1, #31 - orr r1, r1, #211 ;@ 0xd3 + orr r1, r1, #211 ; 0xd3 msr CPSR_c, r1 ldr r1, [r0], #4 msr SPSR_fsxc, r1 - ldr sp, [r0, #64] ;@ 0x40 - ldr lr, [r0, #60] ;@ 0x3c + ldr sp, [r0, #64] ; 0x40 + ldr lr, [r0, #60] ; 0x3c ldmia r0, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr}^ - nop ;@ (mov r0, r0) + nop ; (mov r0, r0) subs pc, lr, #4 arm_func_start FUN_037F980C -FUN_037F980C: ;@ 0x037F980C +FUN_037F980C: ; 0x037F980C stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r6, r0 mov r5, r1 @@ -1900,7 +1903,7 @@ _037F987C: bx lr arm_func_start FUN_037F9884 -FUN_037F9884: ;@ 0x037F9884 +FUN_037F9884: ; 0x037F9884 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r6, r0 mov r5, r1 @@ -1947,7 +1950,7 @@ _037F991C: bx lr arm_func_start FUN_037F9924 -FUN_037F9924: ;@ 0x037F9924 +FUN_037F9924: ; 0x037F9924 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r6, r0 @@ -1991,7 +1994,7 @@ _037F99AC: bx lr arm_func_start FUN_037F99B8 -FUN_037F99B8: ;@ 0x037F99B8 +FUN_037F99B8: ; 0x037F99B8 mov ip, #0 str ip, [r0, #4] ldr r3, [r0, #4] @@ -2006,34 +2009,34 @@ FUN_037F99B8: ;@ 0x037F99B8 bx lr arm_func_start FUN_037F99E8 -FUN_037F99E8: ;@ 0x037F99E8 +FUN_037F99E8: ; 0x037F99E8 ldr r2, [r1, #16] ldr r1, [r1, #20] cmp r2, #0 - streq r1, [r0, #112] ;@ 0x70 + streq r1, [r0, #112] ; 0x70 strne r1, [r2, #20] cmp r1, #0 - streq r2, [r0, #108] ;@ 0x6c + streq r2, [r0, #108] ; 0x6c strne r2, [r1, #16] bx lr arm_func_start FUN_037F9A0C -FUN_037F9A0C: ;@ 0x037F9A0C - ldr r2, [r0, #112] ;@ 0x70 +FUN_037F9A0C: ; 0x037F9A0C + ldr r2, [r0, #112] ; 0x70 cmp r2, #0 - streq r1, [r0, #108] ;@ 0x6c + streq r1, [r0, #108] ; 0x6c strne r1, [r2, #16] str r2, [r1, #20] mov r2, #0 str r2, [r1, #16] - str r1, [r0, #112] ;@ 0x70 + str r1, [r0, #112] ; 0x70 bx lr arm_func_start FUN_037F9A30 -FUN_037F9A30: ;@ 0x037F9A30 +FUN_037F9A30: ; 0x037F9A30 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 - add r5, r6, #108 ;@ 0x6c + add r5, r6, #108 ; 0x6c mov r4, #0 b _037F9A58 _037F9A44: @@ -2043,20 +2046,20 @@ _037F9A44: str r4, [r0, #8] bl FUN_037F8FE8 _037F9A58: - ldr r0, [r6, #108] ;@ 0x6c + ldr r0, [r6, #108] ; 0x6c cmp r0, #0 bne _037F9A44 ldmia sp!, {r4, r5, r6, lr} bx lr arm_func_start FUN_037F9A6C -FUN_037F9A6C: ;@ 0x037F9A6C +FUN_037F9A6C: ; 0x037F9A6C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 bl FUN_037FB05C mov r4, r0 - ldr r0, _037F9AD8 ;@ =_0380779C + ldr r0, _037F9AD8 ; =_0380779C ldr r0, [r0, #4] ldr r1, [r5, #8] cmp r1, r0 @@ -2082,13 +2085,13 @@ _037F9AC4: _037F9AD8: .word _0380779C arm_func_start FUN_037F9ADC -FUN_037F9ADC: ;@ 0x037F9ADC +FUN_037F9ADC: ; 0x037F9ADC stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r5, r0 bl FUN_037FB05C mov r4, r0 - ldr r0, _037F9B64 ;@ =_0380779C + ldr r0, _037F9B64 ; =_0380779C ldr r7, [r0, #4] mov r6, #0 _037F9AFC: @@ -2109,10 +2112,10 @@ _037F9B28: addeq r0, r0, #1 streq r0, [r5, #12] beq _037F9B50 - str r5, [r7, #104] ;@ 0x68 + str r5, [r7, #104] ; 0x68 mov r0, r5 bl FUN_037F9064 - str r6, [r7, #104] ;@ 0x68 + str r6, [r7, #104] ; 0x68 b _037F9AFC _037F9B50: mov r0, r4 @@ -2121,6 +2124,9 @@ _037F9B50: ldmia sp!, {r4, r5, r6, r7, lr} bx lr _037F9B64: .word _0380779C + + arm_func_start FUN_037F9B68 +FUN_037F9B68: ; 0x037F9B68 mov r2, #0 str r2, [r0, #4] ldr r1, [r0, #4] @@ -2130,7 +2136,7 @@ _037F9B64: .word _0380779C bx lr arm_func_start FUN_037F9B84 -FUN_037F9B84: ;@ 0x037F9B84 +FUN_037F9B84: ; 0x037F9B84 stmfd sp!, {lr} sub sp, sp, #4 bl FUN_037F9CE4 @@ -2147,23 +2153,23 @@ FUN_037F9B84: ;@ 0x037F9B84 bx lr arm_func_start FUN_037F9BBC -FUN_037F9BBC: ;@ 0x037F9BBC +FUN_037F9BBC: ; 0x037F9BBC mov r0, r0, lsl #2 - add r0, r0, #40894464 ;@ 0x2700000 - add r0, r0, #1044480 ;@ 0xff000 - str r1, [r0, #3488] ;@ 0xda0 + add r0, r0, #40894464 ; 0x2700000 + add r0, r0, #1044480 ; 0xff000 + str r1, [r0, #3488] ; 0xda0 bx lr arm_func_start FUN_037F9BD0 -FUN_037F9BD0: ;@ 0x037F9BD0 +FUN_037F9BD0: ; 0x037F9BD0 mov r0, r0, lsl #2 - add r0, r0, #40894464 ;@ 0x2700000 - add r0, r0, #1044480 ;@ 0xff000 - str r1, [r0, #3524] ;@ 0xdc4 + add r0, r0, #40894464 ; 0x2700000 + add r0, r0, #1044480 ; 0xff000 + str r1, [r0, #3524] ; 0xdc4 bx lr arm_func_start FUN_037F9BE4 -FUN_037F9BE4: ;@ 0x037F9BE4 +FUN_037F9BE4: ; 0x037F9BE4 cmp r0, #1 beq _037F9C00 cmp r0, #7 @@ -2172,17 +2178,17 @@ FUN_037F9BE4: ;@ 0x037F9BE4 beq _037F9C18 b _037F9C2C _037F9C00: - ldr r0, _037F9C34 ;@ =0x027FAFCC + ldr r0, _037F9C34 ; =0x027FAFCC bx lr _037F9C08: - ldr r0, _037F9C38 ;@ =0x0380B92C - cmp r0, #58720256 ;@ 0x03800000 - movhi r0, #58720256 ;@ 0x03800000 + ldr r0, _037F9C38 ; =0x0380B92C + cmp r0, #58720256 ; 0x03800000 + movhi r0, #58720256 ; 0x03800000 bx lr _037F9C18: - mov r0, #58720256 ;@ 0x03800000 - ldr r1, _037F9C38 ;@ =0x0380B92C - cmp r1, #58720256 ;@ 0x03800000 + mov r0, #58720256 ; 0x03800000 + ldr r1, _037F9C38 ; =0x0380B92C + cmp r1, #58720256 ; 0x03800000 movhi r0, r1 bx lr _037F9C2C: @@ -2192,7 +2198,7 @@ _037F9C34: .word 0x027FAFCC _037F9C38: .word 0x0380B92C arm_func_start FUN_037F9C3C -FUN_037F9C3C: ;@ 0x037F9C3C +FUN_037F9C3C: ; 0x037F9C3C cmp r0, #1 beq _037F9C58 cmp r0, #7 @@ -2201,20 +2207,20 @@ FUN_037F9C3C: ;@ 0x037F9C3C beq _037F9C68 b _037F9CA0 _037F9C58: - ldr r0, _037F9CA8 ;@ =0x027FF000 + ldr r0, _037F9CA8 ; =0x027FF000 bx lr _037F9C60: - mov r0, #58720256 ;@ 0x03800000 + mov r0, #58720256 ; 0x03800000 bx lr _037F9C68: - ldr r1, _037F9CAC ;@ =0x00000400 - ldr r0, _037F9CB0 ;@ =0x0380FF80 + ldr r1, _037F9CAC ; =0x00000400 + ldr r0, _037F9CB0 ; =0x0380FF80 sub r2, r0, r1 - mov r0, #58720256 ;@ 0x03800000 - ldr r1, _037F9CB4 ;@ =0x0380B92C - cmp r1, #58720256 ;@ 0x03800000 + mov r0, #58720256 ; 0x03800000 + ldr r1, _037F9CB4 ; =0x0380B92C + cmp r1, #58720256 ; 0x03800000 movhi r0, r1 - ldr r1, _037F9CB8 ;@ =0x00000400 + ldr r1, _037F9CB8 ; =0x00000400 cmp r1, #0 bxeq lr cmp r1, #0 @@ -2231,26 +2237,26 @@ _037F9CB4: .word 0x0380B92C _037F9CB8: .word 0x00000400 arm_func_start FUN_037F9CBC -FUN_037F9CBC: ;@ 0x037F9CBC +FUN_037F9CBC: ; 0x037F9CBC mov r0, r0, lsl #2 - add r0, r0, #40894464 ;@ 0x2700000 - add r0, r0, #1044480 ;@ 0xff000 - ldr r0, [r0, #3488] ;@ 0xda0 + add r0, r0, #40894464 ; 0x2700000 + add r0, r0, #1044480 ; 0xff000 + ldr r0, [r0, #3488] ; 0xda0 bx lr arm_func_start FUN_037F9CD0 -FUN_037F9CD0: ;@ 0x037F9CD0 +FUN_037F9CD0: ; 0x037F9CD0 mov r0, r0, lsl #2 - add r0, r0, #40894464 ;@ 0x2700000 - add r0, r0, #1044480 ;@ 0xff000 - ldr r0, [r0, #3524] ;@ 0xdc4 + add r0, r0, #40894464 ; 0x2700000 + add r0, r0, #1044480 ; 0xff000 + ldr r0, [r0, #3524] ; 0xdc4 bx lr arm_func_start FUN_037F9CE4 -FUN_037F9CE4: ;@ 0x037F9CE4 +FUN_037F9CE4: ; 0x037F9CE4 stmfd sp!, {lr} sub sp, sp, #4 - ldr r1, _037F9D84 ;@ =_038078F4 + ldr r1, _037F9D84 ; =_038078F4 ldr r0, [r1] cmp r0, #0 bne _037F9D78 @@ -2292,7 +2298,7 @@ _037F9D78: _037F9D84: .word _038078F4 arm_func_start FUN_037F9D88 -FUN_037F9D88: ;@ 0x037F9D88 +FUN_037F9D88: ; 0x037F9D88 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r8, r0 mov r7, r1 @@ -2300,7 +2306,7 @@ FUN_037F9D88: ;@ 0x037F9D88 mov r5, r6 mvn r4, #0 bl FUN_037FB05C - ldr r1, _037F9F34 ;@ =_038078F8 + ldr r1, _037F9F34 ; =_038078F8 ldr ip, [r1, r8, lsl #2] mov r1, r4 cmp r7, r1 @@ -2343,7 +2349,7 @@ _037F9E0C: bne _037F9F24 _037F9E44: ldr r7, [r1, #8] - cmp r7, #64 ;@ 0x40 + cmp r7, #64 ; 0x40 bcc _037F9F24 ands r1, r7, #31 bne _037F9F24 @@ -2380,7 +2386,7 @@ _037F9E94: bne _037F9F24 _037F9ECC: ldr r7, [r1, #8] - cmp r7, #64 ;@ 0x40 + cmp r7, #64 ; 0x40 bcc _037F9F24 ands r3, r7, #31 bne _037F9F24 @@ -2411,14 +2417,14 @@ _037F9F24: _037F9F34: .word _038078F8 arm_func_start FUN_037F9F38 -FUN_037F9F38: ;@ 0x037F9F38 +FUN_037F9F38: ; 0x037F9F38 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r4, r0 mov r6, r1 mov r5, r2 bl FUN_037FB05C - ldr r1, _037F9FDC ;@ =_038078F8 + ldr r1, _037F9FDC ; =_038078F8 ldr r7, [r1, r4, lsl #2] add r1, r6, #31 bic r6, r1, #31 @@ -2460,14 +2466,14 @@ _037F9FD0: _037F9FDC: .word _038078F8 arm_func_start FUN_037F9FE0 -FUN_037F9FE0: ;@ 0x037F9FE0 +FUN_037F9FE0: ; 0x037F9FE0 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r7, r0 mov r5, r1 mov r4, r2 mov r6, r3 bl FUN_037FB05C - ldr r1, _037FA084 ;@ =_038078F8 + ldr r1, _037FA084 ; =_038078F8 str r5, [r1, r7, lsl #2] mov r2, #12 mul r1, r6, r2 @@ -2507,13 +2513,13 @@ _037FA044: _037FA084: .word _038078F8 arm_func_start FUN_037FA088 -FUN_037FA088: ;@ 0x037FA088 +FUN_037FA088: ; 0x037FA088 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 mov r5, r1 bl FUN_037FB05C - ldr r1, _037FA0C0 ;@ =_038078F8 + ldr r1, _037FA0C0 ; =_038078F8 ldr r1, [r1, r4, lsl #2] ldr r4, [r1] str r5, [r1] @@ -2525,7 +2531,7 @@ FUN_037FA088: ;@ 0x037FA088 _037FA0C0: .word _038078F8 arm_func_start FUN_037FA0C4 -FUN_037FA0C4: ;@ 0x037FA0C4 +FUN_037FA0C4: ; 0x037FA0C4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 @@ -2533,7 +2539,7 @@ FUN_037FA0C4: ;@ 0x037FA0C4 mov r6, r2 bl FUN_037FB05C mov r5, r0 - ldr r0, _037FA134 ;@ =_038078F8 + ldr r0, _037FA134 ; =_038078F8 ldr r0, [r0, r7, lsl #2] cmp r4, #0 ldrlt r4, [r0] @@ -2557,7 +2563,7 @@ FUN_037FA0C4: ;@ 0x037FA0C4 _037FA134: .word _038078F8 arm_func_start FUN_037FA138 -FUN_037FA138: ;@ 0x037FA138 +FUN_037FA138: ; 0x037FA138 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r6, r0 @@ -2565,7 +2571,7 @@ FUN_037FA138: ;@ 0x037FA138 mov r7, r2 bl FUN_037FB05C mov r4, r0 - ldr r1, _037FA24C ;@ =_038078F8 + ldr r1, _037FA24C ; =_038078F8 ldr r1, [r1, r6, lsl #2] cmp r1, #0 bne _037FA170 @@ -2602,7 +2608,7 @@ _037FA1B4: _037FA1CC: ldr r1, [r5, #8] sub r1, r1, r7 - cmp r1, #64 ;@ 0x40 + cmp r1, #64 ; 0x40 bcs _037FA1EC mov r1, r5 bl FUN_037FA304 @@ -2638,7 +2644,7 @@ _037FA240: _037FA24C: .word _038078F8 arm_func_start FUN_037FA250 -FUN_037FA250: ;@ 0x037FA250 +FUN_037FA250: ; 0x037FA250 stmfd sp!, {lr} sub sp, sp, #4 mov ip, r0 @@ -2692,7 +2698,7 @@ _037FA2F8: bx lr arm_func_start FUN_037FA304 -FUN_037FA304: ;@ 0x037FA304 +FUN_037FA304: ; 0x037FA304 ldr r3, [r1, #4] cmp r3, #0 ldrne r2, [r1] @@ -2705,7 +2711,7 @@ FUN_037FA304: ;@ 0x037FA304 bx lr arm_func_start FUN_037FA32C -FUN_037FA32C: ;@ 0x037FA32C +FUN_037FA32C: ; 0x037FA32C str r0, [r1, #4] mov r2, #0 str r2, [r1] @@ -2715,8 +2721,8 @@ FUN_037FA32C: ;@ 0x037FA32C bx lr arm_func_start FUN_037FA348 -FUN_037FA348: ;@ 0x037FA348 - ldr r1, _037FA360 ;@ =_0380791C +FUN_037FA348: ; 0x037FA348 + ldr r1, _037FA360 ; =_0380791C ldrh r3, [r1] mov r2, #1 orr r0, r3, r2, lsl r0 @@ -2725,28 +2731,28 @@ FUN_037FA348: ;@ 0x037FA348 _037FA360: .word _0380791C arm_func_start FUN_037FA364 -FUN_037FA364: ;@ 0x037FA364 +FUN_037FA364: ; 0x037FA364 stmfd sp!, {lr} sub sp, sp, #12 bl FUN_037FB05C - ldr r1, _037FA404 ;@ =0x04000100 + ldr r1, _037FA404 ; =0x04000100 ldrh r1, [r1] strh r1, [sp] - ldr r1, _037FA408 ;@ =_03807928 + ldr r1, _037FA408 ; =_03807928 ldr ip, [r1] ldr r3, [r1, #4] - ldr r2, _037FA40C ;@ =0x0000FFFF + ldr r2, _037FA40C ; =0x0000FFFF mvn r1, #0 and r2, r3, r2 and r1, ip, r1 str r1, [sp, #4] str r2, [sp, #8] - ldr r1, _037FA410 ;@ =0x04000214 + ldr r1, _037FA410 ; =0x04000214 ldr r1, [r1] ands r1, r1, #8 beq _037FA3D8 ldrh r1, [sp] - ands r1, r1, #32768 ;@ 0x8000 + ands r1, r1, #32768 ; 0x8000 bne _037FA3D8 ldr r3, [sp, #4] ldr r2, [sp, #8] @@ -2773,10 +2779,10 @@ _037FA40C: .word 0x0000FFFF _037FA410: .word 0x04000214 arm_func_start FUN_037FA414 -FUN_037FA414: ;@ 0x037FA414 +FUN_037FA414: ; 0x037FA414 stmfd sp!, {lr} sub sp, sp, #4 - ldr r1, _037FA488 ;@ =_03807928 + ldr r1, _037FA488 ; =_03807928 ldr ip, [r1] ldr r2, [r1, #4] mov r3, #0 @@ -2785,20 +2791,20 @@ FUN_037FA414: ;@ 0x037FA414 adc r0, r2, #0 str ip, [r1] str r0, [r1, #4] - ldr r0, _037FA48C ;@ =_03807924 + ldr r0, _037FA48C ; =_03807924 ldr r1, [r0] cmp r1, #0 beq _037FA46C - ldr r2, _037FA490 ;@ =0x04000102 + ldr r2, _037FA490 ; =0x04000102 strh r3, [r2] - ldr r1, _037FA494 ;@ =0x04000100 + ldr r1, _037FA494 ; =0x04000100 strh r3, [r1] - mov r1, #193 ;@ 0xc1 + mov r1, #193 ; 0xc1 strh r1, [r2] str r3, [r0] _037FA46C: mov r0, #0 - ldr r1, _037FA498 ;@ =FUN_037FA414 + ldr r1, _037FA498 ; =FUN_037FA414 mov r2, r0 bl FUN_037F8900 add sp, sp, #4 @@ -2811,17 +2817,17 @@ _037FA494: .word 0x04000100 _037FA498: .word FUN_037FA414 arm_func_start FUN_037FA49C -FUN_037FA49C: ;@ 0x037FA49C - ldr r0, _037FA4A8 ;@ =_03807920 +FUN_037FA49C: ; 0x037FA49C + ldr r0, _037FA4A8 ; =_03807920 ldrh r0, [r0] bx lr _037FA4A8: .word _03807920 arm_func_start FUN_037FA4AC -FUN_037FA4AC: ;@ 0x037FA4AC +FUN_037FA4AC: ; 0x037FA4AC stmfd sp!, {lr} sub sp, sp, #4 - ldr r0, _037FA528 ;@ =_03807920 + ldr r0, _037FA528 ; =_03807920 ldrh r1, [r0] cmp r1, #0 bne _037FA51C @@ -2830,22 +2836,22 @@ FUN_037FA4AC: ;@ 0x037FA4AC mov r0, #0 bl FUN_037FA348 mov r2, #0 - ldr r0, _037FA52C ;@ =_03807928 + ldr r0, _037FA52C ; =_03807928 str r2, [r0] str r2, [r0, #4] - ldr r1, _037FA530 ;@ =0x04000102 + ldr r1, _037FA530 ; =0x04000102 strh r2, [r1] - ldr r0, _037FA534 ;@ =0x04000100 + ldr r0, _037FA534 ; =0x04000100 strh r2, [r0] - mov r0, #193 ;@ 0xc1 + mov r0, #193 ; 0xc1 strh r0, [r1] mov r0, #8 - ldr r1, _037FA538 ;@ =FUN_037FA414 + ldr r1, _037FA538 ; =FUN_037FA414 bl FUN_037F894C mov r0, #8 bl FUN_037F8894 mov r1, #0 - ldr r0, _037FA53C ;@ =_03807924 + ldr r0, _037FA53C ; =_03807924 str r1, [r0] _037FA51C: add sp, sp, #4 @@ -2859,27 +2865,27 @@ _037FA538: .word FUN_037FA414 _037FA53C: .word _03807924 arm_func_start FUN_037FA540 -FUN_037FA540: ;@ 0x037FA540 +FUN_037FA540: ; 0x037FA540 stmdb sp!, {r0, lr} bl FUN_037FA550 ldmia sp!, {r0, lr} bx lr arm_func_start FUN_037FA550 -FUN_037FA550: ;@ 0x037FA550 +FUN_037FA550: ; 0x037FA550 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r1, #0 - ldr r0, _037FA644 ;@ =0x04000106 + ldr r0, _037FA644 ; =0x04000106 strh r1, [r0] mov r0, #16 bl FUN_037F8858 - ldr r1, _037FA648 ;@ =0x0380FFF8 + ldr r1, _037FA648 ; =0x0380FFF8 ldr r0, [r1] orr r0, r0, #16 str r0, [r1] bl FUN_037FA364 - ldr r2, _037FA64C ;@ =_03807934 + ldr r2, _037FA64C ; =_03807934 ldr r4, [r2] cmp r4, #0 beq _037FA638 @@ -2923,7 +2929,7 @@ _037FA5FC: mov r2, r1 bl FUN_037FA7D0 _037FA624: - ldr r0, _037FA64C ;@ =_03807934 + ldr r0, _037FA64C ; =_03807934 ldr r0, [r0] cmp r0, #0 beq _037FA638 @@ -2937,7 +2943,7 @@ _037FA648: .word 0x0380FFF8 _037FA64C: .word _03807934 arm_func_start FUN_037FA650 -FUN_037FA650: ;@ 0x037FA650 +FUN_037FA650: ; 0x037FA650 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -2952,7 +2958,7 @@ _037FA678: ldr r0, [r5, #24] cmp r0, #0 ldreq r2, [r5, #20] - ldreq r1, _037FA6DC ;@ =_03807934 + ldreq r1, _037FA6DC ; =_03807934 streq r2, [r1, #4] ldrne r1, [r5, #20] strne r1, [r0, #20] @@ -2960,7 +2966,7 @@ _037FA678: cmp r1, #0 strne r0, [r1, #24] bne _037FA6B8 - ldr r1, _037FA6DC ;@ =_03807934 + ldr r1, _037FA6DC ; =_03807934 str r0, [r1] cmp r0, #0 beq _037FA6B8 @@ -2979,7 +2985,7 @@ _037FA6D0: _037FA6DC: .word _03807934 arm_func_start FUN_037FA6E0 -FUN_037FA6E0: ;@ 0x037FA6E0 +FUN_037FA6E0: ; 0x037FA6E0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 movs r4, r0 @@ -2998,11 +3004,11 @@ _037FA710: mov r5, r0 str r7, [r4, #28] str r6, [r4, #32] - str r9, [r4, #36] ;@ 0x24 - str r8, [r4, #40] ;@ 0x28 - ldr r0, [sp, #36] ;@ 0x24 + str r9, [r4, #36] ; 0x24 + str r8, [r4, #40] ; 0x28 + ldr r0, [sp, #36] ; 0x24 str r0, [r4] - ldr r0, [sp, #40] ;@ 0x28 + ldr r0, [sp, #40] ; 0x28 str r0, [r4, #4] mov r0, r4 mov r1, #0 @@ -3015,7 +3021,7 @@ _037FA710: bx lr arm_func_start FUN_037FA75C -FUN_037FA75C: ;@ 0x037FA75C +FUN_037FA75C: ; 0x037FA75C stmdb sp!, {r4, r5, r6, r7, r8, lr} movs r7, r0 mov r6, r1 @@ -3049,7 +3055,7 @@ _037FA784: bx lr arm_func_start FUN_037FA7D0 -FUN_037FA7D0: ;@ 0x037FA7D0 +FUN_037FA7D0: ; 0x037FA7D0 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r8, r0 mov r7, r1 @@ -3061,8 +3067,8 @@ FUN_037FA7D0: ;@ 0x037FA7D0 cmpeq r2, r0 beq _037FA84C bl FUN_037FA364 - ldr r7, [r8, #36] ;@ 0x24 - ldr r6, [r8, #40] ;@ 0x28 + ldr r7, [r8, #36] ; 0x24 + ldr r6, [r8, #40] ; 0x28 cmp r6, r1 cmpeq r7, r0 bcs _037FA84C @@ -3084,7 +3090,7 @@ FUN_037FA7D0: ;@ 0x037FA7D0 _037FA84C: str r7, [r8, #12] str r6, [r8, #16] - ldr r0, _037FA8FC ;@ =_03807934 + ldr r0, _037FA8FC ; =_03807934 ldr r4, [r0] mov r1, #0 b _037FA8B8 @@ -3104,7 +3110,7 @@ _037FA864: cmp r0, #0 strne r8, [r0, #24] bne _037FA8F4 - ldr r0, _037FA8FC ;@ =_03807934 + ldr r0, _037FA8FC ; =_03807934 str r8, [r0] mov r0, r8 bl FUN_037FA970 @@ -3116,7 +3122,7 @@ _037FA8B8: bne _037FA864 mov r0, #0 str r0, [r8, #24] - ldr r0, _037FA8FC ;@ =_03807934 + ldr r0, _037FA8FC ; =_03807934 ldr r1, [r0, #4] str r8, [r0, #4] str r1, [r8, #20] @@ -3133,24 +3139,24 @@ _037FA8F4: _037FA8FC: .word _03807934 arm_func_start FUN_037FA900 -FUN_037FA900: ;@ 0x037FA900 +FUN_037FA900: ; 0x037FA900 mov r1, #0 str r1, [r0] str r1, [r0, #8] bx lr arm_func_start FUN_037FA910 -FUN_037FA910: ;@ 0x037FA910 - ldr r0, _037FA91C ;@ =_03807930 +FUN_037FA910: ; 0x037FA910 + ldr r0, _037FA91C ; =_03807930 ldrh r0, [r0] bx lr _037FA91C: .word _03807930 arm_func_start FUN_037FA920 -FUN_037FA920: ;@ 0x037FA920 +FUN_037FA920: ; 0x037FA920 stmfd sp!, {lr} sub sp, sp, #4 - ldr r1, _037FA968 ;@ =_03807930 + ldr r1, _037FA968 ; =_03807930 ldrh r0, [r1] cmp r0, #0 bne _037FA95C @@ -3158,7 +3164,7 @@ FUN_037FA920: ;@ 0x037FA920 strh r0, [r1] bl FUN_037FA348 mov r1, #0 - ldr r0, _037FA96C ;@ =_03807934 + ldr r0, _037FA96C ; =_03807934 str r1, [r0] str r1, [r0, #4] mov r0, #16 @@ -3171,37 +3177,37 @@ _037FA968: .word _03807930 _037FA96C: .word _03807934 arm_func_start FUN_037FA970 -FUN_037FA970: ;@ 0x037FA970 +FUN_037FA970: ; 0x037FA970 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 bl FUN_037FA364 mov r2, #0 - ldr r3, _037FA9FC ;@ =0x04000106 + ldr r3, _037FA9FC ; =0x04000106 strh r2, [r3] ldr ip, [r4, #12] ldr r3, [r4, #16] subs r5, ip, r0 sbc r4, r3, r1 mov r0, #1 - ldr r1, _037FAA00 ;@ =FUN_037FA540 + ldr r1, _037FAA00 ; =FUN_037FA540 bl FUN_037F8900 mov r1, #0 subs r0, r5, r1 sbcs r0, r4, r1 - ldrlt r1, _037FAA04 ;@ =0x0000FFFE + ldrlt r1, _037FAA04 ; =0x0000FFFE blt _037FA9D4 - mov r0, #65536 ;@ 0x10000 + mov r0, #65536 ; 0x10000 subs r0, r5, r0 sbcs r0, r4, r1 mvnlt r0, r5 movlt r0, r0, lsl #16 movlt r1, r0, lsr #16 _037FA9D4: - ldr r0, _037FAA08 ;@ =0x04000104 + ldr r0, _037FAA08 ; =0x04000104 strh r1, [r0] - mov r1, #193 ;@ 0xc1 - ldr r0, _037FA9FC ;@ =0x04000106 + mov r1, #193 ; 0xc1 + ldr r0, _037FA9FC ; =0x04000106 strh r1, [r0] mov r0, #16 bl FUN_037F8894 @@ -3214,21 +3220,21 @@ _037FAA04: .word 0x0000FFFE _037FAA08: .word 0x04000104 arm_func_start FUN_037FAA0C -FUN_037FAA0C: ;@ 0x037FAA0C +FUN_037FAA0C: ; 0x037FAA0C stmdb sp!, {r4, lr} mov r4, r0 bl FUN_037FB05C - ldr r1, _037FAA50 ;@ =_03807940 + ldr r1, _037FAA50 ; =_03807940 ldr r1, [r1] cmp r4, r1 - ldrlt r1, _037FAA54 ;@ =_03807944 + ldrlt r1, _037FAA54 ; =_03807944 ldrlt r2, [r1] addlt r2, r2, #1 strlt r2, [r1] - ldr r1, _037FAA50 ;@ =_03807940 + ldr r1, _037FAA50 ; =_03807940 str r4, [r1] bl FUN_037FB070 - ldr r0, _037FAA54 ;@ =_03807944 + ldr r0, _037FAA54 ; =_03807944 ldr r0, [r0] ldmia sp!, {r4, lr} bx lr @@ -3236,7 +3242,7 @@ _037FAA50: .word _03807940 _037FAA54: .word _03807944 arm_func_start FUN_037FAA58 -FUN_037FAA58: ;@ 0x037FAA58 +FUN_037FAA58: ; 0x037FAA58 ldr r3, [r0, #12] subs r3, r1, r3 ldrsh r1, [r0, #16] @@ -3251,7 +3257,7 @@ _037FAA7C: bx lr _037FAA84: cmp r2, #0 - ldrlt r1, _037FAAA4 ;@ =0x00000107 + ldrlt r1, _037FAAA4 ; =0x00000107 addlt r2, r2, r1 ldrsh r0, [r0, #18] cmp r2, r0 @@ -3261,32 +3267,32 @@ _037FAA84: _037FAAA4: .word 0x00000107 arm_func_start FUN_037FAAA8 -FUN_037FAAA8: ;@ 0x037FAAA8 +FUN_037FAAA8: ; 0x037FAAA8 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov r0, #4 bl FUN_037F8858 - ldr r2, _037FAC1C ;@ =0x04000004 + ldr r2, _037FAC1C ; =0x04000004 ldrh r0, [r2] bic r0, r0, #32 strh r0, [r2] - ldr r1, _037FAC20 ;@ =0x0380FFF8 + ldr r1, _037FAC20 ; =0x0380FFF8 ldr r0, [r1] orr r0, r0, #4 str r0, [r1] ldrh r2, [r2] mov r0, r2, asr #8 - and r1, r0, #255 ;@ 0xff + and r1, r0, #255 ; 0xff mov r0, r2, lsl #1 - and r0, r0, #256 ;@ 0x100 + and r0, r0, #256 ; 0x100 orr r0, r1, r0 sub r0, r0, #1 bl FUN_037FAA0C - ldr r9, _037FAC24 ;@ =0x04000006 + ldr r9, _037FAC24 ; =0x04000006 mov r6, #4 - ldr r5, _037FAC1C ;@ =0x04000004 + ldr r5, _037FAC1C ; =0x04000004 mov r4, #0 - ldr fp, _037FAC28 ;@ =_03807944 + ldr fp, _037FAC28 ; =_03807944 b _037FAC00 _037FAB10: ldrh r8, [r9] @@ -3335,7 +3341,7 @@ _037FABB0: ldr r0, [sl, #28] cmp r0, #0 beq _037FAC00 - ldr r0, [sl, #36] ;@ 0x24 + ldr r0, [sl, #36] ; 0x24 cmp r0, #0 bne _037FAC00 str r7, [sl] @@ -3354,7 +3360,7 @@ _037FABE4: add r0, r0, #1 str r0, [sl, #12] _037FAC00: - ldr r0, _037FAC2C ;@ =_03807948 + ldr r0, _037FAC2C ; =_03807948 ldr sl, [r0] cmp sl, #0 bne _037FAB10 @@ -3369,7 +3375,7 @@ _037FAC28: .word _03807944 _037FAC2C: .word _03807948 arm_func_start FUN_037FAC30 -FUN_037FAC30: ;@ 0x037FAC30 +FUN_037FAC30: ; 0x037FAC30 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 @@ -3379,7 +3385,7 @@ FUN_037FAC30: ;@ 0x037FAC30 bne _037FAC50 bl FUN_037FB1F0 _037FAC50: - ldr r0, _037FACA8 ;@ =_03807948 + ldr r0, _037FACA8 ; =_03807948 ldr r0, [r0] cmp r0, #0 ldrne r6, [r0, #24] @@ -3407,14 +3413,14 @@ _037FAC8C: _037FACA8: .word _03807948 arm_func_start FUN_037FACAC -FUN_037FACAC: ;@ 0x037FACAC +FUN_037FACAC: ; 0x037FACAC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 bl FUN_037FB05C mov r4, r0 mov r1, #1 - str r1, [r5, #36] ;@ 0x24 + str r1, [r5, #36] ; 0x24 ldr r1, [r5] cmp r1, #0 bne _037FACDC @@ -3433,7 +3439,7 @@ _037FACF4: bx lr arm_func_start FUN_037FAD00 -FUN_037FAD00: ;@ 0x037FAD00 +FUN_037FAD00: ; 0x037FAD00 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -3448,18 +3454,18 @@ _037FAD18: bx lr arm_func_start FUN_037FAD2C -FUN_037FAD2C: ;@ 0x037FAD2C +FUN_037FAD2C: ; 0x037FAD2C stmdb sp!, {r4, lr} mov r4, r0 mov r0, #4 - ldr r1, _037FAD80 ;@ =FUN_037FAAA8 + ldr r1, _037FAD80 ; =FUN_037FAAA8 bl FUN_037F894C ldrsh ip, [r4, #16] - and r3, ip, #256 ;@ 0x100 - ldr r1, _037FAD84 ;@ =0x04000004 + and r3, ip, #256 ; 0x100 + ldr r1, _037FAD84 ; =0x04000004 ldrh r0, [r1] - and r2, r0, #63 ;@ 0x3f - and r0, ip, #255 ;@ 0xff + and r2, r0, #63 ; 0x3f + and r0, ip, #255 ; 0xff orr r0, r2, r0, lsl #8 orr r0, r0, r3, asr #1 strh r0, [r1] @@ -3474,7 +3480,7 @@ _037FAD80: .word FUN_037FAAA8 _037FAD84: .word 0x04000004 arm_func_start FUN_037FAD88 -FUN_037FAD88: ;@ 0x037FAD88 +FUN_037FAD88: ; 0x037FAD88 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r8, r0 @@ -3491,7 +3497,7 @@ FUN_037FAD88: ;@ 0x037FAD88 _037FADBC: bl FUN_037FB1F0 _037FADC0: - ldr r0, _037FAE1C ;@ =0x04000006 + ldr r0, _037FAE1C ; =0x04000006 ldrh r9, [r0] mov r0, r9 bl FUN_037FAA0C @@ -3506,7 +3512,7 @@ _037FADC0: ldr r0, [sp, #32] str r0, [r8, #4] mov r0, #0 - str r0, [r8, #36] ;@ 0x24 + str r0, [r8, #36] ; 0x24 mov r0, r8 bl FUN_037FAF48 mov r0, r4 @@ -3517,7 +3523,7 @@ _037FADC0: _037FAE1C: .word 0x04000006 arm_func_start FUN_037FAE20 -FUN_037FAE20: ;@ 0x037FAE20 +FUN_037FAE20: ; 0x037FAE20 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r8, r0 @@ -3534,7 +3540,7 @@ FUN_037FAE20: ;@ 0x037FAE20 _037FAE54: bl FUN_037FB1F0 _037FAE58: - ldr r0, _037FAEB4 ;@ =0x04000006 + ldr r0, _037FAEB4 ; =0x04000006 ldrh r9, [r0] mov r0, r9 bl FUN_037FAA0C @@ -3549,7 +3555,7 @@ _037FAE58: ldr r0, [sp, #32] str r0, [r8, #4] mov r0, #0 - str r0, [r8, #36] ;@ 0x24 + str r0, [r8, #36] ; 0x24 mov r0, r8 bl FUN_037FAF48 mov r0, r4 @@ -3560,7 +3566,7 @@ _037FAE58: _037FAEB4: .word 0x04000006 arm_func_start FUN_037FAEB8 -FUN_037FAEB8: ;@ 0x037FAEB8 +FUN_037FAEB8: ; 0x037FAEB8 mov r1, #0 str r1, [r0] str r1, [r0, #8] @@ -3568,27 +3574,27 @@ FUN_037FAEB8: ;@ 0x037FAEB8 bx lr arm_func_start FUN_037FAECC -FUN_037FAECC: ;@ 0x037FAECC +FUN_037FAECC: ; 0x037FAECC cmp r0, #0 bxeq lr ldr r2, [r0, #20] ldr r1, [r0, #24] cmp r1, #0 strne r2, [r1, #20] - ldreq r0, _037FAF00 ;@ =_03807948 + ldreq r0, _037FAF00 ; =_03807948 streq r2, [r0, #4] cmp r2, #0 strne r1, [r2, #24] - ldreq r0, _037FAF00 ;@ =_03807948 + ldreq r0, _037FAF00 ; =_03807948 streq r1, [r0] bx lr _037FAF00: .word _03807948 arm_func_start FUN_037FAF04 -FUN_037FAF04: ;@ 0x037FAF04 +FUN_037FAF04: ; 0x037FAF04 stmfd sp!, {lr} sub sp, sp, #4 - ldr r1, _037FAF44 ;@ =_03807948 + ldr r1, _037FAF44 ; =_03807948 ldr r3, [r1, #4] str r3, [r0, #20] mov r2, #0 @@ -3606,10 +3612,10 @@ _037FAF38: _037FAF44: .word _03807948 arm_func_start FUN_037FAF48 -FUN_037FAF48: ;@ 0x037FAF48 +FUN_037FAF48: ; 0x037FAF48 stmfd sp!, {lr} sub sp, sp, #4 - ldr r1, _037FAFCC ;@ =_03807948 + ldr r1, _037FAFCC ; =_03807948 ldr r3, [r1] b _037FAFB4 _037FAF5C: @@ -3631,7 +3637,7 @@ _037FAF84: cmp r1, #0 strne r0, [r1, #24] bne _037FAFC0 - ldr r1, _037FAFCC ;@ =_03807948 + ldr r1, _037FAFCC ; =_03807948 str r0, [r1] bl FUN_037FAD2C b _037FAFC0 @@ -3648,32 +3654,32 @@ _037FAFC0: _037FAFCC: .word _03807948 arm_func_start FUN_037FAFD0 -FUN_037FAFD0: ;@ 0x037FAFD0 - ldr r0, _037FAFDC ;@ =_0380793C +FUN_037FAFD0: ; 0x037FAFD0 + ldr r0, _037FAFDC ; =_0380793C ldrh r0, [r0] bx lr _037FAFDC: .word _0380793C arm_func_start FUN_037FAFE0 -FUN_037FAFE0: ;@ 0x037FAFE0 +FUN_037FAFE0: ; 0x037FAFE0 stmfd sp!, {lr} sub sp, sp, #4 - ldr r0, _037FB038 ;@ =_0380793C + ldr r0, _037FB038 ; =_0380793C ldrh r1, [r0] cmp r1, #0 bne _037FB02C mov r1, #1 strh r1, [r0] mov r1, #0 - ldr r0, _037FB03C ;@ =_03807948 + ldr r0, _037FB03C ; =_03807948 str r1, [r0] str r1, [r0, #4] mov r0, #4 bl FUN_037F8858 mov r1, #0 - ldr r0, _037FB040 ;@ =_03807944 + ldr r0, _037FB040 ; =_03807944 str r1, [r0] - ldr r0, _037FB044 ;@ =_03807940 + ldr r0, _037FB044 ; =_03807940 str r1, [r0] _037FB02C: add sp, sp, #4 @@ -3685,55 +3691,55 @@ _037FB040: .word _03807944 _037FB044: .word _03807940 arm_func_start FUN_037FB048 -FUN_037FB048: ;@ 0x037FB048 +FUN_037FB048: ; 0x037FB048 mrs r0, CPSR - bic r1, r0, #128 ;@ 0x80 + bic r1, r0, #128 ; 0x80 msr CPSR_c, r1 - and r0, r0, #128 ;@ 0x80 + and r0, r0, #128 ; 0x80 bx lr arm_func_start FUN_037FB05C -FUN_037FB05C: ;@ 0x037FB05C +FUN_037FB05C: ; 0x037FB05C mrs r0, CPSR - orr r1, r0, #128 ;@ 0x80 + orr r1, r0, #128 ; 0x80 msr CPSR_c, r1 - and r0, r0, #128 ;@ 0x80 + and r0, r0, #128 ; 0x80 bx lr arm_func_start FUN_037FB070 -FUN_037FB070: ;@ 0x037FB070 +FUN_037FB070: ; 0x037FB070 mrs r1, CPSR - bic r2, r1, #128 ;@ 0x80 + bic r2, r1, #128 ; 0x80 orr r2, r2, r0 msr CPSR_c, r2 - and r0, r1, #128 ;@ 0x80 + and r0, r1, #128 ; 0x80 bx lr arm_func_start FUN_037FB088 -FUN_037FB088: ;@ 0x037FB088 +FUN_037FB088: ; 0x037FB088 mrs r0, CPSR - orr r1, r0, #192 ;@ 0xc0 + orr r1, r0, #192 ; 0xc0 msr CPSR_c, r1 - and r0, r0, #192 ;@ 0xc0 + and r0, r0, #192 ; 0xc0 bx lr arm_func_start FUN_037FB09C -FUN_037FB09C: ;@ 0x037FB09C +FUN_037FB09C: ; 0x037FB09C mrs r1, CPSR - bic r2, r1, #192 ;@ 0xc0 + bic r2, r1, #192 ; 0xc0 orr r2, r2, r0 msr CPSR_c, r2 - and r0, r1, #192 ;@ 0xc0 + and r0, r1, #192 ; 0xc0 bx lr arm_func_start FUN_037FB0B4 -FUN_037FB0B4: ;@ 0x037FB0B4 +FUN_037FB0B4: ; 0x037FB0B4 mrs r0, CPSR and r0, r0, #31 bx lr arm_func_start FUN_037FB0C0 -FUN_037FB0C0: ;@ 0x037FB0C0 +FUN_037FB0C0: ; 0x037FB0C0 stmfd sp!, {lr} sub sp, sp, #4 mov r1, #4 @@ -3744,7 +3750,7 @@ FUN_037FB0C0: ;@ 0x037FB0C0 bx lr arm_func_start FUN_037FB0E0 -FUN_037FB0E0: ;@ 0x037FB0E0 +FUN_037FB0E0: ; 0x037FB0E0 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #0 @@ -3755,7 +3761,7 @@ FUN_037FB0E0: ;@ 0x037FB0E0 bl FUN_037FB20C mov r0, #3 bl FUN_037FB20C - mov r0, #262144 ;@ 0x40000 + mov r0, #262144 ; 0x40000 bl FUN_037F88CC mvn r0, #0 bl FUN_037F8824 @@ -3768,7 +3774,7 @@ FUN_037FB0E0: ;@ 0x037FB0E0 bx lr arm_func_start FUN_037FB134 -FUN_037FB134: ;@ 0x037FB134 +FUN_037FB134: ; 0x037FB134 stmdb sp!, {r4, r5, r6, lr} mov r6, r0, lsl #8 mov r5, #12 @@ -3784,15 +3790,15 @@ _037FB144: bx lr arm_func_start FUN_037FB164 -FUN_037FB164: ;@ 0x037FB164 +FUN_037FB164: ; 0x037FB164 stmfd sp!, {lr} sub sp, sp, #4 - and r0, r1, #32512 ;@ 0x7f00 + and r0, r1, #32512 ; 0x7f00 mov r0, r0, lsl #8 mov r0, r0, lsr #16 cmp r0, #16 moveq r1, #1 - ldreq r0, _037FB19C ;@ =_03807954 + ldreq r0, _037FB19C ; =_03807954 streqh r1, [r0] beq _037FB190 bl FUN_037FB1F0 @@ -3803,24 +3809,24 @@ _037FB190: _037FB19C: .word _03807954 arm_func_start FUN_037FB1A0 -FUN_037FB1A0: ;@ 0x037FB1A0 - ldr r0, _037FB1AC ;@ =_03807954 +FUN_037FB1A0: ; 0x037FB1A0 + ldr r0, _037FB1AC ; =_03807954 ldrh r0, [r0] bx lr _037FB1AC: .word _03807954 arm_func_start FUN_037FB1B0 -FUN_037FB1B0: ;@ 0x037FB1B0 +FUN_037FB1B0: ; 0x037FB1B0 stmfd sp!, {lr} sub sp, sp, #4 - ldr r0, _037FB1E8 ;@ =_03807950 + ldr r0, _037FB1E8 ; =_03807950 ldrh r1, [r0] cmp r1, #0 bne _037FB1DC mov r1, #1 strh r1, [r0] mov r0, #12 - ldr r1, _037FB1EC ;@ =FUN_037FB164 + ldr r1, _037FB1EC ; =FUN_037FB164 bl FUN_037FB7A8 _037FB1DC: add sp, sp, #4 @@ -3830,7 +3836,7 @@ _037FB1E8: .word _03807950 _037FB1EC: .word FUN_037FB164 arm_func_start FUN_037FB1F0 -FUN_037FB1F0: ;@ 0x037FB1F0 +FUN_037FB1F0: ; 0x037FB1F0 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #0 @@ -3841,7 +3847,7 @@ _037FB200: b _037FB200 arm_func_start FUN_037FB20C -FUN_037FB20C: ;@ 0x037FB20C +FUN_037FB20C: ; 0x037FB20C stmdb sp!, {r4, lr} mov r4, r0 bl FUN_037FB05C @@ -3849,26 +3855,26 @@ FUN_037FB20C: ;@ 0x037FB20C mul r1, r4, r1 add r1, r1, #5 mov r1, r1, lsl #1 - add r1, r1, #67108864 ;@ 0x4000000 - ldrh r2, [r1, #176] ;@ 0xb0 - bic r2, r2, #12800 ;@ 0x3200 - strh r2, [r1, #176] ;@ 0xb0 - ldrh r2, [r1, #176] ;@ 0xb0 - bic r2, r2, #32768 ;@ 0x8000 - strh r2, [r1, #176] ;@ 0xb0 - ldrh r2, [r1, #176] ;@ 0xb0 - ldrh r1, [r1, #176] ;@ 0xb0 + add r1, r1, #67108864 ; 0x4000000 + ldrh r2, [r1, #176] ; 0xb0 + bic r2, r2, #12800 ; 0x3200 + strh r2, [r1, #176] ; 0xb0 + ldrh r2, [r1, #176] ; 0xb0 + bic r2, r2, #32768 ; 0x8000 + strh r2, [r1, #176] ; 0xb0 + ldrh r2, [r1, #176] ; 0xb0 + ldrh r1, [r1, #176] ; 0xb0 cmp r4, #0 bne _037FB27C mov r1, #12 mul r3, r4, r1 - ldr r1, _037FB288 ;@ =0x040000B0 + ldr r1, _037FB288 ; =0x040000B0 add r4, r3, r1 mov r2, #0 - add r1, r3, #67108864 ;@ 0x4000000 - str r2, [r1, #176] ;@ 0xb0 + add r1, r3, #67108864 ; 0x4000000 + str r2, [r1, #176] ; 0xb0 str r2, [r4, #4] - ldr r1, _037FB28C ;@ =0x81400001 + ldr r1, _037FB28C ; =0x81400001 str r1, [r4, #8] _037FB27C: bl FUN_037FB070 @@ -3878,30 +3884,30 @@ _037FB288: .word 0x040000B0 _037FB28C: .word 0x81400001 arm_func_start FUN_037FB290 -FUN_037FB290: ;@ 0x037FB290 +FUN_037FB290: ; 0x037FB290 stmdb sp!, {r4, lr} mov r4, r0 bl FUN_037FB05C mov r1, #3 mul r1, r4, r1 add r2, r1, #2 - ldr r1, _037FB2F8 ;@ =0x040000B0 + ldr r1, _037FB2F8 ; =0x040000B0 add r2, r1, r2, lsl #2 _037FB2B0: ldr r1, [r2] - ands r1, r1, #-2147483648 ;@ 0x80000000 + ands r1, r1, #-2147483648 ; 0x80000000 bne _037FB2B0 cmp r4, #0 bne _037FB2EC mov r1, #12 mul r3, r4, r1 - ldr r1, _037FB2F8 ;@ =0x040000B0 + ldr r1, _037FB2F8 ; =0x040000B0 add r4, r3, r1 mov r2, #0 - add r1, r3, #67108864 ;@ 0x4000000 - str r2, [r1, #176] ;@ 0xb0 + add r1, r3, #67108864 ; 0x4000000 + str r2, [r1, #176] ; 0xb0 str r2, [r4, #4] - ldr r1, _037FB2FC ;@ =0x81400001 + ldr r1, _037FB2FC ; =0x81400001 str r1, [r4, #8] _037FB2EC: bl FUN_037FB070 @@ -3909,6 +3915,9 @@ _037FB2EC: bx lr _037FB2F8: .word 0x040000B0 _037FB2FC: .word 0x81400001 + + arm_func_start FUN_037FB300 +FUN_037FB300: ; 0x037FB300 mov r3, #0 _037FB304: cmp r3, r2 @@ -3916,6 +3925,9 @@ _037FB304: addlt r3, r3, #2 blt _037FB304 bx lr + + arm_func_start FUN_037FB318 +FUN_037FB318: ; 0x037FB318 mov ip, #0 _037FB31C: cmp ip, r2 @@ -3926,7 +3938,7 @@ _037FB31C: bx lr arm_func_start FUN_037FB334 -FUN_037FB334: ;@ 0x037FB334 +FUN_037FB334: ; 0x037FB334 add ip, r1, r2 _037FB338: cmp r1, ip @@ -3935,7 +3947,7 @@ _037FB338: bx lr arm_func_start FUN_037FB348 -FUN_037FB348: ;@ 0x037FB348 +FUN_037FB348: ; 0x037FB348 add ip, r1, r2 _037FB34C: cmp r1, ip @@ -3945,7 +3957,7 @@ _037FB34C: bx lr arm_func_start FUN_037FB360 -FUN_037FB360: ;@ 0x037FB360 +FUN_037FB360: ; 0x037FB360 stmdb sp!, {r4, r5, r6, r7, r8, r9} add r9, r1, r2 mov ip, r2, lsr #5 @@ -3969,7 +3981,7 @@ _037FB398: bx lr arm_func_start FUN_037FB3AC -FUN_037FB3AC: ;@ 0x037FB3AC +FUN_037FB3AC: ; 0x037FB3AC stmdb sp!, {r4, r5, r6, r7, r8, r9, sl} add sl, r1, r2 mov ip, r2, lsr #5 @@ -3988,13 +4000,13 @@ _037FB3CC: bx lr arm_func_start FUN_037FB3E4 -FUN_037FB3E4: ;@ 0x037FB3E4 +FUN_037FB3E4: ; 0x037FB3E4 cmp r2, #0 bxeq lr tst r0, #1 beq _037FB410 ldrh ip, [r0, #-1] - and ip, ip, #255 ;@ 0xff + and ip, ip, #255 ; 0xff orr r3, ip, r1, lsl #8 strh r3, [r0, #-1] add r0, r0, #1 @@ -4026,20 +4038,20 @@ _037FB458: tst r2, #1 bxeq lr ldrh r3, [r0] - and r3, r3, #65280 ;@ 0xff00 - and r1, r1, #255 ;@ 0xff + and r3, r3, #65280 ; 0xff00 + and r1, r1, #255 ; 0xff orr r1, r1, r3 strh r1, [r0] bx lr arm_func_start FUN_037FB478 -FUN_037FB478: ;@ 0x037FB478 +FUN_037FB478: ; 0x037FB478 cmp r2, #0 bxeq lr tst r1, #1 beq _037FB4B8 ldrh ip, [r1, #-1] - and ip, ip, #255 ;@ 0xff + and ip, ip, #255 ; 0xff tst r0, #1 ldrneh r3, [r0, #-1] movne r3, r3, lsr #8 @@ -4070,7 +4082,7 @@ _037FB4F0: tst r2, #1 bxeq lr ldrh ip, [r1] - and ip, ip, #65280 ;@ 0xff00 + and ip, ip, #65280 ; 0xff00 orr ip, ip, r3 strh ip, [r1] bx lr @@ -4115,45 +4127,45 @@ _037FB584: bxeq lr ldrh r2, [r1] ldrh r0, [r0] - and r2, r2, #65280 ;@ 0xff00 - and r0, r0, #255 ;@ 0xff + and r2, r2, #65280 ; 0xff00 + and r0, r0, #255 ; 0xff orr r0, r2, r0 strh r0, [r1] bx lr arm_func_start FUN_037FB5A8 -FUN_037FB5A8: ;@ 0x037FB5A8 +FUN_037FB5A8: ; 0x037FB5A8 swp r0, r0, [r1] bx lr arm_func_start FUN_037FB5B0 -FUN_037FB5B0: ;@ 0x037FB5B0 - ldr ip, _037FB5B8 ;@ =FUN_037FB814 +FUN_037FB5B0: ; 0x037FB5B0 + ldr ip, _037FB5B8 ; =FUN_037FB814 bx ip _037FB5B8: .word FUN_037FB814 arm_func_start FUN_037FB5BC -FUN_037FB5BC: ;@ 0x037FB5BC +FUN_037FB5BC: ; 0x037FB5BC stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} sub sp, sp, #8 - ldr sl, _037FB6D0 ;@ =0x04000184 - ldr r5, _037FB6D4 ;@ =_0380795C - mov r7, #68157440 ;@ 0x4100000 + ldr sl, _037FB6D0 ; =0x04000184 + ldr r5, _037FB6D4 ; =_0380795C + mov r7, #68157440 ; 0x4100000 mov r6, #0 mvn r8, #3 mvn r9, #2 - ldr r4, _037FB6D8 ;@ =0x04000188 + ldr r4, _037FB6D8 ; =0x04000188 _037FB5E0: ldrh r0, [sl] - ands r0, r0, #16384 ;@ 0x4000 + ands r0, r0, #16384 ; 0x4000 ldrneh r0, [sl] - orrne r0, r0, #49152 ;@ 0xc000 + orrne r0, r0, #49152 ; 0xc000 strneh r0, [sl] movne r1, r9 bne _037FB628 bl FUN_037FB05C ldrh r1, [sl] - ands r1, r1, #256 ;@ 0x100 + ands r1, r1, #256 ; 0x100 beq _037FB618 bl FUN_037FB070 mov r1, r8 @@ -4189,9 +4201,9 @@ _037FB670: orr r0, r2, #32 str r0, [sp] ldrh r0, [sl] - ands r0, r0, #16384 ;@ 0x4000 + ands r0, r0, #16384 ; 0x4000 ldrneh r0, [sl] - orrne r0, r0, #49152 ;@ 0xc000 + orrne r0, r0, #49152 ; 0xc000 strneh r0, [sl] bne _037FB5E0 bl FUN_037FB05C @@ -4214,7 +4226,7 @@ _037FB6D4: .word _0380795C _037FB6D8: .word 0x04000188 arm_func_start FUN_037FB6DC -FUN_037FB6DC: ;@ 0x037FB6DC +FUN_037FB6DC: ; 0x037FB6DC stmfd sp!, {lr} sub sp, sp, #4 ldr r3, [sp] @@ -4226,20 +4238,20 @@ FUN_037FB6DC: ;@ 0x037FB6DC and r0, r2, #1 orr r0, r3, r0, lsl #5 str r0, [sp] - and r2, r0, #63 ;@ 0x3f - bic r0, r1, #-67108864 ;@ 0xfc000000 + and r2, r0, #63 ; 0x3f + bic r0, r1, #-67108864 ; 0xfc000000 orr r0, r2, r0, lsl #6 str r0, [sp] - ldr r1, _037FB778 ;@ =0x04000184 + ldr r1, _037FB778 ; =0x04000184 ldrh r0, [r1] - ands r0, r0, #16384 ;@ 0x4000 + ands r0, r0, #16384 ; 0x4000 ldrneh r0, [r1] - orrne r0, r0, #49152 ;@ 0xc000 + orrne r0, r0, #49152 ; 0xc000 strneh r0, [r1] mvnne r0, #0 bne _037FB76C bl FUN_037FB05C - ldr r1, _037FB778 ;@ =0x04000184 + ldr r1, _037FB778 ; =0x04000184 ldrh r1, [r1] ands r1, r1, #2 beq _037FB758 @@ -4248,7 +4260,7 @@ FUN_037FB6DC: ;@ 0x037FB6DC b _037FB76C _037FB758: ldr r2, [sp] - ldr r1, _037FB77C ;@ =0x04000188 + ldr r1, _037FB77C ; =0x04000188 str r2, [r1] bl FUN_037FB070 mov r0, #0 @@ -4260,12 +4272,12 @@ _037FB778: .word 0x04000184 _037FB77C: .word 0x04000188 arm_func_start FUN_037FB780 -FUN_037FB780: ;@ 0x037FB780 +FUN_037FB780: ; 0x037FB780 mov r3, #1 mov r2, r3, lsl r0 - ldr r0, _037FB7A4 ;@ =0x027FFC00 + ldr r0, _037FB7A4 ; =0x027FFC00 add r0, r0, r1, lsl #2 - ldr r0, [r0, #904] ;@ 0x388 + ldr r0, [r0, #904] ; 0x388 ands r0, r2, r0 moveq r3, #0 mov r0, r3 @@ -4273,29 +4285,29 @@ FUN_037FB780: ;@ 0x037FB780 _037FB7A4: .word 0x027FFC00 arm_func_start FUN_037FB7A8 -FUN_037FB7A8: ;@ 0x037FB7A8 +FUN_037FB7A8: ; 0x037FB7A8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 mov r5, r1 bl FUN_037FB05C - ldr r1, _037FB80C ;@ =_0380795C + ldr r1, _037FB80C ; =_0380795C str r5, [r1, r4, lsl #2] cmp r5, #0 beq _037FB7E4 - ldr r3, _037FB810 ;@ =0x027FFC00 - ldr r2, [r3, #908] ;@ 0x38c + ldr r3, _037FB810 ; =0x027FFC00 + ldr r2, [r3, #908] ; 0x38c mov r1, #1 orr r1, r2, r1, lsl r4 - str r1, [r3, #908] ;@ 0x38c + str r1, [r3, #908] ; 0x38c b _037FB7FC _037FB7E4: - ldr r3, _037FB810 ;@ =0x027FFC00 - ldr r2, [r3, #908] ;@ 0x38c + ldr r3, _037FB810 ; =0x027FFC00 + ldr r2, [r3, #908] ; 0x38c mov r1, #1 mvn r1, r1, lsl r4 and r1, r2, r1 - str r1, [r3, #908] ;@ 0x38c + str r1, [r3, #908] ; 0x38c _037FB7FC: bl FUN_037FB070 add sp, sp, #4 @@ -4305,40 +4317,40 @@ _037FB80C: .word _0380795C _037FB810: .word 0x027FFC00 arm_func_start FUN_037FB814 -FUN_037FB814: ;@ 0x037FB814 +FUN_037FB814: ; 0x037FB814 stmdb sp!, {r4, r5, r6, r7, r8, lr} bl FUN_037FB05C mov r5, r0 - ldr r0, _037FB8D4 ;@ =_03807958 + ldr r0, _037FB8D4 ; =_03807958 ldrh r1, [r0] cmp r1, #0 bne _037FB8C4 mov r1, #1 strh r1, [r0] mov r2, #0 - ldr r0, _037FB8D8 ;@ =0x027FFC00 - str r2, [r0, #908] ;@ 0x38c + ldr r0, _037FB8D8 ; =0x027FFC00 + str r2, [r0, #908] ; 0x38c mov r1, r2 - ldr r0, _037FB8DC ;@ =_0380795C + ldr r0, _037FB8DC ; =_0380795C _037FB84C: str r1, [r0, r2, lsl #2] add r2, r2, #1 cmp r2, #32 blt _037FB84C - ldr r1, _037FB8E0 ;@ =0x0000C408 - ldr r0, _037FB8E4 ;@ =0x04000184 + ldr r1, _037FB8E0 ; =0x0000C408 + ldr r0, _037FB8E4 ; =0x04000184 strh r1, [r0] - mov r0, #262144 ;@ 0x40000 + mov r0, #262144 ; 0x40000 bl FUN_037F8824 - mov r0, #262144 ;@ 0x40000 - ldr r1, _037FB8E8 ;@ =FUN_037FB5BC + mov r0, #262144 ; 0x40000 + ldr r1, _037FB8E8 ; =FUN_037FB5BC bl FUN_037F894C - mov r0, #262144 ;@ 0x40000 + mov r0, #262144 ; 0x40000 bl FUN_037F8894 mov r4, #8 mov r6, r4 - ldr r8, _037FB8EC ;@ =0x04000180 - mov r7, #1000 ;@ 0x3e8 + ldr r8, _037FB8EC ; =0x04000180 + mov r7, #1000 ; 0x3e8 b _037FB8BC _037FB898: mov r0, r4, lsl #8 @@ -4367,19 +4379,19 @@ _037FB8E8: .word FUN_037FB5BC _037FB8EC: .word 0x04000180 arm_func_start FUN_037FB8F0 -FUN_037FB8F0: ;@ 0x037FB8F0 +FUN_037FB8F0: ; 0x037FB8F0 mov r1, r0 - mov r0, #49152 ;@ 0xc000 + mov r0, #49152 ; 0xc000 mov r1, r1, lsl #16 mov r1, r1, lsr #16 - ldr ip, _037FB908 ;@ =FUN_037FB90C + ldr ip, _037FB908 ; =FUN_037FB90C bx ip _037FB908: .word FUN_037FB90C arm_func_start FUN_037FB90C -FUN_037FB90C: ;@ 0x037FB90C +FUN_037FB90C: ; 0x037FB90C mvn r3, r0 - ldr r2, _037FB928 ;@ =0x04000134 + ldr r2, _037FB928 ; =0x04000134 ldrh r0, [r2] and r0, r3, r0 orr r0, r1, r0 @@ -4388,18 +4400,18 @@ FUN_037FB90C: ;@ 0x037FB90C _037FB928: .word 0x04000134 arm_func_start FUN_037FB92C -FUN_037FB92C: ;@ 0x037FB92C +FUN_037FB92C: ; 0x037FB92C stmdb sp!, {r4, lr} mov r4, #0 - mov r0, #32768 ;@ 0x8000 + mov r0, #32768 ; 0x8000 bl FUN_037FB8F0 - ldr r0, _037FB964 ;@ =0x04000136 + ldr r0, _037FB964 ; =0x04000136 ldrh r1, [r0] - ands r0, r1, #128 ;@ 0x80 - movne r4, #32768 ;@ 0x8000 + ands r0, r1, #128 ; 0x80 + movne r4, #32768 ; 0x8000 and r0, r1, #11 orr r1, r4, r0, lsl #10 - ldr r0, _037FB968 ;@ =0x027FFFA8 + ldr r0, _037FB968 ; =0x027FFFA8 strh r1, [r0] ldmia sp!, {r4, lr} bx lr @@ -4407,7 +4419,7 @@ _037FB964: .word 0x04000136 _037FB968: .word 0x027FFFA8 arm_func_start FUN_037FB96C -FUN_037FB96C: ;@ 0x037FB96C +FUN_037FB96C: ; 0x037FB96C stmfd sp!, {lr} sub sp, sp, #12 bl FUN_037FA49C @@ -4420,28 +4432,28 @@ _037FB98C: mov r0, #0 b _037FB9F0 _037FB994: - ldr r0, _037FB9FC ;@ =_038079DC + ldr r0, _037FB9FC ; =_038079DC ldr r0, [r0] cmp r0, #0 movne r0, #0 bne _037FB9F0 - ldr r0, _037FBA00 ;@ =_038079E0 + ldr r0, _037FBA00 ; =_038079E0 bl FUN_037FA900 bl FUN_037FA364 mov r2, r0 - ldr r0, _037FBA04 ;@ =FUN_037FB92C + ldr r0, _037FBA04 ; =FUN_037FB92C str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] - ldr r3, _037FBA08 ;@ =0x0000082E + ldr r3, _037FBA08 ; =0x0000082E str r0, [sp] - ldr r0, _037FBA00 ;@ =_038079E0 + ldr r0, _037FBA00 ; =_038079E0 adds ip, r2, r3 adc r2, r1, #0 mov r1, ip bl FUN_037FA6E0 mov r0, #1 - ldr r1, _037FB9FC ;@ =_038079DC + ldr r1, _037FB9FC ; =_038079DC str r0, [r1] _037FB9F0: add sp, sp, #12 @@ -4453,10 +4465,10 @@ _037FBA04: .word FUN_037FB92C _037FBA08: .word 0x0000082E arm_func_start FUN_037FBA0C -FUN_037FBA0C: ;@ 0x037FBA0C - ldr ip, _037FBA40 ;@ =0x04000501 +FUN_037FBA0C: ; 0x037FBA0C + ldr ip, _037FBA40 ; =0x04000501 ldrb ip, [ip] - ands ip, ip, #128 ;@ 0x80 + ands ip, ip, #128 ; 0x80 movne ip, #1 moveq ip, #0 mov ip, ip, lsl #7 @@ -4464,31 +4476,31 @@ FUN_037FBA0C: ;@ 0x037FBA0C orr r2, r3, r2, lsl #4 orr r1, r2, r1, lsl #2 orr r1, r0, r1 - ldr r0, _037FBA40 ;@ =0x04000501 + ldr r0, _037FBA40 ; =0x04000501 strb r1, [r0] bx lr _037FBA40: .word 0x04000501 arm_func_start FUN_037FBA44 -FUN_037FBA44: ;@ 0x037FBA44 - ldr r1, _037FBA50 ;@ =0x04000500 +FUN_037FBA44: ; 0x037FBA44 + ldr r1, _037FBA50 ; =0x04000500 strb r0, [r1] bx lr _037FBA50: .word 0x04000500 arm_func_start FUN_037FBA54 -FUN_037FBA54: ;@ 0x037FBA54 +FUN_037FBA54: ; 0x037FBA54 stmfd sp!, {lr} sub sp, sp, #4 - ldr r1, _037FBA94 ;@ =0x04000304 + ldr r1, _037FBA94 ; =0x04000304 ldrh r0, [r1] orr r0, r0, #1 strh r0, [r1] mov r0, #1 bl FUN_038026DC - mov r0, #256 ;@ 0x100 + mov r0, #256 ; 0x100 bl FUN_037FBA9C - ldr r0, _037FBA98 ;@ =0x0007AB80 + ldr r0, _037FBA98 ; =0x0007AB80 bl FUN_037FB0C0 bl FUN_037FBB64 add sp, sp, #4 @@ -4498,23 +4510,23 @@ _037FBA94: .word 0x04000304 _037FBA98: .word 0x0007AB80 arm_func_start FUN_037FBA9C -FUN_037FBA9C: ;@ 0x037FBA9C - ldr ip, _037FBAA4 ;@ =SVC_SoundBiasSet +FUN_037FBA9C: ; 0x037FBA9C + ldr ip, _037FBAA4 ; =SVC_SoundBiasSet bx ip _037FBAA4: .word SVC_SoundBiasSet arm_func_start FUN_037FBAA8 -FUN_037FBAA8: ;@ 0x037FBAA8 +FUN_037FBAA8: ; 0x037FBAA8 stmfd sp!, {lr} sub sp, sp, #4 bl FUN_037FBB4C - mov r0, #128 ;@ 0x80 + mov r0, #128 ; 0x80 bl FUN_037FBAEC - mov r0, #262144 ;@ 0x40000 + mov r0, #262144 ; 0x40000 bl FUN_037FB0C0 mov r0, #1 bl FUN_038026B0 - ldr r1, _037FBAE8 ;@ =0x04000304 + ldr r1, _037FBAE8 ; =0x04000304 ldrh r0, [r1] bic r0, r0, #1 strh r0, [r1] @@ -4524,13 +4536,13 @@ FUN_037FBAA8: ;@ 0x037FBAA8 _037FBAE8: .word 0x04000304 arm_func_start FUN_037FBAEC -FUN_037FBAEC: ;@ 0x037FBAEC - ldr ip, _037FBAF4 ;@ =SVC_SoundBiasReset +FUN_037FBAEC: ; 0x037FBAEC + ldr ip, _037FBAF4 ; =SVC_SoundBiasReset bx ip _037FBAF4: .word SVC_SoundBiasReset arm_func_start FUN_037FBAF8 -FUN_037FBAF8: ;@ 0x037FBAF8 +FUN_037FBAF8: ; 0x037FBAF8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 bl FUN_037FBB4C @@ -4544,9 +4556,9 @@ _037FBB0C: cmp r5, #16 blt _037FBB0C mov r1, #0 - ldr r0, _037FBB44 ;@ =0x04000508 + ldr r0, _037FBB44 ; =0x04000508 strb r1, [r0] - ldr r0, _037FBB48 ;@ =0x04000509 + ldr r0, _037FBB48 ; =0x04000509 strb r1, [r0] add sp, sp, #4 ldmia sp!, {r4, r5, lr} @@ -4555,46 +4567,46 @@ _037FBB44: .word 0x04000508 _037FBB48: .word 0x04000509 arm_func_start FUN_037FBB4C -FUN_037FBB4C: ;@ 0x037FBB4C - ldr r1, _037FBB60 ;@ =0x04000501 +FUN_037FBB4C: ; 0x037FBB4C + ldr r1, _037FBB60 ; =0x04000501 ldrb r0, [r1] - bic r0, r0, #128 ;@ 0x80 + bic r0, r0, #128 ; 0x80 strb r0, [r1] bx lr _037FBB60: .word 0x04000501 arm_func_start FUN_037FBB64 -FUN_037FBB64: ;@ 0x037FBB64 - ldr r1, _037FBB78 ;@ =0x04000501 +FUN_037FBB64: ; 0x037FBB64 + ldr r1, _037FBB78 ; =0x04000501 ldrb r0, [r1] - orr r0, r0, #128 ;@ 0x80 + orr r0, r0, #128 ; 0x80 strb r0, [r1] bx lr _037FBB78: .word 0x04000501 arm_func_start FUN_037FBB7C -FUN_037FBB7C: ;@ 0x037FBB7C +FUN_037FBB7C: ; 0x037FBB7C cmp r1, #24 bge _037FBBAC - ldr r2, _037FBBE0 ;@ =_03807A0C + ldr r2, _037FBBE0 ; =_03807A0C ldr r3, [r2] - ldr r2, _037FBBE4 ;@ =0x00007FFF + ldr r2, _037FBBE4 ; =0x00007FFF sub r2, r2, r3 - add r1, r1, #40 ;@ 0x28 + add r1, r1, #40 ; 0x28 mul r1, r3, r1 add r1, r1, r2, lsl #6 mul r1, r0, r1 mov r0, r1, asr #21 bx lr _037FBBAC: - cmp r1, #104 ;@ 0x68 + cmp r1, #104 ; 0x68 bxle lr - ldr r2, _037FBBE0 ;@ =_03807A0C + ldr r2, _037FBBE0 ; =_03807A0C ldr ip, [r2] - ldr r2, _037FBBE4 ;@ =0x00007FFF + ldr r2, _037FBBE4 ; =0x00007FFF add r3, ip, r2 rsb r2, ip, #0 - sub r1, r1, #40 ;@ 0x28 + sub r1, r1, #40 ; 0x28 mul r1, r2, r1 add r1, r1, r3, lsl #6 mul r1, r0, r1 @@ -4604,25 +4616,25 @@ _037FBBE0: .word _03807A0C _037FBBE4: .word 0x00007FFF arm_func_start FUN_037FBBE8 -FUN_037FBBE8: ;@ 0x037FBBE8 +FUN_037FBBE8: ; 0x037FBBE8 stmdb sp!, {r4, r5, r6, r7, r8, lr} - ldr r1, _037FBC40 ;@ =_03807A0C + ldr r1, _037FBC40 ; =_03807A0C str r0, [r1] mov r4, #0 - ldr r6, _037FBC44 ;@ =_03807A20 + ldr r6, _037FBC44 ; =_03807A20 mov r7, #1 - ldr r5, _037FBC48 ;@ =0x0000FFF5 + ldr r5, _037FBC48 ; =0x0000FFF5 _037FBC04: mov r0, r7, lsl r4 ands r0, r0, r5 beq _037FBC2C mov r8, r4, lsl #4 - add r0, r8, #67108864 ;@ 0x4000000 - ldrb r1, [r0, #1026] ;@ 0x402 + add r0, r8, #67108864 ; 0x4000000 + ldrb r1, [r0, #1026] ; 0x402 ldrb r0, [r6, r4] bl FUN_037FBB7C - add r1, r8, #67108864 ;@ 0x4000000 - strb r0, [r1, #1024] ;@ 0x400 + add r1, r8, #67108864 ; 0x4000000 + strb r0, [r1, #1024] ; 0x400 _037FBC2C: add r4, r4, #1 cmp r4, #16 @@ -4634,36 +4646,36 @@ _037FBC44: .word _03807A20 _037FBC48: .word 0x0000FFF5 arm_func_start FUN_037FBC4C -FUN_037FBC4C: ;@ 0x037FBC4C +FUN_037FBC4C: ; 0x037FBC4C mov r0, r0, lsl #4 - add r0, r0, #67108864 ;@ 0x4000000 - ldr r0, [r0, #1024] ;@ 0x400 + add r0, r0, #67108864 ; 0x4000000 + ldr r0, [r0, #1024] ; 0x400 bx lr arm_func_start FUN_037FBC5C -FUN_037FBC5C: ;@ 0x037FBC5C - ldr r1, _037FBCB8 ;@ =_0380765C +FUN_037FBC5C: ; 0x037FBC5C + ldr r1, _037FBCB8 ; =_0380765C str r0, [r1] cmp r0, #0 blt _037FBC90 mov r2, #0 - and r1, r0, #255 ;@ 0xff + and r1, r0, #255 ; 0xff _037FBC74: mov r0, r2, lsl #4 - add r0, r0, #67108864 ;@ 0x4000000 - strb r1, [r0, #1026] ;@ 0x402 + add r0, r0, #67108864 ; 0x4000000 + strb r1, [r0, #1026] ; 0x402 add r2, r2, #1 cmp r2, #16 blt _037FBC74 bx lr _037FBC90: mov r3, #0 - ldr r2, _037FBCBC ;@ =_03807A10 + ldr r2, _037FBCBC ; =_03807A10 _037FBC98: ldrb r1, [r2, r3] mov r0, r3, lsl #4 - add r0, r0, #67108864 ;@ 0x4000000 - strb r1, [r0, #1026] ;@ 0x402 + add r0, r0, #67108864 ; 0x4000000 + strb r1, [r0, #1026] ; 0x402 add r3, r3, #1 cmp r3, #16 blt _037FBC98 @@ -4672,41 +4684,41 @@ _037FBCB8: .word _0380765C _037FBCBC: .word _03807A10 arm_func_start FUN_037FBCC0 -FUN_037FBCC0: ;@ 0x037FBCC0 +FUN_037FBCC0: ; 0x037FBCC0 mov r0, r0, lsl #4 - add r0, r0, #67108864 ;@ 0x4000000 - ldrb r0, [r0, #1027] ;@ 0x403 - ands r0, r0, #128 ;@ 0x80 + add r0, r0, #67108864 ; 0x4000000 + ldrb r0, [r0, #1027] ; 0x403 + ands r0, r0, #128 ; 0x80 movne r0, #1 moveq r0, #0 bx lr arm_func_start FUN_037FBCDC -FUN_037FBCDC: ;@ 0x037FBCDC +FUN_037FBCDC: ; 0x037FBCDC stmdb sp!, {r4, lr} - ldr r2, _037FBD44 ;@ =_03807A10 + ldr r2, _037FBD44 ; =_03807A10 strb r1, [r2, r0] - ldr r2, _037FBD48 ;@ =_0380765C + ldr r2, _037FBD48 ; =_0380765C ldr r2, [r2] cmp r2, #0 movge r1, r2 mov r4, r0, lsl #4 - add r2, r4, #67108864 ;@ 0x4000000 - strb r1, [r2, #1026] ;@ 0x402 - ldr r2, _037FBD4C ;@ =_03807A0C + add r2, r4, #67108864 ; 0x4000000 + strb r1, [r2, #1026] ; 0x402 + ldr r2, _037FBD4C ; =_03807A0C ldr r2, [r2] cmp r2, #0 ble _037FBD3C mov r2, #1 mov r3, r2, lsl r0 - ldr r2, _037FBD50 ;@ =0x0000FFF5 + ldr r2, _037FBD50 ; =0x0000FFF5 ands r2, r3, r2 beq _037FBD3C - ldr r2, _037FBD54 ;@ =_03807A20 + ldr r2, _037FBD54 ; =_03807A20 ldrb r0, [r2, r0] bl FUN_037FBB7C - add r1, r4, #67108864 ;@ 0x4000000 - strb r0, [r1, #1024] ;@ 0x400 + add r1, r4, #67108864 ; 0x4000000 + strb r0, [r1, #1024] ; 0x400 _037FBD3C: ldmia sp!, {r4, lr} bx lr @@ -4717,34 +4729,34 @@ _037FBD50: .word 0x0000FFF5 _037FBD54: .word _03807A20 arm_func_start FUN_037FBD58 -FUN_037FBD58: ;@ 0x037FBD58 - rsb r1, r1, #65536 ;@ 0x10000 +FUN_037FBD58: ; 0x037FBD58 + rsb r1, r1, #65536 ; 0x10000 mov r0, r0, lsl #4 - add r0, r0, #67108864 ;@ 0x4000000 - add r0, r0, #1024 ;@ 0x400 + add r0, r0, #67108864 ; 0x4000000 + add r0, r0, #1024 ; 0x400 strh r1, [r0, #8] bx lr arm_func_start FUN_037FBD70 -FUN_037FBD70: ;@ 0x037FBD70 +FUN_037FBD70: ; 0x037FBD70 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r2 - ldr r0, _037FBDE8 ;@ =_03807A20 + ldr r0, _037FBDE8 ; =_03807A20 strb r1, [r0, r5] - ldr r0, _037FBDEC ;@ =_03807A0C + ldr r0, _037FBDEC ; =_03807A0C ldr r0, [r0] cmp r0, #0 ble _037FBDC8 mov r0, #1 mov r2, r0, lsl r5 - ldr r0, _037FBDF0 ;@ =0x0000FFF5 + ldr r0, _037FBDF0 ; =0x0000FFF5 ands r0, r2, r0 beq _037FBDC8 mov r0, r5, lsl #4 - add r0, r0, #67108864 ;@ 0x4000000 - ldrb r2, [r0, #1026] ;@ 0x402 + add r0, r0, #67108864 ; 0x4000000 + ldrb r2, [r0, #1026] ; 0x402 mov r0, r1 mov r1, r2 bl FUN_037FBB7C @@ -4752,8 +4764,8 @@ FUN_037FBD70: ;@ 0x037FBD70 _037FBDC8: orr r1, r1, r4, lsl #8 mov r0, r5, lsl #4 - add r0, r0, #67108864 ;@ 0x4000000 - add r0, r0, #1024 ;@ 0x400 + add r0, r0, #67108864 ; 0x4000000 + add r0, r0, #1024 ; 0x400 strh r1, [r0] add sp, sp, #4 ldmia sp!, {r4, r5, lr} @@ -4763,42 +4775,42 @@ _037FBDEC: .word _03807A0C _037FBDF0: .word 0x0000FFF5 arm_func_start FUN_037FBDF4 -FUN_037FBDF4: ;@ 0x037FBDF4 +FUN_037FBDF4: ; 0x037FBDF4 mov r3, r0, lsl #4 - ldr r2, _037FBE1C ;@ =0x04000400 + ldr r2, _037FBE1C ; =0x04000400 add ip, r2, r0, lsl #4 - add r0, r3, #67108864 ;@ 0x4000000 - ldr r0, [r0, #1024] ;@ 0x400 - bic r2, r0, #-2147483648 ;@ 0x80000000 + add r0, r3, #67108864 ; 0x4000000 + ldr r0, [r0, #1024] ; 0x400 + bic r2, r0, #-2147483648 ; 0x80000000 ands r0, r1, #1 - orrne r2, r2, #32768 ;@ 0x8000 + orrne r2, r2, #32768 ; 0x8000 str r2, [ip] bx lr _037FBE1C: .word 0x04000400 arm_func_start FUN_037FBE20 -FUN_037FBE20: ;@ 0x037FBE20 +FUN_037FBE20: ; 0x037FBE20 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r2 mov r6, r3 ldr r5, [sp, #24] mov r4, r0, lsl #4 - ldr r2, _037FBEBC ;@ =_03807A10 + ldr r2, _037FBEBC ; =_03807A10 strb r5, [r2, r0] - ldr r2, _037FBEC0 ;@ =_0380765C + ldr r2, _037FBEC0 ; =_0380765C ldr r2, [r2] cmp r2, #0 movge r5, r2 - ldr r2, _037FBEC4 ;@ =_03807A20 + ldr r2, _037FBEC4 ; =_03807A20 strb r1, [r2, r0] - ldr r2, _037FBEC8 ;@ =_03807A0C + ldr r2, _037FBEC8 ; =_03807A0C ldr r2, [r2] cmp r2, #0 ble _037FBE8C mov r2, #1 mov r2, r2, lsl r0 - ldr r0, _037FBECC ;@ =0x0000FFF5 + ldr r0, _037FBECC ; =0x0000FFF5 ands r0, r2, r0 beq _037FBE8C mov r0, r1 @@ -4807,13 +4819,13 @@ FUN_037FBE20: ;@ 0x037FBE20 mov r1, r0 _037FBE8C: mov r0, r5, lsl #16 - orr r0, r0, #1610612736 ;@ 0x60000000 + orr r0, r0, #1610612736 ; 0x60000000 orr r0, r0, r7, lsl #8 orr r1, r1, r0 - add r0, r4, #67108864 ;@ 0x4000000 - str r1, [r0, #1024] ;@ 0x400 - rsb r1, r6, #65536 ;@ 0x10000 - add r0, r0, #1024 ;@ 0x400 + add r0, r4, #67108864 ; 0x4000000 + str r1, [r0, #1024] ; 0x400 + rsb r1, r6, #65536 ; 0x10000 + add r0, r0, #1024 ; 0x400 strh r1, [r0, #8] add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} @@ -4825,28 +4837,28 @@ _037FBEC8: .word _03807A0C _037FBECC: .word 0x0000FFF5 arm_func_start FUN_037FBED0 -FUN_037FBED0: ;@ 0x037FBED0 +FUN_037FBED0: ; 0x037FBED0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r1 mov r6, r3 ldr r5, [sp, #28] mov r4, r0, lsl #4 - ldr r1, _037FBF74 ;@ =_03807A10 + ldr r1, _037FBF74 ; =_03807A10 strb r5, [r1, r0] - ldr r1, _037FBF78 ;@ =_0380765C + ldr r1, _037FBF78 ; =_0380765C ldr r1, [r1] cmp r1, #0 movge r5, r1 - ldr r1, _037FBF7C ;@ =_03807A20 + ldr r1, _037FBF7C ; =_03807A20 strb r2, [r1, r0] - ldr r1, _037FBF80 ;@ =_03807A0C + ldr r1, _037FBF80 ; =_03807A0C ldr r1, [r1] cmp r1, #0 ble _037FBF3C mov r1, #1 mov r1, r1, lsl r0 - ldr r0, _037FBF84 ;@ =0x0000FFF5 + ldr r0, _037FBF84 ; =0x0000FFF5 ands r0, r1, r0 beq _037FBF3C mov r0, r2 @@ -4855,15 +4867,15 @@ FUN_037FBED0: ;@ 0x037FBED0 mov r2, r0 _037FBF3C: mov r0, r7, lsl #24 - orr r0, r0, #1610612736 ;@ 0x60000000 + orr r0, r0, #1610612736 ; 0x60000000 orr r0, r0, r5, lsl #16 orr r0, r0, r6, lsl #8 orr r1, r2, r0 - add r0, r4, #67108864 ;@ 0x4000000 - str r1, [r0, #1024] ;@ 0x400 + add r0, r4, #67108864 ; 0x4000000 + str r1, [r0, #1024] ; 0x400 ldr r1, [sp, #24] - rsb r1, r1, #65536 ;@ 0x10000 - add r0, r0, #1024 ;@ 0x400 + rsb r1, r1, #65536 ; 0x10000 + add r0, r0, #1024 ; 0x400 strh r1, [r0, #8] add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} @@ -4875,29 +4887,29 @@ _037FBF80: .word _03807A0C _037FBF84: .word 0x0000FFF5 arm_func_start FUN_037FBF88 -FUN_037FBF88: ;@ 0x037FBF88 +FUN_037FBF88: ; 0x037FBF88 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r8, r1 mov r7, r2 mov r6, r3 ldr r1, [sp, #32] - ldr r5, [sp, #44] ;@ 0x2c + ldr r5, [sp, #44] ; 0x2c mov r4, r0, lsl #4 - ldr r2, _037FC044 ;@ =_03807A10 + ldr r2, _037FC044 ; =_03807A10 strb r5, [r2, r0] - ldr r2, _037FC048 ;@ =_0380765C + ldr r2, _037FC048 ; =_0380765C ldr r2, [r2] cmp r2, #0 movge r5, r2 - ldr r2, _037FC04C ;@ =_03807A20 + ldr r2, _037FC04C ; =_03807A20 strb r1, [r2, r0] - ldr r2, _037FC050 ;@ =_03807A0C + ldr r2, _037FC050 ; =_03807A0C ldr r2, [r2] cmp r2, #0 ble _037FBFF8 mov r2, #1 mov r2, r2, lsl r0 - ldr r0, _037FC054 ;@ =0x0000FFF5 + ldr r0, _037FC054 ; =0x0000FFF5 ands r0, r2, r0 beq _037FBFF8 mov r0, r1 @@ -4905,23 +4917,23 @@ FUN_037FBF88: ;@ 0x037FBF88 bl FUN_037FBB7C mov r1, r0 _037FBFF8: - ldr r2, [sp, #36] ;@ 0x24 + ldr r2, [sp, #36] ; 0x24 mov r0, r7, lsl #29 orr r0, r0, r6, lsl #27 orr r0, r0, r5, lsl #16 orr r0, r0, r2, lsl #8 orr r0, r1, r0 - add r1, r4, #67108864 ;@ 0x4000000 - str r0, [r1, #1024] ;@ 0x400 - ldr r0, [sp, #40] ;@ 0x28 - rsb r2, r0, #65536 ;@ 0x10000 - add r0, r1, #1024 ;@ 0x400 + add r1, r4, #67108864 ; 0x4000000 + str r0, [r1, #1024] ; 0x400 + ldr r0, [sp, #40] ; 0x28 + rsb r2, r0, #65536 ; 0x10000 + add r0, r1, #1024 ; 0x400 strh r2, [r0, #8] ldr r2, [sp, #24] strh r2, [r0, #10] ldr r0, [sp, #28] - str r0, [r1, #1036] ;@ 0x40c - str r8, [r1, #1028] ;@ 0x404 + str r0, [r1, #1036] ; 0x40c + str r8, [r1, #1028] ; 0x404 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _037FC044: .word _03807A10 @@ -4931,11 +4943,11 @@ _037FC050: .word _03807A0C _037FC054: .word 0x0000FFF5 arm_func_start FUN_037FC058 -FUN_037FC058: ;@ 0x037FC058 - ldr r2, _037FC080 ;@ =_03807660 +FUN_037FC058: ; 0x037FC058 + ldr r2, _037FC080 ; =_03807660 ldr r3, [r2] - ldr r0, _037FC084 ;@ =0x0019660D - ldr r1, _037FC088 ;@ =0x3C6EF35F + ldr r0, _037FC084 ; =0x0019660D + ldr r1, _037FC088 ; =0x3C6EF35F mla r0, r3, r0, r1 str r0, [r2] mov r0, r0, lsr #16 @@ -4947,29 +4959,29 @@ _037FC084: .word 0x0019660D _037FC088: .word 0x3C6EF35F arm_func_start FUN_037FC08C -FUN_037FC08C: ;@ 0x037FC08C +FUN_037FC08C: ; 0x037FC08C cmp r0, #32 - ldrlt r1, _037FC0F4 ;@ =_03807170 + ldrlt r1, _037FC0F4 ; =_03807170 ldrltsb r0, [r1, r0] bxlt lr - cmp r0, #64 ;@ 0x40 - rsblt r1, r0, #64 ;@ 0x40 - ldrlt r0, _037FC0F4 ;@ =_03807170 + cmp r0, #64 ; 0x40 + rsblt r1, r0, #64 ; 0x40 + ldrlt r0, _037FC0F4 ; =_03807170 ldrltsb r0, [r0, r1] bxlt lr - cmp r0, #96 ;@ 0x60 + cmp r0, #96 ; 0x60 bge _037FC0D4 - sub r1, r0, #64 ;@ 0x40 - ldr r0, _037FC0F4 ;@ =_03807170 + sub r1, r0, #64 ; 0x40 + ldr r0, _037FC0F4 ; =_03807170 ldrsb r0, [r0, r1] rsb r0, r0, #0 mov r0, r0, lsl #24 mov r0, r0, asr #24 bx lr _037FC0D4: - sub r0, r0, #96 ;@ 0x60 + sub r0, r0, #96 ; 0x60 rsb r1, r0, #32 - ldr r0, _037FC0F4 ;@ =_03807170 + ldr r0, _037FC0F4 ; =_03807170 ldrsb r0, [r0, r1] rsb r0, r0, #0 mov r0, r0, lsl #24 @@ -4978,28 +4990,28 @@ _037FC0D4: _037FC0F4: .word _03807170 arm_func_start FUN_037FC0F8 -FUN_037FC0F8: ;@ 0x037FC0F8 +FUN_037FC0F8: ; 0x037FC0F8 stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _037FC168 ;@ =0xFFFFFD2D + ldr r0, _037FC168 ; =0xFFFFFD2D cmp r4, r0 movlt r4, r0 blt _037FC118 cmp r4, #0 movgt r4, #0 _037FC118: - ldr r0, _037FC16C ;@ =0x000002D3 + ldr r0, _037FC16C ; =0x000002D3 add r0, r4, r0 bl FUN_037FC170 - mvn r1, #239 ;@ 0xef + mvn r1, #239 ; 0xef cmp r4, r1 movlt r1, #3 blt _037FC154 - mvn r1, #119 ;@ 0x77 + mvn r1, #119 ; 0x77 cmp r4, r1 movlt r1, #2 blt _037FC154 - mvn r1, #59 ;@ 0x3b + mvn r1, #59 ; 0x3b cmp r4, r1 movlt r1, #1 movge r1, #0 @@ -5013,13 +5025,13 @@ _037FC168: .word 0xFFFFFD2D _037FC16C: .word 0x000002D3 arm_func_start FUN_037FC170 -FUN_037FC170: ;@ 0x037FC170 - ldr ip, _037FC178 ;@ =SVC_GetVolumeTable +FUN_037FC170: ; 0x037FC170 + ldr ip, _037FC178 ; =SVC_GetVolumeTable bx ip _037FC178: .word SVC_GetVolumeTable arm_func_start FUN_037FC17C -FUN_037FC17C: ;@ 0x037FC17C +FUN_037FC17C: ; 0x037FC17C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -5028,20 +5040,20 @@ FUN_037FC17C: ;@ 0x037FC17C b _037FC19C _037FC194: sub r4, r4, #1 - add r0, r0, #768 ;@ 0x300 + add r0, r0, #768 ; 0x300 _037FC19C: cmp r0, #0 blt _037FC194 b _037FC1B0 _037FC1A8: add r4, r4, #1 - sub r0, r0, #768 ;@ 0x300 + sub r0, r0, #768 ; 0x300 _037FC1B0: - cmp r0, #768 ;@ 0x300 + cmp r0, #768 ; 0x300 bge _037FC1A8 bl FUN_037FC2A4 mov r2, #0 - mov r1, #65536 ;@ 0x10000 + mov r1, #65536 ; 0x10000 adds lr, r0, r1 adc ip, r2, #0 mov r3, r5, asr #31 @@ -5073,7 +5085,7 @@ _037FC208: and r5, r1, r5, lsl r4 cmp r3, r2 cmpeq r5, r2 - ldrne r0, _037FC2A0 ;@ =0x0000FFFF + ldrne r0, _037FC2A0 ; =0x0000FFFF bne _037FC294 mov r5, r1, lsl lr mov r3, r0, lsl lr @@ -5082,7 +5094,7 @@ _037FC208: orr r3, r3, r1, lsl r0 b _037FC264 _037FC25C: - ldr r0, _037FC2A0 ;@ =0x0000FFFF + ldr r0, _037FC2A0 ; =0x0000FFFF b _037FC294 _037FC264: mov r1, #0 @@ -5091,7 +5103,7 @@ _037FC264: cmpeq r5, r0 movcc r5, r0 bcc _037FC28C - ldr r0, _037FC2A0 ;@ =0x0000FFFF + ldr r0, _037FC2A0 ; =0x0000FFFF cmp r3, r1 cmpeq r5, r0 movhi r5, r0 @@ -5105,13 +5117,13 @@ _037FC294: _037FC2A0: .word 0x0000FFFF arm_func_start FUN_037FC2A4 -FUN_037FC2A4: ;@ 0x037FC2A4 - ldr ip, _037FC2AC ;@ =SVC_GetPitchTable +FUN_037FC2A4: ; 0x037FC2A4 + ldr ip, _037FC2AC ; =SVC_GetPitchTable bx ip _037FC2AC: .word SVC_GetPitchTable arm_func_start FUN_037FC2B0 -FUN_037FC2B0: ;@ 0x037FC2B0 +FUN_037FC2B0: ; 0x037FC2B0 stmdb sp!, {r4, r5, r6, lr} bl FUN_037FC408 bl FUN_037FD3E0 @@ -5123,7 +5135,7 @@ FUN_037FC2B0: ;@ 0x037FC2B0 mov r2, r0 mov r3, r0 bl FUN_037FBA0C - mov r0, #127 ;@ 0x7f + mov r0, #127 ; 0x7f bl FUN_037FBA44 bl FUN_037FC3B0 mov r4, #1 @@ -5148,37 +5160,37 @@ _037FC30C: bl FUN_037FC058 b _037FC2F0 _037FC330: - ldr r0, _037FC344 ;@ =_03807A54 + ldr r0, _037FC344 ; =_03807A54 mov r1, #1 mov r2, #0 - ldr ip, _037FC348 ;@ =FUN_037F9924 + ldr ip, _037FC348 ; =FUN_037F9924 bx ip _037FC344: .word _03807A54 _037FC348: .word FUN_037F9924 arm_func_start FUN_037FC34C -FUN_037FC34C: ;@ 0x037FC34C +FUN_037FC34C: ; 0x037FC34C bx lr arm_func_start FUN_037FC350 -FUN_037FC350: ;@ 0x037FC350 +FUN_037FC350: ; 0x037FC350 bx lr arm_func_start FUN_037FC354 -FUN_037FC354: ;@ 0x037FC354 - ldr r0, _037FC368 ;@ =_03807A54 +FUN_037FC354: ; 0x037FC354 + ldr r0, _037FC368 ; =_03807A54 mov r1, #2 mov r2, #0 - ldr ip, _037FC36C ;@ =FUN_037F9924 + ldr ip, _037FC36C ; =FUN_037F9924 bx ip _037FC368: .word _03807A54 _037FC36C: .word FUN_037F9924 arm_func_start FUN_037FC370 -FUN_037FC370: ;@ 0x037FC370 +FUN_037FC370: ; 0x037FC370 stmfd sp!, {lr} sub sp, sp, #4 - ldr r0, _037FC398 ;@ =_03807A54 + ldr r0, _037FC398 ; =_03807A54 add r1, sp, #0 mov r2, #1 bl FUN_037F9884 @@ -5189,27 +5201,27 @@ FUN_037FC370: ;@ 0x037FC370 _037FC398: .word _03807A54 arm_func_start FUN_037FC39C -FUN_037FC39C: ;@ 0x037FC39C - ldr r0, _037FC3A8 ;@ =_03807A74 - ldr ip, _037FC3AC ;@ =FUN_037FA650 +FUN_037FC39C: ; 0x037FC39C + ldr r0, _037FC3A8 ; =_03807A74 + ldr ip, _037FC3AC ; =FUN_037FA650 bx ip _037FC3A8: .word _03807A74 _037FC3AC: .word FUN_037FA650 arm_func_start FUN_037FC3B0 -FUN_037FC3B0: ;@ 0x037FC3B0 +FUN_037FC3B0: ; 0x037FC3B0 stmfd sp!, {lr} sub sp, sp, #12 bl FUN_037FA364 mov ip, r0 - ldr r0, _037FC3FC ;@ =_037FC330 + ldr r0, _037FC3FC ; =_037FC330 str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] - ldr r3, _037FC400 ;@ =0x00000AA8 + ldr r3, _037FC400 ; =0x00000AA8 str r0, [sp] - ldr r0, _037FC404 ;@ =_03807A74 - mov r2, #65536 ;@ 0x10000 + ldr r0, _037FC404 ; =_03807A74 + mov r2, #65536 ; 0x10000 adds ip, ip, r2 adc r2, r1, #0 mov r1, ip @@ -5222,14 +5234,14 @@ _037FC400: .word 0x00000AA8 _037FC404: .word _03807A74 arm_func_start FUN_037FC408 -FUN_037FC408: ;@ 0x037FC408 +FUN_037FC408: ; 0x037FC408 stmfd sp!, {lr} sub sp, sp, #4 - ldr r0, _037FC434 ;@ =_03807A54 - ldr r1, _037FC438 ;@ =_03807A34 + ldr r0, _037FC434 ; =_03807A54 + ldr r1, _037FC438 ; =_03807A34 mov r2, #8 bl FUN_037F99B8 - ldr r0, _037FC43C ;@ =_03807A74 + ldr r0, _037FC43C ; =_03807A74 bl FUN_037FA900 add sp, sp, #4 ldmia sp!, {lr} @@ -5239,18 +5251,18 @@ _037FC438: .word _03807A34 _037FC43C: .word _03807A74 arm_func_start FUN_037FC440 -FUN_037FC440: ;@ 0x037FC440 +FUN_037FC440: ; 0x037FC440 stmfd sp!, {lr} sub sp, sp, #12 - mov r1, #1024 ;@ 0x400 + mov r1, #1024 ; 0x400 str r1, [sp] str r0, [sp, #4] - ldr r0, _037FC47C ;@ =_03807AA0 - ldr r1, _037FC480 ;@ =FUN_037FC2B0 + ldr r0, _037FC47C ; =_03807AA0 + ldr r1, _037FC480 ; =FUN_037FC2B0 mov r2, #0 - ldr r3, _037FC484 ;@ =_03807F44 + ldr r3, _037FC484 ; =_03807F44 bl FUN_037F9244 - ldr r0, _037FC47C ;@ =_03807AA0 + ldr r0, _037FC47C ; =_03807AA0 bl FUN_037F8FB4 add sp, sp, #12 ldmia sp!, {lr} @@ -5260,10 +5272,10 @@ _037FC480: .word FUN_037FC2B0 _037FC484: .word _03807F44 arm_func_start FUN_037FC488 -FUN_037FC488: ;@ 0x037FC488 +FUN_037FC488: ; 0x037FC488 stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _037FC4BC ;@ =_03807A30 + ldr r0, _037FC4BC ; =_03807A30 ldr r1, [r0] cmp r1, #0 bne _037FC4B4 @@ -5278,16 +5290,16 @@ _037FC4B4: _037FC4BC: .word _03807A30 arm_func_start FUN_037FC4C0 -FUN_037FC4C0: ;@ 0x037FC4C0 - add r0, r0, #67108864 ;@ 0x4000000 - ldrb r0, [r0, #1288] ;@ 0x508 - ands r0, r0, #128 ;@ 0x80 +FUN_037FC4C0: ; 0x037FC4C0 + add r0, r0, #67108864 ; 0x4000000 + ldrb r0, [r0, #1288] ; 0x508 + ands r0, r0, #128 ; 0x80 movne r0, #1 moveq r0, #0 bx lr arm_func_start FUN_037FC4D8 -FUN_037FC4D8: ;@ 0x037FC4D8 +FUN_037FC4D8: ; 0x037FC4D8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0, lsl #3 @@ -5301,22 +5313,22 @@ FUN_037FC4D8: ;@ 0x037FC4D8 orr r1, r1, r5, lsl #2 orr r1, r1, ip, lsl #1 orr r1, lr, r1 - add r0, r0, #67108864 ;@ 0x4000000 - strb r1, [r0, #1288] ;@ 0x508 - add r0, r4, #67108864 ;@ 0x4000000 - str r2, [r0, #1296] ;@ 0x510 - add r0, r0, #1280 ;@ 0x500 + add r0, r0, #67108864 ; 0x4000000 + strb r1, [r0, #1288] ; 0x508 + add r0, r4, #67108864 ; 0x4000000 + str r2, [r0, #1296] ; 0x510 + add r0, r0, #1280 ; 0x500 strh r3, [r0, #20] add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start FUN_037FC530 -FUN_037FC530: ;@ 0x037FC530 +FUN_037FC530: ; 0x037FC530 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 - add r0, r6, #40 ;@ 0x28 + add r0, r6, #40 ; 0x28 bl FUN_037FC7F4 mov r4, r0 mov ip, r0, asr #31 @@ -5324,7 +5336,7 @@ FUN_037FC530: ;@ 0x037FC530 cmp ip, r3 cmpeq r0, r3 beq _037FC5B0 - ldrb r1, [r6, #40] ;@ 0x28 + ldrb r1, [r6, #40] ; 0x28 cmp r1, #0 beq _037FC59C cmp r1, #1 @@ -5335,7 +5347,7 @@ FUN_037FC530: ;@ 0x037FC530 moveq r4, r0, lsl #6 b _037FC5A8 _037FC584: - mov r2, #60 ;@ 0x3c + mov r2, #60 ; 0x3c umull r4, r1, r0, r2 mla r1, r0, r3, r1 mla r1, ip, r2, r1 @@ -5351,7 +5363,7 @@ _037FC5A8: _037FC5B0: cmp r5, #0 beq _037FC5C0 - add r0, r6, #40 ;@ 0x28 + add r0, r6, #40 ; 0x28 bl FUN_037FC844 _037FC5C0: mov r0, r4 @@ -5359,12 +5371,12 @@ _037FC5C0: bx lr arm_func_start FUN_037FC5CC -FUN_037FC5CC: ;@ 0x037FC5CC +FUN_037FC5CC: ; 0x037FC5CC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 mov r5, r1 - ldrsh r3, [r4, #50] ;@ 0x32 + ldrsh r3, [r4, #50] ; 0x32 cmp r3, #0 moveq r0, #0 beq _037FC630 @@ -5391,16 +5403,16 @@ _037FC630: bx lr arm_func_start FUN_037FC63C -FUN_037FC63C: ;@ 0x037FC63C +FUN_037FC63C: ; 0x037FC63C stmfd sp!, {lr} sub sp, sp, #4 - ldrh lr, [r0, #36] ;@ 0x24 - and r2, lr, #255 ;@ 0xff - ldrh ip, [r1, #36] ;@ 0x24 - and r0, ip, #255 ;@ 0xff + ldrh lr, [r0, #36] ; 0x24 + and r2, lr, #255 ; 0xff + ldrh ip, [r1, #36] ; 0x24 + and r0, ip, #255 ; 0xff mov r2, r2, lsl #4 mov r3, r0, lsl #4 - ldr r1, _037FC698 ;@ =_03807294 + ldr r1, _037FC698 ; =_03807294 ldrb r0, [r1, lr, asr #8] mov r2, r2, asr r0 ldrb r0, [r1, ip, asr #8] @@ -5420,15 +5432,15 @@ _037FC68C: _037FC698: .word _03807294 arm_func_start FUN_037FC69C -FUN_037FC69C: ;@ 0x037FC69C +FUN_037FC69C: ; 0x037FC69C stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _037FC6E4 ;@ =0xFFFE9680 + ldr r0, _037FC6E4 ; =0xFFFE9680 str r0, [r4, #16] mov r0, #0 strb r0, [r4, #2] - str r1, [r4, #52] ;@ 0x34 - add r0, r4, #40 ;@ 0x28 + str r1, [r4, #52] ; 0x34 + add r0, r4, #40 ; 0x28 bl FUN_037FC8A8 ldrb r0, [r4, #3] orr r0, r0, #2 @@ -5442,24 +5454,24 @@ FUN_037FC69C: ;@ 0x037FC69C _037FC6E4: .word 0xFFFE9680 arm_func_start FUN_037FC6E8 -FUN_037FC6E8: ;@ 0x037FC6E8 +FUN_037FC6E8: ; 0x037FC6E8 stmdb sp!, {r4, lr} mov r4, r0 mov ip, #0 - str ip, [r4, #80] ;@ 0x50 - str r1, [r4, #72] ;@ 0x48 - str r2, [r4, #76] ;@ 0x4c - str ip, [r4, #52] ;@ 0x34 - strb r3, [r4, #34] ;@ 0x22 - mov r1, #127 ;@ 0x7f - strh r1, [r4, #36] ;@ 0x24 + str ip, [r4, #80] ; 0x50 + str r1, [r4, #72] ; 0x48 + str r2, [r4, #76] ; 0x4c + str ip, [r4, #52] ; 0x34 + strb r3, [r4, #34] ; 0x22 + mov r1, #127 ; 0x7f + strh r1, [r4, #36] ; 0x24 ldrb r2, [r4, #3] bic r2, r2, #2 strb r2, [r4, #3] ldrb r2, [r4, #3] orr r2, r2, #4 strb r2, [r4, #3] - mov r2, #60 ;@ 0x3c + mov r2, #60 ; 0x3c strb r2, [r4, #8] strb r2, [r4, #5] strb r1, [r4, #9] @@ -5469,43 +5481,43 @@ FUN_037FC6E8: ;@ 0x037FC6E8 strh ip, [r4, #14] strb ip, [r4, #11] strb r1, [r4, #4] - strh ip, [r4, #50] ;@ 0x32 + strh ip, [r4, #50] ; 0x32 str ip, [r4, #24] str ip, [r4, #20] bl FUN_037FCD28 mov r0, r4 - mov r1, #127 ;@ 0x7f + mov r1, #127 ; 0x7f bl FUN_037FCD0C mov r0, r4 - mov r1, #127 ;@ 0x7f + mov r1, #127 ; 0x7f bl FUN_037FCD04 mov r0, r4 - mov r1, #127 ;@ 0x7f + mov r1, #127 ; 0x7f bl FUN_037FCCE8 - add r0, r4, #40 ;@ 0x28 + add r0, r4, #40 ; 0x28 bl FUN_037FC8B8 ldmia sp!, {r4, lr} bx lr arm_func_start FUN_037FC794 -FUN_037FC794: ;@ 0x037FC794 +FUN_037FC794: ; 0x037FC794 stmfd sp!, {lr} sub sp, sp, #4 mov r1, r0 - cmp r1, #127 ;@ 0x7f - ldreq r0, _037FC7F0 ;@ =0x0000FFFF + cmp r1, #127 ; 0x7f + ldreq r0, _037FC7F0 ; =0x0000FFFF beq _037FC7E4 - cmp r1, #126 ;@ 0x7e - moveq r0, #15360 ;@ 0x3c00 + cmp r1, #126 ; 0x7e + moveq r0, #15360 ; 0x3c00 beq _037FC7E4 - cmp r1, #50 ;@ 0x32 + cmp r1, #50 ; 0x32 movlt r0, r1, lsl #1 addlt r0, r0, #1 movlt r0, r0, lsl #16 movlt r0, r0, lsr #16 blt _037FC7E4 - mov r0, #7680 ;@ 0x1e00 - rsb r1, r1, #126 ;@ 0x7e + mov r0, #7680 ; 0x1e00 + rsb r1, r1, #126 ; 0x7e bl _s32_div_f mov r0, r0, lsl #16 mov r0, r0, lsr #16 @@ -5516,7 +5528,7 @@ _037FC7E4: _037FC7F0: .word 0x0000FFFF arm_func_start FUN_037FC7F4 -FUN_037FC7F4: ;@ 0x037FC7F4 +FUN_037FC7F4: ; 0x037FC7F4 stmdb sp!, {r4, lr} mov r4, r0 ldrb r0, [r4, #2] @@ -5540,7 +5552,7 @@ _037FC83C: bx lr arm_func_start FUN_037FC844 -FUN_037FC844: ;@ 0x037FC844 +FUN_037FC844: ; 0x037FC844 ldrh r2, [r0, #6] ldrh r1, [r0, #4] cmp r2, r1 @@ -5554,15 +5566,15 @@ FUN_037FC844: ;@ 0x037FC844 mov r2, r1, lsr #8 b _037FC878 _037FC874: - sub r2, r2, #128 ;@ 0x80 + sub r2, r2, #128 ; 0x80 _037FC878: - cmp r2, #128 ;@ 0x80 + cmp r2, #128 ; 0x80 bcs _037FC874 ldrh r1, [r0, #8] add r1, r1, r3 strh r1, [r0, #8] ldrh r1, [r0, #8] - and r1, r1, #255 ;@ 0xff + and r1, r1, #255 ; 0xff strh r1, [r0, #8] ldrh r1, [r0, #8] orr r1, r1, r2, lsl #8 @@ -5570,14 +5582,14 @@ _037FC878: bx lr arm_func_start FUN_037FC8A8 -FUN_037FC8A8: ;@ 0x037FC8A8 +FUN_037FC8A8: ; 0x037FC8A8 mov r1, #0 strh r1, [r0, #8] strh r1, [r0, #6] bx lr arm_func_start FUN_037FC8B8 -FUN_037FC8B8: ;@ 0x037FC8B8 +FUN_037FC8B8: ; 0x037FC8B8 mov r2, #0 strb r2, [r0] strb r2, [r0, #2] @@ -5589,15 +5601,15 @@ FUN_037FC8B8: ;@ 0x037FC8B8 bx lr arm_func_start FUN_037FC8DC -FUN_037FC8DC: ;@ 0x037FC8DC +FUN_037FC8DC: ; 0x037FC8DC stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 mov r5, #0 mov r9, r5 - ldr r4, _037FC960 ;@ =_03807F6C - mov r8, #84 ;@ 0x54 + ldr r4, _037FC960 ; =_03807F6C + mov r8, #84 ; 0x54 _037FC8FC: mla r2, r5, r8, r4 ldrb r1, [r2, #3] @@ -5607,7 +5619,7 @@ _037FC8FC: ldrb r0, [r2, #1] cmp r0, #0 bne _037FC944 - ldr r0, [r2, #68] ;@ 0x44 + ldr r0, [r2, #68] ; 0x44 cmp r7, r0 bhi _037FC944 cmp r0, r6 @@ -5619,7 +5631,7 @@ _037FC8FC: bl FUN_037FBDF4 _037FC944: add r0, r5, #1 - and r5, r0, #255 ;@ 0xff + and r5, r0, #255 ; 0xff cmp r5, #16 bcc _037FC8FC add sp, sp, #4 @@ -5628,26 +5640,26 @@ _037FC944: _037FC960: .word _03807F6C arm_func_start FUN_037FC964 -FUN_037FC964: ;@ 0x037FC964 +FUN_037FC964: ; 0x037FC964 ands r0, r0, #1 - ldrne r0, _037FC97C ;@ =_03807F44 + ldrne r0, _037FC97C ; =_03807F44 ldrne r0, [r0] - ldreq r0, _037FC980 ;@ =_03807F48 + ldreq r0, _037FC980 ; =_03807F48 ldreq r0, [r0] bx lr _037FC97C: .word _03807F44 _037FC980: .word _03807F48 arm_func_start FUN_037FC984 -FUN_037FC984: ;@ 0x037FC984 +FUN_037FC984: ; 0x037FC984 ands r1, r1, #1 - ldreq r1, _037FC9B8 ;@ =_03807F48 + ldreq r1, _037FC9B8 ; =_03807F48 ldreq r2, [r1] mvneq r0, r0 andeq r0, r2, r0 streq r0, [r1] bxeq lr - ldr r1, _037FC9BC ;@ =_03807F44 + ldr r1, _037FC9BC ; =_03807F44 ldr r2, [r1] mvn r0, r0 and r0, r2, r0 @@ -5657,7 +5669,7 @@ _037FC9B8: .word _03807F48 _037FC9BC: .word _03807F44 arm_func_start FUN_037FC9C0 -FUN_037FC9C0: ;@ 0x037FC9C0 +FUN_037FC9C0: ; 0x037FC9C0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov sl, r0 @@ -5672,31 +5684,31 @@ FUN_037FC9C0: ;@ 0x037FC9C0 _037FC9EC: ands r0, r7, #1 beq _037FCA64 - mov r1, #84 ;@ 0x54 - ldr r0, _037FCAAC ;@ =_03807F6C + mov r1, #84 ; 0x54 + ldr r0, _037FCAAC ; =_03807F6C mla r8, r6, r1, r0 - ldr r0, _037FCAB0 ;@ =_03807F48 + ldr r0, _037FCAB0 ; =_03807F48 ldr r1, [r0] mov r0, r5, lsl r6 ands r0, r1, r0 bne _037FCA64 - ldr r3, [r8, #72] ;@ 0x48 + ldr r3, [r8, #72] ; 0x48 cmp r3, #0 beq _037FCA34 mov r0, r8 mov r1, fp - ldr r2, [r8, #76] ;@ 0x4c + ldr r2, [r8, #76] ; 0x4c mov lr, pc bx r3 _037FCA34: mov r0, r6 ldr r1, [sp] bl FUN_037FBDF4 - strb r4, [r8, #34] ;@ 0x22 + strb r4, [r8, #34] ; 0x22 mov r0, r8 bl FUN_037FCB80 ldrb r0, [r8, #3] - bic r0, r0, #248 ;@ 0xf8 + bic r0, r0, #248 ; 0xf8 strb r0, [r8, #3] ldrb r0, [r8, #3] bic r0, r0, #1 @@ -5711,11 +5723,11 @@ _037FCA6C: bne _037FC9EC _037FCA7C: ands r0, r9, #1 - ldrne r0, _037FCAB4 ;@ =_03807F44 + ldrne r0, _037FCAB4 ; =_03807F44 ldrne r1, [r0] orrne r1, r1, sl strne r1, [r0] - ldreq r0, _037FCAB0 ;@ =_03807F48 + ldreq r0, _037FCAB0 ; =_03807F48 ldreq r1, [r0] orreq r1, r1, sl streq r1, [r0] @@ -5727,7 +5739,7 @@ _037FCAB0: .word _03807F48 _037FCAB4: .word _03807F44 arm_func_start FUN_037FCAB8 -FUN_037FCAB8: ;@ 0x037FCAB8 +FUN_037FCAB8: ; 0x037FCAB8 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov sl, r0 @@ -5735,36 +5747,36 @@ FUN_037FCAB8: ;@ 0x037FCAB8 mov r6, r8 mov r5, r8 mov r4, r8 - ldr fp, _037FCB78 ;@ =_03807F6C + ldr fp, _037FCB78 ; =_03807F6C mov r7, #1 b _037FCB5C _037FCAE0: ands r0, sl, #1 beq _037FCB54 - mov r0, #84 ;@ 0x54 + mov r0, #84 ; 0x54 mla r9, r8, r0, fp - ldr r0, _037FCB7C ;@ =_03807F48 + ldr r0, _037FCB7C ; =_03807F48 ldr r1, [r0] mov r0, r7, lsl r8 ands r0, r1, r0 bne _037FCB54 - ldr r3, [r9, #72] ;@ 0x48 + ldr r3, [r9, #72] ; 0x48 cmp r3, #0 beq _037FCB24 mov r0, r9 mov r1, r6 - ldr r2, [r9, #76] ;@ 0x4c + ldr r2, [r9, #76] ; 0x4c mov lr, pc bx r3 _037FCB24: mov r0, r8 mov r1, r5 bl FUN_037FBDF4 - strb r4, [r9, #34] ;@ 0x22 + strb r4, [r9, #34] ; 0x22 mov r0, r9 bl FUN_037FCB80 ldrb r0, [r9, #3] - bic r0, r0, #248 ;@ 0xf8 + bic r0, r0, #248 ; 0xf8 strb r0, [r9, #3] ldrb r0, [r9, #3] bic r0, r0, #1 @@ -5785,46 +5797,46 @@ _037FCB78: .word _03807F6C _037FCB7C: .word _03807F48 arm_func_start FUN_037FCB80 -FUN_037FCB80: ;@ 0x037FCB80 +FUN_037FCB80: ; 0x037FCB80 cmp r0, #0 movne r1, #0 - strne r1, [r0, #72] ;@ 0x48 - strne r1, [r0, #76] ;@ 0x4c + strne r1, [r0, #72] ; 0x48 + strne r1, [r0, #76] ; 0x4c bx lr arm_func_start FUN_037FCB94 -FUN_037FCB94: ;@ 0x037FCB94 +FUN_037FCB94: ; 0x037FCB94 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov sl, r0 mov r9, r1 mov fp, r3 - ldr r0, _037FCCBC ;@ =_03807F48 + ldr r0, _037FCCBC ; =_03807F48 ldr r0, [r0] mvn r0, r0 and sl, sl, r0 cmp r2, #0 - ldreq r0, _037FCCC0 ;@ =_03807F44 + ldreq r0, _037FCCC0 ; =_03807F44 ldreq r0, [r0] mvneq r0, r0 andeq sl, sl, r0 mov r8, #0 mov r7, r8 mov r5, #1 - mov r4, #84 ;@ 0x54 + mov r4, #84 ; 0x54 _037FCBDC: - ldr r0, _037FCCC4 ;@ =_03807298 + ldr r0, _037FCCC4 ; =_03807298 ldrb r1, [r0, r7] mov r0, r5, lsl r1 ands r0, sl, r0 beq _037FCC34 - ldr r0, _037FCCC8 ;@ =_03807F6C + ldr r0, _037FCCC8 ; =_03807F6C mla r6, r1, r4, r0 cmp r8, #0 moveq r8, r6 beq _037FCC34 - ldrb r1, [r8, #34] ;@ 0x22 - ldrb r0, [r6, #34] ;@ 0x22 + ldrb r1, [r8, #34] ; 0x22 + ldrb r0, [r6, #34] ; 0x22 cmp r0, r1 bhi _037FCC34 cmp r0, r1 @@ -5843,21 +5855,21 @@ _037FCC34: cmp r8, #0 moveq r0, #0 beq _037FCCB0 - ldrb r0, [r8, #34] ;@ 0x22 + ldrb r0, [r8, #34] ; 0x22 cmp r9, r0 movlt r0, #0 blt _037FCCB0 - ldr r3, [r8, #72] ;@ 0x48 + ldr r3, [r8, #72] ; 0x48 cmp r3, #0 beq _037FCC7C mov r0, r8 mov r1, #0 - ldr r2, [r8, #76] ;@ 0x4c + ldr r2, [r8, #76] ; 0x4c mov lr, pc bx r3 _037FCC7C: ldrb r0, [r8, #3] - bic r0, r0, #248 ;@ 0xf8 + bic r0, r0, #248 ; 0xf8 orr r0, r0, #16 strb r0, [r8, #3] ldrb r0, [r8, #3] @@ -5865,7 +5877,7 @@ _037FCC7C: strb r0, [r8, #3] mov r0, r8 mov r1, fp - ldr r2, [sp, #40] ;@ 0x28 + ldr r2, [sp, #40] ; 0x28 mov r3, r9 bl FUN_037FC6E8 mov r0, r8 @@ -5879,20 +5891,20 @@ _037FCCC4: .word _03807298 _037FCCC8: .word _03807F6C arm_func_start FUN_037FCCCC -FUN_037FCCCC: ;@ 0x037FCCCC +FUN_037FCCCC: ; 0x037FCCCC ldrb r0, [r0, #3] mov r0, r0, lsl #31 mov r0, r0, lsr #31 bx lr arm_func_start FUN_037FCCDC -FUN_037FCCDC: ;@ 0x037FCCDC +FUN_037FCCDC: ; 0x037FCCDC mov r1, #3 strb r1, [r0, #2] bx lr arm_func_start FUN_037FCCE8 -FUN_037FCCE8: ;@ 0x037FCCE8 +FUN_037FCCE8: ; 0x037FCCE8 stmdb sp!, {r4, lr} mov r4, r0 mov r0, r1 @@ -5902,12 +5914,12 @@ FUN_037FCCE8: ;@ 0x037FCCE8 bx lr arm_func_start FUN_037FCD04 -FUN_037FCD04: ;@ 0x037FCD04 +FUN_037FCD04: ; 0x037FCD04 strb r1, [r0, #29] bx lr arm_func_start FUN_037FCD0C -FUN_037FCD0C: ;@ 0x037FCD0C +FUN_037FCD0C: ; 0x037FCD0C stmdb sp!, {r4, lr} mov r4, r0 mov r0, r1 @@ -5917,19 +5929,19 @@ FUN_037FCD0C: ;@ 0x037FCD0C bx lr arm_func_start FUN_037FCD28 -FUN_037FCD28: ;@ 0x037FCD28 - cmp r1, #109 ;@ 0x6d - rsblt r1, r1, #255 ;@ 0xff +FUN_037FCD28: ; 0x037FCD28 + cmp r1, #109 ; 0x6d + rsblt r1, r1, #255 ; 0xff strltb r1, [r0, #28] - rsbge r2, r1, #127 ;@ 0x7f - ldrge r1, _037FCD48 ;@ =_038072A8 + rsbge r2, r1, #127 ; 0x7f + ldrge r1, _037FCD48 ; =_038072A8 ldrgeb r1, [r1, r2] strgeb r1, [r0, #28] bx lr _037FCD48: .word _038072A8 arm_func_start FUN_037FCD4C -FUN_037FCD4C: ;@ 0x037FCD4C +FUN_037FCD4C: ; 0x037FCD4C cmp r1, #0 beq _037FCDF0 ldrb r1, [r0, #2] @@ -5956,7 +5968,7 @@ _037FCD74: _037FCDA4: ldrb r1, [r0, #29] mov r2, r1, lsl #1 - ldr r1, _037FCDFC ;@ =_03807194 + ldr r1, _037FCDFC ; =_03807194 ldrsh r1, [r1, r2] mov r3, r1, lsl #7 ldr r2, [r0, #16] @@ -5981,7 +5993,7 @@ _037FCDF0: _037FCDFC: .word _03807194 arm_func_start FUN_037FCE00 -FUN_037FCE00: ;@ 0x037FCE00 +FUN_037FCE00: ; 0x037FCE00 stmfd sp!, {lr} sub sp, sp, #4 ldrb r2, [r0] @@ -5993,8 +6005,8 @@ FUN_037FCE00: ;@ 0x037FCE00 bhi _037FCE3C mov r2, #2 strb r2, [r0, #1] - ldr r2, _037FCE48 ;@ =0x00001F46 - strh r2, [r0, #60] ;@ 0x3c + ldr r2, _037FCE48 ; =0x00001F46 + strh r2, [r0, #60] ; 0x3c bl FUN_037FC69C mov r0, #1 _037FCE3C: @@ -6004,7 +6016,7 @@ _037FCE3C: _037FCE48: .word 0x00001F46 arm_func_start FUN_037FCE4C -FUN_037FCE4C: ;@ 0x037FCE4C +FUN_037FCE4C: ; 0x037FCE4C stmfd sp!, {lr} sub sp, sp, #4 ldrb r3, [r0] @@ -6016,9 +6028,9 @@ FUN_037FCE4C: ;@ 0x037FCE4C bhi _037FCE90 mov r3, #1 strb r3, [r0, #1] - str r1, [r0, #68] ;@ 0x44 - ldr r1, _037FCE9C ;@ =0x00001F46 - strh r1, [r0, #60] ;@ 0x3c + str r1, [r0, #68] ; 0x44 + ldr r1, _037FCE9C ; =0x00001F46 + strh r1, [r0, #60] ; 0x3c mov r1, r2 bl FUN_037FC69C mov r0, #1 @@ -6029,16 +6041,16 @@ _037FCE90: _037FCE9C: .word 0x00001F46 arm_func_start FUN_037FCEA0 -FUN_037FCEA0: ;@ 0x037FCEA0 +FUN_037FCEA0: ; 0x037FCEA0 stmdb sp!, {r4, lr} mov r4, r0 mov lr, r2 mov r0, #0 strb r0, [r4, #1] - add ip, r4, #56 ;@ 0x38 + add ip, r4, #56 ; 0x38 ldmia r1, {r0, r1, r2} stmia ip, {r0, r1, r2} - str lr, [r4, #68] ;@ 0x44 + str lr, [r4, #68] ; 0x44 mov r0, r4 mov r1, r3 bl FUN_037FC69C @@ -6047,7 +6059,7 @@ FUN_037FCEA0: ;@ 0x037FCEA0 bx lr arm_func_start FUN_037FCEDC -FUN_037FCEDC: ;@ 0x037FCEDC +FUN_037FCEDC: ; 0x037FCEDC stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #28 mov r6, r0 @@ -6055,7 +6067,7 @@ FUN_037FCEDC: ;@ 0x037FCEDC mov fp, r4 mov r7, #1 str r4, [sp, #8] - mov r0, #127 ;@ 0x7f + mov r0, #127 ; 0x7f str r0, [sp, #20] str r4, [sp, #16] str r4, [sp, #12] @@ -6065,8 +6077,8 @@ _037FCF10: ldr r8, [sp] mov sl, r8 mov r9, r8 - mov r1, #84 ;@ 0x54 - ldr r0, _037FD1E4 ;@ =_03807F6C + mov r1, #84 ; 0x54 + ldr r0, _037FD1E4 ; =_03807F6C mla r5, r4, r1, r0 ldrb r1, [r5, #3] mov r0, r1, lsl #31 @@ -6075,11 +6087,11 @@ _037FCF10: mov r0, r1, lsl #30 movs r0, r0, lsr #31 beq _037FCF74 - bic r0, r1, #248 ;@ 0xf8 + bic r0, r1, #248 ; 0xf8 mov r1, r1, lsl #24 mov r1, r1, lsr #27 orr r1, r1, #1 - and r1, r1, #255 ;@ 0xff + and r1, r1, #255 ; 0xff and r1, r1, #31 orr r0, r0, r1, lsl #3 strb r0, [r5, #3] @@ -6092,18 +6104,18 @@ _037FCF74: bl FUN_037FBCC0 cmp r0, #0 bne _037FCFC0 - ldr r3, [r5, #72] ;@ 0x48 + ldr r3, [r5, #72] ; 0x48 cmp r3, #0 - streqb fp, [r5, #34] ;@ 0x22 + streqb fp, [r5, #34] ; 0x22 beq _037FCFA8 mov r0, r5 mov r1, r7 - ldr r2, [r5, #76] ;@ 0x4c + ldr r2, [r5, #76] ; 0x4c mov lr, pc bx r3 _037FCFA8: ldr r0, [sp, #4] - strh r0, [r5, #36] ;@ 0x24 + strh r0, [r5, #36] ; 0x24 ldrb r0, [r5, #3] bic r0, r0, #1 strb r0, [r5, #3] @@ -6111,7 +6123,7 @@ _037FCFA8: _037FCFC0: ldrb r0, [r5, #9] mov r1, r0, lsl #1 - ldr r0, _037FD1E8 ;@ =_03807194 + ldr r0, _037FD1E8 ; =_03807194 ldrsh r0, [r0, r1] add r8, r8, r0 ldrb r1, [r5, #8] @@ -6135,7 +6147,7 @@ _037FCFC0: mov r0, r5 mov r1, r6 bl FUN_037FC530 - ldrb r1, [r5, #40] ;@ 0x28 + ldrb r1, [r5, #40] ; 0x28 cmp r1, #0 beq _037FD05C cmp r1, #1 @@ -6144,7 +6156,7 @@ _037FCFC0: addeq r9, r9, r0 b _037FD060 _037FD048: - mov r1, #32768 ;@ 0x8000 + mov r1, #32768 ; 0x8000 rsb r1, r1, #0 cmp r8, r1 addgt r8, r8, r0 @@ -6155,35 +6167,35 @@ _037FD060: ldrsb r0, [r5, #10] add r9, r9, r0 ldrb r0, [r5, #4] - cmp r0, #127 ;@ 0x7f + cmp r0, #127 ; 0x7f mulne r0, r9, r0 - addne r0, r0, #64 ;@ 0x40 + addne r0, r0, #64 ; 0x40 movne r9, r0, asr #7 ldrsb r0, [r5, #11] add r9, r9, r0 ldrb r0, [r5, #2] cmp r0, #3 bne _037FD0EC - ldr r0, _037FD1EC ;@ =0xFFFFFD2D + ldr r0, _037FD1EC ; =0xFFFFFD2D cmp r8, r0 bgt _037FD0EC ldrb r0, [r5, #3] - bic r0, r0, #248 ;@ 0xf8 + bic r0, r0, #248 ; 0xf8 orr r0, r0, #16 strb r0, [r5, #3] - ldr r3, [r5, #72] ;@ 0x48 + ldr r3, [r5, #72] ; 0x48 cmp r3, #0 ldreq r0, [sp, #8] - streqb r0, [r5, #34] ;@ 0x22 + streqb r0, [r5, #34] ; 0x22 beq _037FD0D4 mov r0, r5 mov r1, r7 - ldr r2, [r5, #76] ;@ 0x4c + ldr r2, [r5, #76] ; 0x4c mov lr, pc bx r3 _037FD0D4: ldr r0, [sp, #12] - strh r0, [r5, #36] ;@ 0x24 + strh r0, [r5, #36] ; 0x24 ldrb r0, [r5, #3] bic r0, r0, #1 strb r0, [r5, #3] @@ -6192,59 +6204,59 @@ _037FD0EC: mov r0, r8 bl FUN_037FC0F8 mov r8, r0 - ldrh r0, [r5, #60] ;@ 0x3c + ldrh r0, [r5, #60] ; 0x3c mov r1, sl bl FUN_037FC17C ldrb r1, [r5, #1] cmp r1, #1 - ldreq r1, _037FD1F0 ;@ =0x0000FFFC + ldreq r1, _037FD1F0 ; =0x0000FFFC andeq r0, r0, r1 moveq r0, r0, lsl #16 moveq r0, r0, lsr #16 - adds r9, r9, #64 ;@ 0x40 + adds r9, r9, #64 ; 0x40 ldrmi r9, [sp, #16] bmi _037FD130 - cmp r9, #127 ;@ 0x7f + cmp r9, #127 ; 0x7f ldrgt r9, [sp, #20] _037FD130: - ldrh r1, [r5, #36] ;@ 0x24 + ldrh r1, [r5, #36] ; 0x24 cmp r8, r1 beq _037FD164 - strh r8, [r5, #36] ;@ 0x24 + strh r8, [r5, #36] ; 0x24 ldrb r2, [r5, #3] - bic r1, r2, #248 ;@ 0xf8 + bic r1, r2, #248 ; 0xf8 mov r2, r2, lsl #24 mov r2, r2, lsr #27 orr r2, r2, #8 - and r2, r2, #255 ;@ 0xff + and r2, r2, #255 ; 0xff and r2, r2, #31 orr r1, r1, r2, lsl #3 strb r1, [r5, #3] _037FD164: - ldrh r1, [r5, #38] ;@ 0x26 + ldrh r1, [r5, #38] ; 0x26 cmp r0, r1 beq _037FD198 - strh r0, [r5, #38] ;@ 0x26 + strh r0, [r5, #38] ; 0x26 ldrb r0, [r5, #3] - bic r1, r0, #248 ;@ 0xf8 + bic r1, r0, #248 ; 0xf8 mov r0, r0, lsl #24 mov r0, r0, lsr #27 orr r0, r0, #4 - and r0, r0, #255 ;@ 0xff + and r0, r0, #255 ; 0xff and r0, r0, #31 orr r0, r1, r0, lsl #3 strb r0, [r5, #3] _037FD198: - ldrb r0, [r5, #35] ;@ 0x23 + ldrb r0, [r5, #35] ; 0x23 cmp r9, r0 beq _037FD1CC - strb r9, [r5, #35] ;@ 0x23 + strb r9, [r5, #35] ; 0x23 ldrb r0, [r5, #3] - bic r1, r0, #248 ;@ 0xf8 + bic r1, r0, #248 ; 0xf8 mov r0, r0, lsl #24 mov r0, r0, lsr #27 orr r0, r0, #16 - and r0, r0, #255 ;@ 0xff + and r0, r0, #255 ; 0xff and r0, r0, #31 orr r0, r1, r0, lsl #3 strb r0, [r5, #3] @@ -6261,15 +6273,15 @@ _037FD1EC: .word 0xFFFFFD2D _037FD1F0: .word 0x0000FFFC arm_func_start FUN_037FD1F4 -FUN_037FD1F4: ;@ 0x037FD1F4 +FUN_037FD1F4: ; 0x037FD1F4 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} sub sp, sp, #24 mov r8, #0 mov r4, #2 mov r5, #1 mov r6, r8 - ldr r7, _037FD3DC ;@ =_03807F6C - mov sl, #84 ;@ 0x54 + ldr r7, _037FD3DC ; =_03807F6C + mov sl, #84 ; 0x54 _037FD214: mla r9, r8, sl, r7 ldrb r0, [r9, #3] @@ -6296,55 +6308,55 @@ _037FD23C: beq _037FD2F4 b _037FD374 _037FD270: - ldrb r0, [r9, #57] ;@ 0x39 + ldrb r0, [r9, #57] ; 0x39 cmp r0, #0 movne r3, r5 moveq r3, r4 - ldrh r1, [r9, #36] ;@ 0x24 - ldrh r0, [r9, #62] ;@ 0x3e + ldrh r1, [r9, #36] ; 0x24 + ldrh r0, [r9, #62] ; 0x3e str r0, [sp] - ldr r0, [r9, #64] ;@ 0x40 + ldr r0, [r9, #64] ; 0x40 str r0, [sp, #4] - and r0, r1, #255 ;@ 0xff + and r0, r1, #255 ; 0xff str r0, [sp, #8] mov r0, r1, asr #8 str r0, [sp, #12] - ldrh r0, [r9, #38] ;@ 0x26 + ldrh r0, [r9, #38] ; 0x26 str r0, [sp, #16] - ldrb r0, [r9, #35] ;@ 0x23 + ldrb r0, [r9, #35] ; 0x23 str r0, [sp, #20] mov r0, r8 - ldr r1, [r9, #68] ;@ 0x44 - ldrb r2, [r9, #56] ;@ 0x38 + ldr r1, [r9, #68] ; 0x44 + ldrb r2, [r9, #56] ; 0x38 bl FUN_037FBF88 b _037FD374 _037FD2C8: - ldrh r3, [r9, #36] ;@ 0x24 - ldrh r0, [r9, #38] ;@ 0x26 + ldrh r3, [r9, #36] ; 0x24 + ldrh r0, [r9, #38] ; 0x26 str r0, [sp] - ldrb r0, [r9, #35] ;@ 0x23 + ldrb r0, [r9, #35] ; 0x23 str r0, [sp, #4] mov r0, r8 - ldr r1, [r9, #68] ;@ 0x44 - and r2, r3, #255 ;@ 0xff + ldr r1, [r9, #68] ; 0x44 + and r2, r3, #255 ; 0xff mov r3, r3, asr #8 bl FUN_037FBED0 b _037FD374 _037FD2F4: - ldrh r2, [r9, #36] ;@ 0x24 - ldrb r0, [r9, #35] ;@ 0x23 + ldrh r2, [r9, #36] ; 0x24 + ldrb r0, [r9, #35] ; 0x23 str r0, [sp] mov r0, r8 - and r1, r2, #255 ;@ 0xff + and r1, r2, #255 ; 0xff mov r2, r2, asr #8 - ldrh r3, [r9, #38] ;@ 0x26 + ldrh r3, [r9, #38] ; 0x26 bl FUN_037FBE20 b _037FD374 _037FD318: ands r0, r1, #4 beq _037FD32C mov r0, r8 - ldrh r1, [r9, #38] ;@ 0x26 + ldrh r1, [r9, #38] ; 0x26 bl FUN_037FBD58 _037FD32C: ldrb r0, [r9, #3] @@ -6352,9 +6364,9 @@ _037FD32C: mov r0, r0, lsr #27 ands r0, r0, #8 beq _037FD354 - ldrh r2, [r9, #36] ;@ 0x24 + ldrh r2, [r9, #36] ; 0x24 mov r0, r8 - and r1, r2, #255 ;@ 0xff + and r1, r2, #255 ; 0xff mov r2, r2, asr #8 bl FUN_037FBD70 _037FD354: @@ -6364,15 +6376,15 @@ _037FD354: ands r0, r0, #16 beq _037FD374 mov r0, r8 - ldrb r1, [r9, #35] ;@ 0x23 + ldrb r1, [r9, #35] ; 0x23 bl FUN_037FBCDC _037FD374: add r8, r8, #1 cmp r8, #16 blt _037FD214 mov r5, #0 - ldr r3, _037FD3DC ;@ =_03807F6C - mov r1, #84 ;@ 0x54 + ldr r3, _037FD3DC ; =_03807F6C + mov r1, #84 ; 0x54 _037FD38C: mla r4, r5, r1, r3 ldrb r0, [r4, #3] @@ -6381,12 +6393,12 @@ _037FD38C: beq _037FD3C4 ands r0, r0, #1 movne r0, r5, lsl #4 - addne r0, r0, #67108864 ;@ 0x4000000 - ldrneb r2, [r0, #1027] ;@ 0x403 - orrne r2, r2, #128 ;@ 0x80 - strneb r2, [r0, #1027] ;@ 0x403 + addne r0, r0, #67108864 ; 0x4000000 + ldrneb r2, [r0, #1027] ; 0x403 + orrne r2, r2, #128 ; 0x80 + strneb r2, [r0, #1027] ; 0x403 ldrb r0, [r4, #3] - bic r0, r0, #248 ;@ 0xf8 + bic r0, r0, #248 ; 0xf8 strb r0, [r4, #3] _037FD3C4: add r5, r5, #1 @@ -6398,16 +6410,16 @@ _037FD3C4: _037FD3DC: .word _03807F6C arm_func_start FUN_037FD3E0 -FUN_037FD3E0: ;@ 0x037FD3E0 +FUN_037FD3E0: ; 0x037FD3E0 mov ip, #0 - ldr r2, _037FD434 ;@ =_03807F6C - mov r0, #84 ;@ 0x54 + ldr r2, _037FD434 ; =_03807F6C + mov r0, #84 ; 0x54 _037FD3EC: mul r1, ip, r0 add r3, r2, r1 strb ip, [r2, r1] ldrb r1, [r3, #3] - bic r1, r1, #248 ;@ 0xf8 + bic r1, r1, #248 ; 0xf8 strb r1, [r3, #3] ldrb r1, [r3, #3] bic r1, r1, #1 @@ -6416,9 +6428,9 @@ _037FD3EC: cmp ip, #16 blt _037FD3EC mov r1, #0 - ldr r0, _037FD438 ;@ =_03807F48 + ldr r0, _037FD438 ; =_03807F48 str r1, [r0] - ldr r0, _037FD43C ;@ =_03807F44 + ldr r0, _037FD43C ; =_03807F44 str r1, [r0] bx lr _037FD434: .word _03807F6C @@ -6426,7 +6438,7 @@ _037FD438: .word _03807F48 _037FD43C: .word _03807F44 arm_func_start FUN_037FD440 -FUN_037FD440: ;@ 0x037FD440 +FUN_037FD440: ; 0x037FD440 stmdb sp!, {r4, lr} mov r4, r0 cmp r2, #3 @@ -6457,7 +6469,7 @@ _037FD49C: ldrb r2, [r4] orr r2, r2, #4 strb r2, [r4] - mov r2, #127 ;@ 0x7f + mov r2, #127 ; 0x7f bl FUN_037FE588 mov r0, r4 bl FUN_037FE54C @@ -6466,9 +6478,9 @@ _037FD4B8: bx lr arm_func_start FUN_037FD4C0 -FUN_037FD4C0: ;@ 0x037FD4C0 +FUN_037FD4C0: ; 0x037FD4C0 mov r0, #0 - ldr r3, _037FD500 ;@ =_038086EC + ldr r3, _037FD500 ; =_038086EC b _037FD4F0 _037FD4CC: add ip, r3, r0, lsl #6 @@ -6488,27 +6500,27 @@ _037FD4F0: _037FD500: .word _038086EC arm_func_start FUN_037FD504 -FUN_037FD504: ;@ 0x037FD504 - ldr r2, _037FD544 ;@ =_03807F68 +FUN_037FD504: ; 0x037FD504 + ldr r2, _037FD544 ; =_03807F68 ldr r2, [r2] cmp r2, #0 moveq r0, #0 bxeq lr cmp r1, #16 - addge r2, r2, #608 ;@ 0x260 + addge r2, r2, #608 ; 0x260 subge r0, r1, #16 addge r0, r2, r0, lsl #1 bxge lr add r3, r2, #32 ldrb r2, [r0, #1] - mov r0, #36 ;@ 0x24 + mov r0, #36 ; 0x24 mla r0, r2, r0, r3 add r0, r0, r1, lsl #1 bx lr _037FD544: .word _03807F68 arm_func_start FUN_037FD548 -FUN_037FD548: ;@ 0x037FD548 +FUN_037FD548: ; 0x037FD548 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r8, r0 mov r7, r1 @@ -6521,7 +6533,7 @@ _037FD560: bl FUN_037FE460 cmp r0, #0 beq _037FD5A8 - ldr r1, [r0, #40] ;@ 0x28 + ldr r1, [r0, #40] ; 0x28 cmp r1, #0 beq _037FD5A8 mov r1, r8 @@ -6545,19 +6557,19 @@ _037FD5A8: bx lr arm_func_start FUN_037FD5C8 -FUN_037FD5C8: ;@ 0x037FD5C8 +FUN_037FD5C8: ; 0x037FD5C8 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - sub sp, sp, #52 ;@ 0x34 + sub sp, sp, #52 ; 0x34 mov r9, r0 mov r8, r1 str r3, [sp, #4] - ldr r2, [r9, #60] ;@ 0x3c + ldr r2, [r9, #60] ; 0x3c b _037FD61C _037FD5E4: - ldr r0, [r2, #52] ;@ 0x34 + ldr r0, [r2, #52] ; 0x34 cmp r0, #0 subgt r0, r0, #1 - strgt r0, [r2, #52] ;@ 0x34 + strgt r0, [r2, #52] ; 0x34 ldrb r0, [r2, #3] mov r0, r0, lsl #29 movs r0, r0, lsr #31 @@ -6568,7 +6580,7 @@ _037FD5E4: addlt r0, r1, #1 strlt r0, [r2, #20] _037FD618: - ldr r2, [r2, #80] ;@ 0x50 + ldr r2, [r2, #80] ; 0x50 _037FD61C: cmp r2, #0 bne _037FD5E4 @@ -6576,7 +6588,7 @@ _037FD61C: mov r0, r1, lsl #27 movs r0, r0, lsr #31 beq _037FD64C - ldr r0, [r9, #60] ;@ 0x3c + ldr r0, [r9, #60] ; 0x3c cmp r0, #0 movne r0, #0 bne _037FDF84 @@ -6593,17 +6605,17 @@ _037FD64C: movgt r0, #0 bgt _037FDF84 _037FD670: - ldr r0, [r9, #40] ;@ 0x28 + ldr r0, [r9, #40] ; 0x28 bl FUN_037FE9B8 - add r0, r9, #40 ;@ 0x28 + add r0, r9, #40 ; 0x28 str r0, [sp, #28] mov r0, #2 str r0, [sp, #32] - mov r0, #127 ;@ 0x7f - str r0, [sp, #36] ;@ 0x24 + mov r0, #127 ; 0x7f + str r0, [sp, #36] ; 0x24 mov fp, #0 mvn r0, #0 - str r0, [sp, #40] ;@ 0x28 + str r0, [sp, #40] ; 0x28 mov sl, #1 mov r0, #3 str r0, [sp, #20] @@ -6613,51 +6625,51 @@ _037FD670: _037FD6B4: mov r4, fp mov r6, sl - ldr r0, [r9, #40] ;@ 0x28 + ldr r0, [r9, #40] ; 0x28 bl FUN_037FE968 mov r7, r0 - ldr r0, [r9, #40] ;@ 0x28 + ldr r0, [r9, #40] ; 0x28 add r0, r0, #1 - str r0, [r9, #40] ;@ 0x28 - cmp r7, #162 ;@ 0xa2 + str r0, [r9, #40] ; 0x28 + cmp r7, #162 ; 0xa2 bne _037FD700 - ldr r0, [r9, #40] ;@ 0x28 + ldr r0, [r9, #40] ; 0x28 bl FUN_037FE968 mov r7, r0 - ldr r0, [r9, #40] ;@ 0x28 + ldr r0, [r9, #40] ; 0x28 add r0, r0, #1 - str r0, [r9, #40] ;@ 0x28 + str r0, [r9, #40] ; 0x28 ldrb r0, [r9] mov r0, r0, lsl #25 mov r6, r0, lsr #31 _037FD700: - cmp r7, #160 ;@ 0xa0 + cmp r7, #160 ; 0xa0 bne _037FD72C - ldr r0, [r9, #40] ;@ 0x28 + ldr r0, [r9, #40] ; 0x28 bl FUN_037FE968 mov r7, r0 - ldr r0, [r9, #40] ;@ 0x28 + ldr r0, [r9, #40] ; 0x28 add r0, r0, #1 - str r0, [r9, #40] ;@ 0x28 + str r0, [r9, #40] ; 0x28 ldr r0, [sp, #20] str r0, [sp, #8] mov r4, sl _037FD72C: - cmp r7, #161 ;@ 0xa1 + cmp r7, #161 ; 0xa1 bne _037FD758 - ldr r0, [r9, #40] ;@ 0x28 + ldr r0, [r9, #40] ; 0x28 bl FUN_037FE968 mov r7, r0 - ldr r0, [r9, #40] ;@ 0x28 + ldr r0, [r9, #40] ; 0x28 add r0, r0, #1 - str r0, [r9, #40] ;@ 0x28 + str r0, [r9, #40] ; 0x28 ldr r0, [sp, #24] str r0, [sp, #8] mov r4, sl _037FD758: - ands r0, r7, #128 ;@ 0x80 + ands r0, r7, #128 ; 0x80 bne _037FD82C - ldr r0, [r9, #40] ;@ 0x28 + ldr r0, [r9, #40] ; 0x28 bl FUN_037FE968 str r0, [sp, #12] ldr r0, [sp, #28] @@ -6679,8 +6691,8 @@ _037FD758: cmp r4, #0 movlt r4, fp blt _037FD7C0 - cmp r4, #127 ;@ 0x7f - ldrgt r4, [sp, #36] ;@ 0x24 + cmp r4, #127 ; 0x7f + ldrgt r4, [sp, #36] ; 0x24 _037FD7C0: ldrb r0, [r9] mov r0, r0, lsl #29 @@ -6691,7 +6703,7 @@ _037FD7C0: beq _037FD800 cmp r5, #0 movgt r0, r5 - ldrle r0, [sp, #40] ;@ 0x28 + ldrle r0, [sp, #40] ; 0x28 str r0, [sp] mov r0, r9 mov r1, r8 @@ -6711,32 +6723,32 @@ _037FD800: streqb r0, [r9] b _037FDF64 _037FD82C: - and r0, r7, #240 ;@ 0xf0 - cmp r0, #192 ;@ 0xc0 + and r0, r7, #240 ; 0xf0 + cmp r0, #192 ; 0xc0 bgt _037FD868 - cmp r0, #192 ;@ 0xc0 + cmp r0, #192 ; 0xc0 bge _037FD9B8 - cmp r0, #144 ;@ 0x90 + cmp r0, #144 ; 0x90 bgt _037FD85C - cmp r0, #144 ;@ 0x90 + cmp r0, #144 ; 0x90 bge _037FD8D8 - cmp r0, #128 ;@ 0x80 + cmp r0, #128 ; 0x80 beq _037FD890 b _037FDF64 _037FD85C: - cmp r0, #176 ;@ 0xb0 + cmp r0, #176 ; 0xb0 beq _037FDC68 b _037FDF64 _037FD868: - cmp r0, #224 ;@ 0xe0 + cmp r0, #224 ; 0xe0 bgt _037FD884 - cmp r0, #224 ;@ 0xe0 + cmp r0, #224 ; 0xe0 bge _037FDC14 - cmp r0, #208 ;@ 0xd0 + cmp r0, #208 ; 0xd0 beq _037FD9B8 b _037FDF64 _037FD884: - cmp r0, #240 ;@ 0xf0 + cmp r0, #240 ; 0xf0 beq _037FDEC0 b _037FDF64 _037FD890: @@ -6748,33 +6760,33 @@ _037FD890: bl FUN_037FE7B0 cmp r6, #0 beq _037FDF64 - cmp r7, #128 ;@ 0x80 + cmp r7, #128 ; 0x80 beq _037FD8C4 - cmp r7, #129 ;@ 0x81 + cmp r7, #129 ; 0x81 beq _037FD8CC b _037FDF64 _037FD8C4: str r0, [r9, #32] b _037FDF64 _037FD8CC: - cmp r0, #65536 ;@ 0x10000 + cmp r0, #65536 ; 0x10000 strlth r0, [r9, #2] b _037FDF64 _037FD8D8: - cmp r7, #147 ;@ 0x93 + cmp r7, #147 ; 0x93 beq _037FD8F4 - cmp r7, #148 ;@ 0x94 + cmp r7, #148 ; 0x94 beq _037FD958 - cmp r7, #149 ;@ 0x95 + cmp r7, #149 ; 0x95 beq _037FD974 b _037FDF64 _037FD8F4: - ldr r0, [r9, #40] ;@ 0x28 + ldr r0, [r9, #40] ; 0x28 bl FUN_037FE968 mov r4, r0 - ldr r0, [r9, #40] ;@ 0x28 + ldr r0, [r9, #40] ; 0x28 add r0, r0, #1 - str r0, [r9, #40] ;@ 0x28 + str r0, [r9, #40] ; 0x28 mov r0, r9 bl FUN_037FE8B8 mov r5, r0 @@ -6790,7 +6802,7 @@ _037FD8F4: mov r1, r8 bl FUN_037FE440 mov r0, r4 - ldr r1, [r9, #36] ;@ 0x24 + ldr r1, [r9, #36] ; 0x24 mov r2, r5 bl FUN_037FE6A8 b _037FDF64 @@ -6798,27 +6810,27 @@ _037FD958: mov r0, r9 bl FUN_037FE8B8 cmp r6, #0 - ldrne r1, [r9, #36] ;@ 0x24 + ldrne r1, [r9, #36] ; 0x24 addne r0, r1, r0 - strne r0, [r9, #40] ;@ 0x28 + strne r0, [r9, #40] ; 0x28 b _037FDF64 _037FD974: mov r0, r9 bl FUN_037FE8B8 cmp r6, #0 beq _037FDF64 - ldrb r1, [r9, #59] ;@ 0x3b + ldrb r1, [r9, #59] ; 0x3b cmp r1, #3 bcs _037FDF64 - ldr r2, [r9, #40] ;@ 0x28 + ldr r2, [r9, #40] ; 0x28 add r1, r9, r1, lsl #2 - str r2, [r1, #44] ;@ 0x2c - ldrb r1, [r9, #59] ;@ 0x3b + str r2, [r1, #44] ; 0x2c + ldrb r1, [r9, #59] ; 0x3b add r1, r1, #1 - strb r1, [r9, #59] ;@ 0x3b - ldr r1, [r9, #36] ;@ 0x24 + strb r1, [r9, #59] ; 0x3b + ldr r1, [r9, #36] ; 0x24 add r0, r1, r0 - str r0, [r9, #40] ;@ 0x28 + str r0, [r9, #40] ; 0x28 b _037FDF64 _037FD9B8: cmp r4, #0 @@ -6827,10 +6839,10 @@ _037FD9B8: mov r0, r9 mov r1, r8 bl FUN_037FE7B0 - strb r0, [sp, #44] ;@ 0x2c + strb r0, [sp, #44] ; 0x2c cmp r6, #0 beq _037FDF64 - sub r0, r7, #192 ;@ 0xc0 + sub r0, r7, #192 ; 0xc0 cmp r0, #23 addls pc, pc, r0, lsl #2 b _037FDF64 @@ -6859,94 +6871,94 @@ _037FD9B8: b _037FDBF4 b _037FDB7C _037FDA4C: - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c strb r0, [r9, #4] b _037FDF64 _037FDA58: - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c strb r0, [r9, #5] b _037FDF64 _037FDA64: - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c strb r0, [r8, #5] b _037FDF64 _037FDA70: - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c strb r0, [r9, #7] b _037FDF64 _037FDA7C: - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c strb r0, [r9, #18] b _037FDF64 _037FDA88: ldrb r0, [r9] bic r1, r0, #2 - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c and r0, r0, #1 orr r0, r1, r0, lsl #1 strb r0, [r9] b _037FDF64 _037FDAA4: - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c strb r0, [r9, #21] b _037FDF64 _037FDAB0: - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c strb r0, [r9, #26] b _037FDF64 _037FDABC: - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c strb r0, [r9, #25] b _037FDF64 _037FDAC8: - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c strb r0, [r9, #24] b _037FDF64 _037FDAD4: - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c strb r0, [r9, #27] b _037FDF64 _037FDAE0: - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c strb r0, [r9, #14] b _037FDF64 _037FDAEC: - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c strb r0, [r9, #15] b _037FDF64 _037FDAF8: - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c strb r0, [r9, #16] b _037FDF64 _037FDB04: - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c strb r0, [r9, #17] b _037FDF64 _037FDB10: - ldrb r0, [r9, #59] ;@ 0x3b + ldrb r0, [r9, #59] ; 0x3b cmp r0, #3 bcs _037FDF64 - ldr r1, [r9, #40] ;@ 0x28 + ldr r1, [r9, #40] ; 0x28 add r0, r9, r0, lsl #2 - str r1, [r0, #44] ;@ 0x2c - ldrb r1, [sp, #44] ;@ 0x2c - ldrb r0, [r9, #59] ;@ 0x3b + str r1, [r0, #44] ; 0x2c + ldrb r1, [sp, #44] ; 0x2c + ldrb r0, [r9, #59] ; 0x3b add r0, r9, r0 - strb r1, [r0, #56] ;@ 0x38 - ldrb r0, [r9, #59] ;@ 0x3b + strb r1, [r0, #56] ; 0x38 + ldrb r0, [r9, #59] ; 0x3b add r0, r0, #1 - strb r0, [r9, #59] ;@ 0x3b + strb r0, [r9, #59] ; 0x3b b _037FDF64 _037FDB48: ldrb r0, [r9] bic r1, r0, #8 - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c and r0, r0, #1 orr r0, r1, r0, lsl #3 strb r0, [r9] mov r0, r9 mov r1, r8 - ldr r2, [sp, #40] ;@ 0x28 + ldr r2, [sp, #40] ; 0x28 bl FUN_037FE588 mov r0, r9 bl FUN_037FE54C @@ -6954,11 +6966,11 @@ _037FDB48: _037FDB7C: mov r0, r9 mov r1, r8 - ldrb r2, [sp, #44] ;@ 0x2c + ldrb r2, [sp, #44] ; 0x2c bl FUN_037FD440 b _037FDF64 _037FDB90: - ldrb r1, [sp, #44] ;@ 0x2c + ldrb r1, [sp, #44] ; 0x2c ldrsb r0, [r9, #19] add r0, r1, r0 strb r0, [r9, #20] @@ -6969,31 +6981,31 @@ _037FDB90: _037FDBB0: ldrb r0, [r9] bic r1, r0, #32 - ldrb r0, [sp, #44] ;@ 0x2c + ldrb r0, [sp, #44] ; 0x2c and r0, r0, #1 orr r0, r1, r0, lsl #5 strb r0, [r9] b _037FDF64 _037FDBCC: - ldrsb r0, [sp, #44] ;@ 0x2c + ldrsb r0, [sp, #44] ; 0x2c strb r0, [r9, #19] b _037FDF64 _037FDBD8: - ldrsb r0, [sp, #44] ;@ 0x2c + ldrsb r0, [sp, #44] ; 0x2c strb r0, [r9, #6] b _037FDF64 _037FDBE4: - ldrb r0, [sp, #44] ;@ 0x2c - sub r0, r0, #64 ;@ 0x40 + ldrb r0, [sp, #44] ; 0x2c + sub r0, r0, #64 ; 0x40 strb r0, [r9, #8] b _037FDF64 _037FDBF4: - ldr r0, _037FDF90 ;@ =_03807F4C + ldr r0, _037FDF90 ; =_03807F4C ldr r0, [r0] cmp r0, #0 beq _037FDF64 mov r0, r8 - ldrb r1, [sp, #44] ;@ 0x2c + ldrb r1, [sp, #44] ; 0x2c bl FUN_037FD504 b _037FDF64 _037FDC14: @@ -7007,11 +7019,11 @@ _037FDC14: mov r0, r0, asr #16 cmp r6, #0 beq _037FDF64 - cmp r7, #224 ;@ 0xe0 + cmp r7, #224 ; 0xe0 beq _037FDC60 - cmp r7, #225 ;@ 0xe1 + cmp r7, #225 ; 0xe1 beq _037FDC58 - cmp r7, #227 ;@ 0xe3 + cmp r7, #227 ; 0xe3 streqh r0, [r9, #22] b _037FDF64 _037FDC58: @@ -7021,12 +7033,12 @@ _037FDC60: strh r0, [r9, #28] b _037FDF64 _037FDC68: - ldr r0, [r9, #40] ;@ 0x28 + ldr r0, [r9, #40] ; 0x28 bl FUN_037FE968 str r0, [sp, #16] - ldr r0, [r9, #40] ;@ 0x28 + ldr r0, [r9, #40] ; 0x28 add r0, r0, #1 - str r0, [r9, #40] ;@ 0x28 + str r0, [r9, #40] ; 0x28 cmp r4, #0 ldrne r2, [sp, #8] moveq r2, sl @@ -7043,7 +7055,7 @@ _037FDC68: beq _037FDF64 cmp r4, #0 beq _037FDF64 - sub r0, r7, #176 ;@ 0xb0 + sub r0, r7, #176 ; 0xb0 cmp r0, #13 addls pc, pc, r0, lsl #2 b _037FDF64 @@ -7118,8 +7130,8 @@ _037FDDB8: moveq r2, sl movne r2, fp ldrb r0, [r9] - bic r1, r0, #64 ;@ 0x40 - and r0, r2, #255 ;@ 0xff + bic r1, r0, #64 ; 0x40 + and r0, r2, #255 ; 0xff and r0, r0, #1 orr r0, r1, r0, lsl #6 strb r0, [r9] @@ -7130,8 +7142,8 @@ _037FDDE4: movge r2, sl movlt r2, fp ldrb r0, [r9] - bic r1, r0, #64 ;@ 0x40 - and r0, r2, #255 ;@ 0xff + bic r1, r0, #64 ; 0x40 + and r0, r2, #255 ; 0xff and r0, r0, #1 orr r0, r1, r0, lsl #6 strb r0, [r9] @@ -7142,8 +7154,8 @@ _037FDE10: movgt r2, sl movle r2, fp ldrb r0, [r9] - bic r1, r0, #64 ;@ 0x40 - and r0, r2, #255 ;@ 0xff + bic r1, r0, #64 ; 0x40 + and r0, r2, #255 ; 0xff and r0, r0, #1 orr r0, r1, r0, lsl #6 strb r0, [r9] @@ -7154,8 +7166,8 @@ _037FDE3C: movle r2, sl movgt r2, fp ldrb r0, [r9] - bic r1, r0, #64 ;@ 0x40 - and r0, r2, #255 ;@ 0xff + bic r1, r0, #64 ; 0x40 + and r0, r2, #255 ; 0xff and r0, r0, #1 orr r0, r1, r0, lsl #6 strb r0, [r9] @@ -7166,8 +7178,8 @@ _037FDE68: movlt r2, sl movge r2, fp ldrb r0, [r9] - bic r1, r0, #64 ;@ 0x40 - and r0, r2, #255 ;@ 0xff + bic r1, r0, #64 ; 0x40 + and r0, r2, #255 ; 0xff and r0, r0, #1 orr r0, r1, r0, lsl #6 strb r0, [r9] @@ -7178,8 +7190,8 @@ _037FDE94: movne r2, sl moveq r2, fp ldrb r0, [r9] - bic r1, r0, #64 ;@ 0x40 - and r0, r2, #255 ;@ 0xff + bic r1, r0, #64 ; 0x40 + and r0, r2, #255 ; 0xff and r0, r0, #1 orr r0, r1, r0, lsl #6 strb r0, [r9] @@ -7187,7 +7199,7 @@ _037FDE94: _037FDEC0: cmp r6, #0 beq _037FDF64 - sub r0, r7, #252 ;@ 0xfc + sub r0, r7, #252 ; 0xfc cmp r0, #3 addls pc, pc, r0, lsl #2 b _037FDF64 @@ -7196,36 +7208,36 @@ _037FDEC0: b _037FDF64 b _037FDF5C _037FDEE8: - ldrb r0, [r9, #59] ;@ 0x3b + ldrb r0, [r9, #59] ; 0x3b cmp r0, #0 beq _037FDF64 sub r0, r0, #1 - strb r0, [r9, #59] ;@ 0x3b - ldrb r0, [r9, #59] ;@ 0x3b + strb r0, [r9, #59] ; 0x3b + ldrb r0, [r9, #59] ; 0x3b add r0, r9, r0, lsl #2 - ldr r0, [r0, #44] ;@ 0x2c - str r0, [r9, #40] ;@ 0x28 + ldr r0, [r0, #44] ; 0x2c + str r0, [r9, #40] ; 0x28 b _037FDF64 _037FDF10: - ldrb r0, [r9, #59] ;@ 0x3b + ldrb r0, [r9, #59] ; 0x3b cmp r0, #0 beq _037FDF64 sub r1, r0, #1 add r2, r9, r1 - ldrb r0, [r2, #56] ;@ 0x38 + ldrb r0, [r2, #56] ; 0x38 cmp r0, #0 beq _037FDF40 sub r0, r0, #1 - ands r0, r0, #255 ;@ 0xff - streqb r1, [r9, #59] ;@ 0x3b + ands r0, r0, #255 ; 0xff + streqb r1, [r9, #59] ; 0x3b beq _037FDF64 _037FDF40: - strb r0, [r2, #56] ;@ 0x38 - ldrb r0, [r9, #59] ;@ 0x3b + strb r0, [r2, #56] ; 0x38 + ldrb r0, [r9, #59] ; 0x3b sub r0, r0, #1 add r0, r9, r0, lsl #2 - ldr r0, [r0, #44] ;@ 0x2c - str r0, [r9, #40] ;@ 0x28 + ldr r0, [r0, #44] ; 0x2c + str r0, [r9, #40] ; 0x28 b _037FDF64 _037FDF5C: mvn r0, #0 @@ -7241,13 +7253,13 @@ _037FDF64: _037FDF80: mov r0, #0 _037FDF84: - add sp, sp, #52 ;@ 0x34 + add sp, sp, #52 ; 0x34 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _037FDF90: .word _03807F4C arm_func_start FUN_037FDF94 -FUN_037FDF94: ;@ 0x037FDF94 +FUN_037FDF94: ; 0x037FDF94 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #24 mov r8, r0 @@ -7259,7 +7271,7 @@ FUN_037FDF94: ;@ 0x037FDF94 mov r0, r0, lsl #28 movs r0, r0, lsr #31 beq _037FDFD0 - ldr r4, [r8, #60] ;@ 0x3c + ldr r4, [r8, #60] ; 0x3c cmp r4, #0 strneb r6, [r4, #8] strneb r5, [r4, #9] @@ -7283,13 +7295,13 @@ _037FDFD0: b _037FE028 b _037FE018 _037FE018: - ldr r1, _037FE198 ;@ =0x0000FFFF + ldr r1, _037FE198 ; =0x0000FFFF b _037FE034 _037FE020: - mov r1, #16128 ;@ 0x3f00 + mov r1, #16128 ; 0x3f00 b _037FE034 _037FE028: - mov r1, #49152 ;@ 0xc000 + mov r1, #49152 ; 0xc000 b _037FE034 _037FE030: b _037FE18C @@ -7303,7 +7315,7 @@ _037FE034: ldrb r2, [r8] mov r2, r2, lsl #24 mov r2, r2, lsr #31 - ldr r3, _037FE19C ;@ =FUN_037FE344 + ldr r3, _037FE19C ; =FUN_037FE344 bl FUN_037FCB94 movs r4, r0 beq _037FE18C @@ -7311,7 +7323,7 @@ _037FE034: mov r0, r0, lsl #28 movs r0, r0, lsr #31 mvnne r3, #0 - ldreq r3, [sp, #48] ;@ 0x30 + ldreq r3, [sp, #48] ; 0x30 ldr r0, [r7, #32] str r0, [sp] add r0, sp, #8 @@ -7323,56 +7335,56 @@ _037FE034: cmp r0, #0 bne _037FE0B8 mov r0, #0 - strb r0, [r4, #34] ;@ 0x22 + strb r0, [r4, #34] ; 0x22 mov r0, r4 bl FUN_037FCB80 b _037FE18C _037FE0B8: - ldr r0, [r8, #60] ;@ 0x3c - str r0, [r4, #80] ;@ 0x50 - str r4, [r8, #60] ;@ 0x3c + ldr r0, [r8, #60] ; 0x3c + str r0, [r4, #80] ; 0x50 + str r4, [r8, #60] ; 0x3c _037FE0C4: ldrb r1, [r8, #14] - cmp r1, #255 ;@ 0xff + cmp r1, #255 ; 0xff beq _037FE0D8 mov r0, r4 bl FUN_037FCD28 _037FE0D8: ldrb r1, [r8, #15] - cmp r1, #255 ;@ 0xff + cmp r1, #255 ; 0xff beq _037FE0EC mov r0, r4 bl FUN_037FCD0C _037FE0EC: ldrb r1, [r8, #16] - cmp r1, #255 ;@ 0xff + cmp r1, #255 ; 0xff beq _037FE100 mov r0, r4 bl FUN_037FCD04 _037FE100: ldrb r1, [r8, #17] - cmp r1, #255 ;@ 0xff + cmp r1, #255 ; 0xff beq _037FE114 mov r0, r4 bl FUN_037FCCE8 _037FE114: ldrsh r0, [r8, #22] - strh r0, [r4, #50] ;@ 0x32 + strh r0, [r4, #50] ; 0x32 ldrb r0, [r8] mov r0, r0, lsl #26 movs r0, r0, lsr #31 beq _037FE144 - ldrsh r1, [r4, #50] ;@ 0x32 + ldrsh r1, [r4, #50] ; 0x32 ldrb r0, [r8, #20] sub r0, r0, r6 mov r0, r0, lsl #22 add r0, r1, r0, asr #16 - strh r0, [r4, #50] ;@ 0x32 + strh r0, [r4, #50] ; 0x32 _037FE144: ldrb r0, [r8, #21] cmp r0, #0 bne _037FE168 - ldr r0, [sp, #48] ;@ 0x30 + ldr r0, [sp, #48] ; 0x30 str r0, [r4, #24] ldrb r0, [r4, #3] bic r0, r0, #4 @@ -7380,7 +7392,7 @@ _037FE144: b _037FE184 _037FE168: mul r1, r0, r0 - ldrsh r0, [r4, #50] ;@ 0x32 + ldrsh r0, [r4, #50] ; 0x32 cmp r0, #0 rsblt r0, r0, #0 mul r0, r1, r0 @@ -7397,7 +7409,7 @@ _037FE198: .word 0x0000FFFF _037FE19C: .word FUN_037FE344 arm_func_start FUN_037FE1A0 -FUN_037FE1A0: ;@ 0x037FE1A0 +FUN_037FE1A0: ; 0x037FE1A0 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, #0 @@ -7419,14 +7431,14 @@ _037FE1D0: bx lr arm_func_start FUN_037FE1E4 -FUN_037FE1E4: ;@ 0x037FE1E4 +FUN_037FE1E4: ; 0x037FE1E4 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov sl, r0 mov fp, r2 ldrb r0, [r1, #5] mov r0, r0, lsl #1 - ldr r4, _037FE340 ;@ =_03807194 + ldr r4, _037FE340 ; =_03807194 ldrsh r3, [r4, r0] ldrb r0, [sl, #4] mov r0, r0, lsl #1 @@ -7447,28 +7459,28 @@ FUN_037FE1E4: ;@ 0x037FE1E4 add r0, r0, r1, asr #7 ldrsb r1, [sl, #8] ldrb r4, [sl, #1] - cmp r4, #127 ;@ 0x7f + cmp r4, #127 ; 0x7f mulne r4, r1, r4 - addne r1, r4, #64 ;@ 0x40 + addne r1, r4, #64 ; 0x40 movne r1, r1, asr #7 ldrsb r4, [sl, #9] add r1, r1, r4 - mov r4, #32768 ;@ 0x8000 + mov r4, #32768 ; 0x8000 rsb r4, r4, #0 cmp r3, r4 movlt r3, r4 - mov r4, #32768 ;@ 0x8000 + mov r4, #32768 ; 0x8000 rsb r4, r4, #0 cmp r2, r4 movlt r2, r4 - mvn r4, #127 ;@ 0x7f + mvn r4, #127 ; 0x7f cmp r1, r4 movlt r1, r4 blt _037FE2A0 - cmp r1, #127 ;@ 0x7f - movgt r1, #127 ;@ 0x7f + cmp r1, #127 ; 0x7f + movgt r1, #127 ; 0x7f _037FE2A0: - ldr r9, [sl, #60] ;@ 0x3c + ldr r9, [sl, #60] ; 0x3c mov r4, #1 mov r3, r3, lsl #16 mov r7, r3, asr #16 @@ -7490,21 +7502,21 @@ _037FE2CC: ldrb r0, [sl, #1] strb r0, [r9, #4] ldrh r0, [sl, #24] - strh r0, [r9, #40] ;@ 0x28 + strh r0, [r9, #40] ; 0x28 ldrh r0, [sl, #26] - strh r0, [r9, #42] ;@ 0x2a + strh r0, [r9, #42] ; 0x2a ldrh r0, [sl, #28] - strh r0, [r9, #44] ;@ 0x2c - ldr r0, [r9, #52] ;@ 0x34 + strh r0, [r9, #44] ; 0x2c + ldr r0, [r9, #52] ; 0x34 cmp r0, #0 bne _037FE328 cmp fp, #0 beq _037FE328 - strb r4, [r9, #34] ;@ 0x22 + strb r4, [r9, #34] ; 0x22 mov r0, r9 bl FUN_037FCCDC _037FE328: - ldr r9, [r9, #80] ;@ 0x50 + ldr r9, [r9, #80] ; 0x50 _037FE32C: cmp r9, #0 bne _037FE2CC @@ -7514,7 +7526,7 @@ _037FE32C: _037FE340: .word _03807194 arm_func_start FUN_037FE344 -FUN_037FE344: ;@ 0x037FE344 +FUN_037FE344: ; 0x037FE344 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -7522,23 +7534,23 @@ FUN_037FE344: ;@ 0x037FE344 cmp r1, #1 bne _037FE368 mov r1, #0 - strb r1, [r5, #34] ;@ 0x22 + strb r1, [r5, #34] ; 0x22 bl FUN_037FCB80 _037FE368: - ldr r1, [r4, #60] ;@ 0x3c + ldr r1, [r4, #60] ; 0x3c cmp r1, r5 - ldreq r0, [r5, #80] ;@ 0x50 - streq r0, [r4, #60] ;@ 0x3c + ldreq r0, [r5, #80] ; 0x50 + streq r0, [r4, #60] ; 0x3c beq _037FE3A0 b _037FE394 _037FE380: cmp r0, r5 - ldreq r0, [r5, #80] ;@ 0x50 - streq r0, [r1, #80] ;@ 0x50 + ldreq r0, [r5, #80] ; 0x50 + streq r0, [r1, #80] ; 0x50 beq _037FE3A0 mov r1, r0 _037FE394: - ldr r0, [r1, #80] ;@ 0x50 + ldr r0, [r1, #80] ; 0x50 cmp r0, #0 bne _037FE380 _037FE3A0: @@ -7547,7 +7559,7 @@ _037FE3A0: bx lr arm_func_start FUN_037FE3AC -FUN_037FE3AC: ;@ 0x037FE3AC +FUN_037FE3AC: ; 0x037FE3AC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -7567,7 +7579,7 @@ _037FE3BC: bx lr arm_func_start FUN_037FE3EC -FUN_037FE3EC: ;@ 0x037FE3EC +FUN_037FE3EC: ; 0x037FE3EC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -7578,12 +7590,12 @@ FUN_037FE3EC: ;@ 0x037FE3EC mov r1, r5 bl FUN_037FE440 add r3, r5, #8 - ldr r2, _037FE43C ;@ =_038086EC + ldr r2, _037FE43C ; =_038086EC ldrb r1, [r3, r4] ldrb r0, [r2, r1, lsl #6] bic r0, r0, #1 strb r0, [r2, r1, lsl #6] - mov r0, #255 ;@ 0xff + mov r0, #255 ; 0xff strb r0, [r3, r4] _037FE430: add sp, sp, #4 @@ -7592,7 +7604,7 @@ _037FE430: _037FE43C: .word _038086EC arm_func_start FUN_037FE440 -FUN_037FE440: ;@ 0x037FE440 +FUN_037FE440: ; 0x037FE440 stmdb sp!, {r4, lr} mov r4, r0 mvn r2, #0 @@ -7603,21 +7615,21 @@ FUN_037FE440: ;@ 0x037FE440 bx lr arm_func_start FUN_037FE460 -FUN_037FE460: ;@ 0x037FE460 +FUN_037FE460: ; 0x037FE460 cmp r1, #15 movgt r0, #0 bxgt lr add r0, r0, r1 ldrb r1, [r0, #8] - cmp r1, #255 ;@ 0xff + cmp r1, #255 ; 0xff moveq r0, #0 - ldrne r0, _037FE488 ;@ =_038086EC + ldrne r0, _037FE488 ; =_038086EC addne r0, r0, r1, lsl #6 bx lr _037FE488: .word _038086EC arm_func_start FUN_037FE48C -FUN_037FE48C: ;@ 0x037FE48C +FUN_037FE48C: ; 0x037FE48C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r6, r0 @@ -7626,12 +7638,12 @@ FUN_037FE48C: ;@ 0x037FE48C b _037FE4B4 _037FE4A4: ldrh r0, [r1] - sub r0, r0, #240 ;@ 0xf0 + sub r0, r0, #240 ; 0xf0 strh r0, [r1] add r5, r5, #1 _037FE4B4: ldrh r0, [r6, #28] - cmp r0, #240 ;@ 0xf0 + cmp r0, #240 ; 0xf0 bcs _037FE4A4 mov r4, #0 mov r7, #1 @@ -7651,13 +7663,13 @@ _037FE4F0: cmp r4, r5 blt _037FE4CC _037FE4F8: - ldr r0, _037FE548 ;@ =_03807F68 + ldr r0, _037FE548 ; =_03807F68 ldr r0, [r0] cmp r0, #0 beq _037FE524 - add r3, r0, #64 ;@ 0x40 + add r3, r0, #64 ; 0x40 ldrb r1, [r6, #1] - mov r0, #36 ;@ 0x24 + mov r0, #36 ; 0x24 mul r2, r1, r0 ldr r0, [r3, r2] add r0, r0, r4 @@ -7675,35 +7687,35 @@ _037FE524: _037FE548: .word _03807F68 arm_func_start FUN_037FE54C -FUN_037FE54C: ;@ 0x037FE54C +FUN_037FE54C: ; 0x037FE54C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 - ldr r4, [r5, #60] ;@ 0x3c + ldr r4, [r5, #60] ; 0x3c b _037FE56C _037FE560: mov r0, r4 bl FUN_037FCB80 - ldr r4, [r4, #80] ;@ 0x50 + ldr r4, [r4, #80] ; 0x50 _037FE56C: cmp r4, #0 bne _037FE560 mov r0, #0 - str r0, [r5, #60] ;@ 0x3c + str r0, [r5, #60] ; 0x3c add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start FUN_037FE588 -FUN_037FE588: ;@ 0x037FE588 +FUN_037FE588: ; 0x037FE588 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r4, r0 mov r7, r2 mov r2, #0 bl FUN_037FE1E4 - ldr r6, [r4, #60] ;@ 0x3c - and r5, r7, #255 ;@ 0xff + ldr r6, [r4, #60] ; 0x3c + and r5, r7, #255 ; 0xff mov r4, #1 b _037FE5E4 _037FE5B0: @@ -7717,11 +7729,11 @@ _037FE5B0: mov r1, r5 bl FUN_037FCCE8 _037FE5D4: - strb r4, [r6, #34] ;@ 0x22 + strb r4, [r6, #34] ; 0x22 mov r0, r6 bl FUN_037FCCDC _037FE5E0: - ldr r6, [r6, #80] ;@ 0x50 + ldr r6, [r6, #80] ; 0x50 _037FE5E4: cmp r6, #0 bne _037FE5B0 @@ -7730,40 +7742,40 @@ _037FE5E4: bx lr arm_func_start FUN_037FE5F8 -FUN_037FE5F8: ;@ 0x037FE5F8 +FUN_037FE5F8: ; 0x037FE5F8 stmdb sp!, {r4, lr} ldrb r2, [r0] bic r2, r2, #4 strb r2, [r0] str r1, [r0, #32] - mov r1, #120 ;@ 0x78 + mov r1, #120 ; 0x78 strh r1, [r0, #24] - mov r1, #256 ;@ 0x100 + mov r1, #256 ; 0x100 strh r1, [r0, #26] - mov r1, #240 ;@ 0xf0 + mov r1, #240 ; 0xf0 strh r1, [r0, #28] - mov r1, #127 ;@ 0x7f + mov r1, #127 ; 0x7f strb r1, [r0, #5] mov r3, #0 strh r3, [r0, #6] - mov r1, #64 ;@ 0x40 + mov r1, #64 ; 0x40 strb r1, [r0, #4] - mov r2, #255 ;@ 0xff + mov r2, #255 ; 0xff _037FE640: add r1, r0, r3 strb r2, [r1, #8] add r3, r3, #1 cmp r3, #16 blt _037FE640 - ldr r2, _037FE6A4 ;@ =_03807F68 + ldr r2, _037FE6A4 ; =_03807F68 ldr r3, [r2] cmp r3, #0 beq _037FE69C mov r4, #0 ldrb ip, [r0, #1] - mov r1, #36 ;@ 0x24 + mov r1, #36 ; 0x24 mla r3, ip, r1, r3 - str r4, [r3, #64] ;@ 0x40 + str r4, [r3, #64] ; 0x40 mvn lr, #0 _037FE67C: ldr r3, [r2] @@ -7780,20 +7792,20 @@ _037FE69C: _037FE6A4: .word _03807F68 arm_func_start FUN_037FE6A8 -FUN_037FE6A8: ;@ 0x037FE6A8 - str r1, [r0, #36] ;@ 0x24 - ldr r1, [r0, #36] ;@ 0x24 +FUN_037FE6A8: ; 0x037FE6A8 + str r1, [r0, #36] ; 0x24 + ldr r1, [r0, #36] ; 0x24 add r1, r1, r2 - str r1, [r0, #40] ;@ 0x28 + str r1, [r0, #40] ; 0x28 bx lr arm_func_start FUN_037FE6BC -FUN_037FE6BC: ;@ 0x037FE6BC +FUN_037FE6BC: ; 0x037FE6BC stmdb sp!, {r4, lr} mov r4, r0 mov r0, #0 - str r0, [r4, #36] ;@ 0x24 - str r0, [r4, #40] ;@ 0x28 + str r0, [r4, #36] ; 0x24 + str r0, [r4, #40] ; 0x28 ldrb r1, [r4] orr r1, r1, #2 strb r1, [r4] @@ -7810,16 +7822,16 @@ FUN_037FE6BC: ;@ 0x037FE6BC bic r1, r1, #32 strb r1, [r4] ldrb r1, [r4] - orr r1, r1, #64 ;@ 0x40 + orr r1, r1, #64 ; 0x40 strb r1, [r4] ldrb r1, [r4] - bic r1, r1, #128 ;@ 0x80 + bic r1, r1, #128 ; 0x80 strb r1, [r4] - strb r0, [r4, #59] ;@ 0x3b + strb r0, [r4, #59] ; 0x3b strh r0, [r4, #2] - mov r1, #64 ;@ 0x40 + mov r1, #64 ; 0x40 strb r1, [r4, #18] - mov r2, #127 ;@ 0x7f + mov r2, #127 ; 0x7f strb r2, [r4, #4] strb r2, [r4, #5] strh r0, [r4, #10] @@ -7827,7 +7839,7 @@ FUN_037FE6BC: ;@ 0x037FE6BC strb r0, [r4, #9] strb r0, [r4, #6] strh r0, [r4, #12] - mov r1, #255 ;@ 0xff + mov r1, #255 ; 0xff strb r1, [r4, #14] strb r1, [r4, #15] strb r1, [r4, #16] @@ -7835,24 +7847,24 @@ FUN_037FE6BC: ;@ 0x037FE6BC strb r2, [r4, #1] mov r1, #2 strb r1, [r4, #7] - mov r1, #60 ;@ 0x3c + mov r1, #60 ; 0x3c strb r1, [r4, #20] strb r0, [r4, #21] strh r0, [r4, #22] strb r0, [r4, #19] - ldr r0, _037FE7AC ;@ =0x0000FFFF + ldr r0, _037FE7AC ; =0x0000FFFF strh r0, [r4, #30] add r0, r4, #24 bl FUN_037FC8B8 mov r0, #0 str r0, [r4, #32] - str r0, [r4, #60] ;@ 0x3c + str r0, [r4, #60] ; 0x3c ldmia sp!, {r4, lr} bx lr _037FE7AC: .word 0x0000FFFF arm_func_start FUN_037FE7B0 -FUN_037FE7B0: ;@ 0x037FE7B0 +FUN_037FE7B0: ; 0x037FE7B0 stmdb sp!, {r4, r5, r6, lr} mov r4, r0 mov r6, r1 @@ -7865,12 +7877,12 @@ FUN_037FE7B0: ;@ 0x037FE7B0 b _037FE83C b _037FE810 _037FE7DC: - ldr r0, [r4, #40] ;@ 0x28 + ldr r0, [r4, #40] ; 0x28 bl FUN_037FE968 mov r5, r0 - ldr r0, [r4, #40] ;@ 0x28 + ldr r0, [r4, #40] ; 0x28 add r0, r0, #1 - str r0, [r4, #40] ;@ 0x28 + str r0, [r4, #40] ; 0x28 b _037FE86C _037FE7F8: bl FUN_037FE918 @@ -7881,12 +7893,12 @@ _037FE804: mov r5, r0 b _037FE86C _037FE810: - ldr r0, [r4, #40] ;@ 0x28 + ldr r0, [r4, #40] ; 0x28 bl FUN_037FE968 mov r1, r0 - ldr r0, [r4, #40] ;@ 0x28 + ldr r0, [r4, #40] ; 0x28 add r0, r0, #1 - str r0, [r4, #40] ;@ 0x28 + str r0, [r4, #40] ; 0x28 mov r0, r6 bl FUN_037FD504 cmp r0, #0 @@ -7911,68 +7923,68 @@ _037FE86C: bx lr arm_func_start FUN_037FE878 -FUN_037FE878: ;@ 0x037FE878 +FUN_037FE878: ; 0x037FE878 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, #0 - add r4, r6, #40 ;@ 0x28 + add r4, r6, #40 ; 0x28 _037FE888: - ldr r0, [r6, #40] ;@ 0x28 + ldr r0, [r6, #40] ; 0x28 bl FUN_037FE968 ldr r1, [r4] add r1, r1, #1 str r1, [r4] - and r1, r0, #127 ;@ 0x7f + and r1, r0, #127 ; 0x7f orr r5, r1, r5, lsl #7 - ands r0, r0, #128 ;@ 0x80 + ands r0, r0, #128 ; 0x80 bne _037FE888 mov r0, r5 ldmia sp!, {r4, r5, r6, lr} bx lr arm_func_start FUN_037FE8B8 -FUN_037FE8B8: ;@ 0x037FE8B8 +FUN_037FE8B8: ; 0x037FE8B8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 - ldr r0, [r4, #40] ;@ 0x28 + ldr r0, [r4, #40] ; 0x28 bl FUN_037FE968 mov r5, r0 - ldr r0, [r4, #40] ;@ 0x28 + ldr r0, [r4, #40] ; 0x28 add r0, r0, #1 - str r0, [r4, #40] ;@ 0x28 - ldr r0, [r4, #40] ;@ 0x28 + str r0, [r4, #40] ; 0x28 + ldr r0, [r4, #40] ; 0x28 bl FUN_037FE968 - ldr r1, [r4, #40] ;@ 0x28 + ldr r1, [r4, #40] ; 0x28 add r1, r1, #1 - str r1, [r4, #40] ;@ 0x28 + str r1, [r4, #40] ; 0x28 orr r5, r5, r0, lsl #8 - ldr r0, [r4, #40] ;@ 0x28 + ldr r0, [r4, #40] ; 0x28 bl FUN_037FE968 - ldr r1, [r4, #40] ;@ 0x28 + ldr r1, [r4, #40] ; 0x28 add r1, r1, #1 - str r1, [r4, #40] ;@ 0x28 + str r1, [r4, #40] ; 0x28 orr r0, r5, r0, lsl #16 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start FUN_037FE918 -FUN_037FE918: ;@ 0x037FE918 +FUN_037FE918: ; 0x037FE918 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 - ldr r0, [r5, #40] ;@ 0x28 + ldr r0, [r5, #40] ; 0x28 bl FUN_037FE968 mov r4, r0 - ldr r0, [r5, #40] ;@ 0x28 + ldr r0, [r5, #40] ; 0x28 add r0, r0, #1 - str r0, [r5, #40] ;@ 0x28 - ldr r0, [r5, #40] ;@ 0x28 + str r0, [r5, #40] ; 0x28 + ldr r0, [r5, #40] ; 0x28 bl FUN_037FE968 - ldr r1, [r5, #40] ;@ 0x28 + ldr r1, [r5, #40] ; 0x28 add r1, r1, #1 - str r1, [r5, #40] ;@ 0x28 + str r1, [r5, #40] ; 0x28 orr r0, r4, r0, lsl #8 mov r0, r0, lsl #16 mov r0, r0, lsr #16 @@ -7981,10 +7993,10 @@ FUN_037FE918: ;@ 0x037FE918 bx lr arm_func_start FUN_037FE968 -FUN_037FE968: ;@ 0x037FE968 +FUN_037FE968: ; 0x037FE968 stmdb sp!, {r4, lr} mov r4, r0 - ldr r0, _037FE9B0 ;@ =_03807F50 + ldr r0, _037FE9B0 ; =_03807F50 ldr r1, [r0] cmp r4, r1 bcc _037FE98C @@ -7995,10 +8007,10 @@ _037FE98C: mov r0, r4 bl FUN_037FE9B8 _037FE994: - ldr r0, _037FE9B0 ;@ =_03807F50 + ldr r0, _037FE9B0 ; =_03807F50 ldr r0, [r0] sub r1, r4, r0 - ldr r0, _037FE9B4 ;@ =_03807F58 + ldr r0, _037FE9B4 ; =_03807F58 ldrb r0, [r0, r1] ldmia sp!, {r4, lr} bx lr @@ -8006,9 +8018,9 @@ _037FE9B0: .word _03807F50 _037FE9B4: .word _03807F58 arm_func_start FUN_037FE9B8 -FUN_037FE9B8: ;@ 0x037FE9B8 +FUN_037FE9B8: ; 0x037FE9B8 bic r2, r0, #3 - ldr r0, _037FE9F0 ;@ =_03807F50 + ldr r0, _037FE9F0 ; =_03807F50 str r2, [r0] add r1, r2, #16 str r1, [r0, #4] @@ -8024,20 +8036,20 @@ FUN_037FE9B8: ;@ 0x037FE9B8 _037FE9F0: .word _03807F50 arm_func_start FUN_037FE9F4 -FUN_037FE9F4: ;@ 0x037FE9F4 +FUN_037FE9F4: ; 0x037FE9F4 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov sl, r1 mov r9, r2 mov r8, r3 - ldr r7, [sp, #40] ;@ 0x28 - ldr r2, _037FEA94 ;@ =_038084AC - mov r1, #36 ;@ 0x24 + ldr r7, [sp, #40] ; 0x28 + ldr r2, _037FEA94 ; =_038084AC + mov r1, #36 ; 0x24 mla fp, r0, r1, r2 mov r6, #0 mov r0, r8, lsl #16 mov r4, r0, lsr #16 - and r5, r8, #255 ;@ 0xff + and r5, r8, #255 ; 0xff b _037FEA78 _037FEA2C: ands r0, sl, #1 @@ -8074,11 +8086,11 @@ _037FEA88: _037FEA94: .word _038084AC arm_func_start FUN_037FEA98 -FUN_037FEA98: ;@ 0x037FEA98 +FUN_037FEA98: ; 0x037FEA98 stmfd sp!, {lr} sub sp, sp, #4 - ldr lr, _037FEAE0 ;@ =_038084AC - mov ip, #36 ;@ 0x24 + ldr lr, _037FEAE0 ; =_038084AC + mov ip, #36 ; 0x24 mla ip, r0, ip, lr cmp r3, #1 beq _037FEAC8 @@ -8099,13 +8111,13 @@ _037FEAD4: _037FEAE0: .word _038084AC arm_func_start FUN_037FEAE4 -FUN_037FEAE4: ;@ 0x037FEAE4 +FUN_037FEAE4: ; 0x037FEAE4 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r7, r0 mov r6, r1 mov r5, #0 - ldr r4, _037FEB40 ;@ =_038084AC - mov r8, #36 ;@ 0x24 + ldr r4, _037FEB40 ; =_038084AC + mov r8, #36 ; 0x24 _037FEAFC: mul r1, r5, r8 add r0, r4, r1 @@ -8128,15 +8140,15 @@ _037FEB2C: _037FEB40: .word _038084AC arm_func_start FUN_037FEB44 -FUN_037FEB44: ;@ 0x037FEB44 +FUN_037FEB44: ; 0x037FEB44 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov sl, r0 mov r9, r1 mov r7, #0 mov r5, r7 - ldr fp, _037FEBDC ;@ =_038084AC - mov r4, #36 ;@ 0x24 + ldr fp, _037FEBDC ; =_038084AC + mov r4, #36 ; 0x24 _037FEB64: mul r0, r7, r4 add r8, fp, r0 @@ -8152,7 +8164,7 @@ _037FEB84: bl FUN_037FE460 cmp r0, #0 beq _037FEBB8 - ldr r0, [r0, #40] ;@ 0x28 + ldr r0, [r0, #40] ; 0x28 cmp sl, r0 bhi _037FEBB8 cmp r0, r9 @@ -8175,12 +8187,12 @@ _037FEBC4: _037FEBDC: .word _038084AC arm_func_start FUN_037FEBE0 -FUN_037FEBE0: ;@ 0x037FEBE0 +FUN_037FEBE0: ; 0x037FEBE0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r6, r1 - ldr r3, _037FEC54 ;@ =_038084AC - mov r1, #36 ;@ 0x24 + ldr r3, _037FEC54 ; =_038084AC + mov r1, #36 ; 0x24 mla r5, r0, r1, r3 mov r4, #0 mov r0, r2, lsl #16 @@ -8195,7 +8207,7 @@ _037FEC08: cmp r0, #0 strneh r7, [r0, #30] ldrneb r1, [r0] - orrne r1, r1, #128 ;@ 0x80 + orrne r1, r1, #128 ; 0x80 strneb r1, [r0] _037FEC30: add r4, r4, #1 @@ -8212,13 +8224,13 @@ _037FEC48: _037FEC54: .word _038084AC arm_func_start FUN_037FEC58 -FUN_037FEC58: ;@ 0x037FEC58 +FUN_037FEC58: ; 0x037FEC58 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r1 mov r6, r2 - ldr r2, _037FECC8 ;@ =_038084AC - mov r1, #36 ;@ 0x24 + ldr r2, _037FECC8 ; =_038084AC + mov r1, #36 ; 0x24 mla r5, r0, r1, r2 mov r4, #0 b _037FECAC @@ -8248,14 +8260,14 @@ _037FECBC: _037FECC8: .word _038084AC arm_func_start FUN_037FECCC -FUN_037FECCC: ;@ 0x037FECCC +FUN_037FECCC: ; 0x037FECCC stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r6, r1 - ldr r2, _037FED90 ;@ =_038084AC - mov r1, #36 ;@ 0x24 + ldr r2, _037FED90 ; =_038084AC + mov r1, #36 ; 0x24 mla r5, r0, r1, r2 mov r8, #0 - mov r4, #127 ;@ 0x7f + mov r4, #127 ; 0x7f _037FECE8: mov r0, r5 mov r1, r8 @@ -8291,13 +8303,13 @@ _037FED50: bcc _037FED2C _037FED58: bl FUN_037FC3B0 - ldr r0, _037FED94 ;@ =_03807F68 + ldr r0, _037FED94 ; =_03807F68 ldr r0, [r0] cmp r0, #0 beq _037FED88 - add r3, r0, #64 ;@ 0x40 + add r3, r0, #64 ; 0x40 ldrb r1, [r5, #1] - mov r0, #36 ;@ 0x24 + mov r0, #36 ; 0x24 mul r2, r1, r0 ldr r0, [r3, r2] add r0, r0, r4 @@ -8309,23 +8321,23 @@ _037FED90: .word _038084AC _037FED94: .word _03807F68 arm_func_start FUN_037FED98 -FUN_037FED98: ;@ 0x037FED98 +FUN_037FED98: ; 0x037FED98 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 - ldr r5, _037FEE18 ;@ =_038084AC - mov r2, #36 ;@ 0x24 + ldr r5, _037FEE18 ; =_038084AC + mov r2, #36 ; 0x24 mul r3, r0, r2 add r4, r5, r3 ldrb r0, [r5, r3] bic r2, r0, #4 - and r0, r1, #255 ;@ 0xff + and r0, r1, #255 ; 0xff and r0, r0, #1 orr r0, r2, r0, lsl #2 strb r0, [r5, r3] cmp r1, #0 beq _037FEE0C mov r7, #0 - mov r5, #127 ;@ 0x7f + mov r5, #127 ; 0x7f _037FEDD8: mov r0, r4 mov r1, r7 @@ -8348,11 +8360,11 @@ _037FEE0C: _037FEE18: .word _038084AC arm_func_start FUN_037FEE1C -FUN_037FEE1C: ;@ 0x037FEE1C +FUN_037FEE1C: ; 0x037FEE1C stmdb sp!, {r4, lr} mov r4, r0 - ldr r2, _037FEE70 ;@ =_038084AC - mov r0, #36 ;@ 0x24 + ldr r2, _037FEE70 ; =_038084AC + mov r0, #36 ; 0x24 mul r1, r4, r0 add r0, r2, r1 ldrb r1, [r2, r1] @@ -8360,7 +8372,7 @@ FUN_037FEE1C: ;@ 0x037FEE1C movs r1, r1, lsr #31 beq _037FEE68 bl FUN_037FE3AC - ldr r0, _037FEE74 ;@ =_03807F68 + ldr r0, _037FEE74 ; =_03807F68 ldr r2, [r0] cmp r2, #0 ldrne r1, [r2, #4] @@ -8375,7 +8387,7 @@ _037FEE70: .word _038084AC _037FEE74: .word _03807F68 arm_func_start FUN_037FEE78 -FUN_037FEE78: ;@ 0x037FEE78 +FUN_037FEE78: ; 0x037FEE78 stmdb sp!, {r4, lr} mov r4, r0 bl FUN_037FEEB4 @@ -8385,9 +8397,9 @@ FUN_037FEE78: ;@ 0x037FEE78 bx lr arm_func_start FUN_037FEE94 -FUN_037FEE94: ;@ 0x037FEE94 - ldr r2, _037FEEB0 ;@ =_038084AC - mov r1, #36 ;@ 0x24 +FUN_037FEE94: ; 0x037FEE94 + ldr r2, _037FEEB0 ; =_038084AC + mov r1, #36 ; 0x24 mul r1, r0, r1 ldrb r0, [r2, r1] orr r0, r0, #2 @@ -8396,15 +8408,15 @@ FUN_037FEE94: ;@ 0x037FEE94 _037FEEB0: .word _038084AC arm_func_start FUN_037FEEB4 -FUN_037FEEB4: ;@ 0x037FEEB4 +FUN_037FEEB4: ; 0x037FEEB4 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r4, r0 mov r8, r1 mov r6, r2 mov r5, r3 - ldr r1, _037FEFFC ;@ =_038084AC - mov r0, #36 ;@ 0x24 + ldr r1, _037FEFFC ; =_038084AC + mov r0, #36 ; 0x24 mul r0, r4, r0 add r7, r1, r0 ldrb r0, [r1, r0] @@ -8420,7 +8432,7 @@ _037FEEF4: bl FUN_037FD4C0 movs r9, r0 bmi _037FEFF0 - ldr r0, _037FF000 ;@ =_038086EC + ldr r0, _037FF000 ; =_038086EC add r5, r0, r9, lsl #6 mov r0, r5 bl FUN_037FE6BC @@ -8429,15 +8441,15 @@ _037FEEF4: mov r2, r6 bl FUN_037FE6A8 strb r9, [r7, #8] - ldr r0, [r5, #40] ;@ 0x28 + ldr r0, [r5, #40] ; 0x28 bl FUN_037FE9B8 - ldr r0, [r5, #40] ;@ 0x28 + ldr r0, [r5, #40] ; 0x28 bl FUN_037FE968 - add r2, r5, #40 ;@ 0x28 - ldr r1, [r5, #40] ;@ 0x28 + add r2, r5, #40 ; 0x28 + ldr r1, [r5, #40] ; 0x28 add r1, r1, #1 - str r1, [r5, #40] ;@ 0x28 - cmp r0, #254 ;@ 0xfe + str r1, [r5, #40] ; 0x28 + cmp r0, #254 ; 0xfe ldrne r0, [r2] subne r0, r0, #1 strne r0, [r2] @@ -8447,7 +8459,7 @@ _037FEEF4: mov r0, r0, lsl #15 mov r5, r0, lsr #16 mov r6, #1 - ldr r8, _037FF000 ;@ =_038086EC + ldr r8, _037FF000 ; =_038086EC b _037FEFB0 _037FEF80: ands r0, r5, #1 @@ -8474,7 +8486,7 @@ _037FEFB8: ldrb r0, [r7] bic r0, r0, #2 strb r0, [r7] - ldr r0, _037FF004 ;@ =_03807F68 + ldr r0, _037FF004 ; =_03807F68 ldr r2, [r0] cmp r2, #0 ldrne r1, [r2, #4] @@ -8490,14 +8502,14 @@ _037FF000: .word _038086EC _037FF004: .word _03807F68 arm_func_start FUN_037FF008 -FUN_037FF008: ;@ 0x037FF008 +FUN_037FF008: ; 0x037FF008 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} mov r8, r0 mov r5, #0 mov r6, r5 mov sl, #1 - ldr r4, _037FF0A0 ;@ =_038084AC - mov r9, #36 ;@ 0x24 + ldr r4, _037FF0A0 ; =_038084AC + mov r9, #36 ; 0x24 _037FF024: mul r0, r6, r9 add r7, r4, r0 @@ -8527,7 +8539,7 @@ _037FF07C: add r6, r6, #1 cmp r6, #16 blt _037FF024 - ldr r0, _037FF0A4 ;@ =_03807F68 + ldr r0, _037FF0A4 ; =_03807F68 ldr r0, [r0] cmp r0, #0 strne r5, [r0, #4] @@ -8537,12 +8549,12 @@ _037FF0A0: .word _038084AC _037FF0A4: .word _03807F68 arm_func_start FUN_037FF0A8 -FUN_037FF0A8: ;@ 0x037FF0A8 +FUN_037FF0A8: ; 0x037FF0A8 stmfd sp!, {lr} sub sp, sp, #4 mov lr, #0 - ldr r3, _037FF10C ;@ =_038084AC - mov r0, #36 ;@ 0x24 + ldr r3, _037FF10C ; =_038084AC + mov r0, #36 ; 0x24 _037FF0BC: mul r2, lr, r0 add ip, r3, r2 @@ -8554,7 +8566,7 @@ _037FF0BC: cmp lr, #16 blt _037FF0BC mov r2, #0 - ldr r1, _037FF110 ;@ =_038086EC + ldr r1, _037FF110 ; =_038086EC _037FF0E8: ldrb r0, [r1, r2, lsl #6] bic r0, r0, #1 @@ -8569,7 +8581,7 @@ _037FF10C: .word _038084AC _037FF110: .word _038086EC arm_func_start FUN_037FF114 -FUN_037FF114: ;@ 0x037FF114 +FUN_037FF114: ; 0x037FF114 stmfd sp!, {lr} sub sp, sp, #4 add r0, r0, r1, lsl #3 @@ -8577,7 +8589,7 @@ FUN_037FF114: ;@ 0x037FF114 cmp r0, #0 moveq r0, #0 beq _037FF148 - ldr r1, [r0, #56] ;@ 0x38 + ldr r1, [r0, #56] ; 0x38 cmp r2, r1 movcs r0, #0 bcs _037FF148 @@ -8589,16 +8601,16 @@ _037FF148: bx lr arm_func_start FUN_037FF154 -FUN_037FF154: ;@ 0x037FF154 +FUN_037FF154: ; 0x037FF154 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r9, r0 mov r8, r1 mov r7, r2 mov r6, r3 - ldr r5, [sp, #36] ;@ 0x24 + ldr r5, [sp, #36] ; 0x24 ldrb r4, [r5, #10] - cmp r4, #255 ;@ 0xff + cmp r4, #255 ; 0xff mvneq r6, #0 moveq r4, #0 ldrb r0, [r5] @@ -8664,7 +8676,7 @@ _037FF214: mov r1, r4 bl FUN_037FCCE8 ldrb r0, [r5, #11] - sub r0, r0, #64 ;@ 0x40 + sub r0, r0, #64 ; 0x40 strb r0, [r9, #10] mov r0, #1 _037FF270: @@ -8673,17 +8685,17 @@ _037FF270: bx lr arm_func_start FUN_037FF27C -FUN_037FF27C: ;@ 0x037FF27C +FUN_037FF27C: ; 0x037FF27C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_037FC350 add r0, r5, r4, lsl #2 - ldr r4, [r0, #60] ;@ 0x3c + ldr r4, [r0, #60] ; 0x3c cmp r4, #0 beq _037FF2AC - cmp r4, #33554432 ;@ 0x2000000 + cmp r4, #33554432 ; 0x2000000 addcc r4, r5, r4 b _037FF2B0 _037FF2AC: @@ -8696,7 +8708,7 @@ _037FF2B0: bx lr arm_func_start FUN_037FF2C4 -FUN_037FF2C4: ;@ 0x037FF2C4 +FUN_037FF2C4: ; 0x037FF2C4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r6, r0 @@ -8706,7 +8718,7 @@ FUN_037FF2C4: ;@ 0x037FF2C4 movmi r0, #0 bmi _037FF43C bl FUN_037FC350 - ldr r0, [r6, #56] ;@ 0x38 + ldr r0, [r6, #56] ; 0x38 cmp r7, r0 bcc _037FF300 bl FUN_037FC34C @@ -8714,7 +8726,7 @@ FUN_037FF2C4: ;@ 0x037FF2C4 b _037FF43C _037FF300: add r0, r6, r7, lsl #2 - ldr r3, [r0, #60] ;@ 0x3c + ldr r3, [r0, #60] ; 0x3c strb r3, [r4] ldrb r0, [r4] cmp r0, #17 @@ -8810,12 +8822,12 @@ _037FF43C: bx lr arm_func_start FUN_037FF448 -FUN_037FF448: ;@ 0x037FF448 +FUN_037FF448: ; 0x037FF448 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r5, #0 mov r4, r5 - ldr r0, _037FF4E4 ;@ =_03807F68 + ldr r0, _037FF4E4 ; =_03807F68 ldr r0, [r0] cmp r0, #0 beq _037FF4D8 @@ -8843,7 +8855,7 @@ _037FF470: orrne r0, r4, #2 movne r0, r0, lsl #16 movne r4, r0, lsr #16 - ldr r0, _037FF4E4 ;@ =_03807F68 + ldr r0, _037FF4E4 ; =_03807F68 ldr r1, [r0] strh r5, [r1, #8] ldr r0, [r0] @@ -8855,20 +8867,20 @@ _037FF4D8: _037FF4E4: .word _03807F68 arm_func_start FUN_037FF4E8 -FUN_037FF4E8: ;@ 0x037FF4E8 - ldr r2, _037FF500 ;@ =_03807F68 +FUN_037FF4E8: ; 0x037FF4E8 + ldr r2, _037FF500 ; =_03807F68 ldr r2, [r2] add r0, r2, r0, lsl #1 - add r0, r0, #512 ;@ 0x200 - strh r1, [r0, #96] ;@ 0x60 + add r0, r0, #512 ; 0x200 + strh r1, [r0, #96] ; 0x60 bx lr _037FF500: .word _03807F68 arm_func_start FUN_037FF504 -FUN_037FF504: ;@ 0x037FF504 - ldr r3, _037FF520 ;@ =_03807F68 +FUN_037FF504: ; 0x037FF504 + ldr r3, _037FF520 ; =_03807F68 ldr ip, [r3] - mov r3, #36 ;@ 0x24 + mov r3, #36 ; 0x24 mla r3, r0, r3, ip add r0, r3, r1, lsl #1 strh r2, [r0, #32] @@ -8876,7 +8888,7 @@ FUN_037FF504: ;@ 0x037FF504 _037FF520: .word _03807F68 arm_func_start FUN_037FF524 -FUN_037FF524: ;@ 0x037FF524 +FUN_037FF524: ; 0x037FF524 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, #7 @@ -8892,9 +8904,9 @@ _037FF534: bx lr arm_func_start FUN_037FF554 -FUN_037FF554: ;@ 0x037FF554 +FUN_037FF554: ; 0x037FF554 stmdb sp!, {r4, lr} - ldr r1, _037FF590 ;@ =_03808EEC + ldr r1, _037FF590 ; =_03808EEC add r4, r1, r0, lsl #6 ldrb r0, [r1, r0, lsl #6] cmp r0, #0 @@ -8912,11 +8924,11 @@ _037FF588: _037FF590: .word _03808EEC arm_func_start FUN_037FF594 -FUN_037FF594: ;@ 0x037FF594 +FUN_037FF594: ; 0x037FF594 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #12 mov r4, r0 - ldr r0, _037FF654 ;@ =_03808EEC + ldr r0, _037FF654 ; =_03808EEC add r5, r0, r4, lsl #6 ldrb r0, [r0, r4, lsl #6] cmp r0, #0 @@ -8942,13 +8954,13 @@ _037FF5C4: add r0, r5, #20 mov r1, r9 mov r2, r8 - ldr r3, _037FF658 ;@ =FUN_037FF524 + ldr r3, _037FF658 ; =FUN_037FF524 bl FUN_037FA75C b _037FF640 _037FF610: bl FUN_037FA364 mov r2, r0 - ldr r0, _037FF658 ;@ =FUN_037FF524 + ldr r0, _037FF658 ; =FUN_037FF524 str r0, [sp, #4] str r4, [sp, #8] mov r3, r7 @@ -8968,13 +8980,13 @@ _037FF654: .word _03808EEC _037FF658: .word FUN_037FF524 arm_func_start FUN_037FF65C -FUN_037FF65C: ;@ 0x037FF65C +FUN_037FF65C: ; 0x037FF65C stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r8, r1 mov r7, r2 mov r6, r3 ldr r5, [sp, #24] - ldr r1, _037FF6B4 ;@ =_03808EEC + ldr r1, _037FF6B4 ; =_03808EEC add r4, r1, r0, lsl #6 ldrb r0, [r1, r0, lsl #6] cmp r0, #0 @@ -8995,14 +9007,14 @@ _037FF694: _037FF6B4: .word _03808EEC arm_func_start FUN_037FF6B8 -FUN_037FF6B8: ;@ 0x037FF6B8 +FUN_037FF6B8: ; 0x037FF6B8 mov r3, #0 mov r2, r3 - ldr r1, _037FF6E0 ;@ =_03807F6C + ldr r1, _037FF6E0 ; =_03807F6C _037FF6C4: add r0, r1, r3, lsl #6 - strb r2, [r0, #3968] ;@ 0xf80 - strb r2, [r0, #3969] ;@ 0xf81 + strb r2, [r0, #3968] ; 0xf80 + strb r2, [r0, #3969] ; 0xf81 add r3, r3, #1 cmp r3, #8 blt _037FF6C4 @@ -9010,38 +9022,38 @@ _037FF6C4: _037FF6E0: .word _03807F6C arm_func_start FUN_037FF6E4 -FUN_037FF6E4: ;@ 0x037FF6E4 +FUN_037FF6E4: ; 0x037FF6E4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 - ldr r0, _037FF74C ;@ =_03807F6C + ldr r0, _037FF74C ; =_03807F6C mov r1, r5 - mov r2, #4480 ;@ 0x1180 + mov r2, #4480 ; 0x1180 bl FUN_037FB348 - ldr r1, _037FF74C ;@ =_03807F6C - add r0, r5, #4096 ;@ 0x1000 - str r1, [r0, #448] ;@ 0x1c0 + ldr r1, _037FF74C ; =_03807F6C + add r0, r5, #4096 ; 0x1000 + str r1, [r0, #448] ; 0x1c0 mov r4, #0 _037FF710: mov r0, r4 bl FUN_037FBC4C add r1, r5, r4, lsl #2 - add r1, r1, #4096 ;@ 0x1000 - str r0, [r1, #384] ;@ 0x180 + add r1, r1, #4096 ; 0x1000 + str r0, [r1, #384] ; 0x180 add r4, r4, #1 cmp r4, #16 blt _037FF710 mov r0, #0 bl FUN_037FC964 - add r1, r5, #4096 ;@ 0x1000 - str r0, [r1, #452] ;@ 0x1c4 + add r1, r5, #4096 ; 0x1000 + str r0, [r1, #452] ; 0x1c4 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _037FF74C: .word _03807F6C arm_func_start FUN_037FF750 -FUN_037FF750: ;@ 0x037FF750 +FUN_037FF750: ; 0x037FF750 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r7, r0 @@ -9085,11 +9097,11 @@ _037FF7C4: _037FF7D4: ands r0, r6, #1 movne r1, #0 - ldrne r0, _037FF80C ;@ =0x04000508 + ldrne r0, _037FF80C ; =0x04000508 strneb r1, [r0] ands r0, r6, #2 movne r1, #0 - ldrne r0, _037FF810 ;@ =0x04000509 + ldrne r0, _037FF810 ; =0x04000509 strneb r1, [r0] mov r0, r4 bl FUN_037FB070 @@ -9101,7 +9113,7 @@ _037FF80C: .word 0x04000508 _037FF810: .word 0x04000509 arm_func_start FUN_037FF814 -FUN_037FF814: ;@ 0x037FF814 +FUN_037FF814: ; 0x037FF814 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 @@ -9114,10 +9126,10 @@ FUN_037FF814: ;@ 0x037FF814 _037FF838: ands r0, r7, #1 movne r0, r2, lsl #4 - addne r0, r0, #67108864 ;@ 0x4000000 - ldrneb r1, [r0, #1027] ;@ 0x403 - orrne r1, r1, #128 ;@ 0x80 - strneb r1, [r0, #1027] ;@ 0x403 + addne r0, r0, #67108864 ; 0x4000000 + ldrneb r1, [r0, #1027] ; 0x403 + orrne r1, r1, #128 ; 0x80 + strneb r1, [r0, #1027] ; 0x403 add r2, r2, #1 mov r7, r7, lsr #1 _037FF858: @@ -9129,22 +9141,22 @@ _037FF868: ands r0, r6, #1 beq _037FF8A0 ands r0, r6, #2 - ldreq r1, _037FF8FC ;@ =0x04000508 + ldreq r1, _037FF8FC ; =0x04000508 ldreqb r0, [r1] - orreq r0, r0, #128 ;@ 0x80 + orreq r0, r0, #128 ; 0x80 streqb r0, [r1] beq _037FF8B4 - ldr r2, _037FF8FC ;@ =0x04000508 + ldr r2, _037FF8FC ; =0x04000508 ldrh r1, [r2] - ldr r0, _037FF900 ;@ =0x00008080 + ldr r0, _037FF900 ; =0x00008080 orr r0, r1, r0 strh r0, [r2] b _037FF8B4 _037FF8A0: ands r0, r6, #2 - ldrne r1, _037FF904 ;@ =0x04000509 + ldrne r1, _037FF904 ; =0x04000509 ldrneb r0, [r1] - orrne r0, r0, #128 ;@ 0x80 + orrne r0, r0, #128 ; 0x80 strneb r0, [r1] _037FF8B4: mov r6, #0 @@ -9174,7 +9186,7 @@ _037FF900: .word 0x00008080 _037FF904: .word 0x04000509 arm_func_start FUN_037FF908 -FUN_037FF908: ;@ 0x037FF908 +FUN_037FF908: ; 0x037FF908 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 @@ -9199,7 +9211,7 @@ _037FF948: bx lr arm_func_start FUN_037FF950 -FUN_037FF950: ;@ 0x037FF950 +FUN_037FF950: ; 0x037FF950 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 @@ -9228,7 +9240,7 @@ _037FF99C: bx lr arm_func_start FUN_037FF9A8 -FUN_037FF9A8: ;@ 0x037FF9A8 +FUN_037FF9A8: ; 0x037FF9A8 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 @@ -9253,24 +9265,24 @@ _037FF9E8: bx lr arm_func_start FUN_037FF9F0 -FUN_037FF9F0: ;@ 0x037FF9F0 +FUN_037FF9F0: ; 0x037FF9F0 mov r0, #7 - ldr r1, _037FFA00 ;@ =FUN_037FFA08 - ldr ip, _037FFA04 ;@ =FUN_037FB7A8 + ldr r1, _037FFA00 ; =FUN_037FFA08 + ldr ip, _037FFA04 ; =FUN_037FB7A8 bx ip _037FFA00: .word FUN_037FFA08 _037FFA04: .word FUN_037FB7A8 arm_func_start FUN_037FFA08 -FUN_037FFA08: ;@ 0x037FFA08 +FUN_037FFA08: ; 0x037FFA08 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r1 bl FUN_037FB05C mov r4, r0 - cmp r5, #33554432 ;@ 0x2000000 + cmp r5, #33554432 ; 0x2000000 bcc _037FFA38 - ldr r0, _037FFA58 ;@ =_038090EC + ldr r0, _037FFA58 ; =_038090EC mov r1, r5 mov r2, #0 bl FUN_037F9924 @@ -9288,15 +9300,15 @@ _037FFA44: _037FFA58: .word _038090EC arm_func_start FUN_037FFA5C -FUN_037FFA5C: ;@ 0x037FFA5C +FUN_037FFA5C: ; 0x037FFA5C stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - sub sp, sp, #52 ;@ 0x34 - ldr r7, _037FFEC4 ;@ =_03807F68 - ldr r9, _037FFEC8 ;@ =_038090EC + sub sp, sp, #52 ; 0x34 + ldr r7, _037FFEC4 ; =_03807F68 + ldr r9, _037FFEC8 ; =_038090EC add r8, sp, #24 mov r4, #0 - ldr r6, _037FFECC ;@ =0x0000FFFF - ldr r5, _037FFED0 ;@ =0x003FFFFF + ldr r6, _037FFECC ; =0x0000FFFF + ldr r5, _037FFED0 ; =0x003FFFFF b _037FFEA0 _037FFA80: ldr lr, [sp, #24] @@ -9308,7 +9320,7 @@ _037FFA88: ldmia lr, {r0, r1} stmia ip, {r0, r1} ldr r0, [sp, #32] - cmp r0, #33 ;@ 0x21 + cmp r0, #33 ; 0x21 addls pc, pc, r0, lsl #2 b _037FFE84 b _037FFB34 @@ -9346,98 +9358,98 @@ _037FFA88: b _037FFE60 b _037FFE7C _037FFB34: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 - ldr r2, [sp, #44] ;@ 0x2c - ldr r3, [sp, #48] ;@ 0x30 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 + ldr r2, [sp, #44] ; 0x2c + ldr r3, [sp, #48] ; 0x30 bl FUN_037FEE78 b _037FFE84 _037FFB4C: - ldr r0, [sp, #36] ;@ 0x24 + ldr r0, [sp, #36] ; 0x24 bl FUN_037FEE1C b _037FFE84 _037FFB58: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 - ldr r2, [sp, #44] ;@ 0x2c - ldr r3, [sp, #48] ;@ 0x30 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 + ldr r2, [sp, #44] ; 0x2c + ldr r3, [sp, #48] ; 0x30 bl FUN_037FEEB4 b _037FFE84 _037FFB70: - ldr r0, [sp, #36] ;@ 0x24 + ldr r0, [sp, #36] ; 0x24 bl FUN_037FEE94 b _037FFE84 _037FFB7C: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 bl FUN_037FED98 b _037FFE84 _037FFB8C: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 bl FUN_037FECCC b _037FFE84 _037FFB9C: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 - ldr r2, [sp, #44] ;@ 0x2c - ldr r3, [sp, #48] ;@ 0x30 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 + ldr r2, [sp, #44] ; 0x2c + ldr r3, [sp, #48] ; 0x30 bl FUN_037FEA98 b _037FFE84 _037FFBB4: - ldr r1, [sp, #36] ;@ 0x24 + ldr r1, [sp, #36] ; 0x24 mov r0, r1, lsr #24 - and r0, r0, #255 ;@ 0xff + and r0, r0, #255 ; 0xff str r0, [sp] - bic r0, r1, #-16777216 ;@ 0xff000000 - ldr r1, [sp, #40] ;@ 0x28 - ldr r2, [sp, #44] ;@ 0x2c - ldr r3, [sp, #48] ;@ 0x30 + bic r0, r1, #-16777216 ; 0xff000000 + ldr r1, [sp, #40] ; 0x28 + ldr r2, [sp, #44] ; 0x2c + ldr r3, [sp, #48] ; 0x30 bl FUN_037FE9F4 b _037FFE84 _037FFBDC: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 - ldr r2, [sp, #44] ;@ 0x2c + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 + ldr r2, [sp, #44] ; 0x2c bl FUN_037FEC58 b _037FFE84 _037FFBF0: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 - ldr r2, [sp, #44] ;@ 0x2c + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 + ldr r2, [sp, #44] ; 0x2c bl FUN_037FEBE0 b _037FFE84 _037FFC04: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 - ldr r2, [sp, #44] ;@ 0x2c + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 + ldr r2, [sp, #44] ; 0x2c mov r2, r2, lsl #16 mov r2, r2, asr #16 bl FUN_037FF504 b _037FFE84 _037FFC20: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 mov r1, r1, lsl #16 mov r1, r1, asr #16 bl FUN_037FF4E8 b _037FFE84 _037FFC38: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 - ldr r2, [sp, #44] ;@ 0x2c - ldr r3, [sp, #48] ;@ 0x30 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 + ldr r2, [sp, #44] ; 0x2c + ldr r3, [sp, #48] ; 0x30 bl FUN_037FF814 b _037FFE84 _037FFC50: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 - ldr r2, [sp, #44] ;@ 0x2c - ldr r3, [sp, #48] ;@ 0x30 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 + ldr r2, [sp, #44] ; 0x2c + ldr r3, [sp, #48] ; 0x30 bl FUN_037FF750 b _037FFE84 _037FFC68: - ldr r1, [sp, #44] ;@ 0x2c + ldr r1, [sp, #44] ; 0x2c mov r0, r1, lsr #29 and r0, r0, #1 str r0, [sp] @@ -9451,46 +9463,46 @@ _037FFC68: and r0, r0, #1 mov r1, r1, lsr #30 and r1, r1, #1 - ldr r2, [sp, #36] ;@ 0x24 - ldr r3, [sp, #40] ;@ 0x28 + ldr r2, [sp, #36] ; 0x24 + ldr r3, [sp, #40] ; 0x28 bl FUN_037FC4D8 b _037FFE84 _037FFCB0: - ldr r0, [sp, #48] ;@ 0x30 + ldr r0, [sp, #48] ; 0x30 str r0, [sp, #4] - ldr r3, [sp, #44] ;@ 0x2c + ldr r3, [sp, #44] ; 0x2c str r4, [sp] - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 mov r2, #0 bl FUN_037FF65C b _037FFE84 _037FFCD4: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 bl FUN_037FF9A8 b _037FFE84 _037FFCE4: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 - ldr r2, [sp, #44] ;@ 0x2c + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 + ldr r2, [sp, #44] ; 0x2c bl FUN_037FF950 b _037FFE84 _037FFCF8: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 bl FUN_037FF908 b _037FFE84 _037FFD08: - ldr r3, [sp, #48] ;@ 0x30 - ldr r1, [sp, #36] ;@ 0x24 - ldr r0, [sp, #44] ;@ 0x2c + ldr r3, [sp, #48] ; 0x30 + ldr r1, [sp, #36] ; 0x24 + ldr r0, [sp, #44] ; 0x2c and r2, r3, r6 str r2, [sp] and r2, r0, r5 str r2, [sp, #4] mov r2, r0, lsr #24 - and r2, r2, #127 ;@ 0x7f + and r2, r2, #127 ; 0x7f str r2, [sp, #8] mov r0, r0, lsr #22 and r0, r0, #3 @@ -9498,11 +9510,11 @@ _037FFD08: and r0, r6, r1, lsr #16 str r0, [sp, #16] mov r0, r3, lsr #16 - and r0, r0, #127 ;@ 0x7f + and r0, r0, #127 ; 0x7f str r0, [sp, #20] and r0, r1, r6 - ldr r1, [sp, #40] ;@ 0x28 - bic r1, r1, #-134217728 ;@ 0xf8000000 + ldr r1, [sp, #40] ; 0x28 + bic r1, r1, #-134217728 ; 0xf8000000 mov r2, r3, lsr #24 and r2, r2, #3 mov r3, r3, lsr #26 @@ -9510,86 +9522,86 @@ _037FFD08: bl FUN_037FBF88 b _037FFE84 _037FFD74: - ldr r1, [sp, #44] ;@ 0x2c - ldr r3, [sp, #40] ;@ 0x28 + ldr r1, [sp, #44] ; 0x2c + ldr r3, [sp, #40] ; 0x28 and r0, r6, r1, lsr #8 str r0, [sp] - and r0, r1, #127 ;@ 0x7f + and r0, r1, #127 ; 0x7f str r0, [sp, #4] - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #48] ;@ 0x30 - and r2, r3, #127 ;@ 0x7f + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #48] ; 0x30 + and r2, r3, #127 ; 0x7f mov r3, r3, lsr #8 and r3, r3, #3 bl FUN_037FBED0 b _037FFE84 _037FFDA8: - ldr r3, [sp, #44] ;@ 0x2c - ldr r2, [sp, #40] ;@ 0x28 - and r0, r3, #127 ;@ 0x7f + ldr r3, [sp, #44] ; 0x2c + ldr r2, [sp, #40] ; 0x28 + and r0, r3, #127 ; 0x7f str r0, [sp] - ldr r0, [sp, #36] ;@ 0x24 - and r1, r2, #127 ;@ 0x7f + ldr r0, [sp, #36] ; 0x24 + and r1, r2, #127 ; 0x7f mov r2, r2, lsr #8 and r2, r2, #3 and r3, r6, r3, lsr #8 bl FUN_037FBE20 b _037FFE84 _037FFDD4: - ldr r0, [sp, #36] ;@ 0x24 + ldr r0, [sp, #36] ; 0x24 bl FUN_037FBBE8 b _037FFE84 _037FFDE0: - ldr r0, [sp, #36] ;@ 0x24 + ldr r0, [sp, #36] ; 0x24 bl FUN_037FBA44 b _037FFE84 _037FFDEC: - ldr r0, [sp, #36] ;@ 0x24 + ldr r0, [sp, #36] ; 0x24 bl FUN_037FBC5C b _037FFE84 _037FFDF8: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 - ldr r2, [sp, #44] ;@ 0x2c - ldr r3, [sp, #48] ;@ 0x30 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 + ldr r2, [sp, #44] ; 0x2c + ldr r3, [sp, #48] ; 0x30 bl FUN_037FBA0C b _037FFE84 _037FFE10: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 bl FUN_037FC9C0 b _037FFE84 _037FFE20: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 bl FUN_037FC984 b _037FFE84 _037FFE30: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 bl FUN_037FCAB8 b _037FFE84 _037FFE40: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 bl FUN_037FEB44 b _037FFE84 _037FFE50: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 bl FUN_037FEAE4 b _037FFE84 _037FFE60: - ldr r0, [sp, #36] ;@ 0x24 - ldr r1, [sp, #40] ;@ 0x28 + ldr r0, [sp, #36] ; 0x24 + ldr r1, [sp, #40] ; 0x28 bl FUN_037FC8DC b _037FFE84 _037FFE70: - ldr r0, [sp, #36] ;@ 0x24 + ldr r0, [sp, #36] ; 0x24 str r0, [r7] b _037FFE84 _037FFE7C: - ldr r0, [sp, #36] ;@ 0x24 + ldr r0, [sp, #36] ; 0x24 bl FUN_037FF6E4 _037FFE84: ldr lr, [sp, #28] @@ -9607,7 +9619,7 @@ _037FFEA0: bl FUN_037F9884 cmp r0, #0 bne _037FFA80 - add sp, sp, #52 ;@ 0x34 + add sp, sp, #52 ; 0x34 ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} bx lr _037FFEC4: .word _03807F68 @@ -9616,16 +9628,16 @@ _037FFECC: .word 0x0000FFFF _037FFED0: .word 0x003FFFFF arm_func_start FUN_037FFED4 -FUN_037FFED4: ;@ 0x037FFED4 +FUN_037FFED4: ; 0x037FFED4 stmfd sp!, {lr} sub sp, sp, #4 - ldr r0, _037FFF08 ;@ =_038090EC - ldr r1, _037FFF0C ;@ =_0380910C + ldr r0, _037FFF08 ; =_038090EC + ldr r1, _037FFF0C ; =_0380910C mov r2, #8 bl FUN_037F99B8 bl FUN_037FF9F0 mov r1, #0 - ldr r0, _037FFF10 ;@ =_03807F68 + ldr r0, _037FFF10 ; =_03807F68 str r1, [r0] add sp, sp, #4 ldmia sp!, {lr} @@ -9635,29 +9647,29 @@ _037FFF0C: .word _0380910C _037FFF10: .word _03807F68 arm_func_start FUN_037FFF14 -FUN_037FFF14: ;@ 0x037FFF14 - ldr ip, _037FFF1C ;@ =FUN_038008D0 +FUN_037FFF14: ; 0x037FFF14 + ldr ip, _037FFF1C ; =FUN_038008D0 bx ip _037FFF1C: .word FUN_038008D0 arm_func_start FUN_037FFF20 -FUN_037FFF20: ;@ 0x037FFF20 - ldr r0, _037FFF28 ;@ =0x027FFA80 +FUN_037FFF20: ; 0x037FFF20 + ldr r0, _037FFF28 ; =0x027FFA80 bx lr _037FFF28: .word 0x027FFA80 arm_func_start FUN_037FFF2C -FUN_037FFF2C: ;@ 0x037FFF2C +FUN_037FFF2C: ; 0x037FFF2C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 - ldr r6, _037FFF70 ;@ =_03809140 + ldr r6, _037FFF70 ; =_03809140 bl FUN_037FB05C mov r4, r0 - ldr r5, [r6, #240] ;@ 0xf0 - str r7, [r6, #240] ;@ 0xf0 - add r0, r6, #72 ;@ 0x48 - ldr r1, [r6, #240] ;@ 0xf0 + ldr r5, [r6, #240] ; 0xf0 + str r7, [r6, #240] ; 0xf0 + add r0, r6, #72 ; 0x48 + ldr r1, [r6, #240] ; 0xf0 bl FUN_037F8EB8 mov r0, r4 bl FUN_037FB070 @@ -9668,18 +9680,18 @@ FUN_037FFF2C: ;@ 0x037FFF2C _037FFF70: .word _03809140 arm_func_start FUN_037FFF74 -FUN_037FFF74: ;@ 0x037FFF74 - ldr r1, _037FFF80 ;@ =_0380912C +FUN_037FFF74: ; 0x037FFF74 + ldr r1, _037FFF80 ; =_0380912C str r0, [r1] bx lr _037FFF80: .word _0380912C arm_func_start FUN_037FFF84 -FUN_037FFF84: ;@ 0x037FFF84 +FUN_037FFF84: ; 0x037FFF84 stmfd sp!, {lr} sub sp, sp, #12 mvn r1, #2 - ldr r0, _0380001C ;@ =_03809140 + ldr r0, _0380001C ; =_03809140 str r1, [r0, #12] mov r2, #0 str r2, [r0, #16] @@ -9688,24 +9700,24 @@ FUN_037FFF84: ;@ 0x037FFF84 str r2, [r0, #8] str r2, [r0, #24] str r2, [r0, #20] - str r2, [r0, #248] ;@ 0xf8 - str r2, [r0, #244] ;@ 0xf4 + str r2, [r0, #248] ; 0xf8 + str r2, [r0, #244] ; 0xf4 mov r1, #4 - str r1, [r0, #240] ;@ 0xf0 - mov r1, #1024 ;@ 0x400 + str r1, [r0, #240] ; 0xf0 + mov r1, #1024 ; 0x400 str r1, [sp] - ldr r0, [r0, #240] ;@ 0xf0 + ldr r0, [r0, #240] ; 0xf0 str r0, [sp, #4] - ldr r0, _03800020 ;@ =_03809188 - ldr r1, _03800024 ;@ =FUN_03800B20 - ldr r3, _03800028 ;@ =_03809760 + ldr r0, _03800020 ; =_03809188 + ldr r1, _03800024 ; =FUN_03800B20 + ldr r3, _03800028 ; =_03809760 bl FUN_037F9244 - ldr r0, _03800020 ;@ =_03809188 + ldr r0, _03800020 ; =_03809188 bl FUN_037F8FB4 mov r0, #11 - ldr r1, _0380002C ;@ =FUN_03800D2C + ldr r1, _0380002C ; =FUN_03800D2C bl FUN_037FB7A8 - ldr r0, _03800030 ;@ =0x027FFC40 + ldr r0, _03800030 ; =0x027FFC40 ldrh r0, [r0] _03800000: cmp r0, #2 @@ -9724,14 +9736,14 @@ _0380002C: .word FUN_03800D2C _03800030: .word 0x027FFC40 arm_func_start FUN_03800034 -FUN_03800034: ;@ 0x03800034 +FUN_03800034: ; 0x03800034 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} sub sp, sp, #8 mov r4, r0 bl FUN_03800780 cmp r0, #0 beq _038000BC - ldr r0, _038000C8 ;@ =_03809140 + ldr r0, _038000C8 ; =_03809140 ldr sl, [r0] mov r9, #10 mov r0, #1 @@ -9740,7 +9752,7 @@ FUN_03800034: ;@ 0x03800034 mov r8, #2 add r7, sp, #0 mov r6, #0 - ldr r5, _038000CC ;@ =_03800660 + ldr r5, _038000CC ; =_03800660 mov r4, #5 _03800078: bl FUN_038005B4 @@ -9768,23 +9780,23 @@ _038000C8: .word _03809140 _038000CC: .word _03800660 arm_func_start FUN_038000D0 -FUN_038000D0: ;@ 0x038000D0 +FUN_038000D0: ; 0x038000D0 stmdb sp!, {r4, lr} bl FUN_03800780 cmp r0, #0 beq _03800114 - ldr r0, _0380011C ;@ =_03809140 + ldr r0, _0380011C ; =_03809140 ldr r4, [r0] bl FUN_038005B4 mov r0, #1 bl FUN_038008B4 - ldr r0, _03800120 ;@ =_038072BC + ldr r0, _03800120 ; =_038072BC mov r1, #0 mov r2, #1 - ldr r3, _03800124 ;@ =_03800660 + ldr r3, _03800124 ; =_03800660 bl FUN_038006F0 - ldr r0, [r4, #52] ;@ 0x34 - ldr r1, [r4, #56] ;@ 0x38 + ldr r0, [r4, #52] ; 0x34 + ldr r1, [r4, #56] ; 0x38 bl FUN_03800830 _03800114: ldmia sp!, {r4, lr} @@ -9794,11 +9806,11 @@ _03800120: .word _038072BC _03800124: .word _03800660 arm_func_start FUN_03800128 -FUN_03800128: ;@ 0x03800128 +FUN_03800128: ; 0x03800128 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r7, r0 mov r6, r1 - ldr r0, _038001B8 ;@ =_03809140 + ldr r0, _038001B8 ; =_03809140 ldr r5, [r0] ldr r4, [r5, #28] sub r1, r4, #1 @@ -9810,18 +9822,18 @@ FUN_03800128: ;@ 0x03800128 bl FUN_03800780 cmp r0, #0 beq _038001B0 - mov r8, #216 ;@ 0xd8 + mov r8, #216 ; 0xd8 b _038001A8 _0380016C: bl FUN_038005B4 - ldr r0, [r5, #36] ;@ 0x24 + ldr r0, [r5, #36] ; 0x24 add r0, r0, #1 bl FUN_038008B4 mov r0, r7 mov r1, r8 bl FUN_03800508 - ldr r0, [r5, #60] ;@ 0x3c - ldr r1, [r5, #64] ;@ 0x40 + ldr r0, [r5, #60] ; 0x3c + ldr r1, [r5, #64] ; 0x40 bl FUN_03800830 ldr r0, [r5] cmp r0, #0 @@ -9837,7 +9849,7 @@ _038001B0: _038001B8: .word _03809140 arm_func_start FUN_038001BC -FUN_038001BC: ;@ 0x038001BC +FUN_038001BC: ; 0x038001BC stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 @@ -9846,12 +9858,12 @@ FUN_038001BC: ;@ 0x038001BC bl FUN_03800780 cmp r0, #0 beq _0380024C - ldr r0, _03800258 ;@ =_03809140 + ldr r0, _03800258 ; =_03809140 ldr r4, [r0] mov r1, #1 - ldr r0, _0380025C ;@ =_03809764 + ldr r0, _0380025C ; =_03809764 str r1, [r0, #12] - ldr r0, [r4, #36] ;@ 0x24 + ldr r0, [r4, #36] ; 0x24 add r0, r0, #1 add r0, r0, r5 bl FUN_038008B4 @@ -9861,7 +9873,7 @@ FUN_038001BC: ;@ 0x038001BC mov r0, r6 mov r1, #0 mov r2, r5 - ldr r3, _03800260 ;@ =_038005F8 + ldr r3, _03800260 ; =_038005F8 bl FUN_038006F0 mov r0, #0 mov r1, r0 @@ -9869,7 +9881,7 @@ FUN_038001BC: ;@ 0x038001BC ldr r0, [r4] cmp r0, #0 bne _0380024C - ldr r0, _0380025C ;@ =_03809764 + ldr r0, _0380025C ; =_03809764 ldr r0, [r0, #12] cmp r0, #0 moveq r0, #1 @@ -9883,7 +9895,7 @@ _0380025C: .word _03809764 _03800260: .word _038005F8 arm_func_start FUN_03800264 -FUN_03800264: ;@ 0x03800264 +FUN_03800264: ; 0x03800264 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov sl, r0 @@ -9892,7 +9904,7 @@ FUN_03800264: ;@ 0x03800264 bl FUN_03800780 cmp r0, #0 beq _03800314 - ldr r0, _03800320 ;@ =_03809140 + ldr r0, _03800320 ; =_03809140 ldr r7, [r0] ldr r6, [r7, #32] sub r4, r6, #1 @@ -9906,7 +9918,7 @@ _038002A4: cmp r5, r8 movhi r5, r8 bl FUN_038005B4 - ldr r0, [r7, #36] ;@ 0x24 + ldr r0, [r7, #36] ; 0x24 add r0, r0, #1 add r0, r0, r5 bl FUN_038008B4 @@ -9916,10 +9928,10 @@ _038002A4: mov r0, r9 ldr r1, [sp] mov r2, r5 - ldr r3, _03800324 ;@ =_03800660 + ldr r3, _03800324 ; =_03800660 bl FUN_038006F0 - ldr r0, [r7, #44] ;@ 0x2c - ldr r1, [r7, #48] ;@ 0x30 + ldr r0, [r7, #44] ; 0x2c + ldr r1, [r7, #48] ; 0x30 bl FUN_03800830 ldr r0, [r7] cmp r0, #0 @@ -9938,7 +9950,7 @@ _03800320: .word _03809140 _03800324: .word _03800660 arm_func_start FUN_03800328 -FUN_03800328: ;@ 0x03800328 +FUN_03800328: ; 0x03800328 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov sl, r0 @@ -9947,7 +9959,7 @@ FUN_03800328: ;@ 0x03800328 bl FUN_03800780 cmp r0, #0 beq _038003D8 - ldr r0, _038003E4 ;@ =_03809140 + ldr r0, _038003E4 ; =_03809140 ldr r7, [r0] ldr r6, [r7, #32] sub r4, r6, #1 @@ -9961,7 +9973,7 @@ _03800368: cmp r5, r8 movhi r5, r8 bl FUN_038005B4 - ldr r0, [r7, #36] ;@ 0x24 + ldr r0, [r7, #36] ; 0x24 add r0, r0, #1 add r0, r0, r5 bl FUN_038008B4 @@ -9971,9 +9983,9 @@ _03800368: mov r0, r9 mov r1, fp mov r2, r5 - ldr r3, _038003E8 ;@ =_03800660 + ldr r3, _038003E8 ; =_03800660 bl FUN_038006F0 - ldr r0, [r7, #40] ;@ 0x28 + ldr r0, [r7, #40] ; 0x28 mov r1, fp bl FUN_03800830 ldr r0, [r7] @@ -9993,7 +10005,7 @@ _038003E4: .word _03809140 _038003E8: .word _03800660 arm_func_start FUN_038003EC -FUN_038003EC: ;@ 0x038003EC +FUN_038003EC: ; 0x038003EC stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 @@ -10001,9 +10013,9 @@ FUN_038003EC: ;@ 0x038003EC bl FUN_03800780 cmp r0, #0 beq _0380044C - ldr r0, _03800454 ;@ =_03809140 + ldr r0, _03800454 ; =_03809140 ldr r0, [r0] - ldr r0, [r0, #36] ;@ 0x24 + ldr r0, [r0, #36] ; 0x24 add r0, r0, #1 add r0, r0, r4 bl FUN_038008B4 @@ -10013,7 +10025,7 @@ FUN_038003EC: ;@ 0x038003EC mov r0, #0 mov r1, r5 mov r2, r4 - ldr r3, _03800458 ;@ =_038006AC + ldr r3, _03800458 ; =_038006AC bl FUN_038006F0 mov r0, #0 mov r1, r0 @@ -10025,15 +10037,15 @@ _03800454: .word _03809140 _03800458: .word _038006AC arm_func_start FUN_0380045C -FUN_0380045C: ;@ 0x0380045C +FUN_0380045C: ; 0x0380045C stmdb sp!, {r4, lr} sub sp, sp, #8 - ldr r0, _038004F8 ;@ =_03809140 + ldr r0, _038004F8 ; =_03809140 ldr r0, [r0] - ldrb r4, [r0, #72] ;@ 0x48 - cmp r4, #255 ;@ 0xff + ldrb r4, [r0, #72] ; 0x48 + cmp r4, #255 ; 0xff beq _038004EC - ldr r0, _038004FC ;@ =_03809760 + ldr r0, _038004FC ; =_03809760 ldr r0, [r0] cmp r0, #0 bne _038004EC @@ -10044,12 +10056,12 @@ FUN_0380045C: ;@ 0x0380045C add r0, sp, #0 mov r1, #0 mov r2, #1 - ldr r3, _03800500 ;@ =_03800660 + ldr r3, _03800500 ; =_03800660 bl FUN_038006F0 mov r0, #0 add r1, sp, #1 mov r2, #1 - ldr r3, _03800504 ;@ =_038006AC + ldr r3, _03800504 ; =_038006AC bl FUN_038006F0 mov r0, #0 mov r1, r0 @@ -10061,7 +10073,7 @@ FUN_0380045C: ;@ 0x0380045C bl FUN_03800034 _038004E0: mov r1, #1 - ldr r0, _038004FC ;@ =_03809760 + ldr r0, _038004FC ; =_03809760 str r1, [r0] _038004EC: add sp, sp, #8 @@ -10073,12 +10085,12 @@ _03800500: .word _03800660 _03800504: .word _038006AC arm_func_start FUN_03800508 -FUN_03800508: ;@ 0x03800508 +FUN_03800508: ; 0x03800508 stmfd sp!, {lr} sub sp, sp, #4 - ldr r2, _038005AC ;@ =_03809140 + ldr r2, _038005AC ; =_03809140 ldr r2, [r2] - ldr r2, [r2, #36] ;@ 0x24 + ldr r2, [r2, #36] ; 0x24 cmp r2, #1 beq _03800538 cmp r2, #2 @@ -10087,7 +10099,7 @@ FUN_03800508: ;@ 0x03800508 beq _0380056C b _0380058C _03800538: - and r3, r0, #255 ;@ 0xff + and r3, r0, #255 ; 0xff mov r0, r0, lsr #5 and r0, r0, #8 orr r0, r1, r0 @@ -10095,17 +10107,17 @@ _03800538: str r0, [sp] b _0380058C _03800554: - and r3, r0, #255 ;@ 0xff - and r0, r0, #65280 ;@ 0xff00 + and r3, r0, #255 ; 0xff + and r0, r0, #65280 ; 0xff00 orr r0, r1, r0 orr r0, r0, r3, lsl #16 str r0, [sp] b _0380058C _0380056C: - and ip, r0, #255 ;@ 0xff - and r3, r0, #65280 ;@ 0xff00 + and ip, r0, #255 ; 0xff + and r3, r0, #65280 ; 0xff00 mov r0, r0, lsr #8 - and r0, r0, #65280 ;@ 0xff00 + and r0, r0, #65280 ; 0xff00 orr r0, r1, r0 orr r0, r0, r3, lsl #8 orr r0, r0, ip, lsl #24 @@ -10114,7 +10126,7 @@ _0380058C: add r0, sp, #0 mov r1, #0 add r2, r2, #1 - ldr r3, _038005B0 ;@ =_03800660 + ldr r3, _038005B0 ; =_03800660 bl FUN_038006F0 add sp, sp, #4 ldmia sp!, {lr} @@ -10123,15 +10135,15 @@ _038005AC: .word _03809140 _038005B0: .word _03800660 arm_func_start FUN_038005B4 -FUN_038005B4: ;@ 0x038005B4 +FUN_038005B4: ; 0x038005B4 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #1 bl FUN_038008B4 - ldr r0, _038005F0 ;@ =_038072C0 + ldr r0, _038005F0 ; =_038072C0 mov r1, #0 mov r2, #1 - ldr r3, _038005F4 ;@ =_03800660 + ldr r3, _038005F4 ; =_03800660 bl FUN_038006F0 mov r0, #0 mov r1, r0 @@ -10143,16 +10155,16 @@ _038005F0: .word _038072C0 _038005F4: .word _03800660 _038005F8: mov r2, #0 - ldr r1, _03800658 ;@ =0x040001A2 + ldr r1, _03800658 ; =0x040001A2 strh r2, [r1] - ldr r2, _0380065C ;@ =0x040001A0 + ldr r2, _0380065C ; =0x040001A0 _03800608: ldrh r1, [r2] - ands r1, r1, #128 ;@ 0x80 + ands r1, r1, #128 ; 0x80 bne _03800608 - ldr r1, _03800658 ;@ =0x040001A2 + ldr r1, _03800658 ; =0x040001A2 ldrh r1, [r1] - and r2, r1, #255 ;@ 0xff + and r2, r1, #255 ; 0xff ldr r1, [r0, #4] ldrb r1, [r1] cmp r2, r1 @@ -10174,17 +10186,17 @@ _03800660: sub sp, sp, #8 ldr r1, [r0, #4] ldrb r2, [r1] - ldr r1, _038006A4 ;@ =0x040001A2 + ldr r1, _038006A4 ; =0x040001A2 strh r2, [r1] ldr r1, [r0, #4] add r1, r1, #1 str r1, [r0, #4] - ldr r1, _038006A8 ;@ =0x040001A0 + ldr r1, _038006A8 ; =0x040001A0 _03800684: ldrh r0, [r1] - ands r0, r0, #128 ;@ 0x80 + ands r0, r0, #128 ; 0x80 bne _03800684 - ldr r0, _038006A4 ;@ =0x040001A2 + ldr r0, _038006A4 ; =0x040001A2 ldrh r0, [r0] strh r0, [sp] add sp, sp, #8 @@ -10193,14 +10205,14 @@ _038006A4: .word 0x040001A2 _038006A8: .word 0x040001A0 _038006AC: mov r2, #0 - ldr r1, _038006E8 ;@ =0x040001A2 + ldr r1, _038006E8 ; =0x040001A2 strh r2, [r1] - ldr r2, _038006EC ;@ =0x040001A0 + ldr r2, _038006EC ; =0x040001A0 _038006BC: ldrh r1, [r2] - ands r1, r1, #128 ;@ 0x80 + ands r1, r1, #128 ; 0x80 bne _038006BC - ldr r1, _038006E8 ;@ =0x040001A2 + ldr r1, _038006E8 ; =0x040001A2 ldrh r2, [r1] ldr r1, [r0, #8] strb r2, [r1] @@ -10212,17 +10224,17 @@ _038006E8: .word 0x040001A2 _038006EC: .word 0x040001A0 arm_func_start FUN_038006F0 -FUN_038006F0: ;@ 0x038006F0 +FUN_038006F0: ; 0x038006F0 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r7, r2 mov r6, r3 - ldr r5, _03800774 ;@ =_03809764 + ldr r5, _03800774 ; =_03809764 str r0, [r5, #4] str r1, [r5, #8] - ldr r0, _03800778 ;@ =0x0000A040 - ldr r4, _0380077C ;@ =0x040001A0 + ldr r0, _03800778 ; =0x0000A040 + ldr r4, _0380077C ; =0x040001A0 strh r0, [r4] - mov r8, #40960 ;@ 0xa000 + mov r8, #40960 ; 0xa000 b _03800750 _0380071C: ldr r0, [r5] @@ -10233,7 +10245,7 @@ _0380071C: streqh r8, [r4] _03800734: ldrh r0, [r4] - ands r0, r0, #128 ;@ 0x80 + ands r0, r0, #128 ; 0x80 bne _03800734 mov r0, r5 mov lr, pc @@ -10245,7 +10257,7 @@ _03800750: ldr r0, [r5] cmp r0, #0 moveq r1, #0 - ldreq r0, _0380077C ;@ =0x040001A0 + ldreq r0, _0380077C ; =0x040001A0 streqh r1, [r0] ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr @@ -10254,13 +10266,13 @@ _03800778: .word 0x0000A040 _0380077C: .word 0x040001A0 arm_func_start FUN_03800780 -FUN_03800780: ;@ 0x03800780 +FUN_03800780: ; 0x03800780 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #0 - mov r1, #50 ;@ 0x32 + mov r1, #50 ; 0x32 bl FUN_03800830 - ldr r0, _038007C0 ;@ =_03809140 + ldr r0, _038007C0 ; =_03809140 ldr r1, [r0] ldr r0, [r1] cmp r0, #4 @@ -10274,20 +10286,20 @@ FUN_03800780: ;@ 0x03800780 _038007C0: .word _03809140 arm_func_start FUN_038007C4 -FUN_038007C4: ;@ 0x038007C4 +FUN_038007C4: ; 0x038007C4 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #2 bl FUN_038008B4 - ldr r0, _03800824 ;@ =_038072C4 + ldr r0, _03800824 ; =_038072C4 mov r1, #0 mov r2, #1 - ldr r3, _03800828 ;@ =_03800660 + ldr r3, _03800828 ; =_03800660 bl FUN_038006F0 mov r0, #0 add r1, sp, #0 mov r2, #1 - ldr r3, _0380082C ;@ =_038006AC + ldr r3, _0380082C ; =_038006AC bl FUN_038006F0 mov r0, #0 mov r1, r0 @@ -10304,7 +10316,7 @@ _03800828: .word _03800660 _0380082C: .word _038006AC arm_func_start FUN_03800830 -FUN_03800830: ;@ 0x03800830 +FUN_03800830: ; 0x03800830 stmdb sp!, {r4, r5, r6, lr} mov r5, r0 mov r4, r1 @@ -10336,7 +10348,7 @@ _03800890: bl FUN_038007C4 cmp r0, #0 moveq r1, #4 - ldreq r0, _038008B0 ;@ =_03809140 + ldreq r0, _038008B0 ; =_03809140 ldreq r0, [r0] streq r1, [r0] _038008A8: @@ -10345,43 +10357,43 @@ _038008A8: _038008B0: .word _03809140 arm_func_start FUN_038008B4 -FUN_038008B4: ;@ 0x038008B4 - ldr r1, _038008C0 ;@ =_03809764 +FUN_038008B4: ; 0x038008B4 + ldr r1, _038008C0 ; =_03809764 str r0, [r1] bx lr _038008C0: .word _03809764 arm_func_start FUN_038008C4 -FUN_038008C4: ;@ 0x038008C4 - ldr r0, _038008CC ;@ =_03800A7C +FUN_038008C4: ; 0x038008C4 + ldr r0, _038008CC ; =_03800A7C bx lr _038008CC: .word _03800A7C arm_func_start FUN_038008D0 -FUN_038008D0: ;@ 0x038008D0 +FUN_038008D0: ; 0x038008D0 stmfd sp!, {lr} sub sp, sp, #4 - ldr r2, _03800940 ;@ =_03809140 - ldr r0, [r2, #252] ;@ 0xfc + ldr r2, _03800940 ; =_03809140 + ldr r0, [r2, #252] ; 0xfc cmp r0, #0 bne _03800934 mov r0, #1 - str r0, [r2, #252] ;@ 0xfc + str r0, [r2, #252] ; 0xfc mov r1, #0 - str r1, [r2, #40] ;@ 0x28 - ldr r0, [r2, #40] ;@ 0x28 - str r0, [r2, #36] ;@ 0x24 - ldr r0, [r2, #36] ;@ 0x24 + str r1, [r2, #40] ; 0x28 + ldr r0, [r2, #40] ; 0x28 + str r0, [r2, #36] ; 0x24 + ldr r0, [r2, #36] ; 0x24 str r0, [r2, #32] mvn r0, #0 - str r0, [r2, #44] ;@ 0x2c - str r1, [r2, #60] ;@ 0x3c - str r1, [r2, #64] ;@ 0x40 - ldr r0, _03800944 ;@ =_03809774 + str r0, [r2, #44] ; 0x2c + str r1, [r2, #60] ; 0x3c + str r1, [r2, #64] ; 0x40 + ldr r0, _03800944 ; =_03809774 str r1, [r0] bl FUN_037FFF84 bl FUN_038008C4 - ldr r1, _03800948 ;@ =_03809780 + ldr r1, _03800948 ; =_03809780 str r0, [r1] bl FUN_03801074 _03800934: @@ -10393,47 +10405,47 @@ _03800944: .word _03809774 _03800948: .word _03809780 arm_func_start FUN_0380094C -FUN_0380094C: ;@ 0x0380094C +FUN_0380094C: ; 0x0380094C stmdb sp!, {r4, r5, r6, r7, r8, lr} - ldr r5, _03800A10 ;@ =_03809140 + ldr r5, _03800A10 ; =_03809140 bl FUN_037FB05C mov r4, r0 - add r6, r5, #244 ;@ 0xf4 + add r6, r5, #244 ; 0xf4 b _0380096C _03800964: mov r0, r6 bl FUN_037F9064 _0380096C: - ldr r0, [r5, #252] ;@ 0xfc + ldr r0, [r5, #252] ; 0xfc ands r0, r0, #4 bne _03800964 - ldr r0, [r5, #252] ;@ 0xfc + ldr r0, [r5, #252] ; 0xfc orr r0, r0, #4 - str r0, [r5, #252] ;@ 0xfc + str r0, [r5, #252] ; 0xfc mov r0, #0 - str r0, [r5, #60] ;@ 0x3c - str r0, [r5, #64] ;@ 0x40 + str r0, [r5, #60] ; 0x3c + str r0, [r5, #64] ; 0x40 mov r0, r4 bl FUN_037FB070 bl FUN_03800A14 mov r8, r0 - ldr r7, _03800A10 ;@ =_03809140 + ldr r7, _03800A10 ; =_03809140 mov r1, #0 ldr r0, [r7] str r1, [r0] - ldr r6, [r7, #60] ;@ 0x3c - ldr r5, [r7, #64] ;@ 0x40 + ldr r6, [r7, #60] ; 0x3c + ldr r5, [r7, #64] ; 0x40 bl FUN_037FB05C mov r4, r0 - ldr r0, [r7, #252] ;@ 0xfc - bic r0, r0, #76 ;@ 0x4c - str r0, [r7, #252] ;@ 0xfc - add r0, r7, #244 ;@ 0xf4 + ldr r0, [r7, #252] ; 0xfc + bic r0, r0, #76 ; 0x4c + str r0, [r7, #252] ; 0xfc + add r0, r7, #244 ; 0xf4 bl FUN_037F8FE8 - ldr r0, [r7, #252] ;@ 0xfc + ldr r0, [r7, #252] ; 0xfc ands r0, r0, #16 beq _038009E8 - add r0, r7, #72 ;@ 0x48 + add r0, r7, #72 ; 0x48 bl FUN_037F8FB4 _038009E8: mov r0, r4 @@ -10450,27 +10462,27 @@ _03800A04: _03800A10: .word _03809140 arm_func_start FUN_03800A14 -FUN_03800A14: ;@ 0x03800A14 +FUN_03800A14: ; 0x03800A14 stmfd sp!, {lr} sub sp, sp, #4 - mov r0, #-1207959552 ;@ 0xb8000000 + mov r0, #-1207959552 ; 0xb8000000 mov r1, #0 bl FUN_03800A80 - ldr r0, _03800A70 ;@ =_03807664 + ldr r0, _03800A70 ; =_03807664 ldr r0, [r0] - ldr r0, [r0, #96] ;@ 0x60 - bic r0, r0, #117440512 ;@ 0x7000000 - orr r1, r0, #-1493172224 ;@ 0xa7000000 - mov r0, #8192 ;@ 0x2000 + ldr r0, [r0, #96] ; 0x60 + bic r0, r0, #117440512 ; 0x7000000 + orr r1, r0, #-1493172224 ; 0xa7000000 + mov r0, #8192 ; 0x2000 rsb r0, r0, #0 and r0, r1, r0 - ldr r1, _03800A74 ;@ =0x040001A4 + ldr r1, _03800A74 ; =0x040001A4 str r0, [r1] _03800A50: ldr r0, [r1] - ands r0, r0, #8388608 ;@ 0x800000 + ands r0, r0, #8388608 ; 0x800000 beq _03800A50 - ldr r0, _03800A78 ;@ =0x04100010 + ldr r0, _03800A78 ; =0x04100010 ldr r0, [r0] add sp, sp, #4 ldmia sp!, {lr} @@ -10482,36 +10494,36 @@ _03800A7C: bx lr arm_func_start FUN_03800A80 -FUN_03800A80: ;@ 0x03800A80 - ldr r3, _03800AF8 ;@ =0x040001A4 +FUN_03800A80: ; 0x03800A80 + ldr r3, _03800AF8 ; =0x040001A4 _03800A84: ldr r2, [r3] - ands r2, r2, #-2147483648 ;@ 0x80000000 + ands r2, r2, #-2147483648 ; 0x80000000 bne _03800A84 - mov r3, #192 ;@ 0xc0 - ldr r2, _03800AFC ;@ =0x040001A1 + mov r3, #192 ; 0xc0 + ldr r2, _03800AFC ; =0x040001A1 strb r3, [r2] mov r3, r0, lsr #24 - ldr r2, _03800B00 ;@ =0x040001A8 + ldr r2, _03800B00 ; =0x040001A8 strb r3, [r2] mov r3, r0, lsr #16 - ldr r2, _03800B04 ;@ =0x040001A9 + ldr r2, _03800B04 ; =0x040001A9 strb r3, [r2] mov r3, r0, lsr #8 - ldr r2, _03800B08 ;@ =0x040001AA + ldr r2, _03800B08 ; =0x040001AA strb r3, [r2] - ldr r2, _03800B0C ;@ =0x040001AB + ldr r2, _03800B0C ; =0x040001AB strb r0, [r2] mov r2, r1, lsr #24 - ldr r0, _03800B10 ;@ =0x040001AC + ldr r0, _03800B10 ; =0x040001AC strb r2, [r0] mov r2, r1, lsr #16 - ldr r0, _03800B14 ;@ =0x040001AD + ldr r0, _03800B14 ; =0x040001AD strb r2, [r0] mov r2, r1, lsr #8 - ldr r0, _03800B18 ;@ =0x040001AE + ldr r0, _03800B18 ; =0x040001AE strb r2, [r0] - ldr r0, _03800B1C ;@ =0x040001AF + ldr r0, _03800B1C ; =0x040001AF strb r1, [r0] bx lr _03800AF8: .word 0x040001A4 @@ -10526,13 +10538,13 @@ _03800B18: .word 0x040001AE _03800B1C: .word 0x040001AF arm_func_start FUN_03800B20 -FUN_03800B20: ;@ 0x03800B20 +FUN_03800B20: ; 0x03800B20 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 - ldr r9, _03800D28 ;@ =_03809140 - add r5, r9, #72 ;@ 0x48 + ldr r9, _03800D28 ; =_03809140 + add r5, r9, #72 ; 0x48 mov r8, #0 - add r7, r9, #252 ;@ 0xfc + add r7, r9, #252 ; 0xfc mov r6, #1 mov r4, #3 mov fp, #11 @@ -10541,10 +10553,10 @@ _03800B44: bl FUN_037FB05C str r0, [sp] _03800B50: - ldr r0, [r9, #252] ;@ 0xfc + ldr r0, [r9, #252] ; 0xfc ands r0, r0, #4 bne _03800B88 - ldr r0, [r9, #252] ;@ 0xfc + ldr r0, [r9, #252] ; 0xfc ands r0, r0, #16 beq _03800B94 ldr r0, [r7] @@ -10556,11 +10568,11 @@ _03800B50: mov sl, r6 b _03800BA4 _03800B88: - ldr r0, [r9, #252] ;@ 0xfc + ldr r0, [r9, #252] ; 0xfc ands r0, r0, #8 bne _03800BA4 _03800B94: - str r5, [r9, #236] ;@ 0xec + str r5, [r9, #236] ; 0xec mov r0, r8 bl FUN_037F9064 b _03800B50 @@ -10572,7 +10584,7 @@ _03800BA4: ldr r0, [r9] str r8, [r0] ldr r2, [r9] - ldr r1, [r2, #76] ;@ 0x4c + ldr r1, [r2, #76] ; 0x4c ldr r0, [r9, #4] mov r0, r6, lsl r0 ands r0, r1, r0 @@ -10655,12 +10667,12 @@ _03800CC0: blt _03800CC0 bl FUN_037FB05C mov sl, r0 - ldr r0, [r9, #252] ;@ 0xfc - bic r0, r0, #76 ;@ 0x4c - str r0, [r9, #252] ;@ 0xfc - add r0, r9, #244 ;@ 0xf4 + ldr r0, [r9, #252] ; 0xfc + bic r0, r0, #76 ; 0x4c + str r0, [r9, #252] ; 0xfc + add r0, r9, #244 ; 0xf4 bl FUN_037F8FE8 - ldr r0, [r9, #252] ;@ 0xfc + ldr r0, [r9, #252] ; 0xfc ands r0, r0, #16 beq _03800D08 mov r0, r5 @@ -10671,21 +10683,21 @@ _03800D08: b _03800B44 _03800D14: mov r0, r9 - ldr r1, [r9, #68] ;@ 0x44 + ldr r1, [r9, #68] ; 0x44 mov lr, pc bx r1 b _03800B44 _03800D28: .word _03809140 arm_func_start FUN_03800D2C -FUN_03800D2C: ;@ 0x03800D2C +FUN_03800D2C: ; 0x03800D2C stmfd sp!, {lr} sub sp, sp, #4 cmp r0, #11 bne _03800DFC cmp r2, #0 beq _03800DFC - ldr r0, _03800E08 ;@ =_03809140 + ldr r0, _03800E08 ; =_03809140 ldr r2, [r0, #8] cmp r2, #0 streq r1, [r0, #4] @@ -10712,16 +10724,16 @@ _03800D98: beq _03800DC8 cmp r2, #1 streq r1, [r0] - ldreq r1, [r0, #252] ;@ 0xfc + ldreq r1, [r0, #252] ; 0xfc orreq r1, r1, #16 - streq r1, [r0, #252] ;@ 0xfc + streq r1, [r0, #252] ; 0xfc b _03800DC8 _03800DBC: - ldr r1, [r0, #252] ;@ 0xfc + ldr r1, [r0, #252] ; 0xfc orr r1, r1, #16 - str r1, [r0, #252] ;@ 0xfc + str r1, [r0, #252] ; 0xfc _03800DC8: - ldr r1, [r0, #252] ;@ 0xfc + ldr r1, [r0, #252] ; 0xfc ands r1, r1, #16 ldreq r1, [r0, #8] addeq r1, r1, #1 @@ -10729,10 +10741,10 @@ _03800DC8: beq _03800DFC mov r1, #0 str r1, [r0, #8] - ldr r1, [r0, #252] ;@ 0xfc + ldr r1, [r0, #252] ; 0xfc ands r1, r1, #4 - ldrne r0, [r0, #236] ;@ 0xec - addeq r0, r0, #72 ;@ 0x48 + ldrne r0, [r0, #236] ; 0xec + addeq r0, r0, #72 ; 0x48 bl FUN_037F8FB4 _03800DFC: add sp, sp, #4 @@ -10741,7 +10753,7 @@ _03800DFC: _03800E08: .word _03809140 arm_func_start FUN_03800E0C -FUN_03800E0C: ;@ 0x03800E0C +FUN_03800E0C: ; 0x03800E0C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 @@ -10764,7 +10776,7 @@ _03800E30: bx lr arm_func_start FUN_03800E54 -FUN_03800E54: ;@ 0x03800E54 +FUN_03800E54: ; 0x03800E54 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #0 @@ -10777,27 +10789,27 @@ FUN_03800E54: ;@ 0x03800E54 bx lr arm_func_start FUN_03800E7C -FUN_03800E7C: ;@ 0x03800E7C +FUN_03800E7C: ; 0x03800E7C stmfd sp!, {lr} sub sp, sp, #4 - ldr r0, _03800F50 ;@ =_038099A0 + ldr r0, _03800F50 ; =_038099A0 ldr r0, [r0] cmp r0, #0 bne _03800F44 - ldr r0, _03800F54 ;@ =0x027FFC40 + ldr r0, _03800F54 ; =0x027FFC40 ldrh r0, [r0] cmp r0, #2 beq _03800F44 - ldr r1, _03800F58 ;@ =_03807668 + ldr r1, _03800F58 ; =_03807668 ldr r3, [r1] mvn r0, #0 cmp r3, r0 - ldreq r0, _03800F5C ;@ =0x027FFC3C + ldreq r0, _03800F5C ; =0x027FFC3C ldreq r0, [r0] addeq r0, r0, #10 streq r0, [r1] beq _03800F44 - ldr r2, _03800F5C ;@ =0x027FFC3C + ldr r2, _03800F5C ; =0x027FFC3C ldr r0, [r2] cmp r0, r3 bcc _03800F44 @@ -10808,26 +10820,26 @@ FUN_03800E7C: ;@ 0x03800E7C cmp r0, #0 beq _03800F1C mov r1, #1 - ldr r0, _03800F50 ;@ =_038099A0 + ldr r0, _03800F50 ; =_038099A0 str r1, [r0] bl FUN_037FFF20 ldr r0, [r0, #12] cmp r0, #0 bne _03800F1C - ldr r0, _03800F60 ;@ =_0380766C + ldr r0, _03800F60 ; =_0380766C ldr r0, [r0] cmp r0, #0 bne _03800F44 _03800F1C: mov r1, #0 - ldr r0, _03800F60 ;@ =_0380766C + ldr r0, _03800F60 ; =_0380766C str r1, [r0] - ldr r0, _03800F50 ;@ =_038099A0 + ldr r0, _03800F50 ; =_038099A0 ldr r0, [r0] cmp r0, #0 beq _03800F44 mov r0, #17 - mov r1, #100 ;@ 0x64 + mov r1, #100 ; 0x64 bl FUN_03800E0C _03800F44: add sp, sp, #4 @@ -10840,28 +10852,28 @@ _03800F5C: .word 0x027FFC3C _03800F60: .word _0380766C arm_func_start FUN_03800F64 -FUN_03800F64: ;@ 0x03800F64 +FUN_03800F64: ; 0x03800F64 mov r2, #1 mov r0, r2 - ldr r1, _03800F88 ;@ =0x04000214 + ldr r1, _03800F88 ; =0x04000214 ldr r1, [r1] - ands r1, r1, #1048576 ;@ 0x100000 + ands r1, r1, #1048576 ; 0x100000 movne r0, #0 - ldrne r1, _03800F8C ;@ =_038099A8 + ldrne r1, _03800F8C ; =_038099A8 strne r2, [r1] bx lr _03800F88: .word 0x04000214 _03800F8C: .word _038099A8 arm_func_start FUN_03800F90 -FUN_03800F90: ;@ 0x03800F90 +FUN_03800F90: ; 0x03800F90 stmfd sp!, {lr} sub sp, sp, #4 - ldr r0, _03800FE8 ;@ =0x027FFC10 + ldr r0, _03800FE8 ; =0x027FFC10 ldrh r0, [r0] cmp r0, #0 - ldreq r0, _03800FEC ;@ =0x027FF800 - ldrne r0, _03800FF0 ;@ =0x027FFC00 + ldreq r0, _03800FEC ; =0x027FF800 + ldrne r0, _03800FF0 ; =0x027FFC00 ldr r0, [r0] str r0, [sp] bl FUN_0380094C @@ -10872,7 +10884,7 @@ FUN_03800F90: ;@ 0x03800F90 cmp r0, #0 moveq r2, #1 movne r2, #0 - ldr r1, _03800FF4 ;@ =_038099A8 + ldr r1, _03800FF4 ; =_038099A8 str r2, [r1] add sp, sp, #4 ldmia sp!, {lr} @@ -10883,14 +10895,14 @@ _03800FF0: .word 0x027FFC00 _03800FF4: .word _038099A8 arm_func_start FUN_03800FF8 -FUN_03800FF8: ;@ 0x03800FF8 +FUN_03800FF8: ; 0x03800FF8 stmfd sp!, {lr} sub sp, sp, #4 - ldr r0, _03801040 ;@ =_038099A8 + ldr r0, _03801040 ; =_038099A8 ldr r0, [r0] cmp r0, #0 bne _0380102C - ldr r0, _03801044 ;@ =0x027FFC1F + ldr r0, _03801044 ; =0x027FFC1F ldrb r0, [r0] ands r0, r0, #1 beq _03801028 @@ -10899,7 +10911,7 @@ FUN_03800FF8: ;@ 0x03800FF8 _03801028: bl FUN_03800F64 _0380102C: - ldr r0, _03801040 ;@ =_038099A8 + ldr r0, _03801040 ; =_038099A8 ldr r0, [r0] add sp, sp, #4 ldmia sp!, {lr} @@ -10908,10 +10920,10 @@ _03801040: .word _038099A8 _03801044: .word 0x027FFC1F arm_func_start FUN_03801048 -FUN_03801048: ;@ 0x03801048 +FUN_03801048: ; 0x03801048 stmfd sp!, {lr} sub sp, sp, #4 - and r0, r1, #63 ;@ 0x3f + and r0, r1, #63 ; 0x3f cmp r0, #1 bne _03801064 bl FUN_03800E54 @@ -10924,10 +10936,10 @@ _03801068: bx lr arm_func_start FUN_03801074 -FUN_03801074: ;@ 0x03801074 +FUN_03801074: ; 0x03801074 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 - ldr r0, _038010CC ;@ =_038099A4 + ldr r0, _038010CC ; =_038099A4 ldr r1, [r0] cmp r1, #0 bne _038010C0 @@ -10943,7 +10955,7 @@ _038010A0: cmp r0, #0 beq _038010A0 mov r0, #14 - ldr r1, _038010D0 ;@ =FUN_03801048 + ldr r1, _038010D0 ; =FUN_03801048 bl FUN_037FB7A8 _038010C0: add sp, sp, #4 diff --git a/arm7/asm/dtcm2.s b/arm7/asm/dtcm2.s index f4f86b88..40b14c39 100644 --- a/arm7/asm/dtcm2.s +++ b/arm7/asm/dtcm2.s @@ -6660,6 +6660,9 @@ _03806B24: .word _0380A3F0 _03806B28: .word _0380A400 _03806B2C: .word FUN_03806854 _03806B30: .word FUN_03806920 + + arm_func_start FUN_03806B34 +FUN_03806B34: ; 0x03806B34 ldr r1, _03806B6C ;@ =0x55555555 and r1, r1, r0, lsr #1 sub r2, r0, r1 diff --git a/arm7/asm/ext.s b/arm7/asm/ext.s new file mode 100644 index 00000000..070645ea --- /dev/null +++ b/arm7/asm/ext.s @@ -0,0 +1,29611 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + ; This file's BSS + ; Linking of BSS is a work in progress + .extern _06019980 + .extern _06019988 + .extern _060199A8 + .extern _060199B8 + .extern _060199D8 + .extern _060199E8 + .extern _06019A08 + .extern _0601AA88 + .extern _0601AEB4 + + arm_func_start FUN_06000000 +FUN_06000000: ; 0x06000000 + ldr r1, _0600002C ; =_0601A960 + ldr r2, [r1, #1360] ; 0x550 + strh r0, [r2, #50] ; 0x32 + add r1, r2, #256 ; 0x100 + ldrh r1, [r1, #136] ; 0x88 + cmp r1, #0 + addeq r0, r0, #2 + streqh r0, [r2, #58] ; 0x3a + addne r0, r0, #2 + strneh r0, [r2, #56] ; 0x38 + bx lr +_0600002C: .word _0601A960 + + arm_func_start FUN_06000030 +FUN_06000030: ; 0x06000030 + ldr r1, _0600005C ; =_0601A960 + ldr r2, [r1, #1360] ; 0x550 + strh r0, [r2, #48] ; 0x30 + add r1, r2, #256 ; 0x100 + ldrh r1, [r1, #136] ; 0x88 + cmp r1, #0 + addeq r0, r0, #4 + streqh r0, [r2, #56] ; 0x38 + addne r0, r0, #4 + strneh r0, [r2, #58] ; 0x3a + bx lr +_0600005C: .word _0601A960 + + arm_func_start FUN_06000060 +FUN_06000060: ; 0x06000060 + ldr r1, _060000AC ; =_0601A960 + ldr r2, [r1, #1360] ; 0x550 + strh r0, [r2, #54] ; 0x36 + strh r0, [r2, #50] ; 0x32 + add r1, r2, #256 ; 0x100 + ldrh r1, [r1, #136] ; 0x88 + cmp r1, #0 + addne r0, r0, #2 + movne r0, r0, lsl #16 + movne r0, r0, lsr #16 + strneh r0, [r2, #60] ; 0x3c + strneh r0, [r2, #56] ; 0x38 + bxne lr + add r0, r0, #2 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + strh r0, [r2, #62] ; 0x3e + strh r0, [r2, #58] ; 0x3a + bx lr +_060000AC: .word _0601A960 + + arm_func_start FUN_060000B0 +FUN_060000B0: ; 0x060000B0 + ldr r1, _060000FC ; =_0601A960 + ldr r2, [r1, #1360] ; 0x550 + strh r0, [r2, #48] ; 0x30 + strh r0, [r2, #52] ; 0x34 + add r1, r2, #256 ; 0x100 + ldrh r1, [r1, #136] ; 0x88 + cmp r1, #0 + addne r0, r0, #4 + movne r0, r0, lsl #16 + movne r0, r0, lsr #16 + strneh r0, [r2, #62] ; 0x3e + strneh r0, [r2, #58] ; 0x3a + bxne lr + add r0, r0, #4 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + strh r0, [r2, #60] ; 0x3c + strh r0, [r2, #56] ; 0x38 + bx lr +_060000FC: .word _0601A960 + + arm_func_start FUN_06000100 +FUN_06000100: ; 0x06000100 + ldr r0, _06000130 ; =_0601A960 + ldr r1, [r0, #1360] ; 0x550 + mov r0, #0 + strh r0, [r1, #56] ; 0x38 + strh r0, [r1, #58] ; 0x3a + strh r0, [r1, #48] ; 0x30 + strh r0, [r1, #50] ; 0x32 + strh r0, [r1, #60] ; 0x3c + strh r0, [r1, #62] ; 0x3e + strh r0, [r1, #52] ; 0x34 + strh r0, [r1, #54] ; 0x36 + bx lr +_06000130: .word _0601A960 + + arm_func_start FUN_06000134 +FUN_06000134: ; 0x06000134 + stmdb sp!, {r4, lr} + mov r4, #0 + bl FUN_060001A4 + ldr r1, _060001A0 ; =_0601A960 + ldr r2, [r1, #1356] ; 0x54c + cmp r2, #0 + beq _06000190 + mov ip, r4 + b _06000188 +_06000158: + mov r3, ip, lsl #4 + add r1, r2, ip, lsl #4 + ldr r1, [r1, #208] ; 0xd0 + ands r1, r1, #32768 ; 0x8000 + beq _06000184 + add r2, r2, #208 ; 0xd0 + add r4, r2, r3 + ldr r1, [r2, r3] + bic r1, r1, #32768 ; 0x8000 + str r1, [r2, r3] + b _06000190 +_06000184: + add ip, ip, #1 +_06000188: + cmp ip, #32 + blt _06000158 +_06000190: + bl FUN_060001AC + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr +_060001A0: .word _0601A960 + + arm_func_start FUN_060001A4 +FUN_060001A4: ; 0x060001A4 + ldr pc, _060001A8 ; =FUN_037FB05C +_060001A8: .word FUN_037FB05C + + arm_func_start FUN_060001AC +FUN_060001AC: ; 0x060001AC + ldr pc, _060001B0 ; =FUN_037FB070 +_060001B0: .word FUN_037FB070 + + arm_func_start FUN_060001B4 +FUN_060001B4: ; 0x060001B4 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl FUN_060001E8 + strh r6, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + ldmia sp!, {r4, r5, r6, lr} + bx lr + + arm_func_start FUN_060001E8 +FUN_060001E8: ; 0x060001E8 + ldr pc, _060001EC ; =FUN_03807534 +_060001EC: .word FUN_03807534 + + arm_func_start FUN_060001F0 +FUN_060001F0: ; 0x060001F0 + ldr pc, _060001F4 ; =FUN_03807590 +_060001F4: .word FUN_03807590 + + arm_func_start FUN_060001F8 +FUN_060001F8: ; 0x060001F8 + ldr r0, _06000200 ; =_0380B808 + bx lr +_06000200: .word _0380B808 + + arm_func_start FUN_06000204 +FUN_06000204: ; 0x06000204 + ldr r0, _0600020C ; =_0380B764 + bx lr +_0600020C: .word _0380B764 + + arm_func_start FUN_06000210 +FUN_06000210: ; 0x06000210 + stmdb sp!, {r4, lr} + bl FUN_060001A4 + mov r4, r0 + bl FUN_06000270 + ldr r0, _06000264 ; =_0380B808 + ldr r1, _06000268 ; =_0601A960 + ldr r1, [r1, #1400] ; 0x578 + bl FUN_06000278 + bl FUN_06008D18 + ldr r1, _06000268 ; =_0601A960 + ldr r1, [r1, #1404] ; 0x57c + bl FUN_06000278 + ldr r0, _0600026C ; =_0380B764 + ldr r1, _06000268 ; =_0601A960 + ldr r1, [r1, #1408] ; 0x580 + bl FUN_06000278 + bl FUN_06000280 + mov r0, r4 + bl FUN_060001AC + ldmia sp!, {r4, lr} + bx lr +_06000264: .word _0380B808 +_06000268: .word _0601A960 +_0600026C: .word _0380B764 + + arm_func_start FUN_06000270 +FUN_06000270: ; 0x06000270 + ldr pc, _06000274 ; =FUN_037F8D88 +_06000274: .word FUN_037F8D88 + + arm_func_start FUN_06000278 +FUN_06000278: ; 0x06000278 + ldr pc, _0600027C ; =FUN_037F8EB8 +_0600027C: .word FUN_037F8EB8 + + arm_func_start FUN_06000280 +FUN_06000280: ; 0x06000280 + ldr pc, _06000284 ; =FUN_037F8D50 +_06000284: .word FUN_037F8D50 + + arm_func_start FUN_06000288 +FUN_06000288: ; 0x06000288 + stmdb sp!, {r4, lr} + bl FUN_060001A4 + mov r4, r0 + bl FUN_06000270 + ldr r0, _060002DC ; =_0380B764 + ldr r1, _060002E0 ; =_0601A960 + ldr r1, [r1, #1420] ; 0x58c + bl FUN_06000278 + bl FUN_06008D18 + ldr r1, _060002E0 ; =_0601A960 + ldr r1, [r1, #1416] ; 0x588 + bl FUN_06000278 + ldr r0, _060002E4 ; =_0380B808 + ldr r1, _060002E0 ; =_0601A960 + ldr r1, [r1, #1412] ; 0x584 + bl FUN_06000278 + bl FUN_06000280 + mov r0, r4 + bl FUN_060001AC + ldmia sp!, {r4, lr} + bx lr +_060002DC: .word _0380B764 +_060002E0: .word _0601A960 +_060002E4: .word _0380B808 + + arm_func_start FUN_060002E8 +FUN_060002E8: ; 0x060002E8 + ldr r1, _0600034C ; =_0601A960 + ldr r1, [r1, #1356] ; 0x54c + ldrb r1, [r1, #83] ; 0x53 + cmp r1, #8 + bne _06000324 + cmp r0, #22 + movcc r0, #0 + bxcc lr + cmp r0, #28 + movcc r0, #1 + bxcc lr + cmp r0, #34 ; 0x22 + movcc r0, #2 + movcs r0, #3 + bx lr +_06000324: + cmp r0, #8 + movcc r0, #0 + bxcc lr + cmp r0, #14 + movcc r0, #1 + bxcc lr + cmp r0, #20 + movcc r0, #2 + movcs r0, #3 + bx lr +_0600034C: .word _0601A960 + + arm_func_start FUN_06000350 +FUN_06000350: ; 0x06000350 + mov r2, #0 + mov r3, r2 + ldr r1, _06000384 ; =_06019960 +_0600035C: + add r0, r1, r3 + add r0, r0, #4096 ; 0x1000 + ldrb r0, [r0, #1364] ; 0x554 + add r2, r2, r0 + add r3, r3, #1 + cmp r3, #32 + blt _0600035C + mov r0, r2, lsr #5 + ldr ip, _06000388 ; =FUN_060002E8 + bx ip +_06000384: .word _06019960 +_06000388: .word FUN_060002E8 + + arm_func_start FUN_0600038C +FUN_0600038C: ; 0x0600038C + mov r3, #0 + ldr r2, _060003BC ; =_06019960 +_06000394: + add r1, r2, r3 + add r1, r1, #4096 ; 0x1000 + strb r0, [r1, #1364] ; 0x554 + add r3, r3, #1 + cmp r3, #32 + blt _06000394 + mov r1, #0 + ldr r0, _060003C0 ; =_0601A960 + str r1, [r0, #1396] ; 0x574 + bx lr +_060003BC: .word _06019960 +_060003C0: .word _0601A960 + + arm_func_start FUN_060003C4 +FUN_060003C4: ; 0x060003C4 + ldr r1, _060003FC ; =_0601A960 + ldr r3, [r1, #1396] ; 0x574 + ldr r2, _06000400 ; =_0601AEB4 + strb r0, [r2, r3] + ldr r2, [r1, #1396] ; 0x574 + add r2, r2, #1 + and r2, r2, #31 + str r2, [r1, #1396] ; 0x574 + ldr r2, _06000404 ; =0x027FFF98 + ldrh r1, [r2] + eor r0, r0, r1, lsl #1 + eor r0, r0, r0, lsr #16 + strh r0, [r2] + bx lr +_060003FC: .word _0601A960 +_06000400: .word _0601AEB4 +_06000404: .word 0x027FFF98 + + arm_func_start FUN_06000408 +FUN_06000408: ; 0x06000408 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + ldr r0, _0600054C ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + add r0, r4, #224 ; 0xe0 + add r1, r5, #16 + mov r2, #6 + bl FUN_06000554 + mov r0, #7 + strh r0, [r5, #22] + add r0, r4, #256 ; 0x100 + ldrh r1, [r0, #244] ; 0xf4 + strh r1, [r5, #24] + ldrh r1, [r0, #236] ; 0xec + strh r1, [r5, #30] + ldrh r1, [r4, #230] ; 0xe6 + strh r1, [r5, #28] + ldr r1, [r4, #408] ; 0x198 + cmp r1, #0 + bne _06000480 + mov r0, #0 + strh r0, [r5, #32] + strh r0, [r5, #34] ; 0x22 + add r1, r5, #36 ; 0x24 + mov r2, #80 ; 0x50 + bl FUN_0600055C + mov r0, #0 + strh r0, [r5, #158] ; 0x9e + b _060004A8 +_06000480: + ldrh r0, [r0, #150] ; 0x96 + strh r0, [r5, #32] + ldrh r0, [r4, #196] ; 0xc4 + strh r0, [r5, #34] ; 0x22 + add r0, r4, #412 ; 0x19c + add r1, r5, #36 ; 0x24 + mov r2, #80 ; 0x50 + bl FUN_06000554 + mov r0, #1 + strh r0, [r5, #158] ; 0x9e +_060004A8: + mov r0, #1 + strh r0, [r5, #116] ; 0x74 + strh r0, [r5, #118] ; 0x76 + ldrh r0, [r4, #230] ; 0xe6 + cmp r0, #1 + moveq r0, #0 + streqh r0, [r5, #120] ; 0x78 + movne r0, #16 + strneh r0, [r5, #120] ; 0x78 + mov r0, #10 + strh r0, [r5, #122] ; 0x7a + cmp r6, #38 ; 0x26 + bne _060004F0 + mov r0, #0 + add r1, r5, #124 ; 0x7c + mov r2, #32 + bl FUN_0600055C + b _06000510 +_060004F0: + mov r0, #0 + add r1, r5, #124 ; 0x7c + mov r2, #8 + bl FUN_0600055C + ldr r0, _06000550 ; =0x0000FFFF + add r1, r5, #132 ; 0x84 + mov r2, #24 + bl FUN_0600055C +_06000510: + add r0, r4, #256 ; 0x100 + ldrh r0, [r0, #238] ; 0xee + strh r0, [r5, #156] ; 0x9c + mov r0, r5 + bl FUN_06002810 + ldrh r2, [r0, #4] + cmp r2, #0 + moveq r0, #1 + beq _06000544 + mov r0, r6 + mov r1, #512 ; 0x200 + bl FUN_060001B4 + mov r0, #0 +_06000544: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600054C: .word _0601A960 +_06000550: .word 0x0000FFFF + + arm_func_start FUN_06000554 +FUN_06000554: ; 0x06000554 + ldr pc, _06000558 ; =FUN_037FB478 +_06000558: .word FUN_037FB478 + + arm_func_start FUN_0600055C +FUN_0600055C: ; 0x0600055C + ldr pc, _06000560 ; =FUN_037FB300 +_06000560: .word FUN_037FB300 + + arm_func_start FUN_06000564 +FUN_06000564: ; 0x06000564 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r2, r0 + ldr r0, [r1, #8] + str r0, [r2, #4] + ldrh r0, [r1, #12] + strh r0, [r2, #8] + ldrh r0, [r1, #18] + cmp r0, #0 + movne r3, #2 + moveq r3, #0 + ldrh r0, [r1, #14] + cmp r0, #0 + movne ip, #1 + moveq ip, #0 + ldrh r0, [r1, #20] + cmp r0, #0 + movne lr, #4 + moveq lr, #0 + orr r0, ip, r3 + orr r0, lr, r0 + strb r0, [r2, #11] + ldrh r0, [r1, #4] + strb r0, [r2, #10] + mov r0, #1 + strh r0, [r2] + strb r0, [r2, #2] + mov r0, #0 + strb r0, [r2, #3] + ldrh r0, [r1, #52] ; 0x34 + strh r0, [r2, #12] + ldrh r0, [r1, #54] ; 0x36 + strh r0, [r2, #14] + ldrb r3, [r2, #10] + cmp r3, #0 + beq _06000608 + ldr r0, [r1] + add r1, r2, #16 + add r2, r3, #1 + bic r2, r2, #1 + bl FUN_06000554 +_06000608: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_06000614 +FUN_06000614: ; 0x06000614 + ldr r1, _0600068C ; =_0601A960 + ldr r1, [r1, #1360] ; 0x550 + add r3, r1, #224 ; 0xe0 + ldrb r2, [r0] + ldrb r1, [r1, #224] ; 0xe0 + cmp r2, r1 + bne _06000684 + ldrb r2, [r0, #1] + ldrb r1, [r3, #1] + cmp r2, r1 + bne _06000684 + ldrb r2, [r0, #2] + ldrb r1, [r3, #2] + cmp r2, r1 + bne _06000684 + ldrb r2, [r0, #3] + ldrb r1, [r3, #3] + cmp r2, r1 + bne _06000684 + ldrb r2, [r0, #4] + ldrb r1, [r3, #4] + cmp r2, r1 + bne _06000684 + ldrb r1, [r0, #5] + ldrb r0, [r3, #5] + cmp r1, r0 + moveq r0, #1 + bxeq lr +_06000684: + mov r0, #0 + bx lr +_0600068C: .word _0601A960 + + arm_func_start FUN_06000690 +FUN_06000690: ; 0x06000690 + stmdb sp!, {r4, lr} + mov r4, r1 + cmp r2, #0 + bne _060006E8 + ldr r0, _060006F0 ; =_060199E8 + mov r2, #0 + bl FUN_060006F8 + cmp r0, #0 + bne _060006E8 + ldr r0, _060006F4 ; =_0601A960 + ldr r0, [r0, #1356] ; 0x54c + cmp r0, #0 + beq _060006E8 + bl FUN_060001E8 + ldrh r1, [r4] + strh r1, [r0] + mov r1, #8 + strh r1, [r0, #2] + mov r1, #0 + strh r1, [r0, #4] + strh r1, [r0, #6] + bl FUN_060001F0 +_060006E8: + ldmia sp!, {r4, lr} + bx lr +_060006F0: .word _060199E8 +_060006F4: .word _0601A960 + + arm_func_start FUN_060006F8 +FUN_060006F8: ; 0x060006F8 + ldr pc, _060006FC ; =FUN_037F9924 +_060006FC: .word FUN_037F9924 + + arm_func_start FUN_06000700 +FUN_06000700: ; 0x06000700 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r1, r0 + ldr r0, _06000778 ; =_06019960 + mov r2, #1 + bl FUN_060006F8 + ldr r0, _0600077C ; =_060199B8 + add r1, sp, #0 + mov r2, #1 + bl FUN_06000780 + ldr r1, [sp] + ldrh r0, [r1, #14] + add r0, r1, r0, lsl #1 + ldrh r0, [r0, #20] + cmp r0, #14 + bne _06000768 + bl FUN_060001E8 + mov r1, #128 ; 0x80 + strh r1, [r0] + mov r1, #19 + strh r1, [r0, #2] + mov r1, #24 + strh r1, [r0, #4] + bl FUN_060001F0 + bl FUN_06000788 + bl FUN_06000790 +_06000768: + ldr r0, [sp] + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06000778: .word _06019960 +_0600077C: .word _060199B8 + + arm_func_start FUN_06000780 +FUN_06000780: ; 0x06000780 + ldr pc, _06000784 ; =FUN_037F9884 +_06000784: .word FUN_037F9884 + + arm_func_start FUN_06000788 +FUN_06000788: ; 0x06000788 + ldr pc, _0600078C ; =FUN_037FBAA8 +_0600078C: .word FUN_037FBAA8 + + arm_func_start FUN_06000790 +FUN_06000790: ; 0x06000790 + ldr pc, _06000794 ; =FUN_037FB1F0 +_06000794: .word FUN_037FB1F0 + + arm_func_start FUN_06000798 +FUN_06000798: ; 0x06000798 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #12 + mov r5, r0 + mov r4, r1 + ldr r1, [r4] + ldr r0, _06000924 ; =_0601A960 + str r1, [r0, #1344] ; 0x540 + ldr r1, [r5, #36] ; 0x24 + str r1, [r0, #1348] ; 0x544 + ldr r1, [r5, #40] ; 0x28 + str r1, [r0, #1352] ; 0x548 + mov r1, #0 + str r1, [r0, #1356] ; 0x54c + str r1, [r0, #1360] ; 0x550 + ldr r0, _06000928 ; =_06019960 + ldr r1, _0600092C ; =_06019980 + mov r2, #2 + bl FUN_06000964 + ldr r0, _06000930 ; =_06019988 + ldr r1, _06000934 ; =_060199A8 + mov r2, #4 + bl FUN_06000964 + ldr r0, _06000938 ; =_060199B8 + ldr r1, _0600093C ; =_060199D8 + mov r2, #4 + bl FUN_06000964 + ldr r0, _06000940 ; =_060199E8 + ldr r1, _06000944 ; =_06019A08 + mov r2, #32 + bl FUN_06000964 + ldr r0, _06000928 ; =_06019960 + str r0, [r5, #16] + ldr r0, _06000930 ; =_06019988 + str r0, [r5, #20] + ldr r1, [r4, #8] + ldr r0, _06000924 ; =_0601A960 + str r1, [r0, #1400] ; 0x578 + ldr r1, [r4, #24] + str r1, [r0, #1404] ; 0x57c + ldr r1, [r4, #16] + str r1, [r0, #1408] ; 0x580 + ldr r1, [r4, #4] + str r1, [r0, #1412] ; 0x584 + ldr r1, [r4, #20] + str r1, [r0, #1416] ; 0x588 + ldr r1, [r4, #12] + str r1, [r0, #1420] ; 0x58c + ldr r0, _06000948 ; =_0601AE88 + bl FUN_0600096C + mov r0, #1024 ; 0x400 + str r0, [sp] + ldr r0, [r4, #4] + str r0, [sp, #4] + ldr r0, _0600094C ; =_0380B808 + ldr r1, _06000950 ; =FUN_060020E0 + mov r2, #0 + ldr r3, _06000948 ; =_0601AE88 + bl FUN_06000974 + ldr r0, _0600094C ; =_0380B808 + bl FUN_0600097C + mov r0, #4096 ; 0x1000 + str r0, [sp] + ldr r0, [r4, #12] + str r0, [sp, #4] + ldr r0, _06000954 ; =_0380B764 + ldr r1, _06000958 ; =FUN_06002188 + mov r2, #0 + ldr r3, _0600095C ; =_0601AA88 + bl FUN_06000974 + ldr r0, _06000954 ; =_0380B764 + bl FUN_0600097C + mov r3, #0 + mov r2, r3 + ldr r1, _06000928 ; =_06019960 +_060008C0: + add r0, r1, r3 + add r0, r0, #4096 ; 0x1000 + strb r2, [r0, #1364] ; 0x554 + add r3, r3, #1 + cmp r3, #32 + blt _060008C0 + ldr r0, _06000924 ; =_0601A960 + str r2, [r0, #1396] ; 0x574 + bl FUN_06000984 + cmp r0, #0 + bne _060008F0 + bl FUN_0600098C +_060008F0: + bl FUN_06000994 + mov r0, #10 + ldr r1, _06000960 ; =FUN_06000690 + bl FUN_0600099C + mov r0, #2 + str r0, [r5, #24] + ldr r0, [r4, #20] + str r0, [r5, #12] + mov r0, r5 + bl FUN_06008D2C + add sp, sp, #12 + ldmia sp!, {r4, r5, lr} + bx lr +_06000924: .word _0601A960 +_06000928: .word _06019960 +_0600092C: .word _06019980 +_06000930: .word _06019988 +_06000934: .word _060199A8 +_06000938: .word _060199B8 +_0600093C: .word _060199D8 +_06000940: .word _060199E8 +_06000944: .word _06019A08 +_06000948: .word _0601AE88 +_0600094C: .word _0380B808 +_06000950: .word FUN_060020E0 +_06000954: .word _0380B764 +_06000958: .word FUN_06002188 +_0600095C: .word _0601AA88 +_06000960: .word FUN_06000690 + + arm_func_start FUN_06000964 +FUN_06000964: ; 0x06000964 + ldr pc, _06000968 ; =FUN_037F99B8 +_06000968: .word FUN_037F99B8 + + arm_func_start FUN_0600096C +FUN_0600096C: ; 0x0600096C + ldr pc, _06000970 ; =FUN_037F9B68 +_06000970: .word FUN_037F9B68 + + arm_func_start FUN_06000974 +FUN_06000974: ; 0x06000974 + ldr pc, _06000978 ; =FUN_037F9244 +_06000978: .word FUN_037F9244 + + arm_func_start FUN_0600097C +FUN_0600097C: ; 0x0600097C + ldr pc, _06000980 ; =FUN_037F8FB4 +_06000980: .word FUN_037F8FB4 + + arm_func_start FUN_06000984 +FUN_06000984: ; 0x06000984 + ldr pc, _06000988 ; =FUN_037FAFD0 +_06000988: .word FUN_037FAFD0 + + arm_func_start FUN_0600098C +FUN_0600098C: ; 0x0600098C + ldr pc, _06000990 ; =FUN_037FAFE0 +_06000990: .word FUN_037FAFE0 + + arm_func_start FUN_06000994 +FUN_06000994: ; 0x06000994 + ldr pc, _06000998 ; =FUN_037FB5B0 +_06000998: .word FUN_037FB5B0 + + arm_func_start FUN_0600099C +FUN_0600099C: ; 0x0600099C + ldr pc, _060009A0 ; =FUN_037FB7A8 +_060009A0: .word FUN_037FB7A8 + + arm_func_start FUN_060009A4 +FUN_060009A4: ; 0x060009A4 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _060009C8 ; =_0380B8D8 + bl FUN_060009D0 + ldr r0, _060009CC ; =_0380B8AC + bl FUN_060009D0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_060009C8: .word _0380B8D8 +_060009CC: .word _0380B8AC + + arm_func_start FUN_060009D0 +FUN_060009D0: ; 0x060009D0 + ldr pc, _060009D4 ; =FUN_037FA650 +_060009D4: .word FUN_037FA650 + + arm_func_start FUN_060009D8 +FUN_060009D8: ; 0x060009D8 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _060009FC ; =_0380B8D8 + bl FUN_06000A04 + ldr r0, _06000A00 ; =_0380B8AC + bl FUN_06000A04 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_060009FC: .word _0380B8D8 +_06000A00: .word _0380B8AC + + arm_func_start FUN_06000A04 +FUN_06000A04: ; 0x06000A04 + ldr pc, _06000A08 ; =FUN_037FA900 +_06000A08: .word FUN_037FA900 + + arm_func_start FUN_06000A0C +FUN_06000A0C: ; 0x06000A0C + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_060001E8 + mov r1, #128 ; 0x80 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + mov r1, #19 + strh r1, [r0, #4] + bl FUN_060001F0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_06000A40 +FUN_06000A40: ; 0x06000A40 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #12 + mov r8, r0 + ldr r0, _06000D00 ; =_0601A960 + ldr r6, [r0, #1360] ; 0x550 + ldrh r0, [r6] + cmp r0, #7 + beq _06000A68 + cmp r0, #9 + bne _06000BF4 +_06000A68: + add r0, r8, #16 + add r1, sp, #0 + mov r2, #6 + bl FUN_06000554 + mov r5, #0 + mov r7, r5 + mov r4, #1 + mov r9, #6 + b _06000B6C +_06000A8C: + bl FUN_060001A4 + mov fp, r0 + add ip, r6, #256 ; 0x100 + ldrh r3, [ip, #130] ; 0x82 + add r1, r7, #1 + mov r0, r4, lsl r1 + ands r0, r3, r0 + beq _06000B60 + mul r2, r7, r9 + add r0, r6, r2 + ldrb lr, [sp] + ldrb sl, [r0, #296] ; 0x128 + cmp lr, sl + bne _06000B60 + ldrb lr, [sp, #1] + ldrb sl, [r0, #297] ; 0x129 + cmp lr, sl + bne _06000B60 + ldrb lr, [sp, #2] + ldrb sl, [r0, #298] ; 0x12a + cmp lr, sl + bne _06000B60 + ldrb lr, [sp, #3] + ldrb sl, [r0, #299] ; 0x12b + cmp lr, sl + bne _06000B60 + ldrb sl, [sp, #4] + ldrb lr, [r0, #300] ; 0x12c + cmp sl, lr + bne _06000B60 + ldrb sl, [sp, #5] + ldrb r0, [r0, #301] ; 0x12d + cmp sl, r0 + bne _06000B60 + mov r0, r1, lsl #16 + mov r5, r0, lsr #16 + mvn r1, r4, lsl r5 + and r0, r3, r1 + strh r0, [ip, #130] ; 0x82 + ldrh r0, [r6, #134] ; 0x86 + and r0, r0, r1 + strh r0, [r6, #134] ; 0x86 + mov r1, #0 + add r0, r6, r5, lsl #3 + str r1, [r0, #1848] ; 0x738 + str r1, [r0, #1852] ; 0x73c + add r0, r6, #296 ; 0x128 + add r0, r0, r2 + mov r2, #6 + bl FUN_06000D08 + mov r0, fp + bl FUN_060001AC + b _06000B74 +_06000B60: + mov r0, fp + bl FUN_060001AC + add r7, r7, #1 +_06000B6C: + cmp r7, #15 + blt _06000A8C +_06000B74: + cmp r5, #0 + beq _06000CF4 + bl FUN_060001E8 + mov r4, r0 + mov r0, #8 + strh r0, [r4] + mov r0, #0 + strh r0, [r4, #2] + mov r0, #9 + strh r0, [r4, #8] + ldrh r0, [r8, #22] + strh r0, [r4, #18] + strh r5, [r4, #16] + add r0, r8, #16 + add r1, r4, #10 + mov r2, #6 + bl FUN_06000554 + ldrh r0, [r6, #48] ; 0x30 + strh r0, [r4, #44] ; 0x2c + ldrh r0, [r6, #50] ; 0x32 + strh r0, [r4, #46] ; 0x2e + mov r0, r4 + bl FUN_060001F0 + ldr r0, [r6, #12] + cmp r0, #1 + bne _06000CF4 + mov r0, #1 + mov r0, r0, lsl r5 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + bl FUN_06006F48 + b _06000CF4 +_06000BF4: + mov r5, #0 + bl FUN_060001A4 + mov r4, r0 + add r1, r6, #256 ; 0x100 + ldrh r1, [r1, #130] ; 0x82 + cmp r1, #0 + bne _06000C18 + bl FUN_060001AC + b _06000CF4 +_06000C18: + ldr r0, [r6, #12] + cmp r0, #1 + bne _06000C38 + mov r0, r5 + str r0, [r6, #12] + mov r5, #1 + bl FUN_06006978 + bl FUN_06000288 +_06000C38: + mov r1, #0 + add r0, r6, #256 ; 0x100 + strh r1, [r0, #130] ; 0x82 + strh r1, [r6, #134] ; 0x86 + str r1, [r6, #20] + str r1, [r6, #16] + str r1, [r6, #28] + str r1, [r6, #408] ; 0x198 + strh r1, [r0, #150] ; 0x96 + add r0, r6, #412 ; 0x19c + mov r2, #80 ; 0x50 + bl FUN_06000D08 + bl FUN_06000100 + mov r0, #0 + strh r0, [r6, #194] ; 0xc2 + mov r0, #3 + strh r0, [r6] + mov r0, r4 + bl FUN_060001AC + bl FUN_060001E8 + mov r4, r0 + mov r0, #12 + strh r0, [r4] + mov r0, #0 + strh r0, [r4, #2] + mov r0, #9 + strh r0, [r4, #8] + ldrh r0, [r8, #22] + strh r0, [r4, #12] + add r0, r6, #256 ; 0x100 + ldrh r0, [r0, #136] ; 0x88 + strh r0, [r4, #10] + ldr r0, _06000D04 ; =0x0000018A + add r0, r6, r0 + add r1, r4, #16 + mov r2, #6 + bl FUN_06000554 + ldrh r0, [r6, #48] ; 0x30 + strh r0, [r4, #22] + ldrh r0, [r6, #50] ; 0x32 + strh r0, [r4, #24] + mov r0, r4 + bl FUN_060001F0 + cmp r5, #0 + beq _06000CF4 + mov r0, #1 + bl FUN_06006F48 +_06000CF4: + add sp, sp, #12 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06000D00: .word _0601A960 +_06000D04: .word 0x0000018A + + arm_func_start FUN_06000D08 +FUN_06000D08: ; 0x06000D08 + ldr pc, _06000D0C ; =FUN_037FB3E4 +_06000D0C: .word FUN_037FB3E4 + + arm_func_start FUN_06000D10 +FUN_06000D10: ; 0x06000D10 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + ldr r0, _06000E90 ; =_0601A960 + ldr r5, [r0, #1360] ; 0x550 + ldrh r6, [r7, #22] + cmp r6, #0 + beq _06000E84 + cmp r6, #16 + bcs _06000E84 + ldrh r0, [r5, #246] ; 0xf6 + cmp r0, #0 + bne _06000DB0 + bl FUN_06000134 + movs r4, r0 + moveq r0, #0 + beq _06000D7C + mov r0, #34 ; 0x22 + str r0, [r4] + add r0, r7, #16 + add r1, r4, #4 + mov r2, #6 + bl FUN_06000554 + ldr r0, _06000E94 ; =_060199E8 + mov r1, r4 + mov r2, #0 + bl FUN_060006F8 +_06000D7C: + cmp r0, #0 + bne _06000E84 + bl FUN_060001E8 + mov r1, #128 ; 0x80 + strh r1, [r0] + mov r1, #8 + strh r1, [r0, #2] + mov r1, #22 + strh r1, [r0, #4] + mov r1, #34 ; 0x22 + strh r1, [r0, #6] + bl FUN_060001F0 + b _06000E84 +_06000DB0: + bl FUN_060001A4 + mov r4, r0 + mov r2, #1 + add r0, r5, #256 ; 0x100 + ldrh r1, [r0, #130] ; 0x82 + orr r1, r1, r2, lsl r6 + strh r1, [r0, #130] ; 0x82 + ldrh r1, [r5, #134] ; 0x86 + mvn r0, r2, lsl r6 + and r0, r1, r0 + strh r0, [r5, #134] ; 0x86 + bl FUN_06000E98 + orr r1, r1, #0 + orr r2, r0, #1 + add r0, r5, r6, lsl #3 + str r2, [r0, #1848] ; 0x738 + str r1, [r0, #1852] ; 0x73c + add r0, r7, #16 + add r1, r5, #296 ; 0x128 + sub r3, r6, #1 + mov r2, #6 + mla r1, r3, r2, r1 + bl FUN_06000554 + mov r0, r4 + bl FUN_060001AC + mov r0, #1 + add r1, r5, #504 ; 0x1f8 + add r1, r1, r6, lsl #4 + mov r2, #16 + bl FUN_0600055C + bl FUN_060001E8 + mov r4, r0 + mov r0, #8 + strh r0, [r4] + mov r0, #0 + strh r0, [r4, #2] + mov r0, #7 + strh r0, [r4, #8] + add r0, r7, #16 + add r1, r4, #10 + mov r2, #6 + bl FUN_06000554 + strh r6, [r4, #16] + add r0, r7, #34 ; 0x22 + add r1, r4, #20 + mov r2, #24 + bl FUN_06000EA0 + ldrh r0, [r5, #48] ; 0x30 + strh r0, [r4, #44] ; 0x2c + ldrh r0, [r5, #50] ; 0x32 + strh r0, [r4, #46] ; 0x2e + mov r0, r4 + bl FUN_060001F0 +_06000E84: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06000E90: .word _0601A960 +_06000E94: .word _060199E8 + + arm_func_start FUN_06000E98 +FUN_06000E98: ; 0x06000E98 + ldr pc, _06000E9C ; =FUN_037FA364 +_06000E9C: .word FUN_037FA364 + + arm_func_start FUN_06000EA0 +FUN_06000EA0: ; 0x06000EA0 + ldr pc, _06000EA4 ; =FUN_037FB318 +_06000EA4: .word FUN_037FB318 + + arm_func_start FUN_06000EA8 +FUN_06000EA8: ; 0x06000EA8 + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_060001E8 + mov r1, #128 ; 0x80 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + mov r1, #18 + strh r1, [r0, #4] + bl FUN_060001F0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_06000EDC +FUN_06000EDC: ; 0x06000EDC + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_060001E8 + mov r1, #128 ; 0x80 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + mov r1, #17 + strh r1, [r0, #4] + bl FUN_060001F0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_06000F10 +FUN_06000F10: ; 0x06000F10 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r1, _06001034 ; =_0601A960 + ldr r5, [r1, #1360] ; 0x550 + ldrh r1, [r5, #154] ; 0x9a + cmp r1, #1 + bne _06000F94 + ldrh r0, [r0, #16] + cmp r0, #32 + bne _06000F94 + bl FUN_060001A4 + mov r4, r0 + ldr r0, _06001038 ; =_0380B8AC + bl FUN_060009D0 + mov r0, #0 + strh r0, [r5, #132] ; 0x84 + mov r0, r4 + bl FUN_060001AC + mov r1, #0 + strh r1, [r5, #138] ; 0x8a + mov r0, #1 + bl FUN_06007168 + bl FUN_060001E8 + mov r1, #128 ; 0x80 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + mov r1, #23 + strh r1, [r0, #4] + mov r1, #1 + strh r1, [r0, #6] + bl FUN_060001F0 + b _06001028 +_06000F94: + bl FUN_06000134 + movs r1, r0 + moveq r0, #0 + beq _06000FF8 + mov r0, #37 ; 0x25 + str r0, [r1] + ldr r0, _0600103C ; =0x00008003 + str r0, [r1, #8] + ldrh r0, [r5] + cmp r0, #9 + beq _06000FC8 + cmp r0, #7 + bne _06000FD4 +_06000FC8: + ldr r0, _06001040 ; =0x00007FFE + str r0, [r1, #4] + b _06000FEC +_06000FD4: + cmp r0, #10 + beq _06000FE4 + cmp r0, #8 + bne _06000FEC +_06000FE4: + mov r0, #1 + str r0, [r1, #4] +_06000FEC: + ldr r0, _06001044 ; =_060199E8 + mov r2, #0 + bl FUN_060006F8 +_06000FF8: + cmp r0, #0 + bne _06001028 + bl FUN_060001E8 + mov r1, #128 ; 0x80 + strh r1, [r0] + mov r1, #8 + strh r1, [r0, #2] + mov r1, #22 + strh r1, [r0, #4] + mov r1, #37 ; 0x25 + strh r1, [r0, #6] + bl FUN_060001F0 +_06001028: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06001034: .word _0601A960 +_06001038: .word _0380B8AC +_0600103C: .word 0x00008003 +_06001040: .word 0x00007FFE +_06001044: .word _060199E8 + + arm_func_start FUN_06001048 +FUN_06001048: ; 0x06001048 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + ldr r0, _06001138 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + ldr r0, [r4, #16] + cmp r0, #0 + beq _0600112C + ldrb r1, [r5, #31] + ands r0, r1, #2 + movne r0, r1, asr #2 + andne r0, r0, #255 ; 0xff + moveq r0, r1, asr #2 + addeq r0, r0, #25 + andeq r0, r0, #255 ; 0xff + bl FUN_060003C4 + bl FUN_06000350 + strh r0, [r4, #188] ; 0xbc + add r5, r5, #16 + add r0, r5, #30 + bl FUN_06000614 + cmp r0, #1 + beq _0600112C + ldrh r1, [r5, #6] + ldr r0, _0600113C ; =0x000005E4 + cmp r1, r0 + bhi _0600112C + ldrh r0, [r4, #174] ; 0xae + eor r0, r0, #1 + strh r0, [r4, #174] ; 0xae + ldrh r0, [r4, #174] ; 0xae + add r0, r4, r0, lsl #2 + ldr r4, [r0, #176] ; 0xb0 + mov r0, r5 + mov r1, r4 + ldrh r2, [r5, #6] + add r2, r2, #44 ; 0x2c + add r2, r2, #1 + bic r2, r2, #1 + bl FUN_06000554 + add r0, r5, #24 + add r1, r4, #24 + mov r2, #6 + bl FUN_06000554 + add r0, r5, #30 + add r1, r4, #30 + mov r2, #6 + bl FUN_06000554 + bl FUN_060001E8 + mov r1, #17 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + mov r1, #15 + strh r1, [r0, #4] + str r4, [r0, #8] + bl FUN_060001F0 +_0600112C: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06001138: .word _0601A960 +_0600113C: .word 0x000005E4 + + arm_func_start FUN_06001140 +FUN_06001140: ; 0x06001140 + stmdb sp!, {r4, lr} + bl FUN_06000134 + movs r1, r0 + ldr r4, _060011C8 ; =_06019960 + ldr r0, _060011CC ; =_0601A960 + ldr r0, [r0, #1360] ; 0x550 + mov r2, #0 + strh r2, [r0, #94] ; 0x5e + strh r2, [r0, #96] ; 0x60 + strh r2, [r0, #136] ; 0x88 + beq _06001180 + mov r0, #44 ; 0x2c + str r0, [r1] + add r0, r4, #136 ; 0x88 + bl FUN_060006F8 + mov r2, r0 +_06001180: + cmp r2, #0 + bne _060011C0 + add r0, r4, #4096 ; 0x1000 + ldr r0, [r0, #1356] ; 0x54c + cmp r0, #0 + beq _060011C0 + bl FUN_060001E8 + mov r1, #128 ; 0x80 + strh r1, [r0] + mov r1, #8 + strh r1, [r0, #2] + mov r1, #22 + strh r1, [r0, #4] + mov r1, #44 ; 0x2c + strh r1, [r0, #6] + bl FUN_060001F0 +_060011C0: + ldmia sp!, {r4, lr} + bx lr +_060011C8: .word _06019960 +_060011CC: .word _0601A960 + + arm_func_start FUN_060011D0 +FUN_060011D0: ; 0x060011D0 + ldr ip, _060011D8 ; =FUN_06001140 + bx ip +_060011D8: .word FUN_06001140 + + arm_func_start FUN_060011DC +FUN_060011DC: ; 0x060011DC + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #4 + add r9, r0, #16 + ldr r1, _06001434 ; =_0601A960 + ldr r5, [r1, #1360] ; 0x550 + mov r7, #0 + ldr r1, [r5, #12] + cmp r1, #0 + beq _06001428 + ldrh r0, [r0, #14] + cmp r0, #0 + bne _06001258 + mov r8, #1 + ldr r2, _06001438 ; =0x048080F8 + ldrh r1, [r2] + ldr r0, _0600143C ; =0x048080FA + ldrh r3, [r0] + ldrh r2, [r2] + cmp r1, r2 + ldrhih r3, [r0] + mov r0, r3, lsl #12 + orr r0, r0, r2, asr #4 + mov r0, r0, lsl #16 + mov r1, r0, lsr #16 + ldrh r0, [r5, #130] ; 0x82 + sub r0, r1, r0 + mov r0, r0, lsl #16 + mov r0, r0, asr #16 + cmp r0, #0 + bgt _0600125C + b _06001428 +_06001258: + mov r8, r7 +_0600125C: + bl FUN_060001A4 + mov r4, r0 + ldrh r1, [r5, #132] ; 0x84 + cmp r1, #0 + bne _06001278 + bl FUN_060001AC + b _06001428 +_06001278: + mov r0, #0 + strh r0, [r5, #132] ; 0x84 + ldrh r6, [r5, #144] ; 0x90 + ldr r0, _06001440 ; =_0380B8AC + bl FUN_060009D0 + mov r0, r4 + bl FUN_060001AC + mov r0, #1 + ldrh r3, [r5, #140] ; 0x8c + cmp r3, #0 + beq _060012C8 + cmp r8, #0 + bne _060012C4 + ldrh r2, [r9, #46] ; 0x2e + add r1, r5, #256 ; 0x100 + ldrh r1, [r1, #136] ; 0x88 + mov r1, r0, lsl r1 + ands r1, r2, r1 + bne _060012C8 +_060012C4: + mov r0, #0 +_060012C8: + cmp r3, #0 + movne r1, #0 + strneh r1, [r5, #140] ; 0x8c + ldrh r1, [r5, #142] ; 0x8e + cmp r1, #0 + beq _06001304 + mov r1, #0 + strh r1, [r5, #142] ; 0x8e + cmp r0, #0 + movne r1, #1 + mov r0, r8 + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + bl FUN_06007168 + mov r7, r0 +_06001304: + cmp r6, #0 + beq _06001428 + bl FUN_060001E8 + mov r4, r0 + mov r0, #14 + strh r0, [r4] + cmp r8, #0 + movne r0, #9 + strneh r0, [r4, #2] + bne _06001354 + ldrh r2, [r9, #46] ; 0x2e + mov r1, #1 + add r0, r5, #256 ; 0x100 + ldrh r0, [r0, #136] ; 0x88 + mov r0, r1, lsl r0 + ands r0, r2, r0 + movne r0, #15 + strneh r0, [r4, #2] + moveq r0, #0 + streqh r0, [r4, #2] +_06001354: + mov r0, #13 + strh r0, [r4, #4] + mov r0, #0 + str r0, [r4, #8] + cmp r8, #0 + bne _060013B4 + ldrh r0, [r9, #12] + strh r0, [r4, #12] + ldrh r0, [r9, #14] + strh r0, [r4, #14] + add r0, r9, #24 + add r1, r4, #16 + mov r2, #6 + bl FUN_06000554 + add r0, r9, #30 + add r1, r4, #22 + mov r2, #6 + bl FUN_06000554 + ldrh r0, [r9, #42] ; 0x2a + strh r0, [r4, #28] + ldrh r0, [r9, #44] ; 0x2c + strh r0, [r4, #30] + ldrh r0, [r9, #46] ; 0x2e + strh r0, [r4, #32] +_060013B4: + mov r0, r4 + bl FUN_060001F0 + cmp r6, #0 + beq _06001428 + cmp r7, #1 + beq _060013D8 + ldrh r0, [r5, #94] ; 0x5e + cmp r0, #0 + bne _06001414 +_060013D8: + ldrh r0, [r5, #70] ; 0x46 + cmp r0, #0 + beq _0600140C + ldr r0, _06001444 ; =_0380B8D8 + bl FUN_060009D0 + mov r0, #0 + str r0, [sp] + ldr r0, _06001444 ; =_0380B8D8 + ldr r1, [r5, #80] ; 0x50 + ldr r2, [r5, #84] ; 0x54 + ldr r3, _06001448 ; =FUN_060011D0 + bl FUN_0600144C + b _06001428 +_0600140C: + bl FUN_06001140 + b _06001428 +_06001414: + mov r1, #0 + strh r1, [r5, #94] ; 0x5e + mov r0, #1 + strh r0, [r5, #96] ; 0x60 + strh r1, [r5, #136] ; 0x88 +_06001428: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} + bx lr +_06001434: .word _0601A960 +_06001438: .word 0x048080F8 +_0600143C: .word 0x048080FA +_06001440: .word _0380B8AC +_06001444: .word _0380B8D8 +_06001448: .word FUN_060011D0 + + arm_func_start FUN_0600144C +FUN_0600144C: ; 0x0600144C + ldr pc, _06001450 ; =FUN_037FA75C +_06001450: .word FUN_037FA75C + + arm_func_start FUN_06001454 +FUN_06001454: ; 0x06001454 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r5, _060014E4 ; =_06019960 + ldr r1, _060014E8 ; =_0601A960 + ldr r0, [r1, #1348] ; 0x544 + ldr r1, [r1, #1352] ; 0x548 + mov r2, #64 ; 0x40 + bl FUN_060014F4 + mov r4, r0 + ldr r0, _060014EC ; =0x00000185 + strh r0, [r4, #12] + mov r2, #0 + strh r2, [r4, #14] + ldr r0, _060014F0 ; =_06019988 + mov r1, r4 + bl FUN_060006F8 + cmp r0, #0 + bne _060014D8 + mov r0, r4 + bl FUN_06001F4C + add r0, r5, #4096 ; 0x1000 + ldr r0, [r0, #1356] ; 0x54c + cmp r0, #0 + beq _060014D8 + bl FUN_060001E8 + mov r2, #128 ; 0x80 + strh r2, [r0] + mov r1, #8 + strh r1, [r0, #2] + mov r1, #22 + strh r1, [r0, #4] + strh r2, [r0, #6] + bl FUN_060001F0 +_060014D8: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_060014E4: .word _06019960 +_060014E8: .word _0601A960 +_060014EC: .word 0x00000185 +_060014F0: .word _06019988 + + arm_func_start FUN_060014F4 +FUN_060014F4: ; 0x060014F4 + ldr pc, _060014F8 ; =FUN_037FA138 +_060014F8: .word FUN_037FA138 + + arm_func_start FUN_060014FC +FUN_060014FC: ; 0x060014FC + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #4 + mov sl, r0 + ldr r0, _06001830 ; =_0601A960 + ldr r5, [r0, #1360] ; 0x550 + ldrb r1, [sl, #31] + ands r0, r1, #2 + movne r0, r1, asr #2 + andne r1, r0, #255 ; 0xff + moveq r0, r1, asr #2 + addeq r0, r0, #25 + andeq r1, r0, #255 ; 0xff + ldrh r0, [r5, #190] ; 0xbe + cmp r0, r1 + strhih r1, [r5, #190] ; 0xbe + ldr r0, [r5, #12] + cmp r0, #0 + beq _06001824 + ldrh r0, [r5, #96] ; 0x60 + cmp r0, #1 + moveq r0, #0 + streqh r0, [r5, #96] ; 0x60 + ldrh r6, [r5, #142] ; 0x8e + ldrh r0, [r5, #112] ; 0x70 + eor r0, r0, #1 + strh r0, [r5, #112] ; 0x70 + ldrh r0, [r5, #112] ; 0x70 + add r0, r5, r0, lsl #2 + ldr r8, [r0, #116] ; 0x74 + ldrh r0, [sl, #22] + add r2, r0, #48 ; 0x30 + ldrh r0, [r5, #114] ; 0x72 + cmp r0, r2 + movcc r2, r0 + add r0, sl, #16 + mov r1, r8 + bl FUN_06000554 + bl FUN_060001A4 + mov fp, r0 + mov r7, #0 + ldrh r0, [r5, #132] ; 0x84 + cmp r0, #1 + bne _060015B4 + mov r7, #1 + ldr r0, _06001834 ; =_0380B8AC + bl FUN_060009D0 +_060015B4: + mov r9, #1 + strh r9, [r5, #132] ; 0x84 + ldrh r0, [r8, #10] + strh r0, [r5, #130] ; 0x82 + ldrh r4, [sl, #24] + ands r0, r4, #8192 ; 0x2000 + moveq r9, #0 + strh r9, [r5, #144] ; 0x90 + mov lr, #0 + str lr, [sp] + ldr r0, _06001834 ; =_0380B8AC + ldrh r2, [r8, #10] + ldrh r1, [r8, #12] + sub r1, r2, r1 + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + add r1, r1, #128 ; 0x80 + mov r2, r1, lsl #4 + mov r1, r2, asr #31 + ldr r3, _06001838 ; =0x000082EA + umull ip, r3, r2, r3 + mla r3, r2, lr, r3 + ldr r2, _06001838 ; =0x000082EA + mla r3, r1, r2, r3 + mov lr, r3, lsr #6 + mov r1, ip, lsr #6 + orr r1, r1, r3, lsl #26 + mov r2, lr, lsr #10 + mov r1, r1, lsr #10 + orr r1, r1, lr, lsl #22 + ldr r3, _0600183C ; =FUN_06001454 + bl FUN_0600144C + and r0, r4, #10240 ; 0x2800 + cmp r0, #10240 ; 0x2800 + moveq r1, #1 + movne r1, #0 + and r0, r4, #24576 ; 0x6000 + cmp r0, #24576 ; 0x6000 + moveq r2, #1 + movne r2, #0 + cmp r2, #0 + movne r0, #0 + strneh r0, [r5, #138] ; 0x8a + cmp r1, #0 + movne r0, #1 + moveq r0, #0 + strh r0, [r5, #142] ; 0x8e + cmp r2, #0 + movne r0, #1 + moveq r0, #0 + strh r0, [r5, #140] ; 0x8c + cmp r9, #0 + beq _060016C4 + ldrh r0, [r8, #44] ; 0x2c + sub r0, r0, #102 ; 0x66 + mov r1, #4 + bl FUN_06001840 + subs r1, r0, #32 + bmi _060016C4 + ldrh r0, [r5, #54] ; 0x36 + cmp r1, r0 + movgt r1, r0 + ldrh r0, [r5, #50] ; 0x32 + cmp r1, r0 + beq _060016C4 + mov r0, r1, lsl #16 + mov r0, r0, lsr #16 + bl FUN_06000000 +_060016C4: + mov r0, fp + bl FUN_060001AC + cmp r7, #0 + beq _06001710 + cmp r6, #1 + bne _060016E8 + mov r0, r7 + mov r1, #0 + bl FUN_06007168 +_060016E8: + bl FUN_060001E8 + mov r1, #14 + strh r1, [r0] + mov r1, #9 + strh r1, [r0, #2] + mov r1, #13 + strh r1, [r0, #4] + mov r1, #0 + str r1, [r0, #8] + bl FUN_060001F0 +_06001710: + cmp r9, #0 + bne _0600173C + ldrh r0, [r8, #6] + cmp r0, #2 + bcc _06001824 + ldrh r0, [r8, #48] ; 0x30 + ands r0, r0, #32768 ; 0x8000 + movne r0, #1 + moveq r0, #0 + strh r0, [r5, #94] ; 0x5e + b _06001824 +_0600173C: + add r0, sl, #40 ; 0x28 + add r1, r8, #24 + mov r2, #6 + bl FUN_06000554 + add r0, sl, #46 ; 0x2e + add r1, r8, #30 + mov r2, #6 + bl FUN_06000554 + ldrh r0, [r8, #6] + cmp r0, #2 + bcc _060017CC + sub r0, r0, #2 + strh r0, [r8, #6] + ldrh r0, [r8, #48] ; 0x30 + ands r0, r0, #32768 ; 0x8000 + movne r0, #1 + moveq r0, #0 + strh r0, [r5, #94] ; 0x5e + bl FUN_060001E8 + mov r1, #14 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + mov r1, #12 + strh r1, [r0, #4] + str r8, [r0, #8] + bl FUN_060001F0 + ldrh r3, [r8, #6] + cmp r3, #0 + beq _060017F8 + str r8, [sp] + mov r0, #0 + ldrh r1, [r8, #48] ; 0x30 + add r2, r8, #50 ; 0x32 + bl FUN_06006CAC + b _060017F8 +_060017CC: + mov r0, #0 + strh r0, [r8, #6] + strh r0, [r5, #94] ; 0x5e + bl FUN_060001E8 + mov r1, #14 + strh r1, [r0] + strh r1, [r0, #2] + mov r1, #12 + strh r1, [r0, #4] + str r8, [r0, #8] + bl FUN_060001F0 +_060017F8: + ldr r2, [r5, #1976] ; 0x7b8 + ldr r1, [r5, #1980] ; 0x7bc + mov r0, #0 + cmp r1, r0 + cmpeq r2, r0 + beq _06001824 + bl FUN_06000E98 + orr r1, r1, #0 + orr r0, r0, #1 + str r0, [r5, #1848] ; 0x738 + str r1, [r5, #1852] ; 0x73c +_06001824: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06001830: .word _0601A960 +_06001834: .word _0380B8AC +_06001838: .word 0x000082EA +_0600183C: .word FUN_06001454 + + arm_func_start FUN_06001840 +FUN_06001840: ; 0x06001840 + ldr pc, _06001844 ; =_s32_div_f +_06001844: .word _s32_div_f + + arm_func_start FUN_06001848 +FUN_06001848: ; 0x06001848 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r2, _060018C4 ; =_0601A960 + ldr lr, [r2, #1360] ; 0x550 + ldrh r4, [lr, #190] ; 0xbe + cmp r1, #0 + bne _060018B8 + ldrh r3, [r0, #20] + cmp r3, #1 + bcc _060018B8 + mov r5, #0 + add ip, r0, #26 + b _060018AC +_0600187C: + ldrh r2, [r0, #22] + mla r1, r2, r5, ip + ldrb r2, [r1, #3] + ands r1, r2, #2 + movne r1, r2, asr #2 + andne r1, r1, #255 ; 0xff + moveq r1, r2, asr #2 + addeq r1, r1, #25 + andeq r1, r1, #255 ; 0xff + cmp r1, r4 + movcc r4, r1 + add r5, r5, #1 +_060018AC: + cmp r5, r3 + blt _0600187C + strh r4, [lr, #190] ; 0xbe +_060018B8: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_060018C4: .word _0601A960 + + arm_func_start FUN_060018C8 +FUN_060018C8: ; 0x060018C8 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + bl FUN_06000134 + movs r1, r0 + ldr r4, _0600194C ; =_06019960 + moveq r0, #0 + beq _06001900 + mov r0, #43 ; 0x2b + str r0, [r1] + str r5, [r1, #4] + add r0, r4, #136 ; 0x88 + mov r2, #0 + bl FUN_060006F8 +_06001900: + cmp r0, #0 + bne _06001940 + add r0, r4, #4096 ; 0x1000 + ldr r0, [r0, #1356] ; 0x54c + cmp r0, #0 + beq _06001940 + bl FUN_060001E8 + mov r1, #128 ; 0x80 + strh r1, [r0] + mov r1, #8 + strh r1, [r0, #2] + mov r1, #22 + strh r1, [r0, #4] + mov r1, #43 ; 0x2b + strh r1, [r0, #6] + bl FUN_060001F0 +_06001940: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_0600194C: .word _06019960 + + arm_func_start FUN_06001950 +FUN_06001950: ; 0x06001950 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + ldr ip, _06001960 ; =FUN_060018C8 + bx ip +_06001960: .word FUN_060018C8 + + arm_func_start FUN_06001964 +FUN_06001964: ; 0x06001964 + stmdb sp!, {r4, lr} + ldr r0, _060019DC ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + bl FUN_06000134 + movs r1, r0 + moveq r0, #0 + beq _0600199C + mov r0, #45 ; 0x2d + str r0, [r1] + ldrh r0, [r4, #104] ; 0x68 + str r0, [r1, #4] + ldr r0, _060019E0 ; =_060199E8 + mov r2, #0 + bl FUN_060006F8 +_0600199C: + cmp r0, #0 + movne r0, #1 + strneh r0, [r4, #102] ; 0x66 + bne _060019D4 + bl FUN_060001E8 + mov r1, #128 ; 0x80 + strh r1, [r0] + mov r1, #8 + strh r1, [r0, #2] + mov r1, #22 + strh r1, [r0, #4] + mov r1, #45 ; 0x2d + strh r1, [r0, #6] + bl FUN_060001F0 +_060019D4: + ldmia sp!, {r4, lr} + bx lr +_060019DC: .word _0601A960 +_060019E0: .word _060199E8 + + arm_func_start FUN_060019E4 +FUN_060019E4: ; 0x060019E4 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #44 ; 0x2c + mov sl, r0 + ldr r0, _06001D34 ; =_0601A960 + ldr r8, [r0, #1360] ; 0x550 + mov r5, #0 + ldr r0, [r8, #12] + cmp r0, #0 + beq _06001D28 + ldrh r0, [sl, #18] + cmp r0, #0 + bne _06001A2C + ldrh r1, [r8, #102] ; 0x66 + cmp r1, #1 + bne _06001A34 + ldrh r0, [sl, #16] + cmp r0, #0 + beq _06001A34 +_06001A2C: + bl FUN_06001964 + b _06001D28 +_06001A34: + cmp r1, #0 + movne r0, #0 + strneh r0, [r8, #102] ; 0x66 + ldrh r0, [r8, #112] ; 0x70 + add r0, r8, r0, lsl #2 + ldr r7, [r0, #116] ; 0x74 + ldrh r1, [sl, #22] + ldrh r0, [sl, #20] + mul r0, r1, r0 + add r2, r0, #10 + ldrh r0, [r8, #114] ; 0x72 + cmp r0, r2 + movcc r2, r0 + add r0, sl, #16 + mov r1, r7 + bl FUN_06000554 + mov r0, sl + ldrh r1, [r7] + ldrh r2, [r8, #146] ; 0x92 + bl FUN_06001848 + bl FUN_06000E98 + mov r9, #0 + mov r2, #1 + str r2, [sp, #16] + orr r1, r1, #0 + str r1, [sp, #8] + orr r0, r0, #1 + str r0, [sp, #4] + add r6, r7, #10 + ldrh fp, [r7] + str r9, [sp, #20] + mov r0, #37 ; 0x25 + str r0, [sp, #24] + mov r0, #128 ; 0x80 + str r0, [sp, #28] + mov r0, #8 + str r0, [sp, #32] + mov r0, #22 + str r0, [sp, #36] ; 0x24 + b _06001C3C +_06001AD4: + ldrh r4, [r6, #4] + ldrh r1, [r6] + cmp r4, #1 + bcc _06001C28 + cmp r4, #15 + bhi _06001C28 + cmp r1, #2 + bcc _06001B50 + ldr r0, _06001D38 ; =0x0000FFFF + cmp r1, r0 + beq _06001B50 + sub r0, r1, #2 + strh r0, [r6] + ldrh r2, [r8, #134] ; 0x86 + ldr r1, [sp, #16] + orr r1, r2, r1, lsl r4 + strh r1, [r8, #134] ; 0x86 + add r2, r8, r4, lsl #3 + ldr r1, [sp, #4] + str r1, [r2, #1848] ; 0x738 + ldr r1, [sp, #8] + str r1, [r2, #1852] ; 0x73c + mov r0, r0, lsl #16 + movs r3, r0, lsr #16 + beq _06001C28 + str r7, [sp] + mov r0, r4 + ldrh r1, [r6, #8] + add r2, r6, #10 + bl FUN_06006CAC + b _06001C28 +_06001B50: + cmp r1, #0 + bne _06001C28 + add r1, r8, r4, lsl #3 + ldr r0, [r1, #1848] ; 0x738 + ldr r3, [r1, #1852] ; 0x73c + ldr r1, [sp, #16] + mov r1, r1, lsl r4 + str r1, [sp, #12] + ldr r1, [sp, #16] + orr fp, fp, r1, lsl r4 + ldr r2, [r8, #1976] ; 0x7b8 + ldr r1, [r8, #1980] ; 0x7bc + mov ip, #0 + cmp r1, ip + cmpeq r2, ip + beq _06001C28 + cmp r3, ip + cmpeq r0, ip + beq _06001C28 + ldr ip, [sp, #4] + subs r0, ip, r0 + ldr ip, [sp, #8] + sbc r3, ip, r3 + cmp r3, r1 + cmpeq r0, r2 + bls _06001C28 + bl FUN_06000134 + movs r1, r0 + add r2, r8, r4, lsl #3 + ldr r0, [sp, #20] + str r0, [r2, #1848] ; 0x738 + str r0, [r2, #1852] ; 0x73c + beq _06001BF8 + ldr r0, [sp, #24] + str r0, [r1] + ldr r0, [sp, #12] + str r0, [r1, #4] + ldr r0, _06001D3C ; =0x00008001 + str r0, [r1, #8] + ldr r0, _06001D40 ; =_060199E8 + ldr r2, [sp, #20] + bl FUN_060006F8 +_06001BF8: + cmp r0, #0 + bne _06001C28 + bl FUN_060001E8 + ldr r1, [sp, #28] + strh r1, [r0] + ldr r1, [sp, #32] + strh r1, [r0, #2] + ldr r1, [sp, #36] ; 0x24 + strh r1, [r0, #4] + ldr r1, [sp, #24] + strh r1, [r0, #6] + bl FUN_060001F0 +_06001C28: + add r0, r9, #1 + mov r0, r0, lsl #16 + mov r9, r0, lsr #16 + ldrh r0, [r7, #6] + add r6, r6, r0 +_06001C3C: + ldrh r0, [r7, #4] + cmp r9, r0 + bcc _06001AD4 + mov r0, #0 + mov r1, fp, lsl #16 + mov r1, r1, lsr #16 + bl FUN_06007168 + ldrh r0, [r7] + cmp r0, #0 + movne r5, #1 + bl FUN_060001E8 + mov r1, #14 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + mov r1, #11 + strh r1, [r0, #4] + str r7, [r0, #8] + bl FUN_060001F0 + ldrh r0, [r8, #112] ; 0x70 + eor r0, r0, #1 + strh r0, [r8, #112] ; 0x70 + bl FUN_060001A4 + cmp r5, #0 + ldreqsh r1, [r8, #98] ; 0x62 + subeq r1, r1, #1 + streqh r1, [r8, #98] ; 0x62 + ldrsh r1, [r8, #100] ; 0x64 + cmp r1, #0 + subgt r1, r1, #1 + strgth r1, [r8, #100] ; 0x64 + ldrsh r1, [r8, #98] ; 0x62 + cmp r1, #0 + ble _06001CD4 + ldrsh r1, [r8, #100] ; 0x64 + cmp r1, #0 + movgt r4, #1 + bgt _06001CD8 +_06001CD4: + mov r4, #0 +_06001CD8: + bl FUN_060001AC + cmp r4, #0 + beq _06001D28 + cmp r5, #1 + ldreqh r4, [sl, #16] + ldrne r4, _06001D38 ; =0x0000FFFF + ldrh r0, [r8, #68] ; 0x44 + cmp r0, #0 + beq _06001D20 + ldr r0, _06001D44 ; =_0380B8D8 + bl FUN_060009D0 + str r4, [sp] + ldr r0, _06001D44 ; =_0380B8D8 + ldr r1, [r8, #72] ; 0x48 + ldr r2, [r8, #76] ; 0x4c + ldr r3, _06001D48 ; =FUN_06001950 + bl FUN_0600144C + b _06001D28 +_06001D20: + mov r0, r4 + bl FUN_060018C8 +_06001D28: + add sp, sp, #44 ; 0x2c + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06001D34: .word _0601A960 +_06001D38: .word 0x0000FFFF +_06001D3C: .word 0x00008001 +_06001D40: .word _060199E8 +_06001D44: .word _0380B8D8 +_06001D48: .word FUN_06001950 + + arm_func_start FUN_06001D4C +FUN_06001D4C: ; 0x06001D4C + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _06001D94 ; =_0601A960 + ldr r0, [r0, #1360] ; 0x550 + ldrh r0, [r0, #194] ; 0xc2 + cmp r0, #0 + beq _06001D88 + bl FUN_060001E8 + mov r1, #12 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + mov r1, #8 + strh r1, [r0, #8] + bl FUN_060001F0 +_06001D88: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06001D94: .word _0601A960 + + arm_func_start FUN_06001D98 +FUN_06001D98: ; 0x06001D98 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + ldr r0, _06001EEC ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + add r6, r7, #60 ; 0x3c + ldrb r1, [r7, #31] + ands r0, r1, #2 + movne r0, r1, asr #2 + andne r2, r0, #255 ; 0xff + moveq r0, r1, asr #2 + addeq r0, r0, #25 + andeq r2, r0, #255 ; 0xff + ldr r1, _06001EF0 ; =0x027FFF98 + ldrh r0, [r1] + eor r0, r2, r0, lsl #1 + eor r0, r0, r0, lsr #16 + strh r0, [r1] + ldrh r0, [r4] + cmp r0, #8 + beq _06001DF4 + cmp r0, #10 + bne _06001EE0 +_06001DF4: + ldrh r1, [r4, #186] ; 0xba + ldrh r0, [r6, #8] + cmp r1, r0 + beq _06001E6C + bl FUN_06000134 + movs r1, r0 + moveq r0, #0 + beq _06001E38 + mov r0, #37 ; 0x25 + str r0, [r1] + mov r0, #1 + str r0, [r1, #4] + ldr r0, _06001EF4 ; =0x00008002 + str r0, [r1, #8] + ldr r0, _06001EF8 ; =_060199E8 + mov r2, #0 + bl FUN_060006F8 +_06001E38: + cmp r0, #0 + bne _06001EE0 + bl FUN_060001E8 + mov r1, #128 ; 0x80 + strh r1, [r0] + mov r1, #8 + strh r1, [r0, #2] + mov r1, #22 + strh r1, [r0, #4] + mov r1, #37 ; 0x25 + strh r1, [r0, #6] + bl FUN_060001F0 + b _06001EE0 +_06001E6C: + ldr r0, _06001EEC ; =_0601A960 + ldr r0, [r0, #1360] ; 0x550 + ldrh r0, [r0, #194] ; 0xc2 + cmp r0, #0 + beq _06001EE0 + bl FUN_060001E8 + mov r5, r0 + mov r0, #128 ; 0x80 + strh r0, [r5] + mov r0, #0 + strh r0, [r5, #2] + mov r0, #16 + strh r0, [r5, #4] + ldrh r0, [r6, #8] + strh r0, [r5, #6] + ldrh r0, [r4] + strh r0, [r5, #8] + ldrh r0, [r7, #22] + strh r0, [r5, #10] + ldrh r2, [r5, #10] + cmp r2, #128 ; 0x80 + bhi _06001ED8 + mov r0, r6 + add r1, r5, #12 + add r2, r2, #1 + bic r2, r2, #1 + bl FUN_06000EA0 +_06001ED8: + mov r0, r5 + bl FUN_060001F0 +_06001EE0: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06001EEC: .word _0601A960 +_06001EF0: .word 0x027FFF98 +_06001EF4: .word 0x00008002 +_06001EF8: .word _060199E8 + + arm_func_start FUN_06001EFC +FUN_06001EFC: ; 0x06001EFC + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _06001F44 ; =_0601A960 + ldr r0, [r0, #1360] ; 0x550 + ldrh r0, [r0, #194] ; 0xc2 + cmp r0, #0 + beq _06001F38 + bl FUN_060001E8 + mov r1, #8 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + mov r1, #2 + strh r1, [r0, #8] + bl FUN_060001F0 +_06001F38: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06001F44: .word _0601A960 + + arm_func_start FUN_06001F48 +FUN_06001F48: ; 0x06001F48 + bx lr + + arm_func_start FUN_06001F4C +FUN_06001F4C: ; 0x06001F4C + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + bl FUN_060001A4 + mov r4, r0 + ldr r1, _06001F88 ; =_0601A960 + ldr r0, [r1, #1348] ; 0x544 + ldr r1, [r1, #1352] ; 0x548 + mov r2, r5 + bl FUN_06001F8C + mov r0, r4 + bl FUN_060001AC + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06001F88: .word _0601A960 + + arm_func_start FUN_06001F8C +FUN_06001F8C: ; 0x06001F8C + ldr pc, _06001F90 ; =FUN_037FA0C4 +_06001F90: .word FUN_037FA0C4 + + arm_func_start FUN_06001F94 +FUN_06001F94: ; 0x06001F94 + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r1, _060020D0 ; =_0601A960 + ldr r2, [r1, #1356] ; 0x54c + cmp r2, #0 + beq _060020C8 + ldr r1, [r1, #1360] ; 0x550 + ldrh r1, [r1] + cmp r1, #1 + beq _060020C8 + ldrh r2, [r4, #12] + ldr r1, _060020D4 ; =0x00000182 + cmp r2, r1 + bgt _0600201C + cmp r2, r1 + bge _06002098 + cmp r2, #141 ; 0x8d + bgt _06002010 + subs r1, r2, #132 ; 0x84 + addpl pc, pc, r1, lsl #2 + b _060020B8 + b _0600204C + b _06002054 + b _0600205C + b _06002064 + b _0600206C + b _060020B8 + b _060020B8 + b _06002074 + b _0600207C + b _06002084 +_06002010: + cmp r2, #384 ; 0x180 + beq _0600208C + b _060020B8 +_0600201C: + ldr r1, _060020D8 ; =0x00000185 + cmp r2, r1 + bgt _0600203C + cmp r2, r1 + bge _060020A8 + cmp r2, #388 ; 0x184 + beq _060020A0 + b _060020B8 +_0600203C: + ldr r1, _060020DC ; =0x00000186 + cmp r2, r1 + beq _060020B0 + b _060020B8 +_0600204C: + bl FUN_06000A0C + b _060020C0 +_06002054: + bl FUN_06000A40 + b _060020C0 +_0600205C: + bl FUN_06000D10 + b _060020C0 +_06002064: + bl FUN_06000EA8 + b _060020C0 +_0600206C: + bl FUN_06000EDC + b _060020C0 +_06002074: + bl FUN_06001D4C + b _060020C0 +_0600207C: + bl FUN_06001EFC + b _060020C0 +_06002084: + bl FUN_06001D98 + b _060020C0 +_0600208C: + mov r0, r4 + bl FUN_06001048 + b _060020C0 +_06002098: + bl FUN_060014FC + b _060020C0 +_060020A0: + bl FUN_060019E4 + b _060020C0 +_060020A8: + bl FUN_060011DC + b _060020C0 +_060020B0: + bl FUN_06000F10 + b _060020C0 +_060020B8: + mov r0, r4 + bl FUN_06001F48 +_060020C0: + mov r0, r4 + bl FUN_06001F4C +_060020C8: + ldmia sp!, {r4, lr} + bx lr +_060020D0: .word _0601A960 +_060020D4: .word 0x00000182 +_060020D8: .word 0x00000185 +_060020DC: .word 0x00000186 + + arm_func_start FUN_060020E0 +FUN_060020E0: ; 0x060020E0 + stmdb sp!, {r4, r5, r6, r7, lr} + + arm_func_start FUN_060020E4 +FUN_060020E4: ; 0x060020E4 + sub sp, sp, #4 + ldr r0, _06002178 ; =_06019960 + add r7, r0, #88 ; 0x58 + mov r4, #1 + add r6, r0, #40 ; 0x28 + add r5, sp, #0 +_060020FC: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_06000780 + ldr r1, [sp] + cmp r1, #0 + bne _06002120 + bl FUN_0600217C + b _0600216C +_06002120: + ldrh r2, [r1, #12] + and r0, r2, #255 ; 0xff + mov r0, r0, lsl #16 + mov r3, r0, lsr #16 + and r0, r2, #65280 ; 0xff00 + mov r0, r0, lsl #16 + movs r0, r0, lsr #16 + beq _06002148 + cmp r0, #256 ; 0x100 + bne _0600215C +_06002148: + ands r0, r3, #128 ; 0x80 + beq _0600215C + mov r0, r1 + bl FUN_06001F94 + b _060020FC +_0600215C: + mov r0, r7 + mov r2, r4 + bl FUN_060006F8 + b _060020FC +_0600216C: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06002178: .word _06019960 + + arm_func_start FUN_0600217C +FUN_0600217C: ; 0x0600217C + ldr pc, _06002180 ; =FUN_037F9218 +_06002180: .word FUN_037F9218 + + arm_func_start FUN_06002184 +FUN_06002184: ; 0x06002184 + bx lr + + arm_func_start FUN_06002188 +FUN_06002188: ; 0x06002188 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + sub sp, sp, #8 + ldr r1, _06002228 ; =_06019960 + ldr r0, _0600222C ; =_0601A960 + ldr sl, [r0, #1360] ; 0x550 + mov r6, #1 + ldr r5, _06002230 ; =_06019268 + mov r4, #0 + add r8, r1, #136 ; 0x88 + add r7, sp, #0 +_060021B0: + mov r0, r8 + mov r1, r7 + mov r2, r6 + bl FUN_06000780 + ldr r0, [sp] + cmp r0, #0 + bne _060021D4 + bl FUN_0600217C + b _0600221C +_060021D4: + ldrh r9, [r0] + ands r0, r9, #32768 ; 0x8000 + bicne r0, r9, #32768 ; 0x8000 + movne r0, r0, lsl #16 + movne r9, r0, lsr #16 + cmp r9, #46 ; 0x2e + bcs _0600220C + str r6, [sl, #4] + strh r9, [sl, #2] + ldr r0, [sp] + ldr r1, [r5, r9, lsl #2] + mov lr, pc + bx r1 + str r4, [sl, #4] +_0600220C: + orr r1, r9, #32768 ; 0x8000 + ldr r0, [sp] + strh r1, [r0] + b _060021B0 +_0600221C: + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + bx lr +_06002228: .word _06019960 +_0600222C: .word _0601A960 +_06002230: .word _06019268 + + arm_func_start FUN_06002234 +FUN_06002234: ; 0x06002234 + stmdb sp!, {r4, lr} + mov r3, #0 + strh r3, [r0] + strh r3, [r0, #2] + strh r3, [r0, #4] + strh r3, [r0, #6] + strh r3, [r0, #8] + strh r3, [r0, #10] + strh r1, [r0, #12] + strh r3, [r0, #14] + ldrh r1, [r0, #14] + add r3, r0, r1, lsl #1 + add r4, r3, #16 + ldrh r1, [r0, #12] + strh r1, [r3, #16] + strh r2, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_06002284 +FUN_06002284: ; 0x06002284 + stmdb sp!, {r4, lr} + mov ip, #0 + strh ip, [r0] + strh ip, [r0, #2] + strh ip, [r0, #4] + strh ip, [r0, #6] + strh ip, [r0, #8] + strh ip, [r0, #10] + ldr ip, _060022F4 ; =0x00000309 + strh ip, [r0, #12] + mov ip, #4 + strh ip, [r0, #14] + strh r1, [r0, #16] + strh r2, [r0, #18] + strh r3, [r0, #20] + ldrh r1, [sp, #8] + strh r1, [r0, #22] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + mov r1, #1 + strh r1, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr +_060022F4: .word 0x00000309 + + arm_func_start FUN_060022F8 +FUN_060022F8: ; 0x060022F8 + mov r1, #776 ; 0x308 + mov r2, #2 + ldr ip, _06002308 ; =FUN_06002234 + bx ip +_06002308: .word FUN_06002234 + + arm_func_start FUN_0600230C +FUN_0600230C: ; 0x0600230C + ldr r1, _0600231C ; =0x00000307 + mov r2, #92 ; 0x5c + ldr ip, _06002320 ; =FUN_06002234 + bx ip +_0600231C: .word 0x00000307 +_06002320: .word FUN_06002234 + + arm_func_start FUN_06002324 +FUN_06002324: ; 0x06002324 + ldr r1, _06002334 ; =0x00000306 + mov r2, #9 + ldr ip, _06002338 ; =FUN_06002234 + bx ip +_06002334: .word 0x00000306 +_06002338: .word FUN_06002234 + + arm_func_start FUN_0600233C +FUN_0600233C: ; 0x0600233C + ldr r1, _0600234C ; =0x00000305 + mov r2, #1 + ldr ip, _06002350 ; =FUN_06002234 + bx ip +_0600234C: .word 0x00000305 +_06002350: .word FUN_06002234 + + arm_func_start FUN_06002354 +FUN_06002354: ; 0x06002354 + mov r1, #772 ; 0x304 + mov r2, #1 + ldr ip, _06002364 ; =FUN_06002234 + bx ip +_06002364: .word FUN_06002234 + + arm_func_start FUN_06002368 +FUN_06002368: ; 0x06002368 + ldr r1, _06002378 ; =0x00000303 + mov r2, #1 + ldr ip, _0600237C ; =FUN_06002234 + bx ip +_06002378: .word 0x00000303 +_0600237C: .word FUN_06002234 + + arm_func_start FUN_06002380 +FUN_06002380: ; 0x06002380 + ldr r1, _06002390 ; =0x00000302 + mov r2, #1 + ldr ip, _06002394 ; =FUN_06002234 + bx ip +_06002390: .word 0x00000302 +_06002394: .word FUN_06002234 + + arm_func_start FUN_06002398 +FUN_06002398: ; 0x06002398 + ldr r1, _060023A8 ; =0x00000301 + mov r2, #1 + ldr ip, _060023AC ; =FUN_06002234 + bx ip +_060023A8: .word 0x00000301 +_060023AC: .word FUN_06002234 + + arm_func_start FUN_060023B0 +FUN_060023B0: ; 0x060023B0 + mov r1, #644 ; 0x284 + mov r2, #2 + ldr ip, _060023C0 ; =FUN_06002234 + bx ip +_060023C0: .word FUN_06002234 + + arm_func_start FUN_060023C4 +FUN_060023C4: ; 0x060023C4 + ldr r1, _060023D4 ; =0x00000283 + mov r2, #3 + ldr ip, _060023D8 ; =FUN_06002234 + bx ip +_060023D4: .word 0x00000283 +_060023D8: .word FUN_06002234 + + arm_func_start FUN_060023DC +FUN_060023DC: ; 0x060023DC + ldr r1, _060023EC ; =0x00000281 + mov r2, #4 + ldr ip, _060023F0 ; =FUN_06002234 + bx ip +_060023EC: .word 0x00000281 +_060023F0: .word FUN_06002234 + + arm_func_start FUN_060023F4 +FUN_060023F4: ; 0x060023F4 + stmdb sp!, {r4, r5, r6, lr} + mov r4, r0 + mov r6, r1 + mov r5, r2 + mov r0, #0 + strh r0, [r4] + strh r0, [r4, #2] + strh r0, [r4, #4] + strh r0, [r4, #6] + strh r0, [r4, #8] + strh r0, [r4, #10] + ldr r0, _06002480 ; =0x00000245 + strh r0, [r4, #12] + add r0, r6, #1 + mov r1, #2 + bl FUN_06001840 + add r0, r0, #1 + strh r0, [r4, #14] + strh r6, [r4, #16] + mov r0, r5 + add r1, r4, #18 + mov r2, r6 + bl FUN_06000EA0 + ldrh r0, [r4, #14] + add r1, r4, r0, lsl #1 + add r5, r1, #16 + ldrh r0, [r4, #12] + strh r0, [r1, #16] + mov r0, #1 + strh r0, [r5, #2] + mov r0, r4 + bl FUN_06000700 + mov r0, r5 + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06002480: .word 0x00000245 + + arm_func_start FUN_06002484 +FUN_06002484: ; 0x06002484 + stmdb sp!, {r4, lr} + mov r2, #0 + strh r2, [r0] + strh r2, [r0, #2] + strh r2, [r0, #4] + strh r2, [r0, #6] + strh r2, [r0, #8] + strh r2, [r0, #10] + ldr r2, _060024E0 ; =0x00000242 + strh r2, [r0, #12] + mov r3, #1 + strh r3, [r0, #14] + strh r1, [r0, #16] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + strh r3, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr +_060024E0: .word 0x00000242 + + arm_func_start FUN_060024E4 +FUN_060024E4: ; 0x060024E4 + stmdb sp!, {r4, lr} + mov r2, #0 + strh r2, [r0] + strh r2, [r0, #2] + strh r2, [r0, #4] + strh r2, [r0, #6] + strh r2, [r0, #8] + strh r2, [r0, #10] + ldr r2, _06002540 ; =0x00000216 + strh r2, [r0, #12] + mov r3, #1 + strh r3, [r0, #14] + strh r1, [r0, #16] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + strh r3, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr +_06002540: .word 0x00000216 + + arm_func_start FUN_06002544 +FUN_06002544: ; 0x06002544 + stmdb sp!, {r4, lr} + mov r2, #0 + strh r2, [r0] + strh r2, [r0, #2] + strh r2, [r0, #4] + strh r2, [r0, #6] + strh r2, [r0, #8] + strh r2, [r0, #10] + ldr r2, _060025A0 ; =0x00000215 + strh r2, [r0, #12] + mov r3, #1 + strh r3, [r0, #14] + strh r1, [r0, #16] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + strh r3, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr +_060025A0: .word 0x00000215 + + arm_func_start FUN_060025A4 +FUN_060025A4: ; 0x060025A4 + stmdb sp!, {r4, lr} + mov r2, #0 + strh r2, [r0] + strh r2, [r0, #2] + strh r2, [r0, #4] + strh r2, [r0, #6] + strh r2, [r0, #8] + strh r2, [r0, #10] + ldr r2, _06002600 ; =0x00000212 + strh r2, [r0, #12] + mov r3, #1 + strh r3, [r0, #14] + strh r1, [r0, #16] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + strh r3, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr +_06002600: .word 0x00000212 + + arm_func_start FUN_06002604 +FUN_06002604: ; 0x06002604 + stmdb sp!, {r4, lr} + mov ip, #0 + strh ip, [r0] + strh ip, [r0, #2] + strh ip, [r0, #4] + strh ip, [r0, #6] + strh ip, [r0, #8] + strh ip, [r0, #10] + ldr ip, _0600266C ; =0x00000211 + strh ip, [r0, #12] + mov ip, #3 + strh ip, [r0, #14] + strh r1, [r0, #16] + strh r2, [r0, #18] + strh r3, [r0, #20] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + mov r1, #1 + strh r1, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr +_0600266C: .word 0x00000211 + + arm_func_start FUN_06002670 +FUN_06002670: ; 0x06002670 + stmdb sp!, {r4, lr} + mov r2, #0 + strh r2, [r0] + strh r2, [r0, #2] + strh r2, [r0, #4] + strh r2, [r0, #6] + strh r2, [r0, #8] + strh r2, [r0, #10] + ldr r2, _060026CC ; =0x0000020E + strh r2, [r0, #12] + mov r3, #1 + strh r3, [r0, #14] + strh r1, [r0, #16] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + strh r3, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr +_060026CC: .word 0x0000020E + + arm_func_start FUN_060026D0 +FUN_060026D0: ; 0x060026D0 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r4, r0 + mov r0, #0 + strh r0, [r4] + strh r0, [r4, #2] + strh r0, [r4, #4] + strh r0, [r4, #6] + strh r0, [r4, #8] + strh r0, [r4, #10] + ldr r0, _0600274C ; =0x0000020D + strh r0, [r4, #12] + mov r0, #16 + strh r0, [r4, #14] + mov r0, r1 + add r1, r4, #16 + mov r2, #32 + bl FUN_06000EA0 + ldrh r0, [r4, #14] + add r1, r4, r0, lsl #1 + add r5, r1, #16 + ldrh r0, [r4, #12] + strh r0, [r1, #16] + mov r0, #1 + strh r0, [r5, #2] + mov r0, r4 + bl FUN_06000700 + mov r0, r5 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_0600274C: .word 0x0000020D + + arm_func_start FUN_06002750 +FUN_06002750: ; 0x06002750 + stmdb sp!, {r4, lr} + mov r2, #0 + strh r2, [r0] + strh r2, [r0, #2] + strh r2, [r0, #4] + strh r2, [r0, #6] + strh r2, [r0, #8] + strh r2, [r0, #10] + ldr r2, _060027AC ; =0x0000020B + strh r2, [r0, #12] + mov r3, #1 + strh r3, [r0, #14] + strh r1, [r0, #16] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + strh r3, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr +_060027AC: .word 0x0000020B + + arm_func_start FUN_060027B0 +FUN_060027B0: ; 0x060027B0 + stmdb sp!, {r4, lr} + mov r2, #0 + strh r2, [r0] + strh r2, [r0, #2] + strh r2, [r0, #4] + strh r2, [r0, #6] + strh r2, [r0, #8] + strh r2, [r0, #10] + ldr r2, _0600280C ; =0x00000207 + strh r2, [r0, #12] + mov r3, #1 + strh r3, [r0, #14] + strh r1, [r0, #16] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + strh r3, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr +_0600280C: .word 0x00000207 + + arm_func_start FUN_06002810 +FUN_06002810: ; 0x06002810 + stmdb sp!, {r4, lr} + mov r1, #0 + strh r1, [r0] + strh r1, [r0, #2] + strh r1, [r0, #4] + strh r1, [r0, #6] + strh r1, [r0, #8] + strh r1, [r0, #10] + mov r1, #512 ; 0x200 + strh r1, [r0, #12] + mov r1, #72 ; 0x48 + strh r1, [r0, #14] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + mov r1, #1 + strh r1, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_0600286C +FUN_0600286C: ; 0x0600286C + stmdb sp!, {r4, lr} + mov r2, #0 + strh r2, [r0] + strh r2, [r0, #2] + strh r2, [r0, #4] + strh r2, [r0, #6] + strh r2, [r0, #8] + strh r2, [r0, #10] + mov r2, #260 ; 0x104 + strh r2, [r0, #12] + mov r3, #1 + strh r3, [r0, #14] + strh r1, [r0, #16] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + strh r3, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_060028C8 +FUN_060028C8: ; 0x060028C8 + stmdb sp!, {r4, lr} + mov ip, #0 + strh ip, [r0] + strh ip, [r0, #2] + strh ip, [r0, #4] + strh ip, [r0, #6] + strh ip, [r0, #8] + strh ip, [r0, #10] + ldr ip, _06002960 ; =0x00000102 + strh ip, [r0, #12] + mov ip, #10 + strh ip, [r0, #14] + strh r1, [r0, #16] + strh r2, [r0, #18] + strh r3, [r0, #20] + ldrh r1, [sp, #8] + strh r1, [r0, #22] + ldrh r1, [sp, #12] + strh r1, [r0, #24] + ldrh r1, [sp, #16] + strh r1, [r0, #26] + ldrh r1, [sp, #20] + strh r1, [r0, #28] + ldrh r1, [sp, #24] + strh r1, [r0, #30] + ldr r1, [sp, #28] + str r1, [r0, #32] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + mov r1, #1 + strh r1, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr +_06002960: .word 0x00000102 + + arm_func_start FUN_06002964 +FUN_06002964: ; 0x06002964 + stmdb sp!, {r4, lr} + mov ip, #0 + strh ip, [r0] + strh ip, [r0, #2] + strh ip, [r0, #4] + strh ip, [r0, #6] + strh ip, [r0, #8] + strh ip, [r0, #10] + ldr ip, _060029CC ; =0x00000101 + strh ip, [r0, #12] + mov ip, #4 + strh ip, [r0, #14] + strh r1, [r0, #16] + strh r2, [r0, #18] + str r3, [r0, #20] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + mov r1, #1 + strh r1, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr +_060029CC: .word 0x00000101 + + arm_func_start FUN_060029D0 +FUN_060029D0: ; 0x060029D0 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r4, r0 + mov r5, r1 + mov r0, #0 + strh r0, [r4] + strh r0, [r4, #2] + strh r0, [r4, #4] + strh r0, [r4, #6] + strh r0, [r4, #8] + strh r0, [r4, #10] + mov r0, #256 ; 0x100 + strh r0, [r4, #12] + mov r0, #24 + strh r0, [r4, #14] + mov r0, r5 + add r1, r4, #16 + mov r2, #48 ; 0x30 + bl FUN_06000EA0 + mov r0, #0 + strh r0, [r5, #2] + strh r0, [r5, #4] + strh r0, [r5, #8] + strh r0, [r5, #10] + strh r0, [r5, #12] + strh r0, [r5, #16] + strh r0, [r5, #18] + strh r0, [r5, #20] + strh r0, [r5, #22] + strh r0, [r5, #36] ; 0x24 + strh r0, [r5, #38] ; 0x26 + strh r0, [r5, #40] ; 0x28 + strh r0, [r5, #42] ; 0x2a + ldrh r0, [r4, #14] + add r1, r4, r0, lsl #1 + add r5, r1, #16 + ldrh r0, [r4, #12] + strh r0, [r1, #16] + mov r0, #2 + strh r0, [r5, #2] + mov r0, r4 + bl FUN_06000700 + mov r0, r5 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_06002A88 +FUN_06002A88: ; 0x06002A88 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r4, r0 + mov ip, #0 + strh ip, [r4] + strh ip, [r4, #2] + strh ip, [r4, #4] + strh ip, [r4, #6] + strh ip, [r4, #8] + strh ip, [r4, #10] + mov r0, #10 + strh r0, [r4, #12] + mov r0, #12 + strh r0, [r4, #14] + strh ip, [r4, #16] + strh r1, [r4, #18] + strh r2, [r4, #20] + strh r3, [r4, #22] + ldr r0, [sp, #16] + add r1, r4, #24 + mov r2, #16 + bl FUN_06000EA0 + ldrh r0, [r4, #14] + add r1, r4, r0, lsl #1 + add r5, r1, #16 + ldrh r0, [r4, #12] + strh r0, [r1, #16] + mov r0, #18 + strh r0, [r5, #2] + mov r0, r4 + bl FUN_06000700 + mov r0, r5 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_06002B14 +FUN_06002B14: ; 0x06002B14 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + mov r0, #0 + strh r0, [r7] + strh r0, [r7, #2] + strh r0, [r7, #4] + strh r0, [r7, #6] + strh r0, [r7, #8] + strh r0, [r7, #10] + mov r0, #9 + strh r0, [r7, #12] + ldrh r0, [sp, #40] ; 0x28 + add r0, r0, #1 + mov r1, #2 + bl FUN_06001840 + add r0, r0, #23 + strh r0, [r7, #14] + strh r6, [r7, #16] + mov r0, r5 + add r1, r7, #18 + mov r2, #32 + bl FUN_06000EA0 + strh r4, [r7, #50] ; 0x32 + ldrh r0, [sp, #24] + strh r0, [r7, #52] ; 0x34 + ldrh r0, [sp, #28] + strh r0, [r7, #54] ; 0x36 + ldrh r0, [sp, #32] + strh r0, [r7, #56] ; 0x38 + ldrh r0, [sp, #36] ; 0x24 + strh r0, [r7, #58] ; 0x3a + ldrh r2, [sp, #40] ; 0x28 + strh r2, [r7, #60] ; 0x3c + ldr r0, [sp, #44] ; 0x2c + add r1, r7, #62 ; 0x3e + bl FUN_06000EA0 + ldrh r0, [r7, #14] + add r1, r7, r0, lsl #1 + add r4, r1, #16 + ldrh r0, [r7, #12] + strh r0, [r1, #16] + mov r0, #1 + strh r0, [r4, #2] + mov r0, r7 + bl FUN_06000700 + mov r0, r4 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr + + arm_func_start FUN_06002BE8 +FUN_06002BE8: ; 0x06002BE8 + stmdb sp!, {r4, r5, r6, lr} + mov r4, r0 + mov r6, r2 + mov r5, r3 + mov r0, #0 + strh r0, [r4] + strh r0, [r4, #2] + strh r0, [r4, #4] + strh r0, [r4, #6] + strh r0, [r4, #8] + strh r0, [r4, #10] + mov r2, #6 + strh r2, [r4, #12] + mov r0, #5 + strh r0, [r4, #14] + mov r0, r1 + add r1, r4, #16 + bl FUN_06000EA0 + strh r6, [r4, #22] + strh r5, [r4, #24] + ldrh r0, [r4, #14] + add r1, r4, r0, lsl #1 + add r5, r1, #16 + ldrh r0, [r4, #12] + strh r0, [r1, #16] + mov r0, #3 + strh r0, [r5, #2] + mov r0, r4 + bl FUN_06000700 + mov r0, r5 + ldmia sp!, {r4, r5, r6, lr} + bx lr + + arm_func_start FUN_06002C68 +FUN_06002C68: ; 0x06002C68 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r4, r0 + mov r5, r2 + mov r0, #0 + strh r0, [r4] + strh r0, [r4, #2] + strh r0, [r4, #4] + strh r0, [r4, #6] + strh r0, [r4, #8] + strh r0, [r4, #10] + mov r0, #5 + strh r0, [r4, #12] + mov r0, #4 + strh r0, [r4, #14] + mov r0, r1 + add r1, r4, #16 + mov r2, #6 + bl FUN_06000EA0 + strh r5, [r4, #22] + ldrh r0, [r4, #14] + add r1, r4, r0, lsl #1 + add r5, r1, #16 + ldrh r0, [r4, #12] + strh r0, [r1, #16] + mov r0, #4 + strh r0, [r5, #2] + mov r0, r4 + bl FUN_06000700 + mov r0, r5 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_06002CEC +FUN_06002CEC: ; 0x06002CEC + stmdb sp!, {r4, r5, r6, lr} + mov r4, r0 + mov r6, r2 + mov r5, r3 + mov r0, #0 + strh r0, [r4] + strh r0, [r4, #2] + strh r0, [r4, #4] + strh r0, [r4, #6] + strh r0, [r4, #8] + strh r0, [r4, #10] + mov r0, #4 + strh r0, [r4, #12] + mov r0, #5 + strh r0, [r4, #14] + mov r0, r1 + add r1, r4, #16 + mov r2, #6 + bl FUN_06000EA0 + strh r6, [r4, #22] + strh r5, [r4, #24] + ldrh r0, [r4, #14] + add r1, r4, r0, lsl #1 + add r5, r1, #16 + ldrh r0, [r4, #12] + strh r0, [r1, #16] + mov r0, #6 + strh r0, [r5, #2] + mov r0, r4 + bl FUN_06000700 + mov r0, r5 + ldmia sp!, {r4, r5, r6, lr} + bx lr + + arm_func_start FUN_06002D70 +FUN_06002D70: ; 0x06002D70 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r4, r0 + mov r3, #0 + strh r3, [r4] + strh r3, [r4, #2] + strh r3, [r4, #4] + strh r3, [r4, #6] + strh r3, [r4, #8] + strh r3, [r4, #10] + mov r0, #3 + strh r0, [r4, #12] + mov r0, #34 ; 0x22 + strh r0, [r4, #14] + strh r1, [r4, #16] + strh r3, [r4, #18] + mov r0, r2 + add r1, r4, #20 + mov r2, #68 ; 0x44 + bl FUN_06000EA0 + ldrh r0, [r4, #14] + add r1, r4, r0, lsl #1 + add r5, r1, #16 + ldrh r0, [r4, #12] + strh r0, [r1, #16] + mov r0, #5 + strh r0, [r5, #2] + mov r0, r4 + bl FUN_06000700 + mov r0, r5 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_06002DF4 +FUN_06002DF4: ; 0x06002DF4 + stmdb sp!, {r4, r5, r6, lr} + mov r5, r0 + mov r4, r1 + mov r6, r3 + mov r0, #0 + strh r0, [r5] + strh r0, [r5, #2] + strh r0, [r5, #4] + strh r0, [r5, #6] + strh r0, [r5, #8] + strh r0, [r5, #10] + mov r0, #2 + strh r0, [r5, #12] + mov r0, #31 + strh r0, [r5, #14] + mov r0, r2 + add r1, r5, #16 + mov r2, #6 + bl FUN_06000EA0 + strh r6, [r5, #22] + ldr r0, [sp, #16] + add r1, r5, #24 + mov r2, #32 + bl FUN_06000EA0 + ldrh r0, [sp, #20] + strh r0, [r5, #56] ; 0x38 + ldr r0, [sp, #24] + add r1, r5, #58 ; 0x3a + mov r2, #16 + bl FUN_06000EA0 + ldrh r0, [sp, #28] + strh r0, [r5, #74] ; 0x4a + mov r0, #0 + strh r0, [r5, #76] ; 0x4c + ldrh r0, [r5, #14] + add r1, r5, r0, lsl #1 + add r6, r1, #16 + ldrh r0, [r5, #12] + strh r0, [r1, #16] + mov r0, r4, lsr #1 + sub r0, r0, #44 ; 0x2c + strh r0, [r6, #2] + mov r0, r5 + bl FUN_06000700 + mov r0, r6 + ldmia sp!, {r4, r5, r6, lr} + bx lr + + arm_func_start FUN_06002EB0 +FUN_06002EB0: ; 0x06002EB0 + stmdb sp!, {r4, lr} + mov ip, #0 + strh ip, [r0] + strh ip, [r0, #2] + strh ip, [r0, #4] + strh ip, [r0, #6] + strh ip, [r0, #8] + strh ip, [r0, #10] + mov lr, #1 + strh lr, [r0, #12] + mov ip, #3 + strh ip, [r0, #14] + strh r1, [r0, #16] + strh r2, [r0, #18] + strh r3, [r0, #20] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + strh lr, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_06002F14 +FUN_06002F14: ; 0x06002F14 + stmdb sp!, {r4, lr} + mov r2, #0 + strh r2, [r0] + strh r2, [r0, #2] + strh r2, [r0, #4] + strh r2, [r0, #6] + strh r2, [r0, #8] + strh r2, [r0, #10] + strh r2, [r0, #12] + mov r3, #1 + strh r3, [r0, #14] + strh r1, [r0, #16] + ldrh r1, [r0, #14] + add r2, r0, r1, lsl #1 + add r4, r2, #16 + ldrh r1, [r0, #12] + strh r1, [r2, #16] + strh r3, [r4, #2] + bl FUN_06000700 + mov r0, r4 + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_06002F6C +FUN_06002F6C: ; 0x06002F6C + stmdb sp!, {r4, lr} + sub sp, sp, #8 + ldr r4, [r0, #4] + ldr r1, _06003018 ; =_0601A960 + str r4, [r1, #1356] ; 0x54c + ldr r2, [r0, #8] + str r2, [r1, #1360] ; 0x550 + str r2, [r4] + ldr r0, [r0, #12] + str r0, [r4, #8] + bl FUN_06008124 + mov r0, #15 + bl FUN_0600301C + mov r1, #1 + ldr r0, [r4] + strh r1, [r0] + add r0, sp, #0 + add r1, sp, #2 + bl FUN_06008380 + cmp r0, #0 + bne _06002FEC + bl FUN_060001E8 + mov r1, #0 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + ldrh r1, [sp] + strh r1, [r0, #4] + ldrh r1, [sp, #2] + strh r1, [r0, #6] + bl FUN_060001F0 + b _0600300C +_06002FEC: + mov r1, #2 + ldr r0, [r4] + strh r1, [r0] + bl FUN_060001E8 + mov r1, #0 + strh r1, [r0] + strh r1, [r0, #2] + bl FUN_060001F0 +_0600300C: + add sp, sp, #8 + ldmia sp!, {r4, lr} + bx lr +_06003018: .word _0601A960 + + arm_func_start FUN_0600301C +FUN_0600301C: ; 0x0600301C + ldr pc, _06003020 ; =FUN_03802BC8 +_06003020: .word FUN_03802BC8 + + arm_func_start FUN_06003024 +FUN_06003024: ; 0x06003024 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #1 + strh r1, [r0] + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_0600305C +FUN_0600305C: ; 0x0600305C + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #532 ; 0x214 + ldr r0, _06003448 ; =_0601A960 + ldr r7, [r0, #1360] ; 0x550 + mov r5, #0 + bl FUN_060001A4 + mov r4, r0 + ldr r0, [r7, #12] + cmp r0, #1 + bne _060030B8 + mov r0, r5 + str r0, [r7, #12] + mov r5, #1 + bl FUN_06006978 + bl FUN_06000288 + ldrh r0, [r7] + cmp r0, #10 + moveq r0, #8 + streqh r0, [r7] + beq _060030B8 + cmp r0, #9 + moveq r0, #7 + streqh r0, [r7] +_060030B8: + ldrh r1, [r7] + ldr r0, _0600344C ; =0x0000FFF9 + add r0, r1, r0 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + cmp r0, #1 + bhi _060030EC + add r0, r7, #256 ; 0x100 + ldrh r9, [r0, #130] ; 0x82 + cmp r1, #7 + moveq sl, #1 + movne sl, #0 + b _060030F0 +_060030EC: + mov r9, #0 +_060030F0: + mov r1, #0 + add r0, r7, #256 ; 0x100 + strh r1, [r0, #130] ; 0x82 + strh r1, [r7, #134] ; 0x86 + str r1, [r7, #20] + str r1, [r7, #16] + str r1, [r7, #28] + strh r1, [r7, #194] ; 0xc2 + mov r0, r4 + bl FUN_060001AC + cmp r5, #0 + beq _06003128 + ldr r0, _06003450 ; =0x0000FFFF + bl FUN_06006F48 +_06003128: + cmp sl, #0 + movne r0, #0 + strneh r0, [r7, #246] ; 0xf6 + cmp r9, #0 + beq _0600318C + mov r8, #0 + add r5, r7, #296 ; 0x128 + ldr r0, _06003454 ; =0x0000018A + add fp, r7, r0 + mov r6, #1 + mov r4, #6 +_06003154: + mov r0, r6, lsl r8 + ands r0, r9, r0 + beq _06003180 + cmp r8, #0 + moveq r2, fp + subne r0, r8, #1 + mlane r2, r0, r4, r5 + mov r0, sl + mov r1, r8, lsl #16 + mov r1, r1, lsr #16 + bl FUN_06004C5C +_06003180: + add r8, r8, #1 + cmp r8, #16 + blt _06003154 +_0600318C: + add r0, r7, #296 ; 0x128 + mov r1, #0 + mov r2, #90 ; 0x5a + bl FUN_06000D08 + add r0, sp, #16 + bl FUN_060022F8 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _060031BC + mov r0, #776 ; 0x308 + bl FUN_06003024 + b _0600343C +_060031BC: + ldrh r4, [r0, #6] + add r0, sp, #16 + bl FUN_060023B0 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _060031E0 + mov r0, #644 ; 0x284 + bl FUN_06003024 + b _0600343C +_060031E0: + ldrh r1, [r0, #6] + cmp r4, #32 + bgt _06003234 + cmp r4, #32 + bge _06003310 + cmp r4, #0 + bgt _06003208 + cmp r4, #0 + beq _06003334 + b _06003414 +_06003208: + cmp r4, #18 + bgt _06003414 + cmp r4, #16 + blt _06003414 + cmp r4, #16 + beq _06003354 + cmp r4, #17 + beq _060033AC + cmp r4, #18 + beq _060033AC + b _06003414 +_06003234: + cmp r4, #48 ; 0x30 + bgt _06003248 + cmp r4, #48 ; 0x30 + beq _06003250 + b _06003414 +_06003248: + cmp r4, #64 ; 0x40 + bne _06003414 +_06003250: + ldr r0, _06003458 ; =0x0000FFFE + add r0, r1, r0 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + cmp r0, #1 + bhi _060032D8 + ldr r0, _06003454 ; =0x0000018A + add r0, r7, r0 + add r1, sp, #4 + mov r2, #6 + bl FUN_06000554 + mov r6, #0 + add r5, sp, #4 + mov r4, #3 + b _060032CC +_0600328C: + add r0, sp, #16 + mov r1, r5 + mov r2, r4 + bl FUN_06002C68 + ldrh r0, [r0, #4] + cmp r0, #0 + beq _060032BC + cmp r0, #7 + beq _060032C8 + cmp r0, #12 + beq _060032C8 + b _06003310 +_060032BC: + mov r0, #3 + strh r0, [r7] + b _06003310 +_060032C8: + add r6, r6, #1 +_060032CC: + cmp r6, #2 + blt _0600328C + b _06003310 +_060032D8: + cmp r1, #1 + bne _06003310 + add r0, sp, #10 + mov r1, #255 ; 0xff + mov r2, #6 + bl FUN_06000D08 + add r0, sp, #16 + add r1, sp, #10 + mov r2, #3 + bl FUN_06002C68 + ldrh r0, [r0, #4] + cmp r0, #0 + moveq r0, #3 + streqh r0, [r7] +_06003310: + add r0, sp, #16 + mov r1, #1 + bl FUN_06002F14 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003334 + mov r0, #0 + bl FUN_06003024 + b _0600343C +_06003334: + add r0, sp, #16 + bl FUN_06002380 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003354 + ldr r0, _0600345C ; =0x00000302 + bl FUN_06003024 + b _0600343C +_06003354: + add r0, r7, #256 ; 0x100 + ldrh r0, [r0, #238] ; 0xee + cmp r0, #0 + bne _06003394 + add r0, sp, #16 + mov r1, #1 + bl FUN_06002670 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003388 + ldr r0, _06003460 ; =0x0000020E + bl FUN_06003024 + b _0600343C +_06003388: + mov r1, #1 + add r0, r7, #256 ; 0x100 + strh r1, [r0, #238] ; 0xee +_06003394: + mov r0, #2 + strh r0, [r7] + mov r0, #0 + str r0, [r7, #408] ; 0x198 + bl FUN_06000100 + b _06003424 +_060033AC: + cmp r1, #0 + bne _060033E8 + mov r0, #1 + str r0, [sp] + add r0, sp, #16 + mov r1, #0 + mov r2, r1 + mov r3, #20 + bl FUN_06002284 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _060033E8 + ldr r0, _06003464 ; =0x00000309 + bl FUN_06003024 + b _0600343C +_060033E8: + add r0, sp, #16 + bl FUN_06002380 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003408 + ldr r0, _0600345C ; =0x00000302 + bl FUN_06003024 + b _0600343C +_06003408: + mov r0, #2 + strh r0, [r7] + b _06003424 +_06003414: + mov r0, #776 ; 0x308 + mov r1, #0 + bl FUN_06003024 + b _0600343C +_06003424: + bl FUN_060001E8 + mov r1, #1 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 +_0600343C: + add sp, sp, #532 ; 0x214 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06003448: .word _0601A960 +_0600344C: .word 0x0000FFF9 +_06003450: .word 0x0000FFFF +_06003454: .word 0x0000018A +_06003458: .word 0x0000FFFE +_0600345C: .word 0x00000302 +_06003460: .word 0x0000020E +_06003464: .word 0x00000309 + + arm_func_start FUN_06003468 +FUN_06003468: ; 0x06003468 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #2 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_060034A4 +FUN_060034A4: ; 0x060034A4 + stmdb sp!, {r4, lr} + sub sp, sp, #512 ; 0x200 + ldr r0, _06003534 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + ldrh r0, [r4] + cmp r0, #2 + beq _060034DC + bl FUN_060001E8 + mov r1, #2 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + bl FUN_060001F0 + b _06003528 +_060034DC: + add r0, sp, #0 + bl FUN_06002398 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _060034FC + ldr r0, _06003538 ; =0x00000301 + bl FUN_06003468 + b _06003528 +_060034FC: + mov r0, #1 + strh r0, [r4] + bl FUN_0600301C + mov r0, #0 + strh r0, [r4] + bl FUN_060001E8 + mov r1, #2 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 +_06003528: + add sp, sp, #512 ; 0x200 + ldmia sp!, {r4, lr} + bx lr +_06003534: .word _0601A960 +_06003538: .word 0x00000301 + + arm_func_start FUN_0600353C +FUN_0600353C: ; 0x0600353C + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #7 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_06003578 +FUN_06003578: ; 0x06003578 + stmdb sp!, {r4, lr} + sub sp, sp, #512 ; 0x200 + ldr r1, _06003618 ; =_0601A960 + ldr r4, [r1, #1360] ; 0x550 + ldr r0, [r0, #4] + add r1, r4, #232 ; 0xe8 + mov r2, #64 ; 0x40 + bl FUN_06000554 + mov r2, #1 + add r0, r4, #256 ; 0x100 + ldrh r1, [r0, #26] + mov r1, r2, lsl r1 + ldrh r0, [r0, #244] ; 0xf4 + ands r0, r1, r0 + bne _060035D0 + bl FUN_060001E8 + mov r1, #7 + strh r1, [r0] + mov r1, #6 + strh r1, [r0, #2] + bl FUN_060001F0 + b _0600360C +_060035D0: + add r0, sp, #0 + ldrh r1, [r4, #248] ; 0xf8 + bl FUN_060025A4 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _060035F4 + ldr r0, _0600361C ; =0x00000212 + bl FUN_0600353C + b _0600360C +_060035F4: + bl FUN_060001E8 + mov r1, #7 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 +_0600360C: + add sp, sp, #512 ; 0x200 + ldmia sp!, {r4, lr} + bx lr +_06003618: .word _0601A960 +_0600361C: .word 0x00000212 + + arm_func_start FUN_06003620 +FUN_06003620: ; 0x06003620 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #8 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + mov r1, #0 + strh r1, [r0, #8] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_06003664 +FUN_06003664: ; 0x06003664 + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #696 ; 0x2b8 + ldr r1, _060038E0 ; =_0601A960 + ldr r4, [r1, #1360] ; 0x550 + add r6, sp, #56 ; 0x38 + ldrh r1, [r4] + cmp r1, #2 + beq _060036A8 + bl FUN_060001E8 + mov r1, #8 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + mov r1, #0 + strh r1, [r0, #8] + bl FUN_060001F0 + b _060038D4 +_060036A8: + ldr r5, [r0, #4] + add r0, r4, #256 ; 0x100 + ldrh r3, [r0, #246] ; 0xf6 + mov r2, #1 + ldrh r1, [r0, #26] + mov r1, r2, lsl r1 + mov r1, r1, asr #1 + ands r1, r3, r1 + bne _060036F0 + bl FUN_060001E8 + mov r1, #8 + strh r1, [r0] + mov r1, #6 + strh r1, [r0, #2] + mov r1, #0 + strh r1, [r0, #8] + bl FUN_060001F0 + b _060038D4 +_060036F0: + strh r2, [r4, #230] ; 0xe6 + mov r1, #0 + strh r1, [r0, #136] ; 0x88 + bl FUN_060001A4 + mov r2, #0 + add r1, r4, #256 ; 0x100 + strh r2, [r1, #130] ; 0x82 + strh r2, [r4, #134] ; 0x86 + bl FUN_060001AC + mov r1, #1 + add r0, r4, #256 ; 0x100 + strh r1, [r0, #238] ; 0xee + mov r0, #8 + mov r1, r6 + bl FUN_06000408 + cmp r0, #0 + beq _060038D4 + mov r0, r6 + bl FUN_06002368 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003754 + ldr r0, _060038E4 ; =0x00000303 + bl FUN_06003620 + b _060038D4 +_06003754: + cmp r5, #0 + movne r0, #1 + moveq r0, #0 + mov r0, r0, lsl #16 + mov r5, r0, lsr #16 + mov r0, r6 + mov r1, r5 + mov r2, #0 + mov r3, #1 + bl FUN_06002EB0 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003794 + mov r0, #1 + bl FUN_06003620 + b _060038D4 +_06003794: + strh r5, [r4, #198] ; 0xc6 + add r5, r4, #232 ; 0xe8 + mov r0, #0 + add r1, sp, #568 ; 0x238 + mov r2, #128 ; 0x80 + bl FUN_0600055C + add r0, sp, #568 ; 0x238 + mov r1, r5 + bl FUN_06000564 + mov r0, #0 + add r1, sp, #24 + mov r2, #32 + bl FUN_0600055C + ldr r0, [r5, #8] + strh r0, [sp, #24] + ldr r0, [r5, #8] + mov r0, r0, lsr #16 + strh r0, [sp, #26] + ldrh r0, [r5, #12] + strh r0, [sp, #28] + mov r0, #0 + strh r0, [sp, #30] + mov r0, #2 + str r0, [sp] + ldrh r0, [r5, #50] ; 0x32 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + str r0, [sp, #12] + ldrh r0, [r5, #4] + add r0, r0, #16 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + str r0, [sp, #16] + add r0, sp, #568 ; 0x238 + str r0, [sp, #20] + mov r0, r6 + mov r1, #32 + add r2, sp, #24 + ldrh r3, [r5, #24] + bl FUN_06002B14 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003850 + mov r0, #9 + bl FUN_06003620 + b _060038D4 +_06003850: + ldrh r0, [r5, #20] + cmp r0, #0 + movne r1, #42 ; 0x2a + moveq r1, #0 + ldrh r0, [r5, #52] ; 0x34 + add r0, r0, r1 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + bl FUN_060000B0 + ldrh r0, [r5, #20] + cmp r0, #0 + movne r1, #6 + moveq r1, #0 + ldrh r0, [r5, #54] ; 0x36 + add r0, r0, r1 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + bl FUN_06000060 + bl FUN_060001E8 + mov r1, #7 + strh r1, [r4] + mov r1, #8 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + strh r1, [r0, #8] + ldrh r1, [r4, #48] ; 0x30 + strh r1, [r0, #44] ; 0x2c + ldrh r1, [r4, #50] ; 0x32 + strh r1, [r0, #46] ; 0x2e + bl FUN_060001F0 + mov r0, #1 + strh r0, [r4, #194] ; 0xc2 +_060038D4: + add sp, sp, #696 ; 0x2b8 + ldmia sp!, {r4, r5, r6, lr} + bx lr +_060038E0: .word _0601A960 +_060038E4: .word 0x00000303 + + arm_func_start FUN_060038E8 +FUN_060038E8: ; 0x060038E8 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #9 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_06003924 +FUN_06003924: ; 0x06003924 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #532 ; 0x214 + ldr r0, _06003AF0 ; =_0601A960 + ldr r8, [r0, #1360] ; 0x550 + ldrh r0, [r8] + cmp r0, #7 + beq _0600395C + bl FUN_060001E8 + mov r1, #9 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + bl FUN_060001F0 + b _06003AE4 +_0600395C: + mov r6, #0 + strh r6, [r8, #246] ; 0xf6 + mov sl, #1 + add r4, r8, #296 ; 0x128 + mov fp, #6 + mov r0, #3 + str r0, [sp] + str sl, [sp, #4] + mov r5, sl +_06003980: + mov r7, r5, lsl sl + add r0, r8, #256 ; 0x100 + ldrh r0, [r0, #130] ; 0x82 + ands r0, r0, r7 + beq _06003A44 + sub r1, sl, #1 + mov r0, #6 + mla r0, r1, r0, r4 + add r1, sp, #8 + mov r2, fp + bl FUN_06000554 + mov r9, r6 + b _060039E4 +_060039B4: + add r0, sp, #16 + add r1, sp, #8 + ldr r2, [sp] + bl FUN_06002C68 + ldrh r0, [r0, #4] + cmp r0, #0 + beq _060039EC + cmp r0, #7 + beq _060039E0 + cmp r0, #12 + bne _060039EC +_060039E0: + add r9, r9, #1 +_060039E4: + cmp r9, #2 + blt _060039B4 +_060039EC: + bl FUN_060001A4 + add r1, r8, #256 ; 0x100 + ldrh r2, [r1, #130] ; 0x82 + ands r3, r2, r7 + beq _06003A40 + mvn r3, r7 + and r2, r2, r3 + strh r2, [r1, #130] ; 0x82 + ldrh r1, [r8, #134] ; 0x86 + and r1, r1, r3 + strh r1, [r8, #134] ; 0x86 + add r1, r8, sl, lsl #3 + str r6, [r1, #1848] ; 0x738 + str r6, [r1, #1852] ; 0x73c + bl FUN_060001AC + ldr r0, [sp, #4] + mov r1, sl, lsl #16 + mov r1, r1, lsr #16 + add r2, sp, #8 + bl FUN_06004C5C + b _06003A44 +_06003A40: + bl FUN_060001AC +_06003A44: + add sl, sl, #1 + cmp sl, #16 + blt _06003980 + add r0, sp, #16 + mov r1, #1 + bl FUN_06002F14 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003A74 + mov r0, #0 + bl FUN_060038E8 + b _06003AE4 +_06003A74: + mov r0, #0 + strh r0, [r8, #194] ; 0xc2 + mov r0, #3 + strh r0, [r8] + add r0, sp, #16 + bl FUN_06002380 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003AA4 + ldr r0, _06003AF4 ; =0x00000302 + bl FUN_060038E8 + b _06003AE4 +_06003AA4: + mov r0, #2 + strh r0, [r8] + mov r1, #0 + str r1, [r8, #408] ; 0x198 + add r0, r8, #256 ; 0x100 + strh r1, [r0, #150] ; 0x96 + add r0, r8, #412 ; 0x19c + mov r2, #80 ; 0x50 + bl FUN_06000D08 + bl FUN_06000100 + bl FUN_060001E8 + mov r1, #9 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 +_06003AE4: + add sp, sp, #532 ; 0x214 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06003AF0: .word _0601A960 +_06003AF4: .word 0x00000302 + + arm_func_start FUN_06003AF8 +FUN_06003AF8: ; 0x06003AF8 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl FUN_060001E8 + cmp r4, #0 + movne r1, #38 ; 0x26 + strneh r1, [r0] + moveq r1, #10 + streqh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + mov r1, #4 + strh r1, [r0, #8] + strh r6, [r0, #4] + strh r5, [r0, #6] + bl FUN_060001F0 + ldmia sp!, {r4, r5, r6, lr} + bx lr + + arm_func_start FUN_06003B44 +FUN_06003B44: ; 0x06003B44 + stmdb sp!, {r4, lr} + mov r4, r0 + sub r0, r4, #64 ; 0x40 + mov r1, #66 ; 0x42 + bl FUN_06003B68 + sub r0, r4, r0, lsl #1 + add r0, r0, #94 ; 0x5e + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_06003B68 +FUN_06003B68: ; 0x06003B68 + ldr pc, _06003B6C ; =_u32_div_f +_06003B6C: .word _u32_div_f + + arm_func_start FUN_06003B70 +FUN_06003B70: ; 0x06003B70 + ldrh r2, [r0, #10] + cmp r2, #0 + moveq r0, #0 + bxeq lr + cmp r2, #32 + movhi r0, #0 + bxhi lr + mov r3, #0 + b _06003BAC +_06003B94: + add r1, r0, r3 + ldrb r1, [r1, #12] + cmp r1, #0 + movne r0, #1 + bxne lr + add r3, r3, #1 +_06003BAC: + cmp r3, r2 + blt _06003B94 + mov r0, #0 + bx lr + + arm_func_start FUN_06003BBC +FUN_06003BBC: ; 0x06003BBC + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr ip, _060040D8 ; =0x000004CC + sub sp, sp, ip + mov r8, r0 + ldr r0, _060040DC ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + ldrh r0, [r4] + cmp r0, #2 + beq _06003C14 + cmp r0, #3 + beq _06003C14 + cmp r0, #5 + beq _06003C14 + bl FUN_060001E8 + mov r1, #38 ; 0x26 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + mov r1, #4 + strh r1, [r0, #8] + bl FUN_060001F0 + b _060040C8 +_06003C14: + ldr r0, [r8, #4] + str r0, [r4, #388] ; 0x184 + ldrh sl, [r8, #2] + add r0, r4, #256 ; 0x100 + strh sl, [r0, #144] ; 0x90 + ldrh fp, [r8, #10] + add r0, r8, #12 + add r1, sp, #28 + mov r2, #6 + bl FUN_06000554 + ldrh r6, [r8, #54] ; 0x36 + ldrh r7, [r8, #18] + cmp r7, #2 + beq _06003C58 + cmp r7, #3 + beq _06003C64 + b _06003C70 +_06003C58: + mov r5, #1 + mov r7, #0 + b _06003C74 +_06003C64: + mov r5, #1 + mov r7, r5 + b _06003C74 +_06003C70: + mov r5, #0 +_06003C74: + ldrh r9, [r8, #20] + add r0, r8, #22 + add r1, sp, #34 ; 0x22 + mov r2, #32 + bl FUN_06000554 + ldrh r0, [r8, #8] + str r0, [sp, #16] + ldrh r1, [sp, #28] + ldr r0, _060040E0 ; =0x0000FFFF + cmp r1, r0 + beq _06003CAC + ands r0, r1, #1 + bicne r0, r1, #1 + strneh r0, [sp, #28] +_06003CAC: + mov r0, sl, lsl #17 + mov r1, r0, lsr #16 + add r0, r4, #256 ; 0x100 + ldrh r0, [r0, #244] ; 0xf4 + ands sl, r1, r0 + bne _06003CE8 + bl FUN_060001E8 + mov r1, #38 ; 0x26 + strh r1, [r0] + mov r1, #6 + strh r1, [r0, #2] + mov r1, #4 + strh r1, [r0, #8] + bl FUN_060001F0 + b _060040C8 +_06003CE8: + ldr r0, [r8, #4] + cmp r0, #0 + beq _06003D08 + ands r0, r0, #3 + bne _06003D08 + ldrh r0, [r8, #8] + cmp r0, #64 ; 0x40 + bcs _06003D2C +_06003D08: + bl FUN_060001E8 + mov r1, #38 ; 0x26 + strh r1, [r0] + mov r1, #6 + strh r1, [r0, #2] + mov r1, #4 + strh r1, [r0, #8] + bl FUN_060001F0 + b _060040C8 +_06003D2C: + mov r0, #2 + strh r0, [r4, #230] ; 0xe6 + add r0, sp, #116 ; 0x74 + bl FUN_060022F8 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003D58 + mov r0, #776 ; 0x308 + mov r2, #1 + bl FUN_06003AF8 + b _060040C8 +_06003D58: + ldrh r0, [r0, #6] + cmp r0, #16 + bne _06003DDC + mov r0, #38 ; 0x26 + add r1, sp, #116 ; 0x74 + bl FUN_06000408 + cmp r0, #0 + beq _060040C8 + add r0, sp, #116 ; 0x74 + bl FUN_06002368 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003D9C + ldr r0, _060040E4 ; =0x00000303 + mov r2, #1 + bl FUN_06003AF8 + b _060040C8 +_06003D9C: + mov r0, #3 + strh r0, [r4] + add r0, sp, #116 ; 0x74 + mov r1, #1 + mov r2, #0 + mov r3, r1 + bl FUN_06002EB0 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003DD4 + mov r0, #1 + mov r2, r0 + bl FUN_06003AF8 + b _060040C8 +_06003DD4: + mov r0, #1 + strh r0, [r4, #198] ; 0xc6 +_06003DDC: + cmp r7, #0 + bne _06003E2C + add r0, r4, #256 ; 0x100 + ldrh r0, [r0, #238] ; 0xee + cmp r0, #1 + bne _06003E70 + add r0, sp, #116 ; 0x74 + mov r1, #0 + bl FUN_06002670 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003E1C + ldr r0, _060040E8 ; =0x0000020E + mov r2, #1 + bl FUN_06003AF8 + b _060040C8 +_06003E1C: + mov r1, #0 + add r0, r4, #256 ; 0x100 + strh r1, [r0, #238] ; 0xee + b _06003E70 +_06003E2C: + add r0, r4, #256 ; 0x100 + ldrh r0, [r0, #238] ; 0xee + cmp r0, #0 + bne _06003E70 + add r0, sp, #116 ; 0x74 + mov r1, #1 + bl FUN_06002670 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003E64 + ldr r0, _060040E8 ; =0x0000020E + mov r2, #1 + bl FUN_06003AF8 + b _060040C8 +_06003E64: + mov r1, #1 + add r0, r4, #256 ; 0x100 + strh r1, [r0, #238] ; 0xee +_06003E70: + cmp r5, #1 + bne _06003EC8 + add r0, sp, #66 ; 0x42 + mov r1, #255 ; 0xff + mov r2, #32 + bl FUN_06000D08 + cmp r6, #32 + bhi _06003EA0 + add r0, sp, #66 ; 0x42 + mov r1, #0 + mov r2, r6 + bl FUN_06000D08 +_06003EA0: + add r0, sp, #116 ; 0x74 + add r1, sp, #66 ; 0x42 + bl FUN_060026D0 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06003EC8 + ldr r0, _060040EC ; =0x0000020D + mov r2, #1 + bl FUN_06003AF8 + b _060040C8 +_06003EC8: + mov r0, #5 + strh r0, [r4] + mov r5, #0 + add r0, sp, #98 ; 0x62 + mov r1, r5 + mov r2, #16 + bl FUN_06000D08 + mov r3, #1 + add r1, sp, #98 ; 0x62 + mov r2, r3 +_06003EF0: + mov r0, r2, lsl r3 + ands r0, sl, r0 + strneb r3, [r1, r5] + addne r0, r5, #1 + movne r0, r0, lsl #16 + movne r5, r0, lsr #16 + add r0, r3, #1 + mov r0, r0, lsl #16 + mov r3, r0, lsr #16 + cmp r3, #15 + bcc _06003EF0 + ldr r0, [sp, #16] + bl FUN_06003B44 + mov r1, r0 + add r0, sp, #34 ; 0x22 + str r0, [sp] + str r7, [sp, #4] + add r0, sp, #98 ; 0x62 + str r0, [sp, #8] + str fp, [sp, #12] + add r0, sp, #116 ; 0x74 + add r2, sp, #28 + mov r3, r9 + bl FUN_06002DF4 + mov r8, r0 + ldrh r1, [r8, #4] + cmp r1, #0 + beq _06003F70 + mov r0, #2 + mov r2, #1 + bl FUN_06003AF8 + b _060040C8 +_06003F70: + bl FUN_060001E8 + mov r7, r0 + ldrh r0, [r8, #8] + cmp r0, #0 + bne _06003FAC + mov r0, #38 ; 0x26 + strh r0, [r7] + mov r1, #0 + strh r1, [r7, #2] + mov r0, #4 + strh r0, [r7, #8] + strh r1, [r7, #14] + mov r0, sl, asr #1 + strh r0, [r7, #10] + b _060040C0 +_06003FAC: + add r5, r8, #10 + ldr r4, [r4, #388] ; 0x184 + mov r0, #0 + mov r1, r4 + ldr r2, [sp, #16] + bl FUN_0600055C + mov r6, #0 + mov r0, #32 + str r0, [sp, #24] + b _0600408C +_06003FD4: + ldrh r0, [r5] + mov r0, r0, lsl #17 + mov r0, r0, lsr #16 + str r0, [sp, #20] + mov r0, r5 + mov r1, r4 + ldr r2, [sp, #20] + bl FUN_06000554 + cmp r9, #0 + beq _06004020 + mov r0, r4 + bl FUN_06003B70 + cmp r0, #0 + bne _06004020 + strh r9, [r4, #10] + add r0, sp, #34 ; 0x22 + add r1, r4, #12 + ldr r2, [sp, #24] + bl FUN_06000554 +_06004020: + add r0, r7, r6, lsl #2 + str r4, [r0, #16] + ldrh r0, [r5, #2] + and r1, r0, #255 ; 0xff + ands r0, r1, #2 + movne r0, r1, asr #2 + andne fp, r0, #255 ; 0xff + moveq r0, r1, asr #2 + addeq r0, r0, #25 + andeq fp, r0, #255 ; 0xff + mov r0, fp + bl FUN_060002E8 + add r1, r7, r6, lsl #1 + strh r0, [r1, #80] ; 0x50 + ldr r0, _060040F0 ; =0x027FFF98 + ldrh r0, [r0] + eor r0, fp, r0, lsl #1 + eor r1, r0, r0, lsr #16 + ldr r0, _060040F0 ; =0x027FFF98 + strh r1, [r0] + ldr r0, [sp, #20] + add r5, r5, r0 + add r4, r4, r0 + ands r0, r4, #2 + addne r0, r4, #2 + bicne r4, r0, #3 + add r6, r6, #1 +_0600408C: + ldrh r0, [r8, #8] + cmp r6, r0 + blt _06003FD4 + mov r0, #38 ; 0x26 + strh r0, [r7] + mov r0, #0 + strh r0, [r7, #2] + mov r0, #5 + strh r0, [r7, #8] + ldrh r0, [r8, #8] + strh r0, [r7, #14] + mov r0, sl, asr #1 + strh r0, [r7, #10] +_060040C0: + mov r0, r7 + bl FUN_060001F0 +_060040C8: + ldr ip, _060040D8 ; =0x000004CC + add sp, sp, ip + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_060040D8: .word 0x000004CC +_060040DC: .word _0601A960 +_060040E0: .word 0x0000FFFF +_060040E4: .word 0x00000303 +_060040E8: .word 0x0000020E +_060040EC: .word 0x0000020D +_060040F0: .word 0x027FFF98 + + arm_func_start FUN_060040F4 +FUN_060040F4: ; 0x060040F4 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #588 ; 0x24c + add r6, sp, #72 ; 0x48 + ldr r1, _0600447C ; =_0601A960 + ldr r4, [r1, #1360] ; 0x550 + ldrh r1, [r4] + cmp r1, #2 + beq _06004148 + cmp r1, #3 + beq _06004148 + cmp r1, #5 + beq _06004148 + bl FUN_060001E8 + mov r1, #10 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + mov r1, #4 + strh r1, [r0, #8] + bl FUN_060001F0 + b _06004470 +_06004148: + ldr r1, [r0, #4] + str r1, [r4, #388] ; 0x184 + ldrh r7, [r0, #2] + add r1, r4, #256 ; 0x100 + strh r7, [r1, #144] ; 0x90 + ldrh r5, [r0, #8] + add r0, r0, #10 + add r1, sp, #16 + mov r2, #6 + bl FUN_06000554 + ldrh r1, [sp, #16] + ldr r0, _06004480 ; =0x0000FFFF + cmp r1, r0 + beq _0600418C + ands r0, r1, #1 + bicne r0, r1, #1 + strneh r0, [sp, #16] +_0600418C: + cmp r7, #0 + bne _060041B8 + bl FUN_060001E8 + mov r1, #10 + strh r1, [r0] + mov r1, #6 + strh r1, [r0, #2] + mov r1, #4 + strh r1, [r0, #8] + bl FUN_060001F0 + b _06004470 +_060041B8: + mov r0, #1 + mov r1, r0, lsl r7 + add r0, r4, #256 ; 0x100 + ldrh r0, [r0, #244] ; 0xf4 + ands r0, r1, r0 + bne _060041F4 + bl FUN_060001E8 + mov r1, #10 + strh r1, [r0] + mov r1, #6 + strh r1, [r0, #2] + mov r1, #4 + strh r1, [r0, #8] + bl FUN_060001F0 + b _06004470 +_060041F4: + mov r0, #2 + strh r0, [r4, #230] ; 0xe6 + mov r0, r6 + bl FUN_060022F8 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06004220 + mov r0, #776 ; 0x308 + mov r2, #0 + bl FUN_06003AF8 + b _06004470 +_06004220: + ldrh r0, [r0, #6] + cmp r0, #16 + bne _060042A4 + mov r0, #10 + mov r1, r6 + bl FUN_06000408 + cmp r0, #0 + beq _06004470 + mov r0, r6 + bl FUN_06002368 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06004264 + ldr r0, _06004484 ; =0x00000303 + mov r2, #0 + bl FUN_06003AF8 + b _06004470 +_06004264: + mov r0, #3 + strh r0, [r4] + mov r0, r6 + mov r1, #1 + mov r2, #0 + mov r3, r1 + bl FUN_06002EB0 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _0600429C + mov r0, #1 + mov r2, #0 + bl FUN_06003AF8 + b _06004470 +_0600429C: + mov r0, #1 + strh r0, [r4, #198] ; 0xc6 +_060042A4: + mov r0, #5 + strh r0, [r4] + ldr r0, _06004480 ; =0x0000FFFF + add r1, sp, #22 + mov r2, #32 + bl FUN_0600055C + strb r7, [sp, #54] ; 0x36 + add r0, sp, #55 ; 0x37 + mov r1, #0 + mov r2, #15 + bl FUN_06000D08 + add r0, sp, #22 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + add r0, sp, #54 ; 0x36 + str r0, [sp, #8] + str r5, [sp, #12] + mov r0, r6 + ldr r1, _06004488 ; =0x0000011E + add r2, sp, #16 + mov r3, #0 + bl FUN_06002DF4 + mov r6, r0 + ldrh r1, [r6, #4] + cmp r1, #0 + beq _06004320 + mov r0, #2 + mov r2, #0 + bl FUN_06003AF8 + b _06004470 +_06004320: + bl FUN_060001E8 + mov r5, r0 + ldrh r0, [r6, #8] + cmp r0, #0 + bne _06004358 + mov r0, #10 + strh r0, [r5] + mov r1, #0 + strh r1, [r5, #2] + mov r0, #4 + strh r0, [r5, #8] + strh r7, [r5, #16] + strh r1, [r5, #18] + b _06004468 +_06004358: + mov r0, #0 + ldr r1, [r4, #388] ; 0x184 + add r1, r1, #64 ; 0x40 + mov r2, #128 ; 0x80 + bl FUN_0600055C + add r0, r6, #10 + ldr r1, [r4, #388] ; 0x184 + ldrh r2, [r6, #10] + mov r2, r2, lsl #1 + bl FUN_06000554 + mov r0, #10 + strh r0, [r5] + mov r0, #0 + strh r0, [r5, #2] + mov r0, #5 + strh r0, [r5, #8] + ldrh r0, [r6, #64] ; 0x40 + strh r0, [r5, #16] + ldrh r0, [r6, #12] + and r1, r0, #255 ; 0xff + ands r0, r1, #2 + movne r0, r1, asr #2 + andne r4, r0, #255 ; 0xff + moveq r0, r1, asr #2 + addeq r0, r0, #25 + andeq r4, r0, #255 ; 0xff + mov r0, r4 + bl FUN_060002E8 + strh r0, [r5, #18] + ldr r1, _0600448C ; =0x027FFF98 + ldrh r0, [r1] + eor r0, r4, r0, lsl #1 + eor r0, r0, r0, lsr #16 + strh r0, [r1] + ldrh r0, [r6, #20] + strh r0, [r5, #20] + add r0, r6, #14 + add r1, r5, #10 + mov r2, #6 + bl FUN_06000554 + add r0, r6, #22 + add r1, r5, #22 + mov r2, #32 + bl FUN_06000EA0 + ldrh r0, [r6, #70] ; 0x46 + strh r0, [r5, #54] ; 0x36 + ldrh r0, [r5, #54] ; 0x36 + cmp r0, #128 ; 0x80 + bls _06004440 + mov r0, #10 + strh r0, [r5] + mov r1, #0 + strh r1, [r5, #2] + mov r0, #4 + strh r0, [r5, #8] + strh r7, [r5, #16] + strh r1, [r5, #18] + b _06004468 +_06004440: + mov r0, #0 + add r1, r5, #56 ; 0x38 + mov r2, #128 ; 0x80 + bl FUN_0600055C + add r0, r6, #74 ; 0x4a + add r1, r5, #56 ; 0x38 + ldrh r2, [r5, #54] ; 0x36 + add r2, r2, #1 + bic r2, r2, #1 + bl FUN_06000EA0 +_06004468: + mov r0, r5 + bl FUN_060001F0 +_06004470: + add sp, sp, #588 ; 0x24c + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_0600447C: .word _0601A960 +_06004480: .word 0x0000FFFF +_06004484: .word 0x00000303 +_06004488: .word 0x0000011E +_0600448C: .word 0x027FFF98 + + arm_func_start FUN_06004490 +FUN_06004490: ; 0x06004490 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #11 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_060044CC +FUN_060044CC: ; 0x060044CC + stmdb sp!, {r4, r5, lr} + sub sp, sp, #516 ; 0x204 + add r5, sp, #0 + ldr r0, _06004594 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + ldrh r0, [r4] + cmp r0, #5 + beq _06004508 + bl FUN_060001E8 + mov r1, #11 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + bl FUN_060001F0 + b _06004588 +_06004508: + mov r0, r5 + bl FUN_06002380 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06004528 + ldr r0, _06004598 ; =0x00000302 + bl FUN_06004490 + b _06004588 +_06004528: + mov r0, #2 + strh r0, [r4] + add r0, r4, #256 ; 0x100 + ldrh r0, [r0, #238] ; 0xee + cmp r0, #0 + bne _06004570 + mov r0, r5 + mov r1, #1 + bl FUN_06002670 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06004564 + ldr r0, _0600459C ; =0x0000020E + bl FUN_06004490 + b _06004588 +_06004564: + mov r1, #1 + add r0, r4, #256 ; 0x100 + strh r1, [r0, #238] ; 0xee +_06004570: + bl FUN_060001E8 + mov r1, #11 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 +_06004588: + add sp, sp, #516 ; 0x204 + ldmia sp!, {r4, r5, lr} + bx lr +_06004594: .word _0601A960 +_06004598: .word 0x00000302 +_0600459C: .word 0x0000020E + + arm_func_start FUN_060045A0 +FUN_060045A0: ; 0x060045A0 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl FUN_060001E8 + mov r1, #12 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r6, [r0, #4] + strh r5, [r0, #6] + strh r4, [r0, #14] + bl FUN_060001F0 + ldmia sp!, {r4, r5, r6, lr} + bx lr + + arm_func_start FUN_060045DC +FUN_060045DC: ; 0x060045DC + stmdb sp!, {r4, r5, r6, r7, r8, lr} + sub sp, sp, #592 ; 0x250 + mov r6, r0 + add r4, sp, #12 + ldr r0, _06004BA8 ; =_0601A960 + ldr r7, [r0, #1356] ; 0x54c + ldr r5, [r0, #1360] ; 0x550 + ldrh r0, [r5] + cmp r0, #2 + beq _06004628 + bl FUN_060001E8 + mov r1, #12 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + mov r1, #6 + strh r1, [r0, #8] + bl FUN_060001F0 + b _06004B9C +_06004628: + ldr r0, [r6, #4] + add r1, r7, #16 + mov r2, #192 ; 0xc0 + bl FUN_06000554 + ldrh r0, [r7, #76] ; 0x4c + cmp r0, #16 + bcc _06004674 + ldrb r0, [r7, #91] ; 0x5b + ands r0, r0, #1 + bne _06004674 + bl FUN_060001E8 + mov r1, #12 + strh r1, [r0] + mov r1, #11 + strh r1, [r0, #2] + mov r1, #6 + strh r1, [r0, #8] + bl FUN_060001F0 + b _06004B9C +_06004674: + mov r1, #1 + ldrh r0, [r7, #70] ; 0x46 + mov r1, r1, lsl r0 + add r0, r5, #256 ; 0x100 + ldrh r0, [r0, #244] ; 0xf4 + ands r0, r1, r0 + beq _060046A0 + mov r1, r1, asr #1 + ldr r0, _06004BAC ; =0x00001FFF + ands r0, r1, r0 + bne _060046C0 +_060046A0: + bl FUN_060001E8 + mov r1, #12 + strh r1, [r0] + mov r1, #6 + strh r1, [r0, #2] + strh r1, [r0, #8] + bl FUN_060001F0 + b _06004B9C +_060046C0: + bl FUN_060001E8 + mov r1, #12 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + mov r1, #6 + strh r1, [r0, #8] + bl FUN_060001F0 + add r0, r5, #256 ; 0x100 + ldrh r1, [r0, #236] ; 0xec + cmp r1, #1 + bne _0600470C + ldrh r1, [r7, #62] ; 0x3e + ands r1, r1, #1 + movne r1, #1 + strneh r1, [r0, #236] ; 0xec + moveq r1, #2 + streqh r1, [r0, #236] ; 0xec + b _06004724 +_0600470C: + ldrh r1, [r7, #62] ; 0x3e + ands r1, r1, #2 + movne r1, #2 + strneh r1, [r0, #236] ; 0xec + moveq r1, #1 + streqh r1, [r0, #236] ; 0xec +_06004724: + ldrh r0, [r7, #60] ; 0x3c + ands r0, r0, #32 + movne r1, #1 + addne r0, r5, #256 ; 0x100 + strneh r1, [r0, #238] ; 0xee + moveq r1, #0 + addeq r0, r5, #256 ; 0x100 + streqh r1, [r0, #238] ; 0xee + ldrh r0, [r7, #76] ; 0x4c + cmp r0, #0 + moveq r0, #3 + streqh r0, [r5, #230] ; 0xe6 + movne r0, #2 + strneh r0, [r5, #230] ; 0xe6 + mov r0, #12 + mov r1, r4 + bl FUN_06000408 + cmp r0, #0 + beq _06004B9C + mov r0, r4 + mov r1, #0 + bl FUN_060024E4 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06004798 + ldr r0, _06004BB0 ; =0x00000216 + mov r2, #0 + bl FUN_060045A0 + b _06004B9C +_06004798: + ldrh r0, [r7, #76] ; 0x4c + cmp r0, #16 + bcs _060047F4 + ldrh r1, [r7, #66] ; 0x42 + cmp r1, #0 + moveq r0, #1 + beq _060047C0 + ldr r0, _06004BB4 ; =0x00002710 + bl FUN_06001840 + add r0, r0, #1 +_060047C0: + mov r0, r0, lsl #16 + mov r1, r0, lsr #16 + cmp r1, #255 ; 0xff + movhi r1, #255 ; 0xff + mov r0, r4 + bl FUN_06002750 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _060047F4 + ldr r0, _06004BB8 ; =0x0000020B + mov r2, #0 + bl FUN_060045A0 + b _06004B9C +_060047F4: + mov r0, r4 + bl FUN_06002368 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06004818 + ldr r0, _06004BBC ; =0x00000303 + mov r2, #0 + bl FUN_060045A0 + b _06004B9C +_06004818: + mov r0, #3 + strh r0, [r5] + ldr r0, [r6, #32] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + mov r0, r0, lsl #16 + mov r8, r0, lsr #16 + mov r0, r4 + mov r1, r8 + mov r2, #0 + mov r3, #1 + bl FUN_06002EB0 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06004868 + mov r0, #1 + mov r2, #0 + bl FUN_060045A0 + b _06004B9C +_06004868: + strh r8, [r5, #198] ; 0xc6 + add r0, r7, #16 + add r1, sp, #524 ; 0x20c + mov r2, #64 ; 0x40 + bl FUN_06000554 + ldrh r0, [r5, #230] ; 0xe6 + cmp r0, #2 + bne _060048C8 + mov r1, #32 + add r0, sp, #512 ; 0x200 + strh r1, [r0, #22] + ldr r1, [r7, #84] ; 0x54 + strh r1, [r0, #24] + ldr r1, [r7, #84] ; 0x54 + mov r1, r1, lsr #16 + strh r1, [r0, #26] + ldrh r1, [r7, #88] ; 0x58 + strh r1, [r0, #28] + mov r1, #0 + strh r1, [r0, #30] + add r0, r6, #8 + add r1, sp, #544 ; 0x220 + mov r2, #24 + bl FUN_06000554 +_060048C8: + mov r0, r4 + mov r1, #2000 ; 0x7d0 + add r2, sp, #524 ; 0x20c + bl FUN_06002D70 + mov r2, r0 + ldrh r1, [r2, #4] + cmp r1, #0 + bne _060048F4 + ldrh r0, [r2, #6] + cmp r0, #0 + beq _06004904 +_060048F4: + mov r0, #3 + ldrh r2, [r2, #6] + bl FUN_060045A0 + b _06004B9C +_06004904: + add r0, r2, #8 + ldr r1, _06004BC0 ; =0x0000018A + add r1, r5, r1 + mov r2, #6 + bl FUN_06000554 + ldr r0, _06004BC0 ; =0x0000018A + add r0, r5, r0 + add r1, sp, #0 + mov r2, #6 + bl FUN_06000554 + mov r0, r4 + add r1, sp, #0 + ldrh r2, [r6, #38] ; 0x26 + mov r3, #2000 ; 0x7d0 + bl FUN_06002CEC + mov r2, r0 + ldrh r1, [r2, #4] + cmp r1, #12 + bne _0600497C + ldrh r0, [r2, #6] + cmp r0, #19 + bne _0600497C + bl FUN_060001E8 + mov r1, #12 + strh r1, [r0] + strh r1, [r0, #2] + mov r1, #6 + strh r1, [r0, #8] + bl FUN_060001F0 + b _06004B9C +_0600497C: + cmp r1, #0 + bne _06004990 + ldrh r0, [r2, #6] + cmp r0, #0 + beq _060049A0 +_06004990: + mov r0, #4 + ldrh r2, [r2, #6] + bl FUN_060045A0 + b _06004B9C +_060049A0: + ldr r0, _06004BC0 ; =0x0000018A + add r0, r5, r0 + add r1, sp, #6 + mov r2, #6 + bl FUN_06000554 + mov r0, r4 + add r1, sp, #6 + mov r2, #1 + mov r3, #2000 ; 0x7d0 + bl FUN_06002BE8 + mov r4, r0 + bl FUN_060001A4 + mov r6, r0 + ldrh r2, [r4, #4] + cmp r2, #12 + bne _06004A10 + ldrh r1, [r4, #6] + cmp r1, #19 + bne _06004A10 + bl FUN_060001AC + bl FUN_060001E8 + mov r1, #12 + strh r1, [r0] + strh r1, [r0, #2] + mov r1, #6 + strh r1, [r0, #8] + bl FUN_060001F0 + b _06004B9C +_06004A10: + cmp r2, #0 + bne _06004A24 + ldrh r0, [r4, #6] + cmp r0, #0 + beq _06004A40 +_06004A24: + mov r0, r6 + bl FUN_060001AC + mov r0, #6 + ldrh r1, [r4, #4] + ldrh r2, [r4, #6] + bl FUN_060045A0 + b _06004B9C +_06004A40: + ldrh r1, [r4, #8] + add r0, r5, #256 ; 0x100 + strh r1, [r0, #136] ; 0x88 + ldrh r0, [r7, #88] ; 0x58 + strh r0, [r5, #186] ; 0xba + mov r0, #1 + add r1, r5, #504 ; 0x1f8 + mov r2, #16 + bl FUN_0600055C + ldrh r0, [r7, #18] + and r1, r0, #255 ; 0xff + ands r0, r1, #2 + movne r0, r1, asr #2 + andne r4, r0, #255 ; 0xff + moveq r0, r1, asr #2 + addeq r0, r0, #25 + andeq r4, r0, #255 ; 0xff + mov r0, r4 + bl FUN_060002E8 + strh r0, [r5, #188] ; 0xbc + mov r0, r4 + bl FUN_0600038C + bl FUN_060001A4 + mov r4, r0 + mov r1, #1 + add r0, r5, #256 ; 0x100 + strh r1, [r0, #130] ; 0x82 + strh r1, [r5, #134] ; 0x86 + ldr r2, [r5, #1976] ; 0x7b8 + ldr r1, [r5, #1980] ; 0x7bc + mov r0, #0 + cmp r1, r0 + cmpeq r2, r0 + beq _06004ADC + bl FUN_06000E98 + orr r1, r1, #0 + orr r0, r0, #1 + str r0, [r5, #1848] ; 0x738 + str r1, [r5, #1852] ; 0x73c +_06004ADC: + mov r0, #8 + strh r0, [r5] + ldrb r0, [r7, #91] ; 0x5b + ands r0, r0, #4 + movne r1, #42 ; 0x2a + moveq r1, #0 + ldrh r0, [r7, #92] ; 0x5c + add r0, r0, r1 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + bl FUN_060000B0 + ldrb r0, [r7, #91] ; 0x5b + ands r0, r0, #4 + movne r1, #6 + moveq r1, #0 + ldrh r0, [r7, #94] ; 0x5e + add r0, r0, r1 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + bl FUN_06000060 + mov r0, r4 + bl FUN_060001AC + mov r0, #1 + strh r0, [r5, #194] ; 0xc2 + bl FUN_060001E8 + mov r4, r0 + mov r0, #12 + strh r0, [r4] + mov r0, #0 + strh r0, [r4, #2] + mov r0, #7 + strh r0, [r4, #8] + add r0, r5, #256 ; 0x100 + ldrh r0, [r0, #136] ; 0x88 + strh r0, [r4, #10] + ldr r0, _06004BC0 ; =0x0000018A + add r0, r5, r0 + add r1, r4, #16 + mov r2, #6 + bl FUN_06000554 + ldrh r0, [r5, #48] ; 0x30 + strh r0, [r4, #22] + ldrh r0, [r5, #50] ; 0x32 + strh r0, [r4, #24] + mov r0, r4 + bl FUN_060001F0 + mov r0, r6 + bl FUN_060001AC +_06004B9C: + add sp, sp, #592 ; 0x250 + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_06004BA8: .word _0601A960 +_06004BAC: .word 0x00001FFF +_06004BB0: .word 0x00000216 +_06004BB4: .word 0x00002710 +_06004BB8: .word 0x0000020B +_06004BBC: .word 0x00000303 +_06004BC0: .word 0x0000018A + + arm_func_start FUN_06004BC4 +FUN_06004BC4: ; 0x06004BC4 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl FUN_060001E8 + mov r1, #37 ; 0x25 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r7, [r0, #4] + strh r6, [r0, #6] + strh r5, [r0, #8] + strh r4, [r0, #10] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr + + arm_func_start FUN_06004C10 +FUN_06004C10: ; 0x06004C10 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl FUN_060001E8 + mov r1, #13 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r7, [r0, #4] + strh r6, [r0, #6] + strh r5, [r0, #8] + strh r4, [r0, #10] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr + + arm_func_start FUN_06004C5C +FUN_06004C5C: ; 0x06004C5C + stmdb sp!, {r4, r5, r6, r7, r8, lr} + mov r8, r0 + mov r7, r1 + mov r6, r2 + ldr r0, _06004D20 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + bl FUN_060001E8 + mov r5, r0 + mov r0, #0 + strh r0, [r5, #2] + cmp r8, #0 + beq _06004CCC + mov r0, #8 + strh r0, [r5] + mov r0, #26 + strh r0, [r5, #8] + ldr r0, _06004D24 ; =0x0000F001 + strh r0, [r5, #18] + strh r7, [r5, #16] + mov r0, r6 + add r1, r5, #10 + mov r2, #6 + bl FUN_06000554 + ldrh r0, [r4, #48] ; 0x30 + strh r0, [r5, #44] ; 0x2c + ldrh r0, [r4, #50] ; 0x32 + strh r0, [r5, #46] ; 0x2e + b _06004D10 +_06004CCC: + mov r0, #12 + strh r0, [r5] + mov r0, #26 + strh r0, [r5, #8] + ldr r0, _06004D24 ; =0x0000F001 + strh r0, [r5, #12] + add r0, r4, #256 ; 0x100 + ldrh r0, [r0, #136] ; 0x88 + strh r0, [r5, #10] + mov r0, r6 + add r1, r5, #16 + mov r2, #6 + bl FUN_06000554 + ldrh r0, [r4, #48] ; 0x30 + strh r0, [r5, #22] + ldrh r0, [r4, #50] ; 0x32 + strh r0, [r5, #24] +_06004D10: + mov r0, r5 + bl FUN_060001F0 + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_06004D20: .word _0601A960 +_06004D24: .word 0x0000F001 + + arm_func_start FUN_06004D28 +FUN_06004D28: ; 0x06004D28 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #580 ; 0x244 + movs sl, r1 + str r2, [sp] + ldr r1, _0600531C ; =_0601A960 + ldr r5, [r1, #1360] ; 0x550 + ldr r1, [r0, #4] + mov r1, r1, lsl #16 + mov r9, r1, lsr #16 + ldrne r0, [r0, #8] + moveq r0, #0 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + str r0, [sp, #4] + mov r8, #0 + mov r7, r8 + ldrh r0, [r5] + cmp r0, #9 + beq _06004D7C + cmp r0, #7 + bne _06004D8C +_06004D7C: + ldr r0, [r5, #12] + cmp r0, #1 + moveq r7, #1 + b _06004E88 +_06004D8C: + cmp r0, #10 + beq _06004D9C + cmp r0, #8 + bne _06004E4C +_06004D9C: + bl FUN_060001A4 + mov r4, r0 + add r1, r5, #256 ; 0x100 + ldrh r1, [r1, #130] ; 0x82 + cmp r1, #0 + bne _06004DF4 + bl FUN_060001AC + cmp sl, #0 + bne _06004DEC + bl FUN_060001E8 + mov r1, #13 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + mov r1, #0 + strh r1, [r0, #4] + strh r1, [r0, #6] + strh r9, [r0, #8] + strh r1, [r0, #10] + bl FUN_060001F0 +_06004DEC: + mov r0, #0 + b _06005310 +_06004DF4: + ldr r0, [r5, #12] + cmp r0, #1 + bne _06004E24 + mov r0, #0 + str r0, [r5, #12] + mov r7, #1 + bl FUN_06006978 + bl FUN_06000288 + ldrh r0, [r5] + cmp r0, #10 + moveq r0, #8 + streqh r0, [r5] +_06004E24: + mov r1, #0 + add r0, r5, #256 ; 0x100 + strh r1, [r0, #130] ; 0x82 + strh r1, [r5, #134] ; 0x86 + str r1, [r5, #20] + str r1, [r5, #16] + str r1, [r5, #28] + mov r0, r4 + bl FUN_060001AC + b _06004E88 +_06004E4C: + cmp sl, #0 + bne _06004E80 + bl FUN_060001E8 + mov r1, #13 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + mov r1, r8 + strh r1, [r0, #4] + strh r1, [r0, #6] + strh r9, [r0, #8] + strh r1, [r0, #10] + bl FUN_060001F0 +_06004E80: + mov r0, #0 + b _06005310 +_06004E88: + ldrh r0, [r5] + cmp r0, #10 + beq _06004E9C + cmp r0, #8 + bne _060050E0 +_06004E9C: + ldr r0, _06005320 ; =0x0000018A + add r0, r5, r0 + add r1, sp, #56 ; 0x38 + mov r2, #6 + bl FUN_06000554 + mov r8, #0 + add r6, sp, #56 ; 0x38 + mov r4, #3 + b _06004F5C +_06004EC0: + add r0, sp, #68 ; 0x44 + mov r1, r6 + mov r2, r4 + bl FUN_06002C68 + ldrh r1, [r0, #4] + cmp r1, #7 + bgt _06004F08 + cmp r1, #7 + bge _06004F10 + cmp r1, #1 + bgt _06004F18 + cmp r1, #0 + blt _06004F18 + cmp r1, #0 + beq _06004F64 + cmp r1, #1 + beq _06004F64 + b _06004F18 +_06004F08: + cmp r1, #12 + bne _06004F18 +_06004F10: + add r8, r8, #1 + b _06004F5C +_06004F18: + cmp sl, #0 + beq _06004F34 + mov r0, #5 + mov r2, r9 + mov r3, #0 + bl FUN_06004BC4 + b _06004F44 +_06004F34: + mov r0, #5 + mov r2, r9 + mov r3, #0 + bl FUN_06004C10 +_06004F44: + cmp r7, #0 + beq _06004F54 + mov r0, #1 + bl FUN_06006F48 +_06004F54: + mov r0, #0 + b _06005310 +_06004F5C: + cmp r8, #2 + blt _06004EC0 +_06004F64: + mov r8, #1 + mov r0, #0 + strh r0, [r5, #194] ; 0xc2 + mov r0, #3 + strh r0, [r5] + add r0, sp, #68 ; 0x44 + mov r1, r8 + bl FUN_06002F14 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06004FD4 + cmp sl, #0 + beq _06004FAC + mov r0, #0 + mov r2, r9 + mov r3, r8 + bl FUN_06004BC4 + b _06004FBC +_06004FAC: + mov r0, #0 + mov r2, r9 + mov r3, r8 + bl FUN_06004C10 +_06004FBC: + cmp r7, #0 + beq _06004FCC + mov r0, #1 + bl FUN_06006F48 +_06004FCC: + mov r0, #0 + b _06005310 +_06004FD4: + add r0, sp, #68 ; 0x44 + bl FUN_06002380 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _0600502C + cmp sl, #0 + beq _06005004 + ldr r0, _06005324 ; =0x00000302 + mov r2, r9 + mov r3, r8 + bl FUN_06004BC4 + b _06005014 +_06005004: + ldr r0, _06005324 ; =0x00000302 + mov r2, r9 + mov r3, r8 + bl FUN_06004C10 +_06005014: + cmp r7, #0 + beq _06005024 + mov r0, #1 + bl FUN_06006F48 +_06005024: + mov r0, #0 + b _06005310 +_0600502C: + mov r0, #2 + strh r0, [r5] + mov r1, #0 + str r1, [r5, #408] ; 0x198 + add r0, r5, #256 ; 0x100 + strh r1, [r0, #150] ; 0x96 + add r0, r5, #412 ; 0x19c + mov r2, #80 ; 0x50 + bl FUN_06000D08 + bl FUN_06000100 + cmp sl, #1 + bne _060050BC + bl FUN_060001E8 + mov r4, r0 + mov r0, #12 + strh r0, [r4] + mov r0, #0 + strh r0, [r4, #2] + mov r0, #9 + strh r0, [r4, #8] + ldr r0, [sp, #4] + strh r0, [r4, #12] + add r0, r5, #256 ; 0x100 + ldrh r0, [r0, #136] ; 0x88 + strh r0, [r4, #10] + add r0, sp, #56 ; 0x38 + add r1, r4, #16 + mov r2, #6 + bl FUN_06000554 + ldrh r0, [r5, #48] ; 0x30 + strh r0, [r4, #22] + ldrh r0, [r5, #50] ; 0x32 + strh r0, [r4, #24] + mov r0, r4 + bl FUN_060001F0 + b _060050CC +_060050BC: + mov r0, #0 + mov r1, r0 + add r2, sp, #56 ; 0x38 + bl FUN_06004C5C +_060050CC: + cmp r7, #0 + beq _06005300 + mov r0, #1 + bl FUN_06006F48 + b _06005300 +_060050E0: + mov r6, #1 + str r6, [sp, #36] ; 0x24 + mov r0, #0 + str r0, [sp, #24] + mov r0, #6 + str r0, [sp, #20] + str r6, [sp, #52] ; 0x34 + mov r0, #8 + str r0, [sp, #44] ; 0x2c + mov r0, #9 + str r0, [sp, #48] ; 0x30 + mov r0, #3 + str r0, [sp, #28] + str r6, [sp, #16] + b _060052F8 +_0600511C: + ldr r0, [sp, #16] + mov r4, r0, lsl r6 + add r0, r5, #256 ; 0x100 + ldrh r0, [r0, #130] ; 0x82 + and r0, r0, r9 + ands r0, r4, r0 + beq _060052F4 + mov r0, r6, lsl #16 + mov fp, r0, lsr #16 + add r2, r5, #296 ; 0x128 + sub r1, r6, #1 + mov r0, #6 + mla r0, r1, r0, r2 + str r0, [sp, #12] + add r1, sp, #62 ; 0x3e + ldr r2, [sp, #20] + bl FUN_06000554 + ldr r0, [sp, #24] + str r0, [sp, #8] + b _060051EC +_0600516C: + add r0, sp, #68 ; 0x44 + add r1, sp, #62 ; 0x3e + ldr r2, [sp, #28] + bl FUN_06002C68 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _060051F8 + cmp r1, #7 + beq _06005198 + cmp r1, #12 + bne _060051A8 +_06005198: + ldr r0, [sp, #8] + add r0, r0, #1 + str r0, [sp, #8] + b _060051EC +_060051A8: + cmp sl, #0 + beq _060051C4 + mov r0, #5 + mov r2, r9 + mov r3, r8 + bl FUN_06004BC4 + b _060051D4 +_060051C4: + mov r0, #5 + mov r2, r9 + mov r3, r8 + bl FUN_06004C10 +_060051D4: + cmp r7, #0 + beq _060051E4 + mov r0, #1 + bl FUN_06006F48 +_060051E4: + mov r0, #0 + b _06005310 +_060051EC: + ldr r0, [sp, #8] + cmp r0, #2 + blt _0600516C +_060051F8: + bl FUN_060001A4 + str r0, [sp, #32] + add r2, r5, #256 ; 0x100 + ldrh r1, [r2, #130] ; 0x82 + ands r3, r1, r4 + beq _060052F0 + ldr r0, [sp, #36] ; 0x24 + orr r0, r8, r0, lsl fp + mov r0, r0, lsl #16 + mov r8, r0, lsr #16 + mvn r3, r4 + and r0, r1, r3 + strh r0, [r2, #130] ; 0x82 + ldrh r0, [r5, #134] ; 0x86 + and r0, r0, r3 + strh r0, [r5, #134] ; 0x86 + add r1, r5, fp, lsl #3 + ldr r0, [sp, #24] + str r0, [r1, #1848] ; 0x738 + str r0, [r1, #1852] ; 0x73c + ldr r0, [sp, #12] + ldr r1, [sp, #24] + ldr r2, [sp, #20] + bl FUN_06000D08 + ldr r0, [sp, #32] + bl FUN_060001AC + cmp sl, #1 + bne _060052C4 + bl FUN_060001E8 + str r0, [sp, #40] ; 0x28 + ldr r1, [sp, #44] ; 0x2c + strh r1, [r0] + ldr r1, [sp, #24] + strh r1, [r0, #2] + ldr r1, [sp, #48] ; 0x30 + strh r1, [r0, #8] + ldr r1, [sp, #4] + strh r1, [r0, #18] + strh fp, [r0, #16] + add r0, sp, #62 ; 0x3e + ldr r1, [sp, #40] ; 0x28 + add r1, r1, #10 + ldr r2, [sp, #20] + bl FUN_06000554 + ldrh r1, [r5, #48] ; 0x30 + ldr r0, [sp, #40] ; 0x28 + strh r1, [r0, #44] ; 0x2c + ldrh r1, [r5, #50] ; 0x32 + strh r1, [r0, #46] ; 0x2e + bl FUN_060001F0 + b _060052D8 +_060052C4: + ldr r0, [sp, #52] ; 0x34 + mov r1, r6, lsl #16 + mov r1, r1, lsr #16 + add r2, sp, #62 ; 0x3e + bl FUN_06004C5C +_060052D8: + cmp r7, #0 + beq _060052F4 + mov r0, r4, lsl #16 + mov r0, r0, lsr #16 + bl FUN_06006F48 + b _060052F4 +_060052F0: + bl FUN_060001AC +_060052F4: + add r6, r6, #1 +_060052F8: + cmp r6, #16 + blt _0600511C +_06005300: + ldr r0, [sp] + cmp r0, #0 + strneh r8, [r0] + mov r0, #1 +_06005310: + add sp, sp, #580 ; 0x244 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_0600531C: .word _0601A960 +_06005320: .word 0x0000018A +_06005324: .word 0x00000302 + + arm_func_start FUN_06005328 +FUN_06005328: ; 0x06005328 + stmdb sp!, {r4, lr} + sub sp, sp, #8 + ldr r1, [r0, #4] + mov r1, r1, lsl #16 + mov r4, r1, lsr #16 + mov r1, #0 + add r2, sp, #0 + bl FUN_06004D28 + cmp r0, #1 + bne _06005374 + bl FUN_060001E8 + mov r1, #13 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + strh r4, [r0, #8] + ldrh r1, [sp] + strh r1, [r0, #10] + bl FUN_060001F0 +_06005374: + add sp, sp, #8 + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_06005380 +FUN_06005380: ; 0x06005380 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + sub sp, sp, #512 ; 0x200 + ldr r1, _06005630 ; =_06019960 + ldr r2, _06005634 ; =_0601A960 + ldr r4, [r2, #1360] ; 0x550 + mov sl, #0 + ldr r9, [r0, #4] + ldr r8, [r0, #8] + ldr r7, [r0, #12] + ldr r6, [r0, #16] + add r5, r0, #20 + ldrh r0, [r4, #156] ; 0x9c + cmp r0, #0 + bne _06005408 + ldrh r0, [r4, #60] ; 0x3c + add r0, r0, #31 + bic r0, r0, #31 + cmp r6, r0 + movcc sl, #6 + add r0, r4, #256 ; 0x100 + ldrh r0, [r0, #136] ; 0x88 + cmp r0, #0 + ldrneh r0, [r4, #62] ; 0x3e + addne r0, r0, #81 ; 0x51 + bicne r0, r0, #31 + bne _06005400 + ldrh r0, [r4, #62] ; 0x3e + add r2, r0, #12 + ldrh r0, [r4, #248] ; 0xf8 + mul r0, r2, r0 + add r0, r0, #41 ; 0x29 + bic r0, r0, #31 +_06005400: + cmp r8, r0 + movcc sl, #6 +_06005408: + ldrh r0, [r4, #230] ; 0xe6 + cmp r0, #2 + bne _0600543C + add r0, r4, #256 ; 0x100 + ldrh r0, [r0, #246] ; 0xf6 + mov r2, #1 + add r1, r1, #4096 ; 0x1000 + ldr r1, [r1, #1356] ; 0x54c + ldrh r1, [r1, #70] ; 0x46 + mov r1, r2, lsl r1 + mov r1, r1, asr #1 + ands r0, r0, r1 + moveq sl, #6 +_0600543C: + cmp sl, #0 + beq _06005464 + bl FUN_060001E8 + mov r1, #14 + strh r1, [r0] + strh sl, [r0, #2] + mov r1, #10 + strh r1, [r0, #4] + bl FUN_060001F0 + b _06005624 +_06005464: + mov r1, #0 + ldr r0, [r4, #12] + cmp r0, #0 + strne r1, [r4, #12] + movne r1, #1 + cmp r1, #0 + beq _06005488 + ldr r0, _06005638 ; =0x0000FFFF + bl FUN_06006F48 +_06005488: + bl FUN_06007F20 + mov r0, r5 + mov r1, #0 + bl FUN_060086D0 + bl FUN_060001A4 + mov r5, r0 + ldrh r2, [r4] + ldr r1, _0600563C ; =0x0000FFF9 + add r1, r2, r1 + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + cmp r1, #1 + bhi _06005600 + mov r2, #0 + strh r2, [r4, #132] ; 0x84 + strh r2, [r4, #94] ; 0x5e + mov r1, #1 + strh r1, [r4, #96] ; 0x60 + strh r2, [r4, #136] ; 0x88 + strh r2, [r4, #158] ; 0x9e + mov r0, #60 ; 0x3c + strh r0, [r4, #160] ; 0xa0 + str r2, [r4, #1844] ; 0x734 + strh r2, [r4, #138] ; 0x8a + strh r2, [r4, #140] ; 0x8c + strh r2, [r4, #142] ; 0x8e + strh r2, [r4, #144] ; 0x90 + strh r2, [r4, #102] ; 0x66 + str r9, [r4, #116] ; 0x74 + strh r8, [r4, #114] ; 0x72 + add r0, r9, r8 + str r0, [r4, #120] ; 0x78 + strh r2, [r4, #112] ; 0x70 + str r7, [r4, #124] ; 0x7c + strh r6, [r4, #128] ; 0x80 + strh r2, [r4, #98] ; 0x62 + strh r2, [r4, #100] ; 0x64 + strh r2, [r4, #104] ; 0x68 + strh r2, [r4, #106] ; 0x6a + ldr r0, _06005638 ; =0x0000FFFF + strh r0, [r4, #190] ; 0xbe + strh r1, [r4, #192] ; 0xc0 + bl FUN_06000E98 + mov r2, #0 + orr r1, r1, #0 + orr r3, r0, #1 +_06005540: + add r0, r4, r2, lsl #3 + str r3, [r0, #1848] ; 0x738 + str r1, [r0, #1852] ; 0x73c + add r2, r2, #1 + cmp r2, #16 + blt _06005540 + bl FUN_06000210 + mov r0, #0 + strh r0, [r4, #206] ; 0xce + bl FUN_060068E0 + ldrh r0, [r4] + cmp r0, #8 + moveq r0, #10 + streqh r0, [r4] + beq _06005588 + cmp r0, #7 + moveq r0, #9 + streqh r0, [r4] +_06005588: + bl FUN_060001E8 + mov r1, #14 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + mov r1, #10 + strh r1, [r0, #4] + bl FUN_060001F0 + mov r0, #1 + str r0, [r4, #12] + mov r0, r5 + bl FUN_060001AC + add r0, sp, #0 + mov r1, #1 + bl FUN_060024E4 + mov r4, r0 + ldrh r0, [r4, #4] + cmp r0, #0 + beq _06005624 + bl FUN_060001E8 + mov r1, #14 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + ldr r1, _06005640 ; =0x00000216 + strh r1, [r0, #4] + ldrh r1, [r4, #4] + strh r1, [r0, #6] + bl FUN_060001F0 + b _06005624 +_06005600: + bl FUN_060001AC + bl FUN_060001E8 + mov r1, #14 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + mov r1, #10 + strh r1, [r0, #4] + bl FUN_060001F0 +_06005624: + add sp, sp, #512 ; 0x200 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + bx lr +_06005630: .word _06019960 +_06005634: .word _0601A960 +_06005638: .word 0x0000FFFF +_0600563C: .word 0x0000FFF9 +_06005640: .word 0x00000216 + + arm_func_start FUN_06005644 +FUN_06005644: ; 0x06005644 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #20 + ldr r1, _06005784 ; =_0601A960 + ldr r4, [r1, #1360] ; 0x550 + add r2, r4, #256 ; 0x100 + ldrh r5, [r2, #130] ; 0x82 + ldr sl, [r0, #4] + ldr r1, [r0, #8] + mov r1, r1, lsl #16 + mov r9, r1, lsr #16 + ldr r8, [r0, #12] + ldr r1, [r0, #16] + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + str r1, [sp, #16] + ldr r1, [r0, #20] + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + ldr r7, [r0, #24] + ldr fp, [r0, #28] + ldrh r0, [r2, #136] ; 0x88 + cmp r0, #0 + movne r8, #1 + ldr r0, [r4, #12] + cmp r0, #0 + moveq r6, #3 + beq _060056E0 + ands r0, r8, r5 + moveq r6, #0 + beq _060056E0 + str sl, [sp] + str r9, [sp, #4] + str r7, [sp, #8] + str fp, [sp, #12] + mov r0, r5 + ldr r2, [sp, #16] + mov r3, r8 + bl FUN_060074AC + mov r6, r0 +_060056E0: + cmp r6, #2 + beq _06005778 + bl FUN_060001E8 + mov r1, #129 ; 0x81 + strh r1, [r0] + strh r6, [r0, #2] + mov r1, #20 + strh r1, [r0, #8] + ldr r1, [sp, #16] + strh r1, [r0, #10] + strh r8, [r0, #12] + cmp r6, #10 + andeq r1, r8, r5 + streqh r1, [r0, #14] + movne r1, #0 + strneh r1, [r0, #14] + mov r1, #0 + strh r1, [r0, #16] + strh r9, [r0, #24] + str sl, [r0, #20] + str r7, [r0, #28] + str fp, [r0, #32] + ldr r1, _06005788 ; =0x0000FFFF + strh r1, [r0, #26] + ldrh r2, [r4, #48] ; 0x30 + ldrh r3, [r4, #50] ; 0x32 + add r1, r4, #256 ; 0x100 + ldrh r1, [r1, #136] ; 0x88 + cmp r1, #0 + moveq r1, r2 + movne r1, r3 + strh r1, [r0, #36] ; 0x24 + add r1, r4, #256 ; 0x100 + ldrh r1, [r1, #136] ; 0x88 + cmp r1, #0 + movne r3, r2 + strh r3, [r0, #38] ; 0x26 + bl FUN_060001F0 +_06005778: + add sp, sp, #20 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06005784: .word _0601A960 +_06005788: .word 0x0000FFFF + + arm_func_start FUN_0600578C +FUN_0600578C: ; 0x0600578C + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #16 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_060057C8 +FUN_060057C8: ; 0x060057C8 + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #512 ; 0x200 + ldr r0, _060058DC ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + mov r6, #0 + ldrh r0, [r4] + cmp r0, #9 + beq _0600580C + cmp r0, #10 + beq _0600580C + bl FUN_060001E8 + mov r1, #16 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + bl FUN_060001F0 + b _060058D0 +_0600580C: + bl FUN_060001A4 + mov r5, r0 + ldr r0, [r4, #12] + cmp r0, #1 + moveq r6, #1 + mov r0, #0 + str r0, [r4, #12] + bl FUN_06006978 + bl FUN_06000288 + ldrh r0, [r4] + cmp r0, #10 + moveq r0, #8 + streqh r0, [r4] + beq _06005850 + cmp r0, #9 + moveq r0, #7 + streqh r0, [r4] +_06005850: + mov r0, r5 + bl FUN_060001AC + add r0, sp, #0 + mov r1, #0 + bl FUN_060024E4 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _0600587C + ldr r0, _060058E0 ; =0x00000216 + bl FUN_0600578C + b _060058D0 +_0600587C: + add r0, sp, #0 + mov r1, #7 + bl FUN_0600286C + ldrh r1, [r0, #4] + cmp r1, #0 + beq _060058A0 + mov r0, #260 ; 0x104 + bl FUN_0600578C + b _060058D0 +_060058A0: + mov r0, #0 + strh r0, [r4, #138] ; 0x8a + cmp r6, #0 + beq _060058B8 + ldr r0, _060058E4 ; =0x0000FFFF + bl FUN_06006F48 +_060058B8: + bl FUN_060001E8 + mov r1, #16 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 +_060058D0: + add sp, sp, #512 ; 0x200 + ldmia sp!, {r4, r5, r6, lr} + bx lr +_060058DC: .word _0601A960 +_060058E0: .word 0x00000216 +_060058E4: .word 0x0000FFFF + + arm_func_start FUN_060058E8 +FUN_060058E8: ; 0x060058E8 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + ldr r1, _06005970 ; =_0601A960 + ldr r5, [r1, #1360] ; 0x550 + ldr r8, [r0, #4] + ldr r0, [r0, #8] + mov r6, r0, lsl #16 + mov r7, r6, lsr #16 + bl FUN_060001A4 + mov r4, r0 + str r8, [r5, #176] ; 0xb0 + strh r7, [r5, #184] ; 0xb8 + add r0, r8, r6, lsr #16 + str r0, [r5, #180] ; 0xb4 + mov r0, #0 + strh r0, [r5, #174] ; 0xae + str r0, [r5, #168] ; 0xa8 + strh r0, [r5, #172] ; 0xac + str r0, [r5, #24] + mov r0, #11 + strh r0, [r5] + bl FUN_060001E8 + mov r1, #17 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + mov r1, #14 + strh r1, [r0, #4] + bl FUN_060001F0 + mov r0, #1 + str r0, [r5, #16] + mov r0, r4 + bl FUN_060001AC + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_06005970: .word _0601A960 + + arm_func_start FUN_06005974 +FUN_06005974: ; 0x06005974 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #564 ; 0x234 + mov r5, r0 + ldr r0, _06005A68 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + add r0, r5, #4 + add r1, r4, #162 ; 0xa2 + mov r2, #6 + bl FUN_06000554 + ldr r0, [r5, #12] + str r0, [r4, #168] ; 0xa8 + ldr r0, [r5, #16] + strh r0, [r4, #172] ; 0xac + mov r0, #1 + str r0, [r4, #24] + mov r0, #0 + add r1, sp, #0 + mov r2, #48 ; 0x30 + bl FUN_0600055C + mov r0, #0 + strh r0, [sp] + ldr r0, [r5, #16] + strh r0, [sp, #6] + add r0, r4, #256 ; 0x100 + ldrh r0, [r0, #236] ; 0xec + cmp r0, #2 + moveq r0, #20 + movne r0, #10 + strb r0, [sp, #14] + add r0, r5, #4 + add r1, sp, #24 + mov r2, #6 + bl FUN_06000554 + add r0, r4, #224 ; 0xe0 + add r1, sp, #30 + mov r2, #6 + bl FUN_06000554 + ldr r0, [r5, #12] + str r0, [sp, #44] ; 0x2c + add r0, sp, #48 ; 0x30 + add r1, sp, #0 + bl FUN_060029D0 + mov r4, r0 + bl FUN_060001E8 + mov r1, #18 + strh r1, [r0] + ldrh r1, [r4, #4] + cmp r1, #0 + moveq r1, #0 + movne r1, #1 + strh r1, [r0, #2] + ldrh r1, [r4, #4] + cmp r1, #0 + movne r1, #256 ; 0x100 + strneh r1, [r0, #4] + ldrneh r1, [r4, #4] + strneh r1, [r0, #6] + bl FUN_060001F0 + add sp, sp, #564 ; 0x234 + ldmia sp!, {r4, r5, lr} + bx lr +_06005A68: .word _0601A960 + + arm_func_start FUN_06005A6C +FUN_06005A6C: ; 0x06005A6C + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #19 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_06005AA8 +FUN_06005AA8: ; 0x06005AA8 + stmdb sp!, {r4, lr} + sub sp, sp, #512 ; 0x200 + ldr r0, _06005B44 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + bl FUN_060001A4 + ldrh r1, [r4] + cmp r1, #11 + beq _06005AE8 + bl FUN_060001AC + bl FUN_060001E8 + mov r1, #19 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + bl FUN_060001F0 + b _06005B38 +_06005AE8: + mov r1, #0 + str r1, [r4, #16] + mov r1, #8 + strh r1, [r4] + bl FUN_060001AC + add r0, sp, #0 + mov r1, #7 + bl FUN_0600286C + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06005B20 + mov r0, #260 ; 0x104 + bl FUN_06005A6C + b _06005B38 +_06005B20: + bl FUN_060001E8 + mov r1, #19 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 +_06005B38: + add sp, sp, #512 ; 0x200 + ldmia sp!, {r4, lr} + bx lr +_06005B44: .word _0601A960 + + arm_func_start FUN_06005B48 +FUN_06005B48: ; 0x06005B48 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #20 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_06005B84 +FUN_06005B84: ; 0x06005B84 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #516 ; 0x204 + mov r5, r0 + ldr r0, _06005C60 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + ldr r1, [r5, #4] + add r0, r4, #256 ; 0x100 + strh r1, [r0, #150] ; 0x96 + ldrh r0, [r0, #150] ; 0x96 + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _06005BDC + b _06005BC4 + b _06005BD0 + b _06005BD0 + b _06005BD0 +_06005BC4: + mov r0, #0 + str r0, [r4, #408] ; 0x198 + b _06005BE4 +_06005BD0: + mov r0, #1 + str r0, [r4, #408] ; 0x198 + b _06005BE4 +_06005BDC: + mov r0, #0 + str r0, [r4, #408] ; 0x198 +_06005BE4: + ldr r0, [r4, #408] ; 0x198 + cmp r0, #1 + bne _06005C04 + ldr r0, [r5, #8] + add r1, r4, #412 ; 0x19c + mov r2, #80 ; 0x50 + bl FUN_06000554 + b _06005C14 +_06005C04: + add r0, r4, #412 ; 0x19c + mov r1, #0 + mov r2, #80 ; 0x50 + bl FUN_06000D08 +_06005C14: + ldr r0, [r5, #12] + strh r0, [r4, #196] ; 0xc4 + add r0, sp, #0 + ldrh r1, [r4, #196] ; 0xc4 + bl FUN_060027B0 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06005C3C + ldr r0, _06005C64 ; =0x00000207 + bl FUN_06005B48 +_06005C3C: + bl FUN_060001E8 + mov r1, #39 ; 0x27 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 + add sp, sp, #516 ; 0x204 + ldmia sp!, {r4, r5, lr} + bx lr +_06005C60: .word _0601A960 +_06005C64: .word 0x00000207 + + arm_func_start FUN_06005C68 +FUN_06005C68: ; 0x06005C68 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r1, _06005D18 ; =_0601A960 + ldr r3, [r1, #1360] ; 0x550 + ldr r2, [r0, #4] + add r1, r3, #256 ; 0x100 + strh r2, [r1, #150] ; 0x96 + ldrh r1, [r1, #150] ; 0x96 + cmp r1, #3 + addls pc, pc, r1, lsl #2 + b _06005CBC + b _06005CA4 + b _06005CB0 + b _06005CB0 + b _06005CB0 +_06005CA4: + mov r1, #0 + str r1, [r3, #408] ; 0x198 + b _06005CC4 +_06005CB0: + mov r1, #1 + str r1, [r3, #408] ; 0x198 + b _06005CC4 +_06005CBC: + mov r1, #0 + str r1, [r3, #408] ; 0x198 +_06005CC4: + ldr r1, [r3, #408] ; 0x198 + cmp r1, #1 + bne _06005CE4 + ldr r0, [r0, #8] + add r1, r3, #412 ; 0x19c + mov r2, #80 ; 0x50 + bl FUN_06000554 + b _06005CF4 +_06005CE4: + add r0, r3, #412 ; 0x19c + mov r1, #0 + mov r2, #80 ; 0x50 + bl FUN_06000D08 +_06005CF4: + bl FUN_060001E8 + mov r1, #20 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06005D18: .word _0601A960 + + arm_func_start FUN_06005D1C +FUN_06005D1C: ; 0x06005D1C + stmdb sp!, {r4, lr} + sub sp, sp, #640 ; 0x280 + ldr r1, _06005E08 ; =_0601A960 + ldr r4, [r1, #1360] ; 0x550 + ldr r1, [r0, #4] + str r1, [r4, #232] ; 0xe8 + ldr r1, [r0, #8] + strh r1, [r4, #236] ; 0xec + ldr r1, [r0, #12] + str r1, [r4, #240] ; 0xf0 + ldr r1, [r0, #16] + strh r1, [r4, #244] ; 0xf4 + ldr r0, [r0, #20] + and r1, r0, #255 ; 0xff + ands r0, r1, #1 + movne r0, #1 + moveq r0, #0 + strh r0, [r4, #246] ; 0xf6 + ands r0, r1, #2 + movne r0, #1 + moveq r0, #0 + strh r0, [r4, #250] ; 0xfa + ands r0, r1, #4 + movne r0, #1 + moveq r0, #0 + strh r0, [r4, #252] ; 0xfc + ands r0, r1, #8 + movne r0, #1 + moveq r0, #0 + strh r0, [r4, #254] ; 0xfe + add r0, sp, #512 ; 0x200 + add r1, r4, #232 ; 0xe8 + bl FUN_06000564 + add r0, sp, #0 + ldrh r1, [r4, #236] ; 0xec + add r1, r1, #16 + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + add r2, sp, #512 ; 0x200 + bl FUN_060023F4 + mov r4, r0 + bl FUN_060001E8 + mov r1, #24 + strh r1, [r0] + ldrh r1, [r4, #4] + cmp r1, #0 + moveq r1, #0 + movne r1, #1 + strh r1, [r0, #2] + ldrh r1, [r4, #4] + cmp r1, #0 + ldrne r1, _06005E0C ; =0x00000245 + strneh r1, [r0, #4] + ldrneh r1, [r4, #4] + strneh r1, [r0, #6] + bl FUN_060001F0 + add sp, sp, #640 ; 0x280 + ldmia sp!, {r4, lr} + bx lr +_06005E08: .word _0601A960 +_06005E0C: .word 0x00000245 + + arm_func_start FUN_06005E10 +FUN_06005E10: ; 0x06005E10 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #25 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_06005E4C +FUN_06005E4C: ; 0x06005E4C + stmfd sp!, {lr} + sub sp, sp, #516 ; 0x204 + mov r1, r0 + add r0, sp, #0 + ldr r1, [r1, #4] + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + bl FUN_06002544 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06005E84 + ldr r0, _06005EA8 ; =0x00000215 + bl FUN_06005E10 + b _06005E9C +_06005E84: + bl FUN_060001E8 + mov r1, #25 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 +_06005E9C: + add sp, sp, #516 ; 0x204 + ldmfd sp!, {lr} + bx lr +_06005EA8: .word 0x00000215 + + arm_func_start FUN_06005EAC +FUN_06005EAC: ; 0x06005EAC + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_060001E8 + mov r1, #26 + strh r1, [r0] + mov r1, #4 + strh r1, [r0, #2] + bl FUN_060001F0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_06005ED8 +FUN_06005ED8: ; 0x06005ED8 + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_060001E8 + mov r1, #27 + strh r1, [r0] + mov r1, #4 + strh r1, [r0, #2] + bl FUN_060001F0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_06005F04 +FUN_06005F04: ; 0x06005F04 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #29 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_06005F40 +FUN_06005F40: ; 0x06005F40 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #516 ; 0x204 + mov r3, r0 + ldr r0, _06006050 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + ldr r0, [r3, #16] + mov r0, r0, lsl #16 + mov r5, r0, lsr #16 + add r0, sp, #0 + ldr r1, [r3, #4] + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + ldr r2, [r3, #8] + mov r2, r2, lsl #16 + mov r2, r2, lsr #16 + ldr r3, [r3, #12] + mov r3, r3, lsl #16 + mov r3, r3, lsr #16 + bl FUN_06002604 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06005FA4 + ldr r0, _06006054 ; =0x00000211 + bl FUN_06005F04 + b _06006044 +_06005FA4: + ldr r0, _06006058 ; =0x0000FFFF + cmp r5, r0 + beq _06005FF8 + cmp r5, #0 + moveq r1, #1 + moveq r0, #0 + beq _06005FEC + mov r0, #100 ; 0x64 + mul r3, r5, r0 + mov r2, r3, asr #31 + mov r1, #0 + ldr r0, _0600605C ; =0x000082EA + umull ip, r5, r3, r0 + mla r5, r3, r1, r5 + mla r5, r2, r0, r5 + mov r0, r5, lsr #6 + mov r1, ip, lsr #6 + orr r1, r1, r5, lsl #26 +_06005FEC: + str r1, [r4, #1976] ; 0x7b8 + str r0, [r4, #1980] ; 0x7bc + b _06006004 +_06005FF8: + mov r0, #0 + str r0, [r4, #1976] ; 0x7b8 + str r0, [r4, #1980] ; 0x7bc +_06006004: + bl FUN_06000E98 + mov r2, #0 + orr r1, r1, #0 + orr r3, r0, #1 +_06006014: + add r0, r4, r2, lsl #3 + str r3, [r0, #1848] ; 0x738 + str r1, [r0, #1852] ; 0x73c + add r2, r2, #1 + cmp r2, #16 + blt _06006014 + bl FUN_060001E8 + mov r1, #29 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 +_06006044: + add sp, sp, #516 ; 0x204 + ldmia sp!, {r4, r5, lr} + bx lr +_06006050: .word _0601A960 +_06006054: .word 0x00000211 +_06006058: .word 0x0000FFFF +_0600605C: .word 0x000082EA + + arm_func_start FUN_06006060 +FUN_06006060: ; 0x06006060 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #30 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_0600609C +FUN_0600609C: ; 0x0600609C + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #532 ; 0x214 + mov r8, r0 + ldr r0, _06006244 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + add r7, sp, #20 + ldrh r0, [r4] + cmp r0, #2 + beq _060060DC + bl FUN_060001E8 + mov r1, #30 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + bl FUN_060001F0 + b _06006238 +_060060DC: + mov r0, r7 + bl FUN_060022F8 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _060060FC + mov r0, #776 ; 0x308 + bl FUN_06006060 + b _06006238 +_060060FC: + ldrh r1, [r0, #6] + mov r0, #2 + strh r0, [r4, #230] ; 0xe6 + cmp r1, #16 + bne _06006180 + mov r0, #10 + mov r1, r7 + bl FUN_06000408 + cmp r0, #0 + beq _06006238 + mov r0, r7 + bl FUN_06002368 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06006144 + ldr r0, _06006248 ; =0x00000303 + bl FUN_06006060 + b _06006238 +_06006144: + mov r0, #3 + strh r0, [r4] + mov r0, r7 + mov r1, #1 + mov r2, #0 + mov r3, r1 + bl FUN_06002EB0 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06006178 + mov r0, #1 + bl FUN_06006060 + b _06006238 +_06006178: + mov r0, #1 + strh r0, [r4, #198] ; 0xc6 +_06006180: + ldrh r6, [r8, #2] + ldrh r5, [r8, #4] + ldrh r9, [r8, #6] + ldrh r8, [r8, #8] + add r0, sp, #4 + mov r1, #0 + mov r2, #16 + bl FUN_06000D08 + strb r9, [sp, #4] + add r0, sp, #4 + str r0, [sp] + mov r0, r7 + mov r1, r6 + mov r2, r5 + mov r3, r8 + bl FUN_06002A88 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _060061D8 + mov r0, #10 + bl FUN_06006060 + b _06006238 +_060061D8: + ldrh r1, [r0, #8] + and r0, r1, #255 ; 0xff + mov r0, r0, lsl #16 + mov r5, r0, lsr #16 + mov r0, r1, lsl #8 + mov r6, r0, lsr #16 + mov r0, r7 + bl FUN_06002380 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06006210 + ldr r0, _0600624C ; =0x00000302 + bl FUN_06006060 + b _06006238 +_06006210: + mov r0, #2 + strh r0, [r4] + bl FUN_060001E8 + mov r1, #30 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + strh r5, [r0, #8] + strh r6, [r0, #10] + bl FUN_060001F0 +_06006238: + add sp, sp, #532 ; 0x214 + ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} + bx lr +_06006244: .word _0601A960 +_06006248: .word 0x00000303 +_0600624C: .word 0x00000302 + + arm_func_start FUN_06006250 +FUN_06006250: ; 0x06006250 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #31 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_0600628C +FUN_0600628C: ; 0x0600628C + stmfd sp!, {lr} + sub sp, sp, #516 ; 0x204 + add r0, sp, #0 + bl FUN_0600233C + ldrh r1, [r0, #4] + cmp r1, #0 + beq _060062B4 + ldr r0, _060062D8 ; =0x00000305 + bl FUN_06006250 + b _060062CC +_060062B4: + bl FUN_060001E8 + mov r1, #31 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 +_060062CC: + add sp, sp, #516 ; 0x204 + ldmfd sp!, {lr} + bx lr +_060062D8: .word 0x00000305 + + arm_func_start FUN_060062DC +FUN_060062DC: ; 0x060062DC + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #32 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_06006318 +FUN_06006318: ; 0x06006318 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #516 ; 0x204 + add r0, sp, #0 + bl FUN_0600230C + mov r5, r0 + ldrh r1, [r5, #4] + cmp r1, #0 + beq _06006344 + ldr r0, _06006380 ; =0x00000307 + bl FUN_060062DC + b _06006374 +_06006344: + bl FUN_060001E8 + mov r4, r0 + mov r0, #32 + strh r0, [r4] + mov r0, #0 + strh r0, [r4, #2] + add r0, r5, #8 + add r1, r4, #8 + mov r2, #180 ; 0xb4 + bl FUN_06000EA0 + mov r0, r4 + bl FUN_060001F0 +_06006374: + add sp, sp, #516 ; 0x204 + ldmia sp!, {r4, r5, lr} + bx lr +_06006380: .word 0x00000307 + + arm_func_start FUN_06006384 +FUN_06006384: ; 0x06006384 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r5, _06006434 ; =_06019960 + ldr r0, _06006438 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + bl FUN_060001A4 + ldrh r1, [r4, #206] ; 0xce + cmp r1, #1 + bne _060063B0 + bl FUN_060001AC + b _06006428 +_060063B0: + mov r1, #1 + strh r1, [r4, #206] ; 0xce + bl FUN_060001AC + bl FUN_06000134 + movs r1, r0 + moveq r0, #0 + beq _060063E0 + mov r0, #28 + str r0, [r1] + add r0, r5, #136 ; 0x88 + mov r2, #0 + bl FUN_060006F8 +_060063E0: + cmp r0, #0 + bne _06006428 + mov r0, #0 + strh r0, [r4, #206] ; 0xce + add r0, r5, #4096 ; 0x1000 + ldr r0, [r0, #1356] ; 0x54c + cmp r0, #0 + beq _06006428 + bl FUN_060001E8 + mov r1, #128 ; 0x80 + strh r1, [r0] + mov r1, #8 + strh r1, [r0, #2] + mov r1, #22 + strh r1, [r0, #4] + mov r1, #28 + strh r1, [r0, #6] + bl FUN_060001F0 +_06006428: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06006434: .word _06019960 +_06006438: .word _0601A960 + + arm_func_start FUN_0600643C +FUN_0600643C: ; 0x0600643C + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _06006478 ; =_0601A960 + ldr r0, [r0, #1360] ; 0x550 + ldr r0, [r0, #12] + cmp r0, #1 + bne _0600646C + mov r0, #209 ; 0xd1 + ldr r1, _0600647C ; =FUN_06006480 + mov r2, #3 + bl FUN_060068A0 + bl FUN_06006384 +_0600646C: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06006478: .word _0601A960 +_0600647C: .word FUN_06006480 + + arm_func_start FUN_06006480 +FUN_06006480: ; 0x06006480 + stmdb sp!, {r4, lr} + + arm_func_start FUN_06006484 +FUN_06006484: ; 0x06006484 + ldr r0, _060064E0 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + ldrh r0, [r4, #220] ; 0xdc + cmp r0, #60 ; 0x3c + bcc _060064BC + ldr r1, _060064E4 ; =0x04000006 + ldrh r0, [r1] + cmp r0, #209 ; 0xd1 + blt _060064C4 + cmp r0, #212 ; 0xd4 + strlth r0, [r1] + movlt r0, #0 + strlth r0, [r4, #220] ; 0xdc + b _060064C4 +_060064BC: + add r0, r0, #1 + strh r0, [r4, #220] ; 0xdc +_060064C4: + bl FUN_06006848 + ldrsh r0, [r4, #64] ; 0x40 + ldr r1, _060064E8 ; =FUN_0600643C + mov r2, #5 + bl FUN_060068A0 + ldmia sp!, {r4, lr} + bx lr +_060064E0: .word _0601A960 +_060064E4: .word 0x04000006 +_060064E8: .word FUN_0600643C + + arm_func_start FUN_060064EC +FUN_060064EC: ; 0x060064EC + stmdb sp!, {r4, lr} + ldr r0, _060065E4 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + ldr r0, [r4, #12] + cmp r0, #1 + bne _060065DC + mov r0, #200 ; 0xc8 + ldr r1, _060065E8 ; =FUN_06006634 + mov r2, #1 + bl FUN_060068A0 + ldr r2, [r4, #1976] ; 0x7b8 + ldr r1, [r4, #1980] ; 0x7bc + mov r0, #0 + cmp r1, r0 + cmpeq r2, r0 + beq _060065D8 + bl FUN_06000E98 + mov r2, #0 + orr r3, r1, #0 + orr ip, r0, #1 + ldr r1, [r4, #1848] ; 0x738 + ldr r0, [r4, #1852] ; 0x73c + cmp r0, r2 + cmpeq r1, r2 + beq _060065D8 + subs ip, ip, r1 + sbc r3, r3, r0 + ldr r1, [r4, #1976] ; 0x7b8 + ldr r0, [r4, #1980] ; 0x7bc + cmp r3, r0 + cmpeq ip, r1 + bls _060065D8 + str r2, [r4, #1848] ; 0x738 + str r2, [r4, #1852] ; 0x73c + bl FUN_06000134 + movs r1, r0 + moveq r0, #0 + beq _060065A4 + mov r0, #37 ; 0x25 + str r0, [r1] + mov r2, #0 + str r2, [r1, #4] + ldr r0, _060065EC ; =0x00008001 + str r0, [r1, #8] + ldr r0, _060065F0 ; =_060199E8 + bl FUN_060006F8 +_060065A4: + cmp r0, #0 + bne _060065DC + bl FUN_060001E8 + mov r1, #128 ; 0x80 + strh r1, [r0] + mov r1, #8 + strh r1, [r0, #2] + mov r1, #22 + strh r1, [r0, #4] + mov r1, #37 ; 0x25 + strh r1, [r0, #6] + bl FUN_060001F0 + b _060065DC +_060065D8: + bl FUN_06006384 +_060065DC: + ldmia sp!, {r4, lr} + bx lr +_060065E4: .word _0601A960 +_060065E8: .word FUN_06006634 +_060065EC: .word 0x00008001 +_060065F0: .word _060199E8 + + arm_func_start FUN_060065F4 +FUN_060065F4: ; 0x060065F4 + stmdb sp!, {r4, lr} + ldr r0, _0600662C ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + bl FUN_060066B4 + ldr r0, [r4, #216] ; 0xd8 + cmp r0, #127 ; 0x7f + movcs r0, #0 + strcs r0, [r4, #28] + ldrsh r0, [r4, #66] ; 0x42 + ldr r1, _06006630 ; =FUN_060064EC + mov r2, #4 + bl FUN_060068A0 + ldmia sp!, {r4, lr} + bx lr +_0600662C: .word _0601A960 +_06006630: .word FUN_060064EC + + arm_func_start FUN_06006634 +FUN_06006634: ; 0x06006634 + stmdb sp!, {r4, lr} + + arm_func_start FUN_06006638 +FUN_06006638: ; 0x06006638 + ldr r0, _060066A4 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + ldr r0, _060066A8 ; =0x0380FFF0 + ldrh r0, [r0] + str r0, [r4, #208] ; 0xd0 + ldr r1, [r4, #208] ; 0xd0 + ldr r0, [r4, #212] ; 0xd4 + cmp r0, r1 + beq _06006664 + str r1, [r4, #212] ; 0xd4 + bl FUN_06006748 +_06006664: + ldr r0, [r4, #216] ; 0xd8 + cmp r0, #127 ; 0x7f + bls _06006684 + mov r0, #208 ; 0xd0 + ldr r1, _060066AC ; =FUN_060065F4 + mov r2, #2 + bl FUN_060068A0 + b _0600669C +_06006684: + mov r0, #1 + str r0, [r4, #28] + ldrsh r0, [r4, #66] ; 0x42 + ldr r1, _060066B0 ; =FUN_060064EC + mov r2, #4 + bl FUN_060068A0 +_0600669C: + ldmia sp!, {r4, lr} + bx lr +_060066A4: .word _0601A960 +_060066A8: .word 0x0380FFF0 +_060066AC: .word FUN_060065F4 +_060066B0: .word FUN_060064EC + + arm_func_start FUN_060066B4 +FUN_060066B4: ; 0x060066B4 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _06006740 ; =_0601A960 + ldr ip, [r0, #1360] ; 0x550 + ldr r0, _06006744 ; =0x04000006 + ldrh r3, [r0] + cmp r3, #208 ; 0xd0 + blt _06006734 + cmp r3, #212 ; 0xd4 + bge _06006734 + ldr r2, [ip, #216] ; 0xd8 + cmp r2, #127 ; 0x7f + bcc _06006734 + mov lr, #1 + mov r0, #63 ; 0x3f + b _06006708 +_060066F4: + mul r1, lr, r0 + add r1, r1, #127 ; 0x7f + cmp r2, r1 + bcc _06006710 + add lr, lr, #1 +_06006708: + cmp lr, #7 + blt _060066F4 +_06006710: + rsb r0, lr, #1 + add r1, r3, r0 + ldr r0, _06006744 ; =0x04000006 + strh r1, [r0] + ldr r1, [ip, #216] ; 0xd8 + mov r0, #63 ; 0x3f + mul r0, lr, r0 + sub r0, r1, r0 + str r0, [ip, #216] ; 0xd8 +_06006734: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06006740: .word _0601A960 +_06006744: .word 0x04000006 + + arm_func_start FUN_06006748 +FUN_06006748: ; 0x06006748 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _06006828 ; =_0601A960 + ldr r0, [r0, #1360] ; 0x550 + ldr r1, [r0, #208] ; 0xd0 + mov r1, r1, lsl #6 + str r1, [r0, #208] ; 0xd0 + ldr r3, _0600682C ; =0x048080F8 + ldrh r2, [r3] + ldr r1, _06006830 ; =0x048080FA + ldrh ip, [r1] + ldrh r3, [r3] + cmp r2, r3 + ldrhih ip, [r1] + orr ip, r3, ip, lsl #16 + ldr r1, _06006834 ; =0x04000006 + ldrh r3, [r1] + ldr r2, _06006838 ; =0x003FFFC0 + and ip, ip, r2 + ldr r1, _0600683C ; =0x00000107 + sub r3, r1, r3 + mov r1, #127 ; 0x7f + mul r1, r3, r1 + add r1, r1, ip, lsl #1 + and ip, r2, r1, lsr #1 + ldr r1, [r0, #208] ; 0xd0 + cmp r1, ip + movhi r1, #0 + strhi r1, [r0, #216] ; 0xd8 + bhi _0600681C + mov lr, #1 + add r3, r0, #208 ; 0xd0 + ldr r1, _06006840 ; =0x0000414B + b _0600680C +_060067D0: + ldr r2, [r3] + add r2, r2, r1 + str r2, [r3] + ldr r2, [r0, #208] ; 0xd0 + cmp r2, ip + bls _06006808 + sub r1, r2, ip + str r1, [r0, #216] ; 0xd8 + ldr r2, [r0, #216] ; 0xd8 + ldr r1, _06006844 ; =0x0000400E + cmp r2, r1 + movhi r1, #0 + strhi r1, [r0, #216] ; 0xd8 + b _0600681C +_06006808: + add lr, lr, #1 +_0600680C: + cmp lr, #30 + blt _060067D0 + mov r1, #0 + str r1, [r0, #216] ; 0xd8 +_0600681C: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06006828: .word _0601A960 +_0600682C: .word 0x048080F8 +_06006830: .word 0x048080FA +_06006834: .word 0x04000006 +_06006838: .word 0x003FFFC0 +_0600683C: .word 0x00000107 +_06006840: .word 0x0000414B +_06006844: .word 0x0000400E + + arm_func_start FUN_06006848 +FUN_06006848: ; 0x06006848 + ldr r0, _06006890 ; =0x04000006 + ldrh ip, [r0] + ldr r2, _06006894 ; =0x048080F8 + ldrh r1, [r2] + ldr r0, _06006898 ; =0x048080FA + ldrh r3, [r0] + ldrh r2, [r2] + cmp r1, r2 + ldrhih r3, [r0] + orr r0, r2, r3, lsl #16 + mov r1, r0, lsl #1 + mov r0, #127 ; 0x7f + mul r0, ip, r0 + sub r0, r1, r0 + mov r1, r0, lsr #7 + ldr r0, _0600689C ; =0x0380FFF0 + strh r1, [r0] + bx lr +_06006890: .word 0x04000006 +_06006894: .word 0x048080F8 +_06006898: .word 0x048080FA +_0600689C: .word 0x0380FFF0 + + arm_func_start FUN_060068A0 +FUN_060068A0: ; 0x060068A0 + stmfd sp!, {lr} + sub sp, sp, #4 + mov ip, r0 + mov r3, r1 + str r2, [sp] + ldr r0, _060068D0 ; =_0380B904 + mov r1, ip + ldr r2, _060068D4 ; =0x00000107 + bl FUN_060068D8 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_060068D0: .word _0380B904 +_060068D4: .word 0x00000107 + + arm_func_start FUN_060068D8 +FUN_060068D8: ; 0x060068D8 + ldr pc, _060068DC ; =FUN_037FAE20 +_060068DC: .word FUN_037FAE20 + + arm_func_start FUN_060068E0 +FUN_060068E0: ; 0x060068E0 + stmdb sp!, {r4, lr} + ldr r0, _06006960 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + ldr r0, _06006964 ; =_0380B904 + ldrh r1, [r4, #230] ; 0xe6 + cmp r1, #1 + bne _06006920 + ldr r1, [r0] + cmp r1, #0 + beq _0600690C + bl FUN_06006970 +_0600690C: + mov r0, #209 ; 0xd1 + ldr r1, _06006968 ; =FUN_06006480 + mov r2, #3 + bl FUN_060068A0 + b _06006958 +_06006920: + cmp r1, #2 + bne _06006958 + mov r1, #0 + str r1, [r4, #28] + ldr r1, [r0] + cmp r1, #0 + beq _06006940 + bl FUN_06006970 +_06006940: + mov r0, #200 ; 0xc8 + ldr r1, _0600696C ; =FUN_06006634 + mov r2, #1 + bl FUN_060068A0 + mov r0, #0 + str r0, [r4, #216] ; 0xd8 +_06006958: + ldmia sp!, {r4, lr} + bx lr +_06006960: .word _0601A960 +_06006964: .word _0380B904 +_06006968: .word FUN_06006480 +_0600696C: .word FUN_06006634 + + arm_func_start FUN_06006970 +FUN_06006970: ; 0x06006970 + ldr pc, _06006974 ; =FUN_037FACAC +_06006974: .word FUN_037FACAC + + arm_func_start FUN_06006978 +FUN_06006978: ; 0x06006978 + ldr r0, _06006984 ; =_0380B904 + ldr ip, _06006988 ; =FUN_037FACAC + bx ip +_06006984: .word _0380B904 +_06006988: .word FUN_037FACAC + + arm_func_start FUN_0600698C +FUN_0600698C: ; 0x0600698C + ldr r0, _06006998 ; =_0380B904 + ldr ip, _0600699C ; =FUN_037FAEB8 + bx ip +_06006998: .word _0380B904 +_0600699C: .word FUN_037FAEB8 + + arm_func_start FUN_060069A0 +FUN_060069A0: ; 0x060069A0 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r1, _060069D8 ; =_0601A960 + ldr r1, [r1, #1360] ; 0x550 + ldrh r1, [r1] + cmp r1, #9 + bne _060069CC + ldr r0, [r0, #4] + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + bl FUN_06007B44 +_060069CC: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_060069D8: .word _0601A960 + + arm_func_start FUN_060069DC +FUN_060069DC: ; 0x060069DC + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _06006A08 ; =_0601A960 + ldr r0, [r0, #1360] ; 0x550 + ldrh r0, [r0] + cmp r0, #10 + bne _060069FC + bl FUN_06007E50 +_060069FC: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06006A08: .word _0601A960 + + arm_func_start FUN_06006A0C +FUN_06006A0C: ; 0x06006A0C + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r1, _06006A44 ; =_0601A960 + ldr r1, [r1, #1360] ; 0x550 + ldrh r1, [r1] + cmp r1, #9 + bne _06006A38 + ldr r0, [r0, #4] + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + bl FUN_06007C50 +_06006A38: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06006A44: .word _0601A960 + + arm_func_start FUN_06006A48 +FUN_06006A48: ; 0x06006A48 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r0, _06006BE8 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + mov r0, #0 + strh r0, [r4, #206] ; 0xce + mov r0, #1 + strh r0, [r4, #136] ; 0x88 + ldrh r0, [r4, #192] ; 0xc0 + sub r0, r0, #1 + strh r0, [r4, #192] ; 0xc0 + ldrh r0, [r4, #192] ; 0xc0 + cmp r0, #0 + bne _06006AB8 + ldrh r1, [r4, #190] ; 0xbe + ldr r0, _06006BEC ; =0x0000FFFF + cmp r1, r0 + moveq r0, #4 + streqh r0, [r4, #190] ; 0xbe + ldrh r0, [r4, #190] ; 0xbe + and r0, r0, #255 ; 0xff + bl FUN_060003C4 + bl FUN_06000350 + strh r0, [r4, #188] ; 0xbc + ldr r0, _06006BEC ; =0x0000FFFF + strh r0, [r4, #190] ; 0xbe + mov r0, #1 + strh r0, [r4, #192] ; 0xc0 +_06006AB8: + ldrh r0, [r4] + cmp r0, #9 + bne _06006BA8 + bl FUN_060001A4 + add r1, r4, #256 ; 0x100 + ldrh r1, [r1, #130] ; 0x82 + cmp r1, #0 + bne _06006AE8 + mov r1, #0 + strh r1, [r4, #98] ; 0x62 + bl FUN_060001AC + b _06006BDC +_06006AE8: + mov r3, #1 + ldrsh r2, [r4, #98] ; 0x62 + cmp r2, #0 + ble _06006B04 + ldrsh r1, [r4, #100] ; 0x64 + cmp r1, #0 + movgt r3, #0 +_06006B04: + cmp r2, #0 + movlt r1, #0 + strlth r1, [r4, #98] ; 0x62 + ldrsh r2, [r4, #98] ; 0x62 + ldrsh r1, [r4, #90] ; 0x5a + add r1, r2, r1 + strh r1, [r4, #98] ; 0x62 + ldrsh r1, [r4, #98] ; 0x62 + cmp r1, #256 ; 0x100 + movgt r1, #256 ; 0x100 + strgth r1, [r4, #98] ; 0x62 + ldrh r1, [r4, #92] ; 0x5c + strh r1, [r4, #100] ; 0x64 + cmp r3, #0 + beq _06006B5C + ldrsh r1, [r4, #98] ; 0x62 + cmp r1, #0 + ble _06006B5C + ldrsh r1, [r4, #100] ; 0x64 + cmp r1, #0 + movgt r5, #1 + bgt _06006B60 +_06006B5C: + mov r5, #0 +_06006B60: + bl FUN_060001AC + cmp r5, #0 + beq _06006B74 + ldr r0, _06006BEC ; =0x0000FFFF + bl FUN_06007C50 +_06006B74: + ldrh r0, [r4, #146] ; 0x92 + cmp r0, #1 + bne _06006BDC + ldrh r0, [r4, #160] ; 0xa0 + sub r0, r0, #1 + strh r0, [r4, #160] ; 0xa0 + ldrh r0, [r4, #160] ; 0xa0 + cmp r0, #0 + moveq r0, #1 + streqh r0, [r4, #158] ; 0x9e + moveq r0, #60 ; 0x3c + streqh r0, [r4, #160] ; 0xa0 + b _06006BDC +_06006BA8: + cmp r0, #10 + bne _06006BDC + mov r5, #0 + bl FUN_060001A4 + ldr r1, [r4, #1844] ; 0x734 + cmp r1, #1 + movne r5, #1 + movne r1, #0 + strneh r1, [r4, #96] ; 0x60 + bl FUN_060001AC + cmp r5, #1 + bne _06006BDC + bl FUN_06007E50 +_06006BDC: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06006BE8: .word _0601A960 +_06006BEC: .word 0x0000FFFF + + arm_func_start FUN_06006BF0 +FUN_06006BF0: ; 0x06006BF0 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r3 + ands r0, r5, #32768 ; 0x8000 + ldrne r0, _06006C94 ; =0x00007FFF + andne r5, r5, r0 + addeq r0, r5, #28 + moveq r0, r0, lsl #2 + addeq r5, r0, #102 ; 0x66 + mov r0, r2 + bl FUN_06006CA4 + add r1, r6, #34 ; 0x22 + mov r1, r1, lsl #2 + add r1, r1, #96 ; 0x60 + mul r0, r5, r0 + add r0, r0, #904 ; 0x388 + add r3, r1, r0 + ldr r0, _06006C98 ; =0x04000006 + ldrh r1, [r0] + sub r0, r4, #2 + subs r4, r0, r1 + bpl _06006C58 + ldr r0, _06006C9C ; =0x00000107 +_06006C50: + adds r4, r4, r0 + bmi _06006C50 +_06006C58: + mov r0, #127 ; 0x7f + mul r2, r4, r0 + ldr r1, _06006CA0 ; =0x66666667 + smull r0, r4, r1, r2 + mov r4, r4, asr #3 + mov r0, r2, lsr #31 + add r4, r0, r4 + mov r0, #10 + mul r0, r4, r0 + cmp r0, r3 + movcc r4, #0 + mov r0, r4, lsl #16 + mov r0, r0, lsr #16 + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06006C94: .word 0x00007FFF +_06006C98: .word 0x04000006 +_06006C9C: .word 0x00000107 +_06006CA0: .word 0x66666667 + + arm_func_start FUN_06006CA4 +FUN_06006CA4: ; 0x06006CA4 + ldr pc, _06006CA8 ; =FUN_03806B34 +_06006CA8: .word FUN_03806B34 + + arm_func_start FUN_06006CAC +FUN_06006CAC: ; 0x06006CAC + stmdb sp!, {r0, r1, r2, r3} + + arm_func_start FUN_06006CB0 +FUN_06006CB0: ; 0x06006CB0 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #44 ; 0x2c + str r0, [sp] + mov sl, r2 + movs r9, r3 + ldr r0, [sp, #96] ; 0x60 + str r0, [sp, #96] ; 0x60 + ldr r0, _06006F40 ; =_0601A960 + ldr r8, [r0, #1360] ; 0x550 + addeq sp, sp, #44 ; 0x2c + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + addeq sp, sp, #16 + bxeq lr + ldrh r0, [r8, #62] ; 0x3e + cmp r9, r0 + addhi sp, sp, #44 ; 0x2c + ldmhiia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + addhi sp, sp, #16 + bxhi lr + add r0, r8, #256 ; 0x100 + ldrh r1, [r0, #136] ; 0x88 + ldr r0, [sp] + cmp r0, r1 + addeq sp, sp, #44 ; 0x2c + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + addeq sp, sp, #16 + bxeq lr + cmp r0, #16 + addcs sp, sp, #44 ; 0x2c + ldmcsia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + addcs sp, sp, #16 + bxcs lr + ands r0, r9, #1 + addne sp, sp, #44 ; 0x2c + ldmneia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + addne sp, sp, #16 + bxne lr + mov r0, #1 + str r0, [sp, #4] + cmp r9, #0 + addle sp, sp, #44 ; 0x2c + ldmleia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + addle sp, sp, #16 + bxle lr + add r1, r8, #504 ; 0x1f8 + ldr r0, [sp] + add fp, r1, r0, lsl #4 + mov r4, #0 + mov r0, #512 ; 0x200 + str r0, [sp, #12] + ldr r0, [sp, #4] + str r0, [sp, #16] + str r0, [sp, #20] + mov r0, #2 + str r0, [sp, #24] + mov r0, #130 ; 0x82 + str r0, [sp, #32] + mov r0, #21 + str r0, [sp, #36] ; 0x24 + ldr r0, [sp, #4] + str r0, [sp, #28] +_06006DA4: + ldr r5, _06006F44 ; =0x0000FFFF + ldr r0, [sp, #4] + cmp r0, #1 + streq r4, [sp, #4] + addeq r0, sp, #84 ; 0x54 + movne r0, sl + addne sl, sl, #2 + subne r9, r9, #2 + ldrh r1, [r0] + and r0, r1, #255 ; 0xff + movs r7, r0, lsl #1 + ldreq r7, [sp, #12] + ands r0, r1, #4096 ; 0x1000 + ldrne r2, [sp, #16] + moveq r2, r4 + ands r0, r1, #2048 ; 0x800 + ldrne r3, [sp, #20] + moveq r3, r4 + cmp r2, #0 + ldrne r6, [sp, #24] + moveq r6, r4 + cmp r3, #0 + ldrne r0, [sp, #24] + moveq r0, r4 + add r0, r7, r0 + add r0, r0, r6 + subs r9, r9, r0 + addmi sp, sp, #44 ; 0x2c + ldmmiia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + addmi sp, sp, #16 + bxmi lr + and r1, r1, #3840 ; 0xf00 + mov r1, r1, lsl #8 + mov r6, r1, lsr #16 + str sl, [sp, #8] + add r1, sl, r7 + add sl, sl, r0 + cmp r3, #1 + bne _06006E80 + and r0, r6, #7 + mov r3, r0, lsl #1 + add r0, fp, r0, lsl #1 + ldrh ip, [fp, r3] + ldrh r5, [r1], #2 + ands r3, ip, #1 + movne r3, r5, lsl #1 + strneh r3, [r0] + bne _06006E80 + mov r5, r5, lsl #1 + sub r3, ip, r5 + mov r3, r3, lsl #16 + mov r3, r3, lsr #16 + cmp r3, #256 ; 0x100 + bcc _06006F28 + strh r5, [r0] +_06006E80: + cmp r2, #1 + bne _06006EA4 + ldrh r2, [r1] + add r0, r8, #256 ; 0x100 + ldrh r1, [r0, #136] ; 0x88 + ldr r0, [sp, #28] + mov r0, r0, lsl r1 + ands r0, r2, r0 + beq _06006F28 +_06006EA4: + cmp r7, #0 + ble _06006F28 + bl FUN_060001E8 + ldr r1, [sp, #32] + strh r1, [r0] + strh r4, [r0, #2] + ldr r1, [sp, #36] ; 0x24 + strh r1, [r0, #4] + strh r6, [r0, #6] + ldr r1, [sp, #96] ; 0x60 + str r1, [r0, #8] + ldr r1, [sp, #8] + str r1, [r0, #12] + strh r7, [r0, #16] + ldr r1, [sp] + strh r1, [r0, #18] + add r1, r8, #256 ; 0x100 + ldrh r2, [r1, #136] ; 0x88 + strh r2, [r0, #32] + strh r5, [r0, #26] + ldrh r2, [r8, #48] ; 0x30 + ldrh r3, [r8, #50] ; 0x32 + ldrh r1, [r1, #136] ; 0x88 + cmp r1, #0 + moveq r1, r2 + movne r1, r3 + strh r1, [r0, #64] ; 0x40 + add r1, r8, #256 ; 0x100 + ldrh r1, [r1, #136] ; 0x88 + cmp r1, #0 + movne r3, r2 + strh r3, [r0, #66] ; 0x42 + bl FUN_060001F0 +_06006F28: + cmp r9, #0 + bgt _06006DA4 + add sp, sp, #44 ; 0x2c + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + add sp, sp, #16 + bx lr +_06006F40: .word _0601A960 +_06006F44: .word 0x0000FFFF + + arm_func_start FUN_06006F48 +FUN_06006F48: ; 0x06006F48 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #36 ; 0x24 + ldr r1, _06007148 ; =_0601A960 + ldr r6, [r1, #1360] ; 0x550 + add r9, r6, #760 ; 0x2f8 + mvn r1, r0 + add r0, r6, #256 ; 0x100 + ldrh r0, [r0, #130] ; 0x82 + and r0, r1, r0 + str r0, [sp, #8] + ldr r0, _0600714C ; =0x0000071C + add r0, r6, r0 + bl FUN_06007158 + mov r0, #0 + str r0, [sp] + ldr r0, _06007150 ; =0x0000070C + add r0, r6, r0 + str r0, [sp, #12] + mov r0, #129 ; 0x81 + str r0, [sp, #20] + ldr r0, [sp] + str r0, [sp, #24] + mov r0, #20 + str r0, [sp, #28] + ldr r4, _06007154 ; =0x0000FFFF + ldr r0, [sp] + str r0, [sp, #16] +_06006FB4: + ldr r0, [sp, #16] + str r0, [sp, #4] + ldr r5, [sp, #12] +_06006FC0: + mov fp, r5 + mov r8, r4 + ldrh sl, [r5] + cmp sl, r4 + beq _06007104 +_06006FD4: + add r7, r9, sl, lsl #5 + ldrh r1, [r7, #6] + ldr r0, [sp, #8] + and r0, r1, r0 + strh r0, [r7, #6] + ldrh r1, [r7, #10] + ldr r0, [sp, #8] + and r0, r1, r0 + strh r0, [r7, #10] + ldrh r0, [r7, #6] + cmp r0, #0 + bne _060070DC + bl FUN_060001E8 + ldr r1, [sp, #20] + strh r1, [r0] + ldr r1, [sp, #24] + strh r1, [r0, #2] + ldr r1, [sp, #28] + strh r1, [r0, #8] + ldrh r1, [r7, #2] + strh r1, [r0, #10] + ldrh r1, [r7, #4] + strh r1, [r0, #12] + ldrh r1, [r7, #6] + strh r1, [r0, #14] + ldrh r1, [r7, #8] + strh r1, [r0, #16] + ldrh r1, [r7, #14] + strh r1, [r0, #24] + ldr r1, [r7, #20] + str r1, [r0, #20] + ldr r1, [r7, #24] + str r1, [r0, #28] + ldr r1, [r7, #28] + str r1, [r0, #32] + ldrh r1, [r7, #16] + strh r1, [r0, #26] + ldrh r1, [r6, #48] ; 0x30 + ldrh r2, [r6, #50] ; 0x32 + add r3, r6, #256 ; 0x100 + ldrh r3, [r3, #136] ; 0x88 + cmp r3, #0 + moveq r3, r1 + movne r3, r2 + strh r3, [r0, #36] ; 0x24 + add r3, r6, #256 ; 0x100 + ldrh r3, [r3, #136] ; 0x88 + cmp r3, #0 + movne r2, r1 + strh r2, [r0, #38] ; 0x26 + bl FUN_060001F0 + ldrh r0, [r7] + cmp r0, r4 + streqh r8, [r5, #2] + ldrh r0, [r7] + strh r0, [fp] + strh r4, [r7] + add r0, r6, #1536 ; 0x600 + ldrh r1, [r0, #250] ; 0xfa + cmp r1, r4 + streqh sl, [r0, #248] ; 0xf8 + movne r0, r1, lsl #5 + strneh sl, [r9, r0] + add r0, r6, #1536 ; 0x600 + strh sl, [r0, #250] ; 0xfa + mov sl, r8 +_060070DC: + cmp sl, r4 + addne fp, r9, sl, lsl #5 + moveq fp, r5 + mov r8, sl + cmp sl, r4 + movne r0, sl, lsl #5 + ldrneh sl, [r9, r0] + ldreqh sl, [r5] + cmp sl, r4 + bne _06006FD4 +_06007104: + add r5, r5, #4 + ldr r0, [sp, #4] + add r0, r0, #1 + str r0, [sp, #4] + cmp r0, #4 + blt _06006FC0 + ldr r0, [sp] + add r0, r0, #1 + str r0, [sp] + cmp r0, #2 + blt _06006FB4 + ldr r0, _0600714C ; =0x0000071C + add r0, r6, r0 + bl FUN_06007160 + add sp, sp, #36 ; 0x24 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06007148: .word _0601A960 +_0600714C: .word 0x0000071C +_06007150: .word 0x0000070C +_06007154: .word 0x0000FFFF + + arm_func_start FUN_06007158 +FUN_06007158: ; 0x06007158 + ldr pc, _0600715C ; =FUN_037F9ADC +_0600715C: .word FUN_037F9ADC + + arm_func_start FUN_06007160 +FUN_06007160: ; 0x06007160 + ldr pc, _06007164 ; =FUN_037F9A6C +_06007164: .word FUN_037F9A6C + + arm_func_start FUN_06007168 +FUN_06007168: ; 0x06007168 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #44 ; 0x2c + str r0, [sp] + mov r4, r1 + ldr r0, _0600749C ; =_0601A960 + ldr r6, [r0, #1360] ; 0x550 + add sl, r6, #760 ; 0x2f8 + mov r0, #0 + str r0, [sp, #8] + ldrh r0, [r6] + cmp r0, #9 + moveq r5, #1 + beq _060071B8 + cmp r0, #10 + ldreq r5, [sp, #8] + beq _060071B8 + ldr r0, [sp, #8] + add sp, sp, #44 ; 0x2c + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_060071B8: + ldr r0, _060074A0 ; =0x0000071C + add r0, r6, r0 + bl FUN_06007158 + ldr r0, [r6, #1844] ; 0x734 + cmp r0, #0 + bne _060071EC + ldr r0, _060074A0 ; =0x0000071C + add r0, r6, r0 + bl FUN_06007160 + mov r0, #0 + add sp, sp, #44 ; 0x2c + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_060071EC: + cmp r5, #0 + moveq fp, #1 + beq _06007208 + bl FUN_060001A4 + add r1, r6, #256 ; 0x100 + ldrh fp, [r1, #130] ; 0x82 + bl FUN_060001AC +_06007208: + mov r0, #0 + str r0, [sp, #4] + ldr r0, _060074A4 ; =0x000006FC + add r8, r6, r0 + mvn r0, r4 + str r0, [sp, #16] + mov r0, #1 + str r0, [sp, #24] + ldr r4, _060074A8 ; =0x0000FFFF + ldr r0, [sp, #4] + str r0, [sp, #20] + mov r0, #129 ; 0x81 + str r0, [sp, #28] + mov r0, #15 + str r0, [sp, #36] ; 0x24 + ldr r0, [sp, #4] + str r0, [sp, #32] + mov r0, #20 + str r0, [sp, #40] ; 0x28 +_06007254: + mov r5, r4 + str r4, [sp, #12] + ldrh r9, [r8] + cmp r9, r4 + beq _06007420 +_06007268: + add r7, sl, r9, lsl #5 + ldr r0, [sp] + cmp r0, #0 + bne _060072A4 + ldrh r2, [r7, #8] + ldrh r1, [r7, #10] + ldr r0, [sp, #16] + and r0, r1, r0 + orr r0, r2, r0 + strh r0, [r7, #8] + ldrh r1, [r7, #6] + ldrh r0, [r7, #8] + mvn r0, r0 + and r0, r1, r0 + strh r0, [r7, #6] +_060072A4: + ldrh r0, [r7, #6] + and r0, r0, fp + strh r0, [r7, #6] + ldr r0, [sp, #20] + strh r0, [r7, #10] + ldrh r0, [r7, #6] + cmp r0, #0 + beq _06007330 + ldrh r0, [r7, #2] + ands r0, r0, #8 + bne _060072DC + ldrh r0, [r7, #18] + cmp r0, #0 + beq _06007330 +_060072DC: + ldr r0, [sp, #24] + str r0, [sp, #8] + ldrh r0, [r7, #18] + cmp r0, #0 + subne r0, r0, #1 + strneh r0, [r7, #18] + ldrh r0, [r7] + cmp r0, r4 + streqh r4, [r8, #2] + ldrh r0, [r7] + strh r0, [r8] + strh r4, [r7] + cmp r5, r4 + moveq r0, r9, lsl #16 + moveq r0, r0, lsr #16 + streq r0, [sp, #12] + movne r0, r5, lsl #5 + strneh r9, [sl, r0] + mov r0, r9, lsl #16 + mov r5, r0, lsr #16 + b _06007414 +_06007330: + bl FUN_060001E8 + ldr r1, [sp, #28] + strh r1, [r0] + ldrh r1, [r7, #6] + cmp r1, #0 + ldreq r1, [sp, #32] + streqh r1, [r0, #2] + ldrne r1, [sp, #36] ; 0x24 + strneh r1, [r0, #2] + ldr r1, [sp, #40] ; 0x28 + strh r1, [r0, #8] + ldrh r1, [r7, #2] + strh r1, [r0, #10] + ldrh r1, [r7, #4] + strh r1, [r0, #12] + ldrh r1, [r7, #6] + strh r1, [r0, #14] + ldrh r1, [r7, #8] + strh r1, [r0, #16] + ldrh r1, [r7, #14] + strh r1, [r0, #24] + ldr r1, [r7, #20] + str r1, [r0, #20] + ldr r1, [r7, #24] + str r1, [r0, #28] + ldr r1, [r7, #28] + str r1, [r0, #32] + ldrh r1, [r7, #16] + strh r1, [r0, #26] + ldrh r1, [r6, #48] ; 0x30 + ldrh r2, [r6, #50] ; 0x32 + add r3, r6, #256 ; 0x100 + ldrh r3, [r3, #136] ; 0x88 + cmp r3, #0 + moveq r3, r1 + movne r3, r2 + strh r3, [r0, #36] ; 0x24 + add r3, r6, #256 ; 0x100 + ldrh r3, [r3, #136] ; 0x88 + cmp r3, #0 + movne r2, r1 + strh r2, [r0, #38] ; 0x26 + bl FUN_060001F0 + ldrh r0, [r7] + cmp r0, r4 + streqh r4, [r8, #2] + ldrh r0, [r7] + strh r0, [r8] + strh r4, [r7] + add r0, r6, #1536 ; 0x600 + ldrh r1, [r0, #250] ; 0xfa + cmp r1, r4 + streqh r9, [r0, #248] ; 0xf8 + movne r0, r1, lsl #5 + strneh r9, [sl, r0] + add r0, r6, #1536 ; 0x600 + strh r9, [r0, #250] ; 0xfa +_06007414: + ldrh r9, [r8] + cmp r9, r4 + bne _06007268 +_06007420: + cmp r5, r4 + beq _06007460 + ldr r0, [sp, #4] + add r0, r6, r0, lsl #2 + add r0, r0, #1792 ; 0x700 + ldrh r2, [r0, #12] + mov r1, r5, lsl #5 + strh r2, [sl, r1] + ldrh r1, [r0, #14] + cmp r1, r4 + streqh r5, [r0, #14] + ldr r0, [sp, #4] + add r0, r6, r0, lsl #2 + add r1, r0, #1792 ; 0x700 + ldr r0, [sp, #12] + strh r0, [r1, #12] +_06007460: + add r8, r8, #4 + ldr r0, [sp, #4] + add r0, r0, #1 + str r0, [sp, #4] + cmp r0, #4 + blt _06007254 + mov r0, #0 + str r0, [r6, #1844] ; 0x734 + ldr r0, _060074A0 ; =0x0000071C + add r0, r6, r0 + bl FUN_06007160 + ldr r0, [sp, #8] + add sp, sp, #44 ; 0x2c + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_0600749C: .word _0601A960 +_060074A0: .word 0x0000071C +_060074A4: .word 0x000006FC +_060074A8: .word 0x0000FFFF + + arm_func_start FUN_060074AC +FUN_060074AC: ; 0x060074AC + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #4 + mov r8, r0 + mov r7, r2 + mov r6, r3 + ldr r0, _060075F8 ; =_0601A960 + ldr r9, [r0, #1360] ; 0x550 + add r5, r9, #760 ; 0x2f8 + ldr r0, _060075FC ; =0x0000070C + add r0, r9, r0 + add r4, r0, r1, lsl #2 + ldrh r0, [sp, #36] ; 0x24 + cmp r0, #0 + moveq r0, #6 + addeq sp, sp, #4 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, lr} + bxeq lr + ands r0, r7, #8 + movne r1, #2 + moveq r1, #0 + ldrh r0, [sp, #36] ; 0x24 + add r1, r0, r1 + ldrh r0, [r9, #60] ; 0x3c + cmp r1, r0 + movgt r0, #6 + addgt sp, sp, #4 + ldmgtia sp!, {r4, r5, r6, r7, r8, r9, lr} + bxgt lr + ldr r0, _06007600 ; =0x0000071C + add r0, r9, r0 + bl FUN_06007158 + add r2, r9, #1536 ; 0x600 + ldrh r0, [r2, #248] ; 0xf8 + ldr r3, _06007604 ; =0x0000FFFF + cmp r0, r3 + bne _06007558 + ldr r0, _06007600 ; =0x0000071C + add r0, r9, r0 + bl FUN_06007160 + mov r0, #10 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} + bx lr +_06007558: + mov ip, r0, lsl #5 + add r1, r5, r0, lsl #5 + ldrh ip, [r5, ip] + strh ip, [r2, #248] ; 0xf8 + ldrh ip, [r2, #250] ; 0xfa + cmp ip, r0 + streqh r3, [r2, #250] ; 0xfa + strh r7, [r1, #2] + strh r6, [r1, #4] + and r2, r6, r8 + strh r2, [r1, #6] + mov r2, #0 + strh r2, [r1, #8] + strh r2, [r1, #10] + ldr r2, [sp, #32] + str r2, [r1, #20] + ldrh r2, [sp, #36] ; 0x24 + strh r2, [r1, #14] + ldr r2, [sp, #40] ; 0x28 + str r2, [r1, #24] + ldr r2, [sp, #44] ; 0x2c + str r2, [r1, #28] + ldr r3, _06007604 ; =0x0000FFFF + strh r3, [r1] + strh r3, [r1, #16] + ldrh r2, [r9, #152] ; 0x98 + strh r2, [r1, #18] + ldrh r1, [r4, #2] + cmp r1, r3 + streqh r0, [r4] + movne r1, r1, lsl #5 + strneh r0, [r5, r1] + strh r0, [r4, #2] + ldr r0, _06007600 ; =0x0000071C + add r0, r9, r0 + bl FUN_06007160 + mov r0, #2 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} + bx lr +_060075F8: .word _0601A960 +_060075FC: .word 0x0000070C +_06007600: .word 0x0000071C +_06007604: .word 0x0000FFFF + + arm_func_start FUN_06007608 +FUN_06007608: ; 0x06007608 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #100 ; 0x64 + mov sl, r3 + ldr r3, [sp, #136] ; 0x88 + str r3, [sp, #136] ; 0x88 + ldr r3, [sp, #140] ; 0x8c + str r3, [sp, #140] ; 0x8c + ldr r3, _06007B2C ; =_0601A960 + ldr r3, [r3, #1360] ; 0x550 + str r3, [sp, #56] ; 0x38 + ldrh r8, [r3, #56] ; 0x38 + ldr r7, [r3, #124] ; 0x7c + ldrh r4, [r3, #128] ; 0x80 + add r3, r8, #31 + bic r3, r3, #31 + cmp r4, r3 + movlt r0, #1 + addlt sp, sp, #100 ; 0x64 + ldmltia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bxlt lr + ldr r3, [sp, #56] ; 0x38 + add r3, r3, #256 ; 0x100 + ldrh r3, [r3, #136] ; 0x88 + cmp r3, #16 + movcs r0, #1 + addcs sp, sp, #100 ; 0x64 + ldmcsia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bxcs lr + ldr r3, [sp, #56] ; 0x38 + ldrh r3, [r3] + cmp r3, #9 + moveq r3, #1 + streq r3, [sp, #16] + beq _060076B0 + cmp r3, #10 + moveq r3, #0 + streq r3, [sp, #16] + beq _060076B0 + mov r0, #1 + add sp, sp, #100 ; 0x64 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_060076B0: + mov r3, #0 + str r3, [sp, #20] + strh r3, [sl] + mov r4, r3 + ldr r3, [sp, #136] ; 0x88 + str r4, [r3] + ldr r4, [sp, #20] + ldr r3, [sp, #140] ; 0x8c + str r4, [r3] + mov r6, r4 + cmp r8, #0 + movlt r0, #1 + addlt sp, sp, #100 ; 0x64 + ldmltia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bxlt lr + str r2, [sp, #28] + mov r3, #1 + str r3, [sp, #24] + ldr r3, [sp, #16] + cmp r3, #0 + beq _06007720 + ldr r3, [sp, #56] ; 0x38 + ldrh r3, [r3, #146] ; 0x92 + cmp r3, #0 + strne r1, [sp, #28] + movne r1, r4 + strne r1, [sp, #24] + b _06007728 +_06007720: + mov r1, r4 + str r1, [sp, #24] +_06007728: + and r4, r2, r0 + mov r0, #0 + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #12] + ldr r1, _06007B30 ; =0x0000071C + ldr r0, [sp, #56] ; 0x38 + add r0, r0, r1 + bl FUN_06007158 + ldr r0, [sp, #56] ; 0x38 + ldr r0, [r0, #1844] ; 0x734 + cmp r0, #1 + bne _0600777C + ldr r1, _06007B30 ; =0x0000071C + ldr r0, [sp, #56] ; 0x38 + add r0, r0, r1 + bl FUN_06007160 + mov r0, #1 + add sp, sp, #100 ; 0x64 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_0600777C: + mov r1, #1 + str r1, [sp, #64] ; 0x40 + ldr r0, [sp, #56] ; 0x38 + str r1, [r0, #1844] ; 0x734 + add r0, r0, #760 ; 0x2f8 + str r0, [sp, #32] + mov r0, #0 + str r0, [sp, #36] ; 0x24 + ldr r1, _06007B34 ; =0x0000070C + ldr r0, [sp, #56] ; 0x38 + add fp, r0, r1 + ldr r1, _06007B38 ; =0x000006FC + add r0, r0, r1 + str r0, [sp, #40] ; 0x28 + mvn r0, r4 + str r0, [sp, #60] ; 0x3c + ldr r0, [sp, #36] ; 0x24 + str r0, [sp, #68] ; 0x44 + str r0, [sp, #72] ; 0x48 + str r0, [sp, #80] ; 0x50 + mov r0, #2 + str r0, [sp, #76] ; 0x4c + ldr r0, [sp, #36] ; 0x24 + str r0, [sp, #84] ; 0x54 + str r0, [sp, #88] ; 0x58 + str r0, [sp, #92] ; 0x5c + str r0, [sp, #96] ; 0x60 + b _06007AE4 +_060077EC: + str fp, [sp, #44] ; 0x2c + ldr r0, _06007B3C ; =0x0000FFFF + str r0, [sp, #48] ; 0x30 + ldrh r9, [fp] + b _06007AB4 +_06007800: + ldr r0, [sp, #32] + add r5, r0, r9, lsl #5 + ldrh r0, [r5, #2] + ldr r1, [sp, #64] ; 0x40 + mov r1, r1, lsl r0 + str r1, [sp, #52] ; 0x34 + ldr r2, [sp, #8] + ands r1, r2, r1 + bne _06007A80 + ldr r1, [sp, #52] ; 0x34 + orr r1, r2, r1 + str r1, [sp, #8] + ldrh r2, [r5, #6] + ldr r1, [sp, #28] + and r4, r2, r1 + ldr r1, [sp, #24] + cmp r1, #0 + beq _06007854 + ldr r1, [sp, #60] ; 0x3c + ands r1, r4, r1 + bne _06007A80 +_06007854: + ands r0, r0, #8 + ldrne r0, [sp, #64] ; 0x40 + strne r0, [sp, #4] + ldreq r0, [sp, #68] ; 0x44 + streq r0, [sp, #4] + ldr r0, [sp, #16] + cmp r0, #0 + beq _0600788C + orr r1, r4, #1 + ldr r0, _06007B3C ; =0x0000FFFF + cmp r1, r0 + ldrne r0, [sp, #64] ; 0x40 + strne r0, [sp] + bne _06007894 +_0600788C: + ldr r0, [sp, #72] ; 0x48 + str r0, [sp] +_06007894: + ldrh r0, [r5, #14] + and r1, r0, #1 + cmp r1, #1 + addeq r0, r0, #1 + streqh r0, [r5, #14] + ldr r0, [sp, #4] + cmp r0, #0 + ldrne r0, [sp, #76] ; 0x4c + ldreq r0, [sp, #80] ; 0x50 + ldr r1, [sp, #12] + cmp r1, #0 + ldrne r3, [sp, #84] ; 0x54 + ldreq r3, [sp, #76] ; 0x4c + ldr r1, [sp] + cmp r1, #0 + ldrne r1, [sp, #76] ; 0x4c + ldreq r1, [sp, #88] ; 0x58 + ldrh r2, [r5, #14] + add r2, r2, r3 + add r0, r2, r0 + add r0, r1, r0 + cmp r0, r8 + bgt _06007A80 + ldr r0, [sp, #12] + cmp r0, #0 + moveq sl, r7 + ldreq r0, [sp, #92] ; 0x5c + streqh r0, [r7], #2 + addeq r6, r6, #2 + subeq r8, r8, #2 + ldrh r0, [sl] + ldrh r1, [r5, #2] + mov r1, r1, lsl #8 + and r2, r1, #3840 ; 0xf00 + ldrh r1, [r5, #14] + mov r1, r1, lsr #1 + and r1, r1, #255 ; 0xff + orr r1, r2, r1 + orr r0, r0, r1 + strh r0, [sl] + ldr r0, [r5, #20] + mov r1, r7 + ldrh r2, [r5, #14] + bl FUN_06000EA0 + ldrh r1, [r5, #14] + bic r0, r1, #1 + add r7, r7, r0 + add r6, r6, r1 + sub r8, r8, r1 + ldr r0, [sp, #4] + cmp r0, #1 + bne _060079C0 + ldrh r1, [r5, #16] + ands r0, r1, #1 + moveq r2, r1, asr #1 + beq _060079AC + ldr r0, [sp, #56] ; 0x38 + add r0, r0, #256 ; 0x100 + ldrh r2, [r0, #136] ; 0x88 + ldrh r0, [r5, #2] + and r1, r0, #7 + ldr r0, [sp, #56] ; 0x38 + add r0, r0, r2, lsl #4 + add r0, r0, r1, lsl #1 + add r0, r0, #256 ; 0x100 + ldrh r2, [r0, #248] ; 0xf8 + add r1, r2, #1 + strh r1, [r0, #248] ; 0xf8 + mov r0, r2, lsl #1 + strh r0, [r5, #16] +_060079AC: + ldr r0, _06007B40 ; =0x00007FFF + and r0, r2, r0 + strh r0, [r7], #2 + add r6, r6, #2 + sub r8, r8, #2 +_060079C0: + ldr r0, [sp] + cmp r0, #1 + bne _060079E4 + ldrh r0, [sl] + orr r0, r0, #4096 ; 0x1000 + strh r0, [sl] + strh r4, [r7], #2 + add r6, r6, #2 + sub r8, r8, #2 +_060079E4: + ldr r0, [sp, #12] + cmp r0, #1 + ldreq r0, [sp, #96] ; 0x60 + streq r0, [sp, #12] + ldrh r0, [fp, #2] + cmp r0, r9 + ldreq r0, [sp, #48] ; 0x30 + streqh r0, [fp, #2] + ldrh r1, [r5] + ldr r0, [sp, #44] ; 0x2c + strh r1, [r0] + ldr r0, _06007B3C ; =0x0000FFFF + strh r0, [r5] + ldr r0, [sp, #40] ; 0x28 + ldrh r1, [r0, #2] + ldr r0, _06007B3C ; =0x0000FFFF + cmp r1, r0 + ldreq r0, [sp, #40] ; 0x28 + streqh r9, [r0] + movne r1, r1, lsl #5 + ldrne r0, [sp, #32] + strneh r9, [r0, r1] + ldr r0, [sp, #40] ; 0x28 + strh r9, [r0, #2] + strh r4, [r5, #10] + ldr r0, [sp, #52] ; 0x34 + mvn r1, r0 + ldr r0, [sp, #8] + and r0, r0, r1 + str r0, [sp, #8] + ldrh r1, [r5, #4] + ldr r0, [sp, #20] + orr r0, r0, r1 + str r0, [sp, #20] + ldr r9, [sp, #48] ; 0x30 + ldr r0, [sp, #56] ; 0x38 + ldrh r0, [r0, #148] ; 0x94 + cmp r0, #1 + beq _06007AF8 +_06007A80: + ldr r0, _06007B3C ; =0x0000FFFF + cmp r9, r0 + ldrne r0, [sp, #32] + addne r0, r0, r9, lsl #5 + strne r0, [sp, #44] ; 0x2c + streq fp, [sp, #44] ; 0x2c + str r9, [sp, #48] ; 0x30 + ldr r0, _06007B3C ; =0x0000FFFF + cmp r9, r0 + movne r1, r9, lsl #5 + ldrne r0, [sp, #32] + ldrneh r9, [r0, r1] + ldreqh r9, [fp] +_06007AB4: + ldr r0, _06007B3C ; =0x0000FFFF + cmp r9, r0 + beq _06007AC8 + cmp r8, #2 + bgt _06007800 +_06007AC8: + add fp, fp, #4 + ldr r0, [sp, #40] ; 0x28 + add r0, r0, #4 + str r0, [sp, #40] ; 0x28 + ldr r0, [sp, #36] ; 0x24 + add r0, r0, #1 + str r0, [sp, #36] ; 0x24 +_06007AE4: + ldr r0, [sp, #36] ; 0x24 + cmp r0, #4 + bcs _06007AF8 + cmp r8, #2 + bgt _060077EC +_06007AF8: + ldr r1, [sp, #20] + ldr r0, [sp, #136] ; 0x88 + str r1, [r0] + ldr r0, [sp, #140] ; 0x8c + str r6, [r0] + ldr r1, _06007B30 ; =0x0000071C + ldr r0, [sp, #56] ; 0x38 + add r0, r0, r1 + bl FUN_06007160 + mov r0, #0 + add sp, sp, #100 ; 0x64 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06007B2C: .word _0601A960 +_06007B30: .word 0x0000071C +_06007B34: .word 0x0000070C +_06007B38: .word 0x000006FC +_06007B3C: .word 0x0000FFFF +_06007B40: .word 0x00007FFF + + arm_func_start FUN_06007B44 +FUN_06007B44: ; 0x06007B44 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + sub sp, sp, #536 ; 0x218 + mov r7, r0 + ldr r0, _06007C3C ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + bl FUN_060001A4 + bl FUN_060001AC + ldr r0, _06007C40 ; =0x048080F8 + ldrh r6, [r0] + ldrh r5, [r4, #106] ; 0x6a + add r0, r4, #256 ; 0x100 + ldrh r0, [r0, #130] ; 0x82 + and r7, r7, r0 + ldrh r8, [r4, #58] ; 0x3a + mov r0, r7 + bl FUN_06006CA4 + ldrh r2, [r4, #114] ; 0x72 + add r1, r8, #12 + mul r0, r1, r0 + add r0, r0, #41 ; 0x29 + bic r0, r0, #31 + cmp r2, r0 + bge _06007BB8 + mov r0, #2 + bl FUN_06007C48 + bl FUN_06001964 + add sp, sp, #536 ; 0x218 + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_06007BB8: + ldrsh r0, [r4, #98] ; 0x62 + cmp r0, #1 + beq _06007BD0 + ldrsh r0, [r4, #100] ; 0x64 + cmp r0, #1 + bne _06007BEC +_06007BD0: + ldrh r0, [r4, #110] ; 0x6e + ldrh r1, [r4, #108] ; 0x6c + mov r2, r7 + ldrh r3, [r4, #64] ; 0x40 + bl FUN_06006BF0 + orr r5, r5, #32768 ; 0x8000 + b _06007BF4 +_06007BEC: + mov r0, #0 + bic r5, r5, #32768 ; 0x8000 +_06007BF4: + mov r1, r7, lsl #16 + mov r1, r1, lsr #16 + str r1, [sp] + str r0, [sp, #4] + str r6, [sp, #8] + mov r2, #0 + str r2, [sp, #12] + mov r0, r5, lsl #16 + mov r0, r0, lsr #16 + str r0, [sp, #16] + str r2, [sp, #20] + add r0, sp, #24 + ldr r1, _06007C44 ; =0x0000800C + mov r3, r2 + bl FUN_060028C8 + add sp, sp, #536 ; 0x218 + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_06007C3C: .word _0601A960 +_06007C40: .word 0x048080F8 +_06007C44: .word 0x0000800C + + arm_func_start FUN_06007C48 +FUN_06007C48: ; 0x06007C48 + ldr pc, _06007C4C ; =FUN_037F8E14 +_06007C4C: .word FUN_037F8E14 + + arm_func_start FUN_06007C50 +FUN_06007C50: ; 0x06007C50 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + sub sp, sp, #552 ; 0x228 + mov r8, r0 + ldr r0, _06007E40 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + bl FUN_060001A4 + add r1, r4, #256 ; 0x100 + ldrh r7, [r1, #130] ; 0x82 + ldrh r6, [r4, #134] ; 0x86 + bl FUN_060001AC + mov r1, #0 + strh r1, [sp, #24] + ldrh r0, [r4, #136] ; 0x88 + cmp r0, #1 + ldreq r8, _06007E44 ; =0x0000FFFF + streqh r1, [r4, #136] ; 0x88 + ldrh r0, [r4, #158] ; 0x9e + cmp r0, #0 + bne _06007D88 + ldrh r5, [r4, #58] ; 0x3a + add r0, sp, #28 + str r0, [sp] + add r0, sp, #32 + str r0, [sp, #4] + mov r0, r8 + mov r1, r7 + mov r2, r6 + add r3, sp, #24 + bl FUN_06007608 + cmp r0, #1 + moveq r0, #0 + streqh r0, [r4, #98] ; 0x62 + streqh r0, [r4, #100] ; 0x64 + addeq sp, sp, #552 ; 0x228 + ldmeqia sp!, {r4, r5, r6, r7, r8, lr} + bxeq lr + add r6, r5, #2 + ldrh r0, [r4, #146] ; 0x92 + cmp r0, #1 + ldreq r8, [sp, #28] + and r8, r8, r7 + mov r0, r8 + bl FUN_06006CA4 + ldrh r2, [r4, #114] ; 0x72 + add r1, r5, #12 + mul r0, r1, r0 + add r0, r0, #41 ; 0x29 + bic r0, r0, #31 + cmp r2, r0 + bge _06007D40 + mov r0, #0 + mov r1, r8, lsl #16 + mov r1, r1, lsr #16 + bl FUN_06007168 + mov r0, #0 + strh r0, [r4, #98] ; 0x62 + strh r0, [r4, #100] ; 0x64 + add sp, sp, #552 ; 0x228 + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_06007D40: + ldrsh r0, [r4, #98] ; 0x62 + cmp r0, #1 + beq _06007D58 + ldrsh r0, [r4, #100] ; 0x64 + cmp r0, #1 + bne _06007D80 +_06007D58: + ldr r0, [sp, #32] + mov r1, r6 + mov r2, r8 + ldrh r3, [r4, #64] ; 0x40 + bl FUN_06006BF0 + mov r5, r0 + ldrh r0, [sp, #24] + orr r0, r0, #32768 ; 0x8000 + strh r0, [sp, #24] + b _06007DC8 +_06007D80: + mov r5, #0 + b _06007DC8 +_06007D88: + mov r5, #0 + strh r5, [r4, #158] ; 0x9e + mov r8, r7 + ldr r6, _06007E48 ; =0x000080D6 + str r5, [sp, #32] + ldrh r0, [sp, #24] + bic r0, r0, #32768 ; 0x8000 + strh r0, [sp, #24] + bl FUN_060001A4 + ldrsh r1, [r4, #98] ; 0x62 + add r1, r1, #1 + strh r1, [r4, #98] ; 0x62 + ldrsh r1, [r4, #100] ; 0x64 + add r1, r1, #1 + strh r1, [r4, #100] ; 0x64 + bl FUN_060001AC +_06007DC8: + mov r0, r8, lsl #16 + mov r0, r0, lsr #16 + str r0, [sp] + str r5, [sp, #4] + ldr r0, _06007E4C ; =0x048080F8 + ldrh r0, [r0] + str r0, [sp, #8] + ldr r0, [sp, #32] + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + str r0, [sp, #12] + ldrh r0, [sp, #24] + str r0, [sp, #16] + ldr r0, [r4, #124] ; 0x7c + str r0, [sp, #20] + add r0, sp, #36 ; 0x24 + mov r1, #0 + mov r2, r1 + mov r3, r6, lsl #16 + mov r3, r3, lsr #16 + bl FUN_060028C8 + strh r8, [r4, #104] ; 0x68 + ldrh r0, [sp, #24] + strh r0, [r4, #106] ; 0x6a + strh r6, [r4, #108] ; 0x6c + ldr r0, [sp, #32] + strh r0, [r4, #110] ; 0x6e + add sp, sp, #552 ; 0x228 + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_06007E40: .word _0601A960 +_06007E44: .word 0x0000FFFF +_06007E48: .word 0x000080D6 +_06007E4C: .word 0x048080F8 + + arm_func_start FUN_06007E50 +FUN_06007E50: ; 0x06007E50 + stmdb sp!, {r4, lr} + sub sp, sp, #536 ; 0x218 + ldr r0, _06007F1C ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + add r0, r4, #256 ; 0x100 + ldrh r0, [r0, #130] ; 0x82 + cmp r0, #0 + addeq sp, sp, #536 ; 0x218 + ldmeqia sp!, {r4, lr} + bxeq lr + mov r0, #1 + strh r0, [r4, #138] ; 0x8a + mov r1, #0 + strh r1, [sp, #8] + add r1, sp, #12 + str r1, [sp] + add r1, sp, #16 + str r1, [sp, #4] + mov r1, r0 + mov r2, r0 + add r3, sp, #8 + bl FUN_06007608 + cmp r0, #1 + moveq r0, #0 + streqh r0, [r4, #138] ; 0x8a + addeq sp, sp, #536 ; 0x218 + ldmeqia sp!, {r4, lr} + bxeq lr + ldr r0, [r4, #28] + cmp r0, #1 + ldreqh r0, [sp, #8] + orreq r0, r0, #32768 ; 0x8000 + streqh r0, [sp, #8] + add r0, sp, #20 + ldr r1, [sp, #16] + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + ldrh r2, [sp, #8] + ldr r3, [r4, #124] ; 0x7c + bl FUN_06002964 + ldrh r0, [r0, #4] + cmp r0, #0 + addeq sp, sp, #536 ; 0x218 + ldmeqia sp!, {r4, lr} + bxeq lr + cmp r0, #8 + movne r0, #0 + strneh r0, [r4, #138] ; 0x8a + add sp, sp, #536 ; 0x218 + ldmia sp!, {r4, lr} + bx lr +_06007F1C: .word _0601A960 + + arm_func_start FUN_06007F20 +FUN_06007F20: ; 0x06007F20 + stmdb sp!, {r4, lr} + ldr r0, _06007FD4 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + ldr r0, _06007FD8 ; =0x0000071C + add r0, r4, r0 + bl FUN_06007158 + mov r0, #0 + add r1, r4, #760 ; 0x2f8 + mov r2, #1024 ; 0x400 + bl FUN_0600055C + mov r2, #0 +_06007F4C: + add r0, r2, #1 + mov r0, r0, lsl #16 + mov r1, r0, lsr #16 + add r0, r4, r2, lsl #5 + add r0, r0, #512 ; 0x200 + strh r1, [r0, #248] ; 0xf8 + mov r2, r1 + cmp r1, #31 + bcc _06007F4C + ldr r2, _06007FDC ; =0x0000FFFF + add r0, r4, r1, lsl #5 + add r0, r0, #512 ; 0x200 + strh r2, [r0, #248] ; 0xf8 + mov r3, #0 + add r0, r4, #1536 ; 0x600 + strh r3, [r0, #248] ; 0xf8 + strh r1, [r0, #250] ; 0xfa +_06007F90: + add r1, r4, r3, lsl #2 + add r0, r1, #1792 ; 0x700 + strh r2, [r0, #12] + strh r2, [r0, #14] + add r0, r1, #1536 ; 0x600 + strh r2, [r0, #252] ; 0xfc + strh r2, [r0, #254] ; 0xfe + add r0, r3, #1 + mov r0, r0, lsl #16 + mov r3, r0, lsr #16 + cmp r3, #4 + bcc _06007F90 + ldr r0, _06007FD8 ; =0x0000071C + add r0, r4, r0 + bl FUN_06007160 + ldmia sp!, {r4, lr} + bx lr +_06007FD4: .word _0601A960 +_06007FD8: .word 0x0000071C +_06007FDC: .word 0x0000FFFF + + arm_func_start FUN_06007FE0 +FUN_06007FE0: ; 0x06007FE0 + stmdb sp!, {r4, lr} + sub sp, sp, #640 ; 0x280 + ldr r1, _0600806C ; =_0601A960 + ldr r4, [r1, #1360] ; 0x550 + ldr r0, [r0, #4] + strh r0, [r4, #246] ; 0xf6 + add r0, sp, #512 ; 0x200 + add r1, r4, #232 ; 0xe8 + bl FUN_06000564 + add r0, sp, #0 + ldrh r1, [r4, #236] ; 0xec + add r1, r1, #16 + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + add r2, sp, #512 ; 0x200 + bl FUN_060023F4 + mov r4, r0 + bl FUN_060001E8 + mov r1, #33 ; 0x21 + strh r1, [r0] + ldrh r1, [r4, #4] + cmp r1, #0 + moveq r1, #0 + streqh r1, [r0, #2] + beq _0600805C + mov r1, #1 + strh r1, [r0, #2] + ldr r1, _06008070 ; =0x00000245 + strh r1, [r0, #4] + ldrh r1, [r4, #4] + strh r1, [r0, #6] +_0600805C: + bl FUN_060001F0 + add sp, sp, #640 ; 0x280 + ldmia sp!, {r4, lr} + bx lr +_0600806C: .word _0601A960 +_06008070: .word 0x00000245 + + arm_func_start FUN_06008074 +FUN_06008074: ; 0x06008074 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + sub sp, sp, #520 ; 0x208 + add r0, r0, #4 + add r1, sp, #0 + mov r2, #6 + bl FUN_06000554 + mov r8, #0 + add r7, sp, #8 + add r6, sp, #0 + mov r5, #19 + b _060080D4 +_060080A0: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl FUN_06002C68 + mov r4, r0 + ldrh r0, [r4, #4] + cmp r0, #0 + beq _060080DC + cmp r0, #7 + beq _060080D0 + cmp r0, #12 + bne _060080DC +_060080D0: + add r8, r8, #1 +_060080D4: + cmp r8, #2 + blt _060080A0 +_060080DC: + bl FUN_060001E8 + mov r1, #34 ; 0x22 + strh r1, [r0] + ldrh r1, [r4, #4] + cmp r1, #0 + moveq r1, #0 + streqh r1, [r0, #2] + beq _06008114 + mov r1, #1 + strh r1, [r0, #2] + mov r1, #5 + strh r1, [r0, #4] + ldrh r1, [r4, #4] + strh r1, [r0, #6] +_06008114: + bl FUN_060001F0 + add sp, sp, #520 ; 0x208 + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr + + arm_func_start FUN_06008124 +FUN_06008124: ; 0x06008124 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + ldr r0, _06008270 ; =_0601A960 + ldr r7, [r0, #1356] ; 0x54c + ldr r4, [r0, #1360] ; 0x550 + mov r6, #0 + bl FUN_060001A4 + mov r5, r0 + ldr r0, [r4, #12] + cmp r0, #1 + bne _06008164 + mov r0, r6 + str r0, [r4, #12] + mov r6, #1 + bl FUN_06006978 + bl FUN_06000288 +_06008164: + mov r1, #0 + add r0, r4, #256 ; 0x100 + strh r1, [r0, #130] ; 0x82 + strh r1, [r4, #134] ; 0x86 + str r1, [r4, #20] + str r1, [r4, #16] + str r1, [r4, #28] + strh r1, [r4, #206] ; 0xce + strh r1, [r4, #194] ; 0xc2 + mov r2, #1 + strh r2, [r4, #88] ; 0x58 + strh r2, [r4, #90] ; 0x5a + mov r2, #6 + strh r2, [r4, #92] ; 0x5c + strh r1, [r4, #152] ; 0x98 + strh r1, [r4, #146] ; 0x92 + strh r1, [r4, #148] ; 0x94 + strh r1, [r4, #154] ; 0x9a + strh r1, [r4, #156] ; 0x9c + str r1, [r4, #408] ; 0x198 + strh r1, [r0, #150] ; 0x96 + add r0, r4, #412 ; 0x19c + mov r2, #80 ; 0x50 + bl FUN_06000D08 + bl FUN_06000100 + mov r0, #260 ; 0x104 + strh r0, [r4, #64] ; 0x40 + mov r0, #240 ; 0xf0 + strh r0, [r4, #66] ; 0x42 + mov r0, #1000 ; 0x3e8 + strh r0, [r4, #68] ; 0x44 + mov r1, #0 + strh r1, [r4, #70] ; 0x46 + ldr r0, _06008274 ; =0x0000020B + str r0, [r4, #72] ; 0x48 + str r1, [r4, #76] ; 0x4c + str r1, [r4, #80] ; 0x50 + str r1, [r4, #84] ; 0x54 + strh r1, [r4, #198] ; 0xc6 + mov r1, #1 + add r0, r4, #256 ; 0x100 + strh r1, [r0, #238] ; 0xee + mov r0, r5 + bl FUN_060001AC + cmp r6, #0 + beq _06008224 + ldr r0, _06008278 ; =0x0000FFFF + bl FUN_06006F48 +_06008224: + mov r2, #0 + mov r1, #32768 ; 0x8000 +_0600822C: + add r0, r7, r2, lsl #4 + str r1, [r0, #208] ; 0xd0 + add r2, r2, #1 + cmp r2, #32 + blt _0600822C + mov r0, #1 + add r1, r4, #504 ; 0x1f8 + mov r2, #256 ; 0x100 + bl FUN_0600055C + bl FUN_060009D8 + ldr r0, _0600827C ; =0x0000071C + add r0, r4, r0 + bl FUN_0600096C + bl FUN_0600698C + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06008270: .word _0601A960 +_06008274: .word 0x0000020B +_06008278: .word 0x0000FFFF +_0600827C: .word 0x0000071C + + arm_func_start FUN_06008280 +FUN_06008280: ; 0x06008280 + stmdb sp!, {r4, lr} + ldr r4, [r0, #4] + ldr r1, _060082DC ; =_0601A960 + str r4, [r1, #1356] ; 0x54c + ldr r2, [r0, #8] + str r2, [r1, #1360] ; 0x550 + str r2, [r4] + ldr r0, [r0, #12] + str r0, [r4, #8] + bl FUN_06008124 + mov r0, #15 + bl FUN_0600301C + mov r1, #1 + ldr r0, [r4] + strh r1, [r0] + bl FUN_060001E8 + mov r1, #3 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 + ldmia sp!, {r4, lr} + bx lr +_060082DC: .word _0601A960 + + arm_func_start FUN_060082E0 +FUN_060082E0: ; 0x060082E0 + stmdb sp!, {r4, lr} + ldr r0, _06008344 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + ldrh r0, [r4] + cmp r0, #1 + beq _06008314 + bl FUN_060001E8 + mov r1, #4 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + bl FUN_060001F0 + b _0600833C +_06008314: + mov r0, #1 + bl FUN_0600301C + mov r0, #0 + strh r0, [r4] + bl FUN_060001E8 + mov r1, #4 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 +_0600833C: + ldmia sp!, {r4, lr} + bx lr +_06008344: .word _0601A960 + + arm_func_start FUN_06008348 +FUN_06008348: ; 0x06008348 + mov r1, #200 ; 0xc8 + ldr r0, _06008370 ; =0x04808124 + strh r1, [r0] + mov r1, #2000 ; 0x7d0 + ldr r0, _06008374 ; =0x04808128 + strh r1, [r0] + ldr r1, _06008378 ; =0x00000202 + ldr r0, _0600837C ; =0x04808150 + strh r1, [r0] + bx lr +_06008370: .word 0x04808124 +_06008374: .word 0x04808128 +_06008378: .word 0x00000202 +_0600837C: .word 0x04808150 + + arm_func_start FUN_06008380 +FUN_06008380: ; 0x06008380 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #516 ; 0x204 + mov r7, r0 + mov r6, r1 + ldr r0, _06008550 ; =_0601A960 + ldr r5, [r0, #1360] ; 0x550 + add r0, sp, #0 + bl FUN_06002354 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _060083C4 + mov r1, #772 ; 0x304 + strh r1, [r7] + ldrh r0, [r0, #4] + strh r0, [r6] + mov r0, #0 + b _06008544 +_060083C4: + add r0, sp, #0 + bl FUN_06002380 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _060083F0 + ldr r1, _06008554 ; =0x00000302 + strh r1, [r7] + ldrh r0, [r0, #4] + strh r0, [r6] + mov r0, #0 + b _06008544 +_060083F0: + bl FUN_06008348 + add r0, sp, #0 + bl FUN_060023C4 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06008420 + ldr r1, _06008558 ; =0x00000283 + strh r1, [r7] + ldrh r0, [r0, #4] + strh r0, [r6] + mov r0, #0 + b _06008544 +_06008420: + ldrh r1, [r0, #6] + add r0, r5, #256 ; 0x100 + strh r1, [r0, #244] ; 0xf4 + mov r0, r1, lsl #15 + mov r0, r0, lsr #16 + bl FUN_06008570 + add r1, r5, #256 ; 0x100 + strh r0, [r1, #246] ; 0xf6 + add r0, sp, #0 + ldr r1, _0600855C ; =0x0000FFFF + mov r2, #40 ; 0x28 + mov r3, #5 + bl FUN_06002604 + ldr r1, _06008560 ; =0x001FF621 + mov r0, #0 + str r1, [r5, #1976] ; 0x7b8 + str r0, [r5, #1980] ; 0x7bc + mov r1, #2 + add r0, r5, #256 ; 0x100 + strh r1, [r0, #236] ; 0xec + mov r1, #1 + strh r1, [r0, #238] ; 0xee + add r0, sp, #0 + bl FUN_06002324 + mov r4, r0 + ldrh r0, [r4, #4] + cmp r0, #0 + beq _060084A8 + ldr r0, _06008564 ; =0x00000306 + strh r0, [r7] + ldrh r0, [r4, #4] + strh r0, [r6] + mov r0, #0 + b _06008544 +_060084A8: + add r0, r4, #6 + add r1, r5, #32 + mov r2, #8 + bl FUN_06000EA0 + ldrh r0, [r4, #14] + strh r0, [r5, #40] ; 0x28 + ldrh r0, [r4, #16] + strh r0, [r5, #44] ; 0x2c + ldrh r0, [r4, #18] + strh r0, [r5, #46] ; 0x2e + ldrh r0, [r4, #20] + strh r0, [r5, #42] ; 0x2a + add r0, sp, #0 + bl FUN_060023DC + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06008504 + ldr r1, _06008568 ; =0x00000281 + strh r1, [r7] + ldrh r0, [r0, #4] + strh r0, [r6] + mov r0, #0 + b _06008544 +_06008504: + add r0, r0, #6 + add r1, r5, #224 ; 0xe0 + mov r2, #6 + bl FUN_06000554 + add r0, sp, #0 + mov r1, #1 + bl FUN_06002544 + ldrh r1, [r0, #4] + cmp r1, #0 + moveq r0, #1 + beq _06008544 + ldr r1, _0600856C ; =0x00000215 + strh r1, [r7] + ldrh r0, [r0, #4] + strh r0, [r6] + mov r0, #0 +_06008544: + add sp, sp, #516 ; 0x204 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06008550: .word _0601A960 +_06008554: .word 0x00000302 +_06008558: .word 0x00000283 +_0600855C: .word 0x0000FFFF +_06008560: .word 0x001FF621 +_06008564: .word 0x00000306 +_06008568: .word 0x00000281 +_0600856C: .word 0x00000215 + + arm_func_start FUN_06008570 +FUN_06008570: ; 0x06008570 + ldr pc, _06008574 ; =FUN_03807408 +_06008574: .word FUN_03807408 + + arm_func_start FUN_06008578 +FUN_06008578: ; 0x06008578 + stmdb sp!, {r4, lr} + sub sp, sp, #8 + ldr r0, _0600861C ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + ldrh r0, [r4] + cmp r0, #1 + beq _060085B0 + bl FUN_060001E8 + mov r1, #5 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + bl FUN_060001F0 + b _06008610 +_060085B0: + add r0, sp, #0 + add r1, sp, #2 + bl FUN_06008380 + cmp r0, #0 + bne _060085F0 + bl FUN_060001E8 + mov r1, #5 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + ldrh r1, [sp] + strh r1, [r0, #4] + ldrh r1, [sp, #2] + strh r1, [r0, #6] + bl FUN_060001F0 + b _06008610 +_060085F0: + mov r0, #2 + strh r0, [r4] + bl FUN_060001E8 + mov r1, #5 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 +_06008610: + add sp, sp, #8 + ldmia sp!, {r4, lr} + bx lr +_0600861C: .word _0601A960 + + arm_func_start FUN_06008620 +FUN_06008620: ; 0x06008620 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #516 ; 0x204 + ldr r0, _060086C8 ; =_0601A960 + ldr r5, [r0, #1360] ; 0x550 + ldrh r0, [r5] + cmp r0, #2 + beq _06008658 + bl FUN_060001E8 + mov r1, #6 + strh r1, [r0] + mov r1, #3 + strh r1, [r0, #2] + bl FUN_060001F0 + b _060086BC +_06008658: + add r0, sp, #0 + bl FUN_06002398 + mov r4, r0 + ldrh r0, [r4, #4] + cmp r0, #0 + beq _0600869C + bl FUN_060001E8 + mov r1, #6 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + ldr r1, _060086CC ; =0x00000301 + strh r1, [r0, #4] + ldrh r1, [r4, #4] + strh r1, [r0, #6] + bl FUN_060001F0 + b _060086BC +_0600869C: + mov r0, #1 + strh r0, [r5] + bl FUN_060001E8 + mov r1, #6 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 +_060086BC: + add sp, sp, #516 ; 0x204 + ldmia sp!, {r4, r5, lr} + bx lr +_060086C8: .word _0601A960 +_060086CC: .word 0x00000301 + + arm_func_start FUN_060086D0 +FUN_060086D0: ; 0x060086D0 + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #4 + mov r9, r0 + mov r8, r1 + ldr r0, _060089C4 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + mov r6, #0 + ldr r5, [r9] + ldrh r1, [r4] + ldr r0, _060089C8 ; =0x0000FFF7 + add r0, r1, r0 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + cmp r0, #1 + bhi _06008718 + ands r0, r5, #11264 ; 0x2c00 + movne r6, #3 + bicne r5, r5, #11264 ; 0x2c00 +_06008718: + bl FUN_060001A4 + mov r7, r0 + cmp r8, #0 + beq _060087A0 + ldr r0, _060089CC ; =0x00003FFF + str r0, [r8] + ldrh r0, [r4, #90] ; 0x5a + strh r0, [r8, #4] + ldrh r0, [r4, #90] ; 0x5a + strh r0, [r8, #6] + ldrh r0, [r4, #90] ; 0x5a + strh r0, [r8, #8] + ldrh r0, [r4, #48] ; 0x30 + strh r0, [r8, #10] + ldrh r0, [r4, #50] ; 0x32 + strh r0, [r8, #12] + ldrh r0, [r4, #68] ; 0x44 + strh r0, [r8, #14] + ldrh r0, [r4, #70] ; 0x46 + strh r0, [r8, #16] + ldrh r0, [r4, #64] ; 0x40 + strh r0, [r8, #18] + ldrh r0, [r4, #66] ; 0x42 + strh r0, [r8, #20] + ldrh r0, [r4, #152] ; 0x98 + strh r0, [r8, #22] + ldrh r0, [r4, #146] ; 0x92 + strb r0, [r8, #24] + ldrh r0, [r4, #148] ; 0x94 + strb r0, [r8, #25] + ldrh r0, [r4, #154] ; 0x9a + strb r0, [r8, #26] + ldrh r0, [r4, #156] ; 0x9c + strb r0, [r8, #27] +_060087A0: + ands r0, r5, #1 + beq _060087B8 + ldrh r0, [r9, #4] + cmp r0, #0 + moveq r0, #16 + strh r0, [r4, #88] ; 0x58 +_060087B8: + ands r0, r5, #2 + beq _060087DC + ldrh r1, [r9, #6] + cmp r1, #0 + moveq r1, #16 + strh r1, [r4, #90] ; 0x5a + ldrsh r0, [r4, #98] ; 0x62 + cmp r0, r1 + strgth r1, [r4, #98] ; 0x62 +_060087DC: + ands r0, r5, #4 + beq _06008800 + ldrh r1, [r9, #8] + cmp r1, #0 + moveq r1, #16 + strh r1, [r4, #92] ; 0x5c + ldrsh r0, [r4, #98] ; 0x62 + cmp r0, r1 + strgth r1, [r4, #98] ; 0x62 +_06008800: + ands r0, r5, #8 + beq _06008830 + ldrh r0, [r9, #10] + add r1, r0, #1 + bic r1, r1, #1 + mov r1, r1, lsl #16 + mov r2, r1, lsr #16 + ldrh r1, [r4, #52] ; 0x34 + cmp r2, r1 + movhi r6, #6 + bhi _06008830 + bl FUN_06000030 +_06008830: + ands r0, r5, #16 + beq _06008860 + ldrh r0, [r9, #12] + add r1, r0, #1 + bic r1, r1, #1 + mov r1, r1, lsl #16 + mov r2, r1, lsr #16 + ldrh r1, [r4, #54] ; 0x36 + cmp r2, r1 + movhi r6, #6 + bhi _06008860 + bl FUN_06000000 +_06008860: + ands r0, r5, #32 + beq _060088B4 + ldrh r8, [r9, #14] + ldr r0, _060089D0 ; =0x00002710 + cmp r8, r0 + movhi r6, #6 + bhi _060088B4 + strh r8, [r4, #68] ; 0x44 + mov r1, #0 + ldr r0, _060089D4 ; =0x000082EA + umull r3, r2, r8, r0 + mla r2, r8, r1, r2 + mla r2, r1, r0, r2 + mov r0, r2, lsr #6 + mov r1, r3, lsr #6 + orr r1, r1, r2, lsl #26 + mov r2, r0, lsr #10 + mov r1, r1, lsr #10 + orr r1, r1, r0, lsl #22 + str r1, [r4, #72] ; 0x48 + str r2, [r4, #76] ; 0x4c +_060088B4: + ands r0, r5, #64 ; 0x40 + beq _06008908 + ldrh r8, [r9, #16] + ldr r0, _060089D0 ; =0x00002710 + cmp r8, r0 + movhi r6, #6 + bhi _06008908 + strh r8, [r4, #70] ; 0x46 + mov r1, #0 + ldr r0, _060089D4 ; =0x000082EA + umull r3, r2, r8, r0 + mla r2, r8, r1, r2 + mla r2, r1, r0, r2 + mov r0, r2, lsr #6 + mov r1, r3, lsr #6 + orr r1, r1, r2, lsl #26 + mov r2, r0, lsr #10 + mov r1, r1, lsr #10 + orr r1, r1, r0, lsl #22 + str r1, [r4, #80] ; 0x50 + str r2, [r4, #84] ; 0x54 +_06008908: + ands r0, r5, #128 ; 0x80 + beq _0600893C + ldrh r1, [r9, #18] + cmp r1, #190 ; 0xbe + bls _06008930 + cmp r1, #220 ; 0xdc + bcc _06008938 + ldr r0, _060089D8 ; =0x00000106 + cmp r1, r0 + bhi _06008938 +_06008930: + strh r1, [r4, #64] ; 0x40 + b _0600893C +_06008938: + mov r6, #6 +_0600893C: + ands r0, r5, #256 ; 0x100 + beq _06008970 + ldrh r1, [r9, #20] + cmp r1, #190 ; 0xbe + bls _06008964 + cmp r1, #220 ; 0xdc + bcc _0600896C + ldr r0, _060089D8 ; =0x00000106 + cmp r1, r0 + bhi _0600896C +_06008964: + strh r1, [r4, #66] ; 0x42 + b _06008970 +_0600896C: + mov r6, #6 +_06008970: + ands r0, r5, #512 ; 0x200 + ldrneh r0, [r9, #22] + strneh r0, [r4, #152] ; 0x98 + ands r0, r5, #1024 ; 0x400 + ldrneb r0, [r9, #24] + strneh r0, [r4, #146] ; 0x92 + ands r0, r5, #2048 ; 0x800 + ldrneb r0, [r9, #25] + strneh r0, [r4, #148] ; 0x94 + ands r0, r5, #4096 ; 0x1000 + ldrneb r0, [r9, #26] + strneh r0, [r4, #154] ; 0x9a + ands r0, r5, #8192 ; 0x2000 + ldrneb r0, [r9, #27] + strneh r0, [r4, #156] ; 0x9c + mov r0, r7 + bl FUN_060001AC + mov r0, r6 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} + bx lr +_060089C4: .word _0601A960 +_060089C8: .word 0x0000FFF7 +_060089CC: .word 0x00003FFF +_060089D0: .word 0x00002710 +_060089D4: .word 0x000082EA +_060089D8: .word 0x00000106 + + arm_func_start FUN_060089DC +FUN_060089DC: ; 0x060089DC + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #32 + mov r6, r0 + add r0, r6, #4 + add r1, sp, #0 + bl FUN_060086D0 + mov r5, r0 + bl FUN_060001E8 + mov r4, r0 + mov r0, #35 ; 0x23 + strh r0, [r4] + strh r5, [r4, #2] + ldr r0, [r6, #4] + str r0, [r4, #4] + add r0, sp, #0 + add r1, r4, #8 + mov r2, #28 + bl FUN_06000554 + mov r0, r4 + bl FUN_060001F0 + add sp, sp, #32 + ldmia sp!, {r4, r5, r6, lr} + bx lr + + arm_func_start FUN_06008A38 +FUN_06008A38: ; 0x06008A38 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + bl FUN_060001E8 + mov r1, #36 ; 0x24 + strh r1, [r0] + mov r1, #1 + strh r1, [r0, #2] + strh r5, [r0, #4] + strh r4, [r0, #6] + bl FUN_060001F0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + + arm_func_start FUN_06008A74 +FUN_06008A74: ; 0x06008A74 + stmfd sp!, {lr} + sub sp, sp, #516 ; 0x204 + mov r1, r0 + add r0, sp, #0 + ldr r1, [r1, #4] + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + bl FUN_06002484 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06008AAC + ldr r0, _06008AD0 ; =0x00000242 + bl FUN_06008A38 + b _06008AC4 +_06008AAC: + bl FUN_060001E8 + mov r1, #36 ; 0x24 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + bl FUN_060001F0 +_06008AC4: + add sp, sp, #516 ; 0x204 + ldmfd sp!, {lr} + bx lr +_06008AD0: .word 0x00000242 + + arm_func_start FUN_06008AD4 +FUN_06008AD4: ; 0x06008AD4 + mov r1, #1 + mov r2, #0 + ldr ip, _06008AE4 ; =FUN_06004D28 + bx ip +_06008AE4: .word FUN_06004D28 + + arm_func_start FUN_06008AE8 +FUN_06008AE8: ; 0x06008AE8 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #564 ; 0x234 + mov r7, r0 + ldr r0, _06008C64 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + add r6, sp, #48 ; 0x30 + bl FUN_060001E8 + mov r5, r0 + mov r1, #40 ; 0x28 + strh r1, [r5] + ldrh r1, [r4] + cmp r1, #11 + beq _06008B2C + mov r1, #3 + strh r1, [r5, #2] + bl FUN_060001F0 + b _06008C58 +_06008B2C: + ldr r0, [r7, #4] + cmp r0, #1 + moveq r1, #1 + movne r1, #0 + mov r0, r6 + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + mov r2, #0 + mov r3, #1 + bl FUN_06002EB0 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06008B80 + mov r1, #1 + strh r1, [r5, #2] + strh r1, [r5, #4] + ldrh r0, [r0, #4] + strh r0, [r5, #6] + mov r0, r5 + bl FUN_060001F0 + b _06008C58 +_06008B80: + ldr r0, _06008C64 ; =_0601A960 + ldr r4, [r0, #1360] ; 0x550 + ldr r0, _06008C68 ; =0x0000018A + add r0, r4, r0 + add r1, r4, #162 ; 0xa2 + mov r2, #6 + bl FUN_06000554 + add r0, sp, #48 ; 0x30 + str r0, [r4, #168] ; 0xa8 + mov r0, #0 + strh r0, [r4, #172] ; 0xac + mov r1, #1 + str r1, [r4, #24] + add r1, sp, #0 + mov r2, #48 ; 0x30 + bl FUN_0600055C + mov r0, #0 + strh r0, [sp] + strh r0, [sp, #6] + add r0, r4, #256 ; 0x100 + ldrh r0, [r0, #236] ; 0xec + cmp r0, #2 + moveq r0, #20 + movne r0, #10 + strb r0, [sp, #14] + ldr r0, _06008C68 ; =0x0000018A + add r0, r4, r0 + add r1, sp, #24 + mov r2, #6 + bl FUN_06000554 + add r0, r4, #224 ; 0xe0 + add r1, sp, #30 + mov r2, #6 + bl FUN_06000554 + add r0, sp, #48 ; 0x30 + str r0, [sp, #44] ; 0x2c + add r1, sp, #0 + bl FUN_060029D0 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _06008C48 + mov r1, #1 + strh r1, [r5, #2] + mov r1, #256 ; 0x100 + strh r1, [r5, #4] + ldrh r0, [r0, #4] + strh r0, [r5, #6] + mov r0, r5 + bl FUN_060001F0 + b _06008C58 +_06008C48: + mov r0, #0 + strh r0, [r5, #2] + mov r0, r5 + bl FUN_060001F0 +_06008C58: + add sp, sp, #564 ; 0x234 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06008C64: .word _0601A960 +_06008C68: .word 0x0000018A + + arm_func_start FUN_06008C6C +FUN_06008C6C: ; 0x06008C6C + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_060001E8 + mov r1, #41 ; 0x29 + strh r1, [r0] + mov r1, #4 + strh r1, [r0, #2] + bl FUN_060001F0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_06008C98 +FUN_06008C98: ; 0x06008C98 + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_060001E8 + mov r1, #42 ; 0x2a + strh r1, [r0] + mov r1, #4 + strh r1, [r0, #2] + bl FUN_060001F0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_06008CC4 +FUN_06008CC4: ; 0x06008CC4 + stmdb sp!, {r4, lr} + bl FUN_06008D18 + mov r4, r0 + bl FUN_06008D08 + cmp r0, #1 + beq _06008D00 + mov r0, #2 + mov r1, #22 + bl FUN_06009078 + mov r0, r4 + bl FUN_06008D10 +_06008CF0: + mov r0, r4 + bl FUN_06008D08 + cmp r0, #0 + beq _06008CF0 +_06008D00: + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_06008D08 +FUN_06008D08: ; 0x06008D08 + ldr pc, _06008D0C ; =FUN_037F90B8 +_06008D0C: .word FUN_037F90B8 + + arm_func_start FUN_06008D10 +FUN_06008D10: ; 0x06008D10 + ldr pc, _06008D14 ; =FUN_037F90CC +_06008D14: .word FUN_037F90CC + + arm_func_start FUN_06008D18 +FUN_06008D18: ; 0x06008D18 + ldr r0, _06008D28 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #24 + bx lr +_06008D28: .word 0x0380FFF4 + + arm_func_start FUN_06008D2C +FUN_06008D2C: ; 0x06008D2C + stmdb sp!, {r4, lr} + sub sp, sp, #16 + mov r4, r0 + ldr r1, [r4] + ldr r0, _06008EF0 ; =0x0380FFF4 + str r1, [r0] + mov r0, #0 + ldr r2, _06008EF4 ; =0x00000694 + bl FUN_06008F08 + bl FUN_06008F10 + ldr r2, _06008EF0 ; =0x0380FFF4 + ldr r1, [r2] + str r0, [r1, #788] ; 0x314 + ldr r1, [r4, #24] + ldr r0, [r2] + str r1, [r0, #780] ; 0x30c + ldr r0, [r4, #28] + mov r1, r0, lsr #1 + ldr r0, [r2] + str r1, [r0, #784] ; 0x310 + ldr r1, [r2] + ldr r0, [r1, #784] ; 0x310 + cmp r0, #0 + mvneq r0, #0 + streq r0, [r1, #784] ; 0x310 + add r0, r4, #32 + bl FUN_06009334 + bl FUN_06018FB0 + ldr r1, _06008EF8 ; =0x04000304 + ldrh r0, [r1] + orr r0, r0, #2 + strh r0, [r1] + mov r1, #48 ; 0x30 + ldr r0, _06008EFC ; =0x04000206 + strh r1, [r0] + mov r1, #3 + ldr r2, _06008EF0 ; =0x0380FFF4 + ldr r0, [r2] + str r1, [r0, #1676] ; 0x68c + mov r0, #60 ; 0x3c + mov r1, #2 + ldr r3, [r2] + ldr r2, _06008F00 ; =0x00000692 + add r2, r3, r2 + bl FUN_0601910C + mov r0, #62 ; 0x3e + mov r1, #2 + ldr r2, _06008EF0 ; =0x0380FFF4 + ldr r2, [r2] + add r2, r2, #1680 ; 0x690 + bl FUN_0601910C + ldr r1, [r4, #16] + ldr r2, _06008EF0 ; =0x0380FFF4 + ldr r0, [r2] + str r1, [r0, #776] ; 0x308 + ldr r1, [r4, #20] + ldr r0, [r2] + str r1, [r0, #772] ; 0x304 + ldr r0, [r4, #48] ; 0x30 + mov r1, #28 + bl FUN_06003B68 + mov r1, r0 + ldr r0, [r4, #44] ; 0x2c + bl FUN_0600C338 + bl FUN_060091F8 + bl FUN_0600F858 + bl FUN_0600FC8C + bl FUN_0600EA9C + bl FUN_0600A0D0 + add r0, sp, #8 + bl FUN_060191BC + cmp r0, #0 + beq _06008E6C + ldr r0, _06008EF0 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r1, [r0, #62] ; 0x3e + orr r1, r1, #128 ; 0x80 + strh r1, [r0, #62] ; 0x3e + b _06008E94 +_06008E6C: + bl FUN_0600A36C + bl FUN_0600C834 + bl FUN_0600B2D8 + bl FUN_0600A334 + bl FUN_0600A134 + bl FUN_0600C6B0 + bl FUN_0600C3B8 + bl FUN_0600A2C4 + bl FUN_0600B80C + bl FUN_0600B36C +_06008E94: + ldr r0, [r4, #8] + str r0, [sp] + ldr r0, [r4, #12] + str r0, [sp, #4] + ldr r0, _06008EF0 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #24 + ldr r1, _06008F04 ; =FUN_06009138 + mov r2, #0 + ldr r3, [r4, #4] + bl FUN_06000974 + ldr r0, _06008EF0 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #24 + bl FUN_0600097C + bl FUN_0600CA10 + ldr r0, _06008EF0 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #62] ; 0x3e + add sp, sp, #16 + ldmia sp!, {r4, lr} + bx lr +_06008EF0: .word 0x0380FFF4 +_06008EF4: .word 0x00000694 +_06008EF8: .word 0x04000304 +_06008EFC: .word 0x04000206 +_06008F00: .word 0x00000692 +_06008F04: .word FUN_06009138 + + arm_func_start FUN_06008F08 +FUN_06008F08: ; 0x06008F08 + ldr pc, _06008F0C ; =FUN_037FB360 +_06008F0C: .word FUN_037FB360 + + arm_func_start FUN_06008F10 +FUN_06008F10: ; 0x06008F10 + ldr pc, _06008F14 ; =FUN_037F8A24 +_06008F14: .word FUN_037F8A24 + + arm_func_start FUN_06008F18 +FUN_06008F18: ; 0x06008F18 + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_06009E28 + bl FUN_0600B36C + bl FUN_0600A334 + bl FUN_060092D8 + bl FUN_060091F8 + ldr r0, _06008F68 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, [r1, #796] ; 0x31c + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #32] + bl FUN_0600C338 + bl FUN_0600F858 + bl FUN_0600FC8C + bl FUN_0600EA9C + bl FUN_0600B80C + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06008F68: .word 0x0380FFF4 + + arm_func_start FUN_06008F6C +FUN_06008F6C: ; 0x06008F6C + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r1, [r0] + cmp r1, #0 + beq _06008F9C + ldr r0, _06008FA8 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #512 ; 0x200 + bl FUN_060095B4 + mov r0, #2 + mov r1, #11 + bl FUN_06009078 +_06008F9C: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06008FA8: .word 0x0380FFF4 + + arm_func_start FUN_06008FAC +FUN_06008FAC: ; 0x06008FAC + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _06008FEC ; =0x0380FFF4 + ldr r0, [r0] + ldr r0, [r0, #776] ; 0x308 + add r1, sp, #0 + mov r2, #1 + bl FUN_06000780 + add r0, sp, #0 + bl FUN_06008F6C + mov r0, #3 + mov r1, #12 + bl FUN_06009078 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06008FEC: .word 0x0380FFF4 + + arm_func_start FUN_06008FF0 +FUN_06008FF0: ; 0x06008FF0 + stmdb sp!, {r4, r5, r6, lr} + mov r4, r0 + ldr r0, _0600905C ; =0x0380FFF4 + ldr r5, [r0] + ldr r0, _06009060 ; =0x01000010 + bl FUN_06009068 + mov r6, r4, lsl #1 + ldrh r4, [r5, r6] + ldr r2, _06009064 ; =0x0000FFFF + cmp r4, r2 + beq _0600904C + add lr, r5, #188 ; 0xbc + mov ip, #0 + mov r3, r4, lsl #3 + add r1, lr, r4, lsl #3 + strh ip, [r1, #2] + ldrh r1, [lr, r3] + cmp r1, r2 + streqh r2, [r5, r6] + addeq r1, r5, r6 + streqh r2, [r1, #8] + strneh r1, [r5, r6] + strneh r2, [lr, r3] +_0600904C: + bl FUN_06009070 + mov r0, r4 + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600905C: .word 0x0380FFF4 +_06009060: .word 0x01000010 +_06009064: .word 0x0000FFFF + + arm_func_start FUN_06009068 +FUN_06009068: ; 0x06009068 + ldr pc, _0600906C ; =FUN_037F8858 +_0600906C: .word FUN_037F8858 + + arm_func_start FUN_06009070 +FUN_06009070: ; 0x06009070 + ldr pc, _06009074 ; =FUN_037F8894 +_06009074: .word FUN_037F8894 + + arm_func_start FUN_06009078 +FUN_06009078: ; 0x06009078 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + mov r6, r1 + ldr r0, _0600912C ; =0x0380FFF4 + ldr r5, [r0] + add r4, r5, #188 ; 0xbc + ldr r0, _06009130 ; =0x01000010 + bl FUN_06009068 + mov ip, r6, lsl #3 + add r2, r4, r6, lsl #3 + ldrh r1, [r2, #2] + cmp r1, #0 + bne _060090F0 + mov r1, #1 + strh r1, [r2, #2] + ldr r3, _06009134 ; =0x0000FFFF + strh r3, [r4, ip] + mov r2, r7, lsl #1 + add r1, r5, r7, lsl #1 + ldrh r1, [r1, #8] + cmp r1, r3 + streqh r6, [r5, r2] + addne r1, r5, r1, lsl #3 + strneh r6, [r1, #188] ; 0xbc + add r1, r5, r7, lsl #1 + strh r6, [r1, #8] + ldrh r1, [r5, #16] + cmp r7, r1 + strlth r7, [r5, #16] +_060090F0: + bl FUN_06009070 + cmp r7, #3 + beq _06009120 + ldrh r0, [r5, #18] + cmp r0, #3 + bne _06009120 + ldr r0, _0600912C ; =0x0380FFF4 + ldr r0, [r0] + ldr r0, [r0, #776] ; 0x308 + mov r1, #0 + mov r2, r1 + bl FUN_060006F8 +_06009120: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_0600912C: .word 0x0380FFF4 +_06009130: .word 0x01000010 +_06009134: .word 0x0000FFFF + + arm_func_start FUN_06009138 +FUN_06009138: ; 0x06009138 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + + arm_func_start FUN_0600913C +FUN_0600913C: ; 0x0600913C + sub sp, sp, #8 + ldr r8, _060091EC ; =0x0380FFF4 + ldr r9, [r8] + mov r7, #0 + strh r7, [r9, #16] + strh r7, [r9, #20] + add r6, sp, #0 + ldr r5, _060091F0 ; =0x01000010 + add r4, r9, #16 + ldr sl, _060091F4 ; =0x0000FFFF +_06009164: + ldr r0, [r8] + ldr r0, [r0, #776] ; 0x308 + mov r1, r6 + mov r2, r7 + bl FUN_06000780 + cmp r0, #0 + beq _06009188 + mov r0, r6 + bl FUN_06008F6C +_06009188: + mov r0, r5 + bl FUN_06009068 + ldrh r1, [r9, #16] + strh r1, [r9, #18] + ldrh r1, [r9, #18] + mov r1, r1, lsl #1 + ldrh r1, [r9, r1] + cmp r1, sl + bne _060091C0 + ldrh r1, [r4] + add r1, r1, #1 + strh r1, [r4] + bl FUN_06009070 + b _06009164 +_060091C0: + bl FUN_06009070 + ldrh r0, [r9, #18] + bl FUN_06008FF0 + strh r0, [r9, #20] + ldrh r0, [r9, #20] + add r0, r9, r0, lsl #3 + ldr r0, [r0, #192] ; 0xc0 + mov lr, pc + bx r0 + strh sl, [r9, #20] + b _06009164 +_060091EC: .word 0x0380FFF4 +_060091F0: .word 0x01000010 +_060091F4: .word 0x0000FFFF + + arm_func_start FUN_060091F8 +FUN_060091F8: ; 0x060091F8 + stmdb sp!, {r4, lr} + ldr r0, _06009278 ; =0x0380FFF4 + ldr r4, [r0] + mov r3, #0 + strh r3, [r4, #16] + strh r3, [r4, #18] + ldr r2, _0600927C ; =0x0000FFFF +_06009214: + mov r1, r3, lsl #1 + add r0, r4, r3, lsl #1 + strh r2, [r0, #8] + ldrh r0, [r0, #8] + strh r0, [r4, r1] + add r3, r3, #1 + cmp r3, #4 + bcc _06009214 + mov lr, #0 + ldr ip, _0600927C ; =0x0000FFFF + mov r2, lr + ldr r1, _06009280 ; =_06019320 +_06009244: + add r3, r4, lr, lsl #3 + strh ip, [r3, #188] ; 0xbc + strh r2, [r3, #190] ; 0xbe + ldr r0, [r1, lr, lsl #2] + str r0, [r3, #192] ; 0xc0 + add lr, lr, #1 + cmp lr, #24 + bcc _06009244 + mov r0, #3 + mov r1, #12 + bl FUN_06009078 + ldmia sp!, {r4, lr} + bx lr +_06009278: .word 0x0380FFF4 +_0600927C: .word 0x0000FFFF +_06009280: .word _06019320 + + arm_func_start FUN_06009284 +FUN_06009284: ; 0x06009284 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + ldr r6, [r7] + ldrh r0, [r7, #8] + cmp r0, #0 + beq _060092CC + mvn r4, #0 + b _060092C4 +_060092A8: + mov r0, r6 + bl FUN_06009434 + mov r5, r0 + mov r0, r7 + mov r1, r6 + bl FUN_060096A0 + mov r6, r5 +_060092C4: + cmp r6, r4 + bne _060092A8 +_060092CC: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr + + arm_func_start FUN_060092D8 +FUN_060092D8: ; 0x060092D8 + stmdb sp!, {r4, lr} + ldr r0, _06009330 ; =0x0380FFF4 + ldr r0, [r0] + add r4, r0, #380 ; 0x17c + add r0, r4, #24 + bl FUN_06009284 + add r0, r4, #36 ; 0x24 + bl FUN_06009284 + add r0, r4, #48 ; 0x30 + bl FUN_06009284 + add r0, r4, #60 ; 0x3c + bl FUN_06009284 + add r0, r4, #72 ; 0x48 + bl FUN_06009284 + add r0, r4, #84 ; 0x54 + bl FUN_06009284 + add r0, r4, #96 ; 0x60 + bl FUN_06009284 + add r0, r4, #108 ; 0x6c + bl FUN_06009284 + ldmia sp!, {r4, lr} + bx lr +_06009330: .word 0x0380FFF4 + + arm_func_start FUN_06009334 +FUN_06009334: ; 0x06009334 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r1, _06009414 ; =0x0380FFF4 + ldr r2, [r1] + add r5, r2, #380 ; 0x17c + add r4, r2, #836 ; 0x344 + ldr r1, [r0] + str r1, [r2, #380] ; 0x17c + ldr r1, [r0, #4] + str r1, [r5, #4] + ldr r0, [r0, #8] + str r0, [r5, #8] + add r0, r5, #12 + mov r1, #2 + bl FUN_06009418 + add r0, r5, #24 + mov r1, #3 + bl FUN_06009418 + add r0, r5, #36 ; 0x24 + mov r1, #4 + bl FUN_06009418 + add r0, r5, #48 ; 0x30 + mov r1, #5 + bl FUN_06009418 + add r0, r5, #60 ; 0x3c + mov r1, #6 + bl FUN_06009418 + add r0, r5, #72 ; 0x48 + mov r1, #7 + bl FUN_06009418 + add r0, r5, #84 ; 0x54 + mov r1, #8 + bl FUN_06009418 + add r0, r5, #96 ; 0x60 + mov r1, #9 + bl FUN_06009418 + add r0, r5, #108 ; 0x6c + mov r1, #10 + bl FUN_06009418 + add r0, r5, #120 ; 0x78 + mov r1, #11 + bl FUN_06009418 + add r0, r5, #132 ; 0x84 + mov r1, #12 + bl FUN_06009418 + add r0, r5, #12 + mov r1, #129 ; 0x81 + bl FUN_06009724 + add r0, r0, #12 + str r0, [r4, #156] ; 0x9c + mov r0, #0 + strh r0, [r4, #160] ; 0xa0 + strh r0, [r4, #164] ; 0xa4 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06009414: .word 0x0380FFF4 + + arm_func_start FUN_06009418 +FUN_06009418: ; 0x06009418 + mvn r2, #0 + str r2, [r0] + str r2, [r0, #4] + mov r2, #0 + strh r2, [r0, #8] + strh r1, [r0, #10] + bx lr + + arm_func_start FUN_06009434 +FUN_06009434: ; 0x06009434 + ldr r0, [r0, #4] + bx lr + + arm_func_start FUN_0600943C +FUN_0600943C: ; 0x0600943C + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + ldrh r1, [r4, #10] + ldr r0, _0600951C ; =0x0000BF1D + cmp r1, r0 + movne r0, #1 + bne _06009510 + ldrh r1, [r4, #8] + ldrh r0, [r5, #10] + cmp r1, r0 + movne r0, #2 + bne _06009510 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + ldrh r1, [r5, #8] + sub r1, r1, #1 + strh r1, [r5, #8] + ldrh r1, [r5, #8] + cmp r1, #0 + mvneq r1, #0 + streq r1, [r5] + streq r1, [r5, #4] + beq _06009500 + ldr r1, [r5] + cmp r4, r1 + bne _060094C4 + ldr r1, [r4, #4] + str r1, [r5] + mvn r2, #0 + ldr r1, [r5] + str r2, [r1] + b _06009500 +_060094C4: + ldr r1, [r5, #4] + cmp r4, r1 + bne _060094E8 + ldr r1, [r4] + str r1, [r5, #4] + mvn r2, #0 + ldr r1, [r5, #4] + str r2, [r1, #4] + b _06009500 +_060094E8: + ldr r2, [r4] + ldr r1, [r4, #4] + str r2, [r1] + ldr r2, [r4, #4] + ldr r1, [r4] + str r2, [r1, #4] +_06009500: + mov r1, #0 + strh r1, [r4, #8] + bl FUN_06009070 + mov r0, #0 +_06009510: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_0600951C: .word 0x0000BF1D + + arm_func_start FUN_06009520 +FUN_06009520: ; 0x06009520 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + ldrh r1, [r4, #10] + ldr r0, _060095B0 ; =0x0000BF1D + cmp r1, r0 + movne r0, #1 + bne _060095A4 + ldrh r0, [r4, #8] + cmp r0, #0 + movne r0, #2 + bne _060095A4 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + ldrh r1, [r5, #8] + cmp r1, #0 + mvneq r1, #0 + streq r1, [r4] + streq r4, [r5] + ldrne r1, [r5, #4] + strne r1, [r4] + strne r4, [r1, #4] + mvn r1, #0 + str r1, [r4, #4] + ldrh r1, [r5, #10] + strh r1, [r4, #8] + str r4, [r5, #4] + ldrh r1, [r5, #8] + add r1, r1, #1 + strh r1, [r5, #8] + bl FUN_06009070 + mov r0, #0 +_060095A4: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_060095B0: .word 0x0000BF1D + + arm_func_start FUN_060095B4 +FUN_060095B4: ; 0x060095B4 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + ldrh r1, [r5, #8] + cmp r1, #0 + mvneq r1, #0 + streq r1, [r4] + streq r4, [r5] + ldrne r1, [r5, #4] + strne r1, [r4] + strne r4, [r1, #4] + mvn r1, #0 + str r1, [r4, #4] + ldrh r1, [r5, #10] + strh r1, [r4, #8] + ldr r1, _06009628 ; =0x0000BF1D + strh r1, [r4, #10] + str r4, [r5, #4] + ldrh r1, [r5, #8] + add r1, r1, #1 + strh r1, [r5, #8] + bl FUN_06009070 + mov r0, #0 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06009628: .word 0x0000BF1D + + arm_func_start FUN_0600962C +FUN_0600962C: ; 0x0600962C + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r5, r0 + mov r7, r1 + mov r6, r2 + ldrh r1, [r6, #10] + ldr r0, _0600969C ; =0x0000BF1D + cmp r1, r0 + movne r0, #1 + bne _06009690 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + mov r4, r0 + mov r0, r5 + mov r1, r6 + bl FUN_0600943C + movs r5, r0 + bne _06009684 + mov r0, r7 + mov r1, r6 + bl FUN_06009520 + mov r5, r0 +_06009684: + mov r0, r4 + bl FUN_06009070 + mov r0, r5 +_06009690: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_0600969C: .word 0x0000BF1D + + arm_func_start FUN_060096A0 +FUN_060096A0: ; 0x060096A0 + stmdb sp!, {r4, r5, r6, lr} + mov r4, r1 + ldr r2, _0600971C ; =0x0380FFF4 + ldr r2, [r2] + add r6, r2, #380 ; 0x17c + ldrh r3, [r4, #10] + ldr r2, _06009720 ; =0x0000BF1D + cmp r3, r2 + movne r0, #1 + bne _06009714 + bl FUN_0600943C + movs r5, r0 + bne _06009710 + ldr r0, [r6] + cmp r0, #0 + beq _060096EC + cmp r0, #1 + beq _06009700 + b _06009710 +_060096EC: + ldr r0, [r6, #4] + ldr r1, [r6, #8] + mov r2, r4 + bl FUN_06001F8C + b _06009710 +_06009700: + mov r0, r4 + ldr r1, [r6, #8] + mov lr, pc + bx r1 +_06009710: + mov r0, r5 +_06009714: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600971C: .word 0x0380FFF4 +_06009720: .word 0x0000BF1D + + arm_func_start FUN_06009724 +FUN_06009724: ; 0x06009724 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + ldr r0, _060097C4 ; =0x0380FFF4 + ldr r0, [r0] + add r3, r0, #380 ; 0x17c + cmp r1, #0 + moveq r0, #0 + beq _060097B8 + add r2, r1, #12 + ldr r0, [r3] + cmp r0, #0 + beq _06009764 + cmp r0, #1 + beq _06009778 + b _0600978C +_06009764: + ldr r0, [r3, #4] + ldr r1, [r3, #8] + bl FUN_060014F4 + mov r4, r0 + b _0600978C +_06009778: + mov r0, r2 + ldr r1, [r3, #4] + mov lr, pc + bx r1 + mov r4, r0 +_0600978C: + cmp r4, #0 + moveq r0, #0 + beq _060097B8 + ldr r0, _060097C8 ; =0x0000BF1D + strh r0, [r4, #10] + mov r0, #0 + strh r0, [r4, #8] + mov r0, r5 + mov r1, r4 + bl FUN_06009520 + mov r0, r4 +_060097B8: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_060097C4: .word 0x0380FFF4 +_060097C8: .word 0x0000BF1D + + arm_func_start FUN_060097CC +FUN_060097CC: ; 0x060097CC + stmdb sp!, {r4, lr} + ldr r0, _0600981C ; =0x0380FFF4 + ldr r0, [r0] + add r4, r0, #380 ; 0x17c + bl FUN_0600C9E0 + add r0, r4, #12 + ldr r1, _0600981C ; =0x0380FFF4 + ldr r1, [r1] + ldr r1, [r1, #792] ; 0x318 + sub r1, r1, #12 + bl FUN_060096A0 + add r0, r4, #12 + ldr r1, _0600981C ; =0x0380FFF4 + ldr r1, [r1] + ldr r1, [r1, #992] ; 0x3e0 + sub r1, r1, #12 + bl FUN_060096A0 + bl FUN_0600217C + ldmia sp!, {r4, lr} + bx lr +_0600981C: .word 0x0380FFF4 + + arm_func_start FUN_06009820 +FUN_06009820: ; 0x06009820 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r2, _060098BC ; =0x0380FFF4 + ldr r0, [r2] + add r0, r0, #768 ; 0x300 + ldrh r1, [r0, #62] ; 0x3e + orr r1, r1, #32768 ; 0x8000 + strh r1, [r0, #62] ; 0x3e + ldr r0, [r2] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #76] ; 0x4c + cmp r0, #0 + beq _06009890 + bl FUN_0600A4EC + ldr r2, _060098BC ; =0x0380FFF4 + ldr r0, [r2] + add r0, r0, #1024 ; 0x400 + ldrh r1, [r0, #4] + cmp r1, #0 + beq _0600988C + mov r1, #0 + strh r1, [r0, #4] + mov r1, #6 + ldr r0, [r2] + ldr r0, [r0, #1056] ; 0x420 + strh r1, [r0, #4] + bl FUN_06010228 +_0600988C: + bl FUN_0600B36C +_06009890: + mov r0, #3 + bl FUN_06008FF0 + ldr r1, _060098C0 ; =0x0000FFFF + cmp r0, r1 + bne _06009890 + mov r0, #3 + mov r1, #23 + bl FUN_06009078 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_060098BC: .word 0x0380FFF4 +_060098C0: .word 0x0000FFFF + + arm_func_start FUN_060098C4 +FUN_060098C4: ; 0x060098C4 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r0, _06009944 ; =0x0380FFF4 + ldr r1, [r0] + add r5, r1, #836 ; 0x344 + ldrh r0, [r5, #176] ; 0xb0 + cmp r0, #0 + beq _06009938 + add r0, r1, #392 ; 0x188 + mov r1, #18 + bl FUN_06009724 + movs r4, r0 + beq _06009938 + ldr r0, _06009948 ; =0x00000186 + strh r0, [r4, #12] + mov r0, #1 + strh r0, [r4, #14] + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + ldrh r1, [r5, #176] ; 0xb0 + strh r1, [r4, #16] + mov r1, #0 + strh r1, [r5, #176] ; 0xb0 + bl FUN_06009070 + ldr r0, _06009944 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, r4 + bl FUN_0600F8DC +_06009938: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06009944: .word 0x0380FFF4 +_06009948: .word 0x00000186 + + arm_func_start FUN_0600994C +FUN_0600994C: ; 0x0600994C + stmdb sp!, {r4, lr} + mov r4, r0 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + ldr r1, _0600998C ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r2, [r1, #244] ; 0xf4 + orr r2, r2, r4 + strh r2, [r1, #244] ; 0xf4 + bl FUN_06009070 + mov r0, #2 + mov r1, #21 + bl FUN_06009078 + ldmia sp!, {r4, lr} + bx lr +_0600998C: .word 0x0380FFF4 + + arm_func_start FUN_06009990 +FUN_06009990: ; 0x06009990 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r0, _06009A8C ; =0x0380FFF4 + ldr r1, [r0] + add r5, r1, #836 ; 0x344 + ldr r0, _06009A90 ; =0x0000042C + add r4, r1, r0 + add r0, r1, #768 ; 0x300 + ldrh r0, [r0, #80] ; 0x50 + cmp r0, #1 + beq _060099CC + cmp r0, #2 + beq _06009A00 + cmp r0, #3 + b _06009A3C +_060099CC: + add r0, r4, #120 ; 0x78 + bl FUN_06009B28 + cmp r0, #0 + beq _060099E4 + bl FUN_06009AE4 + bl FUN_0601477C +_060099E4: + add r0, r4, #40 ; 0x28 + bl FUN_06009B28 + cmp r0, #0 + beq _06009A3C + add r0, r4, #40 ; 0x28 + bl FUN_06009A98 + b _06009A3C +_06009A00: + add r0, r4, #100 ; 0x64 + bl FUN_06009B28 + add r0, r4, #40 ; 0x28 + bl FUN_06009B28 + cmp r0, #0 + beq _06009A3C + ldrh r0, [r4, #40] ; 0x28 + cmp r0, #0 + beq _06009A28 + bl FUN_06009AE4 +_06009A28: + ldrh r0, [r5, #106] ; 0x6a + bl FUN_06013E48 + ldrh r0, [r5, #184] ; 0xb8 + add r0, r0, #1 + strh r0, [r5, #184] ; 0xb8 +_06009A3C: + add r0, r4, #20 + bl FUN_06009B28 + cmp r0, #0 + beq _06009A54 + add r0, r4, #20 + bl FUN_06009A98 +_06009A54: + mov r0, r4 + bl FUN_06009B28 + cmp r0, #0 + beq _06009A6C + mov r0, r4 + bl FUN_06009A98 +_06009A6C: + ldr r1, _06009A94 ; =0x04808004 + ldrh r0, [r1] + cmp r0, #0 + moveq r0, #1 + streqh r0, [r1] + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06009A8C: .word 0x0380FFF4 +_06009A90: .word 0x0000042C +_06009A94: .word 0x04808004 + + arm_func_start FUN_06009A98 +FUN_06009A98: ; 0x06009A98 + stmdb sp!, {r4, lr} + mov r4, r0 + ldrh r0, [r4] + cmp r0, #0 + beq _06009AD8 + bl FUN_06009AE4 + ldr r0, [r4, #8] + ldr r1, [r4, #12] + sub r1, r1, #16 + bl FUN_06015B0C + ldr r0, _06009AE0 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r1, [r0, #252] ; 0xfc + add r1, r1, #1 + strh r1, [r0, #252] ; 0xfc +_06009AD8: + ldmia sp!, {r4, lr} + bx lr +_06009AE0: .word 0x0380FFF4 + + arm_func_start FUN_06009AE4 +FUN_06009AE4: ; 0x06009AE4 + mov r1, #0 + ldr r0, _06009B20 ; =0x04808004 + strh r1, [r0] + mov r2, #16 + ldr r1, _06009B24 ; =0x04808214 + b _06009B14 +_06009AFC: + ldrh r0, [r1] + cmp r0, #0 + bxeq lr + cmp r0, #9 + bxeq lr + sub r2, r2, #1 +_06009B14: + cmp r2, #0 + bne _06009AFC + bx lr +_06009B20: .word 0x04808004 +_06009B24: .word 0x04808214 + + arm_func_start FUN_06009B28 +FUN_06009B28: ; 0x06009B28 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r3, [r0, #8] + sub lr, r3, #4 + ldrh r2, [r3, #-4] + ldr r1, _06009BB0 ; =0x0000B6B8 + cmp r2, r1 + bne _06009B58 + ldrh r2, [lr, #2] + ldr r1, _06009BB4 ; =0x00001D46 + cmp r2, r1 + beq _06009BA0 +_06009B58: + mov ip, #1 + strh ip, [r3, #10] + ldr r3, _06009BB0 ; =0x0000B6B8 + strh r3, [lr] + ldr r2, _06009BB4 ; =0x00001D46 + strh r2, [lr, #2] + ldr r0, [r0, #8] + add r1, r0, #12 + strh r3, [r0, #12] + strh r2, [r1, #2] + ldr r0, _06009BB8 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r1, [r0, #250] ; 0xfa + add r1, r1, #1 + strh r1, [r0, #250] ; 0xfa + mov r0, ip + b _06009BA4 +_06009BA0: + mov r0, #0 +_06009BA4: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06009BB0: .word 0x0000B6B8 +_06009BB4: .word 0x00001D46 +_06009BB8: .word 0x0380FFF4 + + arm_func_start FUN_06009BBC +FUN_06009BBC: ; 0x06009BBC + and r2, r1, #15 + mov r3, r2, lsl #1 + ldr r2, _06009C2C ; =_060193E4 + ldrh ip, [r2, r3] + ldr r3, _06009C30 ; =0x00000FFF + and r1, r3, r1, asr #4 + mov r1, r1, lsl #16 + eor ip, ip, r1, lsr #16 + and r1, r0, #15 + mov r1, r1, lsl #1 + ldrh r1, [r2, r1] + eor r1, ip, r1 + mov r1, r1, lsl #16 + mov ip, r1, lsr #16 + and r1, r3, ip, asr #4 + mov r1, r1, lsl #16 + and r3, ip, #15 + mov r3, r3, lsl #1 + ldrh r3, [r2, r3] + eor r1, r3, r1, lsr #16 + mov r0, r0, asr #4 + and r0, r0, #15 + mov r0, r0, lsl #1 + ldrh r0, [r2, r0] + eor r0, r1, r0 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + bx lr +_06009C2C: .word _060193E4 +_06009C30: .word 0x00000FFF + + arm_func_start FUN_06009C34 +FUN_06009C34: ; 0x06009C34 + ldr r0, _06009C60 ; =0x0380FFF4 + ldr r0, [r0] + add r3, r0, #1520 ; 0x5f0 + ldrh r2, [r3, #2] + ldrh r1, [r3, #4] + add r0, r0, #1280 ; 0x500 + ldrh r0, [r0, #240] ; 0xf0 + mla r0, r1, r0, r2 + strh r0, [r3, #4] + ldrh r0, [r3, #4] + bx lr +_06009C60: .word 0x0380FFF4 + + arm_func_start FUN_06009C64 +FUN_06009C64: ; 0x06009C64 + ldr r1, _06009C78 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #1280 ; 0x500 + strh r0, [r1, #244] ; 0xf4 + bx lr +_06009C78: .word 0x0380FFF4 + + arm_func_start FUN_06009C7C +FUN_06009C7C: ; 0x06009C7C + ldr r2, _06009CA8 ; =0x0380FFF4 + ldr r3, [r2] + add ip, r3, #1520 ; 0x5f0 + ldr r2, _06009CAC ; =0x0000FFF8 + and r0, r0, r2 + add r2, r0, #5 + add r0, r3, #1280 ; 0x500 + strh r2, [r0, #240] ; 0xf0 + orr r0, r1, #1 + strh r0, [ip, #2] + bx lr +_06009CA8: .word 0x0380FFF4 +_06009CAC: .word 0x0000FFF8 + + arm_func_start FUN_06009CB0 +FUN_06009CB0: ; 0x06009CB0 + ands r1, r0, #1 + ldrneh r0, [r0, #-1] + movne r0, r0, asr #8 + andne r0, r0, #255 ; 0xff + ldreqh r0, [r0] + andeq r0, r0, #255 ; 0xff + and r0, r0, #255 ; 0xff + bx lr + + arm_func_start FUN_06009CD0 +FUN_06009CD0: ; 0x06009CD0 + ands r2, r0, #1 + ldrneh r2, [r0, #-1] + andne r2, r2, #255 ; 0xff + orrne r1, r2, r1, lsl #8 + strneh r1, [r0, #-1] + ldreqh r2, [r0] + andeq r2, r2, #65280 ; 0xff00 + andeq r1, r1, #255 ; 0xff + orreq r1, r2, r1 + streqh r1, [r0] + bx lr + + arm_func_start FUN_06009CFC +FUN_06009CFC: ; 0x06009CFC + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r2 + mov r4, r3 + mov r2, #18 + bl FUN_06009D88 + cmp r4, #0 + beq _06009D30 + add r0, r6, #40 ; 0x28 + mov r1, r5 + add r2, r4, #1 + mov r2, r2, lsr #1 + bl FUN_06009D88 +_06009D30: + ldmia sp!, {r4, r5, r6, lr} + bx lr + + arm_func_start FUN_06009D38 +FUN_06009D38: ; 0x06009D38 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r2 + mov r4, r3 + mov r2, #18 + bl FUN_06009D88 + cmp r4, #0 + beq _06009D6C + add r0, r6, #36 ; 0x24 + mov r1, r5 + add r2, r4, #1 + mov r2, r2, lsr #1 + bl FUN_06009D88 +_06009D6C: + ldmia sp!, {r4, r5, r6, lr} + bx lr + + arm_func_start FUN_06009D74 +FUN_06009D74: ; 0x06009D74 + add r2, r2, #1 + mov r2, r2, lsr #1 + ldr ip, _06009D84 ; =FUN_06009D88 + bx ip +_06009D84: .word FUN_06009D88 + + arm_func_start FUN_06009D88 +FUN_06009D88: ; 0x06009D88 + mov r3, r0 + mov r0, r1 + mov r1, r3 + mov r2, r2, lsl #1 + ldr ip, _06009DA0 ; =FUN_037FB318 + bx ip +_06009DA0: .word FUN_037FB318 + + arm_func_start FUN_06009DA4 +FUN_06009DA4: ; 0x06009DA4 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + mov r6, r1 + add r0, r2, #1 + bic r2, r0, #1 + add r1, r6, r2 + ldr r0, _06009E20 ; =0x04805F60 + cmp r1, r0 + subhi r5, r0, r6 + subhi r4, r2, r5 + movls r5, r2 + movls r4, #0 + mov r0, r6 + mov r1, r7 + mov r2, r5 + bl FUN_06000EA0 + cmp r4, #0 + beq _06009E14 + add r1, r6, r5 + ldr r0, _06009E24 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #222] ; 0xde + sub r0, r1, r0 + add r1, r7, r5 + mov r2, r4 + bl FUN_06000EA0 +_06009E14: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06009E20: .word 0x04805F60 +_06009E24: .word 0x0380FFF4 + + arm_func_start FUN_06009E28 +FUN_06009E28: ; 0x06009E28 + ldr r0, _06009E40 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06009E44 ; =0x00000634 + add r0, r1, r0 + ldr ip, _06009E48 ; =FUN_037FA650 + bx ip +_06009E40: .word 0x0380FFF4 +_06009E44: .word 0x00000634 +_06009E48: .word FUN_037FA650 + + arm_func_start FUN_06009E4C +FUN_06009E4C: ; 0x06009E4C + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + ldr r0, _06009ED0 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06009ED4 ; =0x00000634 + add r0, r1, r0 + bl FUN_060009D0 + mov r3, #0 + ldr r0, _06009ED8 ; =0x000082EA + umull ip, r2, r5, r0 + mla r2, r5, r3, r2 + mla r2, r3, r0, r2 + mov r1, r2, lsr #6 + mov r0, ip, lsr #6 + orr r0, r0, r2, lsl #26 + mov r2, #1000 ; 0x3e8 + bl FUN_06009EDC + mov r3, r0 + mov r2, r1 + mov r0, #0 + str r0, [sp] + ldr r0, _06009ED0 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06009ED4 ; =0x00000634 + add r0, r1, r0 + mov r1, r3 + mov r3, r4 + bl FUN_0600144C + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06009ED0: .word 0x0380FFF4 +_06009ED4: .word 0x00000634 +_06009ED8: .word 0x000082EA + + arm_func_start FUN_06009EDC +FUN_06009EDC: ; 0x06009EDC + ldr pc, _06009EE0 ; =_ll_udiv +_06009EE0: .word _ll_udiv + + arm_func_start FUN_06009EE4 +FUN_06009EE4: ; 0x06009EE4 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + ldr r0, _06009F50 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06009F54 ; =0x00000634 + add r0, r1, r0 + bl FUN_060009D0 + mov r2, #0 + str r2, [sp] + ldr r0, _06009F50 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06009F54 ; =0x00000634 + add r0, r1, r0 + ldr r1, _06009F58 ; =0x000082EA + umull ip, r3, r5, r1 + mla r3, r5, r2, r3 + mla r3, r2, r1, r3 + mov r2, r3, lsr #6 + mov r1, ip, lsr #6 + orr r1, r1, r3, lsl #26 + mov r3, r4 + bl FUN_0600144C + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06009F50: .word 0x0380FFF4 +_06009F54: .word 0x00000634 +_06009F58: .word 0x000082EA + + arm_func_start FUN_06009F5C +FUN_06009F5C: ; 0x06009F5C + stmdb sp!, {r4, lr} + ldr r0, _06009FD8 ; =0x0380FFF4 + ldr r4, [r0] + ldr r0, [r4, #1004] ; 0x3ec + add r0, r0, #1 + str r0, [r4, #1004] ; 0x3ec + mov r0, #1 + mov r1, #10 + bl FUN_06009078 + mov r0, #2 + mov r1, #18 + bl FUN_06009078 + mov r0, #1 + mov r1, #17 + bl FUN_06009078 + add r0, r4, #256 ; 0x100 + ldrh r0, [r0, #252] ; 0xfc + cmp r0, #0 + beq _06009FB4 + mov r0, #2 + mov r1, #19 + bl FUN_06009078 +_06009FB4: + add r0, r4, #768 ; 0x300 + ldrh r0, [r0, #244] ; 0xf4 + cmp r0, #0 + beq _06009FD0 + mov r0, #2 + mov r1, #21 + bl FUN_06009078 +_06009FD0: + ldmia sp!, {r4, lr} + bx lr +_06009FD8: .word 0x0380FFF4 + + arm_func_start FUN_06009FDC +FUN_06009FDC: ; 0x06009FDC + ldr r0, _06009FF4 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06009FF8 ; =0x00000608 + add r0, r1, r0 + ldr ip, _06009FFC ; =FUN_037FA650 + bx ip +_06009FF4: .word 0x0380FFF4 +_06009FF8: .word 0x00000608 +_06009FFC: .word FUN_037FA650 + + arm_func_start FUN_0600A000 +FUN_0600A000: ; 0x0600A000 + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #16 + mov r5, r0 + mov r4, r1 + ldr r0, _0600A084 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _0600A088 ; =0x00000608 + add r0, r1, r0 + bl FUN_060009D0 + mov r1, #0 + ldr r0, _0600A08C ; =0x000082EA + umull r3, r2, r5, r0 + mla r2, r5, r1, r2 + mla r2, r1, r0, r2 + mov r6, r3, lsr #6 + orr r6, r6, r2, lsl #26 + bl FUN_06000E98 + mov r5, #0 + adds ip, r6, r0 + adc r2, r1, #0 + str r4, [sp, #4] + str r5, [sp, #8] + mov r3, r6 + str r5, [sp] + ldr r0, _0600A084 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _0600A088 ; =0x00000608 + add r0, r1, r0 + mov r1, ip + bl FUN_0600A090 + add sp, sp, #16 + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600A084: .word 0x0380FFF4 +_0600A088: .word 0x00000608 +_0600A08C: .word 0x000082EA + + arm_func_start FUN_0600A090 +FUN_0600A090: ; 0x0600A090 + ldr pc, _0600A094 ; =FUN_037FA6E0 +_0600A094: .word FUN_037FA6E0 + + arm_func_start FUN_0600A098 +FUN_0600A098: ; 0x0600A098 + ldr r1, _0600A0A4 ; =_0600A0C4 + ldr ip, _0600A0A8 ; =FUN_0600F7A0 + bx ip +_0600A0A4: .word _0600A0C4 +_0600A0A8: .word FUN_0600F7A0 + + arm_func_start FUN_0600A0AC +FUN_0600A0AC: ; 0x0600A0AC + mov r1, #1000 ; 0x3e8 + mul r1, r0, r1 + mov r0, r1 + ldr ip, _0600A0C0 ; =FUN_0600A098 + bx ip +_0600A0C0: .word FUN_0600A098 +_0600A0C4: + mov r1, #0 + + arm_func_start FUN_0600A0C8 +FUN_0600A0C8: ; 0x0600A0C8 + str r1, [r0] + bx lr + + arm_func_start FUN_0600A0D0 +FUN_0600A0D0: ; 0x0600A0D0 + stmdb sp!, {r4, lr} + ldr r0, _0600A120 ; =0x0380FFF4 + ldr r4, [r0] + bl FUN_0600A12C + cmp r0, #0 + addeq r0, r4, #768 ; 0x300 + ldreqh r1, [r0, #62] ; 0x3e + orreq r1, r1, #64 ; 0x40 + streqh r1, [r0, #62] ; 0x3e + beq _0600A118 + ldr r0, _0600A124 ; =0x00000608 + add r0, r4, r0 + bl FUN_06000A04 + ldr r0, _0600A128 ; =0x00000634 + add r0, r4, r0 + bl FUN_06000A04 + add r0, r4, #1632 ; 0x660 + bl FUN_06000A04 +_0600A118: + ldmia sp!, {r4, lr} + bx lr +_0600A120: .word 0x0380FFF4 +_0600A124: .word 0x00000608 +_0600A128: .word 0x00000634 + + arm_func_start FUN_0600A12C +FUN_0600A12C: ; 0x0600A12C + ldr pc, _0600A130 ; =FUN_037FA910 +_0600A130: .word FUN_037FA910 + + arm_func_start FUN_0600A134 +FUN_0600A134: ; 0x0600A134 + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #12 + ldr r0, _0600A2B4 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _0600A2B8 ; =0x000005F8 + add r7, r1, r0 + mov r8, #0 + str r8, [sp, #4] + mov r6, #2 + add r5, sp, #4 + ldr r4, _0600A2BC ; =_06019404 +_0600A160: + mov r0, r8, lsl #1 + add r0, r0, #68 ; 0x44 + mov r1, r6 + mov r2, r5 + bl FUN_0601910C + ldr r1, [sp, #4] + mov r0, r8, lsl #1 + ldrh r0, [r4, r0] + add r0, r0, #75497472 ; 0x4800000 + add r0, r0, #32768 ; 0x8000 + strh r1, [r0] + add r8, r8, #1 + cmp r8, #16 + bcc _0600A160 + ldrh r0, [r7, #2] + mov r1, r0, lsr #7 + mov r0, r1, lsl #8 + str r0, [sp] + ldrh r0, [r7, #2] + and r0, r0, #127 ; 0x7f + orr r1, r0, r1, lsl #8 + str r1, [sp] + ldr r0, _0600A2C0 ; =0x04808184 + strh r1, [r0] + mov r5, #206 ; 0xce + ldrh r0, [r7, #2] + and r0, r0, #127 ; 0x7f + add r0, r0, #7 + mov r1, #8 + bl FUN_06001840 + mov r8, r0 + ldrh r4, [r7, #4] + ldrh r0, [r7] + cmp r0, #3 + bne _0600A250 + add r0, r4, #206 ; 0xce + mov r1, #1 + add r2, r7, #8 + bl FUN_0601910C + mov r9, #0 + mov r8, r9 + mov r7, #1 + add r6, sp, #0 + b _0600A244 +_0600A210: + str r8, [sp] + mov r0, r5 + mov r1, r7 + mov r2, r6 + bl FUN_0601910C + ldr r1, [sp] + mov r0, r9, lsl #8 + add r0, r0, #327680 ; 0x50000 + orr r0, r1, r0 + str r0, [sp] + bl FUN_0600A450 + add r9, r9, #1 + add r5, r5, #1 +_0600A244: + cmp r9, r4 + bcc _0600A210 + b _0600A2A8 +_0600A250: + mov r0, #0 + str r0, [sp] + add r6, sp, #0 + b _0600A2A0 +_0600A260: + mov r0, r5 + mov r1, r8 + mov r2, r6 + bl FUN_0601910C + ldr r0, [sp] + bl FUN_0600A450 + ldrh r0, [r7] + cmp r0, #2 + bne _0600A298 + ldr r1, [sp] + mov r0, r1, lsr #18 + cmp r0, #9 + biceq r0, r1, #31744 ; 0x7c00 + streq r0, [r7, #12] +_0600A298: + sub r4, r4, #1 + add r5, r5, r8 +_0600A2A0: + cmp r4, #0 + bne _0600A260 +_0600A2A8: + add sp, sp, #12 + ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} + bx lr +_0600A2B4: .word 0x0380FFF4 +_0600A2B8: .word 0x000005F8 +_0600A2BC: .word _06019404 +_0600A2C0: .word 0x04808184 + + arm_func_start FUN_0600A2C4 +FUN_0600A2C4: ; 0x0600A2C4 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r1, #256 ; 0x100 + ldr r0, _0600A330 ; =0x04808160 + strh r1, [r0] + mov r6, #100 ; 0x64 + mov r7, #0 + str r7, [sp] + mov r5, #1 + add r4, sp, #0 +_0600A2EC: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_0601910C + mov r0, r7 + ldr r1, [sp] + bl FUN_0600A478 + add r6, r6, #1 + add r7, r7, #1 + cmp r7, #105 ; 0x69 + bcc _0600A2EC + mov r0, #90 ; 0x5a + mov r1, #2 + bl FUN_0600A478 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_0600A330: .word 0x04808160 + + arm_func_start FUN_0600A334 +FUN_0600A334: ; 0x0600A334 + mov ip, #0 + ldr r2, _0600A368 ; =_06019474 +_0600A33C: + mov r3, ip, lsl #2 + add r0, r2, ip, lsl #2 + ldrh r1, [r0, #2] + ldrh r0, [r2, r3] + add r0, r0, #75497472 ; 0x4800000 + add r0, r0, #32768 ; 0x8000 + strh r1, [r0] + add ip, ip, #1 + cmp ip, #25 + bcc _0600A33C + bx lr +_0600A368: .word _06019474 + + arm_func_start FUN_0600A36C +FUN_0600A36C: ; 0x0600A36C + stmdb sp!, {r4, lr} + ldr r0, _0600A3D8 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _0600A3DC ; =0x000005F8 + add r4, r1, r0 + mov r0, #0 + mov r1, r4 + mov r2, #16 + bl FUN_0600055C + mov r0, #64 ; 0x40 + mov r1, #1 + mov r2, r4 + bl FUN_0601910C + mov r0, #65 ; 0x41 + mov r1, #1 + add r2, r4, #2 + bl FUN_0601910C + mov r0, #66 ; 0x42 + mov r1, #1 + add r2, r4, #4 + bl FUN_0601910C + mov r0, #67 ; 0x43 + mov r1, #1 + add r2, r4, #6 + bl FUN_0601910C + ldmia sp!, {r4, lr} + bx lr +_0600A3D8: .word 0x0380FFF4 +_0600A3DC: .word 0x000005F8 + + arm_func_start FUN_0600A3E0 +FUN_0600A3E0: ; 0x0600A3E0 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + mov r8, #100 ; 0x64 + mov r6, #0 + str r6, [sp] + mov r7, r6 + mov r5, #1 + add r4, sp, #0 +_0600A400: + mov r0, r8 + mov r1, r5 + mov r2, r4 + bl FUN_0601910C + cmp r7, #1 + ldreq r0, [sp] + andeq r0, r0, #128 ; 0x80 + streq r0, [sp] + ldr r0, [sp] + and r0, r0, #255 ; 0xff + mov r1, r6 + bl FUN_06009BBC + mov r6, r0 + add r8, r8, #1 + add r7, r7, #1 + cmp r7, #105 ; 0x69 + bcc _0600A400 + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr + + arm_func_start FUN_0600A450 +FUN_0600A450: ; 0x0600A450 + ldr r1, _0600A46C ; =0x0480817E + strh r0, [r1] + mov r1, r0, lsr #16 + ldr r0, _0600A470 ; =0x0480817C + strh r1, [r0] + ldr ip, _0600A474 ; =_0600F6B0 + bx ip +_0600A46C: .word 0x0480817E +_0600A470: .word 0x0480817C +_0600A474: .word _0600F6B0 + + arm_func_start FUN_0600A478 +FUN_0600A478: ; 0x0600A478 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r2, _0600A4B0 ; =0x0480815A + strh r1, [r2] + orr r1, r0, #20480 ; 0x5000 + ldr r0, _0600A4B4 ; =0x04808158 + strh r1, [r0] + bl FUN_0600F6E4 + cmp r0, #0 + mvnne r0, #0 + moveq r0, #0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600A4B0: .word 0x0480815A +_0600A4B4: .word 0x04808158 + + arm_func_start FUN_0600A4B8 +FUN_0600A4B8: ; 0x0600A4B8 + stmfd sp!, {lr} + sub sp, sp, #4 + orr r1, r0, #24576 ; 0x6000 + ldr r0, _0600A4E4 ; =0x04808158 + strh r1, [r0] + bl FUN_0600F6E4 + ldr r0, _0600A4E8 ; =0x0480815C + ldrh r0, [r0] + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600A4E4: .word 0x04808158 +_0600A4E8: .word 0x0480815C + + arm_func_start FUN_0600A4EC +FUN_0600A4EC: ; 0x0600A4EC + stmdb sp!, {r4, lr} + ldr r0, _0600A57C ; =0x0380FFF4 + ldr r0, [r0] + add r4, r0, #836 ; 0x344 + bl FUN_06009FDC + bl FUN_06009E28 + mov r0, #32 + bl FUN_0600AF68 + mov r1, #0 + strh r1, [r4, #164] ; 0xa4 + strh r1, [r4, #18] + ldr r0, _0600A580 ; =0x04808012 + strh r1, [r0] + ldr r0, _0600A584 ; =0x04808004 + strh r1, [r0] + ldr r0, _0600A588 ; =0x048080EA + strh r1, [r0] + ldr r0, _0600A58C ; =0x048080E8 + strh r1, [r0] + ldr r0, _0600A590 ; =0x04808008 + strh r1, [r0] + ldr r0, _0600A594 ; =0x0480800A + strh r1, [r0] + ldrh r0, [r4, #12] + cmp r0, #1 + bne _0600A558 + bl FUN_06014AE8 +_0600A558: + ldr r1, _0600A598 ; =0x0000FFFF + ldr r0, _0600A59C ; =0x048080AC + strh r1, [r0] + ldr r0, _0600A5A0 ; =0x048080B4 + strh r1, [r0] + bl FUN_06014D24 + bl FUN_060092D8 + ldmia sp!, {r4, lr} + bx lr +_0600A57C: .word 0x0380FFF4 +_0600A580: .word 0x04808012 +_0600A584: .word 0x04808004 +_0600A588: .word 0x048080EA +_0600A58C: .word 0x048080E8 +_0600A590: .word 0x04808008 +_0600A594: .word 0x0480800A +_0600A598: .word 0x0000FFFF +_0600A59C: .word 0x048080AC +_0600A5A0: .word 0x048080B4 + + arm_func_start FUN_0600A5A4 +FUN_0600A5A4: ; 0x0600A5A4 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #12 + ldr r0, _0600A9B8 ; =0x0380FFF4 + ldr r0, [r0] + add r7, r0, #836 ; 0x344 + add r4, r0, #796 ; 0x31c + bl FUN_0600A4EC + ldr r2, _0600A9BC ; =0x04808044 + ldrh r1, [r2] + ldrh r0, [r2] + add r0, r1, r0, lsl #8 + ldrh r1, [r2] + bl FUN_06009C7C + mov r0, #1 + strh r0, [r7, #124] ; 0x7c + ldrh r0, [r4, #30] + mov r0, r0, lsl #29 + mov r0, r0, lsr #31 + cmp r0, #1 + ldreqh r0, [r7, #124] ; 0x7c + orreq r0, r0, #32 + streqh r0, [r7, #124] ; 0x7c + ldrh r0, [r4, #24] + cmp r0, #0 + ldrneh r0, [r7, #124] ; 0x7c + orrne r0, r0, #16 + strneh r0, [r7, #124] ; 0x7c + mov r2, #0 + strh r2, [r7, #18] + mov r1, #32768 ; 0x8000 + ldr r0, _0600A9C0 ; =0x04808032 + strh r1, [r0] + ldr r1, _0600A9C4 ; =0x0000FFFF + ldr r0, _0600A9C8 ; =0x04808134 + strh r1, [r0] + ldr r0, _0600A9CC ; =0x0480802A + strh r2, [r0] + ldr r0, _0600A9D0 ; =0x04808028 + strh r2, [r0] + mov r1, #15 + ldr r0, _0600A9D4 ; =0x04808038 + strh r1, [r0] + bl FUN_0600EA10 + bl FUN_06018E38 + bl FUN_0601373C + bl FUN_06015EC8 + mov r1, #32768 ; 0x8000 + ldr r0, _0600A9D8 ; =0x04808030 + strh r1, [r0] + ldr r1, _0600A9C4 ; =0x0000FFFF + ldr r0, _0600A9DC ; =0x04808010 + strh r1, [r0] + ldr r1, _0600A9E0 ; =0x00001FFF + ldr r0, _0600A9E4 ; =0x048081AE + strh r1, [r0] + ldr r0, _0600A9B8 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1536 ; 0x600 + ldrh r0, [r0, #144] ; 0x90 + ands r0, r0, #8 + movne r1, #1024 ; 0x400 + ldrne r0, _0600A9E8 ; =0x048081AA + strneh r1, [r0] + moveq r1, #0 + ldreq r0, _0600A9E8 ; =0x048081AA + streqh r1, [r0] + mov r5, #0 + ldr r0, _0600A9EC ; =0x04808008 + strh r5, [r0] + ldr r3, _0600A9F0 ; =0x0480800A + strh r5, [r3] + ldrh r1, [r7, #12] + cmp r1, #4 + addls pc, pc, r1, lsl #2 + b _0600A97C + b _0600A6E4 + b _0600A728 + b _0600A84C + b _0600A8E0 + b _0600A958 +_0600A6E4: + mov r2, #63 ; 0x3f + ldr r1, _0600A9F4 ; =0x04808012 + strh r2, [r1] + ldr r2, _0600A9C4 ; =0x0000FFFF + ldr r1, _0600A9F8 ; =0x048080D0 + strh r2, [r1] + mov r2, #8 + ldr r1, _0600A9FC ; =0x048080E0 + strh r2, [r1] + strh r5, [r0] + strh r5, [r3] + ldr r0, _0600AA00 ; =0x048080E8 + strh r5, [r0] + mov r1, #1 + ldr r0, _0600AA04 ; =0x04808004 + strh r1, [r0] + b _0600A97C +_0600A728: + ldr r2, _0600AA08 ; =0x0000703F + ldr r1, _0600A9F4 ; =0x04808012 + strh r2, [r1] + ldr r2, _0600A9E0 ; =0x00001FFF + ldr r1, _0600A9E4 ; =0x048081AE + strh r2, [r1] + ldr r2, _0600AA0C ; =0x00000301 + ldr r1, _0600A9F8 ; =0x048080D0 + strh r2, [r1] + mov r2, #13 + ldr r1, _0600A9FC ; =0x048080E0 + strh r2, [r1] + mov r1, #57344 ; 0xe000 + strh r1, [r0] + mov r1, #1 + ldr r0, _0600AA04 ; =0x04808004 + strh r1, [r0] + add r6, sp, #0 + ldr r0, _0600AA10 ; =0x048080F8 + ldrh r0, [r0] + strh r0, [r6] + ldr r0, _0600AA14 ; =0x048080FA + ldrh r0, [r0] + strh r0, [r6, #2] + ldr r0, _0600AA18 ; =0x048080FC + ldrh r0, [r0] + strh r0, [r6, #4] + ldr r0, _0600AA1C ; =0x048080FE + ldrh r0, [r0] + strh r0, [r6, #6] + ldrh r0, [r7, #110] ; 0x6e + mov r4, r0, lsl #10 + ldr r0, [sp] + ldr r1, [sp, #4] + mov r2, r4 + mov r3, r5 + bl FUN_06009EDC + str r0, [sp] + str r1, [sp, #4] + mov r2, #1 + adds ip, r0, r2 + adc r3, r1, #0 + str ip, [sp] + str r3, [sp, #4] + umull r1, r0, ip, r4 + mla r0, ip, r5, r0 + mla r0, r3, r4, r0 + str r1, [sp] + str r0, [sp, #4] + ldrh r1, [r6, #6] + ldr r0, _0600AA20 ; =0x048080F6 + strh r1, [r0] + ldrh r1, [r6, #4] + ldr r0, _0600AA24 ; =0x048080F4 + strh r1, [r0] + ldrh r1, [r6, #2] + ldr r0, _0600AA28 ; =0x048080F2 + strh r1, [r0] + ldrh r0, [r6] + orr r1, r0, #1 + ldr r0, _0600AA2C ; =0x048080F0 + strh r1, [r0] + ldr r0, _0600AA00 ; =0x048080E8 + strh r2, [r0] + ldr r0, _0600AA30 ; =0x048080EA + strh r2, [r0] + mov r0, #64 ; 0x40 + bl FUN_0600AF68 + bl FUN_06014B10 + mov r1, #2 + ldr r0, _0600AA34 ; =0x048080AE + strh r1, [r0] + b _0600A97C +_0600A84C: + ldr r0, _0600AA38 ; =0x0000E0BF + ldr r1, _0600A9F4 ; =0x04808012 + strh r0, [r1] + ldr r0, _0600A9B8 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1536 ; 0x600 + ldrh r0, [r0, #144] ; 0x90 + ands r0, r0, #32 + beq _0600A88C + ldrh r0, [r1] + orr r0, r0, #64 ; 0x40 + strh r0, [r1] + ldr r1, _0600A9E8 ; =0x048081AA + ldrh r0, [r1] + orr r0, r0, #104 ; 0x68 + strh r0, [r1] +_0600A88C: + ldrh r0, [r7, #100] ; 0x64 + ands r0, r0, #1 + ldrne r1, _0600AA3C ; =0x00000581 + ldrne r0, _0600A9F8 ; =0x048080D0 + strneh r1, [r0] + ldreq r1, _0600AA40 ; =0x00000181 + ldreq r0, _0600A9F8 ; =0x048080D0 + streqh r1, [r0] + mov r1, #11 + ldr r0, _0600A9FC ; =0x048080E0 + strh r1, [r0] + mov r1, #1 + ldr r0, _0600AA04 ; =0x04808004 + strh r1, [r0] + ldr r0, _0600AA00 ; =0x048080E8 + strh r1, [r0] + ldr r0, _0600AA30 ; =0x048080EA + strh r1, [r0] + mov r0, #32 + bl FUN_0600AF68 + b _0600A97C +_0600A8E0: + ldr r1, _0600A9C4 ; =0x0000FFFF + ldr r0, _0600A9DC ; =0x04808010 + strh r1, [r0] + ldr r1, _0600AA44 ; =0x0000C03F + ldr r0, _0600A9F4 ; =0x04808012 + strh r1, [r0] + ldrh r0, [r7, #100] ; 0x64 + ands r0, r0, #1 + ldrne r1, _0600AA48 ; =0x00000401 + ldrne r0, _0600A9F8 ; =0x048080D0 + strneh r1, [r0] + moveq r1, #1 + ldreq r0, _0600A9F8 ; =0x048080D0 + streqh r1, [r0] + mov r1, #11 + ldr r0, _0600A9FC ; =0x048080E0 + strh r1, [r0] + mov r1, #1 + ldr r0, _0600AA04 ; =0x04808004 + strh r1, [r0] + ldr r0, _0600AA00 ; =0x048080E8 + strh r1, [r0] + ldr r0, _0600AA30 ; =0x048080EA + strh r1, [r0] + mov r1, #0 + ldr r0, _0600AA4C ; =0x04808048 + strh r1, [r0] + mov r0, #32 + bl FUN_0600AF68 + b _0600A97C +_0600A958: + ldr r0, _0600A9F4 ; =0x04808012 + strh r5, [r0] + ldr r0, _0600A9E4 ; =0x048081AE + strh r5, [r0] + mov r1, #1 + ldr r0, _0600AA04 ; =0x04808004 + strh r1, [r0] + mov r0, #32 + bl FUN_0600AF68 +_0600A97C: + mov r1, #0 + ldr r0, _0600AA4C ; =0x04808048 + strh r1, [r0] + bl FUN_0600B21C + mov r0, #2 + ldr r1, _0600AA34 ; =0x048080AE + strh r0, [r1] + ldrh r1, [r7, #14] + cmp r1, #1 + bne _0600A9A8 + bl FUN_0600B3F4 +_0600A9A8: + bl FUN_0600F82C + add sp, sp, #12 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_0600A9B8: .word 0x0380FFF4 +_0600A9BC: .word 0x04808044 +_0600A9C0: .word 0x04808032 +_0600A9C4: .word 0x0000FFFF +_0600A9C8: .word 0x04808134 +_0600A9CC: .word 0x0480802A +_0600A9D0: .word 0x04808028 +_0600A9D4: .word 0x04808038 +_0600A9D8: .word 0x04808030 +_0600A9DC: .word 0x04808010 +_0600A9E0: .word 0x00001FFF +_0600A9E4: .word 0x048081AE +_0600A9E8: .word 0x048081AA +_0600A9EC: .word 0x04808008 +_0600A9F0: .word 0x0480800A +_0600A9F4: .word 0x04808012 +_0600A9F8: .word 0x048080D0 +_0600A9FC: .word 0x048080E0 +_0600AA00: .word 0x048080E8 +_0600AA04: .word 0x04808004 +_0600AA08: .word 0x0000703F +_0600AA0C: .word 0x00000301 +_0600AA10: .word 0x048080F8 +_0600AA14: .word 0x048080FA +_0600AA18: .word 0x048080FC +_0600AA1C: .word 0x048080FE +_0600AA20: .word 0x048080F6 +_0600AA24: .word 0x048080F4 +_0600AA28: .word 0x048080F2 +_0600AA2C: .word 0x048080F0 +_0600AA30: .word 0x048080EA +_0600AA34: .word 0x048080AE +_0600AA38: .word 0x0000E0BF +_0600AA3C: .word 0x00000581 +_0600AA40: .word 0x00000181 +_0600AA44: .word 0x0000C03F +_0600AA48: .word 0x00000401 +_0600AA4C: .word 0x04808048 + + arm_func_start FUN_0600AA50 +FUN_0600AA50: ; 0x0600AA50 + ldr r0, _0600AA98 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r1, [r0, #48] ; 0x30 + cmp r1, #0 + beq _0600AA74 + cmp r1, #1 + beq _0600AA88 + b _0600AA90 +_0600AA74: + ldrh r0, [r0, #164] ; 0xa4 + ands r0, r0, #1 + beq _0600AA90 + mov r0, #10 + bx lr +_0600AA88: + mov r0, #10 + bx lr +_0600AA90: + mov r0, #20 + bx lr +_0600AA98: .word 0x0380FFF4 + + arm_func_start FUN_0600AA9C +FUN_0600AA9C: ; 0x0600AA9C + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + mov r4, r0 + mov sl, r1 + mov r0, #0 + strh r0, [sl] + strh r0, [sl, #2] + add r0, r4, #1 + bl FUN_06009CB0 + mov r8, r0 + mov r9, #0 + ldr r6, _0600AB54 ; =_060194D8 + add r7, r4, #2 + add r4, sl, #2 + mov r5, #1 + b _0600AB44 +_0600AAD8: + add r0, r7, r9 + bl FUN_06009CB0 + and r1, r0, #127 ; 0x7f + sub r1, r1, #1 + cmp r1, #120 ; 0x78 + bcs _0600AB24 + mov r1, r1, lsl #1 + ldrh r3, [r6, r1] + cmp r3, #255 ; 0xff + beq _0600AB24 + mov r2, r5, lsl r3 + ldrh r1, [r4] + orr r1, r1, r5, lsl r3 + strh r1, [r4] + ands r0, r0, #128 ; 0x80 + ldrneh r0, [sl] + orrne r0, r0, r2 + strneh r0, [sl] + b _0600AB40 +_0600AB24: + ldrh r1, [r4] + orr r1, r1, #32768 ; 0x8000 + strh r1, [r4] + ands r0, r0, #128 ; 0x80 + ldrneh r0, [sl] + orrne r0, r0, #32768 ; 0x8000 + strneh r0, [sl] +_0600AB40: + add r9, r9, #1 +_0600AB44: + cmp r9, r8 + bcc _0600AAD8 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + bx lr +_0600AB54: .word _060194D8 + + arm_func_start FUN_0600AB58 +FUN_0600AB58: ; 0x0600AB58 + mov r2, #1 + ldr r1, _0600AB74 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #44] ; 0x2c + and r0, r1, r2, lsl r0 + bx lr +_0600AB74: .word 0x0380FFF4 + + arm_func_start FUN_0600AB78 +FUN_0600AB78: ; 0x0600AB78 + ldrh r3, [r0, #4] + ldrh r2, [r1, #4] + cmp r3, r2 + bne _0600ABAC + ldrh r3, [r0, #2] + ldrh r2, [r1, #2] + cmp r3, r2 + bne _0600ABAC + ldrh r2, [r0] + ldrh r0, [r1] + cmp r2, r0 + moveq r0, #1 + bxeq lr +_0600ABAC: + mov r0, #0 + bx lr + + arm_func_start FUN_0600ABB4 +FUN_0600ABB4: ; 0x0600ABB4 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + mov r9, r0 + mov r8, r1 + ldr r0, _0600AC80 ; =0x0380FFF4 + ldr r0, [r0] + add r2, r0, #836 ; 0x344 + cmp r9, #32 + movhi r0, #0 + bhi _0600AC78 + ldrh r1, [r2, #30] + cmp r1, #0 + moveq r0, #1 + beq _0600AC78 + add r0, r0, #1024 ; 0x400 + ldrh r0, [r0, #4] + cmp r0, #19 + bne _0600AC0C + cmp r9, r1 + movcc r0, #0 + bcc _0600AC78 + mov r9, r1 + b _0600AC18 +_0600AC0C: + cmp r9, r1 + movne r0, #0 + bne _0600AC78 +_0600AC18: + add r7, r2, #32 + add r6, r2, #64 ; 0x40 + mov r5, #0 + b _0600AC6C +_0600AC28: + mov r0, r6 + bl FUN_06009CB0 + mov r4, r0 + add r6, r6, #1 + mov r0, r8 + bl FUN_06009CB0 + mov sl, r0 + add r8, r8, #1 + mov r0, r7 + bl FUN_06009CB0 + add r7, r7, #1 + orr r1, sl, r4 + orr r0, r0, r4 + cmp r1, r0 + movne r0, #0 + bne _0600AC78 + add r5, r5, #1 +_0600AC6C: + cmp r5, r9 + bcc _0600AC28 + mov r0, #1 +_0600AC78: + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + bx lr +_0600AC80: .word 0x0380FFF4 + + arm_func_start FUN_0600AC84 +FUN_0600AC84: ; 0x0600AC84 + ldr r0, _0600AE7C ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _0600AE80 ; =0x0000053C + add r1, r1, r0 + ldr r0, _0600AE84 ; =0x048081B0 + ldrh r2, [r0] + ldr r3, [r1, #80] ; 0x50 + and r2, r2, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #80] ; 0x50 + ldrh ip, [r0, #2] + ldr r2, [r1, #76] ; 0x4c + add r2, r2, ip, asr #8 + str r2, [r1, #76] ; 0x4c + ldr r3, [r1, #92] ; 0x5c + and r2, ip, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #92] ; 0x5c + ldrh ip, [r0, #4] + ldr r2, [r1, #88] ; 0x58 + add r2, r2, ip, asr #8 + str r2, [r1, #88] ; 0x58 + ldr r3, [r1, #84] ; 0x54 + and r2, ip, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #84] ; 0x54 + ldrh ip, [r0, #6] + ldr r2, [r1, #96] ; 0x60 + add r2, r2, ip, asr #8 + str r2, [r1, #96] ; 0x60 + ldr r3, [r1, #56] ; 0x38 + and r2, ip, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #56] ; 0x38 + ldrh r2, [r0, #8] + ldr r3, [r1, #72] ; 0x48 + and r2, r2, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #72] ; 0x48 + ldrh r2, [r0, #10] + ldr r3, [r1, #32] + and r2, r2, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #32] + ldrh ip, [r0, #12] + ldr r2, [r1, #48] ; 0x30 + add r2, r2, ip, asr #8 + str r2, [r1, #48] ; 0x30 + ldr r3, [r1, #68] ; 0x44 + and r2, ip, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #68] ; 0x44 + ldrh ip, [r0, #14] + ldr r3, [r1, #60] ; 0x3c + and r2, ip, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #60] ; 0x3c + ldr r2, [r1, #64] ; 0x40 + add r2, r2, ip, asr #8 + str r2, [r1, #64] ; 0x40 + ldrh r2, [r0, #16] + ldr r3, [r1, #12] + and r2, r2, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #12] + ldrh r3, [r0, #32] + ldr r2, [r1, #120] ; 0x78 + add r2, r2, r3, asr #8 + str r2, [r1, #120] ; 0x78 + ldrh ip, [r0, #34] ; 0x22 + ldr r3, [r1, #124] ; 0x7c + and r2, ip, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #124] ; 0x7c + ldr r2, [r1, #128] ; 0x80 + add r2, r2, ip, asr #8 + str r2, [r1, #128] ; 0x80 + ldrh ip, [r0, #36] ; 0x24 + ldr r3, [r1, #132] ; 0x84 + and r2, ip, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #132] ; 0x84 + ldr r2, [r1, #136] ; 0x88 + add r2, r2, ip, asr #8 + str r2, [r1, #136] ; 0x88 + ldrh ip, [r0, #38] ; 0x26 + ldr r3, [r1, #140] ; 0x8c + and r2, ip, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #140] ; 0x8c + ldr r2, [r1, #144] ; 0x90 + add r2, r2, ip, asr #8 + str r2, [r1, #144] ; 0x90 + ldrh ip, [r0, #40] ; 0x28 + ldr r3, [r1, #148] ; 0x94 + and r2, ip, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #148] ; 0x94 + ldr r2, [r1, #152] ; 0x98 + add r2, r2, ip, asr #8 + str r2, [r1, #152] ; 0x98 + ldrh ip, [r0, #42] ; 0x2a + ldr r3, [r1, #156] ; 0x9c + and r2, ip, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #156] ; 0x9c + ldr r2, [r1, #160] ; 0xa0 + add r2, r2, ip, asr #8 + str r2, [r1, #160] ; 0xa0 + ldrh ip, [r0, #44] ; 0x2c + ldr r3, [r1, #164] ; 0xa4 + and r2, ip, #255 ; 0xff + add r2, r3, r2 + str r2, [r1, #164] ; 0xa4 + ldr r2, [r1, #168] ; 0xa8 + add r2, r2, ip, asr #8 + str r2, [r1, #168] ; 0xa8 + ldrh r3, [r0, #46] ; 0x2e + ldr r2, [r1, #172] ; 0xac + and r0, r3, #255 ; 0xff + add r0, r2, r0 + str r0, [r1, #172] ; 0xac + ldr r0, [r1, #176] ; 0xb0 + add r0, r0, r3, asr #8 + str r0, [r1, #176] ; 0xb0 + bx lr +_0600AE7C: .word 0x0380FFF4 +_0600AE80: .word 0x0000053C +_0600AE84: .word 0x048081B0 + + arm_func_start FUN_0600AE88 +FUN_0600AE88: ; 0x0600AE88 + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_0600AC84 + mov r0, #0 + ldr r1, _0600AEBC ; =0x0380FFF4 + ldr r2, [r1] + ldr r1, _0600AEC0 ; =0x0000053C + add r1, r2, r1 + mov r2, #180 ; 0xb4 + bl FUN_0600AEC4 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600AEBC: .word 0x0380FFF4 +_0600AEC0: .word 0x0000053C + + arm_func_start FUN_0600AEC4 +FUN_0600AEC4: ; 0x0600AEC4 + ldr pc, _0600AEC8 ; =FUN_037FB334 +_0600AEC8: .word FUN_037FB334 + + arm_func_start FUN_0600AECC +FUN_0600AECC: ; 0x0600AECC + ldrh ip, [r1] + strh ip, [r0] + ldrh ip, [r1, #2] + strh ip, [r0, #2] + ldrh r1, [r1, #4] + strh r1, [r0, #4] + ldrh r1, [r2] + strh r1, [r0, #6] + ldrh r1, [r2, #2] + strh r1, [r0, #8] + ldrh r1, [r2, #4] + strh r1, [r0, #10] + ldrh r1, [r3] + strh r1, [r0, #12] + ldrh r1, [r3, #2] + strh r1, [r0, #14] + ldrh r1, [r3, #4] + strh r1, [r0, #16] + bx lr +_0600AF18: + ldrh r3, [r1] + strh r3, [r0] + ldrh r3, [r1, #2] + strh r3, [r0, #2] + ldrh r1, [r1, #4] + strh r1, [r0, #4] + ldrh r1, [r2] + strh r1, [r0, #6] + ldrh r1, [r2, #2] + strh r1, [r0, #8] + ldrh r1, [r2, #4] + strh r1, [r0, #10] + bx lr + + arm_func_start FUN_0600AF4C +FUN_0600AF4C: ; 0x0600AF4C + ldrh r2, [r1] + strh r2, [r0] + ldrh r2, [r1, #2] + strh r2, [r0, #2] + ldrh r1, [r1, #4] + strh r1, [r0, #4] + bx lr + + arm_func_start FUN_0600AF68 +FUN_0600AF68: ; 0x0600AF68 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + ldr r0, _0600AFFC ; =0x0380FFF4 + ldr r0, [r0] + add r4, r0, #836 ; 0x344 + ldrh r0, [r4, #8] + cmp r0, r5 + beq _0600AFF0 + cmp r0, #64 ; 0x40 + bne _0600AF98 + bl FUN_06009E28 +_0600AF98: + cmp r5, #0 + beq _0600AFB4 + cmp r5, #16 + beq _0600AFBC + cmp r5, #64 ; 0x40 + beq _0600AFD0 + b _0600AFEC +_0600AFB4: + bl FUN_0600B36C + b _0600AFEC +_0600AFBC: + mov r0, #0 + bl FUN_0600B3E0 + bl FUN_0600A4EC + bl FUN_0600B2D8 + b _0600AFEC +_0600AFD0: + ldrh r0, [r4, #12] + cmp r0, #2 + bne _0600AFE0 + bl FUN_0600B1EC +_0600AFE0: + mov r0, #100 ; 0x64 + ldr r1, _0600B000 ; =FUN_06009F5C + bl FUN_0600A000 +_0600AFEC: + strh r5, [r4, #8] +_0600AFF0: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_0600AFFC: .word 0x0380FFF4 +_0600B000: .word FUN_06009F5C + + arm_func_start FUN_0600B004 +FUN_0600B004: ; 0x0600B004 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _0600B02C ; =0x04808094 + ldrh r0, [r0] + ands r0, r0, #32768 ; 0x8000 + bne _0600B020 + bl FUN_0600F718 +_0600B020: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600B02C: .word 0x04808094 + + arm_func_start FUN_0600B030 +FUN_0600B030: ; 0x0600B030 + ldr r0, _0600B04C ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r1, [r0, #174] ; 0xae + ldr r0, _0600B050 ; =0x04808028 + strh r1, [r0] + bx lr +_0600B04C: .word 0x0380FFF4 +_0600B050: .word 0x04808028 + + arm_func_start FUN_0600B054 +FUN_0600B054: ; 0x0600B054 + stmdb sp!, {r4, lr} + ldr r0, _0600B0A8 ; =0x0380FFF4 + ldr r0, [r0] + add r4, r0, #836 ; 0x344 + mov r0, #0 + strh r0, [r4, #106] ; 0x6a + bl FUN_0600F718 + mov r1, #0 + ldr r0, _0600B0AC ; =0x0480802A + strh r1, [r0] + ldrh r0, [r4, #136] ; 0x88 + cmp r0, #0 + beq _0600B0A0 + bl FUN_06014EB8 + ldrh r0, [r4, #136] ; 0x88 + mov r1, #32 + bl FUN_0600F294 + mov r0, #0 + strh r0, [r4, #136] ; 0x88 +_0600B0A0: + ldmia sp!, {r4, lr} + bx lr +_0600B0A8: .word 0x0380FFF4 +_0600B0AC: .word 0x0480802A + + arm_func_start FUN_0600B0B0 +FUN_0600B0B0: ; 0x0600B0B0 + ldr r2, _0600B0E8 ; =0x0380FFF4 + ldr r1, [r2] + add r1, r1, #768 ; 0x300 + strh r0, [r1, #174] ; 0xae + ldr r1, _0600B0EC ; =0x0480802A + strh r0, [r1] + ldr r1, [r2] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #58] ; 0x3a + mov r1, r1, lsl #24 + movs r1, r1, lsr #31 + ldrne r1, _0600B0F0 ; =0x04808028 + strneh r0, [r1] + bx lr +_0600B0E8: .word 0x0380FFF4 +_0600B0EC: .word 0x0480802A +_0600B0F0: .word 0x04808028 + + arm_func_start FUN_0600B0F4 +FUN_0600B0F4: ; 0x0600B0F4 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + mov r6, r0 + mov r5, r1 + ldr r0, _0600B19C ; =0x0380FFF4 + ldr r0, [r0] + add r4, r0, #836 ; 0x344 + cmp r6, #128 ; 0x80 + movhi r0, #4 + bhi _0600B194 + cmp r6, #0 + beq _0600B184 + ldrh r0, [r4, #162] ; 0xa2 + ands r0, r0, #1 + beq _0600B174 + ldr r8, [r4, #156] ; 0x9c + mov r0, r8 + mov r1, #255 ; 0xff + bl FUN_06009CD0 + add r8, r8, #1 + mov r7, #0 + b _0600B168 +_0600B148: + mov r0, r5 + bl FUN_06009CB0 + mov r1, r0 + mov r0, r8 + bl FUN_06009CD0 + add r8, r8, #1 + add r5, r5, #1 + add r7, r7, #1 +_0600B168: + cmp r7, r6 + bcc _0600B148 + b _0600B184 +_0600B174: + mov r0, r5 + ldr r1, [r4, #156] ; 0x9c + add r2, r6, #1 + bl FUN_06000EA0 +_0600B184: + strh r6, [r4, #160] ; 0xa0 + mov r0, #1 + strh r0, [r4, #164] ; 0xa4 + mov r0, #0 +_0600B194: + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_0600B19C: .word 0x0380FFF4 + + arm_func_start FUN_0600B1A0 +FUN_0600B1A0: ; 0x0600B1A0 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + ldr r0, _0600B1E8 ; =0x0380FFF4 + ldr r0, [r0] + add r4, r0, #836 ; 0x344 + cmp r5, #128 ; 0x80 + movhi r0, #4 + bhi _0600B1DC + mov r0, r1 + ldr r1, [r4, #156] ; 0x9c + add r2, r5, #1 + bl FUN_06000EA0 + strh r5, [r4, #160] ; 0xa0 + mov r0, #0 +_0600B1DC: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_0600B1E8: .word 0x0380FFF4 + + arm_func_start FUN_0600B1EC +FUN_0600B1EC: ; 0x0600B1EC + mov r1, #0 + ldr r0, _0600B214 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + strh r1, [r0, #234] ; 0xea + ldr r1, _0600B218 ; =0x04808038 + ldrh r0, [r1] + orr r0, r0, #2 + strh r0, [r1] + bx lr +_0600B214: .word 0x0380FFF4 +_0600B218: .word 0x04808038 + + arm_func_start FUN_0600B21C +FUN_0600B21C: ; 0x0600B21C + mov r2, #1 + ldr r1, _0600B264 ; =0x0380FFF4 + ldr r0, [r1] + add r0, r0, #768 ; 0x300 + strh r2, [r0, #234] ; 0xea + ldr r0, [r1] + add r0, r0, #1024 ; 0x400 + ldrh r0, [r0, #104] ; 0x68 + cmp r0, #0 + bxne lr + ldr r1, _0600B268 ; =0x04808038 + ldrh r0, [r1] + bic r0, r0, #2 + strh r0, [r1] + mov r1, #0 + ldr r0, _0600B26C ; =0x04808048 + strh r1, [r0] + bx lr +_0600B264: .word 0x0380FFF4 +_0600B268: .word 0x04808038 +_0600B26C: .word 0x04808048 + + arm_func_start FUN_0600B270 +FUN_0600B270: ; 0x0600B270 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r0, _0600B2D0 ; =0x0380FFF4 + ldr r0, [r0] + add r5, r0, #836 ; 0x344 + add r4, r0, #796 ; 0x31c + ldr r0, _0600B2D4 ; =0x0000FFFF + cmp r6, r0 + moveq r1, #255 ; 0xff + streqh r1, [r4, #28] + streqh r0, [r5, #140] ; 0x8c + beq _0600B2C4 + ldrh r0, [r5, #110] ; 0x6e + mul r0, r6, r0 + mov r1, #100 ; 0x64 + bl FUN_06003B68 + cmp r0, #65536 ; 0x10000 + movhi r0, #5 + bhi _0600B2C8 + strh r6, [r4, #28] + strh r0, [r5, #140] ; 0x8c +_0600B2C4: + mov r0, #0 +_0600B2C8: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600B2D0: .word 0x0380FFF4 +_0600B2D4: .word 0x0000FFFF + + arm_func_start FUN_0600B2D8 +FUN_0600B2D8: ; 0x0600B2D8 + stmdb sp!, {r4, lr} + mov r1, #0 + ldr r0, _0600B360 ; =0x04808036 + strh r1, [r0] + mov r0, #8 + bl FUN_0600A0AC + mov r1, #0 + ldr r0, _0600B364 ; =0x04808168 + strh r1, [r0] + ldr r0, _0600B368 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1280 ; 0x500 + ldrh r0, [r0, #248] ; 0xf8 + cmp r0, #2 + beq _0600B320 + cmp r0, #3 + beq _0600B354 + b _0600B358 +_0600B320: + mov r0, #1 + bl FUN_0600A4B8 + mov r4, r0 + mov r0, #1 + and r1, r4, #127 ; 0x7f + bl FUN_0600A478 + mov r0, #1 + mov r1, r4 + bl FUN_0600A478 + mov r0, #40 ; 0x28 + bl FUN_0600A0AC + bl FUN_0600A134 + b _0600B358 +_0600B354: + bl FUN_0600A134 +_0600B358: + ldmia sp!, {r4, lr} + bx lr +_0600B360: .word 0x04808036 +_0600B364: .word 0x04808168 +_0600B368: .word 0x0380FFF4 + + arm_func_start FUN_0600B36C +FUN_0600B36C: ; 0x0600B36C + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _0600B3CC ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1280 ; 0x500 + ldrh r0, [r0, #248] ; 0xf8 + cmp r0, #2 + bne _0600B394 + ldr r0, _0600B3D0 ; =0x0000C008 + bl FUN_0600A450 +_0600B394: + mov r0, #30 + bl FUN_0600A4B8 + orr r1, r0, #63 ; 0x3f + mov r0, #30 + bl FUN_0600A478 + ldr r1, _0600B3D4 ; =0x0000800D + ldr r0, _0600B3D8 ; =0x04808168 + strh r1, [r0] + mov r1, #1 + ldr r0, _0600B3DC ; =0x04808036 + strh r1, [r0] + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600B3CC: .word 0x0380FFF4 +_0600B3D0: .word 0x0000C008 +_0600B3D4: .word 0x0000800D +_0600B3D8: .word 0x04808168 +_0600B3DC: .word 0x04808036 + + arm_func_start FUN_0600B3E0 +FUN_0600B3E0: ; 0x0600B3E0 + ldr r1, _0600B3F0 ; =0x04808040 + strh r0, [r1] + mov r0, #0 + bx lr +_0600B3F0: .word 0x04808040 + + arm_func_start FUN_0600B3F4 +FUN_0600B3F4: ; 0x0600B3F4 + mov r2, r0, lsr #1 + ldr r1, _0600B418 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + strh r2, [r1, #84] ; 0x54 + ldr r1, _0600B41C ; =0x0480803C + strh r0, [r1] + mov r0, #0 + bx lr +_0600B418: .word 0x0380FFF4 +_0600B41C: .word 0x0480803C + + arm_func_start FUN_0600B420 +FUN_0600B420: ; 0x0600B420 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r1, _0600B48C ; =0x0380FFF4 + ldr r1, [r1] + add r2, r1, #796 ; 0x31c + add r1, r1, #768 ; 0x300 + strh r0, [r1, #82] ; 0x52 + cmp r0, #0 + beq _0600B460 + ldrh r0, [r2, #18] + cmp r0, #1 + ldrne r1, _0600B490 ; =0x04808006 + ldrneh r0, [r1] + orrne r0, r0, #64 ; 0x40 + strneh r0, [r1] + bne _0600B47C +_0600B460: + ldr r1, _0600B490 ; =0x04808006 + ldrh r0, [r1] + bic r0, r0, #64 ; 0x40 + strh r0, [r1] + ldrh r0, [r2, #32] + mov r1, #0 + bl FUN_0600BEFC +_0600B47C: + mov r0, #0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600B48C: .word 0x0380FFF4 +_0600B490: .word 0x04808006 + + arm_func_start FUN_0600B494 +FUN_0600B494: ; 0x0600B494 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _0600B510 ; =0x0000E2E2 + str r0, [sp] + mov r0, #88 ; 0x58 + mov r1, #2 + add r2, sp, #0 + bl FUN_0601910C + ldr r1, [sp] + ldr r0, _0600B514 ; =0x00000202 + add r0, r1, r0 + str r0, [sp] + bl FUN_0600AA50 + cmp r0, #20 + bne _0600B4F8 + ldr r1, [sp] + ldr r0, _0600B518 ; =0x00006161 + sub r1, r1, r0 + str r1, [sp] + ldr r0, _0600B51C ; =0x048080BC + ldrh r0, [r0] + ands r0, r0, #2 + ldrne r0, _0600B520 ; =0x00006060 + subne r0, r1, r0 + strne r0, [sp] +_0600B4F8: + ldr r1, [sp] + ldr r0, _0600B524 ; =0x04808140 + strh r1, [r0] + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600B510: .word 0x0000E2E2 +_0600B514: .word 0x00000202 +_0600B518: .word 0x00006161 +_0600B51C: .word 0x048080BC +_0600B520: .word 0x00006060 +_0600B524: .word 0x04808140 + + arm_func_start FUN_0600B528 +FUN_0600B528: ; 0x0600B528 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r1, _0600B56C ; =0x0380FFF4 + ldr r1, [r1] + add r3, r1, #932 ; 0x3a4 + ldrh r2, [r0] + add r1, r1, #768 ; 0x300 + strh r2, [r1, #164] ; 0xa4 + ldrh r1, [r0, #2] + ldrh r0, [r0] + orr r0, r1, r0 + strh r0, [r3, #2] + bl FUN_0600B494 + mov r0, #0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600B56C: .word 0x0380FFF4 + + arm_func_start FUN_0600B570 +FUN_0600B570: ; 0x0600B570 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #12 + mov sl, r0 + cmp r1, #0 + ldrne r9, _0600B7E8 ; =FUN_060190BC + ldreq r9, _0600B7EC ; =FUN_0601910C + mov r0, sl + bl FUN_0600AB58 + cmp r0, #0 + moveq r0, #5 + beq _0600B7DC + ldr r1, _0600B7F0 ; =0x04808040 + ldrh r8, [r1] + ldr r0, _0600B7F4 ; =0x00008001 + strh r0, [r1] + ldr r2, _0600B7F8 ; =0x0480803C + ldr r1, _0600B7FC ; =0x04808214 +_0600B5B4: + ldrh r0, [r2] + mov r3, r0, asr #8 + ldrh r0, [r1] + cmp r3, #2 + bne _0600B5B4 + cmp r0, #0 + beq _0600B5D8 + cmp r0, #9 + bne _0600B5B4 +_0600B5D8: + ldr fp, _0600B800 ; =0x0380FFF4 + ldr r0, [fp] + add r0, r0, #768 ; 0x300 + strh sl, [r0, #190] ; 0xbe + ldr r0, [fp] + add r0, r0, #1280 ; 0x500 + ldrh r1, [r0, #248] ; 0xf8 + cmp r1, #2 + beq _0600B60C + cmp r1, #3 + beq _0600B6DC + cmp r1, #5 + bne _0600B7C4 +_0600B60C: + mov r0, #0 + str r0, [sp] + sub r4, sl, #1 + mov r0, #6 + mul r5, r4, r0 + add r0, r5, #242 ; 0xf2 + mov r1, #3 + add r2, sp, #0 + mov lr, pc + bx r9 + ldr r0, [sp] + bl FUN_0600A450 + add r0, r5, #245 ; 0xf5 + mov r1, #3 + add r2, sp, #0 + mov lr, pc + bx r9 + ldr r0, [sp] + bl FUN_0600A450 + mov r0, #0 + str r0, [sp] + ldr r0, _0600B800 ; =0x0380FFF4 + ldr r0, [r0] + ldr r1, [r0, #1540] ; 0x604 + ands r0, r1, #65536 ; 0x10000 + beq _0600B6B4 + ands r0, r1, #32768 ; 0x8000 + bne _0600B7C4 + add r0, r4, #340 ; 0x154 + mov r1, #1 + add r2, sp, #0 + mov lr, pc + bx r9 + ldr r0, _0600B800 ; =0x0380FFF4 + ldr r0, [r0] + ldr r1, [r0, #1540] ; 0x604 + ldr r0, [sp] + and r0, r0, #31 + orr r0, r1, r0, lsl #10 + str r0, [sp] + bl FUN_0600A450 + b _0600B7C4 +_0600B6B4: + ldr r0, _0600B804 ; =0x00000146 + add r0, r4, r0 + mov r1, #1 + add r2, sp, #0 + mov lr, pc + bx r9 + mov r0, #30 + ldr r1, [sp] + bl FUN_0600A478 + b _0600B7C4 +_0600B6DC: + ldrh r0, [r0, #252] ; 0xfc + add r7, r0, #207 ; 0xcf + mov r6, #0 + mov r5, r6 + mov r4, #1 + b _0600B738 +_0600B6F4: + str r5, [sp] + str r5, [sp, #4] + mov r0, r7 + mov r1, r4 + add r2, sp, #4 + mov lr, pc + bx r9 + add r0, r7, sl + mov r1, r4 + add r2, sp, #0 + mov lr, pc + bx r9 + ldr r0, [sp, #4] + ldr r1, [sp] + bl FUN_0600A478 + add r7, r7, #15 + add r6, r6, #1 +_0600B738: + ldr r0, [fp] + add r0, r0, #1536 ; 0x600 + ldrh r0, [r0] + cmp r6, r0 + bcc _0600B6F4 + mov r6, #0 + mov r5, r6 + mov r4, #1 + ldr fp, _0600B800 ; =0x0380FFF4 + b _0600B7B0 +_0600B760: + str r5, [sp] + mov r0, r7 + mov r1, r4 + add r2, sp, #0 + mov lr, pc + bx r9 + ldr r0, [sp] + mov r0, r0, lsl #8 + str r0, [sp] + add r0, r7, sl + mov r1, r4 + add r2, sp, #0 + mov lr, pc + bx r9 + ldr r0, [sp] + orr r0, r0, #327680 ; 0x50000 + str r0, [sp] + bl FUN_0600A450 + add r7, r7, #15 + add r6, r6, #1 +_0600B7B0: + ldr r0, [fp] + add r0, r0, #1280 ; 0x500 + ldrh r0, [r0, #254] ; 0xfe + cmp r6, r0 + bcc _0600B760 +_0600B7C4: + ldr r0, _0600B7F0 ; =0x04808040 + strh r8, [r0] + mov r1, #3 + ldr r0, _0600B808 ; =0x04808048 + strh r1, [r0] + mov r0, #0 +_0600B7DC: + add sp, sp, #12 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_0600B7E8: .word FUN_060190BC +_0600B7EC: .word FUN_0601910C +_0600B7F0: .word 0x04808040 +_0600B7F4: .word 0x00008001 +_0600B7F8: .word 0x0480803C +_0600B7FC: .word 0x04808214 +_0600B800: .word 0x0380FFF4 +_0600B804: .word 0x00000146 +_0600B808: .word 0x04808048 + + arm_func_start FUN_0600B80C +FUN_0600B80C: ; 0x0600B80C + stmfd sp!, {lr} + sub sp, sp, #12 + mov r0, #54 ; 0x36 + mov r1, #6 + add r2, sp, #2 + bl FUN_0601910C + mov r0, #60 ; 0x3c + mov r1, #2 + add r2, sp, #0 + bl FUN_0601910C + add r0, sp, #2 + bl FUN_0600C2D8 + mov r0, #7 + bl FUN_0600C2A4 + ldrh r1, [sp] + ldr r0, _0600B940 ; =0x00007FFE + and r0, r1, r0 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + bl FUN_0600C264 + mov r0, #2 + bl FUN_0600C1DC + mov r0, #0 + bl FUN_0600C1A0 + mov r0, #0 + bl FUN_0600C0EC + mov r0, #0 + bl FUN_0600C0C8 + ldr r0, _0600B944 ; =_06019424 + bl FUN_0600C064 + mov r0, #500 ; 0x1f4 + bl FUN_0600B9DC + mov r0, #0 + bl FUN_0600C02C + mov r0, #0 + bl FUN_0600BFF4 + mov r0, #16 + bl FUN_0600BFBC + ldr r0, _0600B948 ; =0x0000FFFF + mov r1, #0 + bl FUN_0600BEFC + ldr r0, _0600B94C ; =_060193C4 + bl FUN_0600BECC + mov r0, #1 + bl FUN_0600BE0C + mov r0, #0 + bl FUN_0600BDE8 + ldr r0, _0600B950 ; =_06019380 + bl FUN_0600B528 + mov r0, #0 + mov r1, #31 + bl FUN_0600BDA0 + mov r0, #5 + bl FUN_0600B270 + mov r0, #0 + mov r1, r0 + bl FUN_0600BC5C + mov r0, #0 + bl FUN_0600BD38 + mov r0, #0 + bl FUN_0600BC1C + mov r0, #0 + bl FUN_0600BBC0 + ldr r2, _0600B954 ; =0x04808044 + ldrh r1, [r2] + ldrh r0, [r2] + add r0, r1, r0, lsl #8 + ldrh r1, [r2] + bl FUN_06009C7C + mov r1, #1 + ldr r0, _0600B958 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + strh r1, [r0, #88] ; 0x58 + add sp, sp, #12 + ldmfd sp!, {lr} + bx lr +_0600B940: .word 0x00007FFE +_0600B944: .word _06019424 +_0600B948: .word 0x0000FFFF +_0600B94C: .word _060193C4 +_0600B950: .word _06019380 +_0600B954: .word 0x04808044 +_0600B958: .word 0x0380FFF4 + + arm_func_start FUN_0600B95C +FUN_0600B95C: ; 0x0600B95C + cmp r0, #1 + bcc _0600B96C + cmp r0, #255 ; 0xff + bls _0600B974 +_0600B96C: + mov r0, #5 + bx lr +_0600B974: + ldr r1, _0600B98C ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + strh r0, [r1, #180] ; 0xb4 + mov r0, #0 + bx lr +_0600B98C: .word 0x0380FFF4 + + arm_func_start FUN_0600B990 +FUN_0600B990: ; 0x0600B990 + cmp r0, #1 + bcc _0600B9A0 + cmp r0, #255 ; 0xff + bls _0600B9A8 +_0600B9A0: + mov r0, #5 + bx lr +_0600B9A8: + ldr r1, _0600B9D0 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + strh r0, [r1, #184] ; 0xb8 + ldr r1, _0600B9D4 ; =0x0480808E + strh r0, [r1] + mov r0, #0 + ldr r1, _0600B9D8 ; =0x04808088 + strh r0, [r1] + bx lr +_0600B9D0: .word 0x0380FFF4 +_0600B9D4: .word 0x0480808E +_0600B9D8: .word 0x04808088 + + arm_func_start FUN_0600B9DC +FUN_0600B9DC: ; 0x0600B9DC + stmfd sp!, {lr} + sub sp, sp, #4 + cmp r0, #10 + bcc _0600B9F4 + cmp r0, #1000 ; 0x3e8 + bls _0600B9FC +_0600B9F4: + mov r0, #5 + b _0600BA28 +_0600B9FC: + ldr r2, _0600BA34 ; =0x0380FFF4 + ldr r1, [r2] + add r1, r1, #768 ; 0x300 + strh r0, [r1, #178] ; 0xb2 + ldr r1, _0600BA38 ; =0x0480808C + strh r0, [r1] + ldr r0, [r2] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #56] ; 0x38 + bl FUN_0600B270 + mov r0, #0 +_0600BA28: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600BA34: .word 0x0380FFF4 +_0600BA38: .word 0x0480808C + + arm_func_start FUN_0600BA3C +FUN_0600BA3C: ; 0x0600BA3C + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #4 + mov r8, r0 + mov r7, r1 + ldr r0, _0600BB54 ; =0x0380FFF4 + ldr r1, [r0] + add r6, r1, #836 ; 0x344 + mov r4, #0 + cmp r8, #32 + movhi r0, #5 + bhi _0600BB48 + ldrh r0, [r6, #8] + cmp r0, #64 ; 0x40 + bne _0600BAA0 + add r0, r1, #768 ; 0x300 + ldrh r0, [r0, #46] ; 0x2e + cmp r0, #1 + bne _0600BAA0 + ldrh r0, [r6, #30] + cmp r0, r8 + movne r0, #6 + bne _0600BB48 + ldrh r0, [r6, #146] ; 0x92 + cmp r0, #0 + movne r4, #1 +_0600BAA0: + mov r5, #0 + add r9, r6, #32 + b _0600BAC8 +_0600BAAC: + mov r0, r7 + bl FUN_06009CB0 + mov r1, r0 + add r0, r9, r5 + bl FUN_06009CD0 + add r7, r7, #1 + add r5, r5, #1 +_0600BAC8: + cmp r5, r8 + bcc _0600BAAC + add r9, r6, #32 + mov r7, #0 + b _0600BAEC +_0600BADC: + add r0, r9, r5 + mov r1, r7 + bl FUN_06009CD0 + add r5, r5, #1 +_0600BAEC: + cmp r5, #32 + bcc _0600BADC + strh r8, [r6, #30] + cmp r4, #0 + beq _0600BB44 + ldr r0, _0600BB54 ; =0x0380FFF4 + ldr r0, [r0] + ldr r0, [r0, #1196] ; 0x4ac + add r1, r0, #38 ; 0x26 + ldrh r0, [r6, #146] ; 0x92 + add r7, r1, r0 + mov r5, #0 + add r4, r6, #32 + b _0600BB3C +_0600BB24: + add r0, r4, r5 + bl FUN_06009CB0 + mov r1, r0 + add r0, r7, r5 + bl FUN_06009CD0 + add r5, r5, #1 +_0600BB3C: + cmp r5, r8 + bcc _0600BB24 +_0600BB44: + mov r0, #0 +_0600BB48: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} + bx lr +_0600BB54: .word 0x0380FFF4 + + arm_func_start FUN_0600BB58 +FUN_0600BB58: ; 0x0600BB58 + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r0, _0600BBB4 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #936 ; 0x3a8 + mov r1, r4 + bl FUN_0600AF4C + ldr r0, _0600BBB8 ; =0x04808020 + mov r1, r4 + bl FUN_0600AF4C + ldrh r0, [r4] + ands r0, r0, #1 + ldrne r1, _0600BBBC ; =0x048080D0 + ldrneh r0, [r1] + bicne r0, r0, #1024 ; 0x400 + strneh r0, [r1] + ldreq r1, _0600BBBC ; =0x048080D0 + ldreqh r0, [r1] + orreq r0, r0, #1024 ; 0x400 + streqh r0, [r1] + mov r0, #0 + ldmia sp!, {r4, lr} + bx lr +_0600BBB4: .word 0x0380FFF4 +_0600BBB8: .word 0x04808020 +_0600BBBC: .word 0x048080D0 + + arm_func_start FUN_0600BBC0 +FUN_0600BBC0: ; 0x0600BBC0 + cmp r0, #1 + movhi r0, #5 + bxhi lr + ldr r1, _0600BC10 ; =0x0380FFF4 + ldr r1, [r1] + add r2, r1, #768 ; 0x300 + ldrh r1, [r2, #58] ; 0x3a + bic r3, r1, #128 ; 0x80 + mov r1, r0, lsl #16 + mov r1, r1, lsr #16 + and r1, r1, #1 + orr r1, r3, r1, lsl #7 + strh r1, [r2, #58] ; 0x3a + cmp r0, #1 + ldreq r0, _0600BC14 ; =0x0480802A + ldreqh r1, [r0] + ldreq r0, _0600BC18 ; =0x04808028 + streqh r1, [r0] + mov r0, #0 + bx lr +_0600BC10: .word 0x0380FFF4 +_0600BC14: .word 0x0480802A +_0600BC18: .word 0x04808028 + + arm_func_start FUN_0600BC1C +FUN_0600BC1C: ; 0x0600BC1C + cmp r0, #1 + movhi r0, #5 + bxhi lr + ldr r1, _0600BC58 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r2, [r1, #58] ; 0x3a + bic r2, r2, #64 ; 0x40 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + and r0, r0, #1 + orr r0, r2, r0, lsl #6 + strh r0, [r1, #58] ; 0x3a + mov r0, #0 + bx lr +_0600BC58: .word 0x0380FFF4 + + arm_func_start FUN_0600BC5C +FUN_0600BC5C: ; 0x0600BC5C + cmp r0, #1 + bhi _0600BC6C + cmp r1, #1 + bls _0600BC74 +_0600BC6C: + mov r0, #5 + bx lr +_0600BC74: + cmp r0, #0 + beq _0600BC88 + cmp r0, #1 + beq _0600BCB4 + b _0600BCDC +_0600BC88: + ldr r2, _0600BD30 ; =0x0380FFF4 + ldr r2, [r2] + add r2, r2, #768 ; 0x300 + ldrh r3, [r2, #58] ; 0x3a + bic r3, r3, #32 + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + and r1, r1, #1 + orr r1, r3, r1, lsl #5 + strh r1, [r2, #58] ; 0x3a + b _0600BCDC +_0600BCB4: + ldr r1, _0600BD30 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r2, [r1, #46] ; 0x2e + cmp r2, #1 + movne r0, #11 + bxne lr + ldrh r2, [r1, #58] ; 0x3a + bic r2, r2, #32 + strh r2, [r1, #58] ; 0x3a +_0600BCDC: + ldr r3, _0600BD30 ; =0x0380FFF4 + ldr r1, [r3] + add r1, r1, #768 ; 0x300 + ldrh r2, [r1, #58] ; 0x3a + bic r2, r2, #16 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + and r0, r0, #1 + orr r0, r2, r0, lsl #4 + strh r0, [r1, #58] ; 0x3a + ldr r0, [r3] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #58] ; 0x3a + mov r1, r0, lsl #26 + mov r1, r1, lsr #31 + mov r0, r0, lsl #28 + eor r1, r1, r0, lsr #31 + ldr r0, _0600BD34 ; =0x04808290 + strh r1, [r0] + mov r0, #0 + bx lr +_0600BD30: .word 0x0380FFF4 +_0600BD34: .word 0x04808290 + + arm_func_start FUN_0600BD38 +FUN_0600BD38: ; 0x0600BD38 + cmp r0, #1 + movhi r0, #5 + bxhi lr + ldr r3, _0600BD98 ; =0x0380FFF4 + ldr r1, [r3] + add r1, r1, #768 ; 0x300 + ldrh r2, [r1, #58] ; 0x3a + bic r2, r2, #8 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + and r0, r0, #1 + orr r0, r2, r0, lsl #3 + strh r0, [r1, #58] ; 0x3a + ldr r0, [r3] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #58] ; 0x3a + mov r1, r0, lsl #26 + mov r1, r1, lsr #31 + mov r0, r0, lsl #28 + eor r1, r1, r0, lsr #31 + ldr r0, _0600BD9C ; =0x04808290 + strh r1, [r0] + mov r0, #0 + bx lr +_0600BD98: .word 0x0380FFF4 +_0600BD9C: .word 0x04808290 + + arm_func_start FUN_0600BDA0 +FUN_0600BDA0: ; 0x0600BDA0 + stmdb sp!, {r4, lr} + mov r2, r0 + mov r4, r1 + cmp r2, #3 + movhi r0, #5 + bhi _0600BDE0 + cmp r4, #63 ; 0x3f + movhi r0, #5 + bhi _0600BDE0 + mov r0, #19 + mov r1, r2 + bl FUN_0600A478 + mov r0, #53 ; 0x35 + mov r1, r4 + bl FUN_0600A478 + mov r0, #0 +_0600BDE0: + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_0600BDE8 +FUN_0600BDE8: ; 0x0600BDE8 + cmp r0, #1 + movhi r0, #5 + ldrls r1, _0600BE08 ; =0x0380FFF4 + ldrls r1, [r1] + addls r1, r1, #768 ; 0x300 + strlsh r0, [r1, #50] ; 0x32 + movls r0, #0 + bx lr +_0600BE08: .word 0x0380FFF4 + + arm_func_start FUN_0600BE0C +FUN_0600BE0C: ; 0x0600BE0C + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r1, _0600BEC4 ; =0x0380FFF4 + ldr r2, [r1] + add r1, r2, #836 ; 0x344 + cmp r0, #1 + movhi r0, #5 + bhi _0600BEB8 + add r2, r2, #768 ; 0x300 + ldrh r3, [r2, #58] ; 0x3a + bic ip, r3, #4 + and r3, r0, #1 + orr r3, ip, r3, lsl #2 + strh r3, [r2, #58] ; 0x3a + cmp r0, #0 + ldreqh r2, [r1, #124] ; 0x7c + biceq r2, r2, #32 + streqh r2, [r1, #124] ; 0x7c + ldrneh r2, [r1, #124] ; 0x7c + orrne r2, r2, #32 + strneh r2, [r1, #124] ; 0x7c + ldrh r2, [r1, #8] + cmp r2, #64 ; 0x40 + bne _0600BE8C + ldr r2, _0600BEC4 ; =0x0380FFF4 + ldr r3, [r2] + add r2, r3, #768 ; 0x300 + ldrh r2, [r2, #46] ; 0x2e + cmp r2, #1 + ldreqh r2, [r1, #124] ; 0x7c + ldreq r1, [r3, #1196] ; 0x4ac + streqh r2, [r1, #46] ; 0x2e +_0600BE8C: + cmp r0, #0 + ldreq r1, _0600BEC8 ; =0x048080BC + ldreqh r0, [r1] + biceq r0, r0, #6 + streqh r0, [r1] + ldrne r1, _0600BEC8 ; =0x048080BC + ldrneh r0, [r1] + orrne r0, r0, #6 + strneh r0, [r1] + bl FUN_0600B494 + mov r0, #0 +_0600BEB8: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600BEC4: .word 0x0380FFF4 +_0600BEC8: .word 0x048080BC + + arm_func_start FUN_0600BECC +FUN_0600BECC: ; 0x0600BECC + ldr r1, _0600BEF8 ; =0x0380FFF4 + ldr r1, [r1] + add r2, r1, #900 ; 0x384 + mov r3, #0 +_0600BEDC: + ldrh r1, [r0], #2 + strh r1, [r2], #2 + add r3, r3, #1 + cmp r3, #16 + bcc _0600BEDC + mov r0, #0 + bx lr +_0600BEF8: .word 0x0380FFF4 + + arm_func_start FUN_0600BEFC +FUN_0600BEFC: ; 0x0600BEFC + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r4, r0 + cmp r4, #10 + movcc r0, #5 + bcc _0600BFA8 + ldr r0, _0600BFB4 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + strh r4, [r0, #60] ; 0x3c + cmp r1, #0 + ldrne r0, _0600BFB8 ; =0x04808134 + strneh r4, [r0] + ldr r0, _0600BFB4 ; =0x0380FFF4 + ldr r1, [r0] + add r0, r1, #1024 ; 0x400 + ldrh r0, [r0, #164] ; 0xa4 + cmp r0, #0 + beq _0600BFA4 + ldr r0, [r1, #1196] ; 0x4ac + add r2, r0, #36 ; 0x24 + add r0, r1, #768 ; 0x300 + ldrh r1, [r0, #218] ; 0xda + add r1, r2, r1 + add r5, r1, #6 + ldrh r0, [r0, #82] ; 0x52 + cmp r0, #1 + bne _0600BF8C + mov r0, r5 + and r1, r4, #255 ; 0xff + bl FUN_06009CD0 + add r0, r5, #1 + mov r1, r4, asr #8 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + b _0600BFA4 +_0600BF8C: + mov r0, r5 + mov r1, #255 ; 0xff + bl FUN_06009CD0 + add r0, r5, #1 + mov r1, #255 ; 0xff + bl FUN_06009CD0 +_0600BFA4: + mov r0, #0 +_0600BFA8: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_0600BFB4: .word 0x0380FFF4 +_0600BFB8: .word 0x04808134 + + arm_func_start FUN_0600BFBC +FUN_0600BFBC: ; 0x0600BFBC + cmp r0, #255 ; 0xff + movhi r0, #5 + bxhi lr + mov r3, #0 + ldr r2, _0600BFF0 ; =0x0380FFF4 + ldr r1, [r2] + add r1, r1, #768 ; 0x300 + strh r3, [r1, #196] ; 0xc4 + ldr r1, [r2] + add r1, r1, #768 ; 0x300 + strh r0, [r1, #194] ; 0xc2 + mov r0, r3 + bx lr +_0600BFF0: .word 0x0380FFF4 + + arm_func_start FUN_0600BFF4 +FUN_0600BFF4: ; 0x0600BFF4 + cmp r0, #1 + movhi r0, #5 + bxhi lr + ldr r1, _0600C028 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r2, [r1, #58] ; 0x3a + bic r2, r2, #2 + and r0, r0, #1 + orr r0, r2, r0, lsl #1 + strh r0, [r1, #58] ; 0x3a + mov r0, #0 + bx lr +_0600C028: .word 0x0380FFF4 + + arm_func_start FUN_0600C02C +FUN_0600C02C: ; 0x0600C02C + cmp r0, #1 + movhi r0, #5 + bxhi lr + ldr r1, _0600C060 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r2, [r1, #58] ; 0x3a + bic r2, r2, #1 + and r0, r0, #1 + orr r0, r2, r0 + strh r0, [r1, #58] ; 0x3a + mov r0, #0 + bx lr +_0600C060: .word 0x0380FFF4 + + arm_func_start FUN_0600C064 +FUN_0600C064: ; 0x0600C064 + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r0, _0600C0B8 ; =0x04805F80 + mov r1, r4 + mov r2, #20 + bl FUN_06009D74 + ldr r0, _0600C0BC ; =0x04805FA0 + add r1, r4, #20 + mov r2, #20 + bl FUN_06009D74 + ldr r0, _0600C0C0 ; =0x04805FC0 + add r1, r4, #40 ; 0x28 + mov r2, #20 + bl FUN_06009D74 + ldr r0, _0600C0C4 ; =0x04805FE0 + add r1, r4, #60 ; 0x3c + mov r2, #20 + bl FUN_06009D74 + mov r0, #0 + ldmia sp!, {r4, lr} + bx lr +_0600C0B8: .word 0x04805F80 +_0600C0BC: .word 0x04805FA0 +_0600C0C0: .word 0x04805FC0 +_0600C0C4: .word 0x04805FE0 + + arm_func_start FUN_0600C0C8 +FUN_0600C0C8: ; 0x0600C0C8 + cmp r0, #3 + movhi r0, #5 + ldrls r1, _0600C0E8 ; =0x0380FFF4 + ldrls r1, [r1] + addls r1, r1, #768 ; 0x300 + strlsh r0, [r1, #54] ; 0x36 + movls r0, #0 + bx lr +_0600C0E8: .word 0x0380FFF4 + + arm_func_start FUN_0600C0EC +FUN_0600C0EC: ; 0x0600C0EC + ldr r1, _0600C194 ; =0x0380FFF4 + ldr r1, [r1] + add r2, r1, #836 ; 0x344 + cmp r0, #3 + movhi r0, #5 + bxhi lr + add r1, r1, #768 ; 0x300 + strh r0, [r1, #52] ; 0x34 + cmp r0, #0 + bne _0600C130 + ldrh r1, [r2, #124] ; 0x7c + bic r1, r1, #16 + strh r1, [r2, #124] ; 0x7c + ldrh r1, [r2, #138] ; 0x8a + bic r1, r1, #16384 ; 0x4000 + strh r1, [r2, #138] ; 0x8a + b _0600C148 +_0600C130: + ldrh r1, [r2, #124] ; 0x7c + orr r1, r1, #16 + strh r1, [r2, #124] ; 0x7c + ldrh r1, [r2, #138] ; 0x8a + orr r1, r1, #16384 ; 0x4000 + strh r1, [r2, #138] ; 0x8a +_0600C148: + ldrh r1, [r2, #8] + cmp r1, #64 ; 0x40 + bne _0600C16C + cmp r0, #1 + ldreqh r2, [r2, #124] ; 0x7c + ldreq r1, _0600C194 ; =0x0380FFF4 + ldreq r1, [r1] + ldreq r1, [r1, #1196] ; 0x4ac + streqh r2, [r1, #46] ; 0x2e +_0600C16C: + cmp r0, #0 + moveq r0, #1 + ldr r3, _0600C198 ; =0x04808006 + ldrh r2, [r3] + ldr r1, _0600C19C ; =0x0000FFC7 + and r1, r2, r1 + orr r0, r1, r0, lsl #3 + strh r0, [r3] + mov r0, #0 + bx lr +_0600C194: .word 0x0380FFF4 +_0600C198: .word 0x04808006 +_0600C19C: .word 0x0000FFC7 + + arm_func_start FUN_0600C1A0 +FUN_0600C1A0: ; 0x0600C1A0 + stmfd sp!, {lr} + sub sp, sp, #4 + cmp r0, #2 + movhi r0, #5 + bhi _0600C1CC + ldr r1, _0600C1D8 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + strh r0, [r1, #48] ; 0x30 + bl FUN_0600B494 + mov r0, #0 +_0600C1CC: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600C1D8: .word 0x0380FFF4 + + arm_func_start FUN_0600C1DC +FUN_0600C1DC: ; 0x0600C1DC + stmfd sp!, {lr} + sub sp, sp, #4 + cmp r0, #3 + movhi r0, #5 + bhi _0600C24C + ldr ip, _0600C258 ; =0x0380FFF4 + ldr r1, [ip] + add r1, r1, #768 ; 0x300 + strh r0, [r1, #46] ; 0x2e + ldr r1, [ip] + add r1, r1, #768 ; 0x300 + strh r0, [r1, #80] ; 0x50 + ldr r3, _0600C25C ; =0x04808006 + ldrh r2, [r3] + ldr r1, _0600C260 ; =0x0000FFF8 + and r1, r2, r1 + orr r0, r1, r0 + strh r0, [r3] + ldr r0, [ip] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #82] ; 0x52 + bl FUN_0600B420 + ldr r0, _0600C258 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, [r1, #832] ; 0x340 + orr r0, r0, #8 + str r0, [r1, #832] ; 0x340 + mov r0, #0 +_0600C24C: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600C258: .word 0x0380FFF4 +_0600C25C: .word 0x04808006 +_0600C260: .word 0x0000FFF8 + + arm_func_start FUN_0600C264 +FUN_0600C264: ; 0x0600C264 + ldr r1, _0600C29C ; =0x00007FFE + ands r1, r0, r1 + moveq r0, #5 + bxeq lr + ldr r2, _0600C2A0 ; =0x0380FFF4 + ldr r1, [r2] + add r1, r1, #768 ; 0x300 + strh r0, [r1, #44] ; 0x2c + ldr r1, [r2] + ldr r0, [r1, #832] ; 0x340 + orr r0, r0, #4 + str r0, [r1, #832] ; 0x340 + mov r0, #0 + bx lr +_0600C29C: .word 0x00007FFE +_0600C2A0: .word 0x0380FFF4 + + arm_func_start FUN_0600C2A4 +FUN_0600C2A4: ; 0x0600C2A4 + cmp r0, #255 ; 0xff + movhi r0, #5 + bxhi lr + ldr r1, _0600C2D0 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + strh r0, [r1, #42] ; 0x2a + ldr r1, _0600C2D4 ; =0x0480802C + strh r0, [r1] + mov r0, #0 + bx lr +_0600C2D0: .word 0x0380FFF4 +_0600C2D4: .word 0x0480802C + + arm_func_start FUN_0600C2D8 +FUN_0600C2D8: ; 0x0600C2D8 + stmdb sp!, {r4, lr} + mov r4, r0 + ldrh r0, [r4] + ands r0, r0, #1 + movne r0, #5 + bne _0600C328 + ldr r0, _0600C330 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #804 ; 0x324 + mov r1, r4 + bl FUN_0600AF4C + ldr r0, _0600C334 ; =0x04808018 + mov r1, r4 + bl FUN_0600AF4C + ldr r0, _0600C330 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, [r1, #832] ; 0x340 + orr r0, r0, #2 + str r0, [r1, #832] ; 0x340 + mov r0, #0 +_0600C328: + ldmia sp!, {r4, lr} + bx lr +_0600C330: .word 0x0380FFF4 +_0600C334: .word 0x04808018 + + arm_func_start FUN_0600C338 +FUN_0600C338: ; 0x0600C338 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + ldr r0, _0600C3B4 ; =0x0380FFF4 + ldr r1, [r0] + ldr r4, [r1, #992] ; 0x3e0 + mov r0, #0 + add r1, r1, #796 ; 0x31c + mov r2, #40 ; 0x28 + bl FUN_0600055C + mov r0, #0 + ldr r1, _0600C3B4 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #836 ; 0x344 + mov r2, #192 ; 0xc0 + bl FUN_0600055C + ldr r2, _0600C3B4 ; =0x0380FFF4 + ldr r0, [r2] + str r6, [r0, #796] ; 0x31c + mov r0, r5, lsl #16 + mov r1, r0, lsr #16 + ldr r0, [r2] + add r0, r0, #768 ; 0x300 + strh r1, [r0, #32] + ldr r0, [r2] + add r0, r0, #768 ; 0x300 + strh r1, [r0, #34] ; 0x22 + ldr r0, [r2] + str r4, [r0, #992] ; 0x3e0 + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600C3B4: .word 0x0380FFF4 + + arm_func_start FUN_0600C3B8 +FUN_0600C3B8: ; 0x0600C3B8 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #4 + mov r9, #0 + ldr r0, _0600C6A4 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1280 ; 0x500 + ldrh r0, [r0, #248] ; 0xf8 + cmp r0, #5 + ldreq sl, _0600C6A8 ; =_060195D0 + ldrne sl, _0600C6AC ; =_06019604 + mov r6, #0 + mov r5, #255 ; 0xff + mvn r4, #0 + b _0600C40C +_0600C3F0: + mov r0, r6 + mov r1, r5 + bl FUN_0600A478 + cmp r0, r4 + moveq r9, #1 + beq _0600C678 + add r6, r6, #1 +_0600C40C: + cmp r6, #105 ; 0x69 + bcc _0600C3F0 + mov r4, #0 + mov r5, r4 + b _0600C45C +_0600C420: + mov r0, r5, lsl #1 + ldrh r0, [sl, r0] + cmp r4, r0 + addeq r5, r5, #1 + beq _0600C458 + mov r0, r4 + bl FUN_0600A4B8 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + cmp r0, #255 ; 0xff + beq _0600C458 + cmp r9, #32 + add r9, r9, #1 + bhi _0600C678 +_0600C458: + add r4, r4, #1 +_0600C45C: + cmp r4, #105 ; 0x69 + bcc _0600C420 + mov r5, #0 + mov r4, r5 +_0600C46C: + mov r0, r5 + mov r1, r4 + bl FUN_0600A478 + add r5, r5, #1 + cmp r5, #105 ; 0x69 + bcc _0600C46C + mov r5, #0 + mov r4, r5 + b _0600C4C8 +_0600C490: + mov r0, r4, lsl #1 + ldrh r0, [sl, r0] + cmp r5, r0 + addeq r4, r4, #1 + beq _0600C4C4 + mov r0, r5 + bl FUN_0600A4B8 + mov r0, r0, lsl #16 + movs r0, r0, lsr #16 + beq _0600C4C4 + cmp r9, #32 + add r9, r9, #1 + bhi _0600C678 +_0600C4C4: + add r5, r5, #1 +_0600C4C8: + cmp r5, #105 ; 0x69 + bcc _0600C490 + mov r5, #85 ; 0x55 + mov r4, #0 +_0600C4D8: + mov r0, r4 + mov r1, r5 + bl FUN_0600A478 + add r4, r4, #1 + mvn r0, r5 + mov r0, r0, lsl #16 + mov r5, r0, lsr #16 + cmp r4, #105 ; 0x69 + bcc _0600C4D8 + mov r5, #85 ; 0x55 + mov r6, #0 + mov r4, r6 + b _0600C558 +_0600C50C: + mov r0, r4, lsl #1 + ldrh r0, [sl, r0] + cmp r6, r0 + addeq r4, r4, #1 + beq _0600C544 + mov r0, r6 + bl FUN_0600A4B8 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + cmp r0, r5 + beq _0600C544 + cmp r9, #32 + add r9, r9, #1 + bhi _0600C678 +_0600C544: + add r6, r6, #1 + mvn r0, r5 + and r0, r0, #255 ; 0xff + mov r0, r0, lsl #16 + mov r5, r0, lsr #16 +_0600C558: + cmp r6, #105 ; 0x69 + bcc _0600C50C + mov r4, #255 ; 0xff + mov r5, #0 +_0600C568: + mov r0, r5 + mov r1, r4 + bl FUN_0600A478 + add r5, r5, #1 + sub r0, r4, #1 + mov r0, r0, lsl #16 + mov r4, r0, lsr #16 + cmp r5, #105 ; 0x69 + bcc _0600C568 + mov r5, #255 ; 0xff + mov r6, #0 + mov r4, r6 + b _0600C5E4 +_0600C59C: + mov r0, r4, lsl #1 + ldrh r0, [sl, r0] + cmp r6, r0 + addeq r4, r4, #1 + beq _0600C5D4 + mov r0, r6 + bl FUN_0600A4B8 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + cmp r0, r5 + beq _0600C5D4 + cmp r9, #32 + add r9, r9, #1 + bhi _0600C678 +_0600C5D4: + add r6, r6, #1 + sub r0, r5, #1 + mov r0, r0, lsl #16 + mov r5, r0, lsr #16 +_0600C5E4: + cmp r6, #105 ; 0x69 + bcc _0600C59C + mov r6, #0 + mov r5, r6 + mov r4, #1 + mov fp, r6 + b _0600C670 +_0600C600: + mov r0, r5, lsl #1 + ldrh r0, [sl, r0] + cmp r6, r0 + addeq r5, r5, #1 + beq _0600C66C + mov r7, r4 + mov r8, fp + b _0600C664 +_0600C620: + mov r0, r6 + mov r1, r7 + bl FUN_0600A478 + mov r0, r6 + bl FUN_0600A4B8 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + cmp r0, r7 + beq _0600C650 + cmp r9, #32 + add r9, r9, #1 + bhi _0600C678 +_0600C650: + mov r0, r7, lsl #1 + and r0, r0, #255 ; 0xff + mov r0, r0, lsl #16 + mov r7, r0, lsr #16 + add r8, r8, #1 +_0600C664: + cmp r8, #9 + bcc _0600C620 +_0600C66C: + add r6, r6, #1 +_0600C670: + cmp r6, #105 ; 0x69 + bcc _0600C600 +_0600C678: + cmp r9, #0 + beq _0600C698 + ldr r0, _0600C6A4 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r1, [r0, #62] ; 0x3e + orr r1, r1, #8 + strh r1, [r0, #62] ; 0x3e +_0600C698: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_0600C6A4: .word 0x0380FFF4 +_0600C6A8: .word _060195D0 +_0600C6AC: .word _06019604 + + arm_func_start FUN_0600C6B0 +FUN_0600C6B0: ; 0x0600C6B0 + mov r0, #0 + ldr r3, _0600C820 ; =0x04804000 + ldr r1, _0600C824 ; =0x0000FFFF + mov ip, r0 +_0600C6C0: + mov r2, r1 + sub r1, r1, #1 + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + strh r2, [r3], #2 + add ip, ip, #2 + cmp ip, #8192 ; 0x2000 + bcc _0600C6C0 + ldr ip, _0600C820 ; =0x04804000 + ldr r3, _0600C824 ; =0x0000FFFF + mov r2, #0 + b _0600C71C +_0600C6F0: + ldrh r1, [ip] + cmp r1, r3 + beq _0600C708 + cmp r0, #32 + add r0, r0, #1 + bhi _0600C7FC +_0600C708: + add r2, r2, #2 + add ip, ip, #2 + sub r1, r3, #1 + mov r1, r1, lsl #16 + mov r3, r1, lsr #16 +_0600C71C: + cmp r2, #8192 ; 0x2000 + bcc _0600C6F0 + ldr r3, _0600C820 ; =0x04804000 + ldr r1, _0600C828 ; =0x00005A5A + mov r2, #0 +_0600C730: + strh r1, [r3], #2 + add r2, r2, #2 + mvn r1, r1 + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + cmp r2, #8192 ; 0x2000 + bcc _0600C730 + ldr ip, _0600C820 ; =0x04804000 + ldr r3, _0600C828 ; =0x00005A5A + mov r2, #0 + b _0600C788 +_0600C75C: + ldrh r1, [ip] + cmp r1, r3 + beq _0600C774 + cmp r0, #32 + add r0, r0, #1 + bhi _0600C7FC +_0600C774: + add r2, r2, #2 + add ip, ip, #2 + mvn r1, r3 + mov r1, r1, lsl #16 + mov r3, r1, lsr #16 +_0600C788: + cmp r2, #8192 ; 0x2000 + bcc _0600C75C + ldr r3, _0600C820 ; =0x04804000 + ldr r1, _0600C82C ; =0x0000A5A5 + mov r2, #0 +_0600C79C: + strh r1, [r3], #2 + add r2, r2, #2 + mvn r1, r1 + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + cmp r2, #8192 ; 0x2000 + bcc _0600C79C + ldr ip, _0600C820 ; =0x04804000 + ldr r3, _0600C82C ; =0x0000A5A5 + mov r2, #0 + b _0600C7F4 +_0600C7C8: + ldrh r1, [ip] + cmp r1, r3 + beq _0600C7E0 + cmp r0, #32 + add r0, r0, #1 + bhi _0600C7FC +_0600C7E0: + add r2, r2, #2 + add ip, ip, #2 + mvn r1, r3 + mov r1, r1, lsl #16 + mov r3, r1, lsr #16 +_0600C7F4: + cmp r2, #8192 ; 0x2000 + bcc _0600C7C8 +_0600C7FC: + cmp r0, #0 + bxeq lr + ldr r0, _0600C830 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r1, [r0, #62] ; 0x3e + orr r1, r1, #2 + strh r1, [r0, #62] ; 0x3e + bx lr +_0600C820: .word 0x04804000 +_0600C824: .word 0x0000FFFF +_0600C828: .word 0x00005A5A +_0600C82C: .word 0x0000A5A5 +_0600C830: .word 0x0380FFF4 + + arm_func_start FUN_0600C834 +FUN_0600C834: ; 0x0600C834 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r3, #0 + mov r2, r3 + mov r1, r3 + ldr r0, _0600C9D0 ; =_0601963C + ldr r5, _0600C9D4 ; =_060195C8 + b _0600C8AC +_0600C854: + mov ip, r1 + mov r6, r2, lsl #1 + b _0600C8A0 +_0600C860: + mov r4, ip, lsl #2 + ldrh r7, [r0, r4] + ldrh r4, [r5, r6] + add lr, r0, ip, lsl #2 + ldrh lr, [lr, #2] + and r4, r4, lr + add lr, r7, #75497472 ; 0x4800000 + add lr, lr, #32768 ; 0x8000 + strh r4, [lr] + ldrh lr, [lr] + cmp lr, r4 + beq _0600C89C + cmp r3, #32 + add r3, r3, #1 + bhi _0600C9A4 +_0600C89C: + add ip, ip, #1 +_0600C8A0: + cmp ip, #27 + bcc _0600C860 + add r2, r2, #1 +_0600C8AC: + cmp r2, #3 + bcc _0600C854 + mov r4, #0 + ldr r5, _0600C9D8 ; =0x00001234 + ldr r2, _0600C9D0 ; =_0601963C + mov r1, r5 +_0600C8C4: + mov ip, r4, lsl #2 + add r0, r2, r4, lsl #2 + ldrh r0, [r0, #2] + and lr, r5, r0 + ldrh r0, [r2, ip] + add r0, r0, #75497472 ; 0x4800000 + add r0, r0, #32768 ; 0x8000 + strh lr, [r0] + add r0, r5, r1 + mov r0, r0, lsl #16 + mov r5, r0, lsr #16 + add r4, r4, #1 + cmp r4, #27 + bcc _0600C8C4 + mov r0, #0 + ldr r4, _0600C9D8 ; =0x00001234 + ldr lr, _0600C9D0 ; =_0601963C + mov r1, r4 + b _0600C954 +_0600C910: + mov r2, r0, lsl #2 + ldrh r2, [lr, r2] + add r2, r2, #75497472 ; 0x4800000 + add r2, r2, #32768 ; 0x8000 + ldrh ip, [r2] + add r2, lr, r0, lsl #2 + ldrh r2, [r2, #2] + and r2, r4, r2 + cmp ip, r2 + beq _0600C944 + cmp r3, #32 + add r3, r3, #1 + bhi _0600C9A4 +_0600C944: + add r2, r4, r1 + mov r2, r2, lsl #16 + mov r4, r2, lsr #16 + add r0, r0, #1 +_0600C954: + cmp r0, #27 + bcc _0600C910 + mov r4, #0 + ldr r2, _0600C9D0 ; =_0601963C + mov r1, r4 + b _0600C99C +_0600C96C: + mov r0, r4, lsl #2 + ldrh r0, [r2, r0] + add r0, r0, #75497472 ; 0x4800000 + add r0, r0, #32768 ; 0x8000 + strh r1, [r0] + ldrh r0, [r0] + cmp r0, #0 + beq _0600C998 + cmp r3, #32 + add r3, r3, #1 + bhi _0600C9A4 +_0600C998: + add r4, r4, #1 +_0600C99C: + cmp r4, #27 + bcc _0600C96C +_0600C9A4: + cmp r3, #0 + beq _0600C9C4 + ldr r0, _0600C9DC ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r1, [r0, #62] ; 0x3e + orr r1, r1, #1 + strh r1, [r0, #62] ; 0x3e +_0600C9C4: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_0600C9D0: .word _0601963C +_0600C9D4: .word _060195C8 +_0600C9D8: .word 0x00001234 +_0600C9DC: .word 0x0380FFF4 + + arm_func_start FUN_0600C9E0 +FUN_0600C9E0: ; 0x0600C9E0 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + mov r0, #16777216 ; 0x1000000 + mov r1, #0 + bl FUN_0600CA08 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_0600CA08 +FUN_0600CA08: ; 0x0600CA08 + ldr pc, _0600CA0C ; =FUN_037F894C +_0600CA0C: .word FUN_037F894C + + arm_func_start FUN_0600CA10 +FUN_0600CA10: ; 0x0600CA10 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r0, #16777216 ; 0x1000000 + ldr r1, _0600CA38 ; =FUN_0600E000 + bl FUN_0600CA08 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009070 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600CA38: .word FUN_0600E000 + + arm_func_start FUN_0600CA3C +FUN_0600CA3C: ; 0x0600CA3C + stmfd sp!, {lr} + sub sp, sp, #4 + ldrh r1, [r0] + cmp r1, #0 + beq _0600CA8C + ldr r2, [r0, #8] + ldrh r1, [r2] + ands r1, r1, #1 + beq _0600CA8C + ldr r1, _0600CA9C ; =0x00003FFF + and r1, r2, r1 + mov r1, r1, lsr #1 + orr r2, r1, #32768 ; 0x8000 + ldr r1, _0600CAA0 ; =0x04808098 + ldrh r1, [r1] + cmp r2, r1 + beq _0600CA8C + bl FUN_06015270 + mov r0, #1 + b _0600CA90 +_0600CA8C: + mov r0, #0 +_0600CA90: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600CA9C: .word 0x00003FFF +_0600CAA0: .word 0x04808098 + + arm_func_start FUN_0600CAA4 +FUN_0600CAA4: ; 0x0600CAA4 + stmdb sp!, {r4, lr} + ldr r0, _0600CAE8 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _0600CAEC ; =0x0000042C + add r4, r1, r0 + add r0, r4, #80 ; 0x50 + bl FUN_0600CA3C + cmp r0, #0 + movne r0, #1 + bne _0600CAE0 + add r0, r4, #100 ; 0x64 + bl FUN_0600CA3C + cmp r0, #0 + movne r0, #1 + moveq r0, #0 +_0600CAE0: + ldmia sp!, {r4, lr} + bx lr +_0600CAE8: .word 0x0380FFF4 +_0600CAEC: .word 0x0000042C + + arm_func_start FUN_0600CAF0 +FUN_0600CAF0: ; 0x0600CAF0 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _0600CB48 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _0600CB4C ; =0x0000042C + add lr, r1, r0 + ldrh r1, [lr, #164] ; 0xa4 + ldr r0, _0600CB50 ; =0x0000FFFF + cmp r1, r0 + beq _0600CB3C + ldr ip, _0600CB54 ; =0x04808094 + ldrh r3, [ip] + strh r1, [ip] + ldr r2, _0600CB58 ; =0x04808030 + ldrh r1, [r2] + orr r1, r1, #128 ; 0x80 + strh r1, [r2] + strh r3, [ip] + strh r0, [lr, #164] ; 0xa4 +_0600CB3C: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600CB48: .word 0x0380FFF4 +_0600CB4C: .word 0x0000042C +_0600CB50: .word 0x0000FFFF +_0600CB54: .word 0x04808094 +_0600CB58: .word 0x04808030 + + arm_func_start FUN_0600CB5C +FUN_0600CB5C: ; 0x0600CB5C + ldr r1, _0600CB7C ; =0x04805F60 + cmp r0, r1 + ldrcs r1, _0600CB80 ; =0x0380FFF4 + ldrcs r1, [r1] + addcs r1, r1, #768 ; 0x300 + ldrcsh r1, [r1, #222] ; 0xde + subcs r0, r0, r1 + bx lr +_0600CB7C: .word 0x04805F60 +_0600CB80: .word 0x0380FFF4 + + arm_func_start FUN_0600CB84 +FUN_0600CB84: ; 0x0600CB84 + stmdb sp!, {r4, lr} + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + mov r4, r0 + ldr r2, _0600CBE8 ; =0x04808210 + ldrh r3, [r2] + mov r1, #4096 ; 0x1000 + ldr r0, _0600CBEC ; =0x04808244 + strh r1, [r0] + mov r1, #100 ; 0x64 + b _0600CBC0 +_0600CBB0: + ldrh r0, [r2] + cmp r3, r0 + bne _0600CBC8 + sub r1, r1, #1 +_0600CBC0: + cmp r1, #0 + bne _0600CBB0 +_0600CBC8: + mov r0, #0 + ldr r1, _0600CBEC ; =0x04808244 + strh r0, [r1] + bl FUN_0600D070 + mov r0, r4 + bl FUN_06009070 + ldmia sp!, {r4, lr} + bx lr +_0600CBE8: .word 0x04808210 +_0600CBEC: .word 0x04808244 + + arm_func_start FUN_0600CBF0 +FUN_0600CBF0: ; 0x0600CBF0 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r0, _0600CCBC ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _0600CCC0 ; =0x0000042C + add r5, r1, r0 + mov r4, #0 + mov r0, #2 + bl FUN_06014FC8 + mov r0, #1 + bl FUN_06014FC8 + mov r0, r4 + bl FUN_06014FC8 + ldrh r0, [r5, #40] ; 0x28 + cmp r0, #0 + beq _0600CC48 + ldr r0, [r5, #48] ; 0x30 + ldrh r0, [r0] + cmp r0, #0 + movne r4, #1 + moveq r0, r4 + streqh r0, [r5, #40] ; 0x28 +_0600CC48: + ldrh r0, [r5, #20] + cmp r0, #0 + beq _0600CC6C + ldr r0, [r5, #28] + ldrh r0, [r0] + cmp r0, #0 + movne r4, #1 + moveq r0, #0 + streqh r0, [r5, #20] +_0600CC6C: + ldrh r0, [r5] + cmp r0, #0 + beq _0600CC90 + ldr r0, [r5, #8] + ldrh r0, [r0] + cmp r0, #0 + movne r4, #1 + moveq r0, #0 + streqh r0, [r5] +_0600CC90: + cmp r4, #0 + beq _0600CCA4 + mov r0, #0 + mov r1, #14 + bl FUN_06009078 +_0600CCA4: + mov r0, #0 + mov r1, #20 + bl FUN_06009078 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_0600CCBC: .word 0x0380FFF4 +_0600CCC0: .word 0x0000042C + + arm_func_start FUN_0600CCC4 +FUN_0600CCC4: ; 0x0600CCC4 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + ldr r2, _0600CEF4 ; =0x0380FFF4 + ldr r1, [r2] + add r5, r1, #836 ; 0x344 + ldr r0, _0600CEF8 ; =0x0000042C + add r4, r1, r0 + mov r1, #64 ; 0x40 + ldr r0, _0600CEFC ; =0x04808010 + strh r1, [r0] + ldr r0, [r2] + add r0, r0, #1536 ; 0x600 + ldrh r0, [r0, #144] ; 0x90 + ands r0, r0, #32 + beq _0600CEEC + ldrh r1, [r4, #164] ; 0xa4 + ldr r0, _0600CF00 ; =0x0000FFFF + cmp r1, r0 + bne _0600CEEC + ldr r0, _0600CF04 ; =0x0480819C + ldrh r0, [r0] + and r0, r0, #3 + cmp r0, #3 + bne _0600CEEC + ldr r0, _0600CF08 ; =0x04808268 + ldrh r2, [r0] + ldr r0, _0600CF0C ; =0x04808050 + ldrh r1, [r0] + ldr r0, _0600CF10 ; =0x00000FFF + and r0, r0, r1, lsr #1 + cmp r2, r0 + blt _0600CEEC + ldr r0, _0600CF14 ; =0x04808054 + ldrh r6, [r0] + ldr r0, _0600CF18 ; =0x04804000 + add r0, r0, r6, lsl #1 + add r0, r0, #8 + bl FUN_0600CB5C + add r0, r0, #4 + bl FUN_0600CB5C + ldrh r2, [r0] + ldr r1, _0600CF1C ; =0x0000E7FF + and r1, r2, r1 + cmp r1, #552 ; 0x228 + bne _0600CEEC + add r0, r0, #2 + bl FUN_0600CB5C + ldr r2, _0600CF20 ; =0x048080F8 + ldrh r1, [r2] + sub r7, r1, #65536 ; 0x10000 + ldr r1, _0600CF08 ; =0x04808268 +_0600CD8C: + ldrh r3, [r1] + sub r3, r3, r6 + mov r3, r3, lsl #16 + mov r8, r3, lsr #16 + ands r3, r8, #32768 ; 0x8000 + ldrneh r3, [r5, #154] ; 0x9a + addne r3, r8, r3, lsr #1 + movne r3, r3, lsl #16 + movne r8, r3, lsr #16 + cmp r8, #14 + bhi _0600CDD4 + ldrh r3, [r2] + sub r3, r3, r7 + mov r3, r3, lsl #16 + mov r3, r3, lsr #16 + cmp r3, #64 ; 0x40 + bls _0600CD8C + b _0600CEEC +_0600CDD4: + add r0, r0, #8 + mov r8, #0 + b _0600CE04 +_0600CDE0: + bl FUN_0600CB5C + mov r1, r0 + add r0, r1, #2 + ldrh r2, [r1] + add r1, r5, r8, lsl #1 + ldrh r1, [r1, #100] ; 0x64 + cmp r2, r1 + bne _0600CEEC + add r8, r8, #1 +_0600CE04: + cmp r8, #3 + bcc _0600CDE0 + add r0, r0, #10 + bl FUN_0600CB5C + ldr r3, _0600CF20 ; =0x048080F8 + ldr r1, _0600CF08 ; =0x04808268 +_0600CE1C: + ldrh r2, [r1] + sub r2, r2, r6 + mov r2, r2, lsl #16 + mov r8, r2, lsr #16 + ands r2, r8, #32768 ; 0x8000 + ldrneh r2, [r5, #154] ; 0x9a + addne r2, r8, r2, lsr #1 + movne r2, r2, lsl #16 + movne r8, r2, lsr #16 + cmp r8, #20 + bhi _0600CE64 + ldrh r2, [r3] + sub r2, r2, r7 + mov r2, r2, lsl #16 + mov r2, r2, lsr #16 + cmp r2, #112 ; 0x70 + bls _0600CE1C + b _0600CEEC +_0600CE64: + ldrh r2, [r0] + mov r1, #1 + ldr r0, _0600CF24 ; =0x04808028 + ldrh r0, [r0] + mov r0, r1, lsl r0 + ands r0, r2, r0 + bne _0600CEEC + ldr r0, _0600CF28 ; =0x04808098 + ldrh r0, [r0] + strh r0, [r4, #164] ; 0xa4 + mov r1, #64 ; 0x40 + ldr r0, _0600CF2C ; =0x048080B4 + strh r1, [r0] + ldrh r0, [r5, #190] ; 0xbe + add r0, r0, #1 + strh r0, [r5, #190] ; 0xbe + ldr r1, _0600CF04 ; =0x0480819C +_0600CEA8: + ldrh r0, [r1] + and r0, r0, #3 + cmp r0, #3 + beq _0600CEA8 + ldr r1, _0600CF30 ; =0x04808244 + ldrh r0, [r1] + orr r0, r0, #64 ; 0x40 + strh r0, [r1] + ldrh r0, [r1] + bic r0, r0, #64 ; 0x40 + strh r0, [r1] + mov r0, #8 + ldr r1, _0600CF34 ; =0x04808228 + strh r0, [r1] + mov r0, #0 + strh r0, [r1] + bl FUN_0600CAF0 +_0600CEEC: + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_0600CEF4: .word 0x0380FFF4 +_0600CEF8: .word 0x0000042C +_0600CEFC: .word 0x04808010 +_0600CF00: .word 0x0000FFFF +_0600CF04: .word 0x0480819C +_0600CF08: .word 0x04808268 +_0600CF0C: .word 0x04808050 +_0600CF10: .word 0x00000FFF +_0600CF14: .word 0x04808054 +_0600CF18: .word 0x04804000 +_0600CF1C: .word 0x0000E7FF +_0600CF20: .word 0x048080F8 +_0600CF24: .word 0x04808028 +_0600CF28: .word 0x04808098 +_0600CF2C: .word 0x048080B4 +_0600CF30: .word 0x04808244 +_0600CF34: .word 0x04808228 + + arm_func_start FUN_0600CF38 +FUN_0600CF38: ; 0x0600CF38 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r3, _0600D048 ; =0x0380FFF4 + ldr r1, [r3] + ldr r0, _0600D04C ; =0x0000042C + add r0, r1, r0 + mov r2, #128 ; 0x80 + ldr r1, _0600D050 ; =0x04808010 + strh r2, [r1] + ldr r1, [r3] + add r1, r1, #1536 ; 0x600 + ldrh r1, [r1, #144] ; 0x90 + ands r1, r1, #32 + beq _0600CFDC + ldr r1, _0600D054 ; =0x04808214 + ldrh r1, [r1] + and r1, r1, #255 ; 0xff + mov r1, r1, lsl #16 + mov r2, r1, lsr #16 + ldr r1, _0600D058 ; =0x04808268 + ldrh r3, [r1] + cmp r2, #3 + bcc _0600CFDC + cmp r2, #5 + bhi _0600CFDC + ldr r2, [r0, #88] ; 0x58 + ldr r1, _0600D05C ; =0x00000FFF + and r2, r1, r2, lsr #1 + cmp r3, r2 + bcc _0600CFDC + ldr r0, [r0, #48] ; 0x30 + and r0, r1, r0, lsr #1 + cmp r3, r0 + bhi _0600CFDC + ldr r1, _0600D060 ; =0x04808244 + ldrh r0, [r1] + orr r0, r0, #128 ; 0x80 + strh r0, [r1] + ldrh r0, [r1] + bic r0, r0, #128 ; 0x80 + strh r0, [r1] +_0600CFDC: + ldr r0, _0600D064 ; =0x04808000 + ldrh r0, [r0] + cmp r0, #5184 ; 0x1440 + beq _0600D03C + ldr r0, _0600D068 ; =0x0480819C + ldrh r0, [r0] + and r0, r0, #66 ; 0x42 + cmp r0, #66 ; 0x42 + bne _0600D03C + ldr r1, _0600D06C ; =0x048082B8 + ldrh r2, [r1] + cmp r2, #0 + beq _0600D03C + mov r3, #0 + b _0600D030 +_0600D018: + cmp r3, #1000 ; 0x3e8 + add r3, r3, #1 + bls _0600D030 + mov r0, #64 ; 0x40 + bl FUN_0600994C + b _0600D03C +_0600D030: + ldrh r0, [r1] + cmp r2, r0 + beq _0600D018 +_0600D03C: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600D048: .word 0x0380FFF4 +_0600D04C: .word 0x0000042C +_0600D050: .word 0x04808010 +_0600D054: .word 0x04808214 +_0600D058: .word 0x04808268 +_0600D05C: .word 0x00000FFF +_0600D060: .word 0x04808244 +_0600D064: .word 0x04808000 +_0600D068: .word 0x0480819C +_0600D06C: .word 0x048082B8 + + arm_func_start FUN_0600D070 +FUN_0600D070: ; 0x0600D070 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr ip, _0600D168 ; =0x0380FFF4 + ldr r2, [ip] + ldr r1, _0600D16C ; =0x0000042C + add r1, r2, r1 + mov r3, #4096 ; 0x1000 + ldr r2, _0600D170 ; =0x04808010 + strh r3, [r2] + ldrh r2, [r1, #60] ; 0x3c + cmp r2, #0 + beq _0600D15C + ldr r2, [ip] + add r2, r2, #1536 ; 0x600 + ldrh r2, [r2, #144] ; 0x90 + ands r2, r2, #16 + beq _0600D150 + cmp r0, #0 + beq _0600D150 + ldr r0, _0600D174 ; =0x048080B6 + ldrh r2, [r0] + ldr r0, _0600D178 ; =0x04808214 + ldrh r0, [r0] + cmp r0, #3 + beq _0600D0DC + cmp r0, #5 + bne _0600D150 +_0600D0DC: + cmp r2, #0 + bne _0600D150 + ldr r2, [r1, #68] ; 0x44 + ldrh r1, [r2, #2] + mov r3, #0 + b _0600D104 +_0600D0F4: + and r0, r1, #1 + add r3, r3, r0 + mov r0, r1, lsl #15 + mov r1, r0, lsr #16 +_0600D104: + cmp r1, #0 + bne _0600D0F4 + ldrh r1, [r2, #10] + ldrh r0, [r2, #36] ; 0x24 + add r0, r0, #10 + mul r0, r3, r0 + add r0, r0, #192 ; 0xc0 + add r0, r0, r1, lsl #2 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + ldr r1, _0600D17C ; =FUN_0600CB84 + bl FUN_06009E4C + ldr r0, _0600D168 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1024 ; 0x400 + ldrh r1, [r0] + add r1, r1, #1 + strh r1, [r0] + b _0600D15C +_0600D150: + mov r0, #0 + mov r1, #16 + bl FUN_06009078 +_0600D15C: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600D168: .word 0x0380FFF4 +_0600D16C: .word 0x0000042C +_0600D170: .word 0x04808010 +_0600D174: .word 0x048080B6 +_0600D178: .word 0x04808214 +_0600D17C: .word FUN_0600CB84 + + arm_func_start FUN_0600D180 +FUN_0600D180: ; 0x0600D180 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #28 + ldr r0, _0600D5BC ; =0x0380FFF4 + ldr r1, [r0] + add sl, r1, #836 ; 0x344 + ldr r0, _0600D5C0 ; =0x000004DC + add r9, r1, r0 + add r0, r1, #1536 ; 0x600 + ldrh r2, [r0, #144] ; 0x90 + mov r1, #1 + ldr r0, _0600D5C4 ; =0x04808010 + strh r1, [r0] + ldrh r0, [sl, #12] + cmp r0, #0 + ldreq r0, _0600D5C8 ; =0x04808054 + ldreqh r1, [r0] + ldreq r0, _0600D5CC ; =0x0480805A + streqh r1, [r0] + and r5, r2, #1 + mov r0, #1000 ; 0x3e8 + str r0, [sp, #20] + mov r0, #0 + str r0, [sp, #24] +_0600D1DC: + ldrh r7, [r9, #4] + ldr r0, _0600D5C8 ; =0x04808054 + ldrh r6, [r0] + cmp r7, r6 + beq _0600D558 + ldr r0, _0600D5D0 ; =0x048080F8 + ldrh r4, [r0] + ldr r0, _0600D5D4 ; =0x048080FA + ldrh r3, [r0] + ldr r0, _0600D5D0 ; =0x048080F8 + ldrh r2, [r0] + ldr r0, _0600D5D4 ; =0x048080FA + ldrh r1, [r0] + cmp r4, r2 + movhi r0, r2, lsr #4 + orrhi fp, r0, r1, lsl #12 + movls r0, r4, lsr #4 + orrls fp, r0, r3, lsl #12 + ldr r0, _0600D5D8 ; =0x000008C6 + cmp r7, r0 + bcc _0600D240 + ldr r0, _0600D5DC ; =0x000008EF + cmp r7, r0 + bhi _0600D240 + bl FUN_0600AC84 +_0600D240: + mov r0, r7, lsl #1 + str r0, [sp, #8] + ldr r0, _0600D5E0 ; =0x04804000 + add r8, r0, r7, lsl #1 + add r0, r8, #2 + bl FUN_0600CB5C + mov r4, r0 + add r0, r4, #2 + bl FUN_0600CB5C + str r0, [sp, #12] + add r0, r0, #4 + bl FUN_0600CB5C + str r0, [sp, #16] + add r0, r8, #14 + bl FUN_0600CB5C + str r0, [sp, #4] + ldr r0, [sp, #8] + add r0, r0, #75497472 ; 0x4800000 + add r0, r0, #16384 ; 0x4000 + ldrh r2, [r0] + ldrh r1, [r4] + mov r1, r1, lsl #1 + and r1, r1, #1024 ; 0x400 + orr r1, r2, r1 + strh r1, [r0] + ldr r0, [sp, #12] + strh fp, [r0] + ldr r0, [sp, #16] + ldrh r2, [r0] + add r0, r2, r7, lsl #1 + add r0, r0, #15 + mov r0, r0, lsr #2 + mov r7, r0, lsl #1 + cmp r7, #4016 ; 0xfb0 + ldrcsh r0, [sl, #154] ; 0x9a + subcs r7, r7, r0, lsr #1 + ldr r0, _0600D5E4 ; =0x0000092C + cmp r2, r0 + bls _0600D2F8 + ldr r0, _0600D5E8 ; =0x0000FFFF + strh r0, [r8] + mov r7, r6 + ldrh r0, [sl, #180] ; 0xb4 + add r0, r0, #1 + strh r0, [sl, #180] ; 0xb4 + b _0600D390 +_0600D2F8: + cmp r5, #0 + beq _0600D390 + cmp r7, r6 + beq _0600D390 + mov r1, r7, lsl #1 + ldr r0, _0600D5E0 ; =0x04804000 + add r0, r0, r7, lsl #1 + add r1, r1, #75497472 ; 0x4800000 + add r1, r1, #16384 ; 0x4000 + ldrh r1, [r1] + ldr r3, _0600D5EC ; =0x04805F5A + cmp r0, r3 + ldrcch r0, [r0, #6] + andcc r0, r0, #255 ; 0xff + movcc r0, r0, lsl #16 + movcc r3, r0, lsr #16 + ldrcsh r3, [sl, #154] ; 0x9a + subcs r0, r0, r3 + ldrcsh r3, [r0, #6] + ands r0, r1, #31744 ; 0x7c00 + bne _0600D368 + cmp r3, #10 + beq _0600D35C + cmp r3, #20 + bne _0600D368 +_0600D35C: + ldr r0, _0600D5F0 ; =0x00000FFF + cmp r2, r0 + bls _0600D390 +_0600D368: + ldrh r0, [sl, #180] ; 0xb4 + add r0, r0, #1 + strh r0, [sl, #180] ; 0xb4 + ldr r0, _0600D5E8 ; =0x0000FFFF + strh r0, [r8] + mov r0, r6, lsl #16 + mov r0, r0, lsr #16 + strh r0, [r9, #4] + strh r0, [r4] + b _0600D558 +_0600D390: + ldrh r0, [r8] + and r0, r0, #15 + cmp r0, #12 + bne _0600D4EC + add r0, r8, #12 + bl FUN_0600CB5C + ldrh fp, [r0] + add r0, r8, #34 ; 0x22 + bl FUN_0600CB5C + ldrh r6, [r0] + ldrh r0, [r9] + cmp r0, r6 + bne _0600D3EC + ands r0, fp, #2048 ; 0x800 + beq _0600D3EC + ldr r0, _0600D5BC ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, [r1, #1404] ; 0x57c + add r0, r0, #1 + str r0, [r1, #1404] ; 0x57c + ldr r0, _0600D5E8 ; =0x0000FFFF + strh r0, [r8] + b _0600D4C4 +_0600D3EC: + ldr r0, _0600D5BC ; =0x0380FFF4 + ldr r0, [r0] + add r1, r0, #768 ; 0x300 + ldrh r2, [r1, #58] ; 0x3a + mov r2, r2, lsl #24 + movs r2, r2, lsr #31 + bne _0600D4C4 + ldrh r1, [r1, #76] ; 0x4c + cmp r1, #64 ; 0x40 + bne _0600D4C4 + ldr r1, _0600D5F4 ; =0x04808028 + ldrh r1, [r1] + cmp r1, #0 + beq _0600D49C + ldr r1, _0600D5F8 ; =0x04808098 + ldrh r1, [r1] + ands r1, r1, #32768 ; 0x8000 + beq _0600D49C + add r0, r0, #1632 ; 0x660 + bl FUN_060009D0 + ldr r0, [sp, #4] + ldrh r2, [r0] + mov r1, #0 + ldr r0, _0600D5FC ; =0x000082EA + umull r8, r3, r2, r0 + mla r3, r2, r1, r3 + mla r3, r1, r0, r3 + mov r1, r3, lsr #6 + mov r0, r8, lsr #6 + orr r0, r0, r3, lsl #26 + ldr r2, [sp, #20] + ldr r3, [sp, #24] + bl FUN_06009EDC + mov r3, r0 + mov r2, r1 + ldr r0, [sp, #24] + str r0, [sp] + ldr r0, _0600D5BC ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1632 ; 0x660 + mov r1, r3 + ldr r3, _0600D600 ; =FUN_0600B004 + bl FUN_0600144C + b _0600D4C4 +_0600D49C: + ldr r6, _0600D5E8 ; =0x0000FFFF + mov r1, r6 + ldr r0, _0600D604 ; =0x04805F7E + strh r1, [r0] + ldr r0, _0600D608 ; =0x0480824C + strh r1, [r0] + ldr r0, _0600D60C ; =0x0480824E + strh r1, [r0] + mov r0, r6 + strh r0, [r8] +_0600D4C4: + strh r6, [r9] + bl FUN_0600CAA4 + cmp r0, #0 + bne _0600D544 + ldr r0, _0600D5BC ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, [r1, #1448] ; 0x5a8 + add r0, r0, #1 + str r0, [r1, #1448] ; 0x5a8 + b _0600D544 +_0600D4EC: + cmp r0, #13 + bne _0600D544 + ldr r0, _0600D5BC ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r1, [r0, #58] ; 0x3a + mov r1, r1, lsl #24 + movs r1, r1, lsr #31 + bne _0600D544 + ldrh r0, [r0, #76] ; 0x4c + cmp r0, #64 ; 0x40 + bne _0600D544 + ldr r0, _0600D5F4 ; =0x04808028 + ldrh r0, [r0] + cmp r0, #0 + beq _0600D53C + ldr r0, _0600D5F8 ; =0x04808098 + ldrh r0, [r0] + ands r0, r0, #32768 ; 0x8000 + bne _0600D544 +_0600D53C: + ldr r0, _0600D5E8 ; =0x0000FFFF + strh r0, [r8] +_0600D544: + mov r0, r7, lsl #16 + mov r0, r0, lsr #16 + strh r0, [r9, #4] + strh r0, [r4] + b _0600D1DC +_0600D558: + cmp r5, #0 + beq _0600D58C + ldr r0, _0600D5C8 ; =0x04808054 + ldrh r4, [r0] + bl FUN_0600CAA4 + cmp r0, #0 + beq _0600D58C + ldr r0, _0600D5C8 ; =0x04808054 + ldrh r0, [r0] + cmp r4, r0 + bne _0600D58C + mov r0, #32 + bl FUN_0600994C +_0600D58C: + ldr r0, _0600D5CC ; =0x0480805A + ldrh r1, [r0] + ldr r0, _0600D5C8 ; =0x04808054 + ldrh r0, [r0] + cmp r1, r0 + beq _0600D5B0 + mov r0, #0 + mov r1, #15 + bl FUN_06009078 +_0600D5B0: + add sp, sp, #28 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_0600D5BC: .word 0x0380FFF4 +_0600D5C0: .word 0x000004DC +_0600D5C4: .word 0x04808010 +_0600D5C8: .word 0x04808054 +_0600D5CC: .word 0x0480805A +_0600D5D0: .word 0x048080F8 +_0600D5D4: .word 0x048080FA +_0600D5D8: .word 0x000008C6 +_0600D5DC: .word 0x000008EF +_0600D5E0: .word 0x04804000 +_0600D5E4: .word 0x0000092C +_0600D5E8: .word 0x0000FFFF +_0600D5EC: .word 0x04805F5A +_0600D5F0: .word 0x00000FFF +_0600D5F4: .word 0x04808028 +_0600D5F8: .word 0x04808098 +_0600D5FC: .word 0x000082EA +_0600D600: .word FUN_0600B004 +_0600D604: .word 0x04805F7E +_0600D608: .word 0x0480824C +_0600D60C: .word 0x0480824E + + arm_func_start FUN_0600D610 +FUN_0600D610: ; 0x0600D610 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r2, _0600D87C ; =0x0380FFF4 + ldr r1, [r2] + ldr r0, _0600D880 ; =0x0000042C + add r5, r1, r0 + mov r0, #2 + ldr r1, _0600D884 ; =0x04808010 + strh r0, [r1] + ldr r1, [r2] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #76] ; 0x4c + cmp r1, #18 + bne _0600D650 + bl FUN_0601269C + b _0600D870 +_0600D650: + ldr r1, _0600D888 ; =0x048080B8 + ldrh r1, [r1] + and r4, r1, #3840 ; 0xf00 + cmp r4, #768 ; 0x300 + beq _0600D678 + cmp r4, #2048 ; 0x800 + beq _0600D6AC + cmp r4, #2816 ; 0xb00 + beq _0600D6EC + b _0600D7F0 +_0600D678: + ldr r0, [r5, #140] ; 0x8c + ands r0, r0, #2 + beq _0600D688 + bl FUN_0600CBF0 +_0600D688: + ldr r0, _0600D87C ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, [r1, #1368] ; 0x558 + add r0, r0, #1 + str r0, [r1, #1368] ; 0x558 + mov r0, #0 + mov r1, #8 + bl FUN_06009078 + b _0600D7F0 +_0600D6AC: + ldrh r2, [r5, #158] ; 0x9e + ldr r1, [r5, #68] ; 0x44 + ldrh r1, [r1, #4] + and r1, r1, #255 ; 0xff + mov r1, r1, lsl #16 + cmp r2, r1, lsr #16 + ldrls r1, _0600D88C ; =0x048080AC + strlsh r0, [r1] + ldrlsh r0, [r5, #168] ; 0xa8 + addls r0, r0, #1 + strlsh r0, [r5, #168] ; 0xa8 + ldr r1, [r5, #144] ; 0x90 + ldrh r0, [r1, #24] + add r0, r0, #1 + strh r0, [r1, #24] + b _0600D7F0 +_0600D6EC: + ldr r2, _0600D890 ; =0x0000FFFF + ldr r0, _0600D894 ; =0x04805F70 + strh r2, [r0] + ldr r0, _0600D898 ; =0x04805F72 + strh r2, [r0] + ldr r0, _0600D89C ; =0x0480824C + strh r2, [r0] + ldr r0, _0600D8A0 ; =0x0480824E + strh r2, [r0] + ldrh r0, [r5, #60] ; 0x3c + cmp r0, #0 + beq _0600D748 + ldr r1, [r5, #68] ; 0x44 + ldrh r0, [r1, #34] ; 0x22 + cmp r0, r2 + bne _0600D748 + ldrh r0, [r1, #4] + cmp r0, #0 + movne r0, #0 + strneh r0, [r1, #4] + ldrneh r1, [r5, #152] ; 0x98 + ldrne r0, [r5, #68] ; 0x44 + strneh r1, [r0, #2] +_0600D748: + ldrh r2, [r5, #152] ; 0x98 + ldr r0, [r5, #68] ; 0x44 + ldrh r1, [r0, #2] + ldr r0, [r5, #144] ; 0x90 + add r0, r0, #26 + cmp r1, #1 + bls _0600D79C + ldr r3, _0600D87C ; =0x0380FFF4 + ldr r3, [r3] + add r3, r3, #768 ; 0x300 + ldrh r3, [r3, #58] ; 0x3a + mov r3, r3, lsl #27 + movs r3, r3, lsr #31 + beq _0600D79C + ldr r3, _0600D8A4 ; =0x0480819C + ldrh r3, [r3] + ands r3, r3, #1 + ldreq ip, _0600D8A8 ; =0x04808290 + ldreqh r3, [ip] + eoreq r3, r3, #1 + streqh r3, [ip] +_0600D79C: + ldr r3, _0600D87C ; =0x0380FFF4 + ldr r3, [r3] + add r3, r3, #1536 ; 0x600 + ldrh r3, [r3, #144] ; 0x90 + ands r3, r3, #64 ; 0x40 + beq _0600D7F0 + b _0600D7E8 +_0600D7B8: + mov r1, r1, lsl #15 + mov r1, r1, lsr #16 + ands r3, r1, #1 + ldrneh r3, [r0, #6] + addne r3, r3, #1 + strneh r3, [r0, #6] + mov r2, r2, lsl #15 + mov r2, r2, lsr #16 + ands r3, r2, #1 + ldrne r3, [r5, #144] ; 0x90 + ldrneh r3, [r3, #22] + addne r0, r0, r3 +_0600D7E8: + cmp r1, #1 + bhi _0600D7B8 +_0600D7F0: + cmp r4, #2048 ; 0x800 + beq _0600D864 + ldr r0, _0600D8AC ; =0x048080B0 + ldrh r0, [r0] + ands r0, r0, #2 + bne _0600D864 + ldrh r0, [r5, #60] ; 0x3c + cmp r0, #0 + beq _0600D858 + mov r0, #2 + ldr r1, _0600D8B0 ; =0x048080B4 + strh r0, [r1] + mov r2, #0 + ldr r1, _0600D8B4 ; =0x04808048 + strh r2, [r1] + ldr r1, _0600D884 ; =0x04808010 + ldrh r1, [r1] + ands r1, r1, #4096 ; 0x1000 + ldrneh r0, [r5, #172] ; 0xac + addne r0, r0, #1 + strneh r0, [r5, #172] ; 0xac + bne _0600D84C + bl FUN_0600D070 +_0600D84C: + ldrh r0, [r5, #170] ; 0xaa + add r0, r0, #1 + strh r0, [r5, #170] ; 0xaa +_0600D858: + mov r1, #2 + ldr r0, _0600D8B8 ; =0x048080AE + strh r1, [r0] +_0600D864: + mov r0, #0 + mov r1, #14 + bl FUN_06009078 +_0600D870: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_0600D87C: .word 0x0380FFF4 +_0600D880: .word 0x0000042C +_0600D884: .word 0x04808010 +_0600D888: .word 0x048080B8 +_0600D88C: .word 0x048080AC +_0600D890: .word 0x0000FFFF +_0600D894: .word 0x04805F70 +_0600D898: .word 0x04805F72 +_0600D89C: .word 0x0480824C +_0600D8A0: .word 0x0480824E +_0600D8A4: .word 0x0480819C +_0600D8A8: .word 0x04808290 +_0600D8AC: .word 0x048080B0 +_0600D8B0: .word 0x048080B4 +_0600D8B4: .word 0x04808048 +_0600D8B8: .word 0x048080AE + + arm_func_start FUN_0600D8BC +FUN_0600D8BC: ; 0x0600D8BC + stmdb sp!, {r4, lr} + ldr r4, _0600DA44 ; =0x0380FFF4 + ldr r1, [r4] + ldr r0, _0600DA48 ; =0x000004DC + add r2, r1, r0 + ldr r0, _0600DA4C ; =0x0000042C + add r1, r1, r0 + mov r3, #4 + ldr r0, _0600DA50 ; =0x04808010 + strh r3, [r0] + ldr r0, _0600DA54 ; =0x048081A8 + ldrh r0, [r0] + ldr r3, [r4] + add r3, r3, #1536 ; 0x600 + ldrh r3, [r3, #144] ; 0x90 + ands r3, r3, #8 + beq _0600D9BC + ands r3, r0, #1024 ; 0x400 + beq _0600D9BC + ldr r3, _0600DA58 ; =0x048080B0 + ldrh r4, [r3] + ands r3, r4, #1 + beq _0600D924 + ldrh r3, [r1] + cmp r3, #0 + bne _0600D978 +_0600D924: + ands r3, r4, #4 + beq _0600D938 + ldrh r3, [r1, #20] + cmp r3, #0 + bne _0600D978 +_0600D938: + ands r3, r4, #8 + beq _0600D94C + ldrh r1, [r1, #40] ; 0x28 + cmp r1, #0 + bne _0600D978 +_0600D94C: + ldr r1, _0600DA5C ; =0x0480819C + ldrh r1, [r1] + ands r1, r1, #1 + bne _0600D978 + mov r4, #0 + ldr r3, _0600DA60 ; =0x04808032 + strh r4, [r3] + mov r1, #32768 ; 0x8000 + strh r1, [r3] + strh r4, [r2, #2] + b _0600D9BC +_0600D978: + ldrh r3, [r2, #2] + add r1, r3, #1 + strh r1, [r2, #2] + cmp r3, #12 + bls _0600D9BC + mov r1, #0 + strh r1, [r2, #2] + ldr r2, _0600DA60 ; =0x04808032 + strh r1, [r2] + mov r1, #32768 ; 0x8000 + strh r1, [r2] + ldr r1, _0600DA44 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r2, [r1, #254] ; 0xfe + add r2, r2, #1 + strh r2, [r1, #254] ; 0xfe +_0600D9BC: + ldr r1, _0600DA44 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #1536 ; 0x600 + ldrh r1, [r1, #144] ; 0x90 + ands r1, r1, #1 + beq _0600DA3C + ands r0, r0, #96 ; 0x60 + beq _0600DA3C + ldr r0, _0600DA64 ; =0x04808054 + ldrh r4, [r0] + ldr r0, _0600DA68 ; =0x04808052 + ldrh r0, [r0] + sub r0, r0, #16384 ; 0x4000 + mov r1, #2 + bl FUN_06001840 + cmp r4, r0 + bge _0600DA1C + ldr r0, _0600DA6C ; =0x04808050 + ldrh r0, [r0] + sub r0, r0, #16384 ; 0x4000 + mov r1, #2 + bl FUN_06001840 + cmp r4, r0 + bge _0600DA38 +_0600DA1C: + ldr r0, _0600DA70 ; =0x0480805A + ldrh r1, [r0] + ldr r0, _0600DA74 ; =0x04808056 + strh r1, [r0] + ldr r1, _0600DA78 ; =0x00008001 + ldr r0, _0600DA7C ; =0x04808030 + strh r1, [r0] +_0600DA38: + bl FUN_06009990 +_0600DA3C: + ldmia sp!, {r4, lr} + bx lr +_0600DA44: .word 0x0380FFF4 +_0600DA48: .word 0x000004DC +_0600DA4C: .word 0x0000042C +_0600DA50: .word 0x04808010 +_0600DA54: .word 0x048081A8 +_0600DA58: .word 0x048080B0 +_0600DA5C: .word 0x0480819C +_0600DA60: .word 0x04808032 +_0600DA64: .word 0x04808054 +_0600DA68: .word 0x04808052 +_0600DA6C: .word 0x04808050 +_0600DA70: .word 0x0480805A +_0600DA74: .word 0x04808056 +_0600DA78: .word 0x00008001 +_0600DA7C: .word 0x04808030 + + arm_func_start FUN_0600DA80 +FUN_0600DA80: ; 0x0600DA80 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r1, #8 + ldr r0, _0600DB94 ; =0x04808010 + strh r1, [r0] + ldr r0, _0600DB98 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #58] ; 0x3a + mov r0, r0, lsl #27 + movs r0, r0, lsr #31 + beq _0600DACC + ldr r0, _0600DB9C ; =0x0480819C + ldrh r0, [r0] + ands r0, r0, #1 + ldreq r1, _0600DBA0 ; =0x04808290 + ldreqh r0, [r1] + eoreq r0, r0, #1 + streqh r0, [r1] +_0600DACC: + ldr r0, _0600DB98 ; =0x0380FFF4 + ldr r1, [r0] + add r0, r1, #1536 ; 0x600 + ldrh r0, [r0, #144] ; 0x90 + ands r0, r0, #8 + beq _0600DB88 + add r3, r1, #836 ; 0x344 + ldr r0, _0600DBA4 ; =0x0000042C + add r1, r1, r0 + mov r2, #0 + mov r5, r2 + ldr r4, _0600DBA8 ; =0x04808032 + mov lr, #32768 ; 0x8000 + add ip, r3, #186 ; 0xba + mov r3, #20 +_0600DB08: + mul r0, r2, r3 + add r6, r1, r0 + ldrh r0, [r1, r0] + cmp r0, #0 + beq _0600DB7C + ldr r0, [r6, #8] + ldrh r6, [r0, #12] + ands r6, r6, #16384 ; 0x4000 + beq _0600DB7C + ldrh r6, [r0, #4] + ands r6, r6, #255 ; 0xff + beq _0600DB7C + add r7, r0, #12 + ldrh r6, [r0, #10] + add r6, r7, r6 + sub r6, r6, #7 + bic r7, r6, #1 + ldrh r6, [r7] + cmp r6, #0 + bne _0600DB7C + ldrh r6, [r7, #2] + cmp r6, #0 + bne _0600DB7C + strh r5, [r0, #4] + strh r5, [r4] + strh lr, [r4] + ldrh r0, [ip] + add r0, r0, #1 + strh r0, [ip] +_0600DB7C: + add r2, r2, #1 + cmp r2, #3 + bcc _0600DB08 +_0600DB88: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_0600DB94: .word 0x04808010 +_0600DB98: .word 0x0380FFF4 +_0600DB9C: .word 0x0480819C +_0600DBA0: .word 0x04808290 +_0600DBA4: .word 0x0000042C +_0600DBA8: .word 0x04808032 + + arm_func_start FUN_0600DBAC +FUN_0600DBAC: ; 0x0600DBAC + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_0600AC84 + ldr r1, _0600DBDC ; =0x0000FFFF + ldr r0, _0600DBE0 ; =0x048081AC + strh r1, [r0] + mov r1, #48 ; 0x30 + ldr r0, _0600DBE4 ; =0x04808010 + strh r1, [r0] + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600DBDC: .word 0x0000FFFF +_0600DBE0: .word 0x048081AC +_0600DBE4: .word 0x04808010 + + arm_func_start FUN_0600DBE8 +FUN_0600DBE8: ; 0x0600DBE8 + mov r1, #2048 ; 0x800 + ldr r0, _0600DBF8 ; =0x04808010 + strh r1, [r0] + bx lr +_0600DBF8: .word 0x04808010 + + arm_func_start FUN_0600DBFC +FUN_0600DBFC: ; 0x0600DBFC + ldr r0, _0600DC68 ; =0x0380FFF4 + ldr r0, [r0] + add r2, r0, #836 ; 0x344 + mov r1, #8192 ; 0x2000 + ldr r0, _0600DC6C ; =0x04808010 + strh r1, [r0] + mov r1, #13 + ldr r0, _0600DC70 ; =0x048080AC + strh r1, [r0] + ldrh r0, [r2, #26] + cmp r0, #1 + moveq r0, #2 + streqh r0, [r2, #26] + bxeq lr + cmp r0, #2 + moveq r0, #0 + streqh r0, [r2, #26] + bxeq lr + ldrh r0, [r2, #12] + cmp r0, #2 + bxne lr + ldrh r0, [r2, #8] + cmp r0, #64 ; 0x40 + movne r1, #0 + ldrne r0, _0600DC74 ; =0x04808048 + strneh r1, [r0] + bx lr +_0600DC68: .word 0x0380FFF4 +_0600DC6C: .word 0x04808010 +_0600DC70: .word 0x048080AC +_0600DC74: .word 0x04808048 + + arm_func_start FUN_0600DC78 +FUN_0600DC78: ; 0x0600DC78 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #4 + ldr r0, _0600DF48 ; =0x0380FFF4 + ldr r1, [r0] + add sl, r1, #836 ; 0x344 + add r4, r1, #796 ; 0x31c + ldr r0, _0600DF4C ; =0x0000042C + add r9, r1, r0 + mov r1, #16384 ; 0x4000 + ldr r0, _0600DF50 ; =0x04808010 + strh r1, [r0] + ldrh r0, [sl, #12] + cmp r0, #1 + beq _0600DCC4 + cmp r0, #2 + beq _0600DD80 + cmp r0, #3 + beq _0600DDC4 + b _0600DF3C +_0600DCC4: + ldr r0, [r9, #128] ; 0x80 + add r1, r0, #36 ; 0x24 + ldrh r0, [sl, #150] ; 0x96 + add r0, r1, r0 + add r6, r0, #8 + ldr r0, _0600DF54 ; =0x0380FFF0 + ldrh r5, [r0] + mov r0, r6 + and r1, r5, #255 ; 0xff + bl FUN_06009CD0 + add r0, r6, #1 + mov r1, r5, lsr #8 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + ldrh r0, [sl, #14] + cmp r0, #1 + bne _0600DD20 + ldrh r2, [r4, #32] + ldr r1, _0600DF58 ; =0x04808134 + ldrh r0, [r1] + add r0, r2, r0 + add r0, r0, #1 + strh r0, [r1] +_0600DD20: + ldr r0, _0600DF48 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1280 ; 0x500 + ldrh r1, [r0, #46] ; 0x2e + mvn r2, r1 + ldrh r1, [r0, #50] ; 0x32 + orr r1, r2, r1 + strh r1, [r0, #48] ; 0x30 + ldr r0, _0600DF5C ; =0x048080B6 + ldrh r1, [r0] + ands r0, r1, #24 + bne _0600DD5C + and r0, r1, #6 + cmp r0, #2 + bne _0600DD70 +_0600DD5C: + ldr r0, [r9, #140] ; 0x8c + bic r0, r0, #2 + str r0, [r9, #140] ; 0x8c + bl FUN_0600CBF0 + b _0600DF3C +_0600DD70: + ldr r0, [r9, #140] ; 0x8c + orr r0, r0, #2 + str r0, [r9, #140] ; 0x8c + b _0600DF3C +_0600DD80: + ldrh r0, [sl, #18] + cmp r0, #0 + ldreq r1, _0600DF60 ; =0x0000FFFF + ldreq r0, _0600DF58 ; =0x04808134 + streqh r1, [r0] + beq _0600DDB0 + ldrh r2, [r4, #32] + ldr r1, _0600DF58 ; =0x04808134 + ldrh r0, [r1] + add r0, r2, r0 + add r0, r0, #1 + strh r0, [r1] +_0600DDB0: + ldrh r0, [sl, #26] + cmp r0, #2 + bne _0600DDC4 + mov r0, #2 + bl FUN_0600B3F4 +_0600DDC4: + ldrh r0, [sl, #8] + cmp r0, #64 ; 0x40 + movne r1, #1 + bne _0600DE14 + mov r1, #0 + ldrh r0, [sl, #114] ; 0x72 + cmp r0, #1 + moveq r1, #1 + ldrh r0, [sl, #20] + cmp r0, #0 + beq _0600DE14 + ldrh r0, [sl, #118] ; 0x76 + cmp r0, #1 + beq _0600DE10 + cmp r0, #0 + bne _0600DE14 + ldrh r0, [sl, #116] ; 0x74 + cmp r0, #1 + bne _0600DE14 +_0600DE10: + mov r1, #1 +_0600DE14: + cmp r1, #0 + ldrne r1, _0600DF64 ; =0x04808038 + ldrneh r0, [r1] + orrne r0, r0, #1 + strneh r0, [r1] + ldreq r1, _0600DF64 ; =0x04808038 + ldreqh r0, [r1] + biceq r0, r0, #1 + streqh r0, [r1] + ldr r0, _0600DF68 ; =0x04808118 + ldrh r0, [r0] + cmp r0, #10 + movhi r1, #0 + ldrhi r0, _0600DF6C ; =0x04808048 + strhih r1, [r0] + ldrh r0, [sl, #114] ; 0x72 + sub r0, r0, #1 + strh r0, [sl, #114] ; 0x72 + ldrh r0, [sl, #114] ; 0x72 + cmp r0, #0 + ldreqh r0, [sl, #112] ; 0x70 + streqh r0, [sl, #114] ; 0x72 + ldrh r1, [sl, #118] ; 0x76 + sub r0, r1, #1 + strh r0, [sl, #118] ; 0x76 + cmp r1, #0 + ldreqh r0, [sl, #116] ; 0x74 + subeq r0, r0, #1 + streqh r0, [sl, #118] ; 0x76 + mov r8, #0 + mov r6, #2 + mov fp, r8 + mov r5, #14 + mov r4, #20 +_0600DE9C: + mul r0, r8, r4 + add r7, r9, r0 + ldrh r0, [r9, r0] + cmp r0, #0 + beq _0600DF24 + ldr r2, [r7, #12] + ldrh r0, [r2, #8] + cmp r0, #0 + bne _0600DF24 + ldr r1, [sl, #168] ; 0xa8 + ldrh r0, [r2, #4] + sub r0, r1, r0 + mov r0, r0, lsl #16 + mov r1, r0, lsr #16 + ldrh r0, [sl, #140] ; 0x8c + cmp r1, r0 + bls _0600DEF4 + ldr r2, [r7, #8] + ldrh r2, [r2, #12] + mov r2, r2, lsl #28 + movs r2, r2, lsr #30 + bne _0600DEFC +_0600DEF4: + cmp r1, r0, lsl #3 + bls _0600DF24 +_0600DEFC: + mov r0, r8 + bl FUN_06014FC8 + ldr r0, [r7, #8] + strh r6, [r0] + mov r0, fp + mov r1, r5 + bl FUN_06009078 + ldrh r0, [r9, #174] ; 0xae + add r0, r0, #1 + strh r0, [r9, #174] ; 0xae +_0600DF24: + add r8, r8, #1 + cmp r8, #2 + bcc _0600DE9C + mov r1, #13 + ldr r0, _0600DF70 ; =0x048080AE + strh r1, [r0] +_0600DF3C: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_0600DF48: .word 0x0380FFF4 +_0600DF4C: .word 0x0000042C +_0600DF50: .word 0x04808010 +_0600DF54: .word 0x0380FFF0 +_0600DF58: .word 0x04808134 +_0600DF5C: .word 0x048080B6 +_0600DF60: .word 0x0000FFFF +_0600DF64: .word 0x04808038 +_0600DF68: .word 0x04808118 +_0600DF6C: .word 0x04808048 +_0600DF70: .word 0x048080AE + + arm_func_start FUN_0600DF74 +FUN_0600DF74: ; 0x0600DF74 + stmdb sp!, {r4, lr} + ldr r0, _0600DFF8 ; =0x0380FFF4 + ldr r0, [r0] + add r4, r0, #836 ; 0x344 + mov r1, #32768 ; 0x8000 + ldr r0, _0600DFFC ; =0x04808010 + strh r1, [r0] + ldrh r0, [r4, #8] + cmp r0, #64 ; 0x40 + bne _0600DFE8 + ldrh r0, [r4, #126] ; 0x7e + cmp r0, #0 + beq _0600DFE8 + ldrh r1, [r4, #114] ; 0x72 + ldrh r0, [r4, #112] ; 0x70 + cmp r1, r0 + bne _0600DFE8 + ldrh r0, [r4, #128] ; 0x80 + add r0, r0, #1 + strh r0, [r4, #128] ; 0x80 + ldrh r1, [r4, #128] ; 0x80 + ldrh r0, [r4, #126] ; 0x7e + cmp r1, r0 + bls _0600DFE8 + mov r0, #0 + strh r0, [r4, #128] ; 0x80 + mov r0, #1 + mov r1, #13 + bl FUN_06009078 +_0600DFE8: + mov r0, #1 + strh r0, [r4, #16] + ldmia sp!, {r4, lr} + bx lr +_0600DFF8: .word 0x0380FFF4 +_0600DFFC: .word 0x04808010 + + arm_func_start FUN_0600E000 +FUN_0600E000: ; 0x0600E000 + stmdb sp!, {r4, r5, r6, r7, lr} + + arm_func_start FUN_0600E004 +FUN_0600E004: ; 0x0600E004 + sub sp, sp, #4 + mov r7, #1 + ldr r5, _0600E0D8 ; =0x04808010 + ldr r4, _0600E0DC ; =0x04808012 +_0600E014: + ldrh r1, [r5] + ldrh r0, [r4] + ands r6, r1, r0 + beq _0600E0BC + ands r0, r6, #128 ; 0x80 + beq _0600E030 + bl FUN_0600CF38 +_0600E030: + ands r0, r6, #64 ; 0x40 + beq _0600E03C + bl FUN_0600CCC4 +_0600E03C: + ands r0, r6, #32768 ; 0x8000 + beq _0600E048 + bl FUN_0600DF74 +_0600E048: + ands r0, r6, #16384 ; 0x4000 + beq _0600E054 + bl FUN_0600DC78 +_0600E054: + ands r0, r6, #8192 ; 0x2000 + beq _0600E060 + bl FUN_0600DBFC +_0600E060: + ands r0, r6, #2048 ; 0x800 + beq _0600E06C + bl FUN_0600DBE8 +_0600E06C: + ands r0, r6, #8 + beq _0600E078 + bl FUN_0600DA80 +_0600E078: + ands r0, r6, #4 + beq _0600E084 + bl FUN_0600D8BC +_0600E084: + ands r0, r6, #1 + beq _0600E090 + bl FUN_0600D180 +_0600E090: + ands r0, r6, #48 ; 0x30 + beq _0600E09C + bl FUN_0600DBAC +_0600E09C: + ands r0, r6, #2 + beq _0600E0A8 + bl FUN_0600D610 +_0600E0A8: + ands r0, r6, #4096 ; 0x1000 + beq _0600E014 + mov r0, r7 + bl FUN_0600D070 + b _0600E014 +_0600E0BC: + ldr r1, _0600E0E0 ; =0x0380FFF8 + ldr r0, [r1] + orr r0, r0, #16777216 ; 0x1000000 + str r0, [r1] + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_0600E0D8: .word 0x04808010 +_0600E0DC: .word 0x04808012 +_0600E0E0: .word 0x0380FFF8 + + arm_func_start FUN_0600E0E4 +FUN_0600E0E4: ; 0x0600E0E4 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + ldr r0, _0600E154 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + add r1, r5, #34 ; 0x22 + bl FUN_06009724 + cmp r0, #0 + moveq r0, #0 + beq _0600E14C + add r4, r0, #16 + add r0, r4, #8 + mov r1, r6 + add r2, r5, #12 + bl FUN_06009DA4 + sub r0, r5, #24 + strh r0, [r4, #6] + ldrh r0, [r4, #14] + and r1, r0, #255 ; 0xff + ldrh r0, [r4, #18] + and r0, r0, #255 ; 0xff + mov r0, r0, lsl #16 + orr r0, r1, r0, lsr #8 + strh r0, [r4, #14] + mov r0, r4 +_0600E14C: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600E154: .word 0x0380FFF4 + + arm_func_start FUN_0600E158 +FUN_0600E158: ; 0x0600E158 + stmdb sp!, {r4, lr} + ldr r0, _0600E210 ; =0x0380FFF4 + ldr r1, [r0] + add r4, r1, #380 ; 0x17c + ldr r0, _0600E214 ; =0x04808088 + ldrh r0, [r0] + cmp r0, #0 + bne _0600E19C + ldrh r0, [r4, #56] ; 0x38 + cmp r0, #0 + beq _0600E19C + mov r1, #8 + ldr r0, _0600E218 ; =0x048080AE + strh r1, [r0] + mov r0, #2 + bl FUN_06015C78 + b _0600E208 +_0600E19C: + add r0, r1, #1280 ; 0x500 + ldrh r1, [r0, #46] ; 0x2e + ldrh r0, [r0, #50] ; 0x32 + mvn r0, r0 + ands r0, r1, r0 + bne _0600E1D4 + mov r1, #8 + ldr r0, _0600E218 ; =0x048080AE + strh r1, [r0] + ldrh r0, [r4, #56] ; 0x38 + cmp r0, #0 + beq _0600E1D4 + mov r0, #2 + bl FUN_06015C78 +_0600E1D4: + mov r1, #5 + ldr r0, _0600E218 ; =0x048080AE + strh r1, [r0] + ldrh r0, [r4, #44] ; 0x2c + cmp r0, #0 + beq _0600E1F4 + mov r0, #1 + bl FUN_06015C78 +_0600E1F4: + ldrh r0, [r4, #32] + cmp r0, #0 + beq _0600E208 + mov r0, #0 + bl FUN_06015C78 +_0600E208: + ldmia sp!, {r4, lr} + bx lr +_0600E210: .word 0x0380FFF4 +_0600E214: .word 0x04808088 +_0600E218: .word 0x048080AE + + arm_func_start FUN_0600E21C +FUN_0600E21C: ; 0x0600E21C + stmdb sp!, {r4, lr} + ldr r0, _0600E300 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _0600E304 ; =0x0000042C + add r4, r1, r0 + ldrh r0, [r4, #60] ; 0x3c + cmp r0, #0 + beq _0600E2F8 + ldr r0, [r4, #144] ; 0x90 + ldrh r1, [r0, #16] + ldr r0, [r4, #68] ; 0x44 + ldrh r0, [r0, #2] + cmp r1, r0 + beq _0600E258 + bl FUN_0600E308 +_0600E258: + ldr r0, [r4, #68] ; 0x44 + ldrh r0, [r0, #4] + ands r2, r0, #255 ; 0xff + ldreq r0, _0600E300 ; =0x0380FFF4 + ldreq r1, [r0] + ldreq r0, [r1, #1440] ; 0x5a0 + addeq r0, r0, #1 + streq r0, [r1, #1440] ; 0x5a0 + beq _0600E290 + ldr r0, _0600E300 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, [r1, #1440] ; 0x5a0 + add r0, r0, r2 + str r0, [r1, #1440] ; 0x5a0 +_0600E290: + ldrh r0, [r4, #64] ; 0x40 + add r0, r0, #1 + strh r0, [r4, #64] ; 0x40 + ldr r2, [r4, #144] ; 0x90 + ldrh r1, [r2, #16] + ldr r0, [r4, #68] ; 0x44 + ldrh r0, [r0, #2] + eor r0, r1, r0 + strh r0, [r2, #18] + ldr r0, [r4, #144] ; 0x90 + ldrh r0, [r0, #16] + strh r0, [r4, #160] ; 0xa0 + mov r0, #0 + strh r0, [r4, #60] ; 0x3c + ldr r0, _0600E300 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #234] ; 0xea + cmp r0, #0 + beq _0600E2E4 + bl FUN_0600B21C +_0600E2E4: + ldr r0, _0600E300 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + ldr r1, [r4, #144] ; 0x90 + bl FUN_0600F8DC +_0600E2F8: + ldmia sp!, {r4, lr} + bx lr +_0600E300: .word 0x0380FFF4 +_0600E304: .word 0x0000042C + + arm_func_start FUN_0600E308 +FUN_0600E308: ; 0x0600E308 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #52 ; 0x34 + ldr sl, _0600E6B8 ; =0x0380FFF4 + ldr r1, [sl] + ldr r0, _0600E6BC ; =0x000004DC + add r7, r1, r0 + add r6, r1, #380 ; 0x17c + mov r0, #0 + str r0, [sp] + str r0, [sp, #12] + mov r8, #1 + str r0, [sp, #40] ; 0x28 + mov r0, #7 + str r0, [sp, #36] ; 0x24 + ldr r0, [sp] + str r0, [sp, #32] + str r0, [sp, #24] + mov fp, #2 + mov r0, #6 + str r0, [sp, #28] + ldr r0, [sp] + str r0, [sp, #16] + mov r0, #9 + str r0, [sp, #20] + ldr r0, [sp] + str r0, [sp, #44] ; 0x2c + mov r0, #8 + str r0, [sp, #8] + mov r0, #16 + str r0, [sp, #4] +_0600E380: + ldr r0, _0600E6C0 ; =0x0480805A + ldrh r5, [r0] + ldrh r0, [r7, #4] + cmp r5, r0 + beq _0600E6AC + ldr r0, _0600E6C4 ; =0x000008C6 + cmp r5, r0 + bcc _0600E3A4 + bl FUN_0600AC84 +_0600E3A4: + mov r4, r5, lsl #1 + ldr r0, _0600E6C8 ; =0x04804000 + add r5, r0, r5, lsl #1 + add r0, r5, #2 + bl FUN_0600CB5C + ldrh r9, [r0] + add r0, r4, #75497472 ; 0x4800000 + add r0, r0, #16384 ; 0x4000 + ldrh r1, [r0] + ldr r0, _0600E6CC ; =0x0000FFFF + cmp r1, r0 + ldreq r0, _0600E6C0 ; =0x0480805A + streqh r9, [r0] + beq _0600E69C + add r0, r5, #8 + bl FUN_0600CB5C + ldrh r1, [r0] + mov r0, r5 + bl FUN_0600E0E4 + movs r4, r0 + ldr r0, _0600E6C0 ; =0x0480805A + strh r9, [r0] + bne _0600E428 + ldrh r0, [r5] + and r0, r0, #15 + cmp r0, #12 + bne _0600E41C + ldr r0, [sp, #4] + bl FUN_0600994C + b _0600E69C +_0600E41C: + ldr r0, [sp, #8] + bl FUN_0600994C + b _0600E69C +_0600E428: + ldr r0, [sl] + add r0, r0, #1536 ; 0x600 + ldrh r0, [r0, #144] ; 0x90 + ands r0, r0, #8 + beq _0600E44C + ldrh r0, [r4, #20] + ands r0, r0, #16384 ; 0x4000 + ldrne r0, [sp, #12] + strneh r0, [r7, #2] +_0600E44C: + ldrh r1, [r4, #8] + mov r9, r8 + ands r0, r1, #512 ; 0x200 + beq _0600E4A4 + ldrh r0, [r4, #20] + mov r0, r0, lsl #21 + mov r0, r0, lsr #31 + cmp r0, #1 + beq _0600E480 + ldrh r0, [r4, #42] ; 0x2a + mov r0, r0, lsl #28 + movs r0, r0, lsr #28 + beq _0600E644 +_0600E480: + ldr r9, [sp, #16] + add r0, r6, #12 + add r1, r6, #108 ; 0x6c + sub r2, r4, #16 + bl FUN_0600962C + mov r0, fp + ldr r1, [sp, #20] + bl FUN_06009078 + b _0600E644 +_0600E4A4: + and r0, r1, #15 + cmp r0, #15 + addls pc, pc, r0, lsl #2 + b _0600E644 + b _0600E540 + b _0600E528 + b _0600E644 + b _0600E644 + b _0600E644 + b _0600E570 + b _0600E644 + b _0600E644 + b _0600E4F4 + b _0600E644 + b _0600E644 + b _0600E644 + b _0600E5C8 + b _0600E614 + b _0600E5A8 + b _0600E5A8 +_0600E4F4: + ldrh r0, [r4, #20] + and r0, r0, #15 + cmp r0, #8 + bne _0600E644 + ldr r9, [sp, #24] + add r0, r6, #12 + add r1, r6, #72 ; 0x48 + sub r2, r4, #16 + bl FUN_0600962C + mov r0, fp + ldr r1, [sp, #28] + bl FUN_06009078 + b _0600E644 +_0600E528: + ldrh r0, [r4, #20] + cmp r0, #128 ; 0x80 + bne _0600E644 + mov r0, r4 + bl FUN_06017FDC + b _0600E644 +_0600E540: + ldrh r0, [r4, #20] + ands r0, r0, #15 + bne _0600E644 + ldr r9, [sp, #32] + add r0, r6, #12 + add r1, r6, #96 ; 0x60 + sub r2, r4, #16 + bl FUN_0600962C + mov r0, r8 + ldr r1, [sp, #36] ; 0x24 + bl FUN_06009078 + b _0600E644 +_0600E570: + ldrh r1, [r4, #20] + ldr r0, _0600E6D0 ; =0x0000E7FF + and r0, r1, r0 + cmp r0, #164 ; 0xa4 + bne _0600E644 + ldr r9, [sp, #40] ; 0x28 + add r0, r6, #12 + add r1, r6, #96 ; 0x60 + sub r2, r4, #16 + bl FUN_0600962C + mov r0, r8 + ldr r1, [sp, #36] ; 0x24 + bl FUN_06009078 + b _0600E644 +_0600E5A8: + ldrh r1, [r4, #20] + ldr r0, _0600E6D4 ; =0x0000E7BF + and r0, r1, r0 + cmp r0, #280 ; 0x118 + bne _0600E644 + mov r0, r4 + bl FUN_06018780 + b _0600E644 +_0600E5C8: + ldrh r1, [r4, #20] + ldr r0, _0600E6D0 ; =0x0000E7FF + and r0, r1, r0 + cmp r0, #552 ; 0x228 + bne _0600E644 + ldr r0, [sl] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #84] ; 0x54 + cmp r0, #0 + ldreq r0, _0600E6D8 ; =0x0480803C + streqh r8, [r0] + ldr r1, [sl] + ldr r0, [r1, #1452] ; 0x5ac + add r0, r0, #1 + str r0, [r1, #1452] ; 0x5ac + mov r0, r4 + bl FUN_06018944 + mov r9, r0 + b _0600E644 +_0600E614: + ldrh r1, [r4, #20] + ldr r0, _0600E6D0 ; =0x0000E7FF + and r0, r1, r0 + cmp r0, #536 ; 0x218 + bne _0600E644 + ldr r1, [sl] + ldr r0, [r1, #1456] ; 0x5b0 + add r0, r0, #1 + str r0, [r1, #1456] ; 0x5b0 + mov r0, r4 + bl FUN_0601869C + mov r9, r0 +_0600E644: + cmp r9, #0 + beq _0600E658 + add r0, r6, #12 + sub r1, r4, #16 + bl FUN_060096A0 +_0600E658: + ldr r0, [sl] + add r0, r0, #1536 ; 0x600 + ldrh r0, [r0, #144] ; 0x90 + ands r0, r0, #1 + beq _0600E69C + ldr r1, [sp, #44] ; 0x2c +_0600E670: + ldr r0, _0600E6DC ; =0x04805F60 + cmp r5, r0 + ldrcs r0, [sl] + addcs r0, r0, #768 ; 0x300 + ldrcsh r0, [r0, #222] ; 0xde + subcs r5, r5, r0 + ldr r0, _0600E6CC ; =0x0000FFFF + strh r0, [r5], #2 + add r1, r1, #1 + cmp r1, #7 + bcc _0600E670 +_0600E69C: + ldr r0, [sp] + add r0, r0, #1 + str r0, [sp] + b _0600E380 +_0600E6AC: + add sp, sp, #52 ; 0x34 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_0600E6B8: .word 0x0380FFF4 +_0600E6BC: .word 0x000004DC +_0600E6C0: .word 0x0480805A +_0600E6C4: .word 0x000008C6 +_0600E6C8: .word 0x04804000 +_0600E6CC: .word 0x0000FFFF +_0600E6D0: .word 0x0000E7FF +_0600E6D4: .word 0x0000E7BF +_0600E6D8: .word 0x0480803C +_0600E6DC: .word 0x04805F60 + + arm_func_start FUN_0600E6E0 +FUN_0600E6E0: ; 0x0600E6E0 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #4 + ldr r0, _0600E8D8 ; =0x0380FFF4 + ldr r1, [r0] + add sl, r1, #836 ; 0x344 + ldr r0, _0600E8DC ; =0x0000042C + add r9, r1, r0 + mov r8, #2 + mov r7, #0 + mov r6, #32768 ; 0x8000 + mov fp, #3 + str r8, [sp] + mov r5, r8 + mov r4, #1 +_0600E718: + mov r0, #20 + mla r2, r8, r0, r9 + mov r3, r8, lsl #2 + ldr r0, _0600E8E0 ; =0x048080A0 + add r1, r0, r8, lsl #2 + add r0, r3, #75497472 ; 0x4800000 + add r0, r0, #32768 ; 0x8000 + ldrh r0, [r0, #160] ; 0xa0 + ands r0, r0, #32768 ; 0x8000 + bne _0600E8C4 + ldrh r0, [r2] + cmp r0, #0 + beq _0600E8C4 + ldr r3, [r2, #12] + cmp r3, #0 + beq _0600E8A4 + ldr r0, [r2, #8] + ldrh r0, [r0] + strh r0, [r3, #8] + ldr r0, [r2, #8] + ldrh r3, [r0, #12] + ldr r0, [r2, #12] + strh r3, [r0, #20] + ldr r3, [r2, #8] + ldrh r0, [r3, #12] + ands r0, r0, #16384 ; 0x4000 + beq _0600E870 + ldr r0, _0600E8D8 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1536 ; 0x600 + ldrh r0, [r0, #144] ; 0x90 + ands r0, r0, #8 + beq _0600E854 + add ip, r3, #12 + ldrh r0, [r3, #10] + add r0, ip, r0 + sub r0, r0, #7 + bic ip, r0, #1 + ldrh r0, [ip] + cmp r0, #0 + bne _0600E854 + ldrh r0, [ip, #2] + cmp r0, #0 + bne _0600E854 + ldr r3, [sl, #168] ; 0xa8 + ldr r0, [r2, #12] + ldrh r0, [r0, #4] + sub r0, r3, r0 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + ldr r3, _0600E8E4 ; =0x04808032 + strh r7, [r3] + strh r6, [r3] + ldrh r3, [sl, #186] ; 0xba + add r3, r3, #1 + strh r3, [sl, #186] ; 0xba + ldrh r3, [sl, #140] ; 0x8c + cmp r0, r3 + bls _0600E83C + ldr r0, [r2, #12] + strh r5, [r0, #8] + ldrh r0, [r2, #4] + add r0, r0, #1 + strh r0, [r2, #4] + ldrh r0, [r9, #174] ; 0xae + add r0, r0, #1 + strh r0, [r9, #174] ; 0xae + ldr r0, [r2, #12] + mov r1, r4 + ldr r2, [r2, #16] + mov lr, pc + bx r2 + b _0600E8C4 +_0600E83C: + ldr r0, [r2, #12] + strh r7, [r0, #12] + ldrh r0, [r1] + orr r0, r0, #32768 ; 0x8000 + strh r0, [r1] + b _0600E8C4 +_0600E854: + ldr r1, [r2, #12] + ldrh r0, [r1, #12] + ldrh r3, [r3, #4] + and r3, r3, #255 ; 0xff + add r0, r0, r3 + strh r0, [r1, #12] + b _0600E880 +_0600E870: + ldrh r0, [r3, #4] + and r1, r0, #255 ; 0xff + ldr r0, [r2, #12] + strh r1, [r0, #12] +_0600E880: + ldrh r0, [r2, #4] + add r0, r0, #1 + strh r0, [r2, #4] + ldr r0, [r2, #12] + ldr r1, [sp] + ldr r2, [r2, #16] + mov lr, pc + bx r2 + b _0600E8C4 +_0600E8A4: + ldrh r0, [r2, #4] + add r0, r0, #1 + strh r0, [r2, #4] + ldr r0, [r2, #8] + mov r1, fp + ldr r2, [r2, #16] + mov lr, pc + bx r2 +_0600E8C4: + subs r8, r8, #1 + bpl _0600E718 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_0600E8D8: .word 0x0380FFF4 +_0600E8DC: .word 0x0000042C +_0600E8E0: .word 0x048080A0 +_0600E8E4: .word 0x04808032 + + arm_func_start FUN_0600E8E8 +FUN_0600E8E8: ; 0x0600E8E8 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _0600E938 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #232] ; 0xe8 + cmp r0, #0 + beq _0600E90C + bl FUN_06014670 +_0600E90C: + ldr r0, _0600E938 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #58] ; 0x3a + mov r0, r0, lsl #25 + movs r0, r0, lsr #31 + beq _0600E92C + bl FUN_0600FDE4 +_0600E92C: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600E938: .word 0x0380FFF4 + + arm_func_start FUN_0600E93C +FUN_0600E93C: ; 0x0600E93C + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + ldr r0, _0600EA08 ; =0x0380FFF4 + ldr r2, [r0] + ldr r1, [r2, #796] ; 0x31c + mov r0, #28 + mul r0, r6, r0 + add r4, r1, r0 + ldrh r0, [r1, r0] + cmp r0, #0 + addeq r0, r2, #1280 ; 0x500 + ldreqh r1, [r0, #44] ; 0x2c + addeq r1, r1, #1 + streqh r1, [r0, #44] ; 0x2c + mov r0, #0 + mov r1, r4 + mov r2, #26 + bl FUN_0600055C + ldr r0, _0600EA08 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1280 ; 0x500 + ldrh r2, [r0, #52] ; 0x34 + mov r1, #1 + mvn r1, r1, lsl r6 + and r1, r2, r1 + strh r1, [r0, #52] ; 0x34 + mov r0, r6, lsl #16 + mov r0, r0, lsr #16 + mov r1, #0 + bl FUN_0600F218 + mov r0, r6 + bl FUN_0600F1B4 + add r0, r4, #4 + mov r1, r5 + bl FUN_0600AF4C + ldr r0, _0600EA0C ; =0x0000FFFF + strh r0, [r4, #20] + ldr r0, _0600EA08 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #166] ; 0xa6 + strh r0, [r4, #16] + ldrh r0, [r4, #26] + strh r0, [r4, #24] + mov r0, r6, lsl #16 + mov r0, r0, lsr #16 + mov r1, #32 + bl FUN_0600F294 + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600EA08: .word 0x0380FFF4 +_0600EA0C: .word 0x0000FFFF + + arm_func_start FUN_0600EA10 +FUN_0600EA10: ; 0x0600EA10 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + ldr r0, _0600EA90 ; =0x0380FFF4 + ldr r1, [r0] + ldr r5, [r1, #796] ; 0x31c + ldr r0, _0600EA94 ; =0x0000052C + add r4, r1, r0 + add r0, r1, #768 ; 0x300 + ldrh r9, [r0, #34] ; 0x22 + mov sl, #1 + mov r8, #0 + mov r7, #26 + mov r6, #28 + b _0600EA58 +_0600EA44: + mov r0, r8 + mla r1, sl, r6, r5 + mov r2, r7 + bl FUN_0600055C + add sl, sl, #1 +_0600EA58: + cmp sl, r9 + bcc _0600EA44 + mov r2, #1 + strh r2, [r4] + mov r1, #0 + strh r1, [r4, #2] + strh r2, [r4, #4] + ldr r0, _0600EA98 ; =0x0000FFFE + strh r0, [r4, #6] + strh r1, [r4, #12] + strh r1, [r4, #8] + strh r2, [r4, #14] + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + bx lr +_0600EA90: .word 0x0380FFF4 +_0600EA94: .word 0x0000052C +_0600EA98: .word 0x0000FFFE + + arm_func_start FUN_0600EA9C +FUN_0600EA9C: ; 0x0600EA9C + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r0, _0600EB34 ; =0x0380FFF4 + ldr r0, [r0] + ldr r5, [r0, #796] ; 0x31c + add r0, r0, #768 ; 0x300 + ldrh r4, [r0, #34] ; 0x22 + mov r0, #0 + mov r1, r5 + mov r2, #28 + mul r2, r4, r2 + bl FUN_0600055C + mov r0, #0 + ldr r1, _0600EB34 ; =0x0380FFF4 + ldr r2, [r1] + ldr r1, _0600EB38 ; =0x0000052C + add r1, r2, r1 + mov r2, #16 + bl FUN_0600055C + ldr r2, _0600EB3C ; =0x0000FFFF + strh r2, [r5, #26] + mov r3, #1 + mov r0, #28 + b _0600EB08 +_0600EAFC: + mla r1, r3, r0, r5 + strh r2, [r1, #26] + add r3, r3, #1 +_0600EB08: + cmp r3, r4 + bcc _0600EAFC + mov r0, #0 + ldr r1, _0600EB40 ; =_06019384 + bl FUN_0600E93C + mov r0, #0 + mov r1, #64 ; 0x40 + bl FUN_0600F294 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_0600EB34: .word 0x0380FFF4 +_0600EB38: .word 0x0000052C +_0600EB3C: .word 0x0000FFFF +_0600EB40: .word _06019384 + + arm_func_start FUN_0600EB44 +FUN_0600EB44: ; 0x0600EB44 + stmdb sp!, {r4, lr} + mov r4, r0 + bl FUN_06014EB8 + mov r3, #0 + ldr r2, _0600EB88 ; =0x0380FFF4 + ldr r0, [r2] + ldr r1, [r0, #796] ; 0x31c + mov r0, #28 + mul r0, r4, r0 + strh r3, [r1, r0] + ldr r0, [r2] + add r0, r0, #1280 ; 0x500 + ldrh r1, [r0, #44] ; 0x2c + sub r1, r1, #1 + strh r1, [r0, #44] ; 0x2c + ldmia sp!, {r4, lr} + bx lr +_0600EB88: .word 0x0380FFF4 + + arm_func_start FUN_0600EB8C +FUN_0600EB8C: ; 0x0600EB8C + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #44 ; 0x2c + ldr r0, _0600ED6C ; =0x0380FFF4 + ldr sl, [r0] + ldr r0, [sl, #796] ; 0x31c + add r9, r0, #28 + add r0, sl, #1280 ; 0x500 + ldrh r6, [r0, #44] ; 0x2c + mov r7, #0 + mov r8, #1 + mov fp, r8 + str r7, [sp] + str r8, [sp, #4] + str r7, [sp, #8] + mov r4, #32 + str r8, [sp, #20] + str r7, [sp, #24] + str r8, [sp, #32] + str r8, [sp, #16] + str r7, [sp, #36] ; 0x24 + str r8, [sp, #28] + str r8, [sp, #12] + b _0600ED50 +_0600EBE8: + ldrh r0, [r9] + cmp r0, #0 + beq _0600ED40 + ldrh r1, [r9, #24] + cmp r1, #0 + beq _0600ED3C + ldr r0, _0600ED70 ; =0x0000FFFF + cmp r1, r0 + beq _0600ED3C + sub r0, r1, #1 + strh r0, [r9, #24] + ldrh r0, [r9, #24] + cmp r0, #0 + bne _0600ED3C + ldrh r0, [r9] + cmp r0, #32 + bcc _0600ED24 + mov r0, r8 + bl FUN_0600EFF0 + mov r5, r0 + mov r0, r8, lsl #16 + mov r0, r0, lsr #16 + mov r1, r4 + bl FUN_0600F294 + mov r0, r8 + bl FUN_06014EB8 + add r0, sl, #768 ; 0x300 + ldrh r1, [r0, #80] ; 0x50 + cmp r1, #1 + bne _0600ECD4 + cmp r5, #32 + bls _0600ED24 + ldr r0, _0600ED6C ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1280 ; 0x500 + ldrh r1, [r0, #52] ; 0x34 + orr r1, r1, fp, lsl r8 + strh r1, [r0, #52] ; 0x34 + mov r0, r8, lsl #16 + mov r0, r0, lsr #16 + ldr r1, [sp] + bl FUN_0600F218 + mov r0, r8 + bl FUN_0600F1B4 + add r0, r9, #4 + ldr r1, [sp, #4] + ldr r2, [sp, #8] + bl FUN_06013E9C + cmp r0, #0 + beq _0600ECC4 + ldr r1, [sp, #12] + strh r1, [r0] + bl FUN_06014C6C + add r7, r7, #1 + b _0600ED48 +_0600ECC4: + add r0, r9, #4 + ldr r1, [sp, #16] + bl FUN_06010130 + b _0600ED24 +_0600ECD4: + ldrh r0, [r0, #204] ; 0xcc + cmp r8, r0 + bne _0600ED24 + add r0, r9, #4 + ldr r1, [sp, #20] + ldr r2, [sp, #24] + bl FUN_06013E9C + cmp r0, #0 + beq _0600ED0C + ldr r1, [sp, #28] + strh r1, [r0] + bl FUN_06014C6C + add r7, r7, #1 + b _0600ED48 +_0600ED0C: + mov r0, r4 + bl FUN_0600AF68 + bl FUN_0600B054 + add r0, r9, #4 + ldr r1, [sp, #32] + bl FUN_06010130 +_0600ED24: + ldr r0, [sp, #36] ; 0x24 + strh r0, [r9] + add r0, sl, #1280 ; 0x500 + ldrh r1, [r0, #44] ; 0x2c + sub r1, r1, #1 + strh r1, [r0, #44] ; 0x2c +_0600ED3C: + add r7, r7, #1 +_0600ED40: + cmp r7, r6 + bcs _0600ED60 +_0600ED48: + add r8, r8, #1 + add r9, r9, #28 +_0600ED50: + add r0, sl, #768 ; 0x300 + ldrh r0, [r0, #34] ; 0x22 + cmp r8, r0 + bcc _0600EBE8 +_0600ED60: + add sp, sp, #44 ; 0x2c + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_0600ED6C: .word 0x0380FFF4 +_0600ED70: .word 0x0000FFFF + + arm_func_start FUN_0600ED74 +FUN_0600ED74: ; 0x0600ED74 + stmdb sp!, {r4, r5, r6, lr} + mov r5, r0 + bl FUN_0600EFF0 + cmp r0, #64 ; 0x40 + bne _0600EE10 + ldr r0, _0600EE18 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r1, [r0, #216] ; 0xd8 + ldr r0, _0600EE1C ; =0x0480425C + add r6, r1, r0 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + mov r4, r0 + cmp r5, #0 + bne _0600EDD0 + add r0, r6, #4 + bl FUN_06009CB0 + and r1, r0, #254 ; 0xfe + add r0, r6, #4 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + b _0600EE08 +_0600EDD0: + mov r0, r5 + bl FUN_0600EF18 + mov r5, r0 + add r0, r6, #5 + add r6, r0, r5, lsr #3 + mov r0, r6 + bl FUN_06009CB0 + mov r2, #1 + and r1, r5, #7 + mvn r1, r2, lsl r1 + and r1, r1, r0 + mov r0, r6 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 +_0600EE08: + mov r0, r4 + bl FUN_06009070 +_0600EE10: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600EE18: .word 0x0380FFF4 +_0600EE1C: .word 0x0480425C + + arm_func_start FUN_0600EE20 +FUN_0600EE20: ; 0x0600EE20 + stmdb sp!, {r4, r5, r6, lr} + mov r5, r0 + bl FUN_0600EFF0 + cmp r0, #64 ; 0x40 + bne _0600EED0 + ldr r0, _0600EED8 ; =0x0380FFF4 + ldr r2, [r0] + add r0, r2, #1280 ; 0x500 + ldrh r1, [r0, #52] ; 0x34 + mov r0, #1 + mov r0, r0, lsl r5 + ands r0, r1, r0 + bne _0600EED0 + add r0, r2, #768 ; 0x300 + ldrh r1, [r0, #216] ; 0xd8 + ldr r0, _0600EEDC ; =0x0480425C + add r6, r1, r0 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + mov r4, r0 + cmp r5, #0 + bne _0600EE94 + add r0, r6, #4 + bl FUN_06009CB0 + orr r1, r0, #1 + add r0, r6, #4 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + b _0600EEC8 +_0600EE94: + mov r0, r5 + bl FUN_0600EF18 + mov r5, r0 + add r0, r6, #5 + add r6, r0, r5, lsr #3 + mov r0, r6 + bl FUN_06009CB0 + mov r2, #1 + and r1, r5, #7 + orr r1, r0, r2, lsl r1 + mov r0, r6 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 +_0600EEC8: + mov r0, r4 + bl FUN_06009070 +_0600EED0: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600EED8: .word 0x0380FFF4 +_0600EEDC: .word 0x0480425C + + arm_func_start FUN_0600EEE0 +FUN_0600EEE0: ; 0x0600EEE0 + ldr r1, _0600EEF8 ; =0x0380FFF4 + ldr r1, [r1] + ldr r2, [r1, #796] ; 0x31c + mov r1, #28 + mla r0, r1, r0, r2 + bx lr +_0600EEF8: .word 0x0380FFF4 + + arm_func_start FUN_0600EEFC +FUN_0600EEFC: ; 0x0600EEFC + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_0600EEE0 + ldrh r0, [r0, #22] + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_0600EF18 +FUN_0600EF18: ; 0x0600EF18 + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_0600EEE0 + ldrh r0, [r0, #2] + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_0600EF34 +FUN_0600EF34: ; 0x0600EF34 + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_0600EEE0 + ldrh r0, [r0, #16] + ands r0, r0, #2 + movne r0, #20 + moveq r0, #10 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_0600EF5C +FUN_0600EF5C: ; 0x0600EF5C + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_0600EEE0 + ldrh r0, [r0, #20] + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_0600EF78 +FUN_0600EF78: ; 0x0600EF78 + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_0600EEE0 + ldrh r0, [r0, #14] + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_0600EF94 +FUN_0600EF94: ; 0x0600EF94 + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_0600EEE0 + add r0, r0, #4 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_0600EFB0 +FUN_0600EFB0: ; 0x0600EFB0 + ldr r1, _0600EFCC ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #1280 ; 0x500 + ldrh r1, [r1, #46] ; 0x2e + mov r0, r1, asr r0 + and r0, r0, #1 + bx lr +_0600EFCC: .word 0x0380FFF4 + + arm_func_start FUN_0600EFD0 +FUN_0600EFD0: ; 0x0600EFD0 + ldr r1, _0600EFEC ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #1280 ; 0x500 + ldrh r1, [r1, #48] ; 0x30 + mov r0, r1, asr r0 + and r0, r0, #1 + bx lr +_0600EFEC: .word 0x0380FFF4 + + arm_func_start FUN_0600EFF0 +FUN_0600EFF0: ; 0x0600EFF0 + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_0600EEE0 + ldrh r0, [r0] + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_0600F00C +FUN_0600F00C: ; 0x0600F00C + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r1, _0600F07C ; =0x0380FFF4 + ldr r5, [r1] + bl FUN_0600ED74 + mov r0, r6 + bl FUN_0600EF18 + movs r4, r0 + beq _0600F074 + mov r0, r6 + bl FUN_0600EEE0 + mov r1, #0 + strh r1, [r0, #2] + add r0, r5, #1280 ; 0x500 + ldrh r2, [r0, #58] ; 0x3a + mov r1, #1 + mvn r1, r1, lsl r4 + and r1, r2, r1 + strh r1, [r0, #58] ; 0x3a + ldrh r1, [r0, #56] ; 0x38 + sub r1, r1, #1 + strh r1, [r0, #56] ; 0x38 + ldrh r0, [r0, #56] ; 0x38 + cmp r0, #0 + bne _0600F074 + bl FUN_0600B21C +_0600F074: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600F07C: .word 0x0380FFF4 + + arm_func_start FUN_0600F080 +FUN_0600F080: ; 0x0600F080 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + ldr r0, _0600F128 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _0600F12C ; =0x0000052C + add r6, r1, r0 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + mov r4, r0 + mov r5, #1 + mov r2, #2 + b _0600F108 +_0600F0B4: + ldrh r0, [r6, #14] + ands r1, r0, r2 + bne _0600F100 + orr r0, r0, r2 + strh r0, [r6, #14] + ldrh r0, [r6, #12] + add r0, r0, #1 + strh r0, [r6, #12] + ldrh r0, [r6, #12] + cmp r0, #1 + bne _0600F0E4 + bl FUN_0600B1EC +_0600F0E4: + mov r0, r7 + bl FUN_0600EEE0 + strh r5, [r0, #2] + mov r0, r4 + bl FUN_06009070 + mov r0, r5 + b _0600F11C +_0600F100: + add r5, r5, #1 + mov r2, r2, lsl #1 +_0600F108: + cmp r5, #16 + bcc _0600F0B4 + mov r0, r4 + bl FUN_06009070 + mov r0, #0 +_0600F11C: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_0600F128: .word 0x0380FFF4 +_0600F12C: .word 0x0000052C + + arm_func_start FUN_0600F130 +FUN_0600F130: ; 0x0600F130 + mov r1, #28 + ldr r2, _0600F150 ; =0x0380FFF4 + ldr r2, [r2] + ldr r2, [r2, #796] ; 0x31c + mla r1, r0, r1, r2 + ldrh r0, [r1, #26] + strh r0, [r1, #24] + bx lr +_0600F150: .word 0x0380FFF4 + + arm_func_start FUN_0600F154 +FUN_0600F154: ; 0x0600F154 + stmdb sp!, {r4, lr} + mov r4, r1 + bl FUN_0600EEE0 + strh r4, [r0, #14] + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_0600F16C +FUN_0600F16C: ; 0x0600F16C + stmdb sp!, {r4, lr} + mov r4, r1 + bl FUN_0600EEE0 + strh r4, [r0, #20] + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_0600F184 +FUN_0600F184: ; 0x0600F184 + stmdb sp!, {r4, lr} + mov r4, r1 + bl FUN_0600EEE0 + strh r4, [r0, #16] + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_0600F19C +FUN_0600F19C: ; 0x0600F19C + stmdb sp!, {r4, lr} + mov r4, r1 + bl FUN_0600EEE0 + strh r4, [r0, #12] + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_0600F1B4 +FUN_0600F1B4: ; 0x0600F1B4 + ldr r1, _0600F1D4 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #1280 ; 0x500 + ldrh r3, [r1, #48] ; 0x30 + mov r2, #1 + orr r0, r3, r2, lsl r0 + strh r0, [r1, #48] ; 0x30 + bx lr +_0600F1D4: .word 0x0380FFF4 + + arm_func_start FUN_0600F1D8 +FUN_0600F1D8: ; 0x0600F1D8 + stmdb sp!, {r4, lr} + mov r4, r0 + bl FUN_0600EFF0 + cmp r0, #64 ; 0x40 + bne _0600F20C + ldr r0, _0600F214 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1280 ; 0x500 + ldrh r2, [r0, #48] ; 0x30 + mov r1, #1 + mvn r1, r1, lsl r4 + and r1, r2, r1 + strh r1, [r0, #48] ; 0x30 +_0600F20C: + ldmia sp!, {r4, lr} + bx lr +_0600F214: .word 0x0380FFF4 + + arm_func_start FUN_0600F218 +FUN_0600F218: ; 0x0600F218 + ldr r2, _0600F26C ; =0x0380FFF4 + ldr r3, [r2] + ldr r2, _0600F270 ; =0x0000052C + add ip, r3, r2 + ldrh r3, [ip, #2] + mov r2, #1 + mvn r2, r2, lsl r0 + and r2, r3, r2 + orr r0, r2, r1, lsl r0 + strh r0, [ip, #2] + ldrh r1, [ip, #2] + ldrh r0, [ip, #6] + mvn r0, r0 + ands r0, r1, r0 + movne r1, #8 + ldrne r0, _0600F274 ; =0x048080AC + strneh r1, [r0] + moveq r1, #8 + ldreq r0, _0600F278 ; =0x048080AE + streqh r1, [r0] + bx lr +_0600F26C: .word 0x0380FFF4 +_0600F270: .word 0x0000052C +_0600F274: .word 0x048080AC +_0600F278: .word 0x048080AE + + arm_func_start FUN_0600F27C +FUN_0600F27C: ; 0x0600F27C + stmdb sp!, {r4, lr} + mov r4, r1 + bl FUN_0600EEE0 + strh r4, [r0, #10] + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_0600F294 +FUN_0600F294: ; 0x0600F294 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + mov r4, r0 + cmp r5, #64 ; 0x40 + bcs _0600F308 + mov r0, r6 + bl FUN_0600F1B4 + ldr r3, _0600F35C ; =0x0380FFF4 + ldr r0, [r3] + add r0, r0, #1280 ; 0x500 + ldrh r2, [r0, #50] ; 0x32 + mov r1, #1 + orr r1, r2, r1, lsl r6 + strh r1, [r0, #50] ; 0x32 + ldr r0, [r3] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #80] ; 0x50 + cmp r0, #1 + bne _0600F340 + mov r0, r6 + bl FUN_0600EF18 + cmp r0, #0 + beq _0600F340 + mov r0, r6 + bl FUN_0600F00C + b _0600F340 +_0600F308: + ldr r0, _0600F35C ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1280 ; 0x500 + ldrh r2, [r0, #50] ; 0x32 + mov r1, #1 + mvn r1, r1, lsl r6 + and r1, r2, r1 + strh r1, [r0, #50] ; 0x32 + mov r0, r6 + bl FUN_0600EFB0 + cmp r0, #0 + beq _0600F340 + mov r0, r6 + bl FUN_0600F1D8 +_0600F340: + mov r0, r6 + bl FUN_0600EEE0 + strh r5, [r0] + mov r0, r4 + bl FUN_06009070 + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600F35C: .word 0x0380FFF4 + + arm_func_start FUN_0600F360 +FUN_0600F360: ; 0x0600F360 + stmdb sp!, {r4, r5, r6, lr} + ldrh r4, [r0, #2] + mov r0, r4 + bl FUN_0600EEE0 + mov r6, r0 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + mov r5, r0 + ldr r0, _0600F3C8 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #80] ; 0x50 + cmp r0, #1 + bne _0600F3AC + ldrh r0, [r6, #22] + cmp r0, #1 + bne _0600F3AC + mov r0, r4 + bl FUN_0600ED74 +_0600F3AC: + ldrh r0, [r6, #22] + sub r0, r0, #1 + strh r0, [r6, #22] + mov r0, r5 + bl FUN_06009070 + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600F3C8: .word 0x0380FFF4 + + arm_func_start FUN_0600F3CC +FUN_0600F3CC: ; 0x0600F3CC + stmdb sp!, {r4, r5, r6, lr} + ldrh r4, [r0, #2] + mov r0, r4 + bl FUN_0600EEE0 + mov r6, r0 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + mov r5, r0 + ldr r0, _0600F458 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #80] ; 0x50 + cmp r0, #1 + bne _0600F418 + ldrh r0, [r6, #22] + cmp r0, #0 + bne _0600F418 + mov r0, r4 + bl FUN_0600EE20 +_0600F418: + ldrh r0, [r6, #22] + add r0, r0, #1 + strh r0, [r6, #22] + mov r0, r5 + bl FUN_06009070 + ldr r0, _0600F458 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1280 ; 0x500 + ldrh r1, [r0, #52] ; 0x34 + mov r0, #1 + mov r0, r0, lsl r4 + ands r0, r1, r0 + ldreqh r0, [r6, #26] + streqh r0, [r6, #24] + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600F458: .word 0x0380FFF4 + + arm_func_start FUN_0600F45C +FUN_0600F45C: ; 0x0600F45C + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + mov r6, r1 + ldr r0, _0600F4BC ; =0x0380FFF4 + ldr r0, [r0] + add r5, r0, #428 ; 0x1ac + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + mov r4, r0 + ldrh r0, [r5, #8] + cmp r0, #0 + bne _0600F498 + mov r0, #0 + bl FUN_0600EE20 +_0600F498: + mov r0, r7 + mov r1, r5 + mov r2, r6 + bl FUN_0600962C + mov r0, r4 + bl FUN_06009070 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_0600F4BC: .word 0x0380FFF4 + + arm_func_start FUN_0600F4C0 +FUN_0600F4C0: ; 0x0600F4C0 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + mov r9, r0 + ldr sl, _0600F604 ; =0x0380FFF4 + ldr r0, [sl] + add r8, r0, #796 ; 0x31c + ldrh r1, [r9] + ands r1, r1, #1 + movne r0, #0 + bne _0600F5FC + add r1, r0, #1280 ; 0x500 + ldrh r1, [r1, #44] ; 0x2c + cmp r1, #1 + bls _0600F574 + ldr r1, [r8] + add r7, r1, #28 + mov r4, #0 + mov r5, r4 + mov r6, #1 + b _0600F55C +_0600F50C: + ldrh r1, [r7] + cmp r1, #0 + beq _0600F54C + add r0, r7, #4 + mov r1, r9 + bl FUN_0600AB78 + cmp r0, #0 + movne r0, r6 + bne _0600F5FC + add r5, r5, #1 + ldr r0, [sl] + add r1, r0, #1280 ; 0x500 + ldrh r1, [r1, #44] ; 0x2c + cmp r5, r1 + bcc _0600F554 + b _0600F568 +_0600F54C: + cmp r4, #0 + moveq r4, r6 +_0600F554: + add r6, r6, #1 + add r7, r7, #28 +_0600F55C: + ldrh r1, [r8, #6] + cmp r6, r1 + bcc _0600F50C +_0600F568: + cmp r4, #0 + movne r6, r4 + b _0600F578 +_0600F574: + mov r6, #1 +_0600F578: + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #34] ; 0x22 + cmp r6, r0 + bcc _0600F5EC + ldr r4, [r8] + mov r7, #65536 ; 0x10000 + mov r3, #1 + mov r6, #0 + ldrh r5, [r8, #6] + mov r0, #28 + b _0600F5D8 +_0600F5A4: + mul r1, r3, r0 + add r2, r4, r1 + ldrh r1, [r4, r1] + cmp r1, #48 ; 0x30 + bcs _0600F5D4 + ldrh r1, [r2, #22] + cmp r1, #0 + bne _0600F5D4 + ldrh r1, [r2, #24] + cmp r7, r1 + movhi r7, r1 + movhi r6, r3 +_0600F5D4: + add r3, r3, #1 +_0600F5D8: + cmp r3, r5 + bcc _0600F5A4 + cmp r6, #0 + moveq r0, #255 ; 0xff + beq _0600F5FC +_0600F5EC: + mov r0, r6 + mov r1, r9 + bl FUN_0600E93C + mov r0, r6 +_0600F5FC: + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + bx lr +_0600F604: .word 0x0380FFF4 + + arm_func_start FUN_0600F608 +FUN_0600F608: ; 0x0600F608 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + mov r8, r0 + ldrh r0, [r8] + ands r0, r0, #1 + movne r0, #0 + bne _0600F6A4 + ldr r4, _0600F6AC ; =0x0380FFF4 + ldr r0, [r4] + add r1, r0, #1280 ; 0x500 + ldrh r1, [r1, #44] ; 0x2c + cmp r1, #1 + bls _0600F6A0 + ldr r1, [r0, #796] ; 0x31c + add r7, r1, #28 + mov r5, #0 + mov r6, #1 + b _0600F690 +_0600F64C: + ldrh r1, [r7] + cmp r1, #0 + beq _0600F688 + add r0, r7, #4 + mov r1, r8 + bl FUN_0600AB78 + cmp r0, #0 + movne r0, r6 + bne _0600F6A4 + add r5, r5, #1 + ldr r0, [r4] + add r1, r0, #1280 ; 0x500 + ldrh r1, [r1, #44] ; 0x2c + cmp r5, r1 + bcs _0600F6A0 +_0600F688: + add r6, r6, #1 + add r7, r7, #28 +_0600F690: + add r1, r0, #768 ; 0x300 + ldrh r1, [r1, #34] ; 0x22 + cmp r6, r1 + bcc _0600F64C +_0600F6A0: + mov r0, #255 ; 0xff +_0600F6A4: + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_0600F6AC: .word 0x0380FFF4 +_0600F6B0: + mov r2, #0 + + arm_func_start FUN_0600F6B4 +FUN_0600F6B4: ; 0x0600F6B4 + ldr r1, _0600F6E0 ; =0x04808180 + b _0600F6D0 +_0600F6BC: + ldrh r0, [r1] + ands r0, r0, #1 + moveq r0, #0 + bxeq lr + add r2, r2, #1 +_0600F6D0: + cmp r2, #10240 ; 0x2800 + bcc _0600F6BC + mov r0, #1 + bx lr +_0600F6E0: .word 0x04808180 + + arm_func_start FUN_0600F6E4 +FUN_0600F6E4: ; 0x0600F6E4 + mov r2, #0 + ldr r1, _0600F714 ; =0x0480815E + b _0600F704 +_0600F6F0: + ldrh r0, [r1] + ands r0, r0, #1 + moveq r0, #0 + bxeq lr + add r2, r2, #1 +_0600F704: + cmp r2, #10240 ; 0x2800 + bcc _0600F6F0 + mov r0, #1 + bx lr +_0600F714: .word 0x0480815E + + arm_func_start FUN_0600F718 +FUN_0600F718: ; 0x0600F718 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r4, #1 + ldr r1, _0600F790 ; =0x04808028 + ldr r2, _0600F794 ; =0x04808214 + ldr lr, _0600F798 ; =0x04000208 + mov ip, #0 + ldr r3, _0600F79C ; =0x0480819C + b _0600F77C +_0600F73C: + ldrh r5, [lr] + strh ip, [lr] + ldrh r0, [r3] + and r0, r0, #3 + cmp r0, #3 + beq _0600F774 + ldrh r0, [r2] + cmp r0, #5 + beq _0600F774 + cmp r0, #7 + beq _0600F774 + cmp r0, #8 + strneh ip, [r1] + movne r4, ip +_0600F774: + ldrh r0, [lr] + strh r5, [lr] +_0600F77C: + cmp r4, #0 + bne _0600F73C + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_0600F790: .word 0x04808028 +_0600F794: .word 0x04808214 +_0600F798: .word 0x04000208 +_0600F79C: .word 0x0480819C + + arm_func_start FUN_0600F7A0 +FUN_0600F7A0: ; 0x0600F7A0 + stmdb sp!, {r4, lr} + + arm_func_start FUN_0600F7A4 +FUN_0600F7A4: ; 0x0600F7A4 + sub sp, sp, #8 + mov r4, r1 + mov r1, #1 + str r1, [sp, #4] + mov r3, #0 + ldr r1, _0600F820 ; =0x000082EA + umull ip, r2, r0, r1 + mla r2, r0, r3, r2 + mla r2, r3, r1, r2 + mov r1, r2, lsr #6 + mov r0, ip, lsr #6 + orr r0, r0, r2, lsl #26 + mov r2, #1000 ; 0x3e8 + bl FUN_06009EDC + mov r3, r0 + mov r2, r1 + add r0, sp, #4 + str r0, [sp] + ldr r0, _0600F824 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _0600F828 ; =0x00000634 + add r0, r1, r0 + mov r1, r3 + mov r3, r4 + bl FUN_0600144C +_0600F808: + ldr r0, [sp, #4] + cmp r0, #0 + bne _0600F808 + add sp, sp, #8 + ldmia sp!, {r4, lr} + bx lr +_0600F820: .word 0x000082EA +_0600F824: .word 0x0380FFF4 +_0600F828: .word 0x00000634 + + arm_func_start FUN_0600F82C +FUN_0600F82C: ; 0x0600F82C + mov r2, #4000 ; 0xfa0 + ldr r1, _0600F854 ; =0x0480819C + b _0600F848 +_0600F838: + ldrh r0, [r1] + ands r0, r0, #128 ; 0x80 + bxne lr + sub r2, r2, #1 +_0600F848: + cmp r2, #0 + bne _0600F838 + bx lr +_0600F854: .word 0x0480819C + + arm_func_start FUN_0600F858 +FUN_0600F858: ; 0x0600F858 + mov r1, #0 + ldr r0, _0600F870 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1024 ; 0x400 + strh r1, [r0, #40] ; 0x28 + bx lr +_0600F870: .word 0x0380FFF4 + + arm_func_start FUN_0600F874 +FUN_0600F874: ; 0x0600F874 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + ldr r6, _0600F8D8 ; =0x0380FFF4 + ldr r0, [r6] + ldr r7, [r0, #500] ; 0x1f4 + mov r5, #0 + mvn r4, #0 + b _0600F8C4 +_0600F894: + ldr r0, [r0, #772] ; 0x304 + mov r1, r7 + mov r2, r5 + bl FUN_060006F8 + cmp r0, #0 + beq _0600F8CC + ldr r0, [r6] + add r0, r0, #500 ; 0x1f4 + mov r1, r7 + bl FUN_0600943C + ldr r0, [r6] + ldr r7, [r0, #500] ; 0x1f4 +_0600F8C4: + cmp r7, r4 + bne _0600F894 +_0600F8CC: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_0600F8D8: .word 0x0380FFF4 + + arm_func_start FUN_0600F8DC +FUN_0600F8DC: ; 0x0600F8DC + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + ldr r2, _0600F968 ; =0x0380FFF4 + ldr r3, [r2] + add r2, r3, #256 ; 0x100 + ldrh r2, [r2, #252] ; 0xfc + cmp r2, #0 + beq _0600F920 + add r1, r3, #500 ; 0x1f4 + mov r2, r4 + bl FUN_0600962C + mov r0, #2 + mov r1, #19 + bl FUN_06009078 + b _0600F95C +_0600F920: + ldr r0, [r3, #772] ; 0x304 + mov r2, #0 + bl FUN_060006F8 + cmp r0, #0 + beq _0600F944 + mov r0, r5 + mov r1, r4 + bl FUN_0600943C + b _0600F95C +_0600F944: + mov r0, r5 + ldr r1, _0600F968 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #500 ; 0x1f4 + mov r2, r4 + bl FUN_0600962C +_0600F95C: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_0600F968: .word 0x0380FFF4 + + arm_func_start FUN_0600F96C +FUN_0600F96C: ; 0x0600F96C + mov r0, #3 + bx lr + + arm_func_start FUN_0600F974 +FUN_0600F974: ; 0x0600F974 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + ldr r1, _0600FC68 ; =0x0380FFF4 + ldr r3, [r1] + ldr r0, _0600FC6C ; =0x00000424 + add r6, r3, r0 + mov r2, #0 + mov r4, r2 + ldrh r0, [r6, #4] + cmp r0, #0 + bne _0600FC5C + ldr r0, [r3, #512] ; 0x200 + str r0, [r6] + ldr r0, [r6] + mvn r3, #0 + cmp r0, r3 + beq _0600FC5C + ldrh r3, [r0, #14] + add r3, r0, r3, lsl #1 + add r5, r3, #16 + ldr r1, [r1] + add lr, r1, #768 ; 0x300 + ldrh r1, [lr, #62] ; 0x3e + cmp r1, #0 + movne r0, #1 + strneh r0, [r5, #2] + movne r0, #6 + strneh r0, [r5, #4] + bne _0600FC14 + ldrh r3, [r0, #12] + ldrh r1, [r5] + cmp r3, r1 + movne r0, #13 + strneh r0, [r5, #4] + bne _0600FC14 + and r1, r3, #65280 ; 0xff00 + cmp r1, #256 ; 0x100 + bgt _0600FA20 + cmp r1, #256 ; 0x100 + bge _0600FA78 + cmp r1, #0 + beq _0600FA40 + b _0600FB74 +_0600FA20: + cmp r1, #512 ; 0x200 + bgt _0600FA34 + cmp r1, #512 ; 0x200 + beq _0600FAA0 + b _0600FB74 +_0600FA34: + cmp r1, #768 ; 0x300 + beq _0600FB58 + b _0600FB74 +_0600FA40: + mov r4, #1 + ldr ip, _0600FC70 ; =_06019730 + and r1, r3, #255 ; 0xff + mov r1, r1, lsl #16 + mov r3, r1, lsr #16 + mov r7, #11 + ldrh r1, [r6, #4] + ands r1, r1, #1 + movne r2, #2 + bne _0600FB7C + ldrh r1, [lr, #76] ; 0x4c + cmp r1, #32 + movcc r2, r4 + b _0600FB7C +_0600FA78: + mov r4, #2 + ldr ip, _0600FC74 ; =_060196A8 + and r1, r3, #255 ; 0xff + mov r1, r1, lsl #16 + mov r3, r1, lsr #16 + mov r7, #5 + ldrh r1, [lr, #76] ; 0x4c + cmp r1, #64 ; 0x40 + movne r2, #1 + b _0600FB7C +_0600FAA0: + and r1, r3, #255 ; 0xff + mov r1, r1, lsl #16 + mov r3, r1, lsr #16 + cmp r3, #64 ; 0x40 + bcs _0600FAD0 + ldrh r1, [lr, #76] ; 0x4c + cmp r1, #16 + movcc r2, #1 + mov r4, #4 + ldr ip, _0600FC78 ; =_06019898 + mov r7, #23 + b _0600FB7C +_0600FAD0: + cmp r3, #128 ; 0x80 + bcs _0600FB00 + ldrh r1, [lr, #76] ; 0x4c + cmp r1, #64 ; 0x40 + movne r2, #1 + mov r4, #8 + ldr ip, _0600FC7C ; =_06019700 + sub r1, r3, #64 ; 0x40 + mov r1, r1, lsl #16 + mov r3, r1, lsr #16 + mov r7, #6 + b _0600FB7C +_0600FB00: + cmp r3, #192 ; 0xc0 + bcs _0600FB30 + ldrh r1, [lr, #76] ; 0x4c + cmp r1, #16 + movcc r2, #1 + mov r4, #16 + ldr ip, _0600FC80 ; =_060197E0 + sub r1, r3, #128 ; 0x80 + mov r1, r1, lsl #16 + mov r3, r1, lsr #16 + mov r7, #23 + b _0600FB7C +_0600FB30: + ldrh r1, [lr, #76] ; 0x4c + cmp r1, #16 + movcc r2, #1 + mov r4, #32 + ldr ip, _0600FC84 ; =_060196D0 + sub r1, r3, #192 ; 0xc0 + mov r1, r1, lsl #16 + mov r3, r1, lsr #16 + mov r7, #6 + b _0600FB7C +_0600FB58: + mov r4, #64 ; 0x40 + ldr ip, _0600FC88 ; =_06019788 + and r1, r3, #255 ; 0xff + mov r1, r1, lsl #16 + mov r3, r1, lsr #16 + mov r7, #11 + b _0600FB7C +_0600FB74: + mov r3, #1 + mov r7, #0 +_0600FB7C: + cmp r3, r7 + movhi r2, #3 + bhi _0600FBB4 + ldrh lr, [r0, #14] + mov r7, r3, lsl #3 + ldrh r1, [ip, r7] + cmp lr, r1 + bcc _0600FBB0 + ldrh lr, [r5, #2] + add r1, ip, r7 + ldrh r1, [r1, #2] + cmp lr, r1 + bcs _0600FBB4 +_0600FBB0: + mov r2, #4 +_0600FBB4: + cmp r2, #0 + movne r0, #1 + strneh r0, [r5, #2] + strneh r2, [r5, #4] + bne _0600FC14 + ldrh r1, [r6, #4] + orr r1, r1, r4 + strh r1, [r6, #4] + mov r1, r5 + add r2, ip, r3, lsl #3 + ldr r2, [r2, #4] + mov lr, pc + bx r2 + strh r0, [r5, #4] + ldrh r0, [r5, #4] + cmp r0, #128 ; 0x80 + beq _0600FC5C + cmp r0, #129 ; 0x81 + bne _0600FC14 + ldrh r1, [r6, #4] + mvn r0, r4 + and r0, r1, r0 + strh r0, [r6, #4] + b _0600FC38 +_0600FC14: + ldrh r1, [r6, #4] + mvn r0, r4 + and r0, r1, r0 + strh r0, [r6, #4] + ldr r0, _0600FC68 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #512 ; 0x200 + ldr r1, [r6] + bl FUN_0600F8DC +_0600FC38: + ldr r0, _0600FC68 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #512 ; 0x200 + ldrh r0, [r0, #8] + cmp r0, #0 + beq _0600FC5C + mov r0, #2 + mov r1, #11 + bl FUN_06009078 +_0600FC5C: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_0600FC68: .word 0x0380FFF4 +_0600FC6C: .word 0x00000424 +_0600FC70: .word _06019730 +_0600FC74: .word _060196A8 +_0600FC78: .word _06019898 +_0600FC7C: .word _06019700 +_0600FC80: .word _060197E0 +_0600FC84: .word _060196D0 +_0600FC88: .word _06019788 + + arm_func_start FUN_0600FC8C +FUN_0600FC8C: ; 0x0600FC8C + mov r0, #0 + ldr r1, _0600FCAC ; =0x0380FFF4 + ldr r2, [r1] + ldr r1, _0600FCB0 ; =0x00000404 + add r1, r2, r1 + mov r2, #32 + ldr ip, _0600FCB4 ; =FUN_037FB300 + bx ip +_0600FCAC: .word 0x0380FFF4 +_0600FCB0: .word 0x00000404 +_0600FCB4: .word FUN_037FB300 + + arm_func_start FUN_0600FCB8 +FUN_0600FCB8: ; 0x0600FCB8 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r6, r0 + ldr r0, _0600FDE0 ; =0x0380FFF4 + ldr r1, [r0] + add r5, r1, #836 ; 0x344 + add r0, r1, #392 ; 0x188 + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #228] ; 0xe4 + add r1, r1, #62 ; 0x3e + bl FUN_06009724 + movs r4, r0 + bne _0600FCFC + mov r0, #1 + bl FUN_0600994C + mov r0, #0 + b _0600FDD4 +_0600FCFC: + mov r0, #141 ; 0x8d + strh r0, [r4, #12] + ldrh r0, [r5, #160] ; 0xa0 + add r0, r0, #1 + mov r1, #2 + bl FUN_06001840 + add r0, r0, #22 + strh r0, [r4, #14] + add r0, r4, #31 + ldrh r1, [r6, #18] + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + add r0, r4, #30 + ldrh r1, [r6, #14] + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + add r0, r4, #46 ; 0x2e + add r1, r6, #30 + bl FUN_0600AF4C + ldrh r0, [r5, #160] ; 0xa0 + strh r0, [r4, #22] + ldrh r2, [r4, #22] + cmp r2, #0 + beq _0600FDBC + ldrh r0, [r5, #162] ; 0xa2 + ands r0, r0, #1 + beq _0600FDAC + ldr r0, [r5, #156] ; 0x9c + add r6, r0, #1 + add r5, r4, #60 ; 0x3c + mov r7, #0 + b _0600FD9C +_0600FD7C: + mov r0, r6 + bl FUN_06009CB0 + mov r1, r0 + mov r0, r5 + bl FUN_06009CD0 + add r6, r6, #1 + add r5, r5, #1 + add r7, r7, #1 +_0600FD9C: + ldrh r0, [r4, #22] + cmp r7, r0 + bcc _0600FD7C + b _0600FDBC +_0600FDAC: + ldr r0, [r5, #156] ; 0x9c + add r1, r4, #60 ; 0x3c + add r2, r2, #1 + bl FUN_06000EA0 +_0600FDBC: + ldr r0, _0600FDE0 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, r4 + bl FUN_0600F8DC + mov r0, #1 +_0600FDD4: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_0600FDE0: .word 0x0380FFF4 + + arm_func_start FUN_0600FDE4 +FUN_0600FDE4: ; 0x0600FDE4 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _0600FE48 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, #16 + bl FUN_06009724 + movs r1, r0 + bne _0600FE18 + mov r0, #1 + bl FUN_0600994C + mov r0, #0 + b _0600FE3C +_0600FE18: + mov r0, #140 ; 0x8c + strh r0, [r1, #12] + mov r0, #0 + strh r0, [r1, #14] + ldr r0, _0600FE48 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + bl FUN_0600F8DC + mov r0, #1 +_0600FE3C: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0600FE48: .word 0x0380FFF4 + + arm_func_start FUN_0600FE4C +FUN_0600FE4C: ; 0x0600FE4C + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + ldr r0, _0600FEC4 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, #22 + bl FUN_06009724 + movs r4, r0 + bne _0600FE84 + mov r0, #1 + bl FUN_0600994C + mov r0, #0 + b _0600FEB8 +_0600FE84: + mov r0, #139 ; 0x8b + strh r0, [r4, #12] + mov r0, #3 + strh r0, [r4, #14] + add r0, r4, #16 + mov r1, r5 + bl FUN_0600AF4C + ldr r0, _0600FEC4 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, r4 + bl FUN_0600F8DC + mov r0, #1 +_0600FEB8: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_0600FEC4: .word 0x0380FFF4 + + arm_func_start FUN_0600FEC8 +FUN_0600FEC8: ; 0x0600FEC8 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + ldr r0, _0600FF40 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, #24 + bl FUN_06009724 + movs r4, r0 + bne _0600FF00 + mov r0, #1 + bl FUN_0600994C + mov r0, #0 + b _0600FF38 +_0600FF00: + mov r0, #136 ; 0x88 + strh r0, [r4, #12] + mov r0, #4 + strh r0, [r4, #14] + add r0, r4, #16 + mov r1, r6 + bl FUN_0600AF4C + strh r5, [r4, #22] + ldr r0, _0600FF40 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, r4 + bl FUN_0600F8DC + mov r0, #1 +_0600FF38: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0600FF40: .word 0x0380FFF4 + + arm_func_start FUN_0600FF44 +FUN_0600FF44: ; 0x0600FF44 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + ldr r0, _06010030 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, #58 ; 0x3a + bl FUN_06009724 + movs r4, r0 + bne _0600FF84 + mov r0, #1 + bl FUN_0600994C + mov r0, #0 + b _06010024 +_0600FF84: + mov r0, #135 ; 0x87 + strh r0, [r4, #12] + mov r0, #21 + strh r0, [r4, #14] + add r0, r4, #16 + mov r1, r7 + bl FUN_0600AF4C + strh r6, [r4, #22] + add r0, r5, #1 + bl FUN_06009CB0 + strh r0, [r4, #24] + mov r7, #0 + add r6, r5, #2 + add r5, r4, #26 + b _0600FFE0 +_0600FFC0: + cmp r7, #32 + bcs _06010004 + add r0, r6, r7 + bl FUN_06009CB0 + mov r1, r0 + add r0, r5, r7 + bl FUN_06009CD0 + add r7, r7, #1 +_0600FFE0: + ldrh r0, [r4, #24] + cmp r7, r0 + bcc _0600FFC0 + b _06010004 +_0600FFF0: + add r0, r4, #26 + add r0, r0, r7 + mov r1, #0 + bl FUN_06009CD0 + add r7, r7, #1 +_06010004: + cmp r7, #32 + bcc _0600FFF0 + ldr r0, _06010030 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, r4 + bl FUN_0600F8DC + mov r0, #1 +_06010024: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06010030: .word 0x0380FFF4 + + arm_func_start FUN_06010034 +FUN_06010034: ; 0x06010034 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + ldr r0, _06010128 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, #58 ; 0x3a + bl FUN_06009724 + movs r4, r0 + bne _06010074 + mov r0, #1 + bl FUN_0600994C + mov r0, #0 + b _0601011C +_06010074: + mov r0, #134 ; 0x86 + strh r0, [r4, #12] + mov r0, #21 + strh r0, [r4, #14] + add r0, r4, #16 + mov r1, r7 + bl FUN_0600AF4C + ldr r0, _0601012C ; =0x00000FFF + and r0, r6, r0 + strh r0, [r4, #22] + add r0, r5, #1 + bl FUN_06009CB0 + strh r0, [r4, #24] + mov r7, #0 + add r6, r5, #2 + add r5, r4, #26 + b _060100D8 +_060100B8: + cmp r7, #32 + bcs _060100FC + add r0, r6, r7 + bl FUN_06009CB0 + mov r1, r0 + add r0, r5, r7 + bl FUN_06009CD0 + add r7, r7, #1 +_060100D8: + ldrh r0, [r4, #24] + cmp r7, r0 + bcc _060100B8 + b _060100FC +_060100E8: + add r0, r4, #26 + add r0, r0, r7 + mov r1, #0 + bl FUN_06009CD0 + add r7, r7, #1 +_060100FC: + cmp r7, #32 + bcc _060100E8 + ldr r0, _06010128 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, r4 + bl FUN_0600F8DC + mov r0, #1 +_0601011C: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06010128: .word 0x0380FFF4 +_0601012C: .word 0x00000FFF + + arm_func_start FUN_06010130 +FUN_06010130: ; 0x06010130 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + ldr r0, _060101A8 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, #24 + bl FUN_06009724 + movs r4, r0 + bne _06010168 + mov r0, #1 + bl FUN_0600994C + mov r0, #0 + b _060101A0 +_06010168: + mov r0, #133 ; 0x85 + strh r0, [r4, #12] + mov r0, #4 + strh r0, [r4, #14] + add r0, r4, #16 + mov r1, r6 + bl FUN_0600AF4C + strh r5, [r4, #22] + ldr r0, _060101A8 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, r4 + bl FUN_0600F8DC + mov r0, #1 +_060101A0: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_060101A8: .word 0x0380FFF4 + + arm_func_start FUN_060101AC +FUN_060101AC: ; 0x060101AC + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + ldr r0, _06010224 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, #24 + bl FUN_06009724 + movs r4, r0 + bne _060101E4 + mov r0, #1 + bl FUN_0600994C + mov r0, #0 + b _0601021C +_060101E4: + mov r0, #132 ; 0x84 + strh r0, [r4, #12] + mov r0, #4 + strh r0, [r4, #14] + add r0, r4, #16 + mov r1, r6 + bl FUN_0600AF4C + strh r5, [r4, #22] + ldr r0, _06010224 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, r4 + bl FUN_0600F8DC + mov r0, #1 +_0601021C: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06010224: .word 0x0380FFF4 + + arm_func_start FUN_06010228 +FUN_06010228: ; 0x06010228 + stmdb sp!, {r4, lr} + ldr r0, _06010278 ; =0x0380FFF4 + ldr r2, [r0] + add r4, r2, #380 ; 0x17c + ldr r0, _0601027C ; =0x00000424 + add r1, r2, r0 + ldrh r0, [r1, #4] + bic r0, r0, #1 + strh r0, [r1, #4] + add r0, r4, #132 ; 0x84 + ldr r1, [r2, #1060] ; 0x424 + bl FUN_0600F8DC + ldrh r0, [r4, #140] ; 0x8c + cmp r0, #0 + beq _06010270 + mov r0, #2 + mov r1, #11 + bl FUN_06009078 +_06010270: + ldmia sp!, {r4, lr} + bx lr +_06010278: .word 0x0380FFF4 +_0601027C: .word 0x00000424 + + arm_func_start FUN_06010280 +FUN_06010280: ; 0x06010280 + ldr r0, _06010298 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _0601029C ; =0x000003C6 + add r0, r1, r0 + ldr ip, _060102A0 ; =FUN_0600FE4C + bx ip +_06010298: .word 0x0380FFF4 +_0601029C: .word 0x000003C6 +_060102A0: .word FUN_0600FE4C + + arm_func_start FUN_060102A4 +FUN_060102A4: ; 0x060102A4 + mov r1, #131 ; 0x83 + ldr r0, _060102C8 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1024 ; 0x400 + strh r1, [r0, #4] + mov r0, #2 + mov r1, #5 + ldr ip, _060102CC ; =FUN_06009078 + bx ip +_060102C8: .word 0x0380FFF4 +_060102CC: .word FUN_06009078 + + arm_func_start FUN_060102D0 +FUN_060102D0: ; 0x060102D0 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r0, _06010544 ; =0x0380FFF4 + ldr r1, [r0] + add r5, r1, #836 ; 0x344 + ldr r0, _06010548 ; =0x00000404 + add r4, r1, r0 + add r0, r1, #1024 ; 0x400 + ldrh r0, [r0, #4] + sub r0, r0, #128 ; 0x80 + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _06010520 + b _06010318 + b _06010358 + b _06010418 + b _06010440 + b _060104B0 +_06010318: + mov r0, #0 + strh r0, [r4, #20] + mov r0, #19 + bl FUN_0600A4B8 + strh r0, [r4, #14] + mov r0, #53 ; 0x35 + bl FUN_0600A4B8 + strh r0, [r4, #16] + ldr r1, [r4, #24] + ldrh r0, [r1, #18] + ldrh r1, [r1, #20] + bl FUN_0600BDA0 + mov r0, #4 + strh r0, [r5, #12] + mov r0, #0 + strh r0, [r4, #22] +_06010358: + mov r0, #0 + str r0, [r4, #4] + str r0, [r4, #8] + ldr r0, [r4, #24] + add r1, r0, #24 + ldrh r0, [r4, #20] + add r0, r1, r0 + bl FUN_06009CB0 + movs r5, r0 + beq _0601038C + ldrh r0, [r4, #20] + cmp r0, #16 + bcc _06010398 +_0601038C: + mov r0, #132 ; 0x84 + strh r0, [r4] + b _06010520 +_06010398: + mov r0, #0 + bl FUN_060191BC + cmp r0, #0 + movne r0, #14 + strneh r0, [r4, #22] + movne r0, #132 ; 0x84 + strneh r0, [r4] + bne _06010520 + ldrh r0, [r4] + cmp r0, #128 ; 0x80 + bne _060103F0 + mov r0, r5, lsl #16 + mov r0, r0, lsr #16 + mov r1, #0 + bl FUN_0600B570 + bl FUN_0600A5A4 + ldr r0, _0601054C ; =0x04808040 + ldrh r0, [r0] + strh r0, [r4, #12] + mov r0, #32768 ; 0x8000 + bl FUN_0600B3E0 + b _06010400 +_060103F0: + mov r0, r5, lsl #16 + mov r0, r0, lsr #16 + mov r1, #0 + bl FUN_0600B570 +_06010400: + mov r0, #130 ; 0x82 + strh r0, [r4] + ldr r0, [r4, #24] + ldrh r0, [r0, #22] + ldr r1, _06010550 ; =FUN_060102A4 + bl FUN_06009EE4 +_06010418: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + ldr r0, _06010554 ; =0x0480819C + ldrh r0, [r0] + ands r0, r0, #1 + ldrne r0, [r4, #8] + addne r0, r0, #100 ; 0x64 + strne r0, [r4, #8] + b _06010520 +_06010440: + ldr r0, [r4, #24] + add r1, r0, #24 + ldrh r0, [r4, #20] + add r0, r1, r0 + bl FUN_06009CB0 + mov r5, r0 + mov r2, #0 + ldr r1, [r4, #4] + cmp r1, #0 + beq _06010484 + ldr r0, [r4, #8] + cmp r0, #0 + beq _06010484 + bl FUN_06003B68 + add r2, r0, #1 + cmp r2, #100 ; 0x64 + movhi r2, #100 ; 0x64 +_06010484: + orr r2, r5, r2, lsl #8 + ldr r1, [r4, #28] + ldrh r0, [r4, #20] + add r0, r1, r0, lsl #1 + strh r2, [r0, #8] + ldrh r0, [r4, #20] + add r0, r0, #1 + strh r0, [r4, #20] + mov r0, #129 ; 0x81 + strh r0, [r4] + b _06010520 +_060104B0: + bl FUN_0600A4EC + ldr r0, _06010544 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #46] ; 0x2e + strh r0, [r5, #12] + mov r0, #19 + ldrh r1, [r4, #14] + bl FUN_0600A478 + mov r0, #53 ; 0x35 + ldrh r1, [r4, #16] + bl FUN_0600A478 + ldrh r0, [r4, #12] + bl FUN_0600B3E0 + ldrh r1, [r4, #22] + ldr r0, [r4, #28] + strh r1, [r0, #4] + mov r1, #0 + strh r1, [r4] + ldrh r2, [r4, #20] + b _06010514 +_06010504: + ldr r0, [r4, #28] + add r0, r0, r2, lsl #1 + strh r1, [r0, #8] + add r2, r2, #1 +_06010514: + cmp r2, #16 + bcc _06010504 + bl FUN_06010228 +_06010520: + ldrh r0, [r4] + cmp r0, #0 + beq _06010538 + mov r0, #2 + mov r1, #5 + bl FUN_06009078 +_06010538: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06010544: .word 0x0380FFF4 +_06010548: .word 0x00000404 +_0601054C: .word 0x04808040 +_06010550: .word FUN_060102A4 +_06010554: .word 0x0480819C + + arm_func_start FUN_06010558 +FUN_06010558: ; 0x06010558 + ldr r0, _06010590 ; =0x0380FFF4 + ldr r2, [r0] + ldr r0, _06010594 ; =0x00000404 + add r0, r2, r0 + mov r1, #7 + ldr r0, [r0, #28] + strh r1, [r0, #4] + mov r1, #99 ; 0x63 + add r0, r2, #1024 ; 0x400 + strh r1, [r0, #4] + mov r0, #2 + mov r1, #4 + ldr ip, _06010598 ; =FUN_06009078 + bx ip +_06010590: .word 0x0380FFF4 +_06010594: .word 0x00000404 +_06010598: .word FUN_06009078 + + arm_func_start FUN_0601059C +FUN_0601059C: ; 0x0601059C + stmdb sp!, {r4, lr} + ldr r0, _0601064C ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06010650 ; =0x00000404 + add r4, r1, r0 + add r0, r1, #1024 ; 0x400 + ldrh r0, [r0, #4] + cmp r0, #96 ; 0x60 + beq _060105CC + cmp r0, #99 ; 0x63 + beq _06010624 + b _06010644 +_060105CC: + ldr r0, [r4, #24] + add r0, r0, #16 + bl FUN_06014458 + cmp r0, #0 + bne _06010604 + mov r1, #8 + ldr r0, [r4, #28] + strh r1, [r0, #4] + mov r0, #99 ; 0x63 + strh r0, [r4] + mov r0, #2 + mov r1, #4 + bl FUN_06009078 + b _06010644 +_06010604: + mov r1, #97 ; 0x61 + strh r1, [r4] + bl FUN_06014C6C + ldr r0, [r4, #24] + ldrh r0, [r0, #24] + ldr r1, _06010654 ; =FUN_06010558 + bl FUN_06009EE4 + b _06010644 +_06010624: + mov r0, #1 + bl FUN_06015060 + mov r0, #1 + mov r1, #0 + bl FUN_06014C8C + mov r0, #0 + strh r0, [r4] + bl FUN_06010228 +_06010644: + ldmia sp!, {r4, lr} + bx lr +_0601064C: .word 0x0380FFF4 +_06010650: .word 0x00000404 +_06010654: .word FUN_06010558 + + arm_func_start FUN_06010658 +FUN_06010658: ; 0x06010658 + ldr r0, _06010690 ; =0x0380FFF4 + ldr r2, [r0] + ldr r0, _06010694 ; =0x00000404 + add r0, r2, r0 + mov r1, #7 + ldr r0, [r0, #28] + strh r1, [r0, #4] + mov r1, #83 ; 0x53 + add r0, r2, #1024 ; 0x400 + strh r1, [r0, #4] + mov r0, #2 + mov r1, #3 + ldr ip, _06010698 ; =FUN_06009078 + bx ip +_06010690: .word 0x0380FFF4 +_06010694: .word 0x00000404 +_06010698: .word FUN_06009078 + + arm_func_start FUN_0601069C +FUN_0601069C: ; 0x0601069C + stmdb sp!, {r4, lr} + ldr r0, _06010754 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06010758 ; =0x00000404 + add r4, r1, r0 + add r0, r1, #1024 ; 0x400 + ldrh r0, [r0, #4] + cmp r0, #80 ; 0x50 + beq _060106CC + cmp r0, #83 ; 0x53 + beq _06010724 + b _0601074C +_060106CC: + ldr r0, [r4, #24] + add r0, r0, #16 + bl FUN_06014510 + cmp r0, #0 + bne _06010704 + mov r1, #8 + ldr r0, [r4, #28] + strh r1, [r0, #4] + mov r0, #83 ; 0x53 + strh r0, [r4] + mov r0, #2 + mov r1, #3 + bl FUN_06009078 + b _0601074C +_06010704: + mov r1, #81 ; 0x51 + strh r1, [r4] + bl FUN_06014C6C + ldr r0, [r4, #24] + ldrh r0, [r0, #24] + ldr r1, _0601075C ; =FUN_06010658 + bl FUN_06009EE4 + b _0601074C +_06010724: + mov r0, #1 + bl FUN_06014FC8 + mov r0, #1 + bl FUN_06015060 + mov r0, #1 + mov r1, #0 + bl FUN_06014C8C + mov r0, #0 + strh r0, [r4] + bl FUN_06010228 +_0601074C: + ldmia sp!, {r4, lr} + bx lr +_06010754: .word 0x0380FFF4 +_06010758: .word 0x00000404 +_0601075C: .word FUN_06010658 + + arm_func_start FUN_06010760 +FUN_06010760: ; 0x06010760 + ldr r0, _06010798 ; =0x0380FFF4 + ldr r2, [r0] + ldr r0, _0601079C ; =0x00000404 + add r0, r2, r0 + mov r1, #7 + ldr r0, [r0, #28] + strh r1, [r0, #4] + mov r1, #53 ; 0x35 + add r0, r2, #1024 ; 0x400 + strh r1, [r0, #4] + mov r0, #2 + mov r1, r0 + ldr ip, _060107A0 ; =FUN_06009078 + bx ip +_06010798: .word 0x0380FFF4 +_0601079C: .word 0x00000404 +_060107A0: .word FUN_06009078 + + arm_func_start FUN_060107A4 +FUN_060107A4: ; 0x060107A4 + stmdb sp!, {r4, lr} + ldr r0, _06010880 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06010884 ; =0x00000404 + add r4, r1, r0 + add r0, r1, #1024 ; 0x400 + ldrh r0, [r0, #4] + cmp r0, #48 ; 0x30 + beq _060107D4 + cmp r0, #53 ; 0x35 + beq _06010850 + b _06010878 +_060107D4: + ldr r0, [r4, #24] + add r0, r0, #16 + mov r1, #0 + mov r2, r1 + bl FUN_06013F38 + cmp r0, #0 + bne _06010814 + mov r1, #8 + ldr r0, [r4, #28] + strh r1, [r0, #4] + mov r0, #53 ; 0x35 + strh r0, [r4] + mov r0, #2 + mov r1, r0 + bl FUN_06009078 + b _06010878 +_06010814: + ldr r1, [r4, #24] + ldrh r1, [r1, #22] + strh r1, [r0, #44] ; 0x2c + mov r1, #1 + strh r1, [r0, #46] ; 0x2e + mov r1, #0 + strh r1, [r0, #48] ; 0x30 + mov r1, #49 ; 0x31 + strh r1, [r4] + bl FUN_06014C6C + ldr r0, [r4, #24] + ldrh r0, [r0, #24] + ldr r1, _06010888 ; =FUN_06010760 + bl FUN_06009EE4 + b _06010878 +_06010850: + mov r0, #1 + bl FUN_06014FC8 + mov r0, #1 + bl FUN_06015060 + mov r0, #1 + mov r1, #0 + bl FUN_06014C8C + mov r0, #0 + strh r0, [r4] + bl FUN_06010228 +_06010878: + ldmia sp!, {r4, lr} + bx lr +_06010880: .word 0x0380FFF4 +_06010884: .word 0x00000404 +_06010888: .word FUN_06010760 + + arm_func_start FUN_0601088C +FUN_0601088C: ; 0x0601088C + ldr r0, _060108C0 ; =0x0380FFF4 + ldr r2, [r0] + ldr r0, _060108C4 ; =0x00000404 + add r1, r2, r0 + mov r0, #7 + strh r0, [r1, #4] + mov r1, #37 ; 0x25 + add r0, r2, #1024 ; 0x400 + strh r1, [r0, #4] + mov r0, #2 + mov r1, #1 + ldr ip, _060108C8 ; =FUN_06009078 + bx ip +_060108C0: .word 0x0380FFF4 +_060108C4: .word 0x00000404 +_060108C8: .word FUN_06009078 + + arm_func_start FUN_060108CC +FUN_060108CC: ; 0x060108CC + stmdb sp!, {r4, lr} + ldr r0, _06010964 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06010968 ; =0x00000404 + add r4, r1, r0 + add r0, r1, #1024 ; 0x400 + ldrh r0, [r0, #4] + cmp r0, #32 + beq _060108FC + cmp r0, #37 ; 0x25 + beq _06010928 + b _0601095C +_060108FC: + bl FUN_0600A5A4 + mov r0, #0 + strh r0, [r4, #4] + strh r0, [r4, #6] + mov r0, #33 ; 0x21 + strh r0, [r4] + ldr r0, [r4, #24] + ldrh r0, [r0, #16] + ldr r1, _0601096C ; =FUN_0601088C + bl FUN_06009EE4 + b _0601095C +_06010928: + ldrh r1, [r4, #4] + ldr r0, [r4, #28] + strh r1, [r0, #4] + ldrh r1, [r4, #6] + ldr r0, [r4, #28] + strh r1, [r0, #6] + ldrh r0, [r4, #4] + cmp r0, #0 + beq _06010950 + bl FUN_0600A4EC +_06010950: + mov r0, #0 + strh r0, [r4] + bl FUN_06010228 +_0601095C: + ldmia sp!, {r4, lr} + bx lr +_06010964: .word 0x0380FFF4 +_06010968: .word 0x00000404 +_0601096C: .word FUN_0601088C + + arm_func_start FUN_06010970 +FUN_06010970: ; 0x06010970 + ldr r0, _060109CC ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _060109D0 ; =0x00000404 + add r2, r1, r0 + ldrh r1, [r2, #10] + ldrh r0, [r2, #12] + add r0, r1, r0 + strh r0, [r2, #10] + ldrh r1, [r2, #10] + ldr r0, [r2, #24] + ldrh r0, [r0, #74] ; 0x4a + cmp r1, r0 + bcc _060109BC + ldrh r0, [r2, #6] + cmp r0, #16 + movcc r0, #17 + strcch r0, [r2] + movcs r0, #21 + strcsh r0, [r2] +_060109BC: + mov r0, #2 + mov r1, #0 + ldr ip, _060109D4 ; =FUN_06009078 + bx ip +_060109CC: .word 0x0380FFF4 +_060109D0: .word 0x00000404 +_060109D4: .word FUN_06009078 + + arm_func_start FUN_060109D8 +FUN_060109D8: ; 0x060109D8 + stmdb sp!, {r4, r5, r6, lr} + ldr r0, _06010BC8 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06010BCC ; =0x00000404 + add r6, r1, r0 + add r5, r1, #836 ; 0x344 + mov r4, #0 + add r0, r1, #1024 ; 0x400 + ldrh r0, [r0, #4] + sub r0, r0, #16 + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _06010BAC + b _06010A24 + b _06010A9C + b _06010B34 + b _06010B34 + b _06010BAC + b _06010B8C +_06010A24: + mov r0, #32 + bl FUN_0600AF68 + mov r0, #2 + strh r0, [r5, #12] + mov r1, r4 + ldr r0, [r6, #28] + strh r1, [r0, #8] + ldr r0, [r6, #28] + strh r1, [r0, #6] + strh r1, [r6, #6] + strh r1, [r6, #8] + ldr r1, [r6, #24] + ldrh r0, [r1, #56] ; 0x38 + cmp r0, #0 + bne _06010A88 + ldrh r0, [r1, #74] ; 0x4a + add r0, r0, #3 + mov r1, #4 + bl FUN_06001840 + strh r0, [r6, #12] + ldrh r0, [r6, #12] + cmp r0, #10 + movcc r0, #10 + strcch r0, [r6, #12] + b _06010A90 +_06010A88: + ldrh r0, [r1, #74] ; 0x4a + strh r0, [r6, #12] +_06010A90: + mov r1, #0 + ldr r0, [r6, #28] + strh r1, [r0, #4] +_06010A9C: + ldr r0, [r6, #24] + add r1, r0, #58 ; 0x3a + ldrh r0, [r6, #6] + add r0, r1, r0 + bl FUN_06009CB0 + movs r5, r0 + moveq r0, #21 + streqh r0, [r6] + moveq r4, #1 + beq _06010BAC + ldrh r0, [r6, #6] + add r0, r0, #1 + strh r0, [r6, #6] + mov r0, #0 + strh r0, [r6, #10] + bl FUN_060191BC + cmp r0, #0 + beq _06010B00 + mov r1, #14 + ldr r0, [r6, #28] + strh r1, [r0, #4] + mov r0, #21 + strh r0, [r6] + mov r4, #1 + b _06010BAC +_06010B00: + ldrh r0, [r6] + cmp r0, #16 + bne _06010B20 + mov r0, r5 + mov r1, #0 + bl FUN_0600B570 + bl FUN_0600A5A4 + b _06010B2C +_06010B20: + mov r0, r5 + mov r1, #0 + bl FUN_0600B570 +_06010B2C: + mov r0, #18 + strh r0, [r6] +_06010B34: + mov r0, #19 + strh r0, [r6] + ldr r1, [r6, #24] + ldrh r0, [r1, #56] ; 0x38 + cmp r0, #0 + bne _06010B7C + add r0, r1, #16 + bl FUN_060140E4 + cmp r0, #0 + bne _06010B78 + mov r1, #8 + ldr r0, [r6, #28] + strh r1, [r0, #4] + mov r0, #21 + strh r0, [r6] + mov r4, #1 + b _06010BAC +_06010B78: + bl FUN_06014C6C +_06010B7C: + ldrh r0, [r6, #12] + ldr r1, _06010BD0 ; =FUN_06010970 + bl FUN_06009EE4 + b _06010BAC +_06010B8C: + strh r4, [r6] + bl FUN_0600A4EC + ldr r0, _06010BC8 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #46] ; 0x2e + strh r0, [r5, #12] + bl FUN_06010228 +_06010BAC: + cmp r4, #0 + beq _06010BC0 + mov r0, #2 + mov r1, #0 + bl FUN_06009078 +_06010BC0: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06010BC8: .word 0x0380FFF4 +_06010BCC: .word 0x00000404 +_06010BD0: .word FUN_06010970 + + arm_func_start FUN_06010BD4 +FUN_06010BD4: ; 0x06010BD4 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + mov r6, r0 + mov r5, r1 + ldr r2, _06010CB4 ; =0x0380FFF4 + ldr r1, [r2] + ldr r0, _06010CB8 ; =0x00000404 + add r4, r1, r0 + mov r0, #18 + strh r0, [r5, #2] + ldr r0, [r2] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #76] ; 0x4c + cmp r0, #32 + movne r0, #1 + bne _06010CAC + ldrh r0, [r6, #18] + cmp r0, #3 + movhi r0, #5 + bhi _06010CAC + ldrh r0, [r6, #20] + cmp r0, #63 ; 0x3f + movhi r0, #5 + bhi _06010CAC + ldrh r0, [r6, #22] + cmp r0, #0 + moveq r0, #5 + beq _06010CAC + cmp r0, #1000 ; 0x3e8 + movhi r0, #5 + bhi _06010CAC + mov r8, #0 + add r7, r6, #24 + b _06010C7C +_06010C58: + add r0, r7, r8 + bl FUN_06009CB0 + cmp r0, #0 + beq _06010C84 + bl FUN_0600AB58 + cmp r0, #0 + moveq r0, #5 + beq _06010CAC + add r8, r8, #1 +_06010C7C: + cmp r8, #16 + bcc _06010C58 +_06010C84: + cmp r8, #0 + moveq r0, #5 + beq _06010CAC + str r6, [r4, #24] + str r5, [r4, #28] + mov r0, #128 ; 0x80 + strh r0, [r4] + strh r0, [r5, #4] + bl FUN_060102D0 + mov r0, #128 ; 0x80 +_06010CAC: + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_06010CB4: .word 0x0380FFF4 +_06010CB8: .word 0x00000404 + + arm_func_start FUN_06010CBC +FUN_06010CBC: ; 0x06010CBC + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r0, _06010E54 ; =0x0380FFF4 + ldr r0, [r0] + add r5, r0, #836 ; 0x344 + add r4, r0, #796 ; 0x31c + mov r0, #1 + strh r0, [r1, #2] + ldrh r0, [r4, #18] + cmp r0, #1 + beq _06010CF4 + cmp r0, #0 + movne r0, #11 + bne _06010E4C +_06010CF4: + ldrh r0, [r5, #8] + cmp r0, #32 + movne r0, #1 + bne _06010E4C + ldrh r0, [r6, #16] + cmp r0, #32 + movhi r0, #5 + bhi _06010E4C + cmp r0, #0 + moveq r0, #5 + beq _06010E4C + ldrh r0, [r6, #50] ; 0x32 + cmp r0, #10 + movcc r0, #5 + bcc _06010E4C + cmp r0, #1000 ; 0x3e8 + movhi r0, #5 + bhi _06010E4C + ldrh r0, [r6, #52] ; 0x34 + cmp r0, #0 + moveq r0, #5 + beq _06010E4C + cmp r0, #255 ; 0xff + movhi r0, #5 + bhi _06010E4C + ldrh r0, [r6, #54] ; 0x36 + ldr r1, _06010E58 ; =0x0000FFF0 + ands r1, r0, r1 + movne r0, #5 + bne _06010E4C + bl FUN_0600AB58 + cmp r0, #0 + moveq r0, #5 + beq _06010E4C + ldrh r1, [r6, #56] ; 0x38 + cmp r1, #0 + moveq r0, #5 + beq _06010E4C + mov r0, #4096 ; 0x1000 + rsb r0, r0, #0 + ands r1, r1, r0 + movne r0, #5 + bne _06010E4C + ldrh r1, [r6, #58] ; 0x3a + cmp r1, #0 + moveq r0, #5 + beq _06010E4C + ands r0, r1, r0 + movne r0, #5 + bne _06010E4C + ldrh r0, [r6, #60] ; 0x3c + cmp r0, #128 ; 0x80 + movhi r0, #5 + bhi _06010E4C + mov r0, #0 + bl FUN_060191BC + cmp r0, #0 + movne r0, #14 + bne _06010E4C + ldrh r0, [r4, #18] + cmp r0, #0 + bne _06010DF8 + ldr r0, _06010E5C ; =_06019384 + bl FUN_0600BB58 + b _06010E00 +_06010DF8: + add r0, r4, #8 + bl FUN_0600BB58 +_06010E00: + ldrh r0, [r6, #16] + add r1, r6, #18 + bl FUN_0600BA3C + ldrh r0, [r6, #50] ; 0x32 + bl FUN_0600B9DC + ldrh r0, [r6, #52] ; 0x34 + bl FUN_0600B990 + ldrh r0, [r6, #54] ; 0x36 + mov r1, #0 + bl FUN_0600B570 + add r0, r6, #56 ; 0x38 + bl FUN_0600B528 + ldrh r0, [r6, #60] ; 0x3c + add r1, r6, #62 ; 0x3e + bl FUN_0600B1A0 + mov r0, #0 + strh r0, [r5, #164] ; 0xa4 + bl FUN_0600A5A4 + mov r0, #0 +_06010E4C: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06010E54: .word 0x0380FFF4 +_06010E58: .word 0x0000FFF0 +_06010E5C: .word _06019384 + + arm_func_start FUN_06010E60 +FUN_06010E60: ; 0x06010E60 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + mov r6, r1 + ldr r2, _06010F70 ; =0x0380FFF4 + ldr r1, [r2] + ldr r0, _06010F74 ; =0x00000404 + add r5, r1, r0 + mov r0, #1 + strh r0, [r6, #2] + ldr r1, [r2] + add r0, r1, #768 ; 0x300 + ldrh r0, [r0, #46] ; 0x2e + cmp r0, #0 + moveq r0, #11 + beq _06010F64 + cmp r0, #1 + beq _06010EB8 + ldrh r0, [r7, #16] + ands r0, r0, #1 + movne r0, #5 + bne _06010F64 +_06010EB8: + add r0, r1, #768 ; 0x300 + ldrh r0, [r0, #76] ; 0x4c + cmp r0, #64 ; 0x40 + movne r0, #1 + bne _06010F64 + add r0, r7, #16 + ldrh r1, [r7, #22] + bl FUN_060145BC + movs r4, r0 + moveq r0, #8 + beq _06010F64 + str r7, [r5, #24] + str r6, [r5, #28] + str r4, [r5, #4] + mov r0, #113 ; 0x71 + strh r0, [r5] + ldrh r0, [r7, #16] + ands r0, r0, #1 + beq _06010F50 + ldr r1, _06010F70 ; =0x0380FFF4 + ldr r0, [r1] + ldr r0, [r0, #1004] ; 0x3ec + strh r0, [r4, #4] + ldr r0, [r1] + add r0, r0, #392 ; 0x188 + sub r1, r4, #16 + bl FUN_0600F45C + ldr r0, _06010F70 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1280 ; 0x500 + ldrh r1, [r0, #46] ; 0x2e + ldrh r0, [r0, #50] ; 0x32 + mvn r0, r0 + ands r0, r1, r0 + bne _06010F60 + mov r0, #2 + bl FUN_06015C78 + b _06010F60 +_06010F50: + add r0, r7, #16 + bl FUN_06014E14 + mov r0, r4 + bl FUN_06014C6C +_06010F60: + mov r0, #128 ; 0x80 +_06010F64: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06010F70: .word 0x0380FFF4 +_06010F74: .word 0x00000404 + + arm_func_start FUN_06010F78 +FUN_06010F78: ; 0x06010F78 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r2, _06011040 ; =0x0380FFF4 + ldr lr, [r2] + add r3, lr, #836 ; 0x344 + ldr r2, _06011044 ; =0x00000404 + add r2, lr, r2 + mov ip, #3 + strh ip, [r1, #2] + add ip, lr, #768 ; 0x300 + ldrh ip, [ip, #46] ; 0x2e + cmp ip, #3 + beq _06010FB8 + cmp ip, #2 + movne r0, #11 + bne _06011034 +_06010FB8: + ldrh ip, [r3, #8] + cmp ip, #48 ; 0x30 + movcc r0, #1 + bcc _06011034 + ldrh ip, [r0, #16] + ands ip, ip, #1 + movne r0, #5 + bne _06011034 + ldrh lr, [r0, #22] + cmp lr, #1 + movcc r0, #5 + bcc _06011034 + cmp lr, #255 ; 0xff + movhi r0, #5 + bhi _06011034 + ldrh ip, [r0, #24] + cmp ip, #2000 ; 0x7d0 + movhi r0, #5 + bhi _06011034 + cmp ip, #10 + movcc r0, #5 + bcc _06011034 + strh lr, [r3, #112] ; 0x70 + ldrh ip, [r0, #22] + strh ip, [r3, #114] ; 0x72 + str r0, [r2, #24] + str r1, [r2, #28] + mov r0, #96 ; 0x60 + strh r0, [r2] + bl FUN_0601059C + mov r0, #128 ; 0x80 +_06011034: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06011040: .word 0x0380FFF4 +_06011044: .word 0x00000404 + + arm_func_start FUN_06011048 +FUN_06011048: ; 0x06011048 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + mov r6, r1 + ldr r0, _06011128 ; =0x0380FFF4 + ldr r1, [r0] + add r5, r1, #836 ; 0x344 + ldr r0, _0601112C ; =0x00000404 + add r4, r1, r0 + mov r0, #3 + strh r0, [r6, #2] + add r0, r1, #768 ; 0x300 + ldrh r0, [r0, #46] ; 0x2e + cmp r0, #3 + beq _06011090 + cmp r0, #2 + movne r0, #11 + bne _0601111C +_06011090: + ldrh r0, [r5, #8] + cmp r0, #48 ; 0x30 + movcc r0, #1 + bcc _0601111C + ldrh r0, [r7, #16] + ands r0, r0, #1 + movne r0, #5 + bne _0601111C + ldrh r0, [r7, #22] + cmp r0, #0 + moveq r0, #5 + beq _0601111C + cmp r0, #255 ; 0xff + movhi r0, #5 + bhi _0601111C + ldrh r0, [r7, #24] + cmp r0, #2000 ; 0x7d0 + movhi r0, #5 + bhi _0601111C + cmp r0, #10 + movcc r0, #5 + bcc _0601111C + mov r0, #48 ; 0x30 + bl FUN_0600AF68 + bl FUN_0600B054 + ldrh r0, [r7, #22] + strh r0, [r5, #112] ; 0x70 + ldrh r0, [r7, #22] + strh r0, [r5, #114] ; 0x72 + str r7, [r4, #24] + str r6, [r4, #28] + mov r0, #80 ; 0x50 + strh r0, [r4] + bl FUN_0601069C + mov r0, #128 ; 0x80 +_0601111C: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06011128: .word 0x0380FFF4 +_0601112C: .word 0x00000404 + + arm_func_start FUN_06011130 +FUN_06011130: ; 0x06011130 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + mov r6, r1 + ldr r2, _06011270 ; =0x0380FFF4 + ldr r1, [r2] + ldr r0, _06011274 ; =0x00000404 + add r5, r1, r0 + mov r0, #4 + strh r0, [r6, #2] + ldr r2, [r2] + add r0, r2, #768 ; 0x300 + ldrh r1, [r0, #46] ; 0x2e + cmp r1, #3 + beq _06011180 + cmp r1, #2 + beq _06011180 + cmp r1, #1 + movne r0, #11 + bne _06011264 +_06011180: + add r0, r2, #768 ; 0x300 + ldrh r0, [r0, #76] ; 0x4c + cmp r0, #48 ; 0x30 + movcc r0, #1 + bcc _06011264 + ldr r0, _06011278 ; =0x0000FFFE + add r0, r1, r0 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + cmp r0, #1 + bhi _060111BC + ldrh r0, [r7, #16] + ands r0, r0, #1 + movne r0, #5 + bne _06011264 +_060111BC: + add r0, r6, #6 + add r1, r7, #16 + bl FUN_0600AF4C + add r0, r6, #6 + ldrh r1, [r7, #22] + mov r2, #0 + bl FUN_06013E9C + movs r4, r0 + moveq r0, #8 + beq _06011264 + str r7, [r5, #24] + str r6, [r5, #28] + str r4, [r5, #4] + mov r0, #65 ; 0x41 + strh r0, [r5] + ldrh r0, [r7, #16] + ands r0, r0, #1 + beq _06011250 + ldr r1, _06011270 ; =0x0380FFF4 + ldr r0, [r1] + ldr r0, [r0, #1004] ; 0x3ec + strh r0, [r4, #4] + ldr r0, [r1] + add r0, r0, #392 ; 0x188 + sub r1, r4, #16 + bl FUN_0600F45C + ldr r0, _06011270 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1280 ; 0x500 + ldrh r1, [r0, #46] ; 0x2e + ldrh r0, [r0, #50] ; 0x32 + mvn r0, r0 + ands r0, r1, r0 + bne _06011260 + mov r0, #2 + bl FUN_06015C78 + b _06011260 +_06011250: + add r0, r7, #16 + bl FUN_06014E14 + mov r0, r4 + bl FUN_06014C6C +_06011260: + mov r0, #128 ; 0x80 +_06011264: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06011270: .word 0x0380FFF4 +_06011274: .word 0x00000404 +_06011278: .word 0x0000FFFE + + arm_func_start FUN_0601127C +FUN_0601127C: ; 0x0601127C + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + ldr r0, _06011350 ; =0x0380FFF4 + ldr r1, [r0] + add r2, r1, #836 ; 0x344 + ldr r0, _06011354 ; =0x00000404 + add r4, r1, r0 + mov r0, #6 + strh r0, [r5, #2] + add r0, r1, #768 ; 0x300 + ldrh r0, [r0, #46] ; 0x2e + cmp r0, #3 + beq _060112C0 + cmp r0, #2 + movne r0, #11 + bne _06011348 +_060112C0: + ldrh r0, [r2, #8] + cmp r0, #32 + movcc r0, #1 + bcc _06011348 + ldrh r0, [r6, #16] + ands r0, r0, #1 + movne r0, #5 + bne _06011348 + ldrh r0, [r6, #22] + cmp r0, #1 + movhi r0, #5 + bhi _06011348 + ldrh r0, [r6, #24] + cmp r0, #2000 ; 0x7d0 + movhi r0, #5 + bhi _06011348 + cmp r0, #10 + movcc r0, #5 + bcc _06011348 + mov r0, #32 + bl FUN_0600AF68 + str r6, [r4, #24] + str r5, [r4, #28] + mov r0, #48 ; 0x30 + strh r0, [r4] + ldr r0, [r4, #24] + ldrh r0, [r0, #22] + strh r0, [r5, #14] + add r0, r5, #8 + ldr r1, [r4, #24] + add r1, r1, #16 + bl FUN_0600AF4C + bl FUN_060107A4 + mov r0, #128 ; 0x80 +_06011348: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06011350: .word 0x0380FFF4 +_06011354: .word 0x00000404 + + arm_func_start FUN_06011358 +FUN_06011358: ; 0x06011358 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + ldr r0, _0601150C ; =0x0380FFF4 + ldr r1, [r0] + add r2, r1, #836 ; 0x344 + ldr r0, _06011510 ; =0x00000404 + add r4, r1, r0 + mov r0, #5 + strh r0, [r5, #2] + add r0, r1, #768 ; 0x300 + ldrh r0, [r0, #46] ; 0x2e + cmp r0, #3 + beq _0601139C + cmp r0, #2 + movne r0, #11 + bne _06011504 +_0601139C: + ldrh r0, [r2, #8] + cmp r0, #32 + movcc r0, #1 + bcc _06011504 + mov r0, #32 + bl FUN_0600AF68 + ldrh r0, [r6, #24] + ands r0, r0, #1 + movne r0, #5 + bne _06011504 + ldrh r0, [r6, #30] + cmp r0, #0 + moveq r0, #5 + beq _06011504 + cmp r0, #32 + movhi r0, #5 + bhi _06011504 + ldrh r0, [r6, #70] ; 0x46 + cmp r0, #10 + movcc r0, #5 + bcc _06011504 + cmp r0, #1000 ; 0x3e8 + movhi r0, #5 + bhi _06011504 + ldrh r0, [r6, #72] ; 0x48 + cmp r0, #255 ; 0xff + movhi r0, #5 + bhi _06011504 + ldrh r0, [r6, #74] ; 0x4a + ldr r1, _06011514 ; =0x0000FFF0 + ands r1, r0, r1 + movne r0, #5 + bne _06011504 + bl FUN_0600AB58 + cmp r0, #0 + moveq r0, #5 + beq _06011504 + ldrh r2, [r6, #66] ; 0x42 + mov r0, #4096 ; 0x1000 + rsb r0, r0, #0 + ands r1, r2, r0 + movne r0, #5 + bne _06011504 + ldrh r1, [r6, #68] ; 0x44 + ands r0, r1, r0 + movne r0, #5 + bne _06011504 + cmp r2, #0 + moveq r0, #5 + beq _06011504 + orrs r0, r1, r2 + moveq r0, #5 + beq _06011504 + ldrh r0, [r6, #16] + cmp r0, #2000 ; 0x7d0 + movhi r0, #5 + bhi _06011504 + mov r0, #0 + bl FUN_060191BC + cmp r0, #0 + movne r0, #14 + bne _06011504 + ldrh r0, [r6, #64] ; 0x40 + ands r0, r0, #32 + beq _060114AC + mov r0, #1 + bl FUN_0600BE0C + b _060114B4 +_060114AC: + mov r0, #0 + bl FUN_0600BE0C +_060114B4: + add r0, r6, #24 + bl FUN_0600BB58 + ldrh r0, [r6, #30] + add r1, r6, #32 + bl FUN_0600BA3C + ldrh r0, [r6, #70] ; 0x46 + bl FUN_0600B9DC + ldrh r0, [r6, #74] ; 0x4a + mov r1, #0 + bl FUN_0600B570 + add r0, r6, #66 ; 0x42 + bl FUN_0600B528 + str r6, [r4, #24] + str r5, [r4, #28] + mov r0, #32 + strh r0, [r4] + mov r0, #2 + mov r1, #1 + bl FUN_06009078 + mov r0, #128 ; 0x80 +_06011504: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0601150C: .word 0x0380FFF4 +_06011510: .word 0x00000404 +_06011514: .word 0x0000FFF0 + + arm_func_start FUN_06011518 +FUN_06011518: ; 0x06011518 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + mov r6, r0 + mov r5, r1 + ldr r0, _0601165C ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06011660 ; =0x00000404 + add r4, r1, r0 + ldrh r0, [r5, #2] + sub r0, r0, #3 + strh r0, [r4, #4] + mov r0, #3 + strh r0, [r5, #2] + add r0, r1, #768 ; 0x300 + ldrh r0, [r0, #46] ; 0x2e + cmp r0, #1 + beq _0601156C + cmp r0, #3 + beq _0601156C + cmp r0, #2 + movne r0, #11 + bne _06011654 +_0601156C: + ldr r0, _0601165C ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #76] ; 0x4c + cmp r0, #32 + movcc r0, #1 + bcc _06011654 + ldrh r0, [r6, #22] + cmp r0, #32 + movhi r0, #5 + bhi _06011654 + ldrh r0, [r6, #56] ; 0x38 + cmp r0, #1 + movhi r0, #5 + bhi _06011654 + add r0, r6, #58 ; 0x3a + bl FUN_06009CB0 + cmp r0, #0 + moveq r0, #5 + beq _06011654 + ldrh r0, [r6, #74] ; 0x4a + cmp r0, #1000 ; 0x3e8 + movhi r0, #5 + bhi _06011654 + cmp r0, #10 + movcc r0, #5 + bcc _06011654 + ldrh r0, [r6, #76] ; 0x4c + cmp r0, #16 + movhi r0, #5 + bhi _06011654 + mov r8, #0 + add r7, r6, #58 ; 0x3a + b _06011618 +_060115F4: + add r0, r7, r8 + bl FUN_06009CB0 + cmp r0, #0 + beq _06011620 + bl FUN_0600AB58 + cmp r0, #0 + moveq r0, #5 + beq _06011654 + add r8, r8, #1 +_06011618: + cmp r8, #16 + bcc _060115F4 +_06011620: + add r0, r6, #16 + bl FUN_0600BB58 + ldrh r0, [r6, #22] + add r1, r6, #24 + bl FUN_0600BA3C + str r6, [r4, #24] + str r5, [r4, #28] + mov r0, #16 + strh r0, [r4] + mov r0, #2 + mov r1, #0 + bl FUN_06009078 + mov r0, #128 ; 0x80 +_06011654: + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_0601165C: .word 0x0380FFF4 +_06011660: .word 0x00000404 + + arm_func_start FUN_06011664 +FUN_06011664: ; 0x06011664 + stmdb sp!, {r4, lr} + mov r4, r0 + mov r0, #9 + strh r0, [r1, #2] + ldrh r0, [r4, #16] + cmp r0, #1 + movhi r0, #5 + bhi _06011700 + ldrh r1, [r4, #18] + cmp r1, #1 + movhi r0, #5 + bhi _06011700 + ldrh r1, [r4, #20] + cmp r1, #1 + movhi r0, #5 + bhi _06011700 + bl FUN_0600B420 + ldrh r0, [r4, #16] + cmp r0, #1 + bne _060116EC + ldrh r0, [r4, #18] + cmp r0, #1 + bne _060116CC + ldr r0, _06011708 ; =0x00008001 + bl FUN_0600B3E0 + b _060116D4 +_060116CC: + mov r0, #0 + bl FUN_0600B3E0 +_060116D4: + ldrh r1, [r4, #20] + ldr r0, _0601170C ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + strh r1, [r0, #88] ; 0x58 + b _060116FC +_060116EC: + mov r0, #32768 ; 0x8000 + bl FUN_0600B3E0 + mov r0, #2 + bl FUN_0600B3F4 +_060116FC: + mov r0, #0 +_06011700: + ldmia sp!, {r4, lr} + bx lr +_06011708: .word 0x00008001 +_0601170C: .word 0x0380FFF4 + + arm_func_start FUN_06011710 +FUN_06011710: ; 0x06011710 + stmdb sp!, {r4, lr} + mov r4, r0 + mov r0, #1 + strh r0, [r1, #2] + ldrh r0, [r4, #16] + cmp r0, #1 + movhi r0, #5 + bhi _06011748 + bl FUN_0600A4EC + ldrh r0, [r4, #16] + cmp r0, #1 + bne _06011744 + bl FUN_0600AE88 +_06011744: + mov r0, #0 +_06011748: + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_06011750 +FUN_06011750: ; 0x06011750 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r4, r1 + ldrh r0, [r4, #2] + cmp r0, #1 + ldrhi r0, _06011830 ; =0x0380FFF4 + ldrhi r0, [r0] + addhi r0, r0, #768 ; 0x300 + ldrhih r0, [r0, #228] ; 0xe4 + strhih r0, [r4, #6] + ldr r0, _06011830 ; =0x0380FFF4 + ldr r3, [r0] + add r0, r3, #768 ; 0x300 + ldrh r2, [r0, #228] ; 0xe4 + ldrh r1, [r4, #2] + sub r1, r1, #2 + cmp r2, r1, lsl #1 + movgt r0, #4 + bgt _06011824 + ldrh r2, [r4, #6] + cmp r2, #0 + beq _06011808 + ldrh r0, [r0, #230] ; 0xe6 + ands r0, r0, #1 + beq _060117F8 + ldr r0, [r3, #992] ; 0x3e0 + add r7, r0, #1 + add r6, r4, #8 + mov r5, #0 + b _060117E8 +_060117C8: + mov r0, r7 + bl FUN_06009CB0 + mov r1, r0 + mov r0, r6 + bl FUN_06009CD0 + add r6, r6, #1 + add r7, r7, #1 + add r5, r5, #1 +_060117E8: + ldrh r0, [r4, #6] + cmp r5, r0 + bcc _060117C8 + b _06011808 +_060117F8: + ldr r0, [r3, #992] ; 0x3e0 + add r1, r4, #8 + add r2, r2, #1 + bl FUN_06000EA0 +_06011808: + ldrh r0, [r4, #6] + add r0, r0, #1 + mov r1, #2 + bl FUN_06001840 + add r0, r0, #2 + strh r0, [r4, #2] + mov r0, #0 +_06011824: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06011830: .word 0x0380FFF4 + + arm_func_start FUN_06011834 +FUN_06011834: ; 0x06011834 + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011858 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #180] ; 0xb4 + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06011858: .word 0x0380FFF4 + + arm_func_start FUN_0601185C +FUN_0601185C: ; 0x0601185C + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011880 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #184] ; 0xb8 + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06011880: .word 0x0380FFF4 + + arm_func_start FUN_06011884 +FUN_06011884: ; 0x06011884 + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _060118A8 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #178] ; 0xb2 + strh r0, [r1, #6] + mov r0, #0 + bx lr +_060118A8: .word 0x0380FFF4 + + arm_func_start FUN_060118AC +FUN_060118AC: ; 0x060118AC + mov r0, #18 + strh r0, [r1, #2] + ldr r2, _060118F4 ; =0x0380FFF4 + ldr r0, [r2] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #98] ; 0x62 + strh r0, [r1, #6] + add r3, r1, #8 + ldr r0, [r2] + add r1, r0, #868 ; 0x364 + mov r2, #0 +_060118D8: + ldrh r0, [r1], #2 + strh r0, [r3], #2 + add r2, r2, #2 + cmp r2, #32 + bcc _060118D8 + mov r0, #0 + bx lr +_060118F4: .word 0x0380FFF4 + + arm_func_start FUN_060118F8 +FUN_060118F8: ; 0x060118F8 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r0, #4 + strh r0, [r1, #2] + add r0, r1, #6 + ldr r1, _0601192C ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #936 ; 0x3a8 + bl FUN_0600AF4C + mov r0, #0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0601192C: .word 0x0380FFF4 + + arm_func_start FUN_06011930 +FUN_06011930: ; 0x06011930 + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011968 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r2, [r0, #76] ; 0x4c + cmp r2, #16 + movcc r0, #1 + ldrcsh r0, [r0, #58] ; 0x3a + movcs r0, r0, lsl #24 + movcs r0, r0, lsr #31 + strcsh r0, [r1, #6] + movcs r0, #0 + bx lr +_06011968: .word 0x0380FFF4 + + arm_func_start FUN_0601196C +FUN_0601196C: ; 0x0601196C + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _060119A4 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r2, [r0, #76] ; 0x4c + cmp r2, #16 + movcc r0, #1 + ldrcsh r0, [r0, #58] ; 0x3a + movcs r0, r0, lsl #25 + movcs r0, r0, lsr #31 + strcsh r0, [r1, #6] + movcs r0, #0 + bx lr +_060119A4: .word 0x0380FFF4 + + arm_func_start FUN_060119A8 +FUN_060119A8: ; 0x060119A8 + mov r0, #3 + strh r0, [r1, #2] + ldr r3, _06011A04 ; =0x0380FFF4 + ldr r0, [r3] + add r0, r0, #768 ; 0x300 + ldrh r2, [r0, #76] ; 0x4c + cmp r2, #16 + movcc r0, #1 + bxcc lr + ldrh r0, [r0, #58] ; 0x3a + mov r0, r0, lsl #27 + mov r0, r0, lsr #31 + strh r0, [r1, #6] + ldr r0, [r3] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #58] ; 0x3a + mov r2, r0, lsl #26 + mov r2, r2, lsr #31 + mov r0, r0, lsl #28 + eor r0, r2, r0, lsr #31 + strh r0, [r1, #8] + mov r0, #0 + bx lr +_06011A04: .word 0x0380FFF4 + + arm_func_start FUN_06011A08 +FUN_06011A08: ; 0x06011A08 + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011A40 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r2, [r0, #76] ; 0x4c + cmp r2, #16 + movcc r0, #1 + ldrcsh r0, [r0, #58] ; 0x3a + movcs r0, r0, lsl #28 + movcs r0, r0, lsr #31 + strcsh r0, [r1, #6] + movcs r0, #0 + bx lr +_06011A40: .word 0x0380FFF4 + + arm_func_start FUN_06011A44 +FUN_06011A44: ; 0x06011A44 + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011A6C ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #34] ; 0x22 + sub r0, r0, #1 + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06011A6C: .word 0x0380FFF4 + + arm_func_start FUN_06011A70 +FUN_06011A70: ; 0x06011A70 + stmdb sp!, {r4, lr} + mov r4, r1 + mov r0, #4 + strh r0, [r4, #2] + mov r0, #19 + bl FUN_0600A4B8 + strh r0, [r4, #6] + mov r0, #53 ; 0x35 + bl FUN_0600A4B8 + strh r0, [r4, #8] + mov r0, #46 ; 0x2e + bl FUN_0600A4B8 + strh r0, [r4, #10] + mov r0, #0 + ldmia sp!, {r4, lr} + bx lr + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011AD4 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #50] ; 0x32 + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06011AD4: .word 0x0380FFF4 + + arm_func_start FUN_06011AD8 +FUN_06011AD8: ; 0x06011AD8 + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011B04 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #58] ; 0x3a + mov r0, r0, lsl #29 + mov r0, r0, lsr #31 + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06011B04: .word 0x0380FFF4 + + arm_func_start FUN_06011B08 +FUN_06011B08: ; 0x06011B08 + mov r0, #17 + strh r0, [r1, #2] + add r2, r1, #6 + ldr r0, _06011B40 ; =0x0380FFF4 + ldr r0, [r0] + add r1, r0, #900 ; 0x384 + mov r3, #0 +_06011B24: + ldrh r0, [r1], #2 + strh r0, [r2], #2 + add r3, r3, #1 + cmp r3, #16 + bcc _06011B24 + mov r0, #0 + bx lr +_06011B40: .word 0x0380FFF4 + + arm_func_start FUN_06011B44 +FUN_06011B44: ; 0x06011B44 + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011B68 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #60] ; 0x3c + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06011B68: .word 0x0380FFF4 + + arm_func_start FUN_06011B6C +FUN_06011B6C: ; 0x06011B6C + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011B90 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #194] ; 0xc2 + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06011B90: .word 0x0380FFF4 + + arm_func_start FUN_06011B94 +FUN_06011B94: ; 0x06011B94 + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011BC0 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #58] ; 0x3a + mov r0, r0, lsl #30 + mov r0, r0, lsr #31 + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06011BC0: .word 0x0380FFF4 + + arm_func_start FUN_06011BC4 +FUN_06011BC4: ; 0x06011BC4 + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011BF0 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #58] ; 0x3a + mov r0, r0, lsl #31 + mov r0, r0, lsr #31 + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06011BF0: .word 0x0380FFF4 + + arm_func_start FUN_06011BF4 +FUN_06011BF4: ; 0x06011BF4 + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011C18 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #54] ; 0x36 + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06011C18: .word 0x0380FFF4 + + arm_func_start FUN_06011C1C +FUN_06011C1C: ; 0x06011C1C + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011C40 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #52] ; 0x34 + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06011C40: .word 0x0380FFF4 + + arm_func_start FUN_06011C44 +FUN_06011C44: ; 0x06011C44 + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011C68 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #48] ; 0x30 + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06011C68: .word 0x0380FFF4 + + arm_func_start FUN_06011C6C +FUN_06011C6C: ; 0x06011C6C + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011C90 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #46] ; 0x2e + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06011C90: .word 0x0380FFF4 + + arm_func_start FUN_06011C94 +FUN_06011C94: ; 0x06011C94 + mov r0, #3 + strh r0, [r1, #2] + ldr r2, _06011CC8 ; =0x0380FFF4 + ldr r0, [r2] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #44] ; 0x2c + strh r0, [r1, #6] + ldr r0, [r2] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #190] ; 0xbe + strh r0, [r1, #8] + mov r0, #0 + bx lr +_06011CC8: .word 0x0380FFF4 + + arm_func_start FUN_06011CCC +FUN_06011CCC: ; 0x06011CCC + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06011CF0 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #42] ; 0x2a + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06011CF0: .word 0x0380FFF4 + + arm_func_start FUN_06011CF4 +FUN_06011CF4: ; 0x06011CF4 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r0, #4 + strh r0, [r1, #2] + add r0, r1, #6 + ldr r1, _06011D28 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #804 ; 0x324 + bl FUN_0600AF4C + mov r0, #0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06011D28: .word 0x0380FFF4 + + arm_func_start FUN_06011D2C +FUN_06011D2C: ; 0x06011D2C + stmdb sp!, {r4, lr} + mov r4, r1 + mov r0, #33 ; 0x21 + strh r0, [r4, #2] + add r0, r4, #6 + ldr r1, _06011E60 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #804 ; 0x324 + bl FUN_0600AF4C + ldr r0, _06011E60 ; =0x0380FFF4 + ldr r1, [r0] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #42] ; 0x2a + strh r1, [r4, #12] + ldr r1, [r0] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #44] ; 0x2c + strh r1, [r4, #14] + ldr r1, [r0] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #190] ; 0xbe + strh r1, [r4, #16] + ldr r1, [r0] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #46] ; 0x2e + strh r1, [r4, #18] + ldr r1, [r0] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #48] ; 0x30 + strh r1, [r4, #20] + ldr r1, [r0] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #52] ; 0x34 + strh r1, [r4, #22] + ldr r1, [r0] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #54] ; 0x36 + strh r1, [r4, #24] + ldr r1, [r0] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #58] ; 0x3a + mov r1, r1, lsl #31 + mov r1, r1, lsr #31 + strh r1, [r4, #26] + ldr r1, [r0] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #58] ; 0x3a + mov r1, r1, lsl #30 + mov r1, r1, lsr #31 + strh r1, [r4, #28] + ldr r1, [r0] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #194] ; 0xc2 + strh r1, [r4, #30] + ldr r1, [r0] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #60] ; 0x3c + strh r1, [r4, #32] + ldr r0, [r0] + add r0, r0, #900 ; 0x384 + add r1, r4, #34 ; 0x22 + mov r2, #32 + bl FUN_06000EA0 + ldr r1, _06011E60 ; =0x0380FFF4 + ldr r0, [r1] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #58] ; 0x3a + mov r0, r0, lsl #29 + mov r0, r0, lsr #31 + strh r0, [r4, #66] ; 0x42 + ldr r0, [r1] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #50] ; 0x32 + strh r0, [r4, #68] ; 0x44 + mov r0, #0 + ldmia sp!, {r4, lr} + bx lr +_06011E60: .word 0x0380FFF4 + + arm_func_start FUN_06011E64 +FUN_06011E64: ; 0x06011E64 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r4, r0 + mov r0, #1 + strh r0, [r1, #2] + ldr r0, _06011ED0 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #46] ; 0x2e + cmp r0, #1 + movne r0, #11 + bne _06011EC4 + ldrh r5, [r4, #16] + add r0, r5, #1 + mov r1, #2 + bl FUN_06001840 + ldrh r1, [r4, #14] + add r0, r0, #1 + cmp r1, r0 + movlt r0, #4 + blt _06011EC4 + mov r0, r5 + add r1, r4, #18 + bl FUN_0600B0F4 +_06011EC4: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06011ED0: .word 0x0380FFF4 + + arm_func_start FUN_06011ED4 +FUN_06011ED4: ; 0x06011ED4 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r2, #1 + strh r2, [r1, #2] + ldr r1, _06011F1C ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #46] ; 0x2e + cmp r1, #2 + beq _06011F08 + cmp r1, #3 + movne r0, #11 + bne _06011F10 +_06011F08: + ldrh r0, [r0, #16] + bl FUN_0600B95C +_06011F10: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06011F1C: .word 0x0380FFF4 + + arm_func_start FUN_06011F20 +FUN_06011F20: ; 0x06011F20 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r2, #1 + strh r2, [r1, #2] + ldr r1, _06011F60 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #46] ; 0x2e + cmp r1, #1 + movne r0, #11 + bne _06011F54 + ldrh r0, [r0, #16] + bl FUN_0600B990 +_06011F54: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06011F60: .word 0x0380FFF4 + + arm_func_start FUN_06011F64 +FUN_06011F64: ; 0x06011F64 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r2, #1 + strh r2, [r1, #2] + ldr r1, _06011FA4 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #46] ; 0x2e + cmp r1, #1 + movne r0, #11 + bne _06011F98 + ldrh r0, [r0, #16] + bl FUN_0600B9DC +_06011F98: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06011FA4: .word 0x0380FFF4 + + arm_func_start FUN_06011FA8 +FUN_06011FA8: ; 0x06011FA8 + mov r2, r0 + mov r0, #1 + strh r0, [r1, #2] + ldrh r0, [r2, #16] + add r1, r2, #18 + ldr ip, _06011FC4 ; =FUN_0600BA3C + bx ip +_06011FC4: .word FUN_0600BA3C + + arm_func_start FUN_06011FC8 +FUN_06011FC8: ; 0x06011FC8 + mov r2, #1 + strh r2, [r1, #2] + add r0, r0, #16 + ldr ip, _06011FDC ; =FUN_0600BB58 + bx ip +_06011FDC: .word FUN_0600BB58 + + arm_func_start FUN_06011FE0 +FUN_06011FE0: ; 0x06011FE0 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r2, #1 + strh r2, [r1, #2] + ldr r1, _06012024 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #76] ; 0x4c + cmp r1, #16 + bcc _06012014 + ldrh r0, [r0, #16] + bl FUN_0600BBC0 + mov r2, r0 +_06012014: + mov r0, r2 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06012024: .word 0x0380FFF4 + + arm_func_start FUN_06012028 +FUN_06012028: ; 0x06012028 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r2, #1 + strh r2, [r1, #2] + ldr r1, _0601206C ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #76] ; 0x4c + cmp r1, #16 + bcc _0601205C + ldrh r0, [r0, #16] + bl FUN_0600BC1C + mov r2, r0 +_0601205C: + mov r0, r2 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0601206C: .word 0x0380FFF4 + + arm_func_start FUN_06012070 +FUN_06012070: ; 0x06012070 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r2, r0 + mov r0, #1 + strh r0, [r1, #2] + ldr r1, _060120B4 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #76] ; 0x4c + cmp r1, #16 + bcc _060120A8 + ldrh r0, [r2, #16] + ldrh r1, [r2, #18] + bl FUN_0600BC5C +_060120A8: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_060120B4: .word 0x0380FFF4 + + arm_func_start FUN_060120B8 +FUN_060120B8: ; 0x060120B8 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r2, #1 + strh r2, [r1, #2] + ldr r1, _060120FC ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #76] ; 0x4c + cmp r1, #16 + bcc _060120EC + ldrh r0, [r0, #16] + bl FUN_0600BD38 + mov r2, r0 +_060120EC: + mov r0, r2 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_060120FC: .word 0x0380FFF4 + + arm_func_start FUN_06012100 +FUN_06012100: ; 0x06012100 + mov r3, #1 + strh r3, [r1, #2] + ldr r2, _06012154 ; =0x0380FFF4 + ldr r1, [r2] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #76] ; 0x4c + cmp r1, #32 + movhi r0, r3 + bxhi lr + ldrh r1, [r0, #16] + add r1, r1, #1 + strh r1, [r0, #16] + ldr r1, [r2] + ldrh r2, [r0, #16] + add r0, r1, #768 ; 0x300 + ldrh r1, [r0, #32] + cmp r2, r1 + movhi r0, #5 + strlsh r2, [r0, #34] ; 0x22 + movls r0, #0 + bx lr +_06012154: .word 0x0380FFF4 + + arm_func_start FUN_06012158 +FUN_06012158: ; 0x06012158 + stmdb sp!, {r4, lr} + ldr ip, _0601225C ; =0x0380FFF4 + ldr r2, [ip] + ldr r2, [r2, #796] ; 0x31c + mov r3, #1 + strh r3, [r1, #2] + ldrh r1, [r0, #16] + ldr r3, [ip] + add r3, r3, #768 ; 0x300 + ldrh r3, [r3, #34] ; 0x22 + cmp r1, r3 + bcc _06012198 + ldr r3, _06012260 ; =0x0000FFFF + cmp r1, r3 + movne r0, #5 + bne _06012254 +_06012198: + ldrh ip, [r0, #20] + cmp ip, #63 ; 0x3f + bls _060121B4 + ldr r3, _06012260 ; =0x0000FFFF + cmp ip, r3 + movne r0, #5 + bne _06012254 +_060121B4: + ldr r3, _06012260 ; =0x0000FFFF + cmp r1, r3 + bne _06012208 + mov r4, #1 + ldr ip, _0601225C ; =0x0380FFF4 + mov r3, #28 + b _060121F0 +_060121D0: + mla lr, r4, r3, r2 + ldrh r1, [r0, #18] + strh r1, [lr, #26] + ldrh r1, [lr, #24] + cmp r1, #0 + ldrneh r1, [r0, #18] + strneh r1, [lr, #24] + add r4, r4, #1 +_060121F0: + ldr r1, [ip] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #34] ; 0x22 + cmp r4, r1 + bcc _060121D0 + b _06012240 +_06012208: + cmp r1, #0 + beq _06012240 + ldrh lr, [r0, #18] + mov r3, #28 + mla ip, r1, r3, r2 + strh lr, [ip, #26] + add ip, r2, #24 + ldrh r1, [r0, #16] + mul r2, r1, r3 + add r3, ip, r2 + ldrh r1, [ip, r2] + cmp r1, #0 + ldrneh r1, [r0, #18] + strneh r1, [r3] +_06012240: + ldrh r0, [r0, #20] + cmp r0, #0 + beq _06012250 + bl FUN_0600B270 +_06012250: + mov r0, #0 +_06012254: + ldmia sp!, {r4, lr} + bx lr +_0601225C: .word 0x0380FFF4 +_06012260: .word 0x0000FFFF + + arm_func_start FUN_06012264 +FUN_06012264: ; 0x06012264 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r0, #1 + strh r0, [r1, #2] + ldrh r0, [r5, #20] + cmp r0, #63 ; 0x3f + movhi r0, #5 + bhi _060122AC + ldrh r0, [r5, #16] + ldrh r1, [r5, #18] + bl FUN_0600BDA0 + movs r4, r0 + bne _060122A8 + mov r0, #46 ; 0x2e + ldrh r1, [r5, #20] + bl FUN_0600A478 +_060122A8: + mov r0, r4 +_060122AC: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr + mov r2, #1 + strh r2, [r1, #2] + ldrh r0, [r0, #16] + ldr ip, _060122CC ; =FUN_0600BDE8 + bx ip +_060122CC: .word FUN_0600BDE8 + + arm_func_start FUN_060122D0 +FUN_060122D0: ; 0x060122D0 + mov r2, #1 + strh r2, [r1, #2] + ldrh r0, [r0, #16] + ldr ip, _060122E4 ; =FUN_0600BE0C + bx ip +_060122E4: .word FUN_0600BE0C + + arm_func_start FUN_060122E8 +FUN_060122E8: ; 0x060122E8 + mov r2, #1 + strh r2, [r1, #2] + add r0, r0, #16 + ldr ip, _060122FC ; =FUN_0600BECC + bx ip +_060122FC: .word FUN_0600BECC + + arm_func_start FUN_06012300 +FUN_06012300: ; 0x06012300 + mov r2, #1 + strh r2, [r1, #2] + ldrh r0, [r0, #16] + mov r1, #0 + ldr ip, _06012318 ; =FUN_0600BEFC + bx ip +_06012318: .word FUN_0600BEFC + + arm_func_start FUN_0601231C +FUN_0601231C: ; 0x0601231C + mov r2, #1 + strh r2, [r1, #2] + ldrh r0, [r0, #16] + ldr ip, _06012330 ; =FUN_0600BFBC + bx ip +_06012330: .word FUN_0600BFBC + + arm_func_start FUN_06012334 +FUN_06012334: ; 0x06012334 + mov r2, #1 + strh r2, [r1, #2] + ldrh r0, [r0, #16] + ldr ip, _06012348 ; =FUN_0600BFF4 + bx ip +_06012348: .word FUN_0600BFF4 + + arm_func_start FUN_0601234C +FUN_0601234C: ; 0x0601234C + stmfd sp!, {lr} + sub sp, sp, #4 + mov r2, #1 + strh r2, [r1, #2] + ldr r1, _06012390 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #76] ; 0x4c + cmp r1, #32 + bhi _06012380 + ldrh r0, [r0, #16] + bl FUN_0600C02C + mov r2, r0 +_06012380: + mov r0, r2 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06012390: .word 0x0380FFF4 + + arm_func_start FUN_06012394 +FUN_06012394: ; 0x06012394 + mov r2, #1 + strh r2, [r1, #2] + add r0, r0, #16 + ldr ip, _060123A8 ; =FUN_0600C064 + bx ip +_060123A8: .word FUN_0600C064 + + arm_func_start FUN_060123AC +FUN_060123AC: ; 0x060123AC + mov r2, #1 + strh r2, [r1, #2] + ldrh r0, [r0, #16] + ldr ip, _060123C0 ; =FUN_0600C0C8 + bx ip +_060123C0: .word FUN_0600C0C8 + + arm_func_start FUN_060123C4 +FUN_060123C4: ; 0x060123C4 + mov r2, #1 + strh r2, [r1, #2] + ldrh r0, [r0, #16] + ldr ip, _060123D8 ; =FUN_0600C0EC + bx ip +_060123D8: .word FUN_0600C0EC + + arm_func_start FUN_060123DC +FUN_060123DC: ; 0x060123DC + mov r2, #1 + strh r2, [r1, #2] + ldrh r0, [r0, #16] + ldr ip, _060123F0 ; =FUN_0600C1A0 + bx ip +_060123F0: .word FUN_0600C1A0 + + arm_func_start FUN_060123F4 +FUN_060123F4: ; 0x060123F4 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r3, #1 + strh r3, [r1, #2] + ldr r1, _0601244C ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r2, [r1, #76] ; 0x4c + cmp r2, #32 + movhi r0, r3 + bhi _06012440 + cmp r2, #32 + bne _06012438 + ldrh r1, [r1, #86] ; 0x56 + cmp r1, #0 + movne r0, r3 + bne _06012440 +_06012438: + ldrh r0, [r0, #16] + bl FUN_0600C1DC +_06012440: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0601244C: .word 0x0380FFF4 + + arm_func_start FUN_06012450 +FUN_06012450: ; 0x06012450 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r2, #1 + strh r2, [r1, #2] + ldr r1, _06012494 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #76] ; 0x4c + cmp r1, #16 + bne _06012484 + ldrh r0, [r0, #16] + bl FUN_0600C264 + mov r2, r0 +_06012484: + mov r0, r2 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06012494: .word 0x0380FFF4 + + arm_func_start FUN_06012498 +FUN_06012498: ; 0x06012498 + mov r2, #1 + strh r2, [r1, #2] + ldrh r0, [r0, #16] + ldr ip, _060124AC ; =FUN_0600C2A4 + bx ip +_060124AC: .word FUN_0600C2A4 + + arm_func_start FUN_060124B0 +FUN_060124B0: ; 0x060124B0 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r2, #1 + strh r2, [r1, #2] + ldr r1, _060124F4 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #76] ; 0x4c + cmp r1, #16 + bne _060124E4 + add r0, r0, #16 + bl FUN_0600C2D8 + mov r2, r0 +_060124E4: + mov r0, r2 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_060124F4: .word 0x0380FFF4 + + arm_func_start FUN_060124F8 +FUN_060124F8: ; 0x060124F8 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r0, #1 + strh r0, [r1, #2] + ldr r1, _060125E8 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #76] ; 0x4c + cmp r1, #16 + bne _060125DC + add r0, r5, #16 + bl FUN_0600C2D8 + mov r4, r0 + ldrh r0, [r5, #22] + bl FUN_0600C2A4 + orr r4, r4, r0 + ldrh r0, [r5, #24] + bl FUN_0600C264 + orr r4, r4, r0 + ldrh r0, [r5, #28] + bl FUN_0600C1DC + orr r4, r4, r0 + ldrh r0, [r5, #30] + bl FUN_0600C1A0 + orr r4, r4, r0 + ldrh r0, [r5, #32] + bl FUN_0600C0EC + orr r4, r4, r0 + ldrh r0, [r5, #34] ; 0x22 + bl FUN_0600C0C8 + orr r4, r4, r0 + add r0, r5, #36 ; 0x24 + bl FUN_0600C064 + orr r4, r4, r0 + ldrh r0, [r5, #116] ; 0x74 + bl FUN_0600C02C + orr r4, r4, r0 + ldrh r0, [r5, #118] ; 0x76 + bl FUN_0600BFF4 + orr r4, r4, r0 + ldrh r0, [r5, #120] ; 0x78 + bl FUN_0600BFBC + orr r4, r4, r0 + ldrh r0, [r5, #122] ; 0x7a + mov r1, #0 + bl FUN_0600BEFC + orr r4, r4, r0 + add r0, r5, #124 ; 0x7c + bl FUN_0600BECC + orr r4, r4, r0 + ldrh r0, [r5, #156] ; 0x9c + bl FUN_0600BE0C + orr r4, r4, r0 + ldrh r0, [r5, #158] ; 0x9e + bl FUN_0600BDE8 + orr r0, r4, r0 +_060125DC: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_060125E8: .word 0x0380FFF4 + + arm_func_start FUN_060125EC +FUN_060125EC: ; 0x060125EC + stmdb sp!, {r4, lr} + ldr r2, _06012698 ; =0x0380FFF4 + ldr r2, [r2] + add r4, r2, #836 ; 0x344 + mov r3, #1 + strh r3, [r1, #2] + ldrh r2, [r4, #8] + and r1, r2, #240 ; 0xf0 + cmp r1, #16 + movne r0, r3 + bne _06012690 + ldrh r1, [r0, #16] + cmp r1, #0 + beq _06012664 + cmp r1, #1 + bne _0601268C + cmp r2, #16 + movne r0, r3 + bne _06012690 + ldrh r0, [r0, #18] + mov r1, r3 + bl FUN_0600B570 + mov r0, #0 + strh r0, [r4, #12] + bl FUN_0600A5A4 + mov r0, #32768 ; 0x8000 + bl FUN_0600B3E0 + mov r0, #17 + strh r0, [r4, #8] + b _0601268C +_06012664: + cmp r2, #17 + bne _0601267C + mov r0, #0 + bl FUN_0600B3E0 + bl FUN_0600A4EC + b _06012684 +_0601267C: + mov r0, r3 + b _06012690 +_06012684: + mov r0, #16 + strh r0, [r4, #8] +_0601268C: + mov r0, #0 +_06012690: + ldmia sp!, {r4, lr} + bx lr +_06012698: .word 0x0380FFF4 + + arm_func_start FUN_0601269C +FUN_0601269C: ; 0x0601269C + ldr r0, _0601271C ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #92] ; 0x5c + cmp r0, #0 + beq _060126D8 + mov r1, #0 + ldr r0, _06012720 ; =0x04804000 + strh r1, [r0] + strh r1, [r0, #4] + ldr r1, _06012724 ; =0x048080A0 + ldrh r0, [r1] + orr r0, r0, #32768 ; 0x8000 + strh r0, [r1] + bx lr +_060126D8: + mov r1, #1 + ldr r0, _06012728 ; =0x048080AC + strh r1, [r0] + mov r2, #0 + ldr r0, _0601272C ; =0x04808004 + strh r2, [r0] + mov r1, #2 + ldr r0, _06012730 ; =0x04808012 + strh r1, [r0] + ldr r1, _06012734 ; =0x0000FFFF + ldr r0, _06012738 ; =0x04808010 + strh r1, [r0] + ldr r0, _0601273C ; =0x04808194 + strh r2, [r0] + ldr r0, _06012740 ; =0x04808040 + strh r2, [r0] + bx lr +_0601271C: .word 0x0380FFF4 +_06012720: .word 0x04804000 +_06012724: .word 0x048080A0 +_06012728: .word 0x048080AC +_0601272C: .word 0x04808004 +_06012730: .word 0x04808012 +_06012734: .word 0x0000FFFF +_06012738: .word 0x04808010 +_0601273C: .word 0x04808194 +_06012740: .word 0x04808040 + + arm_func_start FUN_06012744 +FUN_06012744: ; 0x06012744 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + ldr r0, _0601285C ; =0x0380FFF4 + ldr r0, [r0] + add r4, r0, #836 ; 0x344 + bl FUN_0600A5A4 + bl FUN_0600A4EC + mov r0, #6 + bl FUN_0600A4B8 + strh r0, [r4, #172] ; 0xac + ldrh r0, [r5, #18] + cmp r0, #4 + bne _06012788 + mov r0, #6 + mov r1, #0 + bl FUN_0600A478 +_06012788: + mov r0, #0 + ldr r1, _06012860 ; =0x04804000 + mov r2, #12 + bl FUN_0600055C + mov r0, #20 + ldr r1, _06012860 ; =0x04804000 + strh r0, [r1, #8] + mov r0, #2000 ; 0x7d0 + strh r0, [r1, #10] + add r2, r1, #12 + mov r3, #0 + ldr r1, _06012864 ; =0x00005555 + ldr r0, _06012868 ; =0x000007EC +_060127BC: + strh r1, [r2], #2 + add r3, r3, #2 + cmp r3, r0 + bcc _060127BC + mov r1, #8 + ldr r0, _06012860 ; =0x04804000 + strh r1, [r0, #12] + mov r1, #6 + ldr r0, _0601286C ; =0x04808194 + strh r1, [r0] + mov r0, #18 + strh r0, [r4, #8] + mov r1, #1 + strh r1, [r4, #24] + ldrh r0, [r5, #22] + bl FUN_0600B570 + mov r1, #32768 ; 0x8000 + ldr r0, _06012870 ; =0x04808040 + strh r1, [r0] + ldr r0, _06012874 ; =0x000005DC + bl FUN_0600A098 + mov r1, #2 + ldr r0, _06012878 ; =0x04808012 + strh r1, [r0] + mov r1, #1 + ldr r0, _0601287C ; =0x04808004 + strh r1, [r0] + ldr r0, _06012880 ; =0x048080AE + strh r1, [r0] + ldr r1, _06012860 ; =0x04804000 + ldr r0, _06012884 ; =0x00003FFF + and r0, r1, r0 + mov r0, r0, lsl #15 + mov r0, r0, lsr #16 + orr r1, r0, #32768 ; 0x8000 + ldr r0, _06012888 ; =0x048080A0 + strh r1, [r0] + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_0601285C: .word 0x0380FFF4 +_06012860: .word 0x04804000 +_06012864: .word 0x00005555 +_06012868: .word 0x000007EC +_0601286C: .word 0x04808194 +_06012870: .word 0x04808040 +_06012874: .word 0x000005DC +_06012878: .word 0x04808012 +_0601287C: .word 0x04808004 +_06012880: .word 0x048080AE +_06012884: .word 0x00003FFF +_06012888: .word 0x048080A0 + + arm_func_start FUN_0601288C +FUN_0601288C: ; 0x0601288C + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #8 + mov r5, r0 + ldr r0, _06012ADC ; =0x0380FFF4 + ldr r0, [r0] + add r4, r0, #836 ; 0x344 + mov r0, #1 + strh r0, [r1, #2] + ldrh r1, [r4, #8] + and r1, r1, #240 ; 0xf0 + cmp r1, #16 + bne _06012AD0 + ldrh r0, [r5, #16] + cmp r0, #1 + movhi r0, #5 + bhi _06012AD0 + ldrh r0, [r5, #20] + cmp r0, #10 + beq _060128E4 + cmp r0, #20 + movne r0, #5 + bne _06012AD0 +_060128E4: + ldrh r0, [r5, #18] + cmp r0, #4 + movhi r0, #5 + bhi _06012AD0 + mov r0, #0 + bl FUN_060191BC + cmp r0, #0 + movne r0, #14 + bne _06012AD0 + ldrh r0, [r5, #16] + cmp r0, #0 + beq _06012A3C + cmp r0, #1 + bne _06012ACC + ldrh r0, [r4, #8] + cmp r0, #16 + movne r0, #1 + bne _06012AD0 + mov r0, #0 + str r0, [sp] + mov r0, #101 ; 0x65 + mov r1, #1 + add r2, sp, #0 + bl FUN_060190BC + ldr r6, [sp] + mov r0, #1 + bl FUN_0600A4B8 + cmp r6, r0 + beq _0601296C + mov r0, #1 + mov r1, r6 + bl FUN_0600A478 + ldr r0, _06012AE0 ; =0x00001388 + bl FUN_0600A098 +_0601296C: + ldrh r0, [r5, #18] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _06012ACC + b _06012990 + b _06012990 + b _06012990 + b _06012A30 + b _06012A30 +_06012990: + mov r0, #17 + strh r0, [r4, #8] + ldrh r0, [r5, #22] + mov r1, #1 + bl FUN_0600B570 + mov r1, #32768 ; 0x8000 + ldr r0, _06012AE4 ; =0x04808040 + strh r1, [r0] + ldr r0, _06012AE8 ; =0x000005DC + bl FUN_0600A098 + ldrh r0, [r5, #20] + strh r0, [r4, #22] + mov r0, #2 + bl FUN_0600A4B8 + str r0, [sp] + ldrh r1, [r5, #18] + cmp r1, #1 + orrls r0, r0, #16 + strls r0, [sp] + ldrh r1, [r5, #20] + ldr r0, _06012AEC ; =0x048081A4 + strh r1, [r0] + ldrh r1, [r5, #18] + cmp r1, #1 + ldrne r0, _06012AF0 ; =0x048081A2 + strneh r1, [r0] + bne _06012A14 + ldr r0, [sp] + orr r0, r0, #32 + str r0, [sp] + mov r1, #3 + ldr r0, _06012AF0 ; =0x048081A2 + strh r1, [r0] +_06012A14: + mov r0, #2 + ldr r1, [sp] + bl FUN_0600A478 + ldr r1, _06012AF4 ; =0x00000823 + ldr r0, _06012AF8 ; =0x048081A0 + strh r1, [r0] + b _06012ACC +_06012A30: + mov r0, r5 + bl FUN_06012744 + b _06012ACC +_06012A3C: + ldrh r0, [r4, #8] + cmp r0, #17 + bne _06012A8C + bl FUN_06009FDC + mov r2, #0 + ldr r0, _06012AF8 ; =0x048081A0 + strh r2, [r0] + mov r1, #1 + ldr r0, _06012AF0 ; =0x048081A2 + strh r1, [r0] + ldr r0, _06012AE4 ; =0x04808040 + strh r2, [r0] + mov r0, #2 + bl FUN_0600A4B8 + str r0, [sp] + bic r1, r0, #48 ; 0x30 + str r1, [sp] + mov r0, #2 + bl FUN_0600A478 + b _06012AC4 +_06012A8C: + cmp r0, #18 + bne _06012ABC + mov r0, #0 + strh r0, [r4, #24] + ldr r1, _06012AFC ; =0x04808004 +_06012AA0: + ldrh r0, [r1] + cmp r0, #0 + bne _06012AA0 + mov r0, #6 + ldrh r1, [r4, #172] ; 0xac + bl FUN_0600A478 + b _06012AC4 +_06012ABC: + mov r0, #1 + b _06012AD0 +_06012AC4: + mov r0, #16 + strh r0, [r4, #8] +_06012ACC: + mov r0, #0 +_06012AD0: + add sp, sp, #8 + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06012ADC: .word 0x0380FFF4 +_06012AE0: .word 0x00001388 +_06012AE4: .word 0x04808040 +_06012AE8: .word 0x000005DC +_06012AEC: .word 0x048081A4 +_06012AF0: .word 0x048081A2 +_06012AF4: .word 0x00000823 +_06012AF8: .word 0x048081A0 +_06012AFC: .word 0x04808004 + + arm_func_start FUN_06012B00 +FUN_06012B00: ; 0x06012B00 + mov r0, #2 + strh r0, [r1, #2] + ldr r0, _06012B24 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #76] ; 0x4c + strh r0, [r1, #6] + mov r0, #0 + bx lr +_06012B24: .word 0x0380FFF4 + + arm_func_start FUN_06012B28 +FUN_06012B28: ; 0x06012B28 + stmdb sp!, {r4, lr} + mov r4, r1 + ldr r0, _06012B80 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #76] ; 0x4c + cmp r0, #0 + moveq r0, #1 + beq _06012B78 + mov r0, #92 ; 0x5c + strh r0, [r4, #2] + bl FUN_0600AC84 + ldr r0, _06012B80 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06012B84 ; =0x0000053C + add r0, r1, r0 + add r1, r4, #8 + mov r2, #180 ; 0xb4 + bl FUN_06012B88 + mov r0, #0 +_06012B78: + ldmia sp!, {r4, lr} + bx lr +_06012B80: .word 0x0380FFF4 +_06012B84: .word 0x0000053C + + arm_func_start FUN_06012B88 +FUN_06012B88: ; 0x06012B88 + ldr pc, _06012B8C ; =FUN_037FB348 +_06012B8C: .word FUN_037FB348 + + arm_func_start FUN_06012B90 +FUN_06012B90: ; 0x06012B90 + stmdb sp!, {r4, lr} + mov r4, r1 + mov r0, #9 + strh r0, [r4, #2] + ldr r0, _06012C2C ; =_06019950 + add r1, r4, #6 + mov r2, #8 + bl FUN_06000EA0 + ldr r0, _06012C30 ; =0x04808000 + ldrh r0, [r0] + strh r0, [r4, #14] + ldr r0, _06012C34 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1536 ; 0x600 + ldrh r0, [r0, #144] ; 0x90 + ands r0, r0, #32768 ; 0x8000 + moveq r0, #109 ; 0x6d + streqh r0, [r4, #16] + ldreq r0, _06012C38 ; =0x0000933D + streqh r0, [r4, #18] + beq _06012BF8 + mov r0, #0 + bl FUN_0600A4B8 + strh r0, [r4, #16] + bl FUN_0600A3E0 + strh r0, [r4, #18] +_06012BF8: + ldr r0, _06012C34 ; =0x0380FFF4 + ldr r1, [r0] + add r0, r1, #1536 ; 0x600 + ldrh r0, [r0, #144] ; 0x90 + ands r0, r0, #16384 ; 0x4000 + addne r0, r1, #1280 ; 0x500 + ldrneh r0, [r0, #248] ; 0xf8 + strneh r0, [r4, #20] + moveq r0, #2 + streqh r0, [r4, #20] + mov r0, #0 + ldmia sp!, {r4, lr} + bx lr +_06012C2C: .word _06019950 +_06012C30: .word 0x04808000 +_06012C34: .word 0x0380FFF4 +_06012C38: .word 0x0000933D + + arm_func_start FUN_06012C3C +FUN_06012C3C: ; 0x06012C3C + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _06012C7C ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #76] ; 0x4c + cmp r0, #0 + moveq r0, #1 + beq _06012C70 + mov r0, #1 + strh r0, [r1, #2] + bl FUN_0600AE88 + mov r0, #0 +_06012C70: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06012C7C: .word 0x0380FFF4 + + arm_func_start FUN_06012C80 +FUN_06012C80: ; 0x06012C80 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r0, #1 + strh r0, [r1, #2] + ldr r0, _06012CC0 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #76] ; 0x4c + cmp r0, #32 + bcc _06012CAC + bl FUN_0600A4EC +_06012CAC: + bl FUN_06008F18 + mov r0, #0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06012CC0: .word 0x0380FFF4 + + arm_func_start FUN_06012CC4 +FUN_06012CC4: ; 0x06012CC4 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r0, #1 + strh r0, [r1, #2] + ldr r0, _06012D20 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r1, [r0, #76] ; 0x4c + cmp r1, #16 + beq _06012D00 + cmp r1, #32 + bne _06012D10 + ldrh r0, [r0, #86] ; 0x56 + cmp r0, #0 + bne _06012D10 +_06012D00: + mov r0, #32 + bl FUN_0600AF68 + mov r0, #0 + b _06012D14 +_06012D10: + mov r0, #1 +_06012D14: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06012D20: .word 0x0380FFF4 + + arm_func_start FUN_06012D24 +FUN_06012D24: ; 0x06012D24 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r0, #1 + strh r0, [r1, #2] + ldr r1, _06012D84 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r2, [r1, #76] ; 0x4c + cmp r2, #32 + bhi _06012D78 + ldrh r1, [r1, #86] ; 0x56 + cmp r1, #0 + bne _06012D78 + mov r0, #0 + bl FUN_060191BC + cmp r0, #0 + movne r0, #14 + bne _06012D78 + mov r0, #16 + bl FUN_0600AF68 + mov r0, #0 +_06012D78: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06012D84: .word 0x0380FFF4 + + arm_func_start FUN_06012D88 +FUN_06012D88: ; 0x06012D88 + stmfd sp!, {lr} + sub sp, sp, #4 + mov r0, #1 + strh r0, [r1, #2] + ldr r1, _06012DD0 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #76] ; 0x4c + cmp r1, #0 + beq _06012DB8 + cmp r1, #16 + bne _06012DC4 +_06012DB8: + mov r0, #0 + bl FUN_0600AF68 + mov r0, #0 +_06012DC4: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_06012DD0: .word 0x0380FFF4 + + arm_func_start FUN_06012DD4 +FUN_06012DD4: ; 0x06012DD4 + ldrh r2, [r1, #14] + add r2, r1, r2, lsl #1 + add r3, r2, #16 + ldrh r2, [r2, #16] + strh r2, [r1, #12] + mov r2, #2 + strh r2, [r3, #2] + mov r2, #0 + strh r2, [r3, #4] + ldrh r2, [r1, #24] + strh r2, [r3, #6] + ldr ip, _06012E08 ; =FUN_0600F8DC + bx ip +_06012E08: .word FUN_0600F8DC + + arm_func_start FUN_06012E0C +FUN_06012E0C: ; 0x06012E0C + stmdb sp!, {r4, lr} + mov r4, r0 + mov r0, #1 + strh r0, [r1, #2] + ldrh r0, [r4, #16] + ands r0, r0, #1 + beq _06012E2C + bl FUN_060151F0 +_06012E2C: + ldrh r0, [r4, #16] + ands r0, r0, #2 + beq _06012E3C + bl FUN_06015190 +_06012E3C: + ldrh r0, [r4, #16] + ands r0, r0, #4 + beq _06012E4C + bl FUN_060150D8 +_06012E4C: + mov r0, #0 + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_06012E58 +FUN_06012E58: ; 0x06012E58 + stmdb sp!, {r4, lr} + mov r4, r0 + mov r0, #1 + strh r0, [r1, #2] + ldr r0, _06012EB4 ; =0x0000FFFF + strh r0, [r4, #12] + add r0, r4, #16 + mov r1, #0 + strh r1, [r0, #2] + ldrh r1, [r0, #6] + strh r1, [r0, #18] + bl FUN_0600F3CC + ldr r0, _06012EB8 ; =0x0380FFF4 + ldr r1, [r0] + add r0, r1, #512 ; 0x200 + add r1, r1, #404 ; 0x194 + mov r2, r4 + bl FUN_0600962C + mov r0, #0 + bl FUN_06015C78 + mov r0, #0 + ldmia sp!, {r4, lr} + bx lr +_06012EB4: .word 0x0000FFFF +_06012EB8: .word 0x0380FFF4 + + arm_func_start FUN_06012EBC +FUN_06012EBC: ; 0x06012EBC + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #12 + mov r5, r0 + ldr r0, _06013378 ; =0x0380FFF4 + ldr r2, [r0] + add r0, r2, #836 ; 0x344 + str r0, [sp] + add r7, r2, #796 ; 0x31c + add sl, r2, #380 ; 0x17c + ldr r0, _0601337C ; =0x0000042C + add r9, r2, r0 + add r0, r2, #1536 ; 0x600 + ldrh r8, [r0, #144] ; 0x90 + mov r0, #1 + str r0, [sp, #4] + strh r0, [r1, #2] + ldrh r0, [r7, #18] + cmp r0, #1 + movne r0, #11 + bne _0601336C + ldrh r0, [r9, #60] ; 0x3c + cmp r0, #0 + movne r0, #8 + bne _0601336C + ldr r4, [r9, #68] ; 0x44 + ldrh r1, [r5, #16] + ands r0, r1, #32768 ; 0x8000 + beq _06012F70 + ands r0, r1, #2 + ldreqh r0, [r9, #148] ; 0x94 + streqh r0, [r5, #20] + ldrh r0, [r5, #16] + ands r0, r0, #4 + ldreqh r0, [r9, #160] ; 0xa0 + streqh r0, [r5, #22] + ldrh r0, [r5, #16] + ands r0, r0, #8 + ldreqh r0, [r9, #150] ; 0x96 + streqh r0, [r5, #24] + ldrh r0, [r5, #16] + ands r0, r0, #16 + ldreqh r0, [r9, #156] ; 0x9c + streqh r0, [r5, #28] + moveq r0, #0 + streq r0, [sp, #4] +_06012F70: + ldrh r0, [r5, #28] + cmp r0, #516 ; 0x204 + movhi r0, #5 + bhi _0601336C + mov r1, #2 + mov r6, #0 + b _06012FA0 +_06012F8C: + ldrh r0, [r5, #22] + ands r0, r0, r1 + addne r6, r6, #1 + mov r0, r1, lsl #17 + mov r1, r0, lsr #16 +_06012FA0: + cmp r1, #0 + bne _06012F8C + ldrh r0, [r5, #20] + strh r0, [r9, #148] ; 0x94 + ldrh r2, [r5, #20] + ands r0, r2, #32768 ; 0x8000 + beq _06012FEC + ldr r0, _06013380 ; =0x00007FFF + and r0, r2, r0 + strh r0, [r5, #20] + ldrh r0, [r5, #20] + sub r0, r0, #208 ; 0xd0 + mov r2, r0, lsr #2 + mov r0, #234 ; 0xea + strh r0, [r4, #14] + cmp r2, #65536 ; 0x10000 + bls _06013038 + mov r0, #5 + b _0601336C +_06012FEC: + ands r0, r8, #2 + movne fp, #1 + movne r1, #2 + movne r0, #6 + moveq fp, #0 + moveq r1, fp + moveq r0, fp + add r2, r2, fp + ldr r3, _06013384 ; =0x00000206 + add r3, fp, r3 + cmp r2, r3 + movhi r0, #5 + bhi _0601336C + mov r3, r2, lsl #2 + add r3, r3, #208 ; 0xd0 + add r1, r1, r3 + strh r1, [r5, #20] + add r0, r0, #234 ; 0xea + strh r0, [r4, #14] +_06013038: + add r0, r2, #9 + bic fp, r0, #1 + mul r0, fp, r6 + str r0, [sp, #8] + add r0, sl, #12 + ldr r1, [sp, #8] + add r1, r1, #26 + bl FUN_06009724 + str r0, [r9, #144] ; 0x90 + ldr r0, [r9, #144] ; 0x90 + cmp r0, #0 + moveq r0, #8 + beq _0601336C + mov r0, #1 + strh r0, [r9, #60] ; 0x3c + ldrh r0, [r9, #62] ; 0x3e + add r0, r0, #1 + strh r0, [r9, #62] ; 0x3e + ldrh r0, [r5, #24] + strh r0, [r9, #150] ; 0x96 + ldrh r0, [r5, #22] + strh r0, [r9, #152] ; 0x98 + mov r1, #0 + strh r1, [r9, #154] ; 0x9a + ldrh r0, [r5, #28] + strh r0, [r9, #156] ; 0x9c + ldrh r0, [r5, #18] + strh r0, [r9, #158] ; 0x9e + strh r1, [r4] + ldrh r0, [r5, #22] + strh r0, [r4, #2] + strh r1, [r4, #4] + mov r0, #20 + strh r0, [r4, #8] + ldrh r0, [r5, #28] + add r0, r0, #34 ; 0x22 + strh r0, [r4, #10] + mov r0, #552 ; 0x228 + strh r0, [r4, #12] + ldrh r1, [r4, #14] + ldrh r0, [r5, #20] + add r0, r0, #10 + mla r1, r0, r6, r1 + strh r1, [r4, #14] + add r0, r4, #16 + ldr r1, _06013388 ; =_0601939C + ldr r2, [sp] + add r2, r2, #100 ; 0x64 + add r3, r7, #8 + bl FUN_0600AECC + ldrh r0, [r5, #16] + ands r0, r0, #32768 ; 0x8000 + beq _06013120 + ldrh r1, [r4, #34] ; 0x22 + ldr r0, _0601338C ; =0x0000FFFF + cmp r1, r0 + movne r7, #16384 ; 0x4000 + bne _0601312C +_06013120: + mov r7, #0 + ldr r0, _0601338C ; =0x0000FFFF + strh r0, [r4, #34] ; 0x22 +_0601312C: + ldrh r0, [r5, #20] + strh r0, [r4, #36] ; 0x24 + ldrh r0, [r5, #22] + strh r0, [r4, #38] ; 0x26 + ldrh r0, [r5, #30] + strh r0, [r4, #40] ; 0x28 + ldr r0, [sp, #4] + cmp r0, #0 + beq _06013170 + ldrh r0, [r5, #28] + cmp r0, #0 + beq _06013170 + bl FUN_0600AC84 + add r0, r4, #42 ; 0x2a + ldr r1, [r5, #32] + ldrh r2, [r5, #28] + bl FUN_06009D74 +_06013170: + ands r0, r8, #4 + beq _060131A0 + add r1, r4, #40 ; 0x28 + ldrh r0, [r5, #28] + add r0, r0, #2 + add r0, r1, r0 + add r0, r0, #3 + bic r1, r0, #3 + ldr r0, _06013390 ; =0x0000B6B8 + strh r0, [r1] + ldr r0, _06013394 ; =0x00001D46 + strh r0, [r1, #2] +_060131A0: + mov r1, #388 ; 0x184 + ldr r0, [r9, #144] ; 0x90 + strh r1, [r0, #12] + ldr r0, [sp, #8] + add r0, r0, #11 + mov r1, r0, lsr #1 + ldr r0, [r9, #144] ; 0x90 + strh r1, [r0, #14] + ldrh r1, [r5, #22] + ldr r0, [r9, #144] ; 0x90 + strh r1, [r0, #16] + ldr r0, [r9, #144] ; 0x90 + strh r6, [r0, #20] + ldr r0, [r9, #144] ; 0x90 + strh fp, [r0, #22] + mov r0, #0 + ldr r1, [r9, #144] ; 0x90 + strh r0, [r1, #24] + ldr r1, [r9, #144] ; 0x90 + add r3, r1, #26 + mov r2, #1 + mov r1, #2 + ldr r8, _0601338C ; =0x0000FFFF + b _06013228 +_06013200: + ldrh ip, [r5, #22] + ands ip, ip, r1 + strneh r8, [r3] + strneh r0, [r3, #2] + strneh r0, [r3, #6] + strneh r2, [r3, #4] + addne r3, r3, fp + mov r1, r1, lsl #17 + mov r1, r1, lsr #16 + add r2, r2, #1 +_06013228: + cmp r1, #0 + bne _06013200 + ldrh r1, [r5, #20] + ldr r0, _06013398 ; =0x048080C4 + strh r1, [r0] + ldrh r1, [r4, #14] + ldr r0, _0601339C ; =0x048080C0 + strh r1, [r0] + ldrh r0, [r5, #26] + rsb r8, r0, #65536 ; 0x10000 + ldrh r0, [r5, #24] + cmp r0, #0 + bne _060132CC + ldrh r0, [r5, #28] + add r0, r0, #34 ; 0x22 + mov r0, r0, lsl #2 + add r2, r0, #96 ; 0x60 + ldr r0, _060133A0 ; =0x04808000 + ldrh r0, [r0] + cmp r0, #5184 ; 0x1440 + addne r2, r2, #1000 ; 0x3e8 + ldrh r0, [r5, #20] + mul r1, r0, r6 + add r0, r1, #904 ; 0x388 + add r0, r2, r0 + add r0, r0, #50 ; 0x32 + mov r1, #10 + bl FUN_06003B68 + mov r5, r0 + bl FUN_060001A4 + ldr r1, _060133A4 ; =0x04808118 + strh r5, [r1] + ldr r1, _060133A8 ; =0x00003FFF + and r1, r4, r1 + mov r1, r1, lsr #1 + orr r1, r1, #32768 ; 0x8000 + orr r2, r1, r7 + ldr r1, _060133AC ; =0x04808090 + strh r2, [r1] + bl FUN_060001AC + b _06013368 +_060132CC: + bl FUN_060001A4 + mov r6, r0 + ldr r0, _060133B0 ; =0x048080F8 + ldrh r0, [r0] + add r1, r8, r0 + ldr r0, _0601338C ; =0x0000FFFF + and r0, r1, r0 + mov r1, #10 + bl FUN_06003B68 + ldrh r2, [r5, #24] + add r1, r0, #3 + cmp r1, r2 + bcs _06013338 + sub r0, r2, r0 + sub r1, r0, #1 + ldr r0, _060133A4 ; =0x04808118 + strh r1, [r0] + ldr r0, _060133A8 ; =0x00003FFF + and r0, r4, r0 + mov r0, r0, lsr #1 + orr r0, r0, #32768 ; 0x8000 + orr r1, r0, r7 + ldr r0, _060133AC ; =0x04808090 + strh r1, [r0] + mov r0, r6 + bl FUN_060001AC + b _06013368 +_06013338: + mov r0, r6 + bl FUN_060001AC + add r0, sl, #12 + ldr r1, [r9, #144] ; 0x90 + bl FUN_060096A0 + mov r0, #0 + strh r0, [r9, #60] ; 0x3c + ldrh r0, [r9, #62] ; 0x3e + sub r0, r0, #1 + strh r0, [r9, #62] ; 0x3e + mov r0, #5 + b _0601336C +_06013368: + mov r0, #0 +_0601336C: + add sp, sp, #12 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06013378: .word 0x0380FFF4 +_0601337C: .word 0x0000042C +_06013380: .word 0x00007FFF +_06013384: .word 0x00000206 +_06013388: .word _0601939C +_0601338C: .word 0x0000FFFF +_06013390: .word 0x0000B6B8 +_06013394: .word 0x00001D46 +_06013398: .word 0x048080C4 +_0601339C: .word 0x048080C0 +_060133A0: .word 0x04808000 +_060133A4: .word 0x04808118 +_060133A8: .word 0x00003FFF +_060133AC: .word 0x04808090 +_060133B0: .word 0x048080F8 + + arm_func_start FUN_060133B4 +FUN_060133B4: ; 0x060133B4 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #4 + mov sl, r0 + ldr r0, _0601353C ; =0x0380FFF4 + ldr r3, [r0] + add r2, r3, #836 ; 0x344 + add r8, r3, #796 ; 0x31c + ldr r0, _06013540 ; =0x0000042C + add r7, r3, r0 + add r0, r3, #1536 ; 0x600 + ldrh r6, [r0, #144] ; 0x90 + mov r9, #1 + strh r9, [r1, #2] + ldrh r0, [r8, #18] + cmp r0, #2 + movne r0, #11 + bne _06013530 + ldrh r0, [sl, #16] + cmp r0, #516 ; 0x204 + movhi r0, #5 + bhi _06013530 + ldrh r0, [r7, #80] ; 0x50 + cmp r0, #0 + moveq r9, #0 + mov r0, #20 + mul r4, r9, r0 + add r1, r7, #80 ; 0x50 + add fp, r1, r4 + ldrh r1, [r1, r4] + cmp r1, #0 + movne r0, #8 + bne _06013530 + ldr r1, _06013544 ; =0x04808094 + ldrh r1, [r1] + ands r1, r1, #32768 ; 0x8000 + movne r0, #8 + bne _06013530 + add r1, r7, r4 + ldr r5, [r1, #88] ; 0x58 + mov r1, #0 + strh r1, [r5] + strh r1, [r5, #4] + strh r0, [r5, #8] + ldrh r0, [sl, #16] + add r0, r0, #30 + strh r0, [r5, #10] + mov r0, #280 ; 0x118 + strh r0, [r5, #12] + add r0, r5, #16 + add r1, r2, #100 ; 0x64 + add r2, r8, #8 + ldr r3, _06013548 ; =_0601938C + bl FUN_0600AECC + ldrh r0, [sl, #18] + strh r0, [r5, #36] ; 0x24 + ldrh r0, [sl, #16] + cmp r0, #0 + beq _060134B8 + cmp r9, #0 + bne _060134A8 + bl FUN_0600AC84 +_060134A8: + add r0, r5, #38 ; 0x26 + ldr r1, [sl, #20] + ldrh r2, [sl, #16] + bl FUN_06009D74 +_060134B8: + ands r0, r6, #4 + beq _060134E8 + add r1, r5, #36 ; 0x24 + ldrh r0, [sl, #16] + add r0, r0, #2 + add r0, r1, r0 + add r0, r0, #3 + bic r1, r0, #3 + ldr r0, _0601354C ; =0x0000B6B8 + strh r0, [r1] + ldr r0, _06013550 ; =0x00001D46 + strh r0, [r1, #2] +_060134E8: + mov r0, #1 + strh r0, [fp] + add r1, r7, #82 ; 0x52 + ldrh r0, [r1, r4] + add r0, r0, #1 + strh r0, [r1, r4] + ldr r0, _06013554 ; =0x00003FFF + and r0, r5, r0 + mov r0, r0, lsr #1 + orr r1, r0, #32768 ; 0x8000 + ldr r0, _06013544 ; =0x04808094 + strh r1, [r0] + ldrh r0, [r8, #30] + mov r0, r0, lsl #24 + movs r0, r0, lsr #31 + bne _0601352C + bl FUN_0600B030 +_0601352C: + mov r0, #0 +_06013530: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_0601353C: .word 0x0380FFF4 +_06013540: .word 0x0000042C +_06013544: .word 0x04808094 +_06013548: .word _0601938C +_0601354C: .word 0x0000B6B8 +_06013550: .word 0x00001D46 +_06013554: .word 0x00003FFF + + arm_func_start FUN_06013558 +FUN_06013558: ; 0x06013558 + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #4 + mov r9, r0 + ldr r0, _06013734 ; =0x0380FFF4 + ldr r0, [r0] + add r8, r0, #836 ; 0x344 + add r7, r0, #796 ; 0x31c + add r6, r0, #380 ; 0x17c + add r5, r9, #16 + ldrh r1, [r9, #22] + ldr r0, _06013738 ; =0x000005E4 + cmp r1, r0 + movhi r0, #5 + bhi _06013728 + ldrh r0, [r7, #18] + cmp r0, #1 + bne _060135C4 + add r0, r5, #24 + bl FUN_0600F608 + mov r4, r0 + cmp r4, #255 ; 0xff + beq _060135BC + bl FUN_0600EFF0 + cmp r0, #64 ; 0x40 + beq _060135C8 +_060135BC: + mov r0, #10 + b _06013728 +_060135C4: + ldrh r4, [r8, #136] ; 0x88 +_060135C8: + strh r4, [r5, #2] + ldr r0, _06013734 ; =0x0380FFF4 + ldr r0, [r0] + ldr r0, [r0, #1004] ; 0x3ec + strh r0, [r5, #4] + ldrh r1, [r5, #14] + ands r0, r1, #255 ; 0xff + strneh r1, [r5, #16] + movne r0, #0 + strneh r0, [r5, #14] + bne _06013600 + mov r0, r4 + bl FUN_0600EF34 + strh r0, [r5, #16] +_06013600: + ldrh r0, [r5, #6] + cmp r0, #0 + bne _06013628 + ldrh r0, [r8, #138] ; 0x8a + orr r0, r0, #64 ; 0x40 + bic r0, r0, #16384 ; 0x4000 + strh r0, [r5, #20] + mov r0, #28 + strh r0, [r5, #18] + b _06013650 +_06013628: + ldrh r0, [r8, #138] ; 0x8a + strh r0, [r5, #20] + ldrh r0, [r7, #24] + cmp r0, #0 + ldreqh r0, [r5, #6] + addeq r0, r0, #28 + streqh r0, [r5, #18] + ldrneh r0, [r5, #6] + addne r0, r0, #36 ; 0x24 + strneh r0, [r5, #18] +_06013650: + ldrh r0, [r7, #18] + cmp r0, #1 + beq _06013670 + cmp r0, #2 + beq _060136EC + cmp r0, #3 + beq _060136EC + b _06013724 +_06013670: + add r0, r5, #36 ; 0x24 + add r1, r5, #30 + bl FUN_0600AF4C + add r0, r5, #30 + add r1, r8, #100 ; 0x64 + bl FUN_0600AF4C + cmp r4, #0 + bne _060136C8 + add r0, r6, #132 ; 0x84 + mov r1, r9 + bl FUN_0600F45C + ldr r0, _06013734 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1280 ; 0x500 + ldrh r1, [r0, #46] ; 0x2e + ldrh r0, [r0, #50] ; 0x32 + mvn r0, r0 + ands r0, r1, r0 + bne _06013724 + mov r0, #2 + bl FUN_06015C78 + b _06013724 +_060136C8: + mov r0, r5 + bl FUN_0600F3CC + add r0, r6, #132 ; 0x84 + add r1, r6, #24 + mov r2, r9 + bl FUN_0600962C + mov r0, #0 + bl FUN_06015C78 + b _06013724 +_060136EC: + add r0, r5, #36 ; 0x24 + add r1, r5, #24 + bl FUN_0600AF4C + add r0, r5, #24 + add r1, r8, #100 ; 0x64 + bl FUN_0600AF4C + mov r0, r5 + bl FUN_0600F3CC + add r0, r6, #132 ; 0x84 + add r1, r6, #24 + mov r2, r9 + bl FUN_0600962C + mov r0, #0 + bl FUN_06015C78 +_06013724: + mov r0, #129 ; 0x81 +_06013728: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} + bx lr +_06013734: .word 0x0380FFF4 +_06013738: .word 0x000005E4 + + arm_func_start FUN_0601373C +FUN_0601373C: ; 0x0601373C + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + ldr r0, _06013A30 ; =0x0380FFF4 + ldr r7, [r0] + ldr r0, _06013A34 ; =0x0000042C + add r6, r7, r0 + add r5, r7, #836 ; 0x344 + add r4, r7, #796 ; 0x31c + mov r0, #0 + mov r1, r6 + mov r2, #176 ; 0xb0 + bl FUN_0600AEC4 + mov r1, #0 + add r0, r7, #1024 ; 0x400 + strh r1, [r0, #44] ; 0x2c + str r1, [r6, #12] + strh r1, [r6, #20] + str r1, [r6, #32] + strh r1, [r6, #40] ; 0x28 + str r1, [r6, #52] ; 0x34 + ldr r0, _06013A38 ; =0x0000FFFF + strh r0, [r6, #162] ; 0xa2 + strh r0, [r6, #164] ; 0xa4 + ldrh r0, [r5, #12] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _06013A10 + b _060137B8 + b _06013838 + b _060138E4 + b _06013994 +_060137B8: + ldr r0, _06013A3C ; =0x04804170 + str r0, [r6, #8] + ldr r0, _06013A40 ; =0x04804028 + str r0, [r6, #28] + ldr r0, _06013A44 ; =0x04804000 + str r0, [r6, #48] ; 0x30 + ldr r0, _06013A48 ; =FUN_06015974 + str r0, [r6, #16] + ldr r0, _06013A4C ; =FUN_06015458 + str r0, [r6, #36] ; 0x24 + ldr r0, _06013A50 ; =_060153E4 + str r0, [r6, #56] ; 0x38 + ldr r2, _06013A54 ; =0x0000B6B8 + ldr r0, _06013A58 ; =0x04804024 + strh r2, [r0] + ldr r1, _06013A5C ; =0x00001D46 + ldr r0, _06013A60 ; =0x04804026 + strh r1, [r0] + ldr r0, _06013A64 ; =0x0480416C + strh r2, [r0] + ldr r0, _06013A68 ; =0x0480416E + strh r1, [r0] + ldr r0, _06013A6C ; =0x04804790 + strh r2, [r0] + ldr r0, _06013A70 ; =0x04804792 + strh r1, [r0] + mov r0, #8 + strh r0, [r5, #138] ; 0x8a + mov r1, #1 + ldr r0, _06013A74 ; =0x048080AE + strh r1, [r0] + b _06013A10 +_06013838: + ldr r0, _06013A78 ; =0x04804AA0 + str r0, [r6, #8] + ldr r0, _06013A7C ; =0x04804958 + str r0, [r6, #28] + ldr r0, _06013A80 ; =0x04804334 + str r0, [r6, #48] ; 0x30 + ldr r0, _06013A48 ; =FUN_06015974 + str r0, [r6, #16] + ldr r0, _06013A4C ; =FUN_06015458 + str r0, [r6, #36] ; 0x24 + ldr r0, _06013A84 ; =FUN_060152C4 + str r0, [r6, #56] ; 0x38 + ldr r2, _06013A88 ; =0x04804238 + str r2, [r6, #128] ; 0x80 + ldr r0, _06013A44 ; =0x04804000 + str r0, [r6, #68] ; 0x44 + ldr r1, _06013A54 ; =0x0000B6B8 + ldr r0, _06013A8C ; =0x04804234 + strh r1, [r0] + ldr r0, _06013A5C ; =0x00001D46 + ldr r3, _06013A90 ; =0x04804236 + strh r0, [r3] + ldr r3, _06013A94 ; =0x04804330 + strh r1, [r3] + ldr r3, _06013A98 ; =0x04804332 + strh r0, [r3] + ldr r3, _06013A9C ; =0x04804954 + strh r1, [r3] + ldr r3, _06013AA0 ; =0x04804956 + strh r0, [r3] + ldr r3, _06013AA4 ; =0x04804A9C + strh r1, [r3] + ldr r3, _06013AA8 ; =0x04804A9E + strh r0, [r3] + ldr r3, _06013AAC ; =0x048050C0 + strh r1, [r3] + ldr r1, _06013AB0 ; =0x048050C2 + strh r0, [r1] + mov r0, #520 ; 0x208 + strh r0, [r5, #138] ; 0x8a + str r2, [r6, #128] ; 0x80 + bl FUN_0601477C + b _06013A10 +_060138E4: + ldr r0, _06013AB4 ; =0x048045D8 + str r0, [r6, #8] + ldr r0, _06013AB8 ; =0x04804490 + str r0, [r6, #28] + ldr r0, _06013ABC ; =0x04804468 + str r0, [r6, #48] ; 0x30 + ldr r0, _06013A48 ; =FUN_06015974 + str r0, [r6, #16] + ldr r0, _06013A4C ; =FUN_06015458 + str r0, [r6, #36] ; 0x24 + ldr r0, _06013A50 ; =_060153E4 + str r0, [r6, #56] ; 0x38 + ldr r0, _06013A44 ; =0x04804000 + str r0, [r6, #88] ; 0x58 + ldr r0, _06013A8C ; =0x04804234 + str r0, [r6, #108] ; 0x6c + ldr r2, _06013A54 ; =0x0000B6B8 + ldr r0, _06013AC0 ; =0x04804230 + strh r2, [r0] + ldr r1, _06013A5C ; =0x00001D46 + ldr r0, _06013AC4 ; =0x04804232 + strh r1, [r0] + ldr r0, _06013AC8 ; =0x04804464 + strh r2, [r0] + ldr r0, _06013ACC ; =0x04804466 + strh r1, [r0] + ldr r0, _06013AD0 ; =0x0480448C + strh r2, [r0] + ldr r0, _06013AD4 ; =0x0480448E + strh r1, [r0] + ldr r0, _06013AD8 ; =0x048045D4 + strh r2, [r0] + ldr r0, _06013ADC ; =0x048045D6 + strh r1, [r0] + ldr r0, _06013AE0 ; =0x04804BF8 + strh r2, [r0] + ldr r0, _06013AE4 ; =0x04804BFA + strh r1, [r0] + mov r0, #264 ; 0x108 + strh r0, [r5, #138] ; 0x8a + mov r1, #13 + ldr r0, _06013A74 ; =0x048080AE + strh r1, [r0] + b _06013A10 +_06013994: + ldr r0, _06013A3C ; =0x04804170 + str r0, [r6, #8] + ldr r0, _06013A40 ; =0x04804028 + str r0, [r6, #28] + ldr r0, _06013A44 ; =0x04804000 + str r0, [r6, #48] ; 0x30 + ldr r0, _06013A48 ; =FUN_06015974 + str r0, [r6, #16] + ldr r0, _06013A4C ; =FUN_06015458 + str r0, [r6, #36] ; 0x24 + ldr r0, _06013A50 ; =_060153E4 + str r0, [r6, #56] ; 0x38 + ldr r2, _06013A54 ; =0x0000B6B8 + ldr r0, _06013A58 ; =0x04804024 + strh r2, [r0] + ldr r1, _06013A5C ; =0x00001D46 + ldr r0, _06013A60 ; =0x04804026 + strh r1, [r0] + ldr r0, _06013A64 ; =0x0480416C + strh r2, [r0] + ldr r0, _06013A68 ; =0x0480416E + strh r1, [r0] + ldr r0, _06013A6C ; =0x04804790 + strh r2, [r0] + ldr r0, _06013A70 ; =0x04804792 + strh r1, [r0] + mov r0, #264 ; 0x108 + strh r0, [r5, #138] ; 0x8a + mov r1, #13 + ldr r0, _06013A74 ; =0x048080AE + strh r1, [r0] +_06013A10: + ldrh r0, [r4, #24] + cmp r0, #0 + ldrneh r0, [r5, #138] ; 0x8a + orrne r0, r0, #16384 ; 0x4000 + strneh r0, [r5, #138] ; 0x8a + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06013A30: .word 0x0380FFF4 +_06013A34: .word 0x0000042C +_06013A38: .word 0x0000FFFF +_06013A3C: .word 0x04804170 +_06013A40: .word 0x04804028 +_06013A44: .word 0x04804000 +_06013A48: .word FUN_06015974 +_06013A4C: .word FUN_06015458 +_06013A50: .word _060153E4 +_06013A54: .word 0x0000B6B8 +_06013A58: .word 0x04804024 +_06013A5C: .word 0x00001D46 +_06013A60: .word 0x04804026 +_06013A64: .word 0x0480416C +_06013A68: .word 0x0480416E +_06013A6C: .word 0x04804790 +_06013A70: .word 0x04804792 +_06013A74: .word 0x048080AE +_06013A78: .word 0x04804AA0 +_06013A7C: .word 0x04804958 +_06013A80: .word 0x04804334 +_06013A84: .word FUN_060152C4 +_06013A88: .word 0x04804238 +_06013A8C: .word 0x04804234 +_06013A90: .word 0x04804236 +_06013A94: .word 0x04804330 +_06013A98: .word 0x04804332 +_06013A9C: .word 0x04804954 +_06013AA0: .word 0x04804956 +_06013AA4: .word 0x04804A9C +_06013AA8: .word 0x04804A9E +_06013AAC: .word 0x048050C0 +_06013AB0: .word 0x048050C2 +_06013AB4: .word 0x048045D8 +_06013AB8: .word 0x04804490 +_06013ABC: .word 0x04804468 +_06013AC0: .word 0x04804230 +_06013AC4: .word 0x04804232 +_06013AC8: .word 0x04804464 +_06013ACC: .word 0x04804466 +_06013AD0: .word 0x0480448C +_06013AD4: .word 0x0480448E +_06013AD8: .word 0x048045D4 +_06013ADC: .word 0x048045D6 +_06013AE0: .word 0x04804BF8 +_06013AE4: .word 0x04804BFA + + arm_func_start FUN_06013AE8 +FUN_06013AE8: ; 0x06013AE8 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + mov r7, r0 + ldr r1, _06013C04 ; =0x0380FFF4 + ldr r1, [r1] + add r6, r1, #836 ; 0x344 + add r5, r1, #796 ; 0x31c + mov r4, #0 + mov r1, #221 ; 0xdd + bl FUN_06009CD0 + add r0, r7, #1 + ldr r1, _06013C04 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #228] ; 0xe4 + add r1, r1, #8 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + add r0, r7, #2 + mov r1, r4 + bl FUN_06009CD0 + add r0, r7, #3 + mov r1, #9 + bl FUN_06009CD0 + add r0, r7, #4 + mov r1, #191 ; 0xbf + bl FUN_06009CD0 + add r0, r7, #5 + mov r1, r4 + bl FUN_06009CD0 + add r0, r7, #6 + ldrh r1, [r5, #32] + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + add r0, r7, #7 + ldrh r1, [r5, #32] + mov r1, r1, asr #8 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + ldr r0, _06013C08 ; =0x0380FFF0 + ldrh r5, [r0] + add r0, r7, #8 + and r1, r5, #255 ; 0xff + bl FUN_06009CD0 + add r0, r7, #9 + mov r1, r5, lsr #8 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + add r4, r4, #10 + ldrh r0, [r6, #160] ; 0xa0 + cmp r0, #0 + beq _06013BF8 + ldr r5, [r6, #156] ; 0x9c + ldrh r0, [r6, #162] ; 0xa2 + ands r0, r0, #1 + addne r5, r5, #1 + mov r8, #0 + b _06013BEC +_06013BCC: + mov r0, r5 + bl FUN_06009CB0 + mov r1, r0 + add r0, r7, r4 + bl FUN_06009CD0 + add r4, r4, #1 + add r5, r5, #1 + add r8, r8, #1 +_06013BEC: + ldrh r0, [r6, #160] ; 0xa0 + cmp r8, r0 + bcc _06013BCC +_06013BF8: + mov r0, r4 + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_06013C04: .word 0x0380FFF4 +_06013C08: .word 0x0380FFF0 + + arm_func_start FUN_06013C0C +FUN_06013C0C: ; 0x06013C0C + stmdb sp!, {r4, lr} + mov r4, r0 + mov r1, #3 + bl FUN_06009CD0 + add r0, r4, #1 + mov r1, #1 + bl FUN_06009CD0 + add r0, r4, #2 + ldr r1, _06013C50 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #768 ; 0x300 + ldrh r1, [r1, #190] ; 0xbe + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + mov r0, #3 + ldmia sp!, {r4, lr} + bx lr +_06013C50: .word 0x0380FFF4 + + arm_func_start FUN_06013C54 +FUN_06013C54: ; 0x06013C54 + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #4 + mov r9, r0 + ldr r1, _06013D04 ; =0x0380FFF4 + ldr r1, [r1] + add r8, r1, #836 ; 0x344 + mov r7, #0 + mov r1, #1 + bl FUN_06009CD0 + add r7, r7, #2 + mov r6, #0 + ldr r4, _06013D08 ; =_060193A4 + mov r5, #1 +_06013C88: + mov r1, r5, lsl r6 + ldrh r0, [r8, #98] ; 0x62 + ands r0, r0, r1 + beq _06013CD8 + ldrh r0, [r8, #96] ; 0x60 + ands r0, r0, r1 + beq _06013CC0 + add r0, r9, r7 + mov r1, r6, lsl #1 + ldrh r1, [r4, r1] + orr r1, r1, #128 ; 0x80 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + b _06013CD4 +_06013CC0: + add r0, r9, r7 + mov r1, r6, lsl #1 + ldrh r1, [r4, r1] + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 +_06013CD4: + add r7, r7, #1 +_06013CD8: + add r6, r6, #1 + cmp r6, #16 + bcc _06013C88 + add r0, r9, #1 + sub r1, r7, #2 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + mov r0, r7 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} + bx lr +_06013D04: .word 0x0380FFF4 +_06013D08: .word _060193A4 + + arm_func_start FUN_06013D0C +FUN_06013D0C: ; 0x06013D0C + stmdb sp!, {r4, r5, r6, r7, r8, lr} + mov r4, r0 + ldr r1, _06013D7C ; =0x0380FFF4 + ldr r1, [r1] + add r5, r1, #836 ; 0x344 + mov r8, #0 + ldrh r7, [r5, #30] + mov r1, r8 + bl FUN_06009CD0 + add r0, r4, #1 + and r1, r7, #255 ; 0xff + bl FUN_06009CD0 + add r8, r8, #2 + mov r6, #0 + add r5, r5, #32 + b _06013D68 +_06013D4C: + add r0, r5, r6 + bl FUN_06009CB0 + mov r1, r0 + add r0, r4, r8 + bl FUN_06009CD0 + add r8, r8, #1 + add r6, r6, #1 +_06013D68: + cmp r6, r7 + bcc _06013D4C + mov r0, r8 + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_06013D7C: .word 0x0380FFF4 + + arm_func_start FUN_06013D80 +FUN_06013D80: ; 0x06013D80 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + ldr r0, _06013DF0 ; =0x0380FFF4 + ldr r0, [r0] + ldr r7, [r0, #416] ; 0x1a0 + mvn r6, #0 + b _06013DD8 +_06013DA4: + add r1, r7, #16 + ldrh r0, [r1, #20] + cmp r0, r4 + bne _06013DCC + add r0, r1, #24 + mov r1, r5 + bl FUN_0600AB78 + cmp r0, #0 + movne r0, #1 + bne _06013DE4 +_06013DCC: + mov r0, r7 + bl FUN_06009434 + mov r7, r0 +_06013DD8: + cmp r7, r6 + bne _06013DA4 + mov r0, #0 +_06013DE4: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06013DF0: .word 0x0380FFF4 + + arm_func_start FUN_06013DF4 +FUN_06013DF4: ; 0x06013DF4 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + mov r4, r1 + mov r0, #0 + mov r1, r5 + mov r2, #44 ; 0x2c + bl FUN_0600055C + bl FUN_0600AA50 + strh r0, [r5, #16] + ldr r0, _06013E44 ; =0x0380FFF4 + ldr r3, [r0] + add r0, r5, #24 + mov r1, r4 + add r2, r3, #804 ; 0x324 + add r3, r3, #936 ; 0x3a8 + bl FUN_0600AECC + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06013E44: .word 0x0380FFF4 + + arm_func_start FUN_06013E48 +FUN_06013E48: ; 0x06013E48 + ldr r2, _06013E94 ; =0x0380FFF4 + ldr r1, [r2] + ldr r3, [r1, #1116] ; 0x45c + mov r1, #0 + strh r1, [r3] + strh r1, [r3, #2] + strh r1, [r3, #4] + mov r1, #20 + strh r1, [r3, #10] + mov r1, #164 ; 0xa4 + strh r1, [r3, #12] + orr r0, r0, #49152 ; 0xc000 + strh r0, [r3, #14] + ldr r2, [r2] + add r0, r3, #16 + add r1, r2, #936 ; 0x3a8 + add r2, r2, #804 ; 0x324 + ldr ip, _06013E98 ; =_0600AF18 + bx ip +_06013E94: .word 0x0380FFF4 +_06013E98: .word _0600AF18 + + arm_func_start FUN_06013E9C +FUN_06013E9C: ; 0x06013E9C + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + cmp r2, #0 + bne _06013EC0 + bl FUN_06014640 + cmp r0, #0 + moveq r0, #0 + beq _06013F28 +_06013EC0: + ldr r0, _06013F30 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, #54 ; 0x36 + bl FUN_06009724 + movs r4, r0 + bne _06013EEC + mov r0, #2 + bl FUN_0600994C + mov r0, r4 + b _06013F28 +_06013EEC: + ldr r0, _06013F34 ; =0x0000FFFF + strh r0, [r4, #12] + add r4, r4, #16 + mov r0, r4 + mov r1, r6 + bl FUN_06013DF4 + strh r5, [r4, #44] ; 0x2c + mov r0, #2 + strh r0, [r4, #6] + ldrh r0, [r4, #6] + add r0, r0, #28 + strh r0, [r4, #18] + mov r0, #192 ; 0xc0 + strh r0, [r4, #20] + mov r0, r4 +_06013F28: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06013F30: .word 0x0380FFF4 +_06013F34: .word 0x0000FFFF + + arm_func_start FUN_06013F38 +FUN_06013F38: ; 0x06013F38 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + cmp r2, #0 + beq _06013F5C + bl FUN_06014640 + cmp r0, #0 + moveq r0, #0 + beq _06013FEC +_06013F5C: + ldr r0, _06013FF4 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + add r1, r5, #61 ; 0x3d + bl FUN_06009724 + movs r4, r0 + bne _06013F88 + mov r0, #2 + bl FUN_0600994C + mov r0, r4 + b _06013FEC +_06013F88: + ldr r0, _06013FF8 ; =0x0000FFFF + strh r0, [r4, #12] + add r4, r4, #16 + mov r0, r4 + mov r1, r6 + bl FUN_06013DF4 + cmp r5, #0 + beq _06013FCC + add r0, r4, #50 ; 0x32 + mov r1, #16 + bl FUN_06009CD0 + add r0, r4, #51 ; 0x33 + and r1, r5, #255 ; 0xff + bl FUN_06009CD0 + add r0, r5, #2 + mov r0, r0, lsl #16 + mov r5, r0, lsr #16 +_06013FCC: + add r0, r5, #6 + strh r0, [r4, #6] + ldrh r0, [r4, #6] + add r0, r0, #28 + strh r0, [r4, #18] + mov r0, #176 ; 0xb0 + strh r0, [r4, #20] + mov r0, r4 +_06013FEC: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06013FF4: .word 0x0380FFF4 +_06013FF8: .word 0x0000FFFF + + arm_func_start FUN_06013FFC +FUN_06013FFC: ; 0x06013FFC + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r0, _060140DC ; =0x0380FFF4 + ldr r0, [r0] + add r5, r0, #836 ; 0x344 + bl FUN_06014640 + cmp r0, #0 + moveq r0, #0 + beq _060140D4 + ldr r0, _060140DC ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + ldrh r1, [r5, #160] ; 0xa0 + add r1, r1, #120 ; 0x78 + bl FUN_06009724 + movs r4, r0 + bne _06014050 + mov r0, #2 + bl FUN_0600994C + mov r0, r4 + b _060140D4 +_06014050: + ldr r0, _060140E0 ; =0x0000FFFF + strh r0, [r4, #12] + add r4, r4, #16 + mov r0, r4 + mov r1, r6 + bl FUN_06013DF4 + ldrh r0, [r5, #110] ; 0x6e + strh r0, [r4, #52] ; 0x34 + ldrh r0, [r5, #124] ; 0x7c + strh r0, [r4, #54] ; 0x36 + add r0, r4, #56 ; 0x38 + bl FUN_06013D0C + mov r5, r0 + add r0, r4, #56 ; 0x38 + add r0, r0, r5 + bl FUN_06013C54 + add r5, r5, r0 + add r0, r4, #56 ; 0x38 + add r0, r0, r5 + bl FUN_06013C0C + add r5, r5, r0 + add r0, r4, #56 ; 0x38 + add r0, r0, r5 + bl FUN_06013AE8 + add r0, r5, r0 + add r0, r0, #12 + strh r0, [r4, #6] + ldrh r0, [r4, #6] + add r0, r0, #28 + strh r0, [r4, #18] + mov r0, #80 ; 0x50 + strh r0, [r4, #20] + mov r0, r4 +_060140D4: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_060140DC: .word 0x0380FFF4 +_060140E0: .word 0x0000FFFF + + arm_func_start FUN_060140E4 +FUN_060140E4: ; 0x060140E4 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r0, _0601416C ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, #90 ; 0x5a + bl FUN_06009724 + movs r4, r0 + bne _06014118 + mov r0, #2 + bl FUN_0600994C + mov r0, r4 + b _06014164 +_06014118: + ldr r0, _06014170 ; =0x0000FFFF + strh r0, [r4, #12] + add r5, r4, #16 + mov r0, r5 + mov r1, r6 + bl FUN_06013DF4 + add r0, r5, #44 ; 0x2c + bl FUN_06013D0C + mov r4, r0 + add r0, r5, #44 ; 0x2c + add r0, r0, r4 + bl FUN_06013C54 + add r0, r4, r0 + strh r0, [r5, #6] + add r0, r0, #28 + strh r0, [r5, #18] + mov r0, #64 ; 0x40 + strh r0, [r5, #20] + mov r0, r5 +_06014164: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_0601416C: .word 0x0380FFF4 +_06014170: .word 0x0000FFFF + + arm_func_start FUN_06014174 +FUN_06014174: ; 0x06014174 + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #4 + mov r8, r0 + mov r7, r1 + mov r6, r2 + ldr r0, _060142D8 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, #96 ; 0x60 + bl FUN_06009724 + movs r4, r0 + bne _060141B4 + mov r0, #2 + bl FUN_0600994C + mov r0, r4 + b _060142CC +_060141B4: + ldr r0, _060142DC ; =0x0000FFFF + strh r0, [r4, #12] + add r5, r4, #16 + cmp r7, #0 + bne _060141DC + mov r0, r8 + bl FUN_0600F080 + movs r4, r0 + moveq r7, #19 + b _060141E0 +_060141DC: + mov r4, #0 +_060141E0: + mov r0, r8 + bl FUN_0600EF94 + mov r1, r0 + mov r0, r5 + bl FUN_06013DF4 + ldr r0, _060142D8 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #192] ; 0xc0 + strh r0, [r5, #44] ; 0x2c + strh r7, [r5, #46] ; 0x2e + orr r0, r4, #49152 ; 0xc000 + strh r0, [r5, #48] ; 0x30 + add r0, r5, #50 ; 0x32 + bl FUN_06013C54 + add r0, r0, #6 + strh r0, [r5, #6] + ldrh r0, [r5, #6] + add r0, r0, #28 + strh r0, [r5, #18] + mov r0, #48 ; 0x30 + strh r0, [r5, #20] + add r1, r5, #20 + ldrh r0, [r5, #18] + add r8, r1, r0 + cmp r6, #0 + beq _060142B0 + add r0, r6, #1 + bl FUN_06009CB0 + mov r7, r0 + mov r0, r6 + bl FUN_06009CB0 + mov r1, r0 + mov r0, r8 + bl FUN_06009CD0 + add r0, r8, #1 + and r1, r7, #255 ; 0xff + bl FUN_06009CD0 + add r8, r8, #2 + mov r9, #0 + add r4, r6, #2 + b _060142A4 +_06014288: + add r0, r4, r9 + bl FUN_06009CB0 + mov r1, r0 + mov r0, r8 + bl FUN_06009CD0 + add r8, r8, #1 + add r9, r9, #1 +_060142A4: + cmp r9, r7 + bcc _06014288 + b _060142C8 +_060142B0: + mov r0, r8 + mov r1, #0 + bl FUN_06009CD0 + add r0, r8, #1 + mov r1, #0 + bl FUN_06009CD0 +_060142C8: + mov r0, r5 +_060142CC: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} + bx lr +_060142D8: .word 0x0380FFF4 +_060142DC: .word 0x0000FFFF + + arm_func_start FUN_060142E0 +FUN_060142E0: ; 0x060142E0 + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #4 + mov r8, r0 + mov r7, r1 + mov r6, r2 + ldr r0, _06014450 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, #96 ; 0x60 + bl FUN_06009724 + movs r4, r0 + bne _06014320 + mov r0, #2 + bl FUN_0600994C + mov r0, r4 + b _06014444 +_06014320: + ldr r0, _06014454 ; =0x0000FFFF + strh r0, [r4, #12] + add r5, r4, #16 + cmp r7, #0 + bne _06014348 + mov r0, r8 + bl FUN_0600F080 + movs r4, r0 + moveq r7, #19 + b _0601434C +_06014348: + mov r4, #0 +_0601434C: + mov r0, r8 + bl FUN_0600EF94 + mov r1, r0 + mov r0, r5 + bl FUN_06013DF4 + ldr r0, _06014450 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #192] ; 0xc0 + strh r0, [r5, #44] ; 0x2c + strh r7, [r5, #46] ; 0x2e + strh r4, [r5, #48] ; 0x30 + cmp r4, #0 + ldrneh r0, [r5, #48] ; 0x30 + orrne r0, r0, #49152 ; 0xc000 + strneh r0, [r5, #48] ; 0x30 + add r0, r5, #50 ; 0x32 + bl FUN_06013C54 + add r0, r0, #6 + strh r0, [r5, #6] + ldrh r0, [r5, #6] + add r0, r0, #28 + strh r0, [r5, #18] + mov r0, #16 + strh r0, [r5, #20] + add r1, r5, #20 + ldrh r0, [r5, #18] + add r8, r1, r0 + cmp r6, #0 + beq _06014428 + add r0, r6, #1 + bl FUN_06009CB0 + mov r7, r0 + mov r0, r6 + bl FUN_06009CB0 + mov r1, r0 + mov r0, r8 + bl FUN_06009CD0 + add r0, r8, #1 + add r8, r8, #2 + and r1, r7, #255 ; 0xff + bl FUN_06009CD0 + mov r9, #0 + add r4, r6, #2 + b _0601441C +_06014400: + add r0, r4, r9 + bl FUN_06009CB0 + mov r1, r0 + mov r0, r8 + bl FUN_06009CD0 + add r9, r9, #1 + add r8, r8, #1 +_0601441C: + cmp r9, r7 + bcc _06014400 + b _06014440 +_06014428: + mov r0, r8 + mov r1, #0 + bl FUN_06009CD0 + add r0, r8, #1 + mov r1, #0 + bl FUN_06009CD0 +_06014440: + mov r0, r5 +_06014444: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} + bx lr +_06014450: .word 0x0380FFF4 +_06014454: .word 0x0000FFFF + + arm_func_start FUN_06014458 +FUN_06014458: ; 0x06014458 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r0, _06014508 ; =0x0380FFF4 + ldr r0, [r0] + add r5, r0, #836 ; 0x344 + add r0, r0, #392 ; 0x188 + mov r1, #100 ; 0x64 + bl FUN_06009724 + movs r4, r0 + bne _06014490 + mov r0, #2 + bl FUN_0600994C + mov r0, r4 + b _06014500 +_06014490: + ldr r0, _0601450C ; =0x0000FFFF + strh r0, [r4, #12] + add r4, r4, #16 + mov r0, r4 + mov r1, r6 + bl FUN_06013DF4 + ldrh r0, [r5, #124] ; 0x7c + strh r0, [r4, #44] ; 0x2c + ldrh r0, [r5, #112] ; 0x70 + strh r0, [r4, #46] ; 0x2e + add r0, r4, #48 ; 0x30 + add r1, r5, #130 ; 0x82 + bl FUN_0600AF4C + add r0, r4, #54 ; 0x36 + bl FUN_06013D0C + mov r5, r0 + add r0, r4, #54 ; 0x36 + add r0, r0, r5 + bl FUN_06013C54 + add r0, r5, r0 + add r0, r0, #10 + strh r0, [r4, #6] + ldrh r0, [r4, #6] + add r0, r0, #28 + strh r0, [r4, #18] + mov r0, #32 + strh r0, [r4, #20] + mov r0, r4 +_06014500: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06014508: .word 0x0380FFF4 +_0601450C: .word 0x0000FFFF + + arm_func_start FUN_06014510 +FUN_06014510: ; 0x06014510 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r0, _060145B4 ; =0x0380FFF4 + ldr r0, [r0] + add r5, r0, #836 ; 0x344 + add r0, r0, #392 ; 0x188 + mov r1, #94 ; 0x5e + bl FUN_06009724 + movs r4, r0 + bne _06014548 + mov r0, #2 + bl FUN_0600994C + mov r0, r4 + b _060145AC +_06014548: + ldr r0, _060145B8 ; =0x0000FFFF + strh r0, [r4, #12] + add r4, r4, #16 + mov r0, r4 + mov r1, r6 + bl FUN_06013DF4 + ldrh r0, [r5, #124] ; 0x7c + strh r0, [r4, #44] ; 0x2c + ldrh r0, [r5, #112] ; 0x70 + strh r0, [r4, #46] ; 0x2e + add r0, r4, #48 ; 0x30 + bl FUN_06013D0C + mov r5, r0 + add r0, r4, #48 ; 0x30 + add r0, r0, r5 + bl FUN_06013C54 + add r0, r5, r0 + add r0, r0, #4 + strh r0, [r4, #6] + ldrh r0, [r4, #6] + add r0, r0, #28 + strh r0, [r4, #18] + mov r0, #0 + strh r0, [r4, #20] + mov r0, r4 +_060145AC: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_060145B4: .word 0x0380FFF4 +_060145B8: .word 0x0000FFFF + + arm_func_start FUN_060145BC +FUN_060145BC: ; 0x060145BC + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + ldr r0, _06014638 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + mov r1, #54 ; 0x36 + bl FUN_06009724 + movs r4, r0 + bne _060145F4 + mov r0, #2 + bl FUN_0600994C + mov r0, r4 + b _06014630 +_060145F4: + ldr r0, _0601463C ; =0x0000FFFF + strh r0, [r4, #12] + add r4, r4, #16 + mov r0, r4 + mov r1, r6 + bl FUN_06013DF4 + strh r5, [r4, #44] ; 0x2c + mov r0, #2 + strh r0, [r4, #6] + ldrh r0, [r4, #6] + add r0, r0, #28 + strh r0, [r4, #18] + mov r0, #160 ; 0xa0 + strh r0, [r4, #20] + mov r0, r4 +_06014630: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06014638: .word 0x0380FFF4 +_0601463C: .word 0x0000FFFF + + arm_func_start FUN_06014640 +FUN_06014640: ; 0x06014640 + ldr r0, _0601466C ; =0x0380FFF4 + ldr r2, [r0] + add r0, r2, #256 ; 0x100 + ldrh r1, [r0, #168] ; 0xa8 + add r0, r2, #1280 ; 0x500 + ldrh r0, [r0, #56] ; 0x38 + rsb r0, r0, #24 + cmp r1, r0 + movlt r0, #1 + movge r0, #0 + bx lr +_0601466C: .word 0x0380FFF4 + + arm_func_start FUN_06014670 +FUN_06014670: ; 0x06014670 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r0, _0601476C ; =0x0380FFF4 + ldr r0, [r0] + add r5, r0, #836 ; 0x344 + ldr r0, [r0, #1196] ; 0x4ac + add r1, r0, #36 ; 0x24 + ldrh r0, [r5, #150] ; 0x96 + add r4, r1, r0 + ldrh r2, [r5, #160] ; 0xa0 + cmp r2, #0 + beq _060146EC + ldrh r0, [r5, #162] ; 0xa2 + ands r0, r0, #1 + beq _060146DC + add r0, r4, #10 + sub r0, r0, #1 + ldr r1, [r5, #156] ; 0x9c + add r2, r2, #2 + bl FUN_06009D74 + add r0, r4, #9 + ldr r1, _06014770 ; =0x0380FFF0 + ldrh r1, [r1] + mov r1, r1, asr #8 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + b _060146EC +_060146DC: + add r0, r4, #10 + ldr r1, [r5, #156] ; 0x9c + add r2, r2, #1 + bl FUN_06009D74 +_060146EC: + ldrh r0, [r5, #150] ; 0x96 + add r1, r0, #38 ; 0x26 + ldrh r0, [r5, #160] ; 0xa0 + add r1, r1, r0 + ldr r0, _0601476C ; =0x0380FFF4 + ldr r0, [r0] + ldr r0, [r0, #1196] ; 0x4ac + strh r1, [r0, #10] + add r0, r4, #1 + ldrh r1, [r5, #160] ; 0xa0 + add r1, r1, #8 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + ldr r0, _0601476C ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1536 ; 0x600 + ldrh r0, [r0, #144] ; 0x90 + ands r0, r0, #4 + beq _06014758 + add r1, r4, #13 + ldrh r0, [r5, #160] ; 0xa0 + add r0, r1, r0 + bic r1, r0, #3 + ldr r0, _06014774 ; =0x0000B6B8 + strh r0, [r1] + ldr r0, _06014778 ; =0x00001D46 + strh r0, [r1, #2] +_06014758: + mov r0, #0 + strh r0, [r5, #164] ; 0xa4 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_0601476C: .word 0x0380FFF4 +_06014770: .word 0x0380FFF0 +_06014774: .word 0x0000B6B8 +_06014778: .word 0x00001D46 + + arm_func_start FUN_0601477C +FUN_0601477C: ; 0x0601477C + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + ldr r0, _06014AD0 ; =0x0380FFF4 + ldr r0, [r0] + ldr sl, [r0, #1196] ; 0x4ac + add r9, r0, #796 ; 0x31c + add r8, r0, #836 ; 0x344 + mov r0, #0 + strh r0, [sl] + strh r0, [sl, #2] + strh r0, [sl, #4] + strh r0, [sl, #6] + bl FUN_0600AA50 + strh r0, [sl, #8] + mov r0, #128 ; 0x80 + strh r0, [sl, #12] + mov r0, #0 + strh r0, [sl, #14] + add r0, sl, #16 + ldr r1, _06014AD4 ; =_06019384 + add r2, r9, #8 + mov r3, r2 + bl FUN_0600AECC + mov r1, #0 + strh r1, [sl, #34] ; 0x22 + add r7, sl, #36 ; 0x24 + str r1, [sl, #36] ; 0x24 + str r1, [r7, #4] + ldrh r0, [r8, #110] ; 0x6e + strh r0, [r7, #8] + ldrh r0, [r8, #124] ; 0x7c + strh r0, [r7, #10] + add r6, r7, #12 + ldrh r0, [r9, #30] + mov r0, r0, lsl #31 + movs r0, r0, lsr #31 + bne _0601487C + sub r0, r6, r7 + strh r0, [r8, #146] ; 0x92 + mov r0, r6 + bl FUN_06009CD0 + add r0, r6, #1 + add r6, r6, #2 + ldrh r1, [r8, #30] + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + mov r5, #0 + add r4, r8, #32 + b _06014858 +_0601483C: + add r0, r4, r5 + bl FUN_06009CB0 + mov r1, r0 + mov r0, r6 + bl FUN_06009CD0 + add r6, r6, #1 + add r5, r5, #1 +_06014858: + ldrh r0, [r8, #30] + cmp r5, r0 + bcc _0601483C + mvn r0, #0 + sub r0, r0, r5 + add r0, r6, r0 + and r1, r5, #255 ; 0xff + bl FUN_06009CD0 + b _06014880 +_0601487C: + strh r1, [r8, #146] ; 0x92 +_06014880: + mov r0, r6 + bl FUN_06013C54 + add r6, r6, r0 + mov r0, r6 + mov r1, #3 + bl FUN_06009CD0 + add r0, r6, #1 + mov r1, #1 + bl FUN_06009CD0 + add r0, r6, #2 + ldrh r1, [r8, #122] ; 0x7a + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + add r0, r6, #3 + sub r1, r0, r7 + strh r1, [r8, #148] ; 0x94 + ldrh r1, [r8, #148] ; 0x94 + add r2, r1, #2 + ldr r1, _06014AD8 ; =0x04808084 + strh r2, [r1] + mov r1, #5 + bl FUN_06009CD0 + add r0, r6, #4 + mov r1, #5 + bl FUN_06009CD0 + add r0, r6, #5 + mov r1, #0 + bl FUN_06009CD0 + add r0, r6, #6 + ldrh r1, [r8, #116] ; 0x74 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + add r0, r6, #7 + mov r1, #0 + bl FUN_06009CD0 + add r0, r6, #8 + mov r1, #0 + bl FUN_06009CD0 + add r0, r6, #9 + mov r1, #0 + bl FUN_06009CD0 + add r0, r6, #10 + sub r1, r0, r7 + strh r1, [r8, #150] ; 0x96 + ldrh r1, [r8, #150] ; 0x96 + and r1, r1, #1 + strh r1, [r8, #162] ; 0xa2 + mov r1, #221 ; 0xdd + bl FUN_06009CD0 + add r0, r6, #11 + ldrh r1, [r8, #160] ; 0xa0 + add r1, r1, #8 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + add r0, r6, #12 + mov r1, #0 + bl FUN_06009CD0 + add r0, r6, #13 + mov r1, #9 + bl FUN_06009CD0 + add r0, r6, #14 + mov r1, #191 ; 0xbf + bl FUN_06009CD0 + add r0, r6, #15 + mov r1, #0 + bl FUN_06009CD0 + ldrh r0, [r8, #14] + cmp r0, #1 + bne _060149C0 + add r0, r6, #16 + ldrh r1, [r9, #32] + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + add r0, r6, #17 + add r6, r6, #18 + ldrh r1, [r9, #32] + mov r1, r1, asr #8 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + b _060149DC +_060149C0: + add r0, r6, #16 + mov r1, #255 ; 0xff + bl FUN_06009CD0 + add r0, r6, #17 + add r6, r6, #18 + mov r1, #255 ; 0xff + bl FUN_06009CD0 +_060149DC: + ldr r0, _06014ADC ; =0x0380FFF0 + ldrh r4, [r0] + mov r0, r6 + and r1, r4, #255 ; 0xff + bl FUN_06009CD0 + add r0, r6, #1 + add r6, r6, #2 + mov r1, r4, lsr #8 + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + ldr r5, [r8, #156] ; 0x9c + mov r4, #0 + b _06014A30 +_06014A10: + mov r0, r5 + bl FUN_06009CB0 + mov r1, r0 + mov r0, r6 + bl FUN_06009CD0 + add r6, r6, #1 + add r5, r5, #1 + add r4, r4, #1 +_06014A30: + ldrh r1, [r8, #160] ; 0xa0 + cmp r4, r1 + bcc _06014A10 + ldrh r0, [r8, #162] ; 0xa2 + cmp r0, #0 + beq _06014A84 + ldr r0, [r8, #156] ; 0x9c + add r0, r0, r1 + sub r4, r0, #1 + mov r5, #0 + b _06014A78 +_06014A5C: + mov r0, r4 + bl FUN_06009CB0 + mov r1, r0 + add r0, r4, #1 + bl FUN_06009CD0 + add r5, r5, #1 + sub r4, r4, #1 +_06014A78: + ldrh r0, [r8, #160] ; 0xa0 + cmp r5, r0 + bcc _06014A5C +_06014A84: + ldr r0, _06014AD0 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1536 ; 0x600 + ldrh r0, [r0, #144] ; 0x90 + ands r0, r0, #4 + beq _06014AB4 + add r0, r6, #3 + bic r1, r0, #3 + ldr r0, _06014AE0 ; =0x0000B6B8 + strh r0, [r1] + ldr r0, _06014AE4 ; =0x00001D46 + strh r0, [r1, #2] +_06014AB4: + mov r0, #0 + strh r0, [r8, #164] ; 0xa4 + add r0, r6, #28 + sub r0, r0, r7 + strh r0, [sl, #10] + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + bx lr +_06014AD0: .word 0x0380FFF4 +_06014AD4: .word _06019384 +_06014AD8: .word 0x04808084 +_06014ADC: .word 0x0380FFF0 +_06014AE0: .word 0x0000B6B8 +_06014AE4: .word 0x00001D46 + + arm_func_start FUN_06014AE8 +FUN_06014AE8: ; 0x06014AE8 + ldr r0, _06014B08 ; =0x0380FFF4 + ldr r2, [r0] + mov r1, #0 + ldr r0, _06014B0C ; =0x04808080 + strh r1, [r0] + add r0, r2, #1024 ; 0x400 + strh r1, [r0, #164] ; 0xa4 + bx lr +_06014B08: .word 0x0380FFF4 +_06014B0C: .word 0x04808080 + + arm_func_start FUN_06014B10 +FUN_06014B10: ; 0x06014B10 + ldr r0, _06014B4C ; =0x0380FFF4 + ldr r2, [r0] + ldr r0, _06014B50 ; =0x000004A4 + add r3, r2, r0 + mov r1, #1 + add r0, r2, #1024 ; 0x400 + strh r1, [r0, #164] ; 0xa4 + ldr r1, [r3, #8] + ldr r0, _06014B54 ; =0x00003FFF + and r0, r1, r0 + mov r0, r0, lsr #1 + orr r1, r0, #32768 ; 0x8000 + ldr r0, _06014B58 ; =0x04808080 + strh r1, [r0] + bx lr +_06014B4C: .word 0x0380FFF4 +_06014B50: .word 0x000004A4 +_06014B54: .word 0x00003FFF +_06014B58: .word 0x04808080 + + arm_func_start FUN_06014B5C +FUN_06014B5C: ; 0x06014B5C + stmdb sp!, {r4, lr} + ldr r0, _06014BE8 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06014BEC ; =0x00000454 + add r4, r1, r0 + ldrh r0, [r4, #2] + add r0, r0, #1 + strh r0, [r4, #2] + add r0, r1, #1024 ; 0x400 + ldrh r0, [r0, #84] ; 0x54 + cmp r0, #0 + movne r1, #0 + ldrne r0, [r4, #8] + strneh r1, [r0, #4] + bne _06014BE0 + mov r0, #1 + strh r0, [r4] + mov r1, #0 + ldr r0, [r4, #8] + strh r1, [r0] + ldr r0, [r4, #8] + strh r1, [r0, #4] + bl FUN_0600AA50 + ldr r1, [r4, #8] + strh r0, [r1, #8] + ldr r1, [r4, #8] + ldr r0, _06014BF0 ; =0x00003FFF + and r0, r1, r0 + mov r0, r0, lsl #15 + mov r0, r0, lsr #16 + orr r1, r0, #32768 ; 0x8000 + ldr r0, _06014BF4 ; =0x048080A8 + strh r1, [r0] +_06014BE0: + ldmia sp!, {r4, lr} + bx lr +_06014BE8: .word 0x0380FFF4 +_06014BEC: .word 0x00000454 +_06014BF0: .word 0x00003FFF +_06014BF4: .word 0x048080A8 + + arm_func_start FUN_06014BF8 +FUN_06014BF8: ; 0x06014BF8 + stmdb sp!, {r4, lr} + mov r4, r0 + add r0, r4, #24 + bl FUN_0600F608 + strh r0, [r4, #2] + ldrh r0, [r4, #2] + cmp r0, #255 ; 0xff + moveq r0, #0 + streqh r0, [r4, #2] + ldr r0, _06014C68 ; =0x0380FFF4 + ldr r0, [r0] + ldr r0, [r0, #1004] ; 0x3ec + strh r0, [r4, #4] + ldrh r0, [r4, #20] + ands r0, r0, #16384 ; 0x4000 + ldrneh r0, [r4, #18] + addne r0, r0, #8 + strneh r0, [r4, #18] + mov r0, r4 + bl FUN_0600F3CC + ldr r0, _06014C68 ; =0x0380FFF4 + ldr r1, [r0] + add r0, r1, #392 ; 0x188 + add r1, r1, #416 ; 0x1a0 + sub r2, r4, #16 + bl FUN_0600962C + ldmia sp!, {r4, lr} + bx lr +_06014C68: .word 0x0380FFF4 + + arm_func_start FUN_06014C6C +FUN_06014C6C: ; 0x06014C6C + stmfd sp!, {lr} + sub sp, sp, #4 + bl FUN_06014BF8 + mov r0, #1 + bl FUN_06015C78 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FUN_06014C8C +FUN_06014C8C: ; 0x06014C8C + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #4 + mov sl, r0 + mov r9, r1 + mov r0, #12 + mul r6, sl, r0 + ldr r0, _06014D20 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, r6 + ldr r8, [r0, #404] ; 0x194 + mvn r4, #0 + cmp r8, r4 + beq _06014D14 + mov r5, #2 +_06014CC4: + mov r0, r8 + bl FUN_06009434 + mov fp, r0 + add r7, r8, #16 + cmp sl, #2 + beq _06014CE4 + mov r0, r7 + bl FUN_0600F360 +_06014CE4: + strh r5, [r7, #8] + cmp r9, #0 + beq _06014D08 + ldr r0, _06014D20 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #404 ; 0x194 + add r0, r0, r6 + mov r1, r8 + bl FUN_06012DD4 +_06014D08: + mov r8, fp + cmp fp, r4 + bne _06014CC4 +_06014D14: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06014D20: .word 0x0380FFF4 + + arm_func_start FUN_06014D24 +FUN_06014D24: ; 0x06014D24 + stmdb sp!, {r4, lr} + ldr r0, _06014E0C ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06014E10 ; =0x0000042C + add r4, r1, r0 + add r0, r1, #768 ; 0x300 + ldrh r0, [r0, #80] ; 0x50 + cmp r0, #1 + beq _06014D5C + cmp r0, #2 + beq _06014DB8 + cmp r0, #3 + beq _06014DB8 + b _06014DE0 +_06014D5C: + mov r0, #0 + mov r1, #1 + bl FUN_06014C8C + mov r0, #1 + mov r1, #0 + bl FUN_06014C8C + mov r0, #2 + mov r1, #1 + bl FUN_06014C8C + ldrh r0, [r4, #60] ; 0x3c + cmp r0, #0 + beq _06014E04 + mov r0, #0 + strh r0, [r4, #60] ; 0x3c + ldrh r0, [r4, #62] ; 0x3e + sub r0, r0, #1 + strh r0, [r4, #62] ; 0x3e + ldr r0, _06014E0C ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + ldr r1, [r4, #144] ; 0x90 + bl FUN_060096A0 + b _06014E04 +_06014DB8: + mov r0, #0 + mov r1, #1 + bl FUN_06014C8C + mov r0, #1 + mov r1, #0 + bl FUN_06014C8C + mov r0, #2 + mov r1, #0 + bl FUN_06014C8C + b _06014E04 +_06014DE0: + mov r0, #0 + mov r1, r0 + bl FUN_06014C8C + mov r0, #1 + mov r1, #0 + bl FUN_06014C8C + mov r0, #2 + mov r1, #0 + bl FUN_06014C8C +_06014E04: + ldmia sp!, {r4, lr} + bx lr +_06014E0C: .word 0x0380FFF4 +_06014E10: .word 0x0000042C + + arm_func_start FUN_06014E14 +FUN_06014E14: ; 0x06014E14 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldrh r1, [r0] + ands r1, r1, #1 + beq _06014E58 + mov r5, #1 + ldr r4, _06014EB4 ; =0x0380FFF4 + b _06014E40 +_06014E34: + mov r0, r5 + bl FUN_06014EB8 + add r5, r5, #1 +_06014E40: + ldr r0, [r4] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #34] ; 0x22 + cmp r5, r0 + bcc _06014E34 + b _06014EA8 +_06014E58: + bl FUN_0600F608 + mov r4, r0 + cmp r4, #255 ; 0xff + beq _06014E6C + bl FUN_06014EB8 +_06014E6C: + ldr r0, _06014EB4 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #46] ; 0x2e + cmp r0, #1 + bne _06014EA8 + mov r0, r4 + bl FUN_0600EFF0 + cmp r0, #64 ; 0x40 + bne _06014EA8 + mov r0, r4, lsl #16 + mov r0, r0, lsr #16 + mov r1, #32 + bl FUN_0600F294 + bl FUN_060151F0 +_06014EA8: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06014EB4: .word 0x0380FFF4 + + arm_func_start FUN_06014EB8 +FUN_06014EB8: ; 0x06014EB8 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #12 + mov fp, r0 + mov r8, #0 + bl FUN_0600EEFC + cmp r0, #0 + beq _06014FB8 + mov r7, r8 + mov r0, #1 + str r0, [sp, #8] + mov r4, #2 + str r7, [sp, #4] +_06014EE8: + mov r0, #12 + mul r5, r7, r0 + ldr r0, _06014FC4 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, r5 + ldr sl, [r0, #404] ; 0x194 + mvn r0, #0 + cmp sl, r0 + beq _06014FAC + mov r0, #20 + mul r6, r7, r0 +_06014F14: + mov r0, sl + bl FUN_06009434 + str r0, [sp] + add r9, sl, #16 + ldrh r0, [r9, #2] + cmp r0, fp + bne _06014F98 + cmp r7, #1 + beq _06014F50 + ldr r0, _06014FC4 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r6, r0 + ldr r0, [r0, #1080] ; 0x438 + cmp r9, r0 + bne _06014F6C +_06014F50: + mov r0, r9 + bl FUN_0600F360 + ldr r0, [sp, #4] + strh r0, [r9, #2] + mov r0, r9 + bl FUN_0600F3CC + b _06014F98 +_06014F6C: + strh r4, [r9, #8] + mov r0, r9 + bl FUN_0600F360 + ldr r0, _06014FC4 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #404 ; 0x194 + add r0, r0, r5 + mov r1, sl + bl FUN_06012DD4 + cmp r8, #0 + ldreq r8, [sp, #8] +_06014F98: + ldr sl, [sp] + mvn r1, #0 + mov r0, sl + cmp r0, r1 + bne _06014F14 +_06014FAC: + add r7, r7, #1 + cmp r7, #3 + bcc _06014EE8 +_06014FB8: + add sp, sp, #12 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06014FC4: .word 0x0380FFF4 + + arm_func_start FUN_06014FC8 +FUN_06014FC8: ; 0x06014FC8 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + ldr r0, _06015050 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06015054 ; =0x0000042C + add r5, r1, r0 + mov r0, #20 + mul r4, r7, r0 + add r6, r5, r4 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + mov r2, r7, lsl #1 + ldr r1, _06015058 ; =_06019958 + ldrh r2, [r1, r2] + ldr r1, _0601505C ; =0x048080B4 + strh r2, [r1] + ldrh r1, [r5, r4] + cmp r1, #0 + beq _06015040 + ldr r2, [r6, #12] + ldrh r1, [r2, #20] + ands r1, r1, #16384 ; 0x4000 + ldreq r1, [r6, #8] + ldreqh r1, [r1, #4] + streqh r1, [r2, #12] + ldr r1, [r6, #8] + ldrh r2, [r1, #34] ; 0x22 + ldr r1, [r6, #12] + strh r2, [r1, #42] ; 0x2a +_06015040: + bl FUN_06009070 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06015050: .word 0x0380FFF4 +_06015054: .word 0x0000042C +_06015058: .word _06019958 +_0601505C: .word 0x048080B4 + + arm_func_start FUN_06015060 +FUN_06015060: ; 0x06015060 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r1, _060150D0 ; =0x0380FFF4 + ldr r2, [r1] + ldr r1, _060150D4 ; =0x0000042C + add r2, r2, r1 + mov r1, #20 + mul r1, r0, r1 + add r3, r2, r1 + ldrh r0, [r2, r1] + cmp r0, #0 + beq _060150C4 + ldr r0, [r3, #8] + ldrh r1, [r0] + cmp r1, #0 + moveq r1, #2 + ldreq r0, [r3, #12] + streqh r1, [r0, #8] + ldrne r0, [r3, #12] + strneh r1, [r0, #8] + ldr r0, [r3, #12] + mov r1, #0 + ldr r2, [r3, #16] + mov lr, pc + bx r2 +_060150C4: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_060150D0: .word 0x0380FFF4 +_060150D4: .word 0x0000042C + + arm_func_start FUN_060150D8 +FUN_060150D8: ; 0x060150D8 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r0, _06015184 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06015188 ; =0x0000042C + add r5, r1, r0 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + mov r4, r0 + ldr r0, _06015184 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #80] ; 0x50 + cmp r0, #1 + bne _06015144 + mov r1, #9 + ldr r0, _0601518C ; =0x048080B4 + strh r1, [r0] + ldrh r0, [r5, #40] ; 0x28 + cmp r0, #0 + beq _06015134 + mov r0, #2 + bl FUN_06015060 +_06015134: + mov r0, #2 + mov r1, #1 + bl FUN_06014C8C + b _06015150 +_06015144: + mov r1, #1 + ldr r0, _0601518C ; =0x048080B4 + strh r1, [r0] +_06015150: + ldrh r0, [r5] + cmp r0, #0 + beq _06015164 + mov r0, #0 + bl FUN_06015060 +_06015164: + mov r0, #0 + mov r1, #1 + bl FUN_06014C8C + mov r0, r4 + bl FUN_06009070 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06015184: .word 0x0380FFF4 +_06015188: .word 0x0000042C +_0601518C: .word 0x048080B4 + + arm_func_start FUN_06015190 +FUN_06015190: ; 0x06015190 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r0, _060151E4 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _060151E8 ; =0x0000042C + add r5, r1, r0 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + mov r4, r0 + mov r1, #2 + ldr r0, _060151EC ; =0x048080B4 + strh r1, [r0] + ldrh r0, [r5, #60] ; 0x3c + cmp r0, #0 + beq _060151D0 + bl FUN_0600E21C +_060151D0: + mov r0, r4 + bl FUN_06009070 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_060151E4: .word 0x0380FFF4 +_060151E8: .word 0x0000042C +_060151EC: .word 0x048080B4 + + arm_func_start FUN_060151F0 +FUN_060151F0: ; 0x060151F0 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r0, _06015264 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06015268 ; =0x0000042C + add r5, r1, r0 + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + mov r4, r0 + ldr r0, _06015264 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #58] ; 0x3a + mov r0, r0, lsl #24 + movs r0, r0, lsr #31 + bne _06015238 + mov r0, #0 + bl FUN_0600B004 +_06015238: + mov r1, #192 ; 0xc0 + ldr r0, _0601526C ; =0x048080B4 + strh r1, [r0] + mov r0, #0 + strh r0, [r5, #80] ; 0x50 + strh r0, [r5, #100] ; 0x64 + mov r0, r4 + bl FUN_06009070 + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06015264: .word 0x0380FFF4 +_06015268: .word 0x0000042C +_0601526C: .word 0x048080B4 + + arm_func_start FUN_06015270 +FUN_06015270: ; 0x06015270 + ldr r1, [r0, #8] + ldrh r1, [r1, #4] + ands r3, r1, #255 ; 0xff + ldr r1, _060152BC ; =0x0380FFF4 + ldr r2, [r1] + ldr r1, _060152C0 ; =0x0000053C + add r2, r2, r1 + ldreq r1, [r2, #108] ; 0x6c + addeq r1, r1, #1 + streq r1, [r2, #108] ; 0x6c + ldrne r1, [r2, #104] ; 0x68 + addne r1, r1, r3 + strne r1, [r2, #104] ; 0x68 + ldrh r1, [r0, #4] + add r1, r1, #1 + strh r1, [r0, #4] + mov r1, #0 + strh r1, [r0] + bx lr +_060152BC: .word 0x0380FFF4 +_060152C0: .word 0x0000053C + + arm_func_start FUN_060152C4 +FUN_060152C4: ; 0x060152C4 + stmdb sp!, {r4, r5, r6, r7, lr} + + arm_func_start FUN_060152C8 +FUN_060152C8: ; 0x060152C8 + sub sp, sp, #4 + mov r7, r0 + mov r6, r1 + ldr r1, _060153D8 ; =0x0380FFF4 + ldr r2, [r1] + add r5, r2, #380 ; 0x17c + add r4, r5, #48 ; 0x30 + ldr r1, [r2, #1360] ; 0x550 + add r1, r1, #1 + str r1, [r2, #1360] ; 0x550 + ldrh r1, [r7, #20] + mov r1, r1, lsl #28 + movs r1, r1, lsr #30 + bne _06015324 + bl FUN_0600F3CC + mov r0, r4 + add r1, r5, #36 ; 0x24 + sub r2, r7, #16 + bl FUN_0600962C + mov r0, r7 + mov r1, #0 + bl FUN_06015458 + b _06015330 +_06015324: + mov r0, r4 + sub r1, r7, #16 + bl FUN_06012DD4 +_06015330: + mov r2, #0 + ldr r1, _060153D8 ; =0x0380FFF4 + ldr r0, [r1] + add r0, r0, #1024 ; 0x400 + strh r2, [r0, #84] ; 0x54 + ldr r0, [r1] + ldr r0, [r0, #1116] ; 0x45c + ldrh r0, [r0, #12] + mov r0, r0, lsl #18 + movs r0, r0, lsr #31 + bne _060153A4 + mov r1, #8 + ldr r0, _060153DC ; =0x048080AC + strh r1, [r0] + mov r1, #5 + ldr r0, _060153E0 ; =0x048080AE + strh r1, [r0] + cmp r6, #0 + beq _060153A4 + ldrh r0, [r5, #44] ; 0x2c + cmp r0, #0 + beq _06015390 + mov r0, #1 + bl FUN_06015C78 +_06015390: + ldrh r0, [r5, #32] + cmp r0, #0 + beq _060153A4 + mov r0, #0 + bl FUN_06015C78 +_060153A4: + ldrh r0, [r4, #8] + cmp r0, #0 + beq _060153C4 + cmp r6, #0 + beq _060153CC + mov r0, #2 + bl FUN_06015C78 + b _060153CC +_060153C4: + mov r0, #0 + bl FUN_0600ED74 +_060153CC: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_060153D8: .word 0x0380FFF4 +_060153DC: .word 0x048080AC +_060153E0: .word 0x048080AE +_060153E4: + ldr r1, _06015450 ; =0x0380FFF4 + + arm_func_start FUN_060153E8 +FUN_060153E8: ; 0x060153E8 + ldr r2, [r1] + ldr r1, _06015454 ; =0x0000053C + add r3, r2, r1 + ldr r2, [r3, #8] + ldrh r1, [r0, #4] + and r1, r1, #255 ; 0xff + add r1, r2, r1 + str r1, [r3, #8] + ldrh r0, [r0] + ands r0, r0, #2 + ldrne r0, [r3, #4] + addne r0, r0, #1 + strne r0, [r3, #4] + bne _06015438 + ldr r0, [r3] + add r0, r0, #1 + str r0, [r3] + ldr r0, [r3, #16] + add r0, r0, #1 + str r0, [r3, #16] +_06015438: + mov r1, #0 + ldr r0, _06015450 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1024 ; 0x400 + strh r1, [r0, #84] ; 0x54 + bx lr +_06015450: .word 0x0380FFF4 +_06015454: .word 0x0000053C + + arm_func_start FUN_06015458 +FUN_06015458: ; 0x06015458 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + + arm_func_start FUN_0601545C +FUN_0601545C: ; 0x0601545C + sub sp, sp, #4 + mov sl, r0 + mov r9, r1 + ldr r0, _06015968 ; =0x0380FFF4 + ldr r1, [r0] + add r4, r1, #836 ; 0x344 + ldr r0, _0601596C ; =0x00000404 + add r8, r1, r0 + ldr r0, _06015970 ; =0x0000053C + add r5, r1, r0 + add r7, r1, #416 ; 0x1a0 + ldrh r6, [sl, #2] + ldrh r0, [sl, #8] + ands r0, r0, #2 + bne _060154EC + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + ldrh r0, [sl, #24] + ands r0, r0, #1 + ldrne r0, [r5, #20] + addne r0, r0, #1 + strne r0, [r5, #20] + ldreq r0, [r5, #16] + addeq r0, r0, #1 + streq r0, [r5, #16] + mov r0, r6 + bl FUN_0600EFB0 + cmp r0, #0 + beq _060154F8 + ldrh r0, [sl, #20] + ands r0, r0, #8192 ; 0x2000 + bne _060154F8 + mov r0, r6 + bl FUN_0600F1D8 + b _060154F8 +_060154EC: + ldr r0, [r5, #4] + add r0, r0, #1 + str r0, [r5, #4] +_060154F8: + ldrh r0, [sl, #20] + mov r0, r0, lsl #17 + movs r0, r0, lsr #31 + ldrne r0, [r5, #24] + addne r0, r0, #1 + strne r0, [r5, #24] + ldr r1, [r5, #8] + ldrh r0, [sl, #12] + and r0, r0, #255 ; 0xff + add r0, r1, r0 + str r0, [r5, #8] + ldrh r0, [sl, #20] + and r5, r0, #252 ; 0xfc + cmp r5, #160 ; 0xa0 + bhi _0601555C + cmp r5, #160 ; 0xa0 + bcs _060156D8 + cmp r5, #16 + bhi _06015550 + cmp r5, #16 + beq _06015614 + b _06015918 +_06015550: + cmp r5, #48 ; 0x30 + beq _06015614 + b _06015918 +_0601555C: + cmp r5, #176 ; 0xb0 + bhi _06015570 + cmp r5, #176 ; 0xb0 + beq _0601557C + b _06015918 +_06015570: + cmp r5, #192 ; 0xc0 + beq _060157C8 + b _06015918 +_0601557C: + cmp r6, #0 + beq _06015918 + ldrh r0, [sl, #8] + ands r0, r0, #2 + bne _06015918 + ldrh r1, [sl, #44] ; 0x2c + cmp r1, #0 + bne _060155D4 + ldrh r0, [sl, #46] ; 0x2e + cmp r0, #2 + bne _060155D4 + ldrh r0, [sl, #48] ; 0x30 + cmp r0, #0 + bne _060155D4 + mov r0, r6, lsl #16 + mov r0, r0, lsr #16 + mov r1, #48 ; 0x30 + bl FUN_0600F294 + add r0, sl, #24 + ldrh r1, [sl, #44] ; 0x2c + bl FUN_060101AC + b _06015918 +_060155D4: + cmp r1, #1 + bne _06015918 + ldrh r0, [sl, #46] ; 0x2e + cmp r0, #4 + bne _06015918 + ldrh r0, [sl, #48] ; 0x30 + cmp r0, #0 + bne _06015918 + mov r0, r6, lsl #16 + mov r0, r0, lsr #16 + mov r1, #48 ; 0x30 + bl FUN_0600F294 + add r0, sl, #24 + ldrh r1, [sl, #44] ; 0x2c + bl FUN_060101AC + b _06015918 +_06015614: + cmp r6, #0 + beq _06015918 + ldrh r0, [sl, #8] + ands r0, r0, #2 + bne _06015694 + ldrh r0, [sl, #46] ; 0x2e + cmp r0, #0 + bne _06015918 + mov r0, r6 + bl FUN_0600EFF0 + cmp r0, #48 ; 0x30 + bne _06015918 + mov r0, r6, lsl #16 + mov r0, r0, lsr #16 + mov r1, #64 ; 0x40 + bl FUN_0600F294 + cmp r5, #16 + bne _06015678 + add r0, sl, #24 + ldrh r1, [sl, #48] ; 0x30 + add r3, sl, #20 + ldrh r2, [sl, #18] + add r2, r3, r2 + bl FUN_06010034 + b _06015918 +_06015678: + add r0, sl, #24 + ldrh r1, [sl, #48] ; 0x30 + add r3, sl, #20 + ldrh r2, [sl, #18] + add r2, r3, r2 + bl FUN_0600FF44 + b _06015918 +_06015694: + mov r0, r6, lsl #16 + mov r0, r0, lsr #16 + bl FUN_0600F00C + add r0, sl, #24 + mov r1, #1 + mov r2, #0 + bl FUN_06013E9C + cmp r0, #0 + beq _06015918 + mov r1, #2 + strh r1, [r0] + cmp r9, #0 + beq _060156D0 + bl FUN_06014C6C + b _06015918 +_060156D0: + bl FUN_06014BF8 + b _06015918 +_060156D8: + ldrh r0, [r4, #12] + cmp r0, #1 + bne _06015768 + cmp r6, #0 + beq _06015710 + mov r0, r6 + bl FUN_0600EFF0 + cmp r0, #48 ; 0x30 + bls _06015780 + mov r0, r6, lsl #16 + mov r0, r0, lsr #16 + mov r1, #48 ; 0x30 + bl FUN_0600F294 + b _06015780 +_06015710: + ldrh r0, [sl, #24] + ands r0, r0, #1 + beq _06015780 + mov r6, #1 + mov r5, #48 ; 0x30 + ldr r4, _06015968 ; =0x0380FFF4 + b _06015750 +_0601572C: + mov r0, r6 + bl FUN_0600EFF0 + cmp r0, #48 ; 0x30 + bls _0601574C + mov r0, r6, lsl #16 + mov r0, r0, lsr #16 + mov r1, r5 + bl FUN_0600F294 +_0601574C: + add r6, r6, #1 +_06015750: + ldr r0, [r4] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #34] ; 0x22 + cmp r6, r0 + bcc _0601572C + b _06015780 +_06015768: + ldrh r0, [r4, #8] + cmp r0, #48 ; 0x30 + bls _06015780 + mov r0, #48 ; 0x30 + bl FUN_0600AF68 + bl FUN_0600B054 +_06015780: + ldrh r0, [r8] + cmp r0, #113 ; 0x71 + bne _06015918 + ldr r0, [r8, #4] + cmp sl, r0 + bne _06015918 + ldrh r0, [sl, #8] + ands r0, r0, #2 + moveq r1, #0 + ldreq r0, [r8, #28] + streqh r1, [r0, #4] + movne r1, #12 + ldrne r0, [r8, #28] + strneh r1, [r0, #4] + mov r0, #0 + strh r0, [r8] + bl FUN_06010228 + b _06015918 +_060157C8: + ldrh r0, [r4, #12] + cmp r0, #1 + bne _06015858 + cmp r6, #0 + beq _06015800 + mov r0, r6 + bl FUN_0600EFF0 + cmp r0, #32 + bls _06015870 + mov r0, r6, lsl #16 + mov r0, r0, lsr #16 + mov r1, #32 + bl FUN_0600F294 + b _06015870 +_06015800: + ldrh r0, [sl, #24] + ands r0, r0, #1 + beq _06015870 + mov r5, #1 + mov r4, #32 + ldr fp, _06015968 ; =0x0380FFF4 + b _06015840 +_0601581C: + mov r0, r5 + bl FUN_0600EFF0 + cmp r0, #32 + bls _0601583C + mov r0, r5, lsl #16 + mov r0, r0, lsr #16 + mov r1, r4 + bl FUN_0600F294 +_0601583C: + add r5, r5, #1 +_06015840: + ldr r0, [fp] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #34] ; 0x22 + cmp r5, r0 + bcc _0601581C + b _06015870 +_06015858: + ldrh r0, [r4, #8] + cmp r0, #32 + bls _06015870 + mov r0, #32 + bl FUN_0600AF68 + bl FUN_0600B054 +_06015870: + ldrh r0, [r8] + cmp r0, #65 ; 0x41 + bne _060158B4 + ldr r0, [r8, #4] + cmp sl, r0 + bne _060158B4 + ldrh r0, [sl, #8] + ands r0, r0, #2 + moveq r1, #0 + ldreq r0, [r8, #28] + streqh r1, [r0, #4] + movne r1, #12 + ldrne r0, [r8, #28] + strneh r1, [r0, #4] + mov r0, #0 + strh r0, [r8] + bl FUN_06010228 +_060158B4: + ldrh r0, [sl] + cmp r0, #1 + bne _06015904 + cmp r6, #0 + beq _060158F4 + ldr r0, _06015968 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1280 ; 0x500 + ldrh r2, [r0, #52] ; 0x34 + mov r1, #1 + mvn r1, r1, lsl r6 + and r1, r2, r1 + strh r1, [r0, #52] ; 0x34 + mov r0, r6, lsl #16 + mov r0, r0, lsr #16 + bl FUN_0600EB44 +_060158F4: + add r0, sl, #24 + mov r1, #1 + bl FUN_06010130 + b _06015918 +_06015904: + cmp r0, #2 + bne _06015918 + add r0, sl, #24 + ldrh r1, [sl, #44] ; 0x2c + bl FUN_06010130 +_06015918: + mov r0, sl + bl FUN_0600F360 + mov r0, r7 + sub r1, sl, #16 + bl FUN_060096A0 + mov r1, #0 + ldr r0, _06015968 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1024 ; 0x400 + strh r1, [r0, #64] ; 0x40 + cmp r9, #0 + beq _0601595C + ldrh r0, [r7, #8] + cmp r0, #0 + beq _0601595C + mov r0, #1 + bl FUN_06015C78 +_0601595C: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06015968: .word 0x0380FFF4 +_0601596C: .word 0x00000404 +_06015970: .word 0x0000053C + + arm_func_start FUN_06015974 +FUN_06015974: ; 0x06015974 + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + + arm_func_start FUN_06015978 +FUN_06015978: ; 0x06015978 + sub sp, sp, #4 + mov r9, r0 + mov r8, r1 + ldr r1, _06015B00 ; =0x0380FFF4 + ldr r2, [r1] + add r7, r2, #404 ; 0x194 + add r6, r2, #836 ; 0x344 + ldr r1, _06015B04 ; =0x0000053C + add r5, r2, r1 + sub r4, r9, #16 + bl FUN_0600F360 + ldrh r0, [r9, #8] + ands r0, r0, #2 + bne _06015A14 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + ldrh r0, [r9, #20] + mov r0, r0, lsl #23 + movs r0, r0, lsr #31 + beq _060159F0 + ldrh r0, [r9, #36] ; 0x24 + ands r0, r0, #1 + ldrne r0, [r5, #20] + addne r0, r0, #1 + strne r0, [r5, #20] + ldreq r0, [r5, #16] + addeq r0, r0, #1 + streq r0, [r5, #16] + b _06015A20 +_060159F0: + ldrh r0, [r9, #24] + ands r0, r0, #1 + ldrne r0, [r5, #20] + addne r0, r0, #1 + strne r0, [r5, #20] + ldreq r0, [r5, #16] + addeq r0, r0, #1 + streq r0, [r5, #16] + b _06015A20 +_06015A14: + ldr r0, [r5, #4] + add r0, r0, #1 + str r0, [r5, #4] +_06015A20: + ldrh r0, [r9, #20] + mov r0, r0, lsl #17 + movs r0, r0, lsr #31 + ldrne r0, [r5, #24] + addne r0, r0, #1 + strne r0, [r5, #24] + mov r0, r7 + mov r1, r4 + bl FUN_06012DD4 + mov r1, #0 + ldr r0, _06015B00 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1024 ; 0x400 + strh r1, [r0, #44] ; 0x2c + ldrh r0, [r9, #2] + bl FUN_0600EFB0 + cmp r0, #0 + beq _06015A7C + ldrh r0, [r9, #20] + ands r0, r0, #8192 ; 0x2000 + bne _06015A7C + ldrh r0, [r9, #2] + bl FUN_0600F1D8 +_06015A7C: + cmp r8, #0 + beq _06015AF4 + ldrh r0, [r7, #8] + cmp r0, #0 + beq _06015A9C + mov r0, #0 + bl FUN_06015C78 + b _06015AF4 +_06015A9C: + ldrh r1, [r6, #12] + ldr r0, _06015B08 ; =0x0000FFFE + add r0, r1, r0 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + cmp r0, #1 + bhi _06015AF4 + ldrh r0, [r6, #8] + cmp r0, #64 ; 0x40 + bne _06015AF4 + ldrh r0, [r6, #14] + cmp r0, #0 + beq _06015AF4 + ldrh r0, [r6, #136] ; 0x88 + bl FUN_0600EEFC + cmp r0, #0 + bne _06015AF4 + ldrh r0, [r6, #142] ; 0x8e + cmp r0, #0 + bne _06015AF4 + mov r0, #1 + bl FUN_0600B3F4 +_06015AF4: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} + bx lr +_06015B00: .word 0x0380FFF4 +_06015B04: .word 0x0000053C +_06015B08: .word 0x0000FFFE + + arm_func_start FUN_06015B0C +FUN_06015B0C: ; 0x06015B0C + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + add r4, r5, #16 + ldrh r1, [r4, #20] + ands r1, r1, #16384 ; 0x4000 + beq _06015BEC + ldr r0, _06015C64 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #80] ; 0x50 + cmp r0, #3 + bne _06015B44 + bl FUN_0600AC84 +_06015B44: + ldrh r1, [r5, #12] + ldr r0, _06015C68 ; =0x0000FFFF + cmp r1, r0 + bne _06015B6C + mov r0, r6 + add r1, r4, #8 + add r2, r4, #44 ; 0x2c + ldrh r3, [r4, #6] + bl FUN_06009CFC + b _06015B80 +_06015B6C: + mov r0, r6 + add r1, r4, #8 + ldr r2, [r4, #44] ; 0x2c + ldrh r3, [r4, #6] + bl FUN_06009CFC +_06015B80: + ldr r2, _06015C6C ; =0x04808044 + ldrh r1, [r2] + ldrh r0, [r2] + add r0, r1, r0, lsl #8 + strh r0, [r6, #36] ; 0x24 + ldrh r0, [r2] + and r2, r0, #255 ; 0xff + ldr r1, _06015C64 ; =0x0380FFF4 + ldr r0, [r1] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #54] ; 0x36 + orr r0, r2, r0, lsl #14 + strh r0, [r6, #38] ; 0x26 + ldr r0, [r1] + add r0, r0, #1536 ; 0x600 + ldrh r0, [r0, #144] ; 0x90 + ands r0, r0, #8 + beq _06015C20 + add r1, r6, #12 + ldrh r0, [r4, #18] + add r0, r1, r0 + sub r0, r0, #7 + bic r1, r0, #1 + mov r0, #0 + strh r0, [r1] + strh r0, [r1, #2] + b _06015C20 +_06015BEC: + ldrh r2, [r5, #12] + ldr r1, _06015C68 ; =0x0000FFFF + cmp r2, r1 + bne _06015C10 + add r1, r4, #8 + ldrh r2, [r4, #6] + add r2, r2, #36 ; 0x24 + bl FUN_06009D74 + b _06015C20 +_06015C10: + add r1, r4, #8 + ldr r2, [r4, #44] ; 0x2c + ldrh r3, [r4, #6] + bl FUN_06009D38 +_06015C20: + ldr r0, _06015C64 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1536 ; 0x600 + ldrh r0, [r0, #144] ; 0x90 + ands r0, r0, #4 + beq _06015C5C + add r1, r6, #12 + ldrh r0, [r4, #18] + add r0, r1, r0 + sub r0, r0, #1 + bic r1, r0, #3 + ldr r0, _06015C70 ; =0x0000B6B8 + strh r0, [r1] + ldr r0, _06015C74 ; =0x00001D46 + strh r0, [r1, #2] +_06015C5C: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06015C64: .word 0x0380FFF4 +_06015C68: .word 0x0000FFFF +_06015C6C: .word 0x04808044 +_06015C70: .word 0x0000B6B8 +_06015C74: .word 0x00001D46 + + arm_func_start FUN_06015C78 +FUN_06015C78: ; 0x06015C78 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #20 + mov sl, r0 + ldr r0, _06015EB8 ; =0x0380FFF4 + ldr r1, [r0] + add r9, r1, #836 ; 0x344 + ldr r0, _06015EBC ; =0x0000042C + add r8, r1, r0 + mov r0, #20 + mla r7, sl, r0, r8 + add r1, r1, #404 ; 0x194 + mov r0, #12 + mla fp, sl, r0, r1 + ldrh r0, [fp, #8] + cmp r0, #0 + beq _06015EAC + mov r0, #16777216 ; 0x1000000 + bl FUN_06009068 + str r0, [sp, #8] + ldrh r1, [r7] + cmp r1, #0 + beq _06015CD8 + bl FUN_06009070 + b _06015EAC +_06015CD8: + ldr r0, [fp] + str r0, [sp, #4] + mov r4, #2 + mov r0, #0 + str r0, [sp, #12] +_06015CEC: + mvn r1, #0 + ldr r0, [sp, #4] + cmp r0, r1 + bne _06015D08 + ldr r0, [sp, #8] + bl FUN_06009070 + b _06015EAC +_06015D08: + str r0, [sp] + bl FUN_06009434 + str r0, [sp, #4] + ldr r0, [sp] + add r6, r0, #16 + ldrh r5, [r6, #2] + ldr r1, [r9, #168] ; 0xa8 + ldrh r0, [r6, #4] + sub r0, r1, r0 + mov r0, r0, lsl #16 + mov r2, r0, lsr #16 + ldrh r1, [r9, #140] ; 0x8c + cmp r2, r1 + bls _06015D50 + ldrh r0, [r6, #20] + mov r0, r0, lsl #28 + movs r0, r0, lsr #30 + bne _06015D58 +_06015D50: + cmp r2, r1, lsl #3 + bls _06015D8C +_06015D58: + ldrh r0, [r8, #174] ; 0xae + add r0, r0, #1 + strh r0, [r8, #174] ; 0xae + strh r4, [r6, #8] + ldrh r0, [r7, #4] + add r0, r0, #1 + strh r0, [r7, #4] + mov r0, r6 + ldr r1, [sp, #12] + ldr r2, [r7, #16] + mov lr, pc + bx r2 + b _06015CEC +_06015D8C: + cmp sl, #0 + beq _06015DAC + cmp sl, #1 + bne _06015DE8 + mov r0, r5 + bl FUN_0600EFF0 + cmp r0, #64 ; 0x40 + bne _06015DE8 +_06015DAC: + mov r0, r5 + bl FUN_0600EFD0 + cmp r0, #0 + beq _06015CEC + mov r0, r5 + bl FUN_0600EFF0 + cmp r0, #64 ; 0x40 + beq _06015DE8 + strh r4, [r6, #8] + mov r0, fp + sub r1, r6, #16 + bl FUN_06012DD4 + mov r0, r6 + bl FUN_0600F360 + b _06015CEC +_06015DE8: + mov r0, #1 + strh r0, [r7] + ldrh r0, [r7, #2] + add r0, r0, #1 + strh r0, [r7, #2] + str r6, [r7, #12] + ldr r4, [r7, #8] + ldrh r0, [r9, #16] + cmp r0, #0 + bne _06015E18 + mov r0, #2 + bl FUN_0600B3F4 +_06015E18: + mov r0, r4 + ldr r1, [sp] + bl FUN_06015B0C + ldrh r0, [r9, #12] + cmp r0, #1 + bne _06015E48 + mov r0, r5 + bl FUN_0600EEFC + cmp r0, #1 + ldrhih r0, [r4, #12] + orrhi r0, r0, #8192 ; 0x2000 + strhih r0, [r4, #12] +_06015E48: + ldrh r3, [r6, #20] + ldr r0, _06015EC0 ; =0x048080A0 + add r0, r0, sl, lsl #2 + ldr r1, _06015EC4 ; =0x00003FFF + and r1, r4, r1 + mov r2, r1, lsr #1 + and r1, r3, #12 + cmp r1, #4 + moveq r1, r2, lsl #16 + moveq r1, r1, lsr #16 + orreq r1, r1, #40960 ; 0xa000 + streqh r1, [r0] + beq _06015EA4 + and r1, r3, #252 ; 0xfc + cmp r1, #80 ; 0x50 + moveq r1, r2, lsl #16 + moveq r1, r1, lsr #16 + orreq r1, r1, #36864 ; 0x9000 + streqh r1, [r0] + movne r1, r2, lsl #16 + movne r1, r1, lsr #16 + orrne r1, r1, #32768 ; 0x8000 + strneh r1, [r0] +_06015EA4: + ldr r0, [sp, #8] + bl FUN_06009070 +_06015EAC: + add sp, sp, #20 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06015EB8: .word 0x0380FFF4 +_06015EBC: .word 0x0000042C +_06015EC0: .word 0x048080A0 +_06015EC4: .word 0x00003FFF + + arm_func_start FUN_06015EC8 +FUN_06015EC8: ; 0x06015EC8 + stmdb sp!, {r4, r5, r6, lr} + ldr r0, _06015FE0 ; =0x0380FFF4 + ldr r1, [r0] + add r6, r1, #836 ; 0x344 + ldr r0, _06015FE4 ; =0x000004DC + add r5, r1, r0 + mov r0, #0 + mov r1, r5 + mov r2, #80 ; 0x50 + bl FUN_0600AEC4 + mov r1, #32768 ; 0x8000 + ldr r0, _06015FE8 ; =0x04808030 + strh r1, [r0] + ldr r0, _06015FE0 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #80] ; 0x50 + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _06015F44 + b _06015F28 + b _06015F30 + b _06015F38 + b _06015F40 +_06015F28: + ldr r4, _06015FEC ; =0x00000794 + b _06015F44 +_06015F30: + ldr r4, _06015FF0 ; =0x000010C4 + b _06015F44 +_06015F38: + ldr r4, _06015FF4 ; =0x00000BFC + b _06015F44 +_06015F40: + ldr r4, _06015FEC ; =0x00000794 +_06015F44: + ldr r0, _06015FF8 ; =0x04804000 + add r1, r4, r0 + ldr r0, _06015FFC ; =0x04808050 + strh r1, [r0] + mov r0, r4, lsl #15 + mov r2, r0, lsr #16 + ldr r0, _06016000 ; =0x04808056 + strh r2, [r0] + ldr r1, _06016004 ; =0x00005F60 + ldr r0, _06016008 ; =0x04808052 + strh r1, [r0] + ldr r0, _0601600C ; =0x0480805A + strh r2, [r0] + strh r2, [r5, #4] + ldr r0, _06016010 ; =0x0000FFFF + strh r0, [r5] + ldr r1, _06016014 ; =0x00001F60 + sub r1, r1, r4 + strh r1, [r6, #154] ; 0x9a + ldr r2, _06016018 ; =0x00005F5E + ldr r1, _0601601C ; =0x04808062 + strh r2, [r1] + ldr r2, _06016020 ; =0x00008001 + ldr r1, _06015FE8 ; =0x04808030 + strh r2, [r1] + ldr r1, _06016024 ; =0x0480824C + strh r0, [r1] + ldr r1, _06016028 ; =0x0480824E + strh r0, [r1] + ldr r1, _0601602C ; =0x04805F70 + strh r0, [r1] + ldr r1, _06016030 ; =0x04805F72 + strh r0, [r1] + ldr r1, _06016034 ; =0x04805F7E + strh r0, [r1] + ldr r1, _06016038 ; =0x04805F76 + strh r0, [r1] + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06015FE0: .word 0x0380FFF4 +_06015FE4: .word 0x000004DC +_06015FE8: .word 0x04808030 +_06015FEC: .word 0x00000794 +_06015FF0: .word 0x000010C4 +_06015FF4: .word 0x00000BFC +_06015FF8: .word 0x04804000 +_06015FFC: .word 0x04808050 +_06016000: .word 0x04808056 +_06016004: .word 0x00005F60 +_06016008: .word 0x04808052 +_0601600C: .word 0x0480805A +_06016010: .word 0x0000FFFF +_06016014: .word 0x00001F60 +_06016018: .word 0x00005F5E +_0601601C: .word 0x04808062 +_06016020: .word 0x00008001 +_06016024: .word 0x0480824C +_06016028: .word 0x0480824E +_0601602C: .word 0x04805F70 +_06016030: .word 0x04805F72 +_06016034: .word 0x04805F7E +_06016038: .word 0x04805F76 + + arm_func_start FUN_0601603C +FUN_0601603C: ; 0x0601603C + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + ldr r4, _060160AC ; =0x0380FFF4 + ldr r1, [r4] + ldr r0, _060160B0 ; =0x000004E4 + add r6, r1, r0 + mov r5, #0 + mov r7, #24 +_0601605C: + mul r0, r5, r7 + add r1, r6, r0 + ldrh r0, [r6, r0] + cmp r0, #0 + beq _06016094 + sub r0, r0, #1 + strh r0, [r1] + ldrh r0, [r1] + cmp r0, #0 + bne _06016094 + ldr r0, [r4] + add r0, r0, #392 ; 0x188 + ldr r1, [r1, #20] + bl FUN_060096A0 +_06016094: + add r5, r5, #1 + cmp r5, #3 + bcc _0601605C + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_060160AC: .word 0x0380FFF4 +_060160B0: .word 0x000004E4 + + arm_func_start FUN_060160B4 +FUN_060160B4: ; 0x060160B4 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #12 + mov sl, r0 + mov r9, r1 + ldr r0, _060162E8 ; =0x0380FFF4 + ldr r1, [r0] + add r8, r1, #380 ; 0x17c + ldr r0, _060162EC ; =0x000004E4 + add r7, r1, r0 + ldrh r0, [sl, #8] + sub r0, r0, #24 + strh r0, [sl, #8] + mov r6, #0 + b _0601618C +_060160EC: + mov r0, #24 + mul r0, r6, r0 + str r0, [sp, #4] + add r4, r7, r0 + ldrh r0, [r7, r0] + cmp r0, #0 + beq _06016188 + add r0, r4, #4 + mov r1, r9 + bl FUN_0600AB78 + cmp r0, #0 + beq _06016188 + add r0, r4, #10 + add r1, r9, #6 + bl FUN_0600AB78 + cmp r0, #0 + beq _06016188 + ldrh r0, [r9, #12] + mov r1, r0, lsl #16 + mov r2, r1, lsr #20 + ldrh r1, [r4, #16] + mov r1, r1, lsl #16 + cmp r2, r1, lsr #20 + bne _06016188 + ldr r1, [sp, #4] + add r2, r7, r1 + ldrh r1, [r2, #16] + sub fp, r1, r0 + ands r0, fp, #-2147483648 ; 0x80000000 + bne _060162DC + ldrh r0, [r2, #2] + mul r0, fp, r0 + str r0, [sp] + ldrh r1, [sl, #8] + subs r5, r1, r0 + beq _060162DC + ands r0, r5, #-2147483648 ; 0x80000000 + beq _06016194 + b _060162DC +_06016188: + add r6, r6, #1 +_0601618C: + cmp r6, #3 + bcc _060160EC +_06016194: + cmp r6, #3 + beq _060162DC + mov r0, #24 + mul r4, r6, r0 + add r0, r7, r4 + ldr r0, [r0, #20] + add r6, r0, #16 + ldrh r1, [r6, #16] + add r9, r1, r5 + ldr r0, _060162F0 ; =0x000005E4 + cmp r9, r0 + bls _060161DC + add r0, r8, #12 + sub r1, r6, #16 + bl FUN_060096A0 + mov r0, #0 + strh r0, [r7, r4] + b _060162DC +_060161DC: + add r2, sl, #36 ; 0x24 + ldr r0, [sp] + add r0, r2, r0 + add r2, r6, #44 ; 0x2c + add r1, r2, r1 + add r2, r5, #1 + bl FUN_06000EA0 + strh r9, [r6, #16] + ldrh r0, [sl] + and r0, r0, #240 ; 0xf0 + mov r1, #16 + bl FUN_06001840 + add r2, r7, r4 + ldrh r3, [r2, #16] + bic r1, r3, #15 + mov r4, r3, lsl #28 + sub r3, r0, fp + add r3, r3, r4, lsr #28 + mov r3, r3, lsl #16 + mov r3, r3, lsr #16 + and r3, r3, #15 + orr r1, r1, r3 + strh r1, [r2, #16] + ldr r1, _060162E8 ; =0x0380FFF4 + ldr r3, [r1] + ldr r1, [r3, #1376] ; 0x560 + add r0, r1, r0 + str r0, [r3, #1376] ; 0x560 + ldrh r0, [sl] + ands r0, r0, #256 ; 0x100 + bne _060162DC + mov r0, #0 + strh r0, [r2] + ldrh r0, [r6, #8] + bic r0, r0, #240 ; 0xf0 + add r0, r0, #16 + strh r0, [r6, #8] + ldrh r0, [r6, #16] + add r0, r0, #24 + strh r0, [r6, #16] + ldrh r0, [r6, #8] + ands r0, r0, #15 + beq _060162B0 + cmp r0, #8 + bne _060162D0 + add r0, r8, #12 + add r1, r8, #72 ; 0x48 + sub r2, r6, #16 + bl FUN_0600962C + mov r0, #2 + mov r1, #6 + bl FUN_06009078 + b _060162DC +_060162B0: + add r0, r8, #12 + add r1, r8, #96 ; 0x60 + sub r2, r6, #16 + bl FUN_0600962C + mov r0, #1 + mov r1, #7 + bl FUN_06009078 + b _060162DC +_060162D0: + add r0, r8, #12 + sub r1, r6, #16 + bl FUN_060096A0 +_060162DC: + add sp, sp, #12 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_060162E8: .word 0x0380FFF4 +_060162EC: .word 0x000004E4 +_060162F0: .word 0x000005E4 + + arm_func_start FUN_060162F4 +FUN_060162F4: ; 0x060162F4 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #4 + mov sl, r0 + mov r9, r1 + ldr r0, _06016538 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _0601653C ; =0x000004E4 + add r8, r1, r0 + mvn r6, #0 + mov r7, #0 + add r0, r9, #6 + str r0, [sp] + mov fp, #24 + b _0601643C +_0601632C: + mul r5, r7, fp + add r4, r8, r5 + ldrh r0, [r8, r5] + cmp r0, #0 + beq _06016434 + add r0, r4, #4 + mov r1, r9 + bl FUN_0600AB78 + cmp r0, #0 + beq _06016438 + add r0, r4, #10 + ldr r1, [sp] + bl FUN_0600AB78 + cmp r0, #0 + beq _06016438 + ldrh r0, [r9, #12] + mov r0, r0, lsl #16 + mov r1, r0, lsr #20 + ldrh r0, [r4, #16] + mov r0, r0, lsl #16 + cmp r1, r0, lsr #20 + bne _06016438 + ldrh r0, [sl] + and r0, r0, #240 ; 0xf0 + mov r1, #16 + bl FUN_06001840 + mov r6, r0 + ldrh r0, [r4, #16] + mov r0, r0, lsl #28 + mov r0, r0, lsr #28 + subs r0, r6, r0 + beq _0601652C + ands r0, r0, #-2147483648 ; 0x80000000 + bne _0601652C + mov r0, r4 + ldr r0, [r0, #20] + add r7, r0, #16 + ldrh r2, [r7, #16] + ldrh r0, [sl, #8] + sub r0, r0, r2 + subs r5, r0, #24 + beq _0601652C + ands r0, r5, #-2147483648 ; 0x80000000 + bne _0601652C + add r0, sl, #36 ; 0x24 + add r0, r0, r2 + add r1, r7, #44 ; 0x2c + add r1, r1, r2 + mov r2, r5 + bl FUN_06000EA0 + ldrh r0, [r7, #16] + add r0, r0, r5 + strh r0, [r7, #16] + ldrh r0, [r4, #16] + bic r1, r0, #15 + mov r0, r6, lsl #16 + mov r0, r0, lsr #16 + and r0, r0, #15 + orr r0, r1, r0 + strh r0, [r4, #16] + ldr r0, _06016538 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, [r1, #1376] ; 0x560 + add r0, r0, r6 + str r0, [r1, #1376] ; 0x560 + b _0601652C +_06016434: + mov r6, r7 +_06016438: + add r7, r7, #1 +_0601643C: + cmp r7, #3 + bcc _0601632C + mvn r0, #0 + cmp r6, r0 + beq _0601652C + ldr r0, _06016538 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + ldr r1, _06016540 ; =0x00000622 + bl FUN_06009724 + movs r5, r0 + beq _06016524 + mov r0, #24 + mul r4, r6, r0 + add r6, r8, r4 + mov r0, r9 + add r1, r6, #4 + mov r2, #16 + bl FUN_06000EA0 + mov r0, #5 + strh r0, [r8, r4] + mov r0, r6 + str r5, [r0, #20] + add r5, r5, #16 + mov r0, sl + add r1, r5, #8 + ldrh r2, [sl, #8] + add r2, r2, #12 + bl FUN_06000EA0 + ldr r0, _06016538 ; =0x0380FFF4 + ldr r0, [r0] + ldr r0, [r0, #780] ; 0x30c + bl FUN_06016544 + ldrh r0, [r5, #8] + and r0, r0, #240 ; 0xf0 + mov r1, #16 + bl FUN_06001840 + mov r1, r0 + ldrh r0, [r6, #16] + bic r2, r0, #15 + mov r0, r1, lsl #16 + mov r0, r0, lsr #16 + and r0, r0, #15 + orr r0, r2, r0 + strh r0, [r6, #16] + ldr r0, _06016538 ; =0x0380FFF4 + ldr r2, [r0] + ldr r0, [r2, #1376] ; 0x560 + add r0, r0, r1 + str r0, [r2, #1376] ; 0x560 + ldrh r0, [sl, #8] + sub r0, r0, #24 + strh r0, [r5, #16] + ldrh r0, [r5, #16] + bl FUN_06003B68 + mov r1, r6 + strh r0, [r1, #2] + b _0601652C +_06016524: + mov r0, #4 + bl FUN_0600994C +_0601652C: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06016538: .word 0x0380FFF4 +_0601653C: .word 0x000004E4 +_06016540: .word 0x00000622 + + arm_func_start FUN_06016544 +FUN_06016544: ; 0x06016544 + ldr pc, _06016548 ; =FUN_037FB290 +_06016548: .word FUN_037FB290 + + arm_func_start FUN_0601654C +FUN_0601654C: ; 0x0601654C + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #20 + ldr r0, _06016660 ; =0x0380FFF4 + ldr r1, [r0] + add r7, r1, #380 ; 0x17c + ldr r6, [r7, #108] ; 0x6c + mvn r0, #0 + cmp r6, r0 + beq _06016654 + add r5, r6, #16 + add r0, r1, #768 ; 0x300 + ldrh r0, [r0, #76] ; 0x4c + cmp r0, #64 ; 0x40 + bne _06016630 + ldrh r1, [r5, #16] + ldr r0, _06016664 ; =0x000005FC + cmp r1, r0 + bhi _06016630 + ldrh r4, [r5, #20] + ands r0, r4, #256 ; 0x100 + beq _060165C4 + add r0, sp, #0 + add r1, r5, #36 ; 0x24 + bl FUN_0600AF4C + ands r0, r4, #512 ; 0x200 + bne _06016630 + add r0, sp, #6 + add r1, r5, #30 + bl FUN_0600AF4C + b _060165F4 +_060165C4: + add r0, sp, #0 + add r1, r5, #24 + bl FUN_0600AF4C + ands r0, r4, #512 ; 0x200 + beq _060165E8 + add r0, sp, #6 + add r1, r5, #36 ; 0x24 + bl FUN_0600AF4C + b _060165F4 +_060165E8: + add r0, sp, #6 + add r1, r5, #30 + bl FUN_0600AF4C +_060165F4: + ldrh r0, [r5, #42] ; 0x2a + strh r0, [sp, #12] + ands r0, r4, #1024 ; 0x400 + beq _06016624 + ldrh r0, [r5, #42] ; 0x2a + mov r0, r0, lsl #28 + movs r0, r0, lsr #28 + bne _06016624 + add r0, r5, #8 + add r1, sp, #0 + bl FUN_060162F4 + b _06016630 +_06016624: + add r0, r5, #8 + add r1, sp, #0 + bl FUN_060160B4 +_06016630: + add r0, r7, #108 ; 0x6c + mov r1, r6 + bl FUN_060096A0 + ldrh r0, [r7, #116] ; 0x74 + cmp r0, #0 + beq _06016654 + mov r0, #2 + mov r1, #9 + bl FUN_06009078 +_06016654: + add sp, sp, #20 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06016660: .word 0x0380FFF4 +_06016664: .word 0x000005FC + + arm_func_start FUN_06016668 +FUN_06016668: ; 0x06016668 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r4, r0 + ldrh r0, [r4, #2] + bl FUN_0600EF78 + bl FUN_06009C64 + add r5, r4, #52 ; 0x34 + add r0, r4, #51 ; 0x33 + bl FUN_06009CB0 + mov r6, r0 + mov r7, #0 + mov r4, r6, lsr #1 + b _060166B4 +_0601669C: + bl FUN_06009C34 + ldrh r1, [r5], #2 + cmp r1, r0 + movne r0, #0 + bne _060166E4 + add r7, r7, #1 +_060166B4: + cmp r7, r4 + bcc _0601669C + ands r0, r6, #1 + beq _060166E0 + bl FUN_06009C34 + ldrh r1, [r5] + and r1, r1, #255 ; 0xff + and r0, r0, #255 ; 0xff + cmp r1, r0 + movne r0, #0 + bne _060166E4 +_060166E0: + mov r0, #1 +_060166E4: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr + + arm_func_start FUN_060166F0 +FUN_060166F0: ; 0x060166F0 + stmdb sp!, {r4, r5, r6, lr} + mov r5, r0 + mov r4, r1 + ldr r0, _06016760 ; =0x04808044 + ldrh r1, [r0] + ldrh r0, [r0] + add r0, r1, r0, lsl #8 + mov r0, r0, lsl #16 + movs r6, r0, lsr #16 + moveq r6, #1 + mov r0, r6 + bl FUN_06009C64 + mov r0, r5 + mov r1, r6 + bl FUN_0600F154 + add r5, r4, #52 ; 0x34 + add r0, r4, #51 ; 0x33 + bl FUN_06009CB0 + mov r4, r0 + mov r6, #0 + b _06016750 +_06016744: + bl FUN_06009C34 + strh r0, [r5], #2 + add r6, r6, #2 +_06016750: + cmp r6, r4 + bcc _06016744 + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06016760: .word 0x04808044 + + arm_func_start FUN_06016764 +FUN_06016764: ; 0x06016764 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #12 + ldr r0, _06016AA8 ; =0x0380FFF4 + ldr r1, [r0] + add r9, r1, #380 ; 0x17c + ldr r0, _06016AAC ; =0x0000053C + add r8, r1, r0 + add r0, r1, #768 ; 0x300 + ldrh r7, [r0, #80] ; 0x50 + ldr r0, [r9, #96] ; 0x60 + str r0, [sp] + mvn r1, #0 + cmp r0, r1 + beq _06016A9C + add r6, r0, #16 + add sl, r6, #20 + ldrh r0, [r6, #24] + ands r0, r0, #1 + ldrne r0, [r8, #44] ; 0x2c + addne r0, r0, #1 + strne r0, [r8, #44] ; 0x2c + ldreq r0, [r8, #40] ; 0x28 + addeq r0, r0, #1 + streq r0, [r8, #40] ; 0x28 + ldrh r0, [r6, #8] + and r0, r0, #240 ; 0xf0 + mov r1, #16 + bl FUN_06001840 + ldr r1, [r8, #36] ; 0x24 + sub r0, r0, #1 + add r0, r1, r0 + str r0, [r8, #36] ; 0x24 + ldrh r0, [sl] + mov r1, r0, lsl #28 + mov r5, r1, lsr #30 + mov r0, r0, lsl #24 + mov r4, r0, lsr #28 + add r0, sl, #10 + bl FUN_0600F4C0 + mov fp, r0 + strh fp, [r6, #2] + cmp fp, #255 ; 0xff + bne _06016864 + mov r0, #0 + strh r0, [r6, #2] + cmp r7, #1 + bne _06016A78 + cmp r5, #0 + bne _06016A78 + cmp r4, #0 + beq _06016858 + cmp r4, #4 + beq _0601684C + cmp r4, #11 + bne _06016A78 + mov r0, r6 + bl FUN_06016F18 + b _06016A78 +_0601684C: + mov r0, r6 + bl FUN_0601784C + b _06016A78 +_06016858: + mov r0, r6 + bl FUN_06017D0C + b _06016A78 +_06016864: + bl FUN_0600F130 + mov r0, fp, lsl #16 + mov r0, r0, lsr #16 + ldrh r1, [r6, #18] + and r1, r1, #255 ; 0xff + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + bl FUN_0600F27C + cmp r5, #0 + bne _060168BC + ldrh r0, [r6, #42] ; 0x2a + str r0, [sp, #4] + mov r0, fp + bl FUN_0600EF5C + ldr r1, [sp, #4] + cmp r1, r0 + ldreq r0, [r8, #60] ; 0x3c + addeq r0, r0, #1 + streq r0, [r8, #60] ; 0x3c + beq _06016A78 + mov r0, fp + bl FUN_0600F16C +_060168BC: + cmp r7, #1 + beq _060168D8 + cmp r7, #2 + beq _060169B8 + cmp r7, #3 + beq _060169B8 + b _06016A78 +_060168D8: + mov r0, fp, lsl #16 + mov r0, r0, lsr #16 + ldrh r1, [sl] + mov r1, r1, lsl #19 + mov r1, r1, lsr #31 + bl FUN_0600F218 + cmp r5, #0 + bne _0601699C + cmp r4, #12 + addls pc, pc, r4, lsl #2 + b _06016A78 + b _06016944 + b _06016A78 + b _06016950 + b _06016A78 + b _0601695C + b _06016968 + b _06016A78 + b _06016A78 + b _06016938 + b _06016A78 + b _06016978 + b _06016984 + b _06016990 +_06016938: + mov r0, r6 + bl FUN_06017FDC + b _06016A78 +_06016944: + mov r0, r6 + bl FUN_06017D0C + b _06016A78 +_06016950: + mov r0, r6 + bl FUN_06017A34 + b _06016A78 +_0601695C: + mov r0, r6 + bl FUN_0601784C + b _06016A78 +_06016968: + mov r0, r6 + mov r1, #0 + bl FUN_0601745C + b _06016A78 +_06016978: + mov r0, r6 + bl FUN_06017EE8 + b _06016A78 +_06016984: + mov r0, r6 + bl FUN_06016F18 + b _06016A78 +_06016990: + mov r0, r6 + bl FUN_06016E5C + b _06016A78 +_0601699C: + cmp r5, #1 + bne _06016A78 + cmp r4, #10 + bne _06016A78 + mov r0, r6 + bl FUN_06016DF4 + b _06016A78 +_060169B8: + cmp r5, #0 + bne _06016A58 + cmp r4, #12 + addls pc, pc, r4, lsl #2 + b _06016A78 + b _06016A78 + b _06016A0C + b _06016A78 + b _06016A18 + b _06016A78 + b _06016A24 + b _06016A78 + b _06016A78 + b _06016A00 + b _06016A78 + b _06016A34 + b _06016A40 + b _06016A4C +_06016A00: + mov r0, r6 + bl FUN_06017FDC + b _06016A78 +_06016A0C: + mov r0, r6 + bl FUN_06017BE0 + b _06016A78 +_06016A18: + mov r0, r6 + bl FUN_06017900 + b _06016A78 +_06016A24: + mov r0, r6 + mov r1, #0 + bl FUN_0601745C + b _06016A78 +_06016A34: + mov r0, r6 + bl FUN_06017EE8 + b _06016A78 +_06016A40: + mov r0, r6 + bl FUN_06016F18 + b _06016A78 +_06016A4C: + mov r0, r6 + bl FUN_06016E5C + b _06016A78 +_06016A58: + cmp r5, #1 + bne _06016A78 + cmp r4, #14 + beq _06016A70 + cmp r4, #15 + bne _06016A78 +_06016A70: + mov r0, r6 + bl FUN_06016DF0 +_06016A78: + add r0, r9, #96 ; 0x60 + ldr r1, [sp] + bl FUN_060096A0 + ldrh r0, [r9, #104] ; 0x68 + cmp r0, #0 + beq _06016A9C + mov r0, #1 + mov r1, #7 + bl FUN_06009078 +_06016A9C: + add sp, sp, #12 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06016AA8: .word 0x0380FFF4 +_06016AAC: .word 0x0000053C + + arm_func_start FUN_06016AB0 +FUN_06016AB0: ; 0x06016AB0 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #4 + mov r9, r0 + ldr r0, _06016DEC ; =0x0380FFF4 + ldr r0, [r0] + add r8, r0, #836 ; 0x344 + ldr r7, [r9] + ldrh r0, [r8, #122] ; 0x7a + strh r0, [r9, #18] + ldrh r0, [r9, #12] + ands r0, r0, #2048 ; 0x800 + ldrneh r0, [r9, #10] + orrne r0, r0, #1 + strneh r0, [r9, #10] + ldrh r6, [r9, #8] + add r4, r9, #12 + add fp, r9, #20 + b _06016D5C +_06016AF8: + mov r0, r7 + bl FUN_06009CB0 + mov sl, r0 + add r0, r7, #1 + add r7, r7, #2 + bl FUN_06009CB0 + mov r5, r0 + cmp sl, #6 + addls pc, pc, sl, lsl #2 + b _06016B3C + b _06016B48 + b _06016BB4 + b _06016D50 + b _06016C20 + b _06016C94 + b _06016C74 + b _06016D50 +_06016B3C: + cmp sl, #221 ; 0xdd + beq _06016CB4 + b _06016D34 +_06016B48: + cmp r5, #32 + bhi _06016D50 + ldrh r0, [r4] + orr r0, r0, #1 + strh r0, [r4] + sub r0, r7, #2 + str r0, [r9, #28] + cmp r5, #0 + bne _06016B84 + ldrh r0, [r9, #12] + ands r0, r0, #2048 ; 0x800 + ldrneh r0, [r9, #10] + orrne r0, r0, #1 + strneh r0, [r9, #10] + bne _06016D50 +_06016B84: + ldrh r0, [r9, #10] + bic r0, r0, #1 + strh r0, [r9, #10] + mov r0, r5, lsl #16 + mov r0, r0, lsr #16 + mov r1, r7 + bl FUN_0600ABB4 + cmp r0, #0 + ldrneh r0, [r9, #10] + orrne r0, r0, #1 + strneh r0, [r9, #10] + b _06016D50 +_06016BB4: + cmp r5, #1 + bcc _06016D50 + ldrh r0, [r4] + orr r0, r0, #4 + strh r0, [r4] + sub r0, r7, #2 + mov r1, fp + bl FUN_0600AA9C + ldrh r1, [r9, #20] + ldrh r0, [r8, #96] ; 0x60 + ldrh r2, [r8, #98] ; 0x62 + orr r2, r0, r2 + mvn r2, r2 + ands r2, r1, r2 + bne _06016C10 + ldrh r2, [r9, #22] + orr r1, r1, r2 + and r1, r0, r1 + cmp r0, r1 + ldreqh r0, [r9, #10] + orreq r0, r0, #4 + streqh r0, [r9, #10] + beq _06016D50 +_06016C10: + ldrh r0, [r9, #10] + bic r0, r0, #4 + strh r0, [r9, #10] + b _06016D50 +_06016C20: + cmp r5, #1 + bcc _06016D50 + ldrh r0, [r4] + orr r0, r0, #2 + strh r0, [r4] + mov r0, r7 + bl FUN_06009CB0 + strh r0, [r9, #18] + ldrh r1, [r9, #18] + ldr r0, _06016DEC ; =0x0380FFF4 + ldr r0, [r0] + ldr r0, [r0, #1052] ; 0x41c + ldrh r0, [r0, #74] ; 0x4a + cmp r1, r0 + ldreqh r0, [r9, #10] + orreq r0, r0, #2 + streqh r0, [r9, #10] + ldrneh r0, [r9, #10] + bicne r0, r0, #2 + strneh r0, [r9, #10] + b _06016D50 +_06016C74: + cmp r5, #3 + bcc _06016D50 + ldrh r0, [r9, #12] + orr r0, r0, #256 ; 0x100 + strh r0, [r9, #12] + sub r0, r7, #2 + str r0, [r9, #36] ; 0x24 + b _06016D50 +_06016C94: + cmp r5, #6 + bcc _06016D50 + ldrh r0, [r9, #12] + orr r0, r0, #512 ; 0x200 + strh r0, [r9, #12] + sub r0, r7, #2 + str r0, [r9, #32] + b _06016D50 +_06016CB4: + cmp r5, #8 + bcc _06016CFC + mov r0, r7 + bl FUN_06009CB0 + cmp r0, #0 + bne _06016CFC + add r0, r7, #1 + bl FUN_06009CB0 + cmp r0, #9 + bne _06016CFC + add r0, r7, #2 + bl FUN_06009CB0 + cmp r0, #191 ; 0xbf + bne _06016CFC + add r0, r7, #3 + bl FUN_06009CB0 + cmp r0, #0 + beq _06016D1C +_06016CFC: + ldrh r0, [r9, #24] + add r0, r0, #1 + strh r0, [r9, #24] + ldrh r1, [r9, #26] + add r0, r5, #2 + add r0, r1, r0 + strh r0, [r9, #26] + b _06016D50 +_06016D1C: + ldrh r0, [r9, #12] + orr r0, r0, #1024 ; 0x400 + strh r0, [r9, #12] + sub r0, r7, #2 + str r0, [r9, #40] ; 0x28 + b _06016D50 +_06016D34: + ldrh r0, [r9, #24] + add r0, r0, #1 + strh r0, [r9, #24] + ldrh r1, [r9, #26] + add r0, r5, #2 + add r0, r1, r0 + strh r0, [r9, #26] +_06016D50: + add r7, r7, r5 + add r0, r5, #2 + sub r6, r6, r0 +_06016D5C: + cmp r6, #0 + bgt _06016AF8 + ldrh r0, [r9, #12] + ands r0, r0, #8 + beq _06016D94 + ldrh r0, [r8, #100] ; 0x64 + ands r0, r0, #1 + bne _06016D88 + ldrh r0, [r9, #4] + ands r0, r0, #32768 ; 0x8000 + beq _06016D94 +_06016D88: + ldrh r0, [r9, #10] + orr r0, r0, #8 + strh r0, [r9, #10] +_06016D94: + ldrh r0, [r9, #12] + ands r0, r0, #48 ; 0x30 + beq _06016DE0 + ldrh r0, [r9, #6] + and r1, r0, #3 + ldrh r0, [r8, #124] ; 0x7c + and r0, r0, #3 + cmp r1, r0 + ldreqh r0, [r9, #10] + orreq r0, r0, #16 + streqh r0, [r9, #10] + ldrh r0, [r9, #6] + and r1, r0, #16 + ldrh r0, [r8, #124] ; 0x7c + and r0, r0, #16 + cmp r1, r0 + ldreqh r0, [r9, #10] + orreq r0, r0, #32 + streqh r0, [r9, #10] +_06016DE0: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06016DEC: .word 0x0380FFF4 + + arm_func_start FUN_06016DF0 +FUN_06016DF0: ; 0x06016DF0 + bx lr + + arm_func_start FUN_06016DF4 +FUN_06016DF4: ; 0x06016DF4 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r1, _06016E58 ; =0x0380FFF4 + ldr r1, [r1] + add r5, r1, #380 ; 0x17c + ldrh r4, [r0, #2] + mov r0, r4 + bl FUN_0600EFF0 + cmp r0, #64 ; 0x40 + bne _06016E4C + mov r0, r4 + bl FUN_0600F1B4 + ldrh r0, [r5, #44] ; 0x2c + cmp r0, #0 + beq _06016E38 + mov r0, #1 + bl FUN_06015C78 +_06016E38: + ldrh r0, [r5, #32] + cmp r0, #0 + beq _06016E4C + mov r0, #0 + bl FUN_06015C78 +_06016E4C: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06016E58: .word 0x0380FFF4 + + arm_func_start FUN_06016E5C +FUN_06016E5C: ; 0x06016E5C + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r0, _06016F14 ; =0x0380FFF4 + ldr r0, [r0] + add r1, r0, #836 ; 0x344 + ldrh r5, [r4, #2] + ldrh r0, [r1, #12] + cmp r0, #1 + beq _06016E98 + cmp r0, #2 + beq _06016ED0 + cmp r0, #3 + beq _06016ED0 + b _06016F08 +_06016E98: + mov r0, r5 + bl FUN_0600EFF0 + cmp r0, #32 + bls _06016F08 + mov r0, r5, lsl #16 + mov r0, r0, lsr #16 + mov r1, #32 + bl FUN_0600F294 + add r0, r4, #30 + ldrh r1, [r4, #44] ; 0x2c + bl FUN_06010130 + mov r0, r5 + bl FUN_06014EB8 + b _06016F08 +_06016ED0: + ldrh r0, [r1, #8] + cmp r0, #32 + bls _06016F08 + add r0, r4, #30 + add r1, r1, #130 ; 0x82 + bl FUN_0600AB78 + cmp r0, #0 + beq _06016F08 + mov r0, #32 + bl FUN_0600AF68 + bl FUN_0600B054 + add r0, r4, #30 + ldrh r1, [r4, #44] ; 0x2c + bl FUN_06010130 +_06016F08: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06016F14: .word 0x0380FFF4 + + arm_func_start FUN_06016F18 +FUN_06016F18: ; 0x06016F18 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #4 + mov sl, r0 + ldr r0, _06017444 ; =0x0380FFF4 + ldr r1, [r0] + add r9, r1, #836 ; 0x344 + ldr r0, _06017448 ; =0x00000404 + add r8, r1, r0 + add r7, sl, #44 ; 0x2c + add r0, r1, #1536 ; 0x600 + ldrh r0, [r0, #144] ; 0x90 + ands r0, r0, #8 + beq _06016FCC + ldr r0, _0601744C ; =0x0000042C + add r2, r1, r0 + ldr r0, _06017450 ; =0x048080B0 + ldrh r1, [r0] + ands r0, r1, #1 + beq _06016F70 + ldrh r0, [r2] + cmp r0, #0 + bne _06016FCC +_06016F70: + ands r0, r1, #4 + beq _06016F84 + ldrh r0, [r2, #20] + cmp r0, #0 + bne _06016FCC +_06016F84: + ands r0, r1, #8 + beq _06016F98 + ldrh r0, [r2, #40] ; 0x28 + cmp r0, #0 + bne _06016FCC +_06016F98: + ldr r0, _06017454 ; =0x0480819C + ldrh r0, [r0] + ands r0, r0, #1 + bne _06016FCC + mov r2, #0 + ldr r1, _06017458 ; =0x04808032 + strh r2, [r1] + mov r0, #32768 ; 0x8000 + strh r0, [r1] + ldr r0, _06017444 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1024 ; 0x400 + strh r2, [r0, #222] ; 0xde +_06016FCC: + add r0, sl, #30 + mov r1, #176 ; 0xb0 + bl FUN_06013D80 + cmp r0, #0 + bne _06017438 + mov r5, #0 + ldrh r0, [r7, #2] + add r0, r0, #1 + mov r0, r0, lsl #16 + mov fp, r0, lsr #16 + ldrh r6, [sl, #2] + cmp r6, #0 + moveq r4, #19 + moveq r5, #1 + beq _060173FC + ldrh r0, [r9, #12] + cmp r0, #1 + bne _0601707C + mov r0, r6 + bl FUN_0600EFF0 + cmp r0, #32 + bls _06017040 + mov r0, r6, lsl #16 + mov r0, r0, lsr #16 + mov r1, #32 + bl FUN_0600F294 + add r0, sl, #30 + mov r1, #1 + bl FUN_06010130 +_06017040: + ldrh r0, [sl, #8] + ands r0, r0, #1024 ; 0x400 + beq _0601707C + mov r0, r6 + bl FUN_0600EF78 + cmp r0, #0 + beq _0601707C + mov r5, #1 + strh r5, [r7] + mov r4, #15 + mov fp, #4 + mov r0, r6 + mov r1, #0 + bl FUN_0600F154 + b _060173FC +_0601707C: + ldrh r0, [r7] + cmp r0, #0 + beq _06017094 + cmp r0, #1 + beq _0601718C + b _060173EC +_06017094: + ldrh r1, [r9, #12] + cmp r1, #1 + bne _060170C0 + ldr r0, _06017444 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #50] ; 0x32 + cmp r0, #1 + moveq r4, #13 + moveq r5, #1 + beq _060173FC +_060170C0: + cmp r1, #1 + bne _060170E8 + ldrh r0, [r7, #2] + cmp r0, #1 + moveq r4, #0 + moveq r5, #1 + movne r4, #14 + movne fp, #2 + movne r5, #1 + b _060173FC +_060170E8: + cmp r1, #1 + beq _060173FC + ldrh r0, [r7, #2] + cmp r0, #2 + bne _060173FC + ldr r1, [r8, #24] + ldrh r0, [r1, #22] + cmp r0, #0 + bne _060173FC + add r0, r1, #16 + add r1, sl, #30 + bl FUN_0600AB78 + cmp r0, #0 + beq _060173FC + ldrh r0, [r8] + cmp r0, #49 ; 0x31 + bne _060173FC + bl FUN_06009E28 + ldrh r0, [r7, #4] + cmp r0, #0 + bne _0601715C + mov r0, #48 ; 0x30 + bl FUN_0600AF68 + mov r1, #0 + ldr r0, [r8, #28] + strh r1, [r0, #4] + ldr r0, [r8, #28] + strh r1, [r0, #6] + b _06017174 +_0601715C: + mov r1, #12 + ldr r0, [r8, #28] + strh r1, [r0, #4] + ldrh r1, [r7, #4] + ldr r0, [r8, #28] + strh r1, [r0, #6] +_06017174: + mov r0, #53 ; 0x35 + strh r0, [r8] + mov r0, #2 + mov r1, r0 + bl FUN_06009078 + b _060173FC +_0601718C: + ldrh r0, [r9, #12] + cmp r0, #1 + bne _06017288 + mov r0, r6, lsl #16 + mov r0, r0, lsr #16 + mov r1, #32 + bl FUN_0600F294 + ldrh r0, [r7, #2] + cmp r0, #1 + bne _060171F8 + add r0, sl, #30 + mov r1, #128 ; 0x80 + mov r2, #1 + bl FUN_06013F38 + movs r8, r0 + beq _060173FC + ldrh r0, [r7] + strh r0, [r8, #44] ; 0x2c + strh fp, [r8, #46] ; 0x2e + mov r0, #0 + strh r0, [r8, #48] ; 0x30 + mov r0, r6 + mov r1, r8 + bl FUN_060166F0 + mov r0, r8 + bl FUN_06014C6C + b _060173FC +_060171F8: + cmp r0, #3 + bne _0601726C + mov r0, r6 + bl FUN_0600EFF0 + cmp r0, #32 + bne _06017220 + mov r0, r6 + bl FUN_0600EF78 + cmp r0, #0 + bne _0601722C +_06017220: + mov r4, #1 + mov r5, r4 + b _060173FC +_0601722C: + mov r0, sl + bl FUN_06016668 + cmp r0, #0 + bne _06017254 + mov r4, #15 + mov r5, #1 + mov r0, r6 + mov r1, #0 + bl FUN_0600F154 + b _060173FC +_06017254: + mov r0, r6 + mov r1, #0 + bl FUN_0600F154 + mov r4, #0 + mov r5, #1 + b _060173FC +_0601726C: + mov r0, r6 + mov r1, #0 + bl FUN_0600F154 + mov r4, #14 + mov fp, #2 + mov r5, #1 + b _060173FC +_06017288: + ldr r1, [r8, #24] + ldrh r0, [r1, #22] + cmp r0, #1 + bne _060173FC + add r0, r1, #16 + add r1, sl, #30 + bl FUN_0600AB78 + cmp r0, #0 + beq _060173FC + ldrh r0, [r7, #2] + cmp r0, #2 + bne _06017378 + ldrh r0, [r8] + cmp r0, #49 ; 0x31 + bne _060173FC + ldrh r0, [r7, #4] + cmp r0, #0 + beq _0601730C + bl FUN_06009E28 + mov r0, #53 ; 0x35 + strh r0, [r8] + mov r1, #12 + ldr r0, [r8, #28] + strh r1, [r0, #4] + ldrh r1, [r7, #4] + ldr r0, [r8, #28] + strh r1, [r0, #6] + mov r0, #2 + mov r1, r0 + bl FUN_06009078 + mov r0, #32 + bl FUN_0600AF68 + b _060173FC +_0601730C: + mov r0, #51 ; 0x33 + strh r0, [r8] + add r0, sl, #51 ; 0x33 + bl FUN_06009CB0 + mov r1, r0 + add r0, sl, #30 + mov r2, #1 + bl FUN_06013F38 + movs r6, r0 + beq _060173FC + ldrh r0, [r6, #20] + orr r0, r0, #16384 ; 0x4000 + strh r0, [r6, #20] + add r0, sl, #44 ; 0x2c + add r1, r6, #44 ; 0x2c + ldrh r2, [sl, #6] + add r2, r2, #1 + bl FUN_06000EA0 + ldrh r0, [r7] + strh r0, [r6, #44] ; 0x2c + mov r0, #3 + strh r0, [r6, #46] ; 0x2e + mov r0, #0 + strh r0, [r6, #48] ; 0x30 + mov r0, r6 + bl FUN_06014C6C + b _060173FC +_06017378: + cmp r0, #4 + bne _060173FC + ldrh r0, [r8] + cmp r0, #51 ; 0x33 + bne _060173FC + bl FUN_06009E28 + ldrh r0, [r7, #4] + cmp r0, #0 + bne _060173BC + mov r0, #48 ; 0x30 + bl FUN_0600AF68 + mov r1, #0 + ldr r0, [r8, #28] + strh r1, [r0, #4] + ldr r0, [r8, #28] + strh r1, [r0, #6] + b _060173D4 +_060173BC: + mov r1, #12 + ldr r0, [r8, #28] + strh r1, [r0, #4] + ldrh r1, [r7, #4] + ldr r0, [r8, #28] + strh r1, [r0, #6] +_060173D4: + mov r0, #53 ; 0x35 + strh r0, [r8] + mov r0, #2 + mov r1, r0 + bl FUN_06009078 + b _060173FC +_060173EC: + ldrh r0, [r9, #12] + cmp r0, #1 + moveq r4, #13 + moveq r5, #1 +_060173FC: + cmp r5, #0 + beq _06017438 + cmp r4, #0 + movne r2, #1 + moveq r2, #0 + add r0, sl, #30 + mov r1, #0 + bl FUN_06013F38 + cmp r0, #0 + beq _06017438 + ldrh r1, [r7] + strh r1, [r0, #44] ; 0x2c + strh fp, [r0, #46] ; 0x2e + strh r4, [r0, #48] ; 0x30 + bl FUN_06014C6C +_06017438: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06017444: .word 0x0380FFF4 +_06017448: .word 0x00000404 +_0601744C: .word 0x0000042C +_06017450: .word 0x048080B0 +_06017454: .word 0x0480819C +_06017458: .word 0x04808032 + + arm_func_start FUN_0601745C +FUN_0601745C: ; 0x0601745C + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #52 ; 0x34 + mov r5, r0 + mov sl, r1 + ldr r0, _06017840 ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06017844 ; =0x00000404 + add r9, r1, r0 + add r0, r1, #1024 ; 0x400 + ldrh r0, [r0, #4] + cmp r0, #19 + bne _06017834 + ldr r8, [r9, #28] + add r4, r5, #44 ; 0x2c + ldr r0, [r9, #24] + add r6, r0, #78 ; 0x4e + mov r7, #0 + add fp, r5, #36 ; 0x24 + b _060174D4 +_060174A8: + mov r0, r6 + mov r1, fp + bl FUN_0600AB78 + cmp r0, #0 + ldrneh r1, [r8, #6] + movne r0, #1 + orrne r0, r1, r0, lsl r7 + strneh r0, [r8, #6] + bne _06017834 + add r6, r6, #6 + add r7, r7, #1 +_060174D4: + ldr r0, [r9, #24] + ldrh r0, [r0, #76] ; 0x4c + cmp r7, r0 + bcc _060174A8 + add r7, r8, #10 + mov r6, #0 + add fp, r5, #36 ; 0x24 + b _06017514 +_060174F4: + mov r0, fp + add r1, r7, #4 + bl FUN_0600AB78 + cmp r0, #0 + bne _06017834 + ldrh r0, [r7] + add r7, r7, r0, lsl #1 + add r6, r6, #1 +_06017514: + ldrh r0, [r8, #8] + cmp r6, r0 + bcc _060174F4 + mov r0, #0 + mov r1, r7 + mov r2, #64 ; 0x40 + bl FUN_0600055C + ldrh r6, [r5, #6] + cmp r6, #12 + bls _06017834 + cmp sl, #0 + bne _06017590 + mov r0, #0 + add r1, sp, #8 + mov r2, #44 ; 0x2c + bl FUN_0600AEC4 + add r0, r4, #12 + str r0, [sp, #8] + sub r0, r6, #12 + strh r0, [sp, #16] + mov r0, #3 + strh r0, [sp, #18] + mov r0, #56 ; 0x38 + strh r0, [sp, #20] + ldrh r0, [r5, #8] + strh r0, [sp, #12] + ldrh r0, [r4, #10] + strh r0, [sp, #14] + add r0, sp, #8 + bl FUN_06016AB0 + add sl, sp, #8 +_06017590: + ldr r0, [sl, #40] ; 0x28 + cmp r0, #0 + ldreqh r0, [sl, #26] + addeq r0, r0, #65 ; 0x41 + moveq r0, r0, lsr #1 + streqh r0, [r7] + beq _060175CC + add r0, r0, #1 + bl FUN_06009CB0 + sub r0, r0, #8 + strh r0, [r7, #60] ; 0x3c + ldrh r0, [r7, #60] ; 0x3c + add r0, r0, #65 ; 0x41 + mov r0, r0, lsr #1 + strh r0, [r7] +_060175CC: + ldrh r0, [sl, #10] + and r0, r0, #1 + cmp r0, #1 + bne _06017828 + ldr r0, _06017840 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #1024 ; 0x400 + ldrh r1, [r0, #8] + ldrh r0, [r7] + cmp r1, r0 + bcc _06017828 + ldrh r0, [r4, #10] + strh r0, [r7, #44] ; 0x2c + add r0, r7, #4 + add r1, r5, #36 ; 0x24 + bl FUN_0600AF4C + ldrh r0, [r4, #8] + strh r0, [r7, #50] ; 0x32 + ldrh r0, [r5, #18] + and r0, r0, #255 ; 0xff + strh r0, [r7, #2] + ldr r0, [sl, #40] ; 0x28 + cmp r0, #0 + beq _06017668 + mov r4, #0 + add r5, r7, #64 ; 0x40 + b _06017658 +_06017638: + ldr r0, [sl, #40] ; 0x28 + add r0, r0, #10 + add r0, r0, r4 + bl FUN_06009CB0 + mov r1, r0 + add r0, r5, r4 + bl FUN_06009CD0 + add r4, r4, #1 +_06017658: + ldrh r0, [r7, #60] ; 0x3c + cmp r4, r0 + bcc _06017638 + b _06017710 +_06017668: + ldrh r0, [sl, #24] + strh r0, [r7, #62] ; 0x3e + ldrh r0, [sl, #24] + cmp r0, #0 + beq _06017710 + add r6, r4, #12 + add fp, r7, #64 ; 0x40 + mov r5, #0 + str r5, [sp] + b _06017704 +_06017690: + mov r0, r6 + bl FUN_06009CB0 + mov r4, r0 + add r0, r6, #1 + bl FUN_06009CB0 + cmp r4, #6 + bls _060176FC + ldr r1, [sl, #40] ; 0x28 + cmp r6, r1 + beq _060176FC + ldr r4, [sp] + add r0, r0, #2 + str r0, [sp, #4] + b _060176E8 +_060176C8: + mov r0, r6 + bl FUN_06009CB0 + mov r1, r0 + mov r0, fp + bl FUN_06009CD0 + add fp, fp, #1 + add r6, r6, #1 + add r4, r4, #1 +_060176E8: + ldr r0, [sp, #4] + cmp r4, r0 + bcc _060176C8 + add r5, r5, #1 + b _06017704 +_060176FC: + add r0, r0, #2 + add r6, r6, r0 +_06017704: + ldrh r0, [sl, #24] + cmp r5, r0 + bcc _06017690 +_06017710: + ldr r0, [sl, #28] + cmp r0, #0 + beq _06017764 + add r0, r0, #1 + bl FUN_06009CB0 + strh r0, [r7, #10] + mov r4, #0 + add r5, r7, #12 + b _06017754 +_06017734: + ldr r0, [sl, #28] + add r0, r0, #2 + add r0, r0, r4 + bl FUN_06009CB0 + mov r1, r0 + add r0, r5, r4 + bl FUN_06009CD0 + add r4, r4, #1 +_06017754: + ldrh r0, [r7, #10] + cmp r4, r0 + bcc _06017734 + b _0601778C +_06017764: + mov r6, #0 + strh r6, [r7, #10] + add r5, r7, #12 + mov r4, r6 +_06017774: + add r0, r5, r6 + mov r1, r4 + bl FUN_06009CD0 + add r6, r6, #1 + cmp r6, #32 + bcc _06017774 +_0601778C: + ldrh r0, [sl, #20] + strh r0, [r7, #46] ; 0x2e + ldrh r0, [sl, #22] + strh r0, [r7, #48] ; 0x30 + ldrh r0, [sl, #18] + strh r0, [r7, #54] ; 0x36 + ldr r0, [sl, #32] + cmp r0, #0 + beq _060177BC + add r0, r0, #3 + bl FUN_06009CB0 + strh r0, [r7, #56] ; 0x38 +_060177BC: + ldr r0, [sl, #36] ; 0x24 + cmp r0, #0 + beq _060177D4 + add r0, r0, #3 + bl FUN_06009CB0 + strh r0, [r7, #52] ; 0x34 +_060177D4: + ldrh r1, [r8, #2] + ldrh r0, [r7] + add r0, r1, r0 + strh r0, [r8, #2] + ldrh r0, [r8, #8] + add r0, r0, #1 + strh r0, [r8, #8] + ldrh r1, [r9, #4] + ldrh r0, [r7] + sub r0, r1, r0 + strh r0, [r9, #4] + ldrh r0, [r9, #4] + cmp r0, #32 + bcs _06017834 + bl FUN_06009E28 + mov r0, #21 + strh r0, [r9] + mov r0, #2 + mov r1, #0 + bl FUN_06009078 + b _06017834 +_06017828: + add r0, r7, #4 + ldr r1, _06017848 ; =_06019394 + bl FUN_0600AF4C +_06017834: + add sp, sp, #52 ; 0x34 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06017840: .word 0x0380FFF4 +_06017844: .word 0x00000404 +_06017848: .word _06019394 + + arm_func_start FUN_0601784C +FUN_0601784C: ; 0x0601784C + stmdb sp!, {r4, lr} + sub sp, sp, #48 ; 0x30 + mov r4, r0 + add r0, r4, #30 + mov r1, #80 ; 0x50 + bl FUN_06013D80 + cmp r0, #0 + bne _060178F0 + ldrh r0, [r4, #36] ; 0x24 + ands r0, r0, #1 + bne _06017884 + ldrh r0, [r4, #8] + ands r0, r0, #32768 ; 0x8000 + beq _060178F0 +_06017884: + mov r0, #0 + add r1, sp, #0 + mov r2, #44 ; 0x2c + bl FUN_0600AEC4 + add r0, r4, #44 ; 0x2c + str r0, [sp] + ldrh r0, [r4, #6] + strh r0, [sp, #8] + ldr r0, _060178FC ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #58] ; 0x3a + mov r0, r0, lsl #30 + movs r0, r0, lsr #31 + moveq r0, #2048 ; 0x800 + streqh r0, [sp, #12] + add r0, sp, #0 + bl FUN_06016AB0 + ldrh r0, [sp, #10] + and r0, r0, #1 + cmp r0, #1 + bne _060178F0 + add r0, r4, #30 + bl FUN_06013FFC + cmp r0, #0 + beq _060178F0 + bl FUN_06014C6C +_060178F0: + add sp, sp, #48 ; 0x30 + ldmia sp!, {r4, lr} + bx lr +_060178FC: .word 0x0380FFF4 + + arm_func_start FUN_06017900 +FUN_06017900: ; 0x06017900 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + ldr r0, _06017A28 ; =0x0380FFF4 + ldr r1, [r0] + add r6, r1, #836 ; 0x344 + ldr r0, _06017A2C ; =0x00000404 + add r5, r1, r0 + add r4, r7, #44 ; 0x2c + ldrh r0, [r6, #12] + cmp r0, #2 + beq _06017938 + cmp r0, #3 + bne _06017A1C +_06017938: + ldrh r0, [r5] + cmp r0, #97 ; 0x61 + bne _06017A1C + ldr r0, [r5, #24] + add r0, r0, #16 + add r1, r7, #30 + bl FUN_0600AB78 + cmp r0, #0 + beq _06017A1C + bl FUN_06009E28 + ldrh r0, [r4, #2] + cmp r0, #0 + bne _060179B8 + ldrh r1, [r4, #4] + ldr r0, _06017A30 ; =0x00000FFF + and r0, r1, r0 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + bl FUN_0600B0B0 + ldrh r0, [r6, #106] ; 0x6a + bl FUN_06013E48 + add r0, r6, #130 ; 0x82 + add r1, r7, #30 + bl FUN_0600AF4C + add r0, r7, #30 + bl FUN_0600F608 + strh r0, [r6, #136] ; 0x88 + ldrh r0, [r6, #136] ; 0x88 + mov r1, #64 ; 0x40 + bl FUN_0600F294 + mov r0, #64 ; 0x40 + bl FUN_0600AF68 +_060179B8: + ldrh r0, [r4, #2] + cmp r0, #0 + bne _060179E4 + mov r1, #0 + ldr r0, [r5, #28] + strh r1, [r0, #4] + ldr r0, [r5, #28] + strh r1, [r0, #6] + mov r0, #64 ; 0x40 + bl FUN_0600AF68 + b _060179FC +_060179E4: + mov r1, #12 + ldr r0, [r5, #28] + strh r1, [r0, #4] + ldrh r1, [r4, #2] + ldr r0, [r5, #28] + strh r1, [r0, #6] +_060179FC: + ldrh r1, [r6, #106] ; 0x6a + ldr r0, [r5, #28] + strh r1, [r0, #8] + mov r0, #99 ; 0x63 + strh r0, [r5] + mov r0, #2 + mov r1, #4 + bl FUN_06009078 +_06017A1C: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06017A28: .word 0x0380FFF4 +_06017A2C: .word 0x00000404 +_06017A30: .word 0x00000FFF + + arm_func_start FUN_06017A34 +FUN_06017A34: ; 0x06017A34 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + sub sp, sp, #48 ; 0x30 + mov r8, r0 + ldr r0, _06017BD8 ; =0x0380FFF4 + ldr r7, [r0] + ldrh r5, [r8, #6] + add r6, r8, #44 ; 0x2c + cmp r5, #10 + bls _06017BCC + add r0, r7, #768 ; 0x300 + ldrh r0, [r0, #80] ; 0x50 + cmp r0, #1 + bne _06017BCC + add r0, r8, #30 + mov r1, #48 ; 0x30 + bl FUN_06013D80 + cmp r0, #0 + bne _06017BCC + ldrh r4, [r8, #2] + mov r0, r4 + bl FUN_0600EFF0 + cmp r0, #48 ; 0x30 + bcs _06017AC4 + add r0, r8, #30 + mov r1, #192 ; 0xc0 + bl FUN_06013D80 + cmp r0, #0 + bne _06017BCC + add r0, r8, #30 + mov r1, #6 + mov r2, #1 + bl FUN_06013E9C + cmp r0, #0 + beq _06017BCC + bl FUN_06014C6C + b _06017BCC +_06017AC4: + mov r0, r4 + bl FUN_0600EFF0 + cmp r0, #64 ; 0x40 + bne _06017AF0 + mov r0, r4 + mov r1, #48 ; 0x30 + bl FUN_0600F294 + add r0, r8, #30 + mov r1, #1 + bl FUN_0600FEC8 + b _06017B00 +_06017AF0: + mov r0, r4 + bl FUN_0600EF18 + cmp r0, #0 + bne _06017BCC +_06017B00: + mov r0, #0 + add r1, sp, #0 + mov r2, #44 ; 0x2c + bl FUN_0600AEC4 + add r0, r6, #10 + str r0, [sp] + sub r0, r5, #10 + strh r0, [sp, #8] + mov r0, #2048 ; 0x800 + strh r0, [sp, #12] + add r0, sp, #0 + bl FUN_06016AB0 + ldrh r1, [r6] + ldr r0, _06017BDC ; =0x0000FFC2 + ands r0, r1, r0 + bne _06017B78 + add r0, r7, #768 ; 0x300 + ldrh r2, [r0, #52] ; 0x34 + cmp r2, #0 + bne _06017B60 + mov r0, r1, lsl #27 + mov r0, r0, lsr #31 + cmp r0, #1 + beq _06017B78 +_06017B60: + cmp r2, #0 + beq _06017B80 + ldrh r0, [r6] + mov r0, r0, lsl #27 + movs r0, r0, lsr #31 + bne _06017B80 +_06017B78: + mov r1, #10 + b _06017BB4 +_06017B80: + mov r0, r4 + bl FUN_0600F19C + ldrh r1, [sp, #10] + ands r0, r1, #1 + moveq r1, #1 + beq _06017BB4 + ands r0, r1, #4 + moveq r1, #18 + beq _06017BB4 + mov r0, r4 + ldrh r1, [sp, #22] + bl FUN_0600F184 + mov r1, #0 +_06017BB4: + mov r0, r4 + ldr r2, [sp, #28] + bl FUN_06014174 + cmp r0, #0 + beq _06017BCC + bl FUN_06014C6C +_06017BCC: + add sp, sp, #48 ; 0x30 + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_06017BD8: .word 0x0380FFF4 +_06017BDC: .word 0x0000FFC2 + + arm_func_start FUN_06017BE0 +FUN_06017BE0: ; 0x06017BE0 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + ldr r0, _06017D00 ; =0x0380FFF4 + ldr r1, [r0] + add r6, r1, #836 ; 0x344 + ldr r0, _06017D04 ; =0x00000404 + add r5, r1, r0 + add r4, r7, #44 ; 0x2c + ldrh r0, [r6, #12] + cmp r0, #2 + beq _06017C18 + cmp r0, #3 + bne _06017CF4 +_06017C18: + ldrh r0, [r5] + cmp r0, #81 ; 0x51 + bne _06017CF4 + ldr r0, [r5, #24] + add r0, r0, #16 + add r1, r7, #30 + bl FUN_0600AB78 + cmp r0, #0 + beq _06017CF4 + bl FUN_06009E28 + ldrh r0, [r4, #2] + cmp r0, #0 + bne _06017C90 + ldrh r1, [r4, #4] + ldr r0, _06017D08 ; =0x00000FFF + and r0, r1, r0 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + bl FUN_0600B0B0 + ldrh r0, [r6, #106] ; 0x6a + bl FUN_06013E48 + add r0, r6, #130 ; 0x82 + add r1, r7, #30 + bl FUN_0600AF4C + add r0, r7, #30 + bl FUN_0600F608 + strh r0, [r6, #136] ; 0x88 + ldrh r0, [r6, #136] ; 0x88 + mov r1, #64 ; 0x40 + bl FUN_0600F294 +_06017C90: + ldrh r0, [r4, #2] + cmp r0, #0 + bne _06017CBC + mov r1, #0 + ldr r0, [r5, #28] + strh r1, [r0, #4] + ldr r0, [r5, #28] + strh r1, [r0, #6] + mov r0, #64 ; 0x40 + bl FUN_0600AF68 + b _06017CD4 +_06017CBC: + mov r1, #12 + ldr r0, [r5, #28] + strh r1, [r0, #4] + ldrh r1, [r4, #2] + ldr r0, [r5, #28] + strh r1, [r0, #6] +_06017CD4: + ldrh r1, [r6, #106] ; 0x6a + ldr r0, [r5, #28] + strh r1, [r0, #8] + mov r0, #83 ; 0x53 + strh r0, [r5] + mov r0, #2 + mov r1, #3 + bl FUN_06009078 +_06017CF4: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06017D00: .word 0x0380FFF4 +_06017D04: .word 0x00000404 +_06017D08: .word 0x00000FFF + + arm_func_start FUN_06017D0C +FUN_06017D0C: ; 0x06017D0C + stmdb sp!, {r4, r5, r6, r7, r8, lr} + sub sp, sp, #48 ; 0x30 + mov r8, r0 + ldr r0, _06017EE0 ; =0x0380FFF4 + ldr r0, [r0] + add r7, r0, #796 ; 0x31c + ldrh r5, [r8, #6] + add r6, r8, #44 ; 0x2c + cmp r5, #4 + bls _06017ED4 + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #80] ; 0x50 + cmp r0, #1 + bne _06017ED4 + add r0, r8, #30 + mov r1, #16 + bl FUN_06013D80 + cmp r0, #0 + bne _06017ED4 + ldrh r4, [r8, #2] + cmp r4, #0 + beq _06017D74 + mov r0, r4 + bl FUN_0600EFF0 + cmp r0, #48 ; 0x30 + bcs _06017DA8 +_06017D74: + add r0, r8, #30 + mov r1, #192 ; 0xc0 + bl FUN_06013D80 + cmp r0, #0 + bne _06017ED4 + add r0, r8, #30 + mov r1, #6 + mov r2, #1 + bl FUN_06013E9C + cmp r0, #0 + beq _06017ED4 + bl FUN_06014C6C + b _06017ED4 +_06017DA8: + mov r0, r4 + bl FUN_0600EFF0 + cmp r0, #64 ; 0x40 + bne _06017DD4 + mov r0, r4 + mov r1, #48 ; 0x30 + bl FUN_0600F294 + add r0, r8, #30 + mov r1, #1 + bl FUN_0600FEC8 + b _06017DE4 +_06017DD4: + mov r0, r4 + bl FUN_0600EF18 + cmp r0, #0 + bne _06017ED4 +_06017DE4: + mov r0, #0 + add r1, sp, #0 + mov r2, #44 ; 0x2c + bl FUN_0600AEC4 + add r0, r6, #4 + str r0, [sp] + sub r0, r5, #4 + strh r0, [sp, #8] + add r0, sp, #0 + bl FUN_06016AB0 + ldrh r1, [r6] + ldr r0, _06017EE4 ; =0x0000FFC2 + ands r0, r1, r0 + bne _06017E80 + mov r0, r1, lsl #31 + movs r0, r0, lsr #31 + beq _06017E80 + ldrh r2, [r7, #24] + cmp r2, #0 + bne _06017E44 + mov r0, r1, lsl #27 + mov r0, r0, lsr #31 + cmp r0, #1 + beq _06017E80 +_06017E44: + cmp r2, #0 + beq _06017E5C + ldrh r0, [r6] + mov r0, r0, lsl #27 + movs r0, r0, lsr #31 + beq _06017E80 +_06017E5C: + ldrh r0, [r7, #30] + mov r0, r0, lsl #29 + mov r0, r0, lsr #31 + cmp r0, #1 + bne _06017E88 + ldrh r0, [r6] + mov r0, r0, lsl #26 + movs r0, r0, lsr #31 + bne _06017E88 +_06017E80: + mov r1, #10 + b _06017EBC +_06017E88: + mov r0, r4 + bl FUN_0600F19C + ldrh r1, [sp, #10] + ands r0, r1, #1 + moveq r1, #1 + beq _06017EBC + ands r0, r1, #4 + moveq r1, #18 + beq _06017EBC + mov r0, r4 + ldrh r1, [sp, #22] + bl FUN_0600F184 + mov r1, #0 +_06017EBC: + mov r0, r4 + ldr r2, [sp, #28] + bl FUN_060142E0 + cmp r0, #0 + beq _06017ED4 + bl FUN_06014C6C +_06017ED4: + add sp, sp, #48 ; 0x30 + ldmia sp!, {r4, r5, r6, r7, r8, lr} + bx lr +_06017EE0: .word 0x0380FFF4 +_06017EE4: .word 0x0000FFC2 + + arm_func_start FUN_06017EE8 +FUN_06017EE8: ; 0x06017EE8 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r0, _06017FD8 ; =0x0380FFF4 + ldr r0, [r0] + add r1, r0, #836 ; 0x344 + ldrh r5, [r4, #2] + ldrh r0, [r1, #12] + cmp r0, #1 + beq _06017F24 + cmp r0, #2 + beq _06017F94 + cmp r0, #3 + beq _06017F94 + b _06017FCC +_06017F24: + mov r0, r5 + bl FUN_0600EFF0 + cmp r0, #64 ; 0x40 + bne _06017F5C + mov r0, r5, lsl #16 + mov r0, r0, lsr #16 + mov r1, #48 ; 0x30 + bl FUN_0600F294 + add r0, r4, #30 + ldrh r1, [r4, #44] ; 0x2c + bl FUN_0600FEC8 + mov r0, r5 + bl FUN_06014EB8 + b _06017FCC +_06017F5C: + cmp r0, #48 ; 0x30 + bne _06017F74 + add r0, r4, #30 + mov r1, #7 + bl FUN_060145BC + b _06017F84 +_06017F74: + add r0, r4, #30 + mov r1, #7 + mov r2, #1 + bl FUN_06013E9C +_06017F84: + cmp r0, #0 + beq _06017FCC + bl FUN_06014C6C + b _06017FCC +_06017F94: + ldrh r0, [r1, #8] + cmp r0, #64 ; 0x40 + bne _06017FCC + add r0, r4, #30 + add r1, r1, #130 ; 0x82 + bl FUN_0600AB78 + cmp r0, #0 + beq _06017FCC + mov r0, #48 ; 0x30 + bl FUN_0600AF68 + bl FUN_0600B054 + add r0, r4, #30 + ldrh r1, [r4, #44] ; 0x2c + bl FUN_0600FEC8 +_06017FCC: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06017FD8: .word 0x0380FFF4 + + arm_func_start FUN_06017FDC +FUN_06017FDC: ; 0x06017FDC + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #68 ; 0x44 + mov sl, r0 + ldr r0, _0601865C ; =0x0380FFF4 + ldr r1, [r0] + add r8, r1, #836 ; 0x344 + ldr r0, _06018660 ; =0x00000404 + add r7, r1, r0 + add r6, r1, #796 ; 0x31c + add r5, r1, #380 ; 0x17c + ldr r0, [r1, #1392] ; 0x570 + add r0, r0, #1 + str r0, [r1, #1392] ; 0x570 + add r0, sl, #30 + bl FUN_0600F4C0 + mov r4, r0 + mov r0, r4, lsl #16 + mov r0, r0, lsr #16 + strh r0, [sl, #2] + cmp r4, #255 ; 0xff + beq _06018650 + ldrh r1, [sl, #18] + bl FUN_0600F27C + add r9, sl, #44 ; 0x2c + ldrh fp, [sl, #6] + cmp fp, #12 + bls _06018650 + mov r0, #0 + add r1, sp, #24 + mov r2, #44 ; 0x2c + bl FUN_0600AEC4 + add r0, r9, #12 + str r0, [sp, #24] + sub r0, fp, #12 + strh r0, [sp, #32] + mov r0, #2 + strh r0, [sp, #34] ; 0x22 + ldrh r0, [r8, #30] + cmp r0, #0 + ldreqh r0, [sp, #34] ; 0x22 + orreq r0, r0, #1 + streqh r0, [sp, #34] ; 0x22 + mov r0, #56 ; 0x38 + strh r0, [sp, #36] ; 0x24 + ldrh r0, [sl, #8] + strh r0, [sp, #28] + ldrh r0, [r9, #10] + strh r0, [sp, #30] + add r0, sp, #24 + bl FUN_06016AB0 + ldr r9, [sp, #56] ; 0x38 + cmp r9, #0 + beq _060180DC + ldrh r0, [sl, #22] + ands r0, r0, #32768 ; 0x8000 + beq _060180DC + add r0, r9, #6 + bl FUN_06009CB0 + mov fp, r0 + add r0, r9, #7 + bl FUN_06009CB0 + add r1, fp, r0, lsl #8 + ldr r0, _06018664 ; =0x0480810C + strh r1, [r0] +_060180DC: + ldrh r1, [r7] + cmp r1, #19 + bne _06018118 + ldr r0, [r7, #24] + ldrh r0, [r0, #56] ; 0x38 + cmp r0, #1 + bne _06018118 + ldrh r0, [sp, #34] ; 0x22 + and r0, r0, #9 + cmp r0, #9 + bne _06018638 + mov r0, sl + add r1, sp, #24 + bl FUN_0601745C + b _06018638 +_06018118: + ldrh r0, [sp, #34] ; 0x22 + ands r0, r0, #8 + beq _06018638 + cmp r1, #33 ; 0x21 + bne _060182A0 + bl FUN_06009E28 + ldrh r0, [sp, #34] ; 0x22 + and r0, r0, #48 ; 0x30 + cmp r0, #48 ; 0x30 + movne r0, #12 + strneh r0, [r7, #4] + movne r0, #10 + strneh r0, [r7, #6] + bne _0601827C + ldrh r0, [sl, #52] ; 0x34 + cmp r0, #1000 ; 0x3e8 + movhi r0, #12 + strhih r0, [r7, #4] + movhi r0, #1 + strhih r0, [r7, #6] + bhi _0601827C + mov r1, #0 + strh r1, [r7, #4] + ldrh r0, [sp, #36] ; 0x24 + ands r0, r0, #2 + beq _06018194 + ldrh r0, [sp, #34] ; 0x22 + ands r0, r0, #2 + bne _06018194 + ldrh r0, [sp, #42] ; 0x2a + bl FUN_0600B570 +_06018194: + mov r0, r4 + ldrh r1, [sp, #46] ; 0x2e + bl FUN_0600F184 + ldrh r0, [r8, #12] + cmp r0, #2 + bne _06018224 + ldr r9, [sp, #64] ; 0x40 + cmp r9, #0 + beq _0601820C + add r0, r9, #6 + bl FUN_06009CB0 + mov fp, r0 + add r0, r9, #7 + bl FUN_06009CB0 + add r0, fp, r0, lsl #8 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + mov r1, #1 + bl FUN_0600BEFC + ldr r0, [sp, #64] ; 0x40 + add r0, r0, #8 + bl FUN_06009CB0 + mov r9, r0 + ldr r0, [sp, #64] ; 0x40 + add r0, r0, #9 + bl FUN_06009CB0 + add r1, r9, r0, lsl #8 + ldr r0, _06018668 ; =0x0380FFF0 + strh r1, [r0] + b _06018224 +_0601820C: + ldr r0, _0601866C ; =0x0000FFFF + mov r1, #1 + bl FUN_0600BEFC + mov r1, #0 + ldr r0, _06018668 ; =0x0380FFF0 + strh r1, [r0] +_06018224: + ldr r0, [sp, #60] ; 0x3c + add r0, r0, #3 + bl FUN_06009CB0 + bl FUN_0600B990 + ldr r0, [sp, #60] ; 0x3c + add r0, r0, #2 + bl FUN_06009CB0 + strh r0, [r8, #118] ; 0x76 + ldrh r0, [sl, #52] ; 0x34 + bl FUN_0600B9DC + mov r0, #1 + strh r0, [r8, #18] + strh r0, [r8, #26] + ldrh r0, [r8, #12] + cmp r0, #2 + moveq r1, #3 + ldreq r0, _06018670 ; =0x04808048 + streqh r1, [r0] + ldr r1, _06018674 ; =0x04808038 + ldrh r0, [r1] + orr r0, r0, #1 + strh r0, [r1] +_0601827C: + ldr r0, [r7, #28] + add r0, r0, #8 + add r1, sl, #30 + bl FUN_0600AF4C + mov r0, #37 ; 0x25 + strh r0, [r7] + mov r0, #2 + mov r1, #1 + bl FUN_06009078 +_060182A0: + ldrh r0, [r8, #12] + cmp r0, #2 + beq _060182B8 + cmp r0, #3 + beq _06018374 + b _06018620 +_060182B8: + ldr r9, [sp, #64] ; 0x40 + cmp r9, #0 + beq _06018374 + add r0, r9, #6 + bl FUN_06009CB0 + mov r7, r0 + add r0, r9, #7 + bl FUN_06009CB0 + add r0, r7, r0, lsl #8 + mov r0, r0, lsl #16 + mov r0, r0, lsr #16 + mov r1, #0 + bl FUN_0600BEFC + ldr r0, [sp, #64] ; 0x40 + add r0, r0, #8 + bl FUN_06009CB0 + mov r7, r0 + ldr r0, [sp, #64] ; 0x40 + add r0, r0, #9 + bl FUN_06009CB0 + add r1, r7, r0, lsl #8 + ldr r0, _06018668 ; =0x0380FFF0 + strh r1, [r0] + ldr r0, [sp, #64] ; 0x40 + add r0, r0, #1 + bl FUN_06009CB0 + sub r0, r0, #8 + strh r0, [r8, #160] ; 0xa0 + ldrh r2, [r8, #160] ; 0xa0 + cmp r2, #0 + beq _06018374 + ldr r1, [sp, #64] ; 0x40 + ands r0, r1, #1 + beq _0601835C + add r0, r1, #9 + ldr r1, [r8, #156] ; 0x9c + add r2, r2, #2 + bl FUN_06000EA0 + mov r0, #1 + strh r0, [r8, #162] ; 0xa2 + b _06018374 +_0601835C: + add r0, r1, #10 + ldr r1, [r8, #156] ; 0x9c + add r2, r2, #1 + bl FUN_06000EA0 + mov r0, #0 + strh r0, [r8, #162] ; 0xa2 +_06018374: + mov r0, #0 + strh r0, [r8, #128] ; 0x80 + mov r0, r4 + bl FUN_0600F130 + add r0, sl, #44 ; 0x2c + ldmia r0, {r2, r3} + add r0, sp, #0 + stmia r0, {r2, r3} + ldrh r0, [r8, #110] ; 0x6e + mov r7, r0, lsl #10 + mov r4, #0 + ldr r0, [sp] + ldr r1, [sp, #4] + mov r2, r7 + mov r3, r4 + bl FUN_06009EDC + str r0, [sp] + str r1, [sp, #4] + mov r2, #1 + adds r3, r0, r2 + adc r2, r1, #0 + str r3, [sp] + str r2, [sp, #4] + umull r1, r0, r3, r7 + mla r0, r3, r4, r0 + mla r0, r2, r7, r0 + str r1, [sp] + str r0, [sp, #4] + add r2, sp, #0 + ldrh r1, [r2, #6] + ldr r0, _06018678 ; =0x048080F6 + strh r1, [r0] + ldrh r1, [r2, #4] + ldr r0, _0601867C ; =0x048080F4 + strh r1, [r0] + ldrh r1, [r2, #2] + ldr r0, _06018680 ; =0x048080F2 + strh r1, [r0] + ldrh r0, [r2] + orr r1, r0, #1 + ldr r0, _06018684 ; =0x048080F0 + strh r1, [r0] + ldrh r0, [r8, #12] + cmp r0, #2 + bne _06018518 + ldrh r0, [r8, #26] + cmp r0, #0 + beq _06018518 + ldr r1, [sp] + ldr r0, [sp, #4] + subs r1, r1, r7 + sbc r0, r0, r4 + str r1, [sp] + str r0, [sp, #4] + bl FUN_060001A4 + ldr r7, _06018688 ; =0x048080F8 + ldrh r1, [r7] + strh r1, [sp, #8] + ldr r4, _0601868C ; =0x048080FA + ldrh r1, [r4] + strh r1, [sp, #10] + ldr r3, _06018690 ; =0x048080FC + ldrh r1, [r3] + strh r1, [sp, #12] + ldr r2, _06018694 ; =0x048080FE + ldrh r1, [r2] + strh r1, [sp, #14] + ldrh r1, [r7] + strh r1, [sp, #16] + ldrh r1, [r4] + strh r1, [sp, #18] + ldrh r1, [r3] + strh r1, [sp, #20] + ldrh r1, [r2] + strh r1, [sp, #22] + bl FUN_060001AC + ldrh r1, [sp, #8] + ldrh r0, [sp, #16] + cmp r1, r0 + bcs _060184D8 + ldr r3, [sp, #8] + ldr r2, [sp, #12] + ldr r1, [sp] + ldr r0, [sp, #4] + subs r1, r3, r1 + sbc r0, r2, r0 + mov r1, r1, lsr #10 + orr r1, r1, r0, lsl #22 + b _060184F8 +_060184D8: + ldr r3, [sp, #16] + ldr r2, [sp, #20] + ldr r1, [sp] + ldr r0, [sp, #4] + subs r1, r3, r1 + sbc r0, r2, r0 + mov r1, r1, lsr #10 + orr r1, r1, r0, lsl #22 +_060184F8: + ldrh r0, [r6, #32] + cmp r1, r0 + subcc r1, r0, r1 + ldrcc r0, _06018698 ; =0x04808134 + strcch r1, [r0] + movcs r1, #0 + ldrcs r0, _06018698 ; =0x04808134 + strcsh r1, [r0] +_06018518: + ldrh r0, [r8, #8] + cmp r0, #64 ; 0x40 + bne _06018620 + ldr r1, [sp, #60] ; 0x3c + cmp r1, #0 + beq _06018620 + ldrh r0, [r8, #14] + cmp r0, #1 + bne _06018620 + add r0, r1, #2 + bl FUN_06009CB0 + ldrh r1, [r8, #118] ; 0x76 + cmp r1, r0 + strneh r0, [r8, #118] ; 0x76 + mov r1, #0 + strh r1, [r8, #142] ; 0x8e + cmp r0, #0 + bne _0601857C + ldr r0, [sp, #60] ; 0x3c + add r0, r0, #4 + bl FUN_06009CB0 + ands r0, r0, #1 + ldrneh r0, [r8, #142] ; 0x8e + orrne r0, r0, #1 + strneh r0, [r8, #142] ; 0x8e +_0601857C: + ldr r0, [sp, #60] ; 0x3c + add r0, r0, #4 + bl FUN_06009CB0 + and r7, r0, #254 ; 0xfe + mov r4, r7, lsl #3 + ldr r0, [sp, #60] ; 0x3c + add r0, r0, #1 + bl FUN_06009CB0 + add r0, r7, r0 + sub r0, r0, #3 + mov r1, r0, lsl #3 + ldrh r0, [r8, #106] ; 0x6a + cmp r4, r0 + bhi _060185F4 + cmp r0, r1 + bhi _060185F4 + sub r4, r0, r4 + ldr r0, [sp, #60] ; 0x3c + add r0, r0, #5 + add r0, r0, r4, lsr #3 + bl FUN_06009CB0 + mov r2, #1 + and r1, r4, #7 + mov r1, r2, lsl r1 + ands r0, r1, r0 + beq _060185F4 + ldrh r0, [r8, #142] ; 0x8e + orr r0, r0, #2 + strh r0, [r8, #142] ; 0x8e + bl FUN_06014B5C +_060185F4: + ldrh r0, [r5, #32] + cmp r0, #0 + bne _06018620 + ldrh r0, [r5, #44] ; 0x2c + cmp r0, #0 + bne _06018620 + ldrh r0, [r8, #142] ; 0x8e + cmp r0, #0 + bne _06018620 + mov r0, #1 + bl FUN_0600B3F4 +_06018620: + ldrh r0, [r6, #30] + mov r0, r0, lsl #25 + movs r0, r0, lsr #31 + beq _06018638 + mov r0, sl + bl FUN_0600FCB8 +_06018638: + ldr r2, [sp, #52] ; 0x34 + cmp r2, #0 + beq _06018650 + ldrh r0, [sp, #42] ; 0x2a + mov r1, sl + bl FUN_06018E5C +_06018650: + add sp, sp, #68 ; 0x44 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_0601865C: .word 0x0380FFF4 +_06018660: .word 0x00000404 +_06018664: .word 0x0480810C +_06018668: .word 0x0380FFF0 +_0601866C: .word 0x0000FFFF +_06018670: .word 0x04808048 +_06018674: .word 0x04808038 +_06018678: .word 0x048080F6 +_0601867C: .word 0x048080F4 +_06018680: .word 0x048080F2 +_06018684: .word 0x048080F0 +_06018688: .word 0x048080F8 +_0601868C: .word 0x048080FA +_06018690: .word 0x048080FC +_06018694: .word 0x048080FE +_06018698: .word 0x04808134 + + arm_func_start FUN_0601869C +FUN_0601869C: ; 0x0601869C + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r0, _06018770 ; =0x0380FFF4 + ldr r0, [r0] + add r5, r0, #836 ; 0x344 + add r0, r0, #768 ; 0x300 + ldrh r0, [r0, #76] ; 0x4c + cmp r0, #64 ; 0x40 + movne r0, #1 + bne _06018764 + add r0, r4, #30 + add r1, r5, #100 ; 0x64 + bl FUN_0600AB78 + cmp r0, #0 + beq _060186F0 + add r0, r4, #36 ; 0x24 + add r1, r5, #130 ; 0x82 + bl FUN_0600AB78 + cmp r0, #0 + bne _060186F8 +_060186F0: + mov r0, #1 + b _06018764 +_060186F8: + ldrh r0, [r4, #16] + sub r0, r0, #28 + strh r0, [r4, #6] + sub r1, r4, #16 + ldr r0, _06018774 ; =0x00000185 + strh r0, [r1, #12] + mov r0, #24 + strh r0, [r1, #14] + ldrh r0, [r1, #24] + ldr r2, _06018778 ; =0x04808094 + ldrh r2, [r2] + and ip, r2, #32768 ; 0x8000 + ldr r4, _06018770 ; =0x0380FFF4 + ldr r2, [r4] + add r2, r2, #1024 ; 0x400 + ldrh r3, [r2, #226] ; 0xe2 + ldr r2, _0601877C ; =0x04808098 + ldrh r2, [r2] + and r2, r2, #32768 ; 0x8000 + orr r2, r3, r2, asr #4 + orr r2, r2, ip, asr #3 + orr r0, r0, r2 + strh r0, [r1, #24] + ldr r0, [r4] + add r0, r0, #392 ; 0x188 + bl FUN_0600F8DC + mov r0, #0 +_06018764: + add sp, sp, #4 + ldmia sp!, {r4, r5, lr} + bx lr +_06018770: .word 0x0380FFF4 +_06018774: .word 0x00000185 +_06018778: .word 0x04808094 +_0601877C: .word 0x04808098 + + arm_func_start FUN_06018780 +FUN_06018780: ; 0x06018780 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + ldr r0, _0601893C ; =0x0380FFF4 + ldr r1, [r0] + ldr r0, _06018940 ; =0x0000042C + add r6, r1, r0 + ldr r0, [r6, #144] ; 0x90 + add r5, r0, #16 + ldrh r0, [r6, #60] ; 0x3c + cmp r0, #0 + beq _06018930 + add r0, r7, #24 + add r1, r1, #936 ; 0x3a8 + bl FUN_0600AB78 + cmp r0, #0 + beq _06018930 + ldrh r0, [r7, #16] + sub r1, r0, #24 + ldrh r0, [r5, #6] + sub r0, r0, #8 + cmp r1, r0 + bgt _06018930 + add r0, r7, #30 + bl FUN_0600F608 + mov r4, r0 + cmp r4, #255 ; 0xff + beq _06018804 + cmp r4, #0 + beq _06018840 + bl FUN_0600EFF0 + cmp r0, #64 ; 0x40 + beq _06018840 +_06018804: + add r0, r7, #30 + mov r1, #192 ; 0xc0 + bl FUN_06013D80 + cmp r0, #0 + bne _06018930 + add r0, r7, #30 + mov r1, #7 + mov r2, #0 + bl FUN_06013E9C + cmp r0, #0 + beq _06018930 + mov r1, #2 + strh r1, [r0] + bl FUN_06014C6C + b _06018930 +_06018840: + cmp r4, #0 + beq _06018930 + mov r0, r4, lsl #16 + mov r0, r0, lsr #16 + ldrh r1, [r7, #20] + mov r1, r1, lsl #19 + mov r1, r1, lsr #31 + bl FUN_0600F218 + mov r0, r4 + bl FUN_0600F130 + mov r0, r4 + bl FUN_0600EF18 + mov r1, #1 + mov r0, r1, lsl r0 + mov r0, r0, lsl #16 + mov r2, r0, lsr #16 + ldrh r1, [r6, #154] ; 0x9a + ands r0, r2, r1 + bne _06018930 + ldrh r0, [r6, #152] ; 0x98 + ands r0, r2, r0 + beq _06018930 + orr r0, r1, r2 + strh r0, [r6, #154] ; 0x9a + ldrh r1, [r5] + mvn r0, r2 + and r0, r1, r0 + strh r0, [r5] + add r4, r5, #10 + mov r0, r2, lsl #15 + mov r1, r0, lsr #16 + b _060188D8 +_060188C0: + ldrh r0, [r6, #152] ; 0x98 + ands r0, r1, r0 + ldrneh r0, [r5, #6] + addne r4, r4, r0 + mov r0, r1, lsl #15 + mov r1, r0, lsr #16 +_060188D8: + cmp r1, #1 + bne _060188C0 + ldrh r0, [r7, #16] + sub r0, r0, #24 + strh r0, [r4] + add r0, r4, #3 + ldrh r1, [r7, #18] + and r1, r1, #255 ; 0xff + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + add r0, r4, #2 + ldrh r1, [r7, #14] + and r1, r1, #255 ; 0xff + and r1, r1, #255 ; 0xff + bl FUN_06009CD0 + ldrh r2, [r4] + cmp r2, #0 + beq _06018930 + add r0, r7, #44 ; 0x2c + add r1, r4, #8 + add r2, r2, #1 + bl FUN_06000EA0 +_06018930: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_0601893C: .word 0x0380FFF4 +_06018940: .word 0x0000042C + + arm_func_start FUN_06018944 +FUN_06018944: ; 0x06018944 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r0, _06018AC0 ; =0x0380FFF4 + ldr r1, [r0] + add r5, r1, #836 ; 0x344 + ldr r0, _06018AC4 ; =0x000004DC + add r4, r1, r0 + ldrh r0, [r5, #8] + cmp r0, #64 ; 0x40 + movne r0, #1 + bne _06018AB8 + add r0, r6, #30 + add r1, r5, #100 ; 0x64 + bl FUN_0600AB78 + cmp r0, #0 + beq _06018998 + add r0, r6, #36 ; 0x24 + add r1, r5, #130 ; 0x82 + bl FUN_0600AB78 + cmp r0, #0 + bne _060189A0 +_06018998: + mov r0, #1 + b _06018AB8 +_060189A0: + mov r1, #1 + ldrh r0, [r5, #106] ; 0x6a + mov r0, r1, lsl r0 + mov r0, r0, lsl #16 + mov r1, r0, lsr #16 + ldrh r0, [r6, #46] ; 0x2e + ands r0, r1, r0 + moveq r0, #0 + streqh r0, [r4, #6] + movne r0, #8192 ; 0x2000 + strneh r0, [r4, #6] + ldr r0, _06018AC8 ; =0x04808098 + ldrh r1, [r0] + ands r0, r1, #32768 ; 0x8000 + beq _06018A04 + ldr r0, _06018ACC ; =0x00007FFF + and r0, r1, r0 + mov r0, r0, lsl #1 + add r0, r0, #75497472 ; 0x4800000 + add r0, r0, #16384 ; 0x4000 + ldrh r0, [r0, #4] + cmp r0, #0 + ldrneh r0, [r4, #6] + orrne r0, r0, #16384 ; 0x4000 + strneh r0, [r4, #6] +_06018A04: + ldrh r0, [r5, #136] ; 0x88 + bl FUN_0600F130 + ldrh r0, [r6, #16] + sub r0, r0, #28 + strh r0, [r6, #6] + sub r1, r6, #16 + ldr r0, _06018AD0 ; =0x00000182 + strh r0, [r1, #12] + ldrh r0, [r6, #6] + add r0, r0, #49 ; 0x31 + mov r0, r0, lsr #1 + strh r0, [r1, #14] + ldrh r3, [r1, #62] ; 0x3e + mov r0, #0 + b _06018A50 +_06018A40: + ands r2, r3, #1 + addne r0, r0, #1 + mov r2, r3, lsl #15 + mov r3, r2, lsr #16 +_06018A50: + cmp r3, #0 + bne _06018A40 + ldrh r6, [r1, #24] + ldr r2, _06018AD4 ; =0x04808094 + ldrh r2, [r2] + and r5, r2, #32768 ; 0x8000 + ldrh r3, [r4, #6] + ldr r2, _06018AC8 ; =0x04808098 + ldrh r2, [r2] + and r2, r2, #32768 ; 0x8000 + orr r2, r3, r2, asr #4 + orr r2, r2, r5, asr #3 + orr r2, r6, r2 + strh r2, [r1, #24] + ldrh r3, [r1, #28] + ldrh r2, [r1, #60] ; 0x3c + add r2, r2, #10 + mul r2, r0, r2 + add r0, r2, #252 ; 0xfc + add r0, r3, r0, lsr #4 + strh r0, [r1, #26] + ldr r0, _06018AC0 ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + bl FUN_0600F8DC + mov r0, #0 +_06018AB8: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06018AC0: .word 0x0380FFF4 +_06018AC4: .word 0x000004DC +_06018AC8: .word 0x04808098 +_06018ACC: .word 0x00007FFF +_06018AD0: .word 0x00000182 +_06018AD4: .word 0x04808094 + + arm_func_start FUN_06018AD8 +FUN_06018AD8: ; 0x06018AD8 + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + ldr r0, _06018DE0 ; =0x0380FFF4 + ldr r1, [r0] + add r8, r1, #836 ; 0x344 + add r7, r1, #380 ; 0x17c + ldr r0, _06018DE4 ; =0x0000053C + add r6, r1, r0 + ldr sl, [r7, #72] ; 0x48 + mvn r0, #0 + cmp sl, r0 + beq _06018DD8 + ldrh r0, [r8, #8] + cmp r0, #64 ; 0x40 + beq _06018B20 + add r0, r7, #72 ; 0x48 + mov r1, sl + bl FUN_060096A0 + b _06018DD8 +_06018B20: + add r9, sl, #16 + ldrh r0, [r9, #20] + mov r0, r0, lsl #23 + movs r0, r0, lsr #31 + beq _06018B58 + ldrh r0, [r9, #36] ; 0x24 + ands r0, r0, #1 + ldrne r0, [r6, #44] ; 0x2c + addne r0, r0, #1 + strne r0, [r6, #44] ; 0x2c + ldreq r0, [r6, #40] ; 0x28 + addeq r0, r0, #1 + streq r0, [r6, #40] ; 0x28 + b _06018B78 +_06018B58: + ldrh r0, [r9, #24] + ands r0, r0, #1 + ldrne r0, [r6, #44] ; 0x2c + addne r0, r0, #1 + strne r0, [r6, #44] ; 0x2c + ldreq r0, [r6, #40] ; 0x28 + addeq r0, r0, #1 + streq r0, [r6, #40] ; 0x28 +_06018B78: + ldrh r0, [r9, #8] + and r0, r0, #240 ; 0xf0 + mov r1, #16 + bl FUN_06001840 + ldr r1, [r6, #36] ; 0x24 + sub r0, r0, #1 + add r0, r1, r0 + str r0, [r6, #36] ; 0x24 + mov r4, #1 + ldrh r0, [r8, #12] + cmp r0, #1 + beq _06018BBC + cmp r0, #2 + beq _06018C9C + cmp r0, #3 + beq _06018C9C + b _06018D44 +_06018BBC: + ldrh r0, [r9, #20] + ands r0, r0, #1 + bne _06018D44 + add r0, r9, #30 + bl FUN_0600F608 + mov r5, r0 + cmp r5, #255 ; 0xff + beq _06018BE8 + bl FUN_0600EFF0 + cmp r0, #64 ; 0x40 + beq _06018C50 +_06018BE8: + mov r0, r5 + bl FUN_0600EFF0 + cmp r0, #48 ; 0x30 + bne _06018C1C + add r0, r9, #30 + mov r1, #160 ; 0xa0 + bl FUN_06013D80 + cmp r0, #0 + bne _06018D44 + add r0, r9, #30 + mov r1, #7 + bl FUN_060145BC + b _06018C40 +_06018C1C: + add r0, r9, #30 + mov r1, #192 ; 0xc0 + bl FUN_06013D80 + cmp r0, #0 + bne _06018D44 + add r0, r9, #30 + mov r1, #7 + mov r2, #1 + bl FUN_06013E9C +_06018C40: + cmp r0, #0 + beq _06018D44 + bl FUN_06014C6C + b _06018D44 +_06018C50: + mov r0, r5, lsl #16 + mov r0, r0, lsr #16 + ldrh r1, [r9, #20] + mov r1, r1, lsl #19 + mov r1, r1, lsr #31 + bl FUN_0600F218 + mov r0, r5 + bl FUN_0600EF5C + ldrh r1, [r9, #42] ; 0x2a + cmp r1, r0 + ldreq r0, [r6, #60] ; 0x3c + addeq r0, r0, #1 + streq r0, [r6, #60] ; 0x3c + beq _06018D44 + add r0, r9, #24 + add r1, r9, #36 ; 0x24 + bl FUN_0600AF4C + mov r4, #0 + b _06018D44 +_06018C9C: + ldrh r2, [r9, #20] + ands r1, r2, #1 + bne _06018D44 + ldrh r1, [r8, #14] + cmp r1, #0 + beq _06018D10 + ands r1, r2, #8192 ; 0x2000 + bne _06018D10 + ldrh r1, [r9, #24] + ands r1, r1, #1 + ldrneh r0, [r8, #142] ; 0x8e + bicne r0, r0, #1 + strneh r0, [r8, #142] ; 0x8e + bne _06018CE4 + cmp r0, #3 + ldrneh r0, [r8, #142] ; 0x8e + bicne r0, r0, #2 + strneh r0, [r8, #142] ; 0x8e +_06018CE4: + ldrh r0, [r8, #142] ; 0x8e + cmp r0, #0 + bne _06018D10 + ldrh r0, [r7, #32] + cmp r0, #0 + bne _06018D10 + ldrh r0, [r7, #44] ; 0x2c + cmp r0, #0 + bne _06018D10 + mov r0, #1 + bl FUN_0600B3F4 +_06018D10: + ldrh r5, [r8, #136] ; 0x88 + mov r0, r5 + bl FUN_0600EF5C + ldrh r1, [r9, #42] ; 0x2a + cmp r1, r0 + ldreq r0, [r6, #60] ; 0x3c + addeq r0, r0, #1 + streq r0, [r6, #60] ; 0x3c + beq _06018D44 + add r0, r9, #30 + add r1, r9, #36 ; 0x24 + bl FUN_0600AF4C + mov r4, #0 +_06018D44: + cmp r4, #0 + bne _06018DB4 + mov r0, r5, lsl #16 + mov r0, r0, lsr #16 + strh r0, [r9, #2] + ldrh r1, [r9, #18] + and r1, r1, #255 ; 0xff + mov r1, r1, lsl #16 + mov r1, r1, lsr #16 + bl FUN_0600F27C + mov r0, r5 + ldrh r1, [r9, #42] ; 0x2a + bl FUN_0600F16C + mov r0, r5 + bl FUN_0600F130 + ldrh r0, [r9, #16] + sub r0, r0, #24 + strh r0, [r9, #6] + mov r0, #384 ; 0x180 + strh r0, [sl, #12] + ldrh r0, [r9, #6] + add r0, r0, #45 ; 0x2d + mov r0, r0, lsr #1 + strh r0, [sl, #14] + add r0, r7, #72 ; 0x48 + mov r1, sl + bl FUN_0600F8DC + b _06018DC0 +_06018DB4: + add r0, r7, #72 ; 0x48 + mov r1, sl + bl FUN_060096A0 +_06018DC0: + ldrh r0, [r7, #80] ; 0x50 + cmp r0, #0 + beq _06018DD8 + mov r0, #2 + mov r1, #6 + bl FUN_06009078 +_06018DD8: + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + bx lr +_06018DE0: .word 0x0380FFF4 +_06018DE4: .word 0x0000053C + + arm_func_start FUN_06018DE8 +FUN_06018DE8: ; 0x06018DE8 + ldr r0, _06018E34 ; =0x0380FFF4 + ldr r0, [r0] + add ip, r0, #572 ; 0x23c + mov r3, #0 + mov r0, r3 + add r2, ip, #48 ; 0x30 +_06018E00: + ldrh r1, [ip, #48] ; 0x30 + cmp r1, #0 + beq _06018E24 + ldrh r1, [r2] + sub r1, r1, #1 + strh r1, [r2] + ldrh r1, [ip, #48] ; 0x30 + cmp r1, #0 + streqh r0, [ip] +_06018E24: + add r3, r3, #1 + cmp r3, #4 + bcc _06018E00 + bx lr +_06018E34: .word 0x0380FFF4 + + arm_func_start FUN_06018E38 +FUN_06018E38: ; 0x06018E38 + mov r0, #0 + ldr r1, _06018E54 ; =0x0380FFF4 + ldr r1, [r1] + add r1, r1, #572 ; 0x23c + mov r2, #200 ; 0xc8 + ldr ip, _06018E58 ; =FUN_037FB300 + bx ip +_06018E54: .word 0x0380FFF4 +_06018E58: .word FUN_037FB300 + + arm_func_start FUN_06018E5C +FUN_06018E5C: ; 0x06018E5C + stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + sub sp, sp, #4 + mov fp, r0 + mov sl, r1 + mov r9, r2 + ldr r0, _06018FAC ; =0x0380FFF4 + ldr r0, [r0] + add r8, r0, #572 ; 0x23c + add r0, r9, #1 + bl FUN_06009CB0 + cmp r0, #32 + bhi _06018FA0 + mov r6, #4 + mov r5, r6 + mov r4, #1024 ; 0x400 + mov r7, #0 + add r0, sl, #36 ; 0x24 + str r0, [sp] + b _06018EE8 +_06018EA8: + ldrh r0, [r8] + cmp r0, #0 + beq _06018EDC + add r0, r8, #6 + ldr r1, [sp] + bl FUN_0600AB78 + cmp r0, #0 + bne _06018F08 + ldrh r0, [r8, #48] ; 0x30 + cmp r0, r4 + movcc r4, r0 + movcc r5, r7 + b _06018EE0 +_06018EDC: + mov r6, r7 +_06018EE0: + add r7, r7, #1 + add r8, r8, #50 ; 0x32 +_06018EE8: + cmp r7, #4 + bcc _06018EA8 + cmp r6, #4 + movne r7, r6 + bne _06018F08 + cmp r5, #4 + movne r7, r5 + beq _06018FA0 +_06018F08: + ldr r0, _06018FAC ; =0x0380FFF4 + ldr r0, [r0] + add r5, r0, #572 ; 0x23c + mov r2, #50 ; 0x32 + mul r4, r7, r2 + add r6, r5, r4 + mov r0, #0 + mov r1, r6 + bl FUN_0600055C + mov r0, #1024 ; 0x400 + strh r0, [r6, #48] ; 0x30 + ldrh r0, [sl, #18] + and r0, r0, #255 ; 0xff + strh r0, [r5, r4] + strh fp, [r6, #2] + add r0, r6, #6 + add r1, sl, #36 ; 0x24 + bl FUN_0600AF4C + add r0, r9, #1 + bl FUN_06009CB0 + strh r0, [r6, #12] + mov r7, #0 + add r5, r9, #2 + add r4, r6, #14 + b _06018F84 +_06018F6C: + add r0, r5, r7 + bl FUN_06009CB0 + mov r1, r0 + add r0, r4, r7 + bl FUN_06009CD0 + add r7, r7, #1 +_06018F84: + ldrh r0, [r6, #12] + cmp r7, r0 + bcc _06018F6C + ldrh r0, [sl, #52] ; 0x34 + strh r0, [r6, #46] ; 0x2e + ldrh r0, [sl, #54] ; 0x36 + strh r0, [r6, #4] +_06018FA0: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + bx lr +_06018FAC: .word 0x0380FFF4 + + arm_func_start FUN_06018FB0 +FUN_06018FB0: ; 0x06018FB0 + stmfd sp!, {lr} + sub sp, sp, #4 + ldr r0, _0601909C ; =0x0380FFF4 + ldr r0, [r0] + ldr r0, [r0, #788] ; 0x314 + bl FUN_060190A4 + bl FUN_0601916C + mov r0, #0 + str r0, [sp] + mov r0, #44 ; 0x2c + mov r1, #2 + add r2, sp, #0 + bl FUN_060190AC + ldr r0, _0601909C ; =0x0380FFF4 + ldr r0, [r0] + ldr r0, [r0, #788] ; 0x314 + bl FUN_060190B4 + ldr r1, [sp] + cmp r1, #164 ; 0xa4 + bcc _0601900C + ldr r0, _060190A0 ; =0x000001D6 + cmp r1, r0 + bls _06019014 +_0601900C: + mov r0, #0 + b _06019090 +_06019014: + add r1, r1, #2 + str r1, [sp] + ldr r0, _0601909C ; =0x0380FFF4 + ldr r0, [r0] + add r0, r0, #392 ; 0x188 + bl FUN_06009724 + ldr r2, _0601909C ; =0x0380FFF4 + ldr r1, [r2] + str r0, [r1, #792] ; 0x318 + ldr r1, [r2] + ldr r0, [r1, #792] ; 0x318 + cmp r0, #0 + moveq r0, #0 + beq _06019090 + add r0, r0, #12 + str r0, [r1, #792] ; 0x318 + ldr r0, [r2] + ldr r0, [r0, #788] ; 0x314 + bl FUN_060190A4 + bl FUN_0601916C + mov r0, #42 ; 0x2a + ldr r1, [sp] + ldr r2, _0601909C ; =0x0380FFF4 + ldr r2, [r2] + ldr r2, [r2, #792] ; 0x318 + bl FUN_060190AC + ldr r0, _0601909C ; =0x0380FFF4 + ldr r0, [r0] + ldr r0, [r0, #788] ; 0x314 + bl FUN_060190B4 + mov r0, #1 +_06019090: + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_0601909C: .word 0x0380FFF4 +_060190A0: .word 0x000001D6 + + arm_func_start FUN_060190A4 +FUN_060190A4: ; 0x060190A4 + ldr pc, _060190A8 ; =FUN_038014E0 +_060190A8: .word FUN_038014E0 + + arm_func_start FUN_060190AC +FUN_060190AC: ; 0x060190AC + ldr pc, _060190B0 ; =FUN_03804E50 +_060190B0: .word FUN_03804E50 + + arm_func_start FUN_060190B4 +FUN_060190B4: ; 0x060190B4 + ldr pc, _060190B8 ; =FUN_03801474 +_060190B8: .word FUN_03801474 + + arm_func_start FUN_060190BC +FUN_060190BC: ; 0x060190BC + stmdb sp!, {r4, r5, r6, lr} + + arm_func_start FUN_060190C0 +FUN_060190C0: ; 0x060190C0 + mov r6, r0 + mov r5, r1 + mov r4, r2 + ldr r0, _06019108 ; =0x0380FFF4 + ldr r0, [r0] + ldr r0, [r0, #788] ; 0x314 + bl FUN_060190A4 + bl FUN_0601916C + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_060190AC + ldr r0, _06019108 ; =0x0380FFF4 + ldr r0, [r0] + ldr r0, [r0, #788] ; 0x314 + bl FUN_060190B4 + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06019108: .word 0x0380FFF4 + + arm_func_start FUN_0601910C +FUN_0601910C: ; 0x0601910C + stmdb sp!, {r4, r5, r6, lr} + mov r6, r1 + mov r5, r2 + ldr r1, _06019168 ; =0x0380FFF4 + ldr r1, [r1] + ldr r1, [r1, #792] ; 0x318 + cmp r1, #0 + beq _06019160 + add r0, r1, r0 + sub r4, r0, #42 ; 0x2a + b _06019158 +_06019138: + mov r0, r4 + bl FUN_06009CB0 + add r4, r4, #1 + mov r1, r0 + mov r0, r5 + bl FUN_06009CD0 + add r5, r5, #1 + sub r6, r6, #1 +_06019158: + cmp r6, #0 + bne _06019138 +_06019160: + ldmia sp!, {r4, r5, r6, lr} + bx lr +_06019168: .word 0x0380FFF4 + + arm_func_start FUN_0601916C +FUN_0601916C: ; 0x0601916C + stmdb sp!, {r4, lr} + sub sp, sp, #8 + add r4, sp, #0 +_06019178: + mov r0, r4 + bl FUN_060191AC + ldr r0, [sp] + ands r0, r0, #32 + beq _06019194 + bl FUN_060191B4 + b _06019178 +_06019194: + ldr r0, [sp] + ands r0, r0, #1 + bne _06019178 + add sp, sp, #8 + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FUN_060191AC +FUN_060191AC: ; 0x060191AC + ldr pc, _060191B0 ; =FUN_03804F70 +_060191B0: .word FUN_03804F70 + + arm_func_start FUN_060191B4 +FUN_060191B4: ; 0x060191B4 + ldr pc, _060191B8 ; =FUN_03804798 +_060191B8: .word FUN_03804798 + + arm_func_start FUN_060191BC +FUN_060191BC: ; 0x060191BC + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r5, r0 + ldr r0, _06019260 ; =0x0380FFF4 + ldr r0, [r0] + ldr r1, [r0, #792] ; 0x318 + ldrh r6, [r1, #2] + cmp r6, #164 ; 0xa4 + bcc _060191EC + ldr r0, _06019264 ; =0x000001D6 + cmp r6, r0 + bls _060191F4 +_060191EC: + mov r0, #2 + b _06019254 +_060191F4: + add r7, r1, #2 + mov r4, #0 + b _06019224 +_06019200: + mov r0, r7 + bl FUN_06009CB0 + add r7, r7, #1 + and r0, r0, #255 ; 0xff + mov r1, r4, lsl #16 + mov r1, r1, lsr #16 + bl FUN_06009BBC + mov r4, r0 + sub r6, r6, #1 +_06019224: + cmp r6, #0 + bne _06019200 + ldr r0, _06019260 ; =0x0380FFF4 + ldr r0, [r0] + ldr r0, [r0, #792] ; 0x318 + ldrh r1, [r0] + cmp r5, #0 + orrne r0, r1, r4, lsl #16 + strne r0, [r5] + cmp r4, r1 + movne r0, #1 + moveq r0, #0 +_06019254: + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, lr} + bx lr +_06019260: .word 0x0380FFF4 +_06019264: .word 0x000001D6 +_06019268: + .word FUN_06002F6C + +_0601926C: ; 0x0601926C + .word FUN_0600305C + .word FUN_060034A4 + .word FUN_06008280 + .word FUN_060082E0 + .word FUN_06008578 + .word FUN_06008620 + .word FUN_06003578 + .word FUN_06003664 + .word FUN_06003924 + .word FUN_060040F4 + .word FUN_060044CC + .word FUN_060045DC + .word FUN_06005328 + .word FUN_06005380 + .word FUN_06005644 + .word FUN_060057C8 + .word FUN_060058E8 + .word FUN_06005974 + .word FUN_06005AA8 + .word FUN_06005C68 + .word FUN_06002184 + .word FUN_06002184 + .word FUN_06002184 + .word FUN_06005D1C + .word FUN_06005E4C + .word FUN_06005EAC + .word FUN_06005ED8 + .word FUN_06006A48 + .word FUN_06005F40 + .word FUN_0600609C + .word FUN_0600628C + .word FUN_06006318 + .word FUN_06007FE0 + .word FUN_06008074 + .word FUN_060089DC + .word FUN_06008A74 + .word FUN_06008AD4 + .word FUN_06003BBC + .word FUN_06005B84 + .word FUN_06008AE8 + .word FUN_06008C6C + .word FUN_06008C98 + .word FUN_06006A0C + .word FUN_060069DC + .word FUN_060069A0 +_06019320: + .word FUN_060109D8 + .word FUN_060108CC + .word FUN_060107A4 + .word FUN_0601069C + .word FUN_0601059C + .word FUN_060102D0 + .word FUN_06018AD8 + .word FUN_06016764 + .word FUN_0600E8E8 + .word FUN_0601654C + .word FUN_0600EB8C + .word FUN_0600F974 + .word FUN_06008FAC + .word FUN_06010280 + .word FUN_0600E6E0 + .word FUN_0600E308 + .word FUN_0600E21C + .word FUN_0601603C + .word FUN_06018DE8 + .word FUN_0600F874 + .word FUN_0600E158 + .word FUN_060098C4 + .word FUN_06009820 + .word FUN_060097CC +_06019380: + .word 0x00030003 +_06019384: + .word 0xFFFFFFFF + .word 0x0000FFFF +_0601938C: + .word 0x00BF0903 + .word 0x00001000 +_06019394: + .word 0x00000000 + .word 0x00000000 +_0601939C: + .word 0x00BF0903 + .word 0x00000000 +_060193A4: + .word 0x00040002 + .word 0x000C000B + .word 0x00160012 + .word 0x00240018 + .word 0x00480030 + .word 0x006C0060 + .word 0x00000000 + .word 0x00000000 +_060193C4: + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 +_060193E4: + .word 0xCC010000 + .word 0x1400D801 + .word 0x3C00F001 + .word 0xE4012800 + .word 0x6C00A001 + .word 0xB4017800 + .word 0x9C015000 + .word 0x44008801 +_06019404: + .word 0x01480146 + .word 0x014C014A + .word 0x01220120 + .word 0x01440154 + .word 0x01320132 + .word 0x01420140 + .word 0x01240038 + .word 0x01500128 +_06019424: + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 +_06019474: + .word 0x00000004 + .word 0x00000008 + .word 0x0000000A + .word 0x00000012 + .word 0xFFFF0010 + .word 0x00000254 + .word 0xFFFF00B4 + .word 0x00000080 + .word 0x0001008E + .word 0x00000088 + .word 0x0000002A + .word 0x00000028 + .word 0x000000E8 + .word 0x000000EA + .word 0x000100EE + .word 0x3F0300EC + .word 0x000101A2 + .word 0x000001A0 + .word 0x08000110 + .word 0x000100BC + .word 0x000300D4 + .word 0x000400D8 + .word 0x060200DA + .word 0x00000076 + .word 0x01460130 +_060194D8: + .word 0x000000FF + .word 0x000100FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00030002 + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x000400FF + .word 0x00FF00FF + .word 0x000500FF + .word 0x000600FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x000700FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x000800FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x000900FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x000A00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x000B00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF + .word 0x00FF00FF +_060195C8: + .word 0x5A5AFFFF + .word 0x0000A5A5 +_060195D0: + .word 0x00040002 + .word 0x00060005 + .word 0x001C0007 + .word 0x001E001D + .word 0x0020001F + .word 0x00260021 + .word 0x002C0029 + .word 0x002E002D + .word 0x0030002F + .word 0x00340033 + .word 0x00360035 + .word 0x00650037 + .word 0x00000000 +_06019604: + .word 0x00090000 + .word 0x000B000A + .word 0x000D000C + .word 0x000F000E + .word 0x00110010 + .word 0x00140012 + .word 0x00160015 + .word 0x00180017 + .word 0x001A0019 + .word 0x004D0027 + .word 0x005E005D + .word 0x0060005F + .word 0x00640061 + .word 0x00000066 +_0601963C: + .word 0x003F0006 + .word 0xFFFF0018 + .word 0xFFFF001A + .word 0xFFFF001C + .word 0xFFFF0020 + .word 0xFFFF0022 + .word 0xFFFF0024 + .word 0x07FF002A + .word 0xFFFF0050 + .word 0xFFFF0052 + .word 0x0FFE0056 + .word 0x1FFE0058 + .word 0x0FFE005A + .word 0x0FFF005C + .word 0x1FFE0062 + .word 0x0FFF0064 + .word 0x1FFE0068 + .word 0x0FFF006C + .word 0x1FFE0074 + .word 0xFFFF0122 + .word 0xFFFF0124 + .word 0xFFFF0128 + .word 0x0FFF0130 + .word 0x8FFF0132 + .word 0xFFFF0134 + .word 0xFFFF0140 + .word 0xFFFF0142 +_060196A8: + .word 0x00020018 + .word FUN_06013558 + .word 0x00010004 + .word FUN_060133B4 + .word 0x0001000A + .word FUN_06012EBC + .word 0x0001000C + .word FUN_06012E58 + .word 0x00010001 + .word FUN_06012E0C +_060196D0: + .word 0x00040000 + .word FUN_060118F8 + .word 0x00120000 + .word FUN_060118AC + .word 0x00020000 + .word FUN_06011884 + .word 0x00020000 + .word FUN_0601185C + .word 0x00020000 + .word FUN_06011834 + .word 0x00010000 + .word FUN_06011750 +_06019700: + .word 0x00010003 + .word FUN_06011FC8 + .word 0x00010011 + .word FUN_06011FA8 + .word 0x00010001 + .word FUN_06011F64 + .word 0x00010001 + .word FUN_06011F20 + .word 0x00010001 + .word FUN_06011ED4 + .word 0x00010000 + .word FUN_06011E64 +_06019730: + .word 0x00010001 + .word FUN_06011710 + .word 0x00010003 + .word FUN_06011664 + .word 0x0023001F + .word FUN_06011518 + .word 0x00050022 + .word FUN_06011358 + .word 0x00060005 + .word FUN_0601127C + .word 0x00040004 + .word FUN_06011130 + .word 0x00030005 + .word FUN_06011048 + .word 0x00030005 + .word FUN_06010F78 + .word 0x00010004 + .word FUN_06010E60 + .word 0x00010017 + .word FUN_06010CBC + .word 0x0012000C + .word FUN_06010BD4 +_06019788: + .word 0x00010000 + .word FUN_0600F96C + .word 0x00010000 + .word FUN_06012D88 + .word 0x00010000 + .word FUN_06012D24 + .word 0x00010000 + .word FUN_06012CC4 + .word 0x00010000 + .word FUN_06012C80 + .word 0x00010000 + .word FUN_06012C3C + .word 0x00090000 + .word FUN_06012B90 + .word 0x005C0000 + .word FUN_06012B28 + .word 0x00020000 + .word FUN_06012B00 + .word 0x00010004 + .word FUN_0601288C + .word 0x00010002 + .word FUN_060125EC +_060197E0: + .word 0x00210000 + .word FUN_06011D2C + .word 0x00040000 + .word FUN_06011CF4 + .word 0x00020000 + .word FUN_06011CCC + .word 0x00030000 + .word FUN_06011C94 + .word 0x00020000 + .word FUN_06011C6C + .word 0x00020000 + .word FUN_06011C44 + .word 0x00020000 + .word FUN_06011C1C + .word 0x00020000 + .word FUN_06011BF4 + .word 0x00010000 + .word FUN_0600F96C + .word 0x00020000 + .word FUN_06011BC4 + .word 0x00020000 + .word FUN_06011B94 + .word 0x00020000 + .word FUN_06011B6C + .word 0x00020000 + .word FUN_06011B44 + .word 0x00110000 + .word FUN_06011B08 + .word 0x00020000 + .word FUN_06011AD8 + .word 0x00020000 + .word 0x06011AB0 + .word 0x00040000 + .word FUN_06011A70 + .word 0x00010000 + .word FUN_0600F96C + .word 0x00020000 + .word FUN_06011A44 + .word 0x00020000 + .word FUN_06011A08 + .word 0x00030000 + .word FUN_060119A8 + .word 0x00020000 + .word FUN_0601196C + .word 0x00020000 + .word FUN_06011930 +_06019898: + .word 0x00010048 + .word FUN_060124F8 + .word 0x00010003 + .word FUN_060124B0 + .word 0x00010001 + .word FUN_06012498 + .word 0x00010001 + .word FUN_06012450 + .word 0x00010001 + .word FUN_060123F4 + .word 0x00010001 + .word FUN_060123DC + .word 0x00010001 + .word FUN_060123C4 + .word 0x00010001 + .word FUN_060123AC + .word 0x00010028 + .word FUN_06012394 + .word 0x00010001 + .word FUN_0601234C + .word 0x00010001 + .word FUN_06012334 + .word 0x00010001 + .word FUN_0601231C + .word 0x00010001 + .word FUN_06012300 + .word 0x00010010 + .word FUN_060122E8 + .word 0x00010001 + .word FUN_060122D0 + .word 0x00010001 + .word 0x060122B8 + .word 0x00010003 + .word FUN_06012264 + .word 0x00010003 + .word FUN_06012158 + .word 0x00010001 + .word FUN_06012100 + .word 0x00010001 + .word FUN_060120B8 + .word 0x00010002 + .word FUN_06012070 + .word 0x00010001 + .word FUN_06012028 + .word 0x00010001 + .word FUN_06011FE0 +_06019950: + .word 0x38372E32 + .word 0x0030302E +_06019958: + .word 0x00040001 + .word 0x00000008 + +; .section .bss +; .balign 16, 0 +; _06019980: +; .space 8 +; _06019988: +; .space 32 +; _060199A8: +; .space 16 +; _060199B8: +; .space 32 +; _060199D8: +; .space 16 +; _060199E8: +; .space 32 +; _06019A08: +; .space 16 +; _0601AA88: +; .space 1068 +; _0601AEB4: +; .space 92 diff --git a/arm7/asm/arm7_rom.s b/arm7/asm/itcm.s index 735d0652..6f2996be 100644 --- a/arm7/asm/arm7_rom.s +++ b/arm7/asm/itcm.s @@ -2,7 +2,7 @@ .include "asm/macros.inc" .include "global.inc" - .section .itcm + .section .text arm_func_start FUN_027E0000 FUN_027E0000: ; 0x027E0000 load at 0x023801B0 stmdb sp!, {r4, r5, r6, lr} @@ -69,6 +69,3 @@ _027E00CC: .word 0x027E00DC _027E00D0: .word 0x0380A3F4 _027E00D4: .word 0x0380A3FC _027E00D8: .word 0x027FAFCC - - .section .ewram - .incbin "baserom.nds", 0x31C998, 0x19960 diff --git a/arm7/global.inc b/arm7/global.inc index b7c4beb2..f3405bf1 100644 --- a/arm7/global.inc +++ b/arm7/global.inc @@ -89,9 +89,72 @@ .extern FUN_03806AD0
.extern FUN_038073EC
.extern FUN_03807408
+.extern FUN_037F8858
+.extern FUN_037F8894
+.extern FUN_037F894C
+.extern FUN_037F8A24
+.extern FUN_037F8D50
+.extern FUN_037F8D88
+.extern FUN_037F8E14
+.extern FUN_037F8EB8
+.extern FUN_037F8FB4
+.extern FUN_037F90B8
+.extern FUN_037F90CC
+.extern FUN_037F9218
+.extern FUN_037F9244
+.extern FUN_037F9884
+.extern FUN_037F9924
+.extern FUN_037F99B8
+.extern FUN_037F9A6C
+.extern FUN_037F9ADC
+.extern FUN_037F9B68
+.extern FUN_037FA0C4
+.extern FUN_037FA138
+.extern FUN_037FA364
+.extern FUN_037FA650
+.extern FUN_037FA6E0
+.extern FUN_037FA75C
+.extern FUN_037FA900
+.extern FUN_037FA910
+.extern FUN_037FACAC
+.extern FUN_037FAE20
+.extern FUN_037FAEB8
+.extern FUN_037FAFD0
+.extern FUN_037FAFE0
+.extern FUN_037FB05C
+.extern FUN_037FB070
+.extern FUN_037FB1F0
+.extern FUN_037FB290
+.extern FUN_037FB300
+.extern FUN_037FB318
+.extern FUN_037FB334
+.extern FUN_037FB348
+.extern FUN_037FB360
+.extern FUN_037FB3E4
+.extern FUN_037FB478
+.extern FUN_037FB5B0
+.extern FUN_037FB7A8
+.extern FUN_037FBAA8
+.extern FUN_03801474
+.extern FUN_038014E0
+.extern FUN_03802BC8
+.extern FUN_03804798
+.extern FUN_03804E50
+.extern FUN_03804F70
+.extern FUN_03806F8C
+.extern FUN_03807408
+.extern FUN_03807534
+.extern FUN_03807590
+.extern FUN_03806B34
+.extern _0380B764
+.extern _0380B808
+.extern _0380B8AC
+.extern _0380B8D8
+.extern _0380B904
.extern _ll_sdiv
.extern _ll_udiv
.extern _s32_div_f
+.extern _u32_div_f
.extern _03807170
.extern _03807194
.extern _03807294
diff --git a/arm7/undefined_syms.txt b/arm7/undefined_syms.txt index c7d4e0df..c364f417 100644 --- a/arm7/undefined_syms.txt +++ b/arm7/undefined_syms.txt @@ -1,39 +1,27 @@ + +// ??? +// DTCM +// EWRAM +SDK_AUTOLOAD_ITCM_BSS_SIZE = 0x00000000; SDK_SYS_STACKSIZE = 0x00000000; CONST_34 = 0x00000034; CONST_3F = 0x0000003F; -SDK_IRQ_STACKSIZE = 0x00000400; - -SDK_AUTOLOAD_LIST = 0x023A92F8; -SDK_AUTOLOAD_ITCM_START = 0x027E0000; SDK_AUTOLOAD_ITCM_SIZE = 0x000000DC; -SDK_AUTOLOAD_ITCM_BSS_SIZE = 0x00000000; -SDK_AUTOLOAD_DTCM_START = 0x037F8000; -SDK_AUTOLOAD_DTCM_SIZE = 0x0000F70C; +SDK_IRQ_STACKSIZE = 0x00000400; +SDK_AUTOLOAD_EXT_BSS_SIZE = 0x00001590; SDK_AUTOLOAD_DTCM_BSS_SIZE = 0x00004220; -SDK_AUTOLOAD_EXT_START = 0x06000000; +SDK_AUTOLOAD_DTCM_SIZE = 0x0000F70C; SDK_AUTOLOAD_EXT_SIZE = 0x00019960; -SDK_AUTOLOAD_EXT_BSS_SIZE = 0x00001590; -SDK_AUTOLOAD_LIST_END = SDK_AUTOLOAD_LIST + 0x24; - -// ??? SDK_MAIN_ARENA_LO = 0x0225FFA0; - -// EWRAM +SDK_AUTOLOAD_LIST = 0x023A92F8; SDK_SECTION_ARENA_EX_START = 0x023E0000; - -_060001F8 = 0x060001F8; -_06000204 = 0x06000204; -_06000798 = 0x06000798; -_060009A4 = 0x060009A4; -_06006978 = 0x06006978; -_06008CC4 = 0x06008CC4; -_06019960 = 0x06019960; -_0601A960 = 0x0601A960; -_0601AE88 = 0x0601AE88; - -// DTCM +SDK_AUTOLOAD_ITCM_START = 0x027E0000; gUnk027FFC20 = 0x027FFC20; - +SDK_AUTOLOAD_DTCM_START = 0x037F8000; +FUN_037F90B8 = 0x037F90B8; +FUN_037F9B68 = 0x037F9B68; +FUN_037FB300 = 0x037FB300; +FUN_037FB318 = 0x037FB318; SVC_SoftReset = 0x038010D4; SVC_WaitByLoop = 0x038010D8; SVC_WaitIntr = 0x038010DC; @@ -171,3 +159,28 @@ _0380A400 = 0x0380A400; _0380A4A4 = 0x0380A4A4; _0380AA64 = 0x0380AA64; _0380B064 = 0x0380B064; +_0380B764 = 0x0380B764; +_0380B808 = 0x0380B808; +_0380B8AC = 0x0380B8AC; +_0380B8D8 = 0x0380B8D8; +_0380B904 = 0x0380B904; +SDK_AUTOLOAD_EXT_START = 0x06000000; +_060001F8 = 0x060001F8; +_06000204 = 0x06000204; +_06000798 = 0x06000798; +_060009A4 = 0x060009A4; +_06006978 = 0x06006978; +_06008CC4 = 0x06008CC4; +_06019960 = 0x06019960; +_06019980 = 0x06019980; +_06019988 = 0x06019988; +_060199A8 = 0x060199A8; +_060199B8 = 0x060199B8; +_060199D8 = 0x060199D8; +_060199E8 = 0x060199E8; +_06019A08 = 0x06019A08; +_0601A960 = 0x0601A960; +_0601AA88 = 0x0601AA88; +_0601AE88 = 0x0601AE88; +_0601AEB4 = 0x0601AEB4; +SDK_AUTOLOAD_LIST_END = SDK_AUTOLOAD_LIST + 0x24; diff --git a/arm9/Makefile b/arm9/Makefile index a48e5acb..ac28bbcf 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -145,7 +145,7 @@ $(BUILD_DIR)/%.o: %.c $(BUILD_DIR)/%.o: %.s $(AS) $(ASFLAGS) $< -o $@ -$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) undefined_syms.txt +$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) undefined_syms.txt macros.lcf.inc $(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $< $(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BIN_FILES) |