mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
46644 lines
827 KiB
ArmAsm
46644 lines
827 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "asm/include/arm7.inc"
|
|
|
|
.text
|
|
|
|
arm_func_start sub_02000000
|
|
sub_02000000: ; 0x02000000
|
|
mov ip, #0x4000000
|
|
str ip, [ip, #0x208]
|
|
ldr r1, _020000E4 ; =0x023801E8
|
|
mov r0, #0x3800000
|
|
cmp r0, r1
|
|
bpl _0200001C
|
|
b _02000020
|
|
_0200001C:
|
|
mov r1, r0
|
|
_02000020:
|
|
ldr r2, _020000E8 ; =0x0380FF00
|
|
mov r0, #0
|
|
_02000028:
|
|
cmp r1, r2
|
|
blt _02000034
|
|
b _02000038
|
|
_02000034:
|
|
stmia r1!, {r0}
|
|
_02000038:
|
|
blt _02000028
|
|
mov r0, #0x13
|
|
msr cpsr_c, r0
|
|
ldr sp, _020000EC ; =0x0380FFC0
|
|
mov r0, #0x12
|
|
msr cpsr_c, r0
|
|
ldr r0, _020000F0 ; =0x0380FF80
|
|
mov sp, r0
|
|
ldr r1, _020000F4 ; =0x00000400
|
|
sub r1, r0, r1
|
|
mov r0, #0x1f
|
|
msr cpsr_fsxc, r0
|
|
sub sp, r1, #4
|
|
ldr r0, _020000F8 ; =0x023FE940
|
|
ldr r1, _020000FC ; =0x027FFA80
|
|
add r2, r1, #0x160
|
|
_02000078:
|
|
ldr r3, [r0], #4
|
|
str r3, [r1], #4
|
|
cmp r1, r2
|
|
bmi _02000078
|
|
ldr r0, _02000100 ; =0x023FE904
|
|
add r2, r1, #0x20
|
|
_02000090:
|
|
ldr r3, [r0], #4
|
|
str r3, [r1], #4
|
|
cmp r1, r2
|
|
bmi _02000090
|
|
bl sub_02000118
|
|
ldr r0, _02000104 ; =0x023801D0
|
|
ldr r1, [r0, #0xc]
|
|
ldr r2, [r0, #0x10]
|
|
mov r0, #0
|
|
_020000B4:
|
|
cmp r1, r2
|
|
blo _020000C0
|
|
b _020000C4
|
|
_020000C0:
|
|
str r0, [r1], #4
|
|
_020000C4:
|
|
blo _020000B4
|
|
bl sub_0200018C
|
|
ldr r1, _02000108 ; =0x0380FFFC
|
|
ldr r0, _0200010C ; =0x037FB488
|
|
str r0, [r1]
|
|
ldr r1, _02000110 ; =sub_037F8000
|
|
ldr lr, _02000114 ; =0xFFFF0000
|
|
bx r1
|
|
.align 2, 0
|
|
_020000E4: .word 0x023801E8
|
|
_020000E8: .word 0x0380FF00
|
|
_020000EC: .word 0x0380FFC0
|
|
_020000F0: .word 0x0380FF80
|
|
_020000F4: .word 0x00000400
|
|
_020000F8: .word 0x023FE940
|
|
_020000FC: .word 0x027FFA80
|
|
_02000100: .word 0x023FE904
|
|
_02000104: .word 0x023801D0
|
|
_02000108: .word 0x0380FFFC
|
|
_0200010C: .word 0x037FB488
|
|
_02000110: .word sub_037F8000
|
|
_02000114: .word 0xFFFF0000
|
|
arm_func_end sub_02000000
|
|
|
|
arm_func_start sub_02000118
|
|
sub_02000118: ; 0x02000118
|
|
ldr r0, _02000184 ; =0x023801D0
|
|
ldr r1, [r0]
|
|
ldr r2, [r0, #4]
|
|
ldr r3, [r0, #8]
|
|
_02000128:
|
|
cmp r1, r2
|
|
beq _02000180
|
|
ldr r4, [r1], #4
|
|
ldr r5, [r1], #4
|
|
add r6, r4, r5
|
|
_0200013C:
|
|
cmp r4, r6
|
|
bmi _02000148
|
|
b _0200014C
|
|
_02000148:
|
|
ldr r7, [r3], #4
|
|
_0200014C:
|
|
bmi _02000154
|
|
b _02000158
|
|
_02000154:
|
|
str r7, [r4], #4
|
|
_02000158:
|
|
bmi _0200013C
|
|
ldr r5, [r1], #4
|
|
add r6, r4, r5
|
|
mov r7, #0
|
|
_02000168:
|
|
cmp r4, r6
|
|
blo _02000174
|
|
b _02000178
|
|
_02000174:
|
|
str r7, [r4], #4
|
|
_02000178:
|
|
blo _02000168
|
|
beq _02000128
|
|
_02000180:
|
|
b _02000188
|
|
.align 2, 0
|
|
_02000184: .word 0x023801D0
|
|
_02000188:
|
|
bx lr
|
|
arm_func_end sub_02000118
|
|
|
|
arm_func_start sub_0200018C
|
|
sub_0200018C: ; 0x0200018C
|
|
mov r0, #1
|
|
mov r1, #0
|
|
ldr r2, _020001CC ; =0x027FFFFA
|
|
sub r3, r2, #0x400000
|
|
_0200019C:
|
|
strh r1, [r2]
|
|
ldrh ip, [r3]
|
|
cmp r1, ip
|
|
bne _020001B0
|
|
b _020001B4
|
|
_020001B0:
|
|
mov r0, #2
|
|
_020001B4:
|
|
bne _020001C4
|
|
add r1, r1, #1
|
|
cmp r1, #2
|
|
bne _0200019C
|
|
_020001C4:
|
|
strh r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_020001CC: .word 0x027FFFFA
|
|
arm_func_end sub_0200018C
|
|
_020001D0:
|
|
.byte 0x68, 0x70, 0x3A, 0x02, 0x80, 0x70, 0x3A, 0x02, 0xE8, 0x01, 0x38, 0x02, 0xE8, 0x01, 0x38, 0x02
|
|
.byte 0xE8, 0x01, 0x38, 0x02, 0x00, 0x00, 0x00, 0x00
|
|
|
|
arm_func_start sub_020001E8
|
|
sub_020001E8: ; 0x020001E8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x210
|
|
bl sub_02004BD4
|
|
bl sub_0200414C
|
|
add r2, sp, #4
|
|
mov r0, #0x20
|
|
mov r1, #2
|
|
bl sub_00FFD7A0
|
|
ldr r0, [sp, #4]
|
|
add r2, sp, #0x10
|
|
mov r0, r0, lsl #3
|
|
str r0, [sp, #4]
|
|
mov r1, #0x100
|
|
bl sub_00FFD7A0
|
|
ldr r0, [sp, #4]
|
|
add r2, sp, #0x110
|
|
add r0, r0, #0x100
|
|
mov r1, #0x100
|
|
bl sub_00FFD7A0
|
|
mov r0, #0x1d
|
|
mov r1, #1
|
|
add r2, sp, #0
|
|
mov r6, #0
|
|
bl sub_00FFD7A0
|
|
ldrb r0, [sp]
|
|
cmp r0, #0xff
|
|
moveq r0, r6
|
|
beq _02000264
|
|
tst r0, #0x50
|
|
movne r0, #1
|
|
moveq r0, r6
|
|
_02000264:
|
|
cmp r0, #0
|
|
beq _02000338
|
|
bl sub_0200066C
|
|
mov r8, r0
|
|
mov fp, #1
|
|
and r7, r8, #0x40
|
|
mov sl, #0
|
|
add r5, sp, #0x10
|
|
mov r4, fp
|
|
b _0200032C
|
|
_0200028C:
|
|
ldr r0, _0200063C ; =0x0000FFFF
|
|
add sb, r5, sl, lsl #8
|
|
mov r1, sb
|
|
mov r2, #0x70
|
|
bl sub_02000654
|
|
mov r2, sb
|
|
ldrh r1, [r2, #0x72]
|
|
cmp r0, r1
|
|
bne _02000320
|
|
ldrh r0, [r2, #0x70]
|
|
cmp r0, #0x80
|
|
bhs _02000320
|
|
ldr r0, _0200063C ; =0x0000FFFF
|
|
mov r2, #0x8a
|
|
add r1, sb, #0x74
|
|
bl sub_02000654
|
|
mov r2, sb
|
|
ldrh r1, [r2, #0xfe]
|
|
cmp r0, r1
|
|
bne _02000320
|
|
ldrh r1, [r2, #0x76]
|
|
ldrb r0, [r2, #0x75]
|
|
tst r1, r4, lsl r0
|
|
beq _02000320
|
|
tst r8, r1
|
|
ldrneh r1, [sb, #0x64]
|
|
andne r0, r0, #7
|
|
bicne r1, r1, #7
|
|
orrne r0, r1, r0
|
|
strneh r0, [sb, #0x64]
|
|
add r0, r5, sl, lsl #8
|
|
ldrh r0, [r0, #0x76]
|
|
mvn r0, r0
|
|
tst r7, r0
|
|
movne r6, #3
|
|
bne _020003D8
|
|
orr r6, r6, fp, lsl sl
|
|
_02000320:
|
|
add r0, sl, #1
|
|
mov r0, r0, lsl #0x10
|
|
mov sl, r0, lsr #0x10
|
|
_0200032C:
|
|
cmp sl, #2
|
|
blo _0200028C
|
|
b _0200039C
|
|
_02000338:
|
|
bl sub_0200066C
|
|
tst r0, #0x40
|
|
movne r6, #3
|
|
bne _020003D8
|
|
ldr r8, _0200063C ; =0x0000FFFF
|
|
mov sb, #0
|
|
add r7, sp, #0x10
|
|
mov r4, #1
|
|
mov r5, #0x70
|
|
_0200035C:
|
|
mov r0, r8
|
|
mov r2, r5
|
|
add r1, r7, sb, lsl #8
|
|
bl sub_02000654
|
|
add r2, r7, sb, lsl #8
|
|
ldrh r1, [r2, #0x72]
|
|
cmp r0, r1
|
|
bne _02000388
|
|
ldrh r0, [r2, #0x70]
|
|
cmp r0, #0x80
|
|
orrlo r6, r6, r4, lsl sb
|
|
_02000388:
|
|
add r0, sb, #1
|
|
mov r0, r0, lsl #0x10
|
|
mov sb, r0, lsr #0x10
|
|
cmp sb, #2
|
|
blo _0200035C
|
|
_0200039C:
|
|
cmp r6, #1
|
|
cmpne r6, #2
|
|
beq _020003D8
|
|
cmp r6, #3
|
|
bne _020003D4
|
|
ldrh r1, [sp, #0x80]
|
|
add r0, sp, #0x100
|
|
add r1, r1, #1
|
|
ldrh r0, [r0, #0x80]
|
|
and r1, r1, #0x7f
|
|
cmp r1, r0
|
|
moveq r6, #2
|
|
movne r6, #1
|
|
b _020003D8
|
|
_020003D4:
|
|
mov r6, #0
|
|
_020003D8:
|
|
cmp r6, #3
|
|
blt _020003F4
|
|
ldr r1, _02000640 ; =0x027FFC80
|
|
mvn r0, #0
|
|
mov r2, #0x74
|
|
bl sub_020061B8
|
|
b _020004B0
|
|
_020003F4:
|
|
cmp r6, #0
|
|
beq _020004A0
|
|
ldr r0, _02000644 ; =0xFFFFFF2A
|
|
mov r1, r6, lsl #8
|
|
add r0, sp, r0
|
|
ldrb r0, [r0, r6, lsl #8]
|
|
cmp r0, #0xa
|
|
bhs _02000440
|
|
add r0, sp, #0x10
|
|
mov r3, #0xa
|
|
mov r2, #0
|
|
add r1, r0, r1
|
|
b _02000434
|
|
_02000428:
|
|
add r0, r1, r3, lsl #1
|
|
strh r2, [r0, #-0xfc]
|
|
sub r3, r3, #1
|
|
_02000434:
|
|
ldrb r0, [r1, #-0xe6]
|
|
cmp r3, r0
|
|
bgt _02000428
|
|
_02000440:
|
|
ldr r0, _02000648 ; =0xFFFFFF60
|
|
mov r1, r6, lsl #8
|
|
add r0, sp, r0
|
|
ldrb r0, [r0, r6, lsl #8]
|
|
cmp r0, #0x1a
|
|
bhs _02000484
|
|
add r0, sp, #0x10
|
|
mov r3, #0x1a
|
|
mov r2, #0
|
|
add r1, r0, r1
|
|
b _02000478
|
|
_0200046C:
|
|
add r0, r1, r3, lsl #1
|
|
strh r2, [r0, #-0xe6]
|
|
sub r3, r3, #1
|
|
_02000478:
|
|
ldrb r0, [r1, #-0xb0]
|
|
cmp r3, r0
|
|
bgt _0200046C
|
|
_02000484:
|
|
ldr r1, _02000640 ; =0x027FFC80
|
|
add r2, sp, #0x10
|
|
sub r0, r6, #1
|
|
add r0, r2, r0, lsl #8
|
|
mov r2, #0x74
|
|
bl sub_020061D4
|
|
b _020004B0
|
|
_020004A0:
|
|
ldr r1, _02000640 ; =0x027FFC80
|
|
mov r0, #0
|
|
mov r2, #0x74
|
|
bl sub_020061B8
|
|
_020004B0:
|
|
add r2, sp, #8
|
|
mov r0, #0x36
|
|
mov r1, #6
|
|
bl sub_00FFD7A0
|
|
ldr r4, _02000640 ; =0x027FFC80
|
|
add r0, sp, #8
|
|
add r1, r4, #0x74
|
|
mov r2, #6
|
|
bl sub_02006314
|
|
add r2, sp, #2
|
|
mov r0, #0x3c
|
|
mov r1, #2
|
|
bl sub_00FFD7A0
|
|
ldrh r0, [sp, #2]
|
|
mov r0, r0, lsl #0xf
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0200F5BC
|
|
strh r0, [r4, #0x7a]
|
|
bl sub_0200649C
|
|
mov r0, #8
|
|
bl sub_02004C7C
|
|
mov r4, r0
|
|
mov r0, #8
|
|
bl sub_02004C90
|
|
mov r1, r0
|
|
mov r2, r4
|
|
mov r0, #8
|
|
mov r3, #1
|
|
bl sub_0200500C
|
|
mov r4, r0
|
|
mov r0, #8
|
|
bl sub_02004C7C
|
|
sub r2, r0, r4
|
|
mov r0, r4
|
|
mov r1, #0
|
|
bl sub_02006258
|
|
mov r1, r4
|
|
mov r0, #8
|
|
bl sub_02004D78
|
|
mov r0, #8
|
|
bl sub_02004C7C
|
|
mov r4, r0
|
|
mov r0, #8
|
|
bl sub_02004C90
|
|
mov r1, r0
|
|
mov r2, r4
|
|
mov r0, #8
|
|
bl sub_020050B4
|
|
movs r4, r0
|
|
bpl _0200057C
|
|
bl sub_02006058
|
|
_0200057C:
|
|
mov r1, r4
|
|
mov r0, #8
|
|
bl sub_02004FD8
|
|
mov r1, r4
|
|
mov r0, #8
|
|
bl sub_02005154
|
|
cmp r0, #0x2100
|
|
bhs _020005A0
|
|
bl sub_02006058
|
|
_020005A0:
|
|
mov r0, #6
|
|
bl sub_020070E0
|
|
bl sub_020067A8
|
|
ldr r1, _0200064C ; =0x037F84BC
|
|
mov r0, #1
|
|
bl sub_020039A4
|
|
mov r0, #1
|
|
bl sub_02003AD8
|
|
ldr r3, _02000650 ; =0x04000004
|
|
mov r0, #1
|
|
ldrh r1, [r3]
|
|
ldrh r1, [r3]
|
|
add r2, r3, #0x204
|
|
orr r1, r1, #8
|
|
strh r1, [r3]
|
|
ldrh r1, [r2]
|
|
strh r0, [r2]
|
|
bl sub_02005ED4
|
|
mvn r0, #0
|
|
bl sub_0200A800
|
|
mov r0, #0xf
|
|
bl sub_0200A8C8
|
|
mov r0, #0xc
|
|
bl sub_00FFDEAC
|
|
mov r0, r4
|
|
bl sub_0200D430
|
|
mov r0, #2
|
|
bl sub_0200BA5C
|
|
mov r4, #0
|
|
_02000614:
|
|
bl sub_02000660
|
|
bl sub_02005F9C
|
|
cmp r0, #0
|
|
beq _02000630
|
|
mov r0, r4
|
|
bl sub_0200E7F8
|
|
bl sub_02005FE0
|
|
_02000630:
|
|
bl sub_0200EA30
|
|
bl sub_0200B8A4
|
|
b _02000614
|
|
.align 2, 0
|
|
_0200063C: .word 0x0000FFFF
|
|
_02000640: .word 0x027FFC80
|
|
_02000644: .word 0xFFFFFF2A
|
|
_02000648: .word 0xFFFFFF60
|
|
_0200064C: .word 0x037F84BC
|
|
_02000650: .word 0x04000004
|
|
arm_func_end sub_020001E8
|
|
|
|
arm_func_start sub_02000654
|
|
sub_02000654: ; 0x02000654
|
|
ldr ip, _0200065C ; =sub_03803804
|
|
bx ip
|
|
.align 2, 0
|
|
_0200065C: .word sub_03803804
|
|
arm_func_end sub_02000654
|
|
|
|
arm_func_start sub_02000660
|
|
sub_02000660: ; 0x02000660
|
|
ldr ip, _02000668 ; =sub_038037D2
|
|
bx ip
|
|
.align 2, 0
|
|
_02000668: .word sub_038037D2
|
|
arm_func_end sub_02000660
|
|
|
|
arm_func_start sub_0200066C
|
|
sub_0200066C: ; 0x0200066C
|
|
ldr r1, _020006A0 ; =0x027FFE1D
|
|
mov r0, #0
|
|
ldrb r1, [r1]
|
|
cmp r1, #0x80
|
|
orreq r0, r0, #0x40
|
|
moveq r0, r0, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
bxeq lr
|
|
cmp r1, #0x40
|
|
orreq r0, r0, #0x80
|
|
moveq r0, r0, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
bx lr
|
|
.align 2, 0
|
|
_020006A0: .word 0x027FFE1D
|
|
arm_func_end sub_0200066C
|
|
|
|
arm_func_start sub_020006A4
|
|
sub_020006A4: ; 0x020006A4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _020006C4 ; =0x03809E50
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _020006BC
|
|
bl sub_0200D2E4
|
|
_020006BC:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020006C4: .word 0x03809E50
|
|
arm_func_end sub_020006A4
|
|
|
|
arm_func_start sub_020006C8
|
|
sub_020006C8: ; 0x020006C8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r7, _02000774 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r8, [r7]
|
|
ldr r4, _02000778 ; =0x01000010
|
|
strh r0, [r8, #0x10]
|
|
ldr sb, _0200077C ; =0x0000FFFF
|
|
strh r0, [r8, #0x14]
|
|
add r6, sp, #0
|
|
mov r5, r0
|
|
_020006F0:
|
|
ldr r0, [r7]
|
|
mov r1, r6
|
|
ldr r0, [r0, #0x308]
|
|
mov r2, r5
|
|
bl sub_02004948
|
|
cmp r0, #0
|
|
beq _02000714
|
|
mov r0, r6
|
|
bl sub_020008EC
|
|
_02000714:
|
|
mov r0, r4
|
|
bl sub_02003B10
|
|
ldrh r1, [r8, #0x10]
|
|
strh r1, [r8, #0x12]
|
|
mov r1, r1, lsl #1
|
|
ldrh r1, [r8, r1]
|
|
cmp r1, sb
|
|
bne _02000748
|
|
ldrh r1, [r8, #0x10]
|
|
add r1, r1, #1
|
|
strh r1, [r8, #0x10]
|
|
bl sub_02003AD8
|
|
b _020006F0
|
|
_02000748:
|
|
bl sub_02003AD8
|
|
ldrh r0, [r8, #0x12]
|
|
bl sub_02000838
|
|
strh r0, [r8, #0x14]
|
|
ldrh r0, [r8, #0x14]
|
|
add r0, r8, r0, lsl #3
|
|
ldr r0, [r0, #0xc0]
|
|
mov lr, pc
|
|
bx r0
|
|
_0200076C: ; 0x0200076C
|
|
strh sb, [r8, #0x14]
|
|
b _020006F0
|
|
.align 2, 0
|
|
_02000774: .word 0x0380FFF4
|
|
_02000778: .word 0x01000010
|
|
_0200077C: .word 0x0000FFFF
|
|
arm_func_end sub_020006C8
|
|
|
|
arm_func_start sub_02000780
|
|
sub_02000780: ; 0x02000780
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r2, _02000830 ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r4, [r2]
|
|
ldr r0, _02000834 ; =0x01000010
|
|
mov r6, r1
|
|
add r5, r4, #0xbc
|
|
bl sub_02003B10
|
|
add r2, r5, r6, lsl #3
|
|
ldrh r1, [r2, #2]
|
|
mov ip, r6, lsl #3
|
|
cmp r1, #0
|
|
bne _020007F8
|
|
mov r3, #1
|
|
strh r3, [r2, #2]
|
|
rsb r1, r3, #0x10000
|
|
strh r1, [r5, ip]
|
|
add r1, r4, r7, lsl #1
|
|
ldrh r2, [r1, #8]
|
|
rsb r1, r3, #0x10000
|
|
cmp r2, r1
|
|
mov r1, r7, lsl #1
|
|
streqh r6, [r4, r1]
|
|
addne r1, r4, r2, lsl #3
|
|
strneh r6, [r1, #0xbc]
|
|
add r1, r4, r7, lsl #1
|
|
strh r6, [r1, #8]
|
|
ldrh r1, [r4, #0x10]
|
|
cmp r7, r1
|
|
strlth r7, [r4, #0x10]
|
|
_020007F8:
|
|
bl sub_02003AD8
|
|
cmp r7, #3
|
|
beq _02000828
|
|
ldrh r0, [r4, #0x12]
|
|
cmp r0, #3
|
|
bne _02000828
|
|
ldr r0, _02000830 ; =0x0380FFF4
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
mov r2, r1
|
|
ldr r0, [r0, #0x308]
|
|
bl sub_020048BC
|
|
_02000828:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02000830: .word 0x0380FFF4
|
|
_02000834: .word 0x01000010
|
|
arm_func_end sub_02000780
|
|
|
|
arm_func_start sub_02000838
|
|
sub_02000838: ; 0x02000838
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _020008A4 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, _020008A8 ; =0x01000010
|
|
ldr r4, [r1]
|
|
bl sub_02003B10
|
|
mov lr, r5, lsl #1
|
|
ldrh r5, [r4, lr]
|
|
ldr r2, _020008AC ; =0x0000FFFF
|
|
cmp r5, r2
|
|
beq _02000894
|
|
add ip, r4, #0xbc
|
|
add r1, ip, r5, lsl #3
|
|
mov r3, #0
|
|
strh r3, [r1, #2]
|
|
mov r3, r5, lsl #3
|
|
ldrh r1, [ip, r3]
|
|
cmp r1, r2
|
|
streqh r2, [r4, lr]
|
|
addeq r1, r4, lr
|
|
streqh r2, [r1, #8]
|
|
strneh r1, [r4, lr]
|
|
strneh r2, [ip, r3]
|
|
_02000894:
|
|
bl sub_02003AD8
|
|
mov r0, r5
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020008A4: .word 0x0380FFF4
|
|
_020008A8: .word 0x01000010
|
|
_020008AC: .word 0x0000FFFF
|
|
arm_func_end sub_02000838
|
|
|
|
arm_func_start sub_020008B0
|
|
sub_020008B0: ; 0x020008B0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _020008E8 ; =0x0380FFF4
|
|
add r1, sp, #0
|
|
ldr r0, [r0]
|
|
mov r2, #1
|
|
ldr r0, [r0, #0x308]
|
|
bl sub_02004948
|
|
add r0, sp, #0
|
|
bl sub_020008EC
|
|
mov r0, #3
|
|
mov r1, #0xc
|
|
bl sub_02000780
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020008E8: .word 0x0380FFF4
|
|
arm_func_end sub_020008B0
|
|
|
|
arm_func_start sub_020008EC
|
|
sub_020008EC: ; 0x020008EC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
beq _02000918
|
|
ldr r0, _02000920 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x200
|
|
bl sub_02000924
|
|
mov r0, #2
|
|
mov r1, #0xb
|
|
bl sub_02000780
|
|
_02000918:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02000920: .word 0x0380FFF4
|
|
arm_func_end sub_020008EC
|
|
|
|
arm_func_start sub_02000924
|
|
sub_02000924: ; 0x02000924
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r0, #0x1000000
|
|
mov r4, r1
|
|
bl sub_02003B10
|
|
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 r2, [r5, #0xa]
|
|
ldr r1, _02000990 ; =0x0000BF1D
|
|
strh r2, [r4, #8]
|
|
strh r1, [r4, #0xa]
|
|
str r4, [r5, #4]
|
|
ldrh r1, [r5, #8]
|
|
add r1, r1, #1
|
|
strh r1, [r5, #8]
|
|
bl sub_02003AD8
|
|
mov r0, #0
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02000990: .word 0x0000BF1D
|
|
arm_func_end sub_02000924
|
|
|
|
arm_func_start sub_02000994
|
|
sub_02000994: ; 0x02000994
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r1
|
|
ldrh r2, [r4, #0xa]
|
|
ldr r1, _02000A50 ; =0x0000BF1D
|
|
mov r5, r0
|
|
cmp r2, r1
|
|
movne r0, #1
|
|
bne _02000A48
|
|
ldrh r1, [r4, #8]
|
|
ldrh r0, [r5, #0xa]
|
|
cmp r1, r0
|
|
movne r0, #2
|
|
bne _02000A48
|
|
mov r0, #0x1000000
|
|
bl sub_02003B10
|
|
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 _02000A38
|
|
ldr r1, [r5]
|
|
cmp r4, r1
|
|
ldreq r2, [r4, #4]
|
|
mvneq r1, #0
|
|
streq r2, [r5]
|
|
streq r1, [r2]
|
|
beq _02000A38
|
|
ldr r1, [r5, #4]
|
|
ldr r2, [r4]
|
|
cmp r4, r1
|
|
streq r2, [r5, #4]
|
|
mvneq r1, #0
|
|
streq r1, [r2, #4]
|
|
ldrne r1, [r4, #4]
|
|
strne r2, [r1]
|
|
ldmneia r4, {r1, r2}
|
|
strne r2, [r1, #4]
|
|
_02000A38:
|
|
mov r1, #0
|
|
strh r1, [r4, #8]
|
|
bl sub_02003AD8
|
|
mov r0, #0
|
|
_02000A48:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02000A50: .word 0x0000BF1D
|
|
arm_func_end sub_02000994
|
|
|
|
arm_func_start sub_02000A54
|
|
sub_02000A54: ; 0x02000A54
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _02000AE8 ; =0x0380FFF4
|
|
movs r3, r1
|
|
ldr r1, [r2]
|
|
mov r5, r0
|
|
moveq r0, #0
|
|
beq _02000AE0
|
|
ldr r0, [r1, #0x17c]
|
|
cmp r0, #0
|
|
beq _02000A88
|
|
cmp r0, #1
|
|
beq _02000AA0
|
|
b _02000AB4
|
|
_02000A88:
|
|
ldr r0, [r1, #0x180]
|
|
ldr r1, [r1, #0x184]
|
|
add r2, r3, #0xc
|
|
bl sub_02004E5C
|
|
mov r4, r0
|
|
b _02000AB4
|
|
_02000AA0:
|
|
ldr r1, [r1, #0x180]
|
|
add r0, r3, #0xc
|
|
mov lr, pc
|
|
bx r1
|
|
_02000AB0:
|
|
mov r4, r0
|
|
_02000AB4:
|
|
cmp r4, #0
|
|
moveq r0, #0
|
|
beq _02000AE0
|
|
ldr r1, _02000AEC ; =0x0000BF1D
|
|
mov r0, r5
|
|
strh r1, [r4, #0xa]
|
|
mov r2, #0
|
|
mov r1, r4
|
|
strh r2, [r4, #8]
|
|
bl sub_02000BDC
|
|
mov r0, r4
|
|
_02000AE0:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02000AE8: .word 0x0380FFF4
|
|
_02000AEC: .word 0x0000BF1D
|
|
arm_func_end sub_02000A54
|
|
|
|
arm_func_start sub_02000AF0
|
|
sub_02000AF0: ; 0x02000AF0
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r4, r1
|
|
ldr r5, _02000B68 ; =0x0380FFF4
|
|
ldrh r3, [r4, #0xa]
|
|
ldr r2, _02000B6C ; =0x0000BF1D
|
|
ldr r5, [r5]
|
|
cmp r3, r2
|
|
movne r0, #1
|
|
bne _02000B60
|
|
bl sub_02000994
|
|
movs r6, r0
|
|
bne _02000B5C
|
|
ldr r0, [r5, #0x17c]
|
|
cmp r0, #0
|
|
beq _02000B38
|
|
cmp r0, #1
|
|
beq _02000B4C
|
|
b _02000B5C
|
|
_02000B38:
|
|
ldr r0, [r5, #0x180]
|
|
ldr r1, [r5, #0x184]
|
|
mov r2, r4
|
|
bl sub_02004F6C
|
|
b _02000B5C
|
|
_02000B4C:
|
|
ldr r1, [r5, #0x184]
|
|
mov r0, r4
|
|
mov lr, pc
|
|
bx r1
|
|
_02000B5C:
|
|
mov r0, r6
|
|
_02000B60:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02000B68: .word 0x0380FFF4
|
|
_02000B6C: .word 0x0000BF1D
|
|
arm_func_end sub_02000AF0
|
|
|
|
arm_func_start sub_02000B70
|
|
sub_02000B70: ; 0x02000B70
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r6, r2
|
|
ldrh r3, [r6, #0xa]
|
|
ldr r2, _02000BD8 ; =0x0000BF1D
|
|
mov r4, r0
|
|
cmp r3, r2
|
|
mov r7, r1
|
|
movne r0, #1
|
|
bne _02000BD0
|
|
mov r0, #0x1000000
|
|
bl sub_02003B10
|
|
mov r5, r0
|
|
mov r0, r4
|
|
mov r1, r6
|
|
bl sub_02000994
|
|
movs r4, r0
|
|
bne _02000BC4
|
|
mov r0, r7
|
|
mov r1, r6
|
|
bl sub_02000BDC
|
|
mov r4, r0
|
|
_02000BC4:
|
|
mov r0, r5
|
|
bl sub_02003AD8
|
|
mov r0, r4
|
|
_02000BD0:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02000BD8: .word 0x0000BF1D
|
|
arm_func_end sub_02000B70
|
|
|
|
arm_func_start sub_02000BDC
|
|
sub_02000BDC: ; 0x02000BDC
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r1
|
|
ldrh r2, [r4, #0xa]
|
|
ldr r1, _02000C64 ; =0x0000BF1D
|
|
mov r5, r0
|
|
cmp r2, r1
|
|
movne r0, #1
|
|
bne _02000C5C
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0
|
|
movne r0, #2
|
|
bne _02000C5C
|
|
mov r0, #0x1000000
|
|
bl sub_02003B10
|
|
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, #0xa]
|
|
strh r1, [r4, #8]
|
|
str r4, [r5, #4]
|
|
ldrh r1, [r5, #8]
|
|
add r1, r1, #1
|
|
strh r1, [r5, #8]
|
|
bl sub_02003AD8
|
|
mov r0, #0
|
|
_02000C5C:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02000C64: .word 0x0000BF1D
|
|
arm_func_end sub_02000BDC
|
|
|
|
arm_func_start sub_02000C68
|
|
sub_02000C68: ; 0x02000C68
|
|
ldr r0, [r0, #4]
|
|
bx lr
|
|
arm_func_end sub_02000C68
|
|
|
|
arm_func_start sub_02000C70
|
|
sub_02000C70: ; 0x02000C70
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r4, _02000F20 ; =0x0380FFF4
|
|
mov r3, #0
|
|
ldr r2, [r4]
|
|
mov r6, r3
|
|
add r0, r2, #0x24
|
|
add r5, r0, #0x400
|
|
ldrh r0, [r5, #4]
|
|
cmp r0, #0
|
|
bne _02000F18
|
|
ldr r0, [r2, #0x200]
|
|
sub r2, r3, #1
|
|
str r0, [r5]
|
|
cmp r0, r2
|
|
beq _02000F18
|
|
ldr r2, [r4]
|
|
ldrh r4, [r0, #0xe]
|
|
add ip, r2, #0x300
|
|
ldrh r2, [ip, #0x3e]
|
|
add r4, r0, r4, lsl #1
|
|
cmp r2, #0
|
|
movne r0, #1
|
|
strneh r0, [r4, #0x12]
|
|
movne r0, #6
|
|
strneh r0, [r4, #0x14]
|
|
bne _02000ED0
|
|
ldrh r7, [r0, #0xc]
|
|
ldrh r2, [r4, #0x10]
|
|
cmp r7, r2
|
|
movne r0, #0xd
|
|
strneh r0, [r4, #0x14]
|
|
bne _02000ED0
|
|
and r2, r7, #0xff00
|
|
cmp r2, #0x100
|
|
bgt _02000D0C
|
|
bge _02000D58
|
|
cmp r2, #0
|
|
beq _02000D28
|
|
b _02000E38
|
|
_02000D0C:
|
|
cmp r2, #0x200
|
|
bgt _02000D1C
|
|
beq _02000D78
|
|
b _02000E38
|
|
_02000D1C:
|
|
cmp r2, #0x300
|
|
beq _02000E24
|
|
b _02000E38
|
|
_02000D28:
|
|
ldrh r6, [r5, #4]
|
|
ldr r1, _02000F24 ; =0x027F7648
|
|
tst r6, #1
|
|
and r2, r7, #0xff
|
|
mov r6, #1
|
|
mov lr, #0xb
|
|
movne r3, #2
|
|
bne _02000E40
|
|
ldrh r7, [ip, #0x4c]
|
|
cmp r7, #0x20
|
|
movlo r3, r6
|
|
b _02000E40
|
|
_02000D58:
|
|
ldrh r6, [ip, #0x4c]
|
|
ldr r1, _02000F28 ; =0x027F75C0
|
|
cmp r6, #0x40
|
|
and r2, r7, #0xff
|
|
mov r6, #2
|
|
mov lr, #5
|
|
movne r3, #1
|
|
b _02000E40
|
|
_02000D78:
|
|
and r2, r7, #0xff
|
|
cmp r2, #0x40
|
|
bhs _02000DA0
|
|
ldrh r1, [ip, #0x4c]
|
|
mov r6, #4
|
|
cmp r1, #0x10
|
|
ldr r1, _02000F2C ; =0x027F77B0
|
|
movlo r3, #1
|
|
mov lr, #0x17
|
|
b _02000E40
|
|
_02000DA0:
|
|
cmp r2, #0x80
|
|
bhs _02000DD0
|
|
ldrh r1, [ip, #0x4c]
|
|
mov r6, #8
|
|
cmp r1, #0x40
|
|
sub r1, r2, #0x40
|
|
mov r2, r1, lsl #0x10
|
|
ldr r1, _02000F30 ; =0x027F7618
|
|
movne r3, #1
|
|
mov r2, r2, lsr #0x10
|
|
mov lr, #6
|
|
b _02000E40
|
|
_02000DD0:
|
|
ldrh r1, [ip, #0x4c]
|
|
cmp r2, #0xc0
|
|
bhs _02000E00
|
|
cmp r1, #0x10
|
|
sub r1, r2, #0x80
|
|
mov r2, r1, lsl #0x10
|
|
ldr r1, _02000F34 ; =0x027F76F8
|
|
movlo r3, #1
|
|
mov r2, r2, lsr #0x10
|
|
mov r6, #0x10
|
|
mov lr, #0x17
|
|
b _02000E40
|
|
_02000E00:
|
|
cmp r1, #0x10
|
|
sub r1, r2, #0xc0
|
|
mov r2, r1, lsl #0x10
|
|
ldr r1, _02000F38 ; =0x027F75E8
|
|
movlo r3, #1
|
|
mov r2, r2, lsr #0x10
|
|
mov r6, #0x20
|
|
mov lr, #6
|
|
b _02000E40
|
|
_02000E24:
|
|
ldr r1, _02000F3C ; =0x027F76A0
|
|
and r2, r7, #0xff
|
|
mov r6, #0x40
|
|
mov lr, #0xb
|
|
b _02000E40
|
|
_02000E38:
|
|
mov r2, #1
|
|
mov lr, #0
|
|
_02000E40:
|
|
cmp r2, lr
|
|
movhi r3, #3
|
|
bhi _02000E70
|
|
mov lr, r2, lsl #3
|
|
ldrh r7, [r0, #0xe]
|
|
ldrh ip, [r1, lr]
|
|
cmp r7, ip
|
|
addhs ip, r1, lr
|
|
ldrhsh lr, [r4, #0x12]
|
|
ldrhsh ip, [ip, #2]
|
|
cmphs lr, ip
|
|
movlo r3, #4
|
|
_02000E70:
|
|
cmp r3, #0
|
|
movne r0, #1
|
|
strneh r0, [r4, #0x12]
|
|
strneh r3, [r4, #0x14]
|
|
bne _02000ED0
|
|
ldrh r3, [r5, #4]
|
|
add r1, r1, r2, lsl #3
|
|
orr r2, r3, r6
|
|
strh r2, [r5, #4]
|
|
ldr r2, [r1, #4]
|
|
add r1, r4, #0x10
|
|
mov lr, pc
|
|
bx r2
|
|
_02000EA4:
|
|
strh r0, [r4, #0x14]
|
|
ldrh r0, [r4, #0x14]
|
|
cmp r0, #0x80
|
|
beq _02000F18
|
|
cmp r0, #0x81
|
|
bne _02000ED0
|
|
ldrh r1, [r5, #4]
|
|
mvn r0, r6
|
|
and r0, r1, r0
|
|
strh r0, [r5, #4]
|
|
b _02000EF4
|
|
_02000ED0:
|
|
ldrh r1, [r5, #4]
|
|
mvn r0, r6
|
|
and r0, r1, r0
|
|
strh r0, [r5, #4]
|
|
ldr r0, _02000F20 ; =0x0380FFF4
|
|
ldr r1, [r5]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x200
|
|
bl sub_02000F40
|
|
_02000EF4:
|
|
ldr r0, _02000F20 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x200
|
|
ldrh r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _02000F18
|
|
mov r0, #2
|
|
mov r1, #0xb
|
|
bl sub_02000780
|
|
_02000F18:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02000F20: .word 0x0380FFF4
|
|
_02000F24: .word 0x027F7648
|
|
_02000F28: .word 0x027F75C0
|
|
_02000F2C: .word 0x027F77B0
|
|
_02000F30: .word 0x027F7618
|
|
_02000F34: .word 0x027F76F8
|
|
_02000F38: .word 0x027F75E8
|
|
_02000F3C: .word 0x027F76A0
|
|
arm_func_end sub_02000C70
|
|
|
|
arm_func_start sub_02000F40
|
|
sub_02000F40: ; 0x02000F40
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _02000FC4 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r3, [r2]
|
|
mov r4, r1
|
|
add r2, r3, #0x100
|
|
ldrh r2, [r2, #0xfc]
|
|
cmp r2, #0
|
|
beq _02000F80
|
|
mov r2, r4
|
|
add r1, r3, #0x1f4
|
|
bl sub_02000B70
|
|
mov r0, #2
|
|
mov r1, #0x13
|
|
bl sub_02000780
|
|
b _02000FBC
|
|
_02000F80:
|
|
ldr r0, [r3, #0x304]
|
|
mov r2, #0
|
|
bl sub_020048BC
|
|
cmp r0, #0
|
|
beq _02000FA4
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_02000994
|
|
b _02000FBC
|
|
_02000FA4:
|
|
ldr r1, _02000FC4 ; =0x0380FFF4
|
|
mov r0, r5
|
|
ldr r1, [r1]
|
|
mov r2, r4
|
|
add r1, r1, #0x1f4
|
|
bl sub_02000B70
|
|
_02000FBC:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02000FC4: .word 0x0380FFF4
|
|
arm_func_end sub_02000F40
|
|
|
|
arm_func_start sub_02000FC8
|
|
sub_02000FC8: ; 0x02000FC8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #8
|
|
ldr r0, _02001334 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r6, r0, #0x344
|
|
add r4, r0, #0x31c
|
|
bl sub_02001380
|
|
ldr r1, _02001338 ; =0x04808044
|
|
ldrh r2, [r1]
|
|
ldrh r0, [r1]
|
|
ldrh r1, [r1]
|
|
add r0, r2, r0, lsl #8
|
|
bl sub_00FF2F54
|
|
mov r0, #1
|
|
strh r0, [r6, #0x7c]
|
|
ldrh r0, [r4, #0x1e]
|
|
ldr r2, _0200133C ; =0x04808032
|
|
mov r0, r0, lsl #0x1d
|
|
mov r0, r0, lsr #0x1f
|
|
cmp r0, #1
|
|
ldreqh r0, [r6, #0x7c]
|
|
ldr r1, _02001340 ; =0x04808134
|
|
orreq r0, r0, #0x20
|
|
streqh r0, [r6, #0x7c]
|
|
ldrh r0, [r4, #0x18]
|
|
mov r4, #0
|
|
cmp r0, #0
|
|
ldrneh r0, [r6, #0x7c]
|
|
mov r3, #0x8000
|
|
orrne r0, r0, #0x10
|
|
strneh r0, [r6, #0x7c]
|
|
strh r4, [r6, #0x12]
|
|
ldr r0, _02001344 ; =0x0000FFFF
|
|
strh r3, [r2]
|
|
strh r0, [r1]
|
|
strh r4, [r2, #-8]
|
|
sub r0, r1, #0x10c
|
|
strh r4, [r0]
|
|
mov r0, #0xf
|
|
strh r0, [r1, #-0xfc]
|
|
bl sub_00FF46F8
|
|
bl sub_00FFCEA8
|
|
bl sub_020030A8
|
|
bl sub_020033C8
|
|
ldr r2, _02001348 ; =0x04808030
|
|
mov r1, #0x8000
|
|
strh r1, [r2]
|
|
ldr r0, _02001344 ; =0x0000FFFF
|
|
ldr r1, _0200134C ; =0x048081AE
|
|
strh r0, [r2, #-0x20]
|
|
sub r2, r0, #0xe000
|
|
ldr r0, _02001334 ; =0x0380FFF4
|
|
strh r2, [r1]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #8
|
|
movne r0, #0x400
|
|
strneh r0, [r1, #-4]
|
|
moveq r0, r4
|
|
streqh r0, [r1, #-4]
|
|
ldr r2, _02001350 ; =0x04808008
|
|
mov r3, #0
|
|
strh r3, [r2]
|
|
strh r3, [r2, #2]
|
|
ldrh r0, [r6, #0xc]
|
|
cmp r0, #4
|
|
addls pc, pc, r0, lsl #2
|
|
b _020012F8
|
|
_020010DC: ; jump table
|
|
b _020010F0 ; case 0
|
|
b _02001120 ; case 1
|
|
b _02001204 ; case 2
|
|
b _02001284 ; case 3
|
|
b _020012DC ; case 4
|
|
_020010F0:
|
|
ldr r0, _02001344 ; =0x0000FFFF
|
|
mov r1, #0x3f
|
|
strh r1, [r2, #0xa]
|
|
strh r0, [r2, #0xc8]
|
|
mov r0, #8
|
|
strh r0, [r2, #0xd8]
|
|
strh r3, [r2]
|
|
strh r3, [r2, #2]
|
|
strh r3, [r2, #0xe0]
|
|
mov r0, #1
|
|
strh r0, [r2, #-4]
|
|
b _020012F8
|
|
_02001120:
|
|
ldr r3, _02001354 ; =0x0000703F
|
|
ldr r0, _02001358 ; =0x00001FFF
|
|
ldr r1, _0200134C ; =0x048081AE
|
|
strh r3, [r2, #0xa]
|
|
strh r0, [r1]
|
|
rsb r0, r0, #0x2300
|
|
strh r0, [r1, #-0xde]
|
|
mov r0, #0xd
|
|
strh r0, [r1, #-0xce]
|
|
mov r0, #0xe000
|
|
strh r0, [r2]
|
|
mov r0, #1
|
|
strh r0, [r2, #-4]
|
|
ldrh r0, [r1, #-0xb6]
|
|
add r7, sp, #0
|
|
strh r0, [r7]
|
|
ldrh r0, [r1, #-0xb4]
|
|
mov r4, #0
|
|
strh r0, [r7, #2]
|
|
ldrh r2, [r1, #-0xb2]
|
|
ldr r0, [sp]
|
|
strh r2, [r7, #4]
|
|
ldrh r1, [r1, #-0xb0]
|
|
mov r3, r4
|
|
strh r1, [r7, #6]
|
|
ldrh r2, [r6, #0x6e]
|
|
ldr r1, [sp, #4]
|
|
mov r5, r2, lsl #0xa
|
|
mov r2, r5
|
|
bl sub_0200ED68
|
|
adds r3, r0, #1
|
|
umull r2, r0, r3, r5
|
|
mla r0, r3, r4, r0
|
|
adc r1, r1, #0
|
|
mla r0, r1, r5, r0
|
|
str r0, [sp, #4]
|
|
ldrh r0, [r7, #6]
|
|
ldr r3, _0200135C ; =0x048080F6
|
|
str r2, [sp]
|
|
strh r0, [r3]
|
|
ldrh r0, [r7, #4]
|
|
mov r1, #1
|
|
strh r0, [r3, #-2]
|
|
ldrh r2, [r7, #2]
|
|
mov r0, #0x40
|
|
strh r2, [r3, #-4]
|
|
ldrh r2, [r7]
|
|
orr r2, r2, #1
|
|
strh r2, [r3, #-6]
|
|
strh r1, [r3, #-0xe]
|
|
strh r1, [r3, #-0xc]
|
|
bl sub_02001420
|
|
bl sub_00FF9384
|
|
ldr r0, _02001360 ; =0x048080AE
|
|
mov r1, #2
|
|
strh r1, [r0]
|
|
b _020012F8
|
|
_02001204:
|
|
ldr r1, _02001364 ; =0x0000E0BF
|
|
ldr r0, _02001334 ; =0x0380FFF4
|
|
strh r1, [r2, #0xa]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #0x20
|
|
beq _02001240
|
|
ldrh r0, [r2, #0xa]
|
|
ldr r1, _02001368 ; =0x048081AA
|
|
orr r0, r0, #0x40
|
|
strh r0, [r2, #0xa]
|
|
ldrh r0, [r1]
|
|
orr r0, r0, #0x68
|
|
strh r0, [r1]
|
|
_02001240:
|
|
ldrh r0, [r6, #0x64]
|
|
tst r0, #1
|
|
ldr r0, _0200136C ; =0x048080D0
|
|
ldrne r1, _02001370 ; =0x00000581
|
|
strneh r1, [r0]
|
|
ldreq r1, _02001374 ; =0x00000181
|
|
streqh r1, [r0]
|
|
ldr r2, _02001378 ; =0x048080E0
|
|
mov r0, #0xb
|
|
strh r0, [r2]
|
|
mov r1, #1
|
|
strh r1, [r2, #-0xdc]
|
|
strh r1, [r2, #8]
|
|
mov r0, #0x20
|
|
strh r1, [r2, #0xa]
|
|
bl sub_02001420
|
|
b _020012F8
|
|
_02001284:
|
|
ldr r1, _02001344 ; =0x0000FFFF
|
|
strh r1, [r2, #8]
|
|
sub r0, r1, #0x3fc0
|
|
strh r0, [r2, #0xa]
|
|
ldrh r0, [r6, #0x64]
|
|
tst r0, #1
|
|
rsbne r0, r1, #0x10400
|
|
strneh r0, [r2, #0xc8]
|
|
moveq r0, #1
|
|
streqh r0, [r2, #0xc8]
|
|
ldr r2, _02001378 ; =0x048080E0
|
|
mov r0, #0xb
|
|
strh r0, [r2]
|
|
mov r0, #1
|
|
strh r0, [r2, #-0xdc]
|
|
strh r0, [r2, #8]
|
|
strh r0, [r2, #0xa]
|
|
mov r1, #0
|
|
mov r0, #0x20
|
|
strh r1, [r2, #-0x98]
|
|
bl sub_02001420
|
|
b _020012F8
|
|
_020012DC:
|
|
ldr r0, _0200134C ; =0x048081AE
|
|
strh r3, [r2, #0xa]
|
|
strh r3, [r0]
|
|
mov r1, #1
|
|
mov r0, #0x20
|
|
strh r1, [r2, #-4]
|
|
bl sub_02001420
|
|
_020012F8:
|
|
ldr r0, _0200137C ; =0x04808048
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
bl sub_00FF207C
|
|
ldr r1, _02001360 ; =0x048080AE
|
|
mov r0, #2
|
|
strh r0, [r1]
|
|
ldrh r1, [r6, #0xe]
|
|
cmp r1, #1
|
|
bne _02001324
|
|
bl sub_00FF1E9C
|
|
_02001324:
|
|
bl sub_020034E8
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02001334: .word 0x0380FFF4
|
|
_02001338: .word 0x04808044
|
|
_0200133C: .word 0x04808032
|
|
_02001340: .word 0x04808134
|
|
_02001344: .word 0x0000FFFF
|
|
_02001348: .word 0x04808030
|
|
_0200134C: .word 0x048081AE
|
|
_02001350: .word 0x04808008
|
|
_02001354: .word 0x0000703F
|
|
_02001358: .word 0x00001FFF
|
|
_0200135C: .word 0x048080F6
|
|
_02001360: .word 0x048080AE
|
|
_02001364: .word 0x0000E0BF
|
|
_02001368: .word 0x048081AA
|
|
_0200136C: .word 0x048080D0
|
|
_02001370: .word 0x00000581
|
|
_02001374: .word 0x00000181
|
|
_02001378: .word 0x048080E0
|
|
_0200137C: .word 0x04808048
|
|
arm_func_end sub_02000FC8
|
|
|
|
arm_func_start sub_02001380
|
|
sub_02001380: ; 0x02001380
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _02001410 ; =0x0380FFF4
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x208
|
|
add r0, r0, #0x400
|
|
add r4, r1, #0x344
|
|
bl sub_020057A8
|
|
ldr r0, _02001410 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x234
|
|
add r0, r0, #0x400
|
|
bl sub_020057A8
|
|
mov r0, #0x20
|
|
bl sub_02001420
|
|
mov r1, #0
|
|
strh r1, [r4, #0xa4]
|
|
ldr r0, _02001414 ; =0x04808012
|
|
strh r1, [r4, #0x12]
|
|
strh r1, [r0]
|
|
strh r1, [r0, #-0xe]
|
|
strh r1, [r0, #0xd8]
|
|
strh r1, [r0, #0xd6]
|
|
strh r1, [r0, #-0xa]
|
|
strh r1, [r0, #-8]
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
bne _020013F0
|
|
bl sub_00FF93C4
|
|
_020013F0:
|
|
ldr r1, _02001418 ; =0x0000FFFF
|
|
ldr r0, _0200141C ; =0x048080AC
|
|
strh r1, [r0]
|
|
strh r1, [r0, #8]
|
|
bl sub_00FF90F0
|
|
bl sub_00FF0F2C
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02001410: .word 0x0380FFF4
|
|
_02001414: .word 0x04808012
|
|
_02001418: .word 0x0000FFFF
|
|
_0200141C: .word 0x048080AC
|
|
arm_func_end sub_02001380
|
|
|
|
arm_func_start sub_02001420
|
|
sub_02001420: ; 0x02001420
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _020014B8 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r1, [r1]
|
|
add r4, r1, #0x344
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, r5
|
|
beq _020014B0
|
|
cmp r0, #0x40
|
|
bne _02001454
|
|
add r0, r1, #0x234
|
|
add r0, r0, #0x400
|
|
bl sub_020057A8
|
|
_02001454:
|
|
cmp r5, #0
|
|
beq _02001470
|
|
cmp r5, #0x10
|
|
beq _02001478
|
|
cmp r5, #0x40
|
|
beq _02001490
|
|
b _020014AC
|
|
_02001470:
|
|
bl sub_00FF1EDC
|
|
b _020014AC
|
|
_02001478:
|
|
ldr r0, _020014BC ; =0x04808040
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
bl sub_02001380
|
|
bl sub_00FF1F64
|
|
b _020014AC
|
|
_02001490:
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #2
|
|
bne _020014A0
|
|
bl sub_00FF20C8
|
|
_020014A0:
|
|
ldr r1, _020014C0 ; =0x027EAA6C
|
|
mov r0, #0x64
|
|
bl sub_00FF2BA4
|
|
_020014AC:
|
|
strh r5, [r4, #8]
|
|
_020014B0:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020014B8: .word 0x0380FFF4
|
|
_020014BC: .word 0x04808040
|
|
_020014C0: .word 0x027EAA6C
|
|
arm_func_end sub_02001420
|
|
|
|
arm_func_start sub_020014C4
|
|
sub_020014C4: ; 0x020014C4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r5, _02001590 ; =0x04808010
|
|
mov r4, #1
|
|
_020014D0:
|
|
ldrh r1, [r5]
|
|
ldrh r0, [r5, #2]
|
|
ands r6, r1, r0
|
|
beq _02001578
|
|
tst r6, #0x80
|
|
beq _020014EC
|
|
bl sub_02002404
|
|
_020014EC:
|
|
tst r6, #0x40
|
|
beq _020014F8
|
|
bl sub_02002510
|
|
_020014F8:
|
|
tst r6, #0x8000
|
|
beq _02001504
|
|
bl sub_02001598
|
|
_02001504:
|
|
tst r6, #0x4000
|
|
beq _02001510
|
|
bl sub_02001624
|
|
_02001510:
|
|
tst r6, #0x2000
|
|
beq _0200151C
|
|
bl sub_020018C8
|
|
_0200151C:
|
|
tst r6, #0x800
|
|
beq _02001528
|
|
bl sub_00FF3A18
|
|
_02001528:
|
|
tst r6, #8
|
|
beq _02001534
|
|
bl sub_02001964
|
|
_02001534:
|
|
tst r6, #4
|
|
beq _02001540
|
|
bl sub_02001A74
|
|
_02001540:
|
|
tst r6, #1
|
|
beq _0200154C
|
|
bl sub_02001E58
|
|
_0200154C:
|
|
tst r6, #0x30
|
|
beq _02001558
|
|
bl sub_02001934
|
|
_02001558:
|
|
tst r6, #2
|
|
beq _02001564
|
|
bl sub_02001BF0
|
|
_02001564:
|
|
tst r6, #0x1000
|
|
beq _020014D0
|
|
mov r0, r4
|
|
bl sub_02002314
|
|
b _020014D0
|
|
_02001578:
|
|
ldr r1, _02001594 ; =0x0380FFF8
|
|
ldr r0, [r1]
|
|
orr r0, r0, #0x1000000
|
|
str r0, [r1]
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02001590: .word 0x04808010
|
|
_02001594: .word 0x0380FFF8
|
|
arm_func_end sub_020014C4
|
|
|
|
arm_func_start sub_02001598
|
|
sub_02001598: ; 0x02001598
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _0200161C ; =0x0380FFF4
|
|
ldr r0, _02001620 ; =0x04808010
|
|
ldr r2, [r1]
|
|
mov r1, #0x8000
|
|
strh r1, [r0]
|
|
add r4, r2, #0x344
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x40
|
|
bne _0200160C
|
|
ldrh r0, [r4, #0x7e]
|
|
cmp r0, #0
|
|
beq _0200160C
|
|
ldrh r1, [r4, #0x72]
|
|
ldrh r0, [r4, #0x70]
|
|
cmp r1, r0
|
|
bne _0200160C
|
|
ldrh r0, [r4, #0x80]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0x80]
|
|
ldrh r1, [r4, #0x80]
|
|
ldrh r0, [r4, #0x7e]
|
|
cmp r1, r0
|
|
bls _0200160C
|
|
mov r2, #0
|
|
mov r0, #1
|
|
mov r1, #0xd
|
|
strh r2, [r4, #0x80]
|
|
bl sub_02000780
|
|
_0200160C:
|
|
mov r0, #1
|
|
strh r0, [r4, #0x10]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200161C: .word 0x0380FFF4
|
|
_02001620: .word 0x04808010
|
|
arm_func_end sub_02001598
|
|
|
|
arm_func_start sub_02001624
|
|
sub_02001624: ; 0x02001624
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r6, _020018A8 ; =0x0380FFF4
|
|
ldr r2, _020018AC ; =0x04808010
|
|
ldr r3, [r6]
|
|
mov r0, #0x4000
|
|
strh r0, [r2]
|
|
add r4, r3, #0x344
|
|
ldrh r1, [r4, #0xc]
|
|
add r0, r3, #0x2c
|
|
cmp r1, #1
|
|
add r5, r3, #0x31c
|
|
add r7, r0, #0x400
|
|
beq _0200166C
|
|
cmp r1, #2
|
|
beq _02001720
|
|
cmp r1, #3
|
|
beq _02001764
|
|
b _020018A0
|
|
_0200166C:
|
|
ldr r1, [r7, #0x80]
|
|
ldrh r6, [r6, #-4]
|
|
ldrh r0, [r4, #0x96]
|
|
add r1, r1, #0x24
|
|
add r8, r1, r0
|
|
add r0, r8, #8
|
|
and r1, r6, #0xff
|
|
bl sub_00FF2F0C
|
|
mov r1, r6, lsr #8
|
|
add r0, r8, #9
|
|
and r1, r1, #0xff
|
|
bl sub_00FF2F0C
|
|
ldrh r0, [r4, #0xe]
|
|
cmp r0, #1
|
|
bne _020016C0
|
|
ldr r1, _020018B0 ; =0x04808134
|
|
ldrh r2, [r5, #0x20]
|
|
ldrh r0, [r1]
|
|
add r0, r2, r0
|
|
add r0, r0, #1
|
|
strh r0, [r1]
|
|
_020016C0:
|
|
ldr r0, _020018A8 ; =0x0380FFF4
|
|
ldr r1, _020018B4 ; =0x048080B6
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x500
|
|
ldrh r3, [r0, #0x2e]
|
|
ldrh r2, [r0, #0x32]
|
|
mvn r3, r3
|
|
orr r2, r3, r2
|
|
strh r2, [r0, #0x30]
|
|
ldrh r0, [r1]
|
|
tst r0, #0x18
|
|
bne _020016FC
|
|
and r0, r0, #6
|
|
cmp r0, #2
|
|
bne _02001710
|
|
_020016FC:
|
|
ldr r0, [r7, #0x8c]
|
|
bic r0, r0, #2
|
|
str r0, [r7, #0x8c]
|
|
bl sub_02002780
|
|
b _020018A0
|
|
_02001710:
|
|
ldr r0, [r7, #0x8c]
|
|
orr r0, r0, #2
|
|
str r0, [r7, #0x8c]
|
|
b _020018A0
|
|
_02001720:
|
|
ldrh r0, [r4, #0x12]
|
|
cmp r0, #0
|
|
ldreq r1, _020018B8 ; =0x0000FFFF
|
|
addeq r0, r2, #0x124
|
|
streqh r1, [r0]
|
|
beq _02001750
|
|
add r1, r2, #0x124
|
|
ldrh r2, [r5, #0x20]
|
|
ldrh r0, [r1]
|
|
add r0, r2, r0
|
|
add r0, r0, #1
|
|
strh r0, [r1]
|
|
_02001750:
|
|
ldrh r0, [r4, #0x1a]
|
|
cmp r0, #2
|
|
bne _02001764
|
|
mov r0, #2
|
|
bl sub_00FF1E9C
|
|
_02001764:
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x40
|
|
movne r1, #1
|
|
bne _020017B0
|
|
ldrh r0, [r4, #0x72]
|
|
mov r1, #0
|
|
cmp r0, #1
|
|
ldrh r0, [r4, #0x14]
|
|
moveq r1, #1
|
|
cmp r0, #0
|
|
beq _020017B0
|
|
ldrh r0, [r4, #0x76]
|
|
cmp r0, #1
|
|
beq _020017AC
|
|
cmp r0, #0
|
|
ldreqh r0, [r4, #0x74]
|
|
cmpeq r0, #1
|
|
bne _020017B0
|
|
_020017AC:
|
|
mov r1, #1
|
|
_020017B0:
|
|
cmp r1, #0
|
|
ldr r1, _020018BC ; =0x04808038
|
|
ldrneh r0, [r1]
|
|
orrne r0, r0, #1
|
|
strneh r0, [r1]
|
|
ldreqh r0, [r1]
|
|
biceq r0, r0, #1
|
|
streqh r0, [r1]
|
|
ldr r1, _020018C0 ; =0x04808118
|
|
mov r8, #0
|
|
ldrh r0, [r1]
|
|
mov r6, #2
|
|
cmp r0, #0xa
|
|
movhi r0, #0
|
|
strhih r0, [r1, #-0xd0]
|
|
ldrh r0, [r4, #0x72]
|
|
mov r5, r8
|
|
sub r0, r0, #1
|
|
strh r0, [r4, #0x72]
|
|
ldrh r0, [r4, #0x72]
|
|
mov sl, #0x14
|
|
cmp r0, #0
|
|
ldreqh r0, [r4, #0x70]
|
|
streqh r0, [r4, #0x72]
|
|
ldrh r1, [r4, #0x76]
|
|
sub r0, r1, #1
|
|
strh r0, [r4, #0x76]
|
|
cmp r1, #0
|
|
ldreqh r0, [r4, #0x74]
|
|
subeq r0, r0, #1
|
|
streqh r0, [r4, #0x76]
|
|
mov r4, #0xe
|
|
_02001830:
|
|
mul r1, r8, sl
|
|
ldrh r0, [r7, r1]
|
|
add sb, r7, r1
|
|
cmp r0, #0
|
|
beq _02001888
|
|
ldr r0, [sb, #0xc]
|
|
ldrh r1, [r0, #8]
|
|
cmp r1, #0
|
|
bne _02001888
|
|
bl sub_00FF8464
|
|
cmp r0, #0
|
|
beq _02001888
|
|
mov r0, r8
|
|
bl sub_00FF8EBC
|
|
ldr r1, [sb, #8]
|
|
mov r0, r5
|
|
strh r6, [r1]
|
|
mov r1, r4
|
|
bl sub_02000780
|
|
ldrh r0, [r7, #0xae]
|
|
add r0, r0, #1
|
|
strh r0, [r7, #0xae]
|
|
_02001888:
|
|
add r8, r8, #1
|
|
cmp r8, #2
|
|
blo _02001830
|
|
ldr r0, _020018C4 ; =0x048080AE
|
|
mov r1, #0xd
|
|
strh r1, [r0]
|
|
_020018A0:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020018A8: .word 0x0380FFF4
|
|
_020018AC: .word 0x04808010
|
|
_020018B0: .word 0x04808134
|
|
_020018B4: .word 0x048080B6
|
|
_020018B8: .word 0x0000FFFF
|
|
_020018BC: .word 0x04808038
|
|
_020018C0: .word 0x04808118
|
|
_020018C4: .word 0x048080AE
|
|
arm_func_end sub_02001624
|
|
|
|
arm_func_start sub_020018C8
|
|
sub_020018C8: ; 0x020018C8
|
|
ldr r0, _0200192C ; =0x0380FFF4
|
|
ldr r1, _02001930 ; =0x04808010
|
|
ldr r2, [r0]
|
|
mov r0, #0x2000
|
|
strh r0, [r1]
|
|
mov r0, #0xd
|
|
add r2, r2, #0x344
|
|
strh r0, [r1, #0x9c]
|
|
ldrh r0, [r2, #0x1a]
|
|
cmp r0, #1
|
|
moveq r0, #2
|
|
streqh r0, [r2, #0x1a]
|
|
bxeq lr
|
|
cmp r0, #2
|
|
moveq r0, #0
|
|
streqh r0, [r2, #0x1a]
|
|
bxeq lr
|
|
ldrh r0, [r2, #0xc]
|
|
cmp r0, #2
|
|
bxne lr
|
|
ldrh r0, [r2, #8]
|
|
cmp r0, #0x40
|
|
movne r0, #0
|
|
strneh r0, [r1, #0x38]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200192C: .word 0x0380FFF4
|
|
_02001930: .word 0x04808010
|
|
arm_func_end sub_020018C8
|
|
|
|
arm_func_start sub_02001934
|
|
sub_02001934: ; 0x02001934
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_00FF2394
|
|
ldr r1, _0200195C ; =0x048081AC
|
|
ldr r2, _02001960 ; =0x0000FFFF
|
|
sub r0, r1, #0x19c
|
|
strh r2, [r1]
|
|
mov r1, #0x30
|
|
strh r1, [r0]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200195C: .word 0x048081AC
|
|
_02001960: .word 0x0000FFFF
|
|
arm_func_end sub_02001934
|
|
|
|
arm_func_start sub_02001964
|
|
sub_02001964: ; 0x02001964
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _02001A68 ; =0x04808010
|
|
mov r2, #8
|
|
ldr r0, _02001A6C ; =0x0380FFF4
|
|
strh r2, [r1]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x3a]
|
|
mov r0, r0, lsl #0x1b
|
|
movs r0, r0, lsr #0x1f
|
|
beq _020019AC
|
|
add r0, r1, #0x18c
|
|
ldrh r0, [r0]
|
|
tst r0, #1
|
|
addeq r1, r1, #0x280
|
|
ldreqh r0, [r1]
|
|
eoreq r0, r0, #1
|
|
streqh r0, [r1]
|
|
_020019AC:
|
|
ldr r0, _02001A6C ; =0x0380FFF4
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #8
|
|
beq _02001A60
|
|
ldr r4, _02001A70 ; =0x04808032
|
|
add r0, r1, #0x2c
|
|
mov r2, #0
|
|
add r1, r1, #0x344
|
|
add r3, r0, #0x400
|
|
mov r5, r2
|
|
mov lr, #0x8000
|
|
mov ip, #0x14
|
|
_020019E4:
|
|
mul r6, r2, ip
|
|
ldrh r0, [r3, r6]
|
|
add r6, r3, r6
|
|
cmp r0, #0
|
|
beq _02001A54
|
|
ldr r0, [r6, #8]
|
|
ldrh r6, [r0, #0xc]
|
|
tst r6, #0x4000
|
|
beq _02001A54
|
|
ldrh r6, [r0, #4]
|
|
tst r6, #0xff
|
|
beq _02001A54
|
|
ldrh r6, [r0, #0xa]
|
|
add r7, r0, #0xc
|
|
add r6, r7, r6
|
|
sub r6, r6, #7
|
|
bic r7, r6, #1
|
|
ldrh r6, [r7]
|
|
cmp r6, #0
|
|
ldreqh r6, [r7, #2]
|
|
cmpeq r6, #0
|
|
bne _02001A54
|
|
strh r5, [r0, #4]
|
|
strh r5, [r4]
|
|
strh lr, [r4]
|
|
ldrh r0, [r1, #0xba]
|
|
add r0, r0, #1
|
|
strh r0, [r1, #0xba]
|
|
_02001A54:
|
|
add r2, r2, #1
|
|
cmp r2, #3
|
|
blo _020019E4
|
|
_02001A60:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02001A68: .word 0x04808010
|
|
_02001A6C: .word 0x0380FFF4
|
|
_02001A70: .word 0x04808032
|
|
arm_func_end sub_02001964
|
|
|
|
arm_func_start sub_02001A74
|
|
sub_02001A74: ; 0x02001A74
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02001BD4 ; =0x0380FFF4
|
|
ldr ip, _02001BD8 ; =0x04808010
|
|
ldr r2, [r1]
|
|
mov r0, #4
|
|
strh r0, [ip]
|
|
ldr r0, [r1]
|
|
add r1, ip, #0x198
|
|
add r0, r0, #0x600
|
|
ldrh r3, [r0, #0x90]
|
|
add r0, r2, #0xdc
|
|
add r2, r2, #0x2c
|
|
ldrh r1, [r1]
|
|
tst r3, #8
|
|
add r0, r0, #0x400
|
|
add r3, r2, #0x400
|
|
beq _02001B64
|
|
tst r1, #0x400
|
|
beq _02001B64
|
|
ldrh ip, [ip, #0xa0]
|
|
tst ip, #1
|
|
ldrneh r2, [r3]
|
|
cmpne r2, #0
|
|
bne _02001B20
|
|
tst ip, #4
|
|
ldrneh r2, [r3, #0x14]
|
|
cmpne r2, #0
|
|
bne _02001B20
|
|
tst ip, #8
|
|
ldrneh r2, [r3, #0x28]
|
|
cmpne r2, #0
|
|
bne _02001B20
|
|
ldr r2, _02001BDC ; =0x0480819C
|
|
ldrh r2, [r2]
|
|
tst r2, #1
|
|
bne _02001B20
|
|
ldr r3, _02001BE0 ; =0x04808032
|
|
mov ip, #0
|
|
strh ip, [r3]
|
|
mov r2, #0x8000
|
|
strh r2, [r3]
|
|
strh ip, [r0, #2]
|
|
b _02001B64
|
|
_02001B20:
|
|
ldrh r3, [r0, #2]
|
|
add r2, r3, #1
|
|
strh r2, [r0, #2]
|
|
cmp r3, #0xc
|
|
bls _02001B64
|
|
ldr r3, _02001BE0 ; =0x04808032
|
|
mov r2, #0
|
|
strh r2, [r0, #2]
|
|
strh r2, [r3]
|
|
mov r2, #0x8000
|
|
ldr r0, _02001BD4 ; =0x0380FFF4
|
|
strh r2, [r3]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r2, [r0, #0xfe]
|
|
add r2, r2, #1
|
|
strh r2, [r0, #0xfe]
|
|
_02001B64:
|
|
ldr r0, _02001BD4 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #1
|
|
beq _02001BCC
|
|
tst r1, #0x60
|
|
beq _02001BCC
|
|
ldr r2, _02001BE4 ; =0x04808054
|
|
ldrh r1, [r2]
|
|
ldrh r0, [r2, #-2]
|
|
sub r0, r0, #0x4000
|
|
add r0, r0, r0, lsr #31
|
|
cmp r1, r0, asr #1
|
|
bge _02001BB4
|
|
ldrh r0, [r2, #-4]
|
|
sub r0, r0, #0x4000
|
|
add r0, r0, r0, lsr #31
|
|
cmp r1, r0, asr #1
|
|
bge _02001BC8
|
|
_02001BB4:
|
|
ldr r2, _02001BE8 ; =0x0480805A
|
|
ldr r0, _02001BEC ; =0x00008001
|
|
ldrh r1, [r2]
|
|
strh r1, [r2, #-4]
|
|
strh r0, [r2, #-0x2a]
|
|
_02001BC8:
|
|
bl sub_00FF3158
|
|
_02001BCC:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02001BD4: .word 0x0380FFF4
|
|
_02001BD8: .word 0x04808010
|
|
_02001BDC: .word 0x0480819C
|
|
_02001BE0: .word 0x04808032
|
|
_02001BE4: .word 0x04808054
|
|
_02001BE8: .word 0x0480805A
|
|
_02001BEC: .word 0x00008001
|
|
arm_func_end sub_02001A74
|
|
|
|
arm_func_start sub_02001BF0
|
|
sub_02001BF0: ; 0x02001BF0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r3, _02001E38 ; =0x0380FFF4
|
|
ldr r0, _02001E3C ; =0x04808010
|
|
ldr r2, [r3]
|
|
mov r1, #2
|
|
strh r1, [r0]
|
|
ldr r3, [r3]
|
|
add r2, r2, #0x2c
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x4c]
|
|
add r4, r2, #0x400
|
|
cmp r3, #0x12
|
|
bne _02001C2C
|
|
bl sub_00FF76A8
|
|
b _02001E30
|
|
_02001C2C:
|
|
ldrh r2, [r0, #0xa8]
|
|
and r5, r2, #0xf00
|
|
cmp r5, #0x300
|
|
beq _02001C50
|
|
cmp r5, #0x800
|
|
beq _02001C84
|
|
cmp r5, #0xb00
|
|
beq _02001CC0
|
|
b _02001DBC
|
|
_02001C50:
|
|
ldr r0, [r4, #0x8c]
|
|
tst r0, #2
|
|
beq _02001C60
|
|
bl sub_02002780
|
|
_02001C60:
|
|
ldr r1, _02001E38 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r3, [r1]
|
|
mov r1, #8
|
|
ldr r2, [r3, #0x558]
|
|
add r2, r2, #1
|
|
str r2, [r3, #0x558]
|
|
bl sub_02000780
|
|
b _02001DBC
|
|
_02001C84:
|
|
ldr r2, [r4, #0x44]
|
|
ldrh r3, [r4, #0x9e]
|
|
ldrh r2, [r2, #4]
|
|
and r2, r2, #0xff
|
|
mov r2, r2, lsl #0x10
|
|
cmp r3, r2, lsr #16
|
|
strlsh r1, [r0, #0x9c]
|
|
ldrlsh r0, [r4, #0xa8]
|
|
addls r0, r0, #1
|
|
strlsh r0, [r4, #0xa8]
|
|
ldr r1, [r4, #0x90]
|
|
ldrh r0, [r1, #0x18]
|
|
add r0, r0, #1
|
|
strh r0, [r1, #0x18]
|
|
b _02001DBC
|
|
_02001CC0:
|
|
ldr r3, _02001E40 ; =0x0000FFFF
|
|
ldr r2, _02001E44 ; =0x04805F70
|
|
ldr r1, _02001E48 ; =0x0480824E
|
|
strh r3, [r2]
|
|
strh r3, [r2, #2]
|
|
add r0, r0, #0x23c
|
|
strh r3, [r0]
|
|
strh r3, [r1]
|
|
ldrh r0, [r4, #0x3c]
|
|
cmp r0, #0
|
|
beq _02001D18
|
|
ldr r1, [r4, #0x44]
|
|
ldrh r0, [r1, #0x22]
|
|
cmp r0, r3
|
|
bne _02001D18
|
|
ldrh r0, [r1, #4]
|
|
cmp r0, #0
|
|
movne r0, #0
|
|
strneh r0, [r1, #4]
|
|
ldrneh r1, [r4, #0x98]
|
|
ldrne r0, [r4, #0x44]
|
|
strneh r1, [r0, #2]
|
|
_02001D18:
|
|
ldr r0, [r4, #0x44]
|
|
ldr r2, [r4, #0x90]
|
|
ldrh r1, [r0, #2]
|
|
ldrh r0, [r4, #0x98]
|
|
cmp r1, #1
|
|
add r2, r2, #0x1a
|
|
bls _02001D68
|
|
ldr r3, _02001E38 ; =0x0380FFF4
|
|
ldr r3, [r3]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x3a]
|
|
mov r3, r3, lsl #0x1b
|
|
movs r3, r3, lsr #0x1f
|
|
beq _02001D68
|
|
ldr ip, _02001E4C ; =0x0480819C
|
|
ldrh r3, [ip]
|
|
tst r3, #1
|
|
ldreqh r3, [ip, #0xf4]
|
|
eoreq r3, r3, #1
|
|
streqh r3, [ip, #0xf4]
|
|
_02001D68:
|
|
ldr r3, _02001E38 ; =0x0380FFF4
|
|
ldr r3, [r3]
|
|
add r3, r3, #0x600
|
|
ldrh r3, [r3, #0x90]
|
|
tst r3, #0x40
|
|
beq _02001DBC
|
|
b _02001DB4
|
|
_02001D84:
|
|
mov r1, r1, lsl #0xf
|
|
mov r1, r1, lsr #0x10
|
|
tst r1, #1
|
|
ldrneh r3, [r2, #6]
|
|
mov r0, r0, lsl #0xf
|
|
addne r3, r3, #1
|
|
mov r0, r0, lsr #0x10
|
|
strneh r3, [r2, #6]
|
|
tst r0, #1
|
|
ldrne r3, [r4, #0x90]
|
|
ldrneh r3, [r3, #0x16]
|
|
addne r2, r2, r3
|
|
_02001DB4:
|
|
cmp r1, #1
|
|
bhi _02001D84
|
|
_02001DBC:
|
|
cmp r5, #0x800
|
|
beq _02001E24
|
|
ldr r2, _02001E50 ; =0x048080B0
|
|
ldrh r0, [r2]
|
|
tst r0, #2
|
|
bne _02001E24
|
|
ldrh r0, [r4, #0x3c]
|
|
cmp r0, #0
|
|
beq _02001E18
|
|
mov r0, #2
|
|
strh r0, [r2, #4]
|
|
mov r1, #0
|
|
strh r1, [r2, #-0x68]
|
|
ldrh r1, [r2, #-0xa0]
|
|
tst r1, #0x1000
|
|
ldrneh r0, [r4, #0xac]
|
|
addne r0, r0, #1
|
|
strneh r0, [r4, #0xac]
|
|
bne _02001E0C
|
|
bl sub_02002314
|
|
_02001E0C:
|
|
ldrh r0, [r4, #0xaa]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0xaa]
|
|
_02001E18:
|
|
ldr r0, _02001E54 ; =0x048080AE
|
|
mov r1, #2
|
|
strh r1, [r0]
|
|
_02001E24:
|
|
mov r0, #0
|
|
mov r1, #0xe
|
|
bl sub_02000780
|
|
_02001E30:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02001E38: .word 0x0380FFF4
|
|
_02001E3C: .word 0x04808010
|
|
_02001E40: .word 0x0000FFFF
|
|
_02001E44: .word 0x04805F70
|
|
_02001E48: .word 0x0480824E
|
|
_02001E4C: .word 0x0480819C
|
|
_02001E50: .word 0x048080B0
|
|
_02001E54: .word 0x048080AE
|
|
arm_func_end sub_02001BF0
|
|
|
|
arm_func_start sub_02001E58
|
|
sub_02001E58: ; 0x02001E58
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x38
|
|
ldr r0, _020022E8 ; =0x0380FFF4
|
|
ldr r2, _020022EC ; =0x04808010
|
|
ldr r3, [r0]
|
|
mov r1, #1
|
|
add r0, r3, #0x600
|
|
ldrh r4, [r0, #0x90]
|
|
add r6, r3, #0x344
|
|
strh r1, [r2]
|
|
ldrh r1, [r6, #0xc]
|
|
add r0, r3, #0xdc
|
|
cmp r1, #0
|
|
add r7, r0, #0x400
|
|
ldreqh r0, [r2, #0x44]
|
|
and r4, r4, #1
|
|
streqh r0, [r2, #0x4a]
|
|
ldr r0, _020022F0 ; =0x04808098
|
|
sub fp, r0, #0x70
|
|
add r0, r0, #0x1b4
|
|
str r0, [sp, #0x24]
|
|
ldr r0, _020022F4 ; =0x0480824E
|
|
sub r0, r0, #0x154
|
|
str r0, [sp, #0x14]
|
|
ldr r0, _020022F0 ; =0x04808098
|
|
sub r0, r0, #0x44
|
|
str r0, [sp, #0x10]
|
|
ldr r0, _020022F8 ; =0x000008EF
|
|
sub r0, r0, #0x29
|
|
str r0, [sp, #0x28]
|
|
ldr r0, _020022F8 ; =0x000008EF
|
|
add r0, r0, #0x3d
|
|
str r0, [sp, #0x2c]
|
|
ldr r0, _020022FC ; =0x04805F7E
|
|
sub r0, r0, #0x24
|
|
str r0, [sp, #0x30]
|
|
ldr r0, _020022F8 ; =0x000008EF
|
|
add r0, r0, #0x710
|
|
str r0, [sp, #0x34]
|
|
_02001EF4:
|
|
ldr r0, [sp, #0x10]
|
|
ldrh sb, [r7, #4]
|
|
ldrh sl, [r0]
|
|
cmp sb, sl
|
|
beq _02002268
|
|
ldr r0, _020022F0 ; =0x04808098
|
|
ldr r1, [sp, #0x14]
|
|
ldrh r0, [r0, #0x60]
|
|
ldrh r3, [r1]
|
|
ldr r1, _020022F0 ; =0x04808098
|
|
ldrh r2, [r1, #0x60]
|
|
ldr r1, [sp, #0x14]
|
|
cmp r0, r2
|
|
ldrh r1, [r1]
|
|
movhi r0, r1, lsl #0xc
|
|
orrhi r0, r0, r2, lsr #4
|
|
strhi r0, [sp, #4]
|
|
movls r1, r3, lsl #0xc
|
|
orrls r0, r1, r0, lsr #4
|
|
strls r0, [sp, #4]
|
|
ldr r0, [sp, #0x28]
|
|
cmp sb, r0
|
|
blo _02001F60
|
|
ldr r0, _020022F8 ; =0x000008EF
|
|
cmp sb, r0
|
|
bhi _02001F60
|
|
bl sub_00FF2394
|
|
_02001F60:
|
|
mov r0, sb, lsl #1
|
|
str r0, [sp, #0x18]
|
|
add r0, r0, #0x4000
|
|
add r8, r0, #0x4800000
|
|
add r0, r8, #2
|
|
bl sub_020028B0
|
|
mov r5, r0
|
|
add r0, r5, #2
|
|
bl sub_020028B0
|
|
str r0, [sp, #0x1c]
|
|
add r0, r0, #4
|
|
bl sub_020028B0
|
|
str r0, [sp, #0x20]
|
|
add r0, r8, #0xe
|
|
bl sub_020028B0
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x18]
|
|
ldrh r1, [r5]
|
|
add r0, r0, #0x4800000
|
|
add r0, r0, #0x4000
|
|
mov r1, r1, lsl #1
|
|
ldrh r2, [r0]
|
|
and r1, r1, #0x400
|
|
orr r1, r2, r1
|
|
strh r1, [r0]
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [sp, #0x1c]
|
|
strh r1, [r0]
|
|
ldr r0, [sp, #0x20]
|
|
ldrh r1, [r0]
|
|
add r0, r1, sb, lsl #1
|
|
add r0, r0, #0xf
|
|
mov r0, r0, lsr #2
|
|
mov sb, r0, lsl #1
|
|
cmp sb, #0xfb0
|
|
ldrhsh r0, [r6, #0x9a]
|
|
subhs sb, sb, r0, lsr #1
|
|
ldr r0, [sp, #0x2c]
|
|
cmp r1, r0
|
|
bls _0200201C
|
|
ldr r0, _02002300 ; =0x0000FFFF
|
|
mov sb, sl
|
|
strh r0, [r8]
|
|
ldrh r0, [r6, #0xb4]
|
|
add r0, r0, #1
|
|
strh r0, [r6, #0xb4]
|
|
b _020020A4
|
|
_0200201C:
|
|
cmp r4, #0
|
|
cmpne sb, sl
|
|
beq _020020A4
|
|
ldr r3, [sp, #0x30]
|
|
mov r2, sb, lsl #1
|
|
add r0, r2, #0x4000
|
|
add r0, r0, #0x4800000
|
|
cmp r0, r3
|
|
ldrloh r0, [r0, #6]
|
|
add r2, r2, #0x4800000
|
|
add r2, r2, #0x4000
|
|
ldrhsh r3, [r6, #0x9a]
|
|
andlo r0, r0, #0xff
|
|
subhs r0, r0, r3
|
|
ldrh r2, [r2]
|
|
ldrhsh r0, [r0, #6]
|
|
tst r2, #0x7c00
|
|
bne _0200207C
|
|
cmp r0, #0xa
|
|
cmpne r0, #0x14
|
|
bne _0200207C
|
|
ldr r0, [sp, #0x34]
|
|
cmp r1, r0
|
|
bls _020020A4
|
|
_0200207C:
|
|
ldrh r0, [r6, #0xb4]
|
|
ldr r1, _02002300 ; =0x0000FFFF
|
|
add r0, r0, #1
|
|
strh r0, [r6, #0xb4]
|
|
mov r0, sl, lsl #0x10
|
|
strh r1, [r8]
|
|
mov r0, r0, lsr #0x10
|
|
strh r0, [r7, #4]
|
|
strh r0, [r5]
|
|
b _02002268
|
|
_020020A4:
|
|
ldrh r0, [r8]
|
|
and r0, r0, #0xf
|
|
cmp r0, #0xc
|
|
bne _02002204
|
|
add r0, r8, #0xc
|
|
bl sub_020028B0
|
|
ldrh r0, [r0]
|
|
str r0, [sp, #8]
|
|
add r0, r8, #0x22
|
|
bl sub_020028B0
|
|
ldrh sl, [r0]
|
|
ldrh r0, [r7]
|
|
cmp r0, sl
|
|
bne _02002108
|
|
ldr r0, [sp, #8]
|
|
tst r0, #0x800
|
|
beq _02002108
|
|
ldr r0, _020022E8 ; =0x0380FFF4
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, #0x57c]
|
|
add r0, r0, #1
|
|
str r0, [r1, #0x57c]
|
|
ldr r0, _02002300 ; =0x0000FFFF
|
|
strh r0, [r8]
|
|
b _020021DC
|
|
_02002108:
|
|
ldr r0, _020022E8 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r1, r0, #0x300
|
|
ldrh r2, [r1, #0x3a]
|
|
mov r2, r2, lsl #0x18
|
|
movs r2, r2, lsr #0x1f
|
|
ldreqh r1, [r1, #0x4c]
|
|
cmpeq r1, #0x40
|
|
bne _020021DC
|
|
ldrh r1, [fp]
|
|
cmp r1, #0
|
|
beq _020021B4
|
|
ldr r1, _020022F0 ; =0x04808098
|
|
ldrh r1, [r1]
|
|
tst r1, #0x8000
|
|
beq _020021B4
|
|
add r0, r0, #0x660
|
|
bl sub_020057A8
|
|
ldr r0, [sp, #0xc]
|
|
mov r3, #0
|
|
ldrh r1, [r0]
|
|
ldr r0, _02002304 ; =0x000082EA
|
|
mov r2, #0x3e8
|
|
umull ip, r8, r1, r0
|
|
mov r0, r3
|
|
mla r8, r1, r0, r8
|
|
mov r0, ip, lsr #6
|
|
ldr r1, _02002304 ; =0x000082EA
|
|
mov ip, r3
|
|
mla r8, ip, r1, r8
|
|
mov r1, r8, lsr #6
|
|
orr r0, r0, r8, lsl #26
|
|
bl sub_0200ED68
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
mov r2, r1
|
|
mov r1, r0
|
|
ldr r0, _020022E8 ; =0x0380FFF4
|
|
ldr r3, _02002308 ; =0x027EA0BC
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x660
|
|
bl sub_020056C4
|
|
b _020021DC
|
|
_020021B4:
|
|
ldr r1, _02002300 ; =0x0000FFFF
|
|
ldr r0, _020022FC ; =0x04805F7E
|
|
mov sl, r1
|
|
strh r1, [r0]
|
|
ldr r0, [sp, #0x24]
|
|
strh r1, [r0]
|
|
ldr r0, _020022F4 ; =0x0480824E
|
|
strh r1, [r0]
|
|
mov r0, r1
|
|
strh r0, [r8]
|
|
_020021DC:
|
|
strh sl, [r7]
|
|
bl sub_020028D8
|
|
tst r0, #1
|
|
beq _02002254
|
|
ldr r0, _020022E8 ; =0x0380FFF4
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, #0x5a8]
|
|
add r0, r0, #1
|
|
str r0, [r1, #0x5a8]
|
|
b _02002254
|
|
_02002204:
|
|
cmp r0, #0xd
|
|
bne _02002254
|
|
ldr r0, _020022E8 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x3a]
|
|
mov r1, r1, lsl #0x18
|
|
movs r1, r1, lsr #0x1f
|
|
ldreqh r0, [r0, #0x4c]
|
|
cmpeq r0, #0x40
|
|
bne _02002254
|
|
ldrh r0, [fp]
|
|
cmp r0, #0
|
|
beq _0200224C
|
|
ldr r0, _020022F0 ; =0x04808098
|
|
ldrh r0, [r0]
|
|
tst r0, #0x8000
|
|
bne _02002254
|
|
_0200224C:
|
|
ldr r0, _02002300 ; =0x0000FFFF
|
|
strh r0, [r8]
|
|
_02002254:
|
|
mov r0, sb, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
strh r0, [r7, #4]
|
|
strh r0, [r5]
|
|
b _02001EF4
|
|
_02002268:
|
|
cmp r4, #0
|
|
beq _020022BC
|
|
ldr r0, _0200230C ; =0x04808054
|
|
ldrh r4, [r0]
|
|
bl sub_020028D8
|
|
mov r0, r0, lsl #0x10
|
|
movs r1, r0, lsr #0x10
|
|
beq _020022BC
|
|
ldr r0, _0200230C ; =0x04808054
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
bne _020022BC
|
|
tst r1, #2
|
|
beq _020022AC
|
|
mov r0, #0x80
|
|
bl sub_00FF3254
|
|
b _020022BC
|
|
_020022AC:
|
|
tst r1, #1
|
|
beq _020022BC
|
|
mov r0, #0x100
|
|
bl sub_00FF3254
|
|
_020022BC:
|
|
ldr r0, _02002310 ; =0x0480805A
|
|
ldrh r1, [r0]
|
|
ldrh r0, [r0, #-6]
|
|
cmp r1, r0
|
|
beq _020022DC
|
|
mov r0, #0
|
|
mov r1, #0xf
|
|
bl sub_02000780
|
|
_020022DC:
|
|
add sp, sp, #0x38
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020022E8: .word 0x0380FFF4
|
|
_020022EC: .word 0x04808010
|
|
_020022F0: .word 0x04808098
|
|
_020022F4: .word 0x0480824E
|
|
_020022F8: .word 0x000008EF
|
|
_020022FC: .word 0x04805F7E
|
|
_02002300: .word 0x0000FFFF
|
|
_02002304: .word 0x000082EA
|
|
_02002308: .word 0x027EA0BC
|
|
_0200230C: .word 0x04808054
|
|
_02002310: .word 0x0480805A
|
|
arm_func_end sub_02001E58
|
|
|
|
arm_func_start sub_02002314
|
|
sub_02002314: ; 0x02002314
|
|
stmdb sp!, {r3, lr}
|
|
ldr ip, _020023F8 ; =0x0380FFF4
|
|
ldr r2, _020023FC ; =0x04808010
|
|
ldr r1, [ip]
|
|
mov r3, #0x1000
|
|
add r1, r1, #0x2c
|
|
strh r3, [r2]
|
|
add r3, r1, #0x400
|
|
ldrh r1, [r3, #0x3c]
|
|
cmp r1, #0
|
|
beq _020023F0
|
|
ldr r1, [ip]
|
|
add r1, r1, #0x600
|
|
ldrh r1, [r1, #0x90]
|
|
tst r1, #0x10
|
|
cmpne r0, #0
|
|
beq _020023E4
|
|
add r0, r2, #0x204
|
|
ldrh r1, [r2, #0xa6]
|
|
ldrh r0, [r0]
|
|
cmp r0, #3
|
|
cmpne r0, #5
|
|
bne _020023E4
|
|
cmp r1, #0
|
|
bne _020023E4
|
|
ldr r3, [r3, #0x44]
|
|
mov r2, #0
|
|
ldrh r0, [r3, #2]
|
|
b _02002398
|
|
_02002388:
|
|
and r1, r0, #1
|
|
mov r0, r0, lsl #0xf
|
|
add r2, r2, r1
|
|
mov r0, r0, lsr #0x10
|
|
_02002398:
|
|
cmp r0, #0
|
|
bne _02002388
|
|
ldrh r0, [r3, #0x24]
|
|
ldrh r1, [r3, #0xa]
|
|
add r0, r0, #0xa
|
|
mul r0, r2, r0
|
|
add r0, r0, #0xc0
|
|
add r0, r0, r1, lsl #2
|
|
mov r0, r0, lsl #0x10
|
|
ldr r1, _02002400 ; =0x037FA660
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_00FF2D44
|
|
ldr r0, _020023F8 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
ldrh r1, [r0]
|
|
add r1, r1, #1
|
|
strh r1, [r0]
|
|
b _020023F0
|
|
_020023E4:
|
|
mov r0, #0
|
|
mov r1, #0x10
|
|
bl sub_02000780
|
|
_020023F0:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020023F8: .word 0x0380FFF4
|
|
_020023FC: .word 0x04808010
|
|
_02002400: .word 0x037FA660
|
|
arm_func_end sub_02002314
|
|
|
|
arm_func_start sub_02002404
|
|
sub_02002404: ; 0x02002404
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, _02002500 ; =0x0380FFF4
|
|
ldr r0, _02002504 ; =0x04808010
|
|
ldr r2, [r3]
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
ldr r1, [r3]
|
|
add r2, r2, #0x2c
|
|
add r1, r1, #0x600
|
|
ldrh r1, [r1, #0x90]
|
|
tst r1, #0x20
|
|
beq _02002498
|
|
add r1, r0, #0x204
|
|
ldrh r3, [r1]
|
|
add r1, r0, #0x258
|
|
and r3, r3, #0xff
|
|
ldrh ip, [r1]
|
|
cmp r3, #3
|
|
blo _02002498
|
|
cmp r3, #5
|
|
bhi _02002498
|
|
ldr r3, [r2, #0x458]
|
|
ldr r1, _02002508 ; =0x00000FFF
|
|
and r3, r1, r3, lsr #1
|
|
cmp ip, r3
|
|
blo _02002498
|
|
ldr r2, [r2, #0x430]
|
|
and r1, r1, r2, lsr #1
|
|
cmp ip, r1
|
|
bhi _02002498
|
|
add r1, r0, #0x234
|
|
ldrh r0, [r1]
|
|
orr r0, r0, #0x80
|
|
strh r0, [r1]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #0x80
|
|
strh r0, [r1]
|
|
_02002498:
|
|
ldr r1, _0200250C ; =0x04808000
|
|
ldrh r0, [r1]
|
|
cmp r0, #0x1440
|
|
beq _020024F8
|
|
add r0, r1, #0x19c
|
|
ldrh r0, [r0]
|
|
and r0, r0, #0x42
|
|
cmp r0, #0x42
|
|
bne _020024F8
|
|
add r1, r1, #0x2b8
|
|
ldrh r2, [r1]
|
|
cmp r2, #0
|
|
beq _020024F8
|
|
mov r3, #0
|
|
b _020024EC
|
|
_020024D4:
|
|
cmp r3, #0x3e8
|
|
add r3, r3, #1
|
|
bls _020024EC
|
|
mov r0, #0x40
|
|
bl sub_00FF3254
|
|
b _020024F8
|
|
_020024EC:
|
|
ldrh r0, [r1]
|
|
cmp r2, r0
|
|
beq _020024D4
|
|
_020024F8:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02002500: .word 0x0380FFF4
|
|
_02002504: .word 0x04808010
|
|
_02002508: .word 0x00000FFF
|
|
_0200250C: .word 0x04808000
|
|
arm_func_end sub_02002404
|
|
|
|
arm_func_start sub_02002510
|
|
sub_02002510: ; 0x02002510
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r2, _02002764 ; =0x0380FFF4
|
|
ldr r0, _02002768 ; =0x04808010
|
|
ldr r3, [r2]
|
|
mov r1, #0x40
|
|
strh r1, [r0]
|
|
ldr r2, [r2]
|
|
add r1, r3, #0x2c
|
|
add r2, r2, #0x600
|
|
ldrh r2, [r2, #0x90]
|
|
add r4, r3, #0x344
|
|
tst r2, #0x20
|
|
add r5, r1, #0x400
|
|
beq _0200275C
|
|
ldrh r2, [r5, #0xa4]
|
|
ldr r1, _0200276C ; =0x0000FFFF
|
|
cmp r2, r1
|
|
addeq r2, r0, #0x18c
|
|
ldreqh r2, [r2]
|
|
andeq r2, r2, #3
|
|
cmpeq r2, #3
|
|
bne _0200275C
|
|
add r2, r0, #0x258
|
|
ldrh r3, [r2]
|
|
ldrh r2, [r0, #0x40]
|
|
sub r1, r1, #0xf000
|
|
and r1, r1, r2, lsr #1
|
|
cmp r3, r1
|
|
blt _0200275C
|
|
ldrh r7, [r0, #0x44]
|
|
mov r0, r7, lsl #1
|
|
add r0, r0, #0x4000
|
|
add r0, r0, #0x4800000
|
|
add r0, r0, #8
|
|
bl sub_020028B0
|
|
add r0, r0, #4
|
|
bl sub_020028B0
|
|
ldrh r2, [r0]
|
|
ldr r1, _02002770 ; =0x0000E7FF
|
|
and r1, r2, r1
|
|
cmp r1, #0x228
|
|
bne _0200275C
|
|
add r0, r0, #2
|
|
bl sub_020028B0
|
|
ldr r2, _02002774 ; =0x048080F8
|
|
ldrh r1, [r2]
|
|
sub r6, r1, #0x10000
|
|
add r1, r2, #0x170
|
|
_020025D0:
|
|
ldrh r3, [r1]
|
|
sub r3, r3, r7
|
|
mov r3, r3, lsl #0x10
|
|
mov r8, r3, lsr #0x10
|
|
tst r8, #0x8000
|
|
ldrneh r3, [r4, #0x9a]
|
|
addne r3, r8, r3, lsr #1
|
|
movne r3, r3, lsl #0x10
|
|
movne r8, r3, lsr #0x10
|
|
cmp r8, #0xe
|
|
bhi _02002618
|
|
ldrh r3, [r2]
|
|
sub r3, r3, r6
|
|
mov r3, r3, lsl #0x10
|
|
mov r3, r3, lsr #0x10
|
|
cmp r3, #0x40
|
|
bhi _0200275C
|
|
b _020025D0
|
|
_02002618:
|
|
add r0, r0, #8
|
|
mov r8, #0
|
|
b _02002640
|
|
_02002624:
|
|
bl sub_020028B0
|
|
add r1, r4, r8, lsl #1
|
|
ldrh r2, [r0], #2
|
|
ldrh r1, [r1, #0x64]
|
|
cmp r2, r1
|
|
bne _0200275C
|
|
add r8, r8, #1
|
|
_02002640:
|
|
cmp r8, #3
|
|
blo _02002624
|
|
add r0, r0, #0xa
|
|
bl sub_020028B0
|
|
ldr r3, _02002774 ; =0x048080F8
|
|
add r1, r3, #0x170
|
|
_02002658:
|
|
ldrh r2, [r1]
|
|
sub r2, r2, r7
|
|
mov r2, r2, lsl #0x10
|
|
mov r8, r2, lsr #0x10
|
|
tst r8, #0x8000
|
|
ldrneh r2, [r4, #0x9a]
|
|
addne r2, r8, r2, lsr #1
|
|
movne r2, r2, lsl #0x10
|
|
movne r8, r2, lsr #0x10
|
|
cmp r8, #0x14
|
|
bhi _020026A0
|
|
ldrh r2, [r3]
|
|
sub r2, r2, r6
|
|
mov r2, r2, lsl #0x10
|
|
mov r2, r2, lsr #0x10
|
|
cmp r2, #0x70
|
|
bhi _0200275C
|
|
b _02002658
|
|
_020026A0:
|
|
ldr r2, _02002778 ; =0x04808028
|
|
ldrh r3, [r0]
|
|
ldrh r0, [r2]
|
|
mov r1, #1
|
|
tst r3, r1, lsl r0
|
|
bne _0200275C
|
|
ldrh r1, [r2, #0x70]
|
|
mov r0, #0x40
|
|
strh r1, [r5, #0xa4]
|
|
strh r0, [r2, #0x8c]
|
|
ldrh r0, [r4, #0xbe]
|
|
add r1, r2, #0x174
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0xbe]
|
|
_020026D8:
|
|
ldrh r0, [r1]
|
|
and r0, r0, #3
|
|
cmp r0, #3
|
|
beq _020026D8
|
|
ldr r0, _0200277C ; =0x04808244
|
|
mov r2, #8
|
|
ldrh r1, [r0]
|
|
sub r3, r0, #0x1c
|
|
orr r1, r1, #0x40
|
|
strh r1, [r0]
|
|
ldrh r4, [r0]
|
|
ldr r1, _02002764 ; =0x0380FFF4
|
|
bic r4, r4, #0x40
|
|
strh r4, [r0]
|
|
strh r2, [r3]
|
|
mov r2, #0
|
|
strh r2, [r3]
|
|
ldr r1, [r1]
|
|
ldr r2, _0200276C ; =0x0000FFFF
|
|
add r1, r1, #0x2c
|
|
add r6, r1, #0x400
|
|
ldrh r5, [r6, #0xa4]
|
|
cmp r5, r2
|
|
beq _0200275C
|
|
sub r4, r0, #0x1b0
|
|
ldrh r3, [r4]
|
|
sub r1, r0, #0x214
|
|
strh r5, [r4]
|
|
ldrh r0, [r1]
|
|
orr r0, r0, #0x80
|
|
strh r0, [r1]
|
|
strh r3, [r4]
|
|
strh r2, [r6, #0xa4]
|
|
_0200275C:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02002764: .word 0x0380FFF4
|
|
_02002768: .word 0x04808010
|
|
_0200276C: .word 0x0000FFFF
|
|
_02002770: .word 0x0000E7FF
|
|
_02002774: .word 0x048080F8
|
|
_02002778: .word 0x04808028
|
|
_0200277C: .word 0x04808244
|
|
arm_func_end sub_02002510
|
|
|
|
arm_func_start sub_02002780
|
|
sub_02002780: ; 0x02002780
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _02002844 ; =0x0380FFF4
|
|
mov r0, #2
|
|
ldr r1, [r1]
|
|
mov r5, #0
|
|
add r1, r1, #0x2c
|
|
add r4, r1, #0x400
|
|
bl sub_00FF8EBC
|
|
mov r0, #1
|
|
bl sub_00FF8EBC
|
|
mov r0, r5
|
|
bl sub_00FF8EBC
|
|
ldrh r0, [r4, #0x28]
|
|
cmp r0, #0
|
|
beq _020027D4
|
|
ldr r0, [r4, #0x30]
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
movne r5, #1
|
|
moveq r0, r5
|
|
streqh r0, [r4, #0x28]
|
|
_020027D4:
|
|
ldrh r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
beq _020027F8
|
|
ldr r0, [r4, #0x1c]
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
streqh r0, [r4, #0x14]
|
|
movne r5, #1
|
|
_020027F8:
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
beq _0200281C
|
|
ldr r0, [r4, #8]
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
streqh r0, [r4]
|
|
movne r5, #1
|
|
_0200281C:
|
|
cmp r5, #0
|
|
beq _02002830
|
|
mov r0, #0
|
|
mov r1, #0xe
|
|
bl sub_02000780
|
|
_02002830:
|
|
mov r0, #0
|
|
mov r1, #0x14
|
|
bl sub_02000780
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02002844: .word 0x0380FFF4
|
|
arm_func_end sub_02002780
|
|
|
|
arm_func_start sub_02002848
|
|
sub_02002848: ; 0x02002848
|
|
stmdb sp!, {r4, lr}
|
|
mov r0, #0x1000000
|
|
bl sub_02003B10
|
|
ldr r2, _020028A8 ; =0x04808210
|
|
mov r1, #0x1000
|
|
ldrh r3, [r2]
|
|
mov r4, r0
|
|
strh r1, [r2, #0x34]
|
|
mov r1, #0x64
|
|
b _02002880
|
|
_02002870:
|
|
ldrh r0, [r2]
|
|
cmp r3, r0
|
|
bne _02002888
|
|
sub r1, r1, #1
|
|
_02002880:
|
|
cmp r1, #0
|
|
bne _02002870
|
|
_02002888:
|
|
ldr r1, _020028AC ; =0x04808244
|
|
mov r0, #0
|
|
strh r0, [r1]
|
|
bl sub_02002314
|
|
mov r0, r4
|
|
bl sub_02003AD8
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020028A8: .word 0x04808210
|
|
_020028AC: .word 0x04808244
|
|
arm_func_end sub_02002848
|
|
|
|
arm_func_start sub_020028B0
|
|
sub_020028B0: ; 0x020028B0
|
|
ldr r1, _020028D0 ; =0x04805F60
|
|
cmp r0, r1
|
|
ldrhs r1, _020028D4 ; =0x0380FFF4
|
|
ldrhs r1, [r1]
|
|
addhs r1, r1, #0x300
|
|
ldrhsh r1, [r1, #0xde]
|
|
subhs r0, r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_020028D0: .word 0x04805F60
|
|
_020028D4: .word 0x0380FFF4
|
|
arm_func_end sub_020028B0
|
|
|
|
arm_func_start sub_020028D8
|
|
sub_020028D8: ; 0x020028D8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _0200290C ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x2c
|
|
add r5, r0, #0x400
|
|
add r0, r5, #0x50
|
|
bl sub_00FF3A2C
|
|
mov r4, r0
|
|
add r0, r5, #0x64
|
|
bl sub_00FF3A2C
|
|
orr r0, r4, r0
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200290C: .word 0x0380FFF4
|
|
arm_func_end sub_020028D8
|
|
|
|
arm_func_start sub_02002910
|
|
sub_02002910: ; 0x02002910
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02002958 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0xe8]
|
|
cmp r0, #0
|
|
beq _02002930
|
|
bl sub_00FF9760
|
|
_02002930:
|
|
ldr r0, _02002958 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x3a]
|
|
mov r0, r0, lsl #0x19
|
|
movs r0, r0, lsr #0x1f
|
|
beq _02002950
|
|
bl sub_00FF611C
|
|
_02002950:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02002958: .word 0x0380FFF4
|
|
arm_func_end sub_02002910
|
|
|
|
arm_func_start sub_0200295C
|
|
sub_0200295C: ; 0x0200295C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r7, _02002B28 ; =0x0380FFF4
|
|
mov sl, #2
|
|
ldr r1, [r7]
|
|
mov fp, #0
|
|
add r0, r1, #0x2c
|
|
add r8, r0, #0x400
|
|
ldr r0, _02002B2C ; =0x04808032
|
|
add r6, r1, #0x344
|
|
add r4, r0, #0x6e
|
|
_02002984:
|
|
mov r0, #0x14
|
|
mov r5, sl, lsl #2
|
|
mla sb, sl, r0, r8
|
|
add r0, r5, #0x4800000
|
|
add r0, r0, #0x8000
|
|
ldrh r0, [r0, #0xa0]
|
|
tst r0, #0x8000
|
|
bne _02002B18
|
|
ldrh r0, [sb]
|
|
cmp r0, #0
|
|
beq _02002B18
|
|
ldr r1, [sb, #0xc]
|
|
cmp r1, #0
|
|
beq _02002AF8
|
|
ldr r0, [sb, #8]
|
|
ldrh r0, [r0]
|
|
strh r0, [r1, #8]
|
|
ldr r1, [sb, #8]
|
|
ldr r0, [sb, #0xc]
|
|
ldrh r1, [r1, #0xc]
|
|
strh r1, [r0, #0x14]
|
|
ldr r0, [sb, #8]
|
|
ldrh r1, [r0, #0xc]
|
|
tst r1, #0x4000
|
|
beq _02002AC4
|
|
ldr r1, [r7]
|
|
add r1, r1, #0x600
|
|
ldrh r1, [r1, #0x90]
|
|
tst r1, #8
|
|
beq _02002AA8
|
|
ldrh r1, [r0, #0xa]
|
|
add r2, r0, #0xc
|
|
add r1, r2, r1
|
|
sub r1, r1, #7
|
|
bic r2, r1, #1
|
|
ldrh r1, [r2]
|
|
cmp r1, #0
|
|
ldreqh r1, [r2, #2]
|
|
cmpeq r1, #0
|
|
bne _02002AA8
|
|
ldr r0, _02002B2C ; =0x04808032
|
|
mov r1, #0x8000
|
|
strh fp, [r0]
|
|
strh r1, [r0]
|
|
ldrh r0, [r6, #0xba]
|
|
add r0, r0, #1
|
|
strh r0, [r6, #0xba]
|
|
ldr r0, [sb, #0xc]
|
|
bl sub_00FF8464
|
|
cmp r0, #0
|
|
beq _02002A8C
|
|
ldr r2, [sb, #0xc]
|
|
mov r0, #2
|
|
strh r0, [r2, #8]
|
|
ldrh r0, [sb, #4]
|
|
mov r1, #1
|
|
add r0, r0, #1
|
|
strh r0, [sb, #4]
|
|
ldrh r0, [r8, #0xae]
|
|
add r0, r0, #1
|
|
strh r0, [r8, #0xae]
|
|
ldr r0, [sb, #0xc]
|
|
ldr r2, [sb, #0x10]
|
|
mov lr, pc
|
|
bx r2
|
|
_02002A88:
|
|
b _02002B18
|
|
_02002A8C:
|
|
ldr r1, [sb, #0xc]
|
|
mov r0, #0
|
|
strh r0, [r1, #0xc]
|
|
ldrh r0, [r5, r4]
|
|
orr r0, r0, #0x8000
|
|
strh r0, [r5, r4]
|
|
b _02002B18
|
|
_02002AA8:
|
|
ldrh r0, [r0, #4]
|
|
ldr r2, [sb, #0xc]
|
|
and r0, r0, #0xff
|
|
ldrh r1, [r2, #0xc]
|
|
add r0, r1, r0
|
|
strh r0, [r2, #0xc]
|
|
b _02002AD4
|
|
_02002AC4:
|
|
ldrh r1, [r0, #4]
|
|
ldr r0, [sb, #0xc]
|
|
and r1, r1, #0xff
|
|
strh r1, [r0, #0xc]
|
|
_02002AD4:
|
|
ldrh r0, [sb, #4]
|
|
mov r1, #2
|
|
add r0, r0, #1
|
|
strh r0, [sb, #4]
|
|
ldr r0, [sb, #0xc]
|
|
ldr r2, [sb, #0x10]
|
|
mov lr, pc
|
|
bx r2
|
|
_02002AF4:
|
|
b _02002B18
|
|
_02002AF8:
|
|
ldrh r0, [sb, #4]
|
|
mov r1, #3
|
|
add r0, r0, #1
|
|
strh r0, [sb, #4]
|
|
ldr r0, [sb, #8]
|
|
ldr r2, [sb, #0x10]
|
|
mov lr, pc
|
|
bx r2
|
|
_02002B18:
|
|
subs sl, sl, #1
|
|
bpl _02002984
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02002B28: .word 0x0380FFF4
|
|
_02002B2C: .word 0x04808032
|
|
arm_func_end sub_0200295C
|
|
|
|
arm_func_start sub_02002B30
|
|
sub_02002B30: ; 0x02002B30
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r0, _02002E80 ; =0x0380FFF4
|
|
ldr r4, [r0]
|
|
add r0, r4, #0xdc
|
|
add r5, r0, #0x400
|
|
_02002B44:
|
|
ldr r1, _02002E84 ; =0x0480805A
|
|
ldrh r0, [r5, #4]
|
|
ldrh r6, [r1]
|
|
cmp r6, r0
|
|
beq _02002E78
|
|
ldr r0, _02002E88 ; =0x000008C6
|
|
cmp r6, r0
|
|
blo _02002B68
|
|
bl sub_00FF2394
|
|
_02002B68:
|
|
mov r6, r6, lsl #1
|
|
add r0, r6, #0x4000
|
|
add r7, r0, #0x4800000
|
|
add r0, r7, #2
|
|
bl sub_020028B0
|
|
add r1, r6, #0x4800000
|
|
add r1, r1, #0x4000
|
|
ldrh r2, [r1]
|
|
ldr r1, _02002E8C ; =0x0000FFFF
|
|
ldrh r6, [r0]
|
|
cmp r2, r1
|
|
ldreq r0, _02002E84 ; =0x0480805A
|
|
streqh r6, [r0]
|
|
beq _02002B44
|
|
add r0, r7, #8
|
|
bl sub_020028B0
|
|
ldrh r1, [r0]
|
|
mov r0, r7
|
|
bl sub_02003038
|
|
ldr r1, _02002E84 ; =0x0480805A
|
|
movs r8, r0
|
|
strh r6, [r1]
|
|
bne _02002BEC
|
|
ldrh r0, [r7]
|
|
and r0, r0, #0xf
|
|
cmp r0, #0xc
|
|
bne _02002BE0
|
|
mov r0, #0x10
|
|
bl sub_00FF3254
|
|
b _02002B44
|
|
_02002BE0:
|
|
mov r0, #8
|
|
bl sub_00FF3254
|
|
b _02002B44
|
|
_02002BEC:
|
|
ldr r0, _02002E80 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #8
|
|
beq _02002C14
|
|
ldrh r0, [r8, #0x14]
|
|
tst r0, #0x4000
|
|
movne r0, #0
|
|
strneh r0, [r5, #2]
|
|
_02002C14:
|
|
ldrh r0, [r8, #8]
|
|
mov r6, #1
|
|
tst r0, #0x200
|
|
beq _02002C6C
|
|
ldrh r0, [r8, #0x14]
|
|
mov r0, r0, lsl #0x15
|
|
mov r0, r0, lsr #0x1f
|
|
cmp r0, #1
|
|
beq _02002C48
|
|
ldrh r0, [r8, #0x2a]
|
|
mov r0, r0, lsl #0x1c
|
|
movs r0, r0, lsr #0x1c
|
|
beq _02002E18
|
|
_02002C48:
|
|
add r0, r4, #0x188
|
|
add r1, r4, #0x1e8
|
|
sub r2, r8, #0x10
|
|
mov r6, #0
|
|
bl sub_02000B70
|
|
mov r0, #2
|
|
mov r1, #9
|
|
bl sub_02000780
|
|
b _02002E18
|
|
_02002C6C:
|
|
and r0, r0, #0xf
|
|
cmp r0, #0xf
|
|
addls pc, pc, r0, lsl #2
|
|
b _02002E18
|
|
_02002C7C: ; jump table
|
|
b _02002D08 ; case 0
|
|
b _02002CF0 ; case 1
|
|
b _02002E18 ; case 2
|
|
b _02002E18 ; case 3
|
|
b _02002E18 ; case 4
|
|
b _02002D38 ; case 5
|
|
b _02002E18 ; case 6
|
|
b _02002E18 ; case 7
|
|
b _02002CBC ; case 8
|
|
b _02002E18 ; case 9
|
|
b _02002E18 ; case 10
|
|
b _02002E18 ; case 11
|
|
b _02002D90 ; case 12
|
|
b _02002DE4 ; case 13
|
|
b _02002D70 ; case 14
|
|
b _02002D70 ; case 15
|
|
_02002CBC:
|
|
ldrh r0, [r8, #0x14]
|
|
and r0, r0, #0xf
|
|
cmp r0, #8
|
|
bne _02002E18
|
|
add r0, r4, #0x188
|
|
add r1, r4, #0x1c4
|
|
sub r2, r8, #0x10
|
|
mov r6, #0
|
|
bl sub_02000B70
|
|
mov r0, #2
|
|
mov r1, #6
|
|
bl sub_02000780
|
|
b _02002E18
|
|
_02002CF0:
|
|
ldrh r0, [r8, #0x14]
|
|
cmp r0, #0x80
|
|
bne _02002E18
|
|
mov r0, r8
|
|
bl sub_00FFAA28
|
|
b _02002E18
|
|
_02002D08:
|
|
ldrh r0, [r8, #0x14]
|
|
tst r0, #0xf
|
|
bne _02002E18
|
|
add r0, r4, #0x188
|
|
add r1, r4, #0x1dc
|
|
sub r2, r8, #0x10
|
|
mov r6, #0
|
|
bl sub_02000B70
|
|
mov r0, #1
|
|
mov r1, #7
|
|
bl sub_02000780
|
|
b _02002E18
|
|
_02002D38:
|
|
ldrh r1, [r8, #0x14]
|
|
rsb r0, r6, #0xe800
|
|
and r0, r1, r0
|
|
cmp r0, #0xa4
|
|
bne _02002E18
|
|
add r0, r4, #0x188
|
|
add r1, r4, #0x1dc
|
|
sub r2, r8, #0x10
|
|
mov r6, #0
|
|
bl sub_02000B70
|
|
mov r0, #1
|
|
mov r1, #7
|
|
bl sub_02000780
|
|
b _02002E18
|
|
_02002D70:
|
|
ldrh r1, [r8, #0x14]
|
|
ldr r0, _02002E90 ; =0x0000E7BF
|
|
and r0, r1, r0
|
|
cmp r0, #0x118
|
|
bne _02002E18
|
|
mov r0, r8
|
|
bl sub_00FFA7A8
|
|
b _02002E18
|
|
_02002D90:
|
|
ldrh r1, [r8, #0x14]
|
|
rsb r0, r6, #0xe800
|
|
and r0, r1, r0
|
|
cmp r0, #0x228
|
|
bne _02002E18
|
|
ldr r0, _02002E80 ; =0x0380FFF4
|
|
ldr r1, _02002E80 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x54]
|
|
cmp r0, #0
|
|
ldreq r0, _02002E94 ; =0x0480803C
|
|
streqh r6, [r0]
|
|
ldr r2, [r1]
|
|
mov r0, r8
|
|
ldr r1, [r2, #0x5ac]
|
|
add r1, r1, #1
|
|
str r1, [r2, #0x5ac]
|
|
bl sub_00FFA62C
|
|
mov r6, r0
|
|
b _02002E18
|
|
_02002DE4:
|
|
ldrh r1, [r8, #0x14]
|
|
rsb r0, r6, #0xe800
|
|
and r0, r1, r0
|
|
cmp r0, #0x218
|
|
bne _02002E18
|
|
ldr r1, _02002E80 ; =0x0380FFF4
|
|
mov r0, r8
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #0x5b0]
|
|
add r1, r1, #1
|
|
str r1, [r2, #0x5b0]
|
|
bl sub_00FFA954
|
|
mov r6, r0
|
|
_02002E18:
|
|
cmp r6, #0
|
|
beq _02002E2C
|
|
add r0, r4, #0x188
|
|
sub r1, r8, #0x10
|
|
bl sub_02000AF0
|
|
_02002E2C:
|
|
ldr r3, _02002E80 ; =0x0380FFF4
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #1
|
|
beq _02002B44
|
|
ldr r2, _02002E8C ; =0x0000FFFF
|
|
ldr r1, _02002E98 ; =0x04805F60
|
|
mov r6, #0
|
|
_02002E50:
|
|
cmp r7, r1
|
|
ldrhs r0, [r3]
|
|
add r6, r6, #1
|
|
addhs r0, r0, #0x300
|
|
ldrhsh r0, [r0, #0xde]
|
|
subhs r7, r7, r0
|
|
cmp r6, #7
|
|
strh r2, [r7], #2
|
|
blo _02002E50
|
|
b _02002B44
|
|
_02002E78:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02002E80: .word 0x0380FFF4
|
|
_02002E84: .word 0x0480805A
|
|
_02002E88: .word 0x000008C6
|
|
_02002E8C: .word 0x0000FFFF
|
|
_02002E90: .word 0x0000E7BF
|
|
_02002E94: .word 0x0480803C
|
|
_02002E98: .word 0x04805F60
|
|
arm_func_end sub_02002B30
|
|
|
|
arm_func_start sub_02002E9C
|
|
sub_02002E9C: ; 0x02002E9C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _02002F74 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x2c
|
|
add r4, r0, #0x400
|
|
ldrh r0, [r4, #0x3c]
|
|
cmp r0, #0
|
|
beq _02002F6C
|
|
ldr r1, [r4, #0x90]
|
|
ldr r0, [r4, #0x44]
|
|
ldrh r1, [r1, #0x10]
|
|
ldrh r0, [r0, #2]
|
|
cmp r1, r0
|
|
beq _02002ED8
|
|
bl sub_02002B30
|
|
_02002ED8:
|
|
ldr r0, [r4, #0x44]
|
|
ldrh r0, [r0, #4]
|
|
ands r2, r0, #0xff
|
|
ldr r0, _02002F74 ; =0x0380FFF4
|
|
ldrne r1, [r0]
|
|
ldrne r0, [r1, #0x5a0]
|
|
addne r0, r0, r2
|
|
ldreq r1, [r0]
|
|
ldreq r0, [r1, #0x5a0]
|
|
addeq r0, r0, #1
|
|
str r0, [r1, #0x5a0]
|
|
ldrh r1, [r4, #0x40]
|
|
ldr r0, _02002F74 ; =0x0380FFF4
|
|
add r1, r1, #1
|
|
strh r1, [r4, #0x40]
|
|
ldr ip, [r4, #0x90]
|
|
ldr r1, [r4, #0x44]
|
|
ldrh r3, [ip, #0x10]
|
|
ldrh r2, [r1, #2]
|
|
mov r1, #0
|
|
eor r2, r3, r2
|
|
strh r2, [ip, #0x12]
|
|
ldr r2, [r4, #0x90]
|
|
ldrh r2, [r2, #0x10]
|
|
strh r2, [r4, #0xa0]
|
|
strh r1, [r4, #0x3c]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0xea]
|
|
cmp r0, #0
|
|
beq _02002F58
|
|
bl sub_00FF207C
|
|
_02002F58:
|
|
ldr r0, _02002F74 ; =0x0380FFF4
|
|
ldr r1, [r4, #0x90]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_02000F40
|
|
_02002F6C:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02002F74: .word 0x0380FFF4
|
|
arm_func_end sub_02002E9C
|
|
|
|
arm_func_start sub_02002F78
|
|
sub_02002F78: ; 0x02002F78
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0200302C ; =0x0380FFF4
|
|
ldr r2, _02003030 ; =0x04808088
|
|
ldr r1, [r0]
|
|
ldrh r0, [r2]
|
|
add r4, r1, #0x17c
|
|
cmp r0, #0
|
|
bne _02002FB8
|
|
ldrh r0, [r4, #0x38]
|
|
cmp r0, #0
|
|
beq _02002FB8
|
|
mov r1, #8
|
|
mov r0, #2
|
|
strh r1, [r2, #0x26]
|
|
bl sub_00FF80DC
|
|
b _02003024
|
|
_02002FB8:
|
|
add r0, r1, #0x500
|
|
ldrh r1, [r0, #0x32]
|
|
ldrh r2, [r0, #0x2e]
|
|
mvn r0, r1
|
|
tst r2, r0
|
|
bne _02002FF0
|
|
ldr r0, _02003034 ; =0x048080AE
|
|
mov r1, #8
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, #0x38]
|
|
cmp r0, #0
|
|
beq _02002FF0
|
|
mov r0, #2
|
|
bl sub_00FF80DC
|
|
_02002FF0:
|
|
ldr r0, _02003034 ; =0x048080AE
|
|
mov r1, #5
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, #0x2c]
|
|
cmp r0, #0
|
|
beq _02003010
|
|
mov r0, #1
|
|
bl sub_00FF80DC
|
|
_02003010:
|
|
ldrh r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
beq _02003024
|
|
mov r0, #0
|
|
bl sub_00FF80DC
|
|
_02003024:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200302C: .word 0x0380FFF4
|
|
_02003030: .word 0x04808088
|
|
_02003034: .word 0x048080AE
|
|
arm_func_end sub_02002F78
|
|
|
|
arm_func_start sub_02003038
|
|
sub_02003038: ; 0x02003038
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _020030A4 ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r1, [r2]
|
|
mov r6, r0
|
|
add r0, r1, #0x188
|
|
add r1, r5, #0x22
|
|
bl sub_02000A54
|
|
movs r4, r0
|
|
moveq r0, #0
|
|
beq _0200309C
|
|
mov r1, r6
|
|
add r0, r4, #0x18
|
|
add r2, r5, #0xc
|
|
bl sub_00FF2DE8
|
|
sub r0, r5, #0x18
|
|
strh r0, [r4, #0x16]
|
|
ldrh r0, [r4, #0x22]
|
|
ldrh r1, [r4, #0x1e]
|
|
and r0, r0, #0xff
|
|
and r1, r1, #0xff
|
|
mov r0, r0, lsl #0x10
|
|
orr r0, r1, r0, lsr #8
|
|
strh r0, [r4, #0x1e]
|
|
add r0, r4, #0x10
|
|
_0200309C:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020030A4: .word 0x0380FFF4
|
|
arm_func_end sub_02003038
|
|
|
|
arm_func_start sub_020030A8
|
|
sub_020030A8: ; 0x020030A8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _02003378 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r7, [r1]
|
|
mov r2, #0xb0
|
|
add r1, r7, #0x2c
|
|
add r4, r1, #0x400
|
|
mov r1, r4
|
|
add r5, r7, #0x344
|
|
add r6, r7, #0x31c
|
|
bl sub_020061B8
|
|
add r0, r7, #0x400
|
|
mov r1, #0
|
|
strh r1, [r0, #0x2c]
|
|
str r1, [r4, #0xc]
|
|
strh r1, [r4, #0x14]
|
|
str r1, [r4, #0x20]
|
|
strh r1, [r4, #0x28]
|
|
ldr r0, _0200337C ; =0x0000FFFF
|
|
str r1, [r4, #0x34]
|
|
strh r0, [r4, #0xa2]
|
|
strh r0, [r4, #0xa4]
|
|
ldrh r0, [r5, #0xc]
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _0200335C
|
|
_02003110: ; jump table
|
|
b _02003120 ; case 0
|
|
b _0200319C ; case 1
|
|
b _02003238 ; case 2
|
|
b _020032E4 ; case 3
|
|
_02003120:
|
|
ldr r7, _02003380 ; =0x04804170
|
|
ldr r0, _02003384 ; =0x04804026
|
|
str r7, [r4, #8]
|
|
sub r1, r7, #0x148
|
|
str r1, [r4, #0x1c]
|
|
sub r2, r7, #0x170
|
|
ldr r1, _02003388 ; =0x027F02FC
|
|
str r2, [r4, #0x30]
|
|
ldr r2, _0200338C ; =0x027F0478
|
|
str r1, [r4, #0x10]
|
|
ldr r1, _02003390 ; =0x027F0944
|
|
str r2, [r4, #0x24]
|
|
ldr r3, _02003394 ; =0x0000B6B8
|
|
str r1, [r4, #0x38]
|
|
sub r1, r7, #0x14c
|
|
ldr r2, _02003398 ; =0x00001D46
|
|
strh r3, [r1]
|
|
strh r2, [r0]
|
|
strh r3, [r7, #-4]
|
|
add r0, r0, #0x148
|
|
strh r2, [r0]
|
|
add r1, r7, #0x620
|
|
ldr r0, _0200339C ; =0x04804792
|
|
strh r3, [r1]
|
|
strh r2, [r0]
|
|
mov r1, #8
|
|
ldr r0, _020033A0 ; =0x048080AE
|
|
strh r1, [r5, #0x8a]
|
|
mov r1, #1
|
|
strh r1, [r0]
|
|
b _0200335C
|
|
_0200319C:
|
|
ldr r3, _020033A4 ; =0x04804AA0
|
|
ldr r2, _020033A8 ; =0x04804334
|
|
str r3, [r4, #8]
|
|
sub r0, r3, #0x148
|
|
str r0, [r4, #0x1c]
|
|
ldr r0, _02003388 ; =0x027F02FC
|
|
str r2, [r4, #0x30]
|
|
ldr r1, _0200338C ; =0x027F0478
|
|
str r0, [r4, #0x10]
|
|
ldr r0, _020033AC ; =0x027F09AC
|
|
str r1, [r4, #0x24]
|
|
ldr ip, _020033B0 ; =0x04804956
|
|
str r0, [r4, #0x38]
|
|
sub r1, r2, #0xfc
|
|
str r1, [r4, #0x80]
|
|
sub r7, r2, #0x334
|
|
ldr r0, _02003394 ; =0x0000B6B8
|
|
str r7, [r4, #0x44]
|
|
sub r7, r2, #0x100
|
|
ldr lr, _02003398 ; =0x00001D46
|
|
strh r0, [r7]
|
|
strh lr, [r2, #-0xfe]
|
|
strh r0, [r2, #-4]
|
|
strh lr, [r2, #-2]
|
|
add r2, r2, #0x620
|
|
strh r0, [r2]
|
|
strh lr, [ip]
|
|
strh r0, [r3, #-4]
|
|
add r2, ip, #0x148
|
|
strh lr, [r2]
|
|
add r3, r3, #0x620
|
|
ldr r2, _020033B4 ; =0x048050C2
|
|
strh r0, [r3]
|
|
strh lr, [r2]
|
|
mov r0, #0x208
|
|
strh r0, [r5, #0x8a]
|
|
str r1, [r4, #0x80]
|
|
bl sub_00FF93EC
|
|
b _0200335C
|
|
_02003238:
|
|
ldr r1, _020033B8 ; =0x048045D8
|
|
ldr r3, _020033BC ; =0x04804232
|
|
str r1, [r4, #8]
|
|
sub r0, r1, #0x148
|
|
str r0, [r4, #0x1c]
|
|
sub r2, r1, #0x170
|
|
ldr ip, _020033C0 ; =0x04804000
|
|
ldr r0, _02003388 ; =0x027F02FC
|
|
str r2, [r4, #0x30]
|
|
ldr r2, _0200338C ; =0x027F0478
|
|
str r0, [r4, #0x10]
|
|
ldr r0, _02003390 ; =0x027F0944
|
|
str r2, [r4, #0x24]
|
|
str r0, [r4, #0x38]
|
|
str ip, [r4, #0x58]
|
|
add r2, ip, #0x234
|
|
ldr r0, _02003394 ; =0x0000B6B8
|
|
str r2, [r4, #0x6c]
|
|
add r2, ip, #0x230
|
|
ldr r4, _02003398 ; =0x00001D46
|
|
strh r0, [r2]
|
|
strh r4, [r3]
|
|
sub r2, r1, #0x174
|
|
strh r0, [r2]
|
|
add r2, r3, #0x234
|
|
strh r4, [r2]
|
|
sub r2, r1, #0x14c
|
|
strh r0, [r2]
|
|
add r2, r3, #0x25c
|
|
strh r4, [r2]
|
|
strh r0, [r1, #-4]
|
|
add r2, r3, #0x3a4
|
|
strh r4, [r2]
|
|
add r2, r1, #0x620
|
|
ldr r1, _020033C4 ; =0x04804BFA
|
|
strh r0, [r2]
|
|
strh r4, [r1]
|
|
mov r1, #0x108
|
|
ldr r0, _020033A0 ; =0x048080AE
|
|
strh r1, [r5, #0x8a]
|
|
mov r1, #0xd
|
|
strh r1, [r0]
|
|
b _0200335C
|
|
_020032E4:
|
|
ldr ip, _02003380 ; =0x04804170
|
|
ldr r0, _02003384 ; =0x04804026
|
|
str ip, [r4, #8]
|
|
sub r1, ip, #0x148
|
|
str r1, [r4, #0x1c]
|
|
sub r2, ip, #0x170
|
|
ldr r1, _02003388 ; =0x027F02FC
|
|
str r2, [r4, #0x30]
|
|
ldr r2, _0200338C ; =0x027F0478
|
|
str r1, [r4, #0x10]
|
|
ldr r1, _02003390 ; =0x027F0944
|
|
str r2, [r4, #0x24]
|
|
ldr r3, _02003394 ; =0x0000B6B8
|
|
str r1, [r4, #0x38]
|
|
sub r1, ip, #0x14c
|
|
ldr r2, _02003398 ; =0x00001D46
|
|
strh r3, [r1]
|
|
strh r2, [r0]
|
|
strh r3, [ip, #-4]
|
|
add r0, r0, #0x148
|
|
strh r2, [r0]
|
|
add r1, ip, #0x620
|
|
ldr r0, _0200339C ; =0x04804792
|
|
strh r3, [r1]
|
|
strh r2, [r0]
|
|
mov r1, #0x108
|
|
ldr r0, _020033A0 ; =0x048080AE
|
|
strh r1, [r5, #0x8a]
|
|
mov r1, #0xd
|
|
strh r1, [r0]
|
|
_0200335C:
|
|
ldrh r0, [r6, #0x18]
|
|
cmp r0, #0
|
|
ldrneh r0, [r5, #0x8a]
|
|
orrne r0, r0, #0x4000
|
|
strneh r0, [r5, #0x8a]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02003378: .word 0x0380FFF4
|
|
_0200337C: .word 0x0000FFFF
|
|
_02003380: .word 0x04804170
|
|
_02003384: .word 0x04804026
|
|
_02003388: .word 0x027F02FC
|
|
_0200338C: .word 0x027F0478
|
|
_02003390: .word 0x027F0944
|
|
_02003394: .word 0x0000B6B8
|
|
_02003398: .word 0x00001D46
|
|
_0200339C: .word 0x04804792
|
|
_020033A0: .word 0x048080AE
|
|
_020033A4: .word 0x04804AA0
|
|
_020033A8: .word 0x04804334
|
|
_020033AC: .word 0x027F09AC
|
|
_020033B0: .word 0x04804956
|
|
_020033B4: .word 0x048050C2
|
|
_020033B8: .word 0x048045D8
|
|
_020033BC: .word 0x04804232
|
|
_020033C0: .word 0x04804000
|
|
_020033C4: .word 0x04804BFA
|
|
arm_func_end sub_020030A8
|
|
|
|
arm_func_start sub_020033C8
|
|
sub_020033C8: ; 0x020033C8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _020034C0 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r3, [r1]
|
|
mov r2, #0x50
|
|
add r1, r3, #0xdc
|
|
add r5, r1, #0x400
|
|
mov r1, r5
|
|
add r4, r3, #0x344
|
|
bl sub_020061B8
|
|
ldr r1, _020034C4 ; =0x04808030
|
|
mov r2, #0x8000
|
|
ldr r0, _020034C0 ; =0x0380FFF4
|
|
strh r2, [r1]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _02003444
|
|
_02003418: ; jump table
|
|
b _02003428 ; case 0
|
|
b _02003430 ; case 1
|
|
b _02003438 ; case 2
|
|
b _02003440 ; case 3
|
|
_02003428:
|
|
ldr r6, _020034C8 ; =0x00000794
|
|
b _02003444
|
|
_02003430:
|
|
ldr r6, _020034CC ; =0x000010C4
|
|
b _02003444
|
|
_02003438:
|
|
ldr r6, _020034D0 ; =0x00000BFC
|
|
b _02003444
|
|
_02003440:
|
|
ldr r6, _020034C8 ; =0x00000794
|
|
_02003444:
|
|
ldr r3, _020034D4 ; =0x04808050
|
|
add r0, r6, #0x4000
|
|
ldr r1, _020034D8 ; =0x00005F60
|
|
add r2, r0, #0x4800000
|
|
mov r0, r6, lsl #0xf
|
|
strh r2, [r3]
|
|
mov r0, r0, lsr #0x10
|
|
strh r0, [r3, #6]
|
|
strh r1, [r3, #2]
|
|
strh r0, [r3, #0xa]
|
|
ldr r2, _020034DC ; =0x0000FFFF
|
|
strh r0, [r5, #4]
|
|
sub r0, r1, #0x4000
|
|
strh r2, [r5]
|
|
sub r0, r0, r6
|
|
strh r0, [r4, #0x9a]
|
|
sub r0, r1, #2
|
|
strh r0, [r3, #0x12]
|
|
rsb r0, r2, #0x18000
|
|
strh r0, [r3, #-0x20]
|
|
add r0, r3, #0x1fc
|
|
ldr r1, _020034E0 ; =0x0480824E
|
|
strh r2, [r0]
|
|
ldr r0, _020034E4 ; =0x04805F70
|
|
strh r2, [r1]
|
|
strh r2, [r0]
|
|
strh r2, [r0, #2]
|
|
strh r2, [r0, #0xe]
|
|
strh r2, [r0, #6]
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020034C0: .word 0x0380FFF4
|
|
_020034C4: .word 0x04808030
|
|
_020034C8: .word 0x00000794
|
|
_020034CC: .word 0x000010C4
|
|
_020034D0: .word 0x00000BFC
|
|
_020034D4: .word 0x04808050
|
|
_020034D8: .word 0x00005F60
|
|
_020034DC: .word 0x0000FFFF
|
|
_020034E0: .word 0x0480824E
|
|
_020034E4: .word 0x04805F70
|
|
arm_func_end sub_020033C8
|
|
|
|
arm_func_start sub_020034E8
|
|
sub_020034E8: ; 0x020034E8
|
|
ldr r1, _02003510 ; =0x0480819C
|
|
mov r2, #0xfa0
|
|
b _02003504
|
|
_020034F4:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bxne lr
|
|
sub r2, r2, #1
|
|
_02003504:
|
|
cmp r2, #0
|
|
bne _020034F4
|
|
bx lr
|
|
.align 2, 0
|
|
_02003510: .word 0x0480819C
|
|
arm_func_end sub_020034E8
|
|
|
|
arm_func_start sub_02003514
|
|
sub_02003514: ; 0x02003514
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _02003594 ; =0x000082EA
|
|
mov r3, #0
|
|
umull lr, ip, r0, r2
|
|
mla ip, r0, r3, ip
|
|
mov r0, r3
|
|
mla ip, r0, r2, ip
|
|
mov r0, lr, lsr #6
|
|
mov r4, #1
|
|
mov r5, r1
|
|
mov r1, ip, lsr #6
|
|
orr r0, r0, ip, lsl #26
|
|
mov r2, #0x3e8
|
|
str r4, [sp, #4]
|
|
bl sub_0200ED68
|
|
add r3, sp, #4
|
|
str r3, [sp]
|
|
ldr r2, _02003598 ; =0x0380FFF4
|
|
mov r3, r5
|
|
ldr r2, [r2]
|
|
add ip, r2, #0x234
|
|
mov r2, r1
|
|
mov r1, r0
|
|
add r0, ip, #0x400
|
|
bl sub_020056C4
|
|
_0200357C:
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #0
|
|
bne _0200357C
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02003594: .word 0x000082EA
|
|
_02003598: .word 0x0380FFF4
|
|
arm_func_end sub_02003514
|
|
|
|
arm_func_start sub_0200359C
|
|
sub_0200359C: ; 0x0200359C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _02003600 ; =0x04808028
|
|
ldr lr, _02003604 ; =0x04000208
|
|
mov r5, #1
|
|
add r2, r1, #0x1ec
|
|
add r3, r1, #0x174
|
|
mov ip, #0
|
|
b _020035F0
|
|
_020035BC:
|
|
ldrh r4, [lr]
|
|
strh ip, [lr]
|
|
ldrh r0, [r3]
|
|
and r0, r0, #3
|
|
cmp r0, #3
|
|
ldrneh r0, [r2]
|
|
cmpne r0, #5
|
|
cmpne r0, #7
|
|
cmpne r0, #8
|
|
strneh ip, [r1]
|
|
ldrh r0, [lr]
|
|
movne r5, ip
|
|
strh r4, [lr]
|
|
_020035F0:
|
|
cmp r5, #0
|
|
bne _020035BC
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02003600: .word 0x04808028
|
|
_02003604: .word 0x04000208
|
|
arm_func_end sub_0200359C
|
|
|
|
arm_func_start sub_02003608
|
|
sub_02003608: ; 0x02003608
|
|
ldr r1, _02003638 ; =0x0480815E
|
|
mov r2, #0
|
|
b _02003628
|
|
_02003614:
|
|
ldrh r0, [r1]
|
|
tst r0, #1
|
|
moveq r0, #0
|
|
bxeq lr
|
|
add r2, r2, #1
|
|
_02003628:
|
|
cmp r2, #0x2800
|
|
blo _02003614
|
|
mov r0, #1
|
|
bx lr
|
|
.align 2, 0
|
|
_02003638: .word 0x0480815E
|
|
arm_func_end sub_02003608
|
|
|
|
arm_func_start sub_0200363C
|
|
sub_0200363C: ; 0x0200363C
|
|
ldr r1, _0200366C ; =0x04808180
|
|
mov r2, #0
|
|
b _0200365C
|
|
_02003648:
|
|
ldrh r0, [r1]
|
|
tst r0, #1
|
|
moveq r0, #0
|
|
bxeq lr
|
|
add r2, r2, #1
|
|
_0200365C:
|
|
cmp r2, #0x2800
|
|
blo _02003648
|
|
mov r0, #1
|
|
bx lr
|
|
.align 2, 0
|
|
_0200366C: .word 0x04808180
|
|
arm_func_end sub_0200363C
|
|
|
|
arm_func_start sub_02003670
|
|
sub_02003670: ; 0x02003670
|
|
stmdb sp!, {lr}
|
|
mov ip, #0x4000000
|
|
add ip, ip, #0x210
|
|
ldr r1, [ip, #-8]
|
|
cmp r1, #0
|
|
beq _0200368C
|
|
b _02003690
|
|
_0200368C:
|
|
ldmia sp!, {pc}
|
|
_02003690:
|
|
ldmia ip, {r1, r2}
|
|
ands r1, r1, r2
|
|
beq _020036A0
|
|
b _020036A4
|
|
_020036A0:
|
|
ldmia sp!, {pc}
|
|
_020036A4:
|
|
mov r3, #1
|
|
mov r0, #0
|
|
_020036AC:
|
|
ands r2, r1, r3, lsl r0
|
|
beq _020036B8
|
|
b _020036BC
|
|
_020036B8:
|
|
add r0, r0, #1
|
|
_020036BC:
|
|
beq _020036AC
|
|
str r2, [ip, #4]
|
|
ldr r1, _020036D4 ; =0x038074F4
|
|
ldr r0, [r1, r0, lsl #2]
|
|
ldr lr, _020036D8 ; =0x037FB4F4
|
|
bx r0
|
|
.align 2, 0
|
|
_020036D4: .word 0x038074F4
|
|
_020036D8: .word 0x037FB4F4
|
|
arm_func_end sub_02003670
|
|
|
|
arm_func_start sub_020036DC
|
|
sub_020036DC: ; 0x020036DC
|
|
ldr ip, _02003818 ; =0x03807608
|
|
mov r3, #0
|
|
ldr ip, [ip]
|
|
mov r2, #1
|
|
cmp ip, #0
|
|
beq _0200372C
|
|
_020036F4:
|
|
str r2, [ip, #0x48]
|
|
str r3, [ip, #0x5c]
|
|
str r3, [ip, #0x60]
|
|
ldr r0, [ip, #0x64]
|
|
str r3, [ip, #0x64]
|
|
mov ip, r0
|
|
cmp ip, #0
|
|
bne _020036F4
|
|
ldr ip, _02003818 ; =0x03807608
|
|
str r3, [ip]
|
|
str r3, [ip, #4]
|
|
ldr ip, _0200381C ; =0x038076A4
|
|
mov r1, #1
|
|
strh r1, [ip]
|
|
_0200372C:
|
|
ldr ip, _0200381C ; =0x038076A4
|
|
ldrh r1, [ip]
|
|
cmp r1, #0
|
|
beq _02003740
|
|
b _02003744
|
|
_02003740:
|
|
ldmia sp!, {pc}
|
|
_02003744:
|
|
mov r1, #0
|
|
strh r1, [ip]
|
|
mov r3, #0xd2
|
|
msr cpsr_c, r3
|
|
add r2, ip, #8
|
|
ldr r1, [r2]
|
|
_0200375C:
|
|
cmp r1, #0
|
|
bne _02003768
|
|
b _0200376C
|
|
_02003768:
|
|
ldrh r0, [r1, #0x48]
|
|
_0200376C:
|
|
bne _02003774
|
|
b _02003778
|
|
_02003774:
|
|
cmp r0, #1
|
|
_02003778:
|
|
bne _02003780
|
|
b _02003784
|
|
_02003780:
|
|
ldr r1, [r1, #0x4c]
|
|
_02003784:
|
|
bne _0200375C
|
|
cmp r1, #0
|
|
bne _0200379C
|
|
_02003790:
|
|
mov r3, #0x92
|
|
msr cpsr_c, r3
|
|
ldmia sp!, {pc}
|
|
_0200379C:
|
|
ldr r0, [ip, #4]
|
|
cmp r1, r0
|
|
beq _02003790
|
|
ldr r3, [ip, #0xc]
|
|
cmp r3, #0
|
|
beq _020037C4
|
|
stmdb sp!, {r0, r1, ip}
|
|
mov lr, pc
|
|
bx r3
|
|
_020037C0:
|
|
ldmia sp!, {r0, r1, ip}
|
|
_020037C4:
|
|
str r1, [ip, #4]
|
|
mrs r2, spsr
|
|
str r2, [r0, #0]!
|
|
ldmib sp!, {r2, r3}
|
|
stmib r0!, {r2, r3}
|
|
ldmib sp!, {r2, r3, ip, lr}
|
|
stmib r0!, {r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, ip, sp, lr} ^
|
|
stmib r0!, {lr}
|
|
mov r3, #0xd3
|
|
msr cpsr_c, r3
|
|
stmib r0!, {sp}
|
|
ldr sp, [r1, #0x44]
|
|
mov r3, #0xd2
|
|
msr cpsr_c, r3
|
|
ldr r2, [r1, #0]!
|
|
msr spsr_fc, r2
|
|
ldr lr, [r1, #0x40]
|
|
ldmib r1, {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, ip, sp, lr} ^
|
|
mov r0, r0
|
|
stmda sp!, {r0, r1, r2, r3, ip, lr}
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
_02003818: .word 0x03807608
|
|
_0200381C: .word 0x038076A4
|
|
arm_func_end sub_020036DC
|
|
|
|
arm_func_start sub_02003820
|
|
sub_02003820: ; 0x02003820
|
|
bx lr
|
|
arm_func_end sub_02003820
|
|
|
|
arm_func_start sub_02003824
|
|
sub_02003824: ; 0x02003824
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r1, #0xc
|
|
mul r5, r0, r1
|
|
ldr r2, _0200389C ; =0x03807610
|
|
ldr r3, _020038A0 ; =0x038074E0
|
|
mov r4, r0, lsl #1
|
|
ldr r1, [r2, r5]
|
|
mov r0, #0
|
|
ldrh r3, [r3, r4]
|
|
mov r4, #1
|
|
str r0, [r2, r5]
|
|
cmp r1, #0
|
|
mov r4, r4, lsl r3
|
|
beq _0200386C
|
|
ldr r0, _020038A4 ; =0x03807618
|
|
ldr r0, [r0, r5]
|
|
mov lr, pc
|
|
bx r1
|
|
_0200386C:
|
|
ldr r2, _020038A8 ; =0x0380FFF8
|
|
ldr r0, _020038AC ; =0x03807614
|
|
ldr r1, [r2]
|
|
orr r1, r1, r4
|
|
str r1, [r2]
|
|
ldr r0, [r0, r5]
|
|
cmp r0, #0
|
|
bne _02003894
|
|
mov r0, r4
|
|
bl sub_02003B10
|
|
_02003894:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200389C: .word 0x03807610
|
|
_020038A0: .word 0x038074E0
|
|
_020038A4: .word 0x03807618
|
|
_020038A8: .word 0x0380FFF8
|
|
_020038AC: .word 0x03807614
|
|
arm_func_end sub_02003824
|
|
|
|
arm_func_start sub_020038B0
|
|
sub_020038B0: ; 0x020038B0
|
|
ldr ip, _020038BC ; =sub_037FB63C
|
|
mov r0, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_020038BC: .word sub_037FB63C
|
|
arm_func_end sub_020038B0
|
|
|
|
arm_func_start sub_020038C0
|
|
sub_020038C0: ; 0x020038C0
|
|
ldr ip, _020038CC ; =sub_037FB63C
|
|
mov r0, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_020038CC: .word sub_037FB63C
|
|
arm_func_end sub_020038C0
|
|
|
|
arm_func_start sub_020038D0
|
|
sub_020038D0: ; 0x020038D0
|
|
ldr ip, _020038DC ; =sub_037FB63C
|
|
mov r0, #2
|
|
bx ip
|
|
.align 2, 0
|
|
_020038DC: .word sub_037FB63C
|
|
arm_func_end sub_020038D0
|
|
|
|
arm_func_start sub_020038E0
|
|
sub_020038E0: ; 0x020038E0
|
|
ldr ip, _020038EC ; =sub_037FB63C
|
|
mov r0, #3
|
|
bx ip
|
|
.align 2, 0
|
|
_020038EC: .word sub_037FB63C
|
|
arm_func_end sub_020038E0
|
|
|
|
arm_func_start sub_020038F0
|
|
sub_020038F0: ; 0x020038F0
|
|
ldr ip, _020038FC ; =sub_037FB63C
|
|
mov r0, #4
|
|
bx ip
|
|
.align 2, 0
|
|
_020038FC: .word sub_037FB63C
|
|
arm_func_end sub_020038F0
|
|
|
|
arm_func_start sub_02003900
|
|
sub_02003900: ; 0x02003900
|
|
ldr ip, _0200390C ; =sub_037FB63C
|
|
mov r0, #5
|
|
bx ip
|
|
.align 2, 0
|
|
_0200390C: .word sub_037FB63C
|
|
arm_func_end sub_02003900
|
|
|
|
arm_func_start sub_02003910
|
|
sub_02003910: ; 0x02003910
|
|
ldr ip, _0200391C ; =sub_037FB63C
|
|
mov r0, #6
|
|
bx ip
|
|
.align 2, 0
|
|
_0200391C: .word sub_037FB63C
|
|
arm_func_end sub_02003910
|
|
|
|
arm_func_start sub_02003920
|
|
sub_02003920: ; 0x02003920
|
|
ldr ip, _0200392C ; =sub_037FB63C
|
|
mov r0, #7
|
|
bx ip
|
|
.align 2, 0
|
|
_0200392C: .word sub_037FB63C
|
|
arm_func_end sub_02003920
|
|
|
|
arm_func_start sub_02003930
|
|
sub_02003930: ; 0x02003930
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _02003974 ; =0x027FFC3C
|
|
ldr r0, _02003978 ; =0x03807610
|
|
ldr r1, [r2]
|
|
ldr r3, [r0, #0x60]
|
|
add r0, r1, #1
|
|
str r0, [r2]
|
|
cmp r3, #0
|
|
beq _0200395C
|
|
mov lr, pc
|
|
bx r3
|
|
_0200395C:
|
|
ldr r1, _0200397C ; =0x0380FFF8
|
|
ldr r0, [r1]
|
|
orr r0, r0, #1
|
|
str r0, [r1]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02003974: .word 0x027FFC3C
|
|
_02003978: .word 0x03807610
|
|
_0200397C: .word 0x0380FFF8
|
|
arm_func_end sub_02003930
|
|
|
|
arm_func_start sub_02003980
|
|
sub_02003980: ; 0x02003980
|
|
ldr r0, _0200399C ; =0x03807608
|
|
mov r2, #0
|
|
str r2, [r0, #4]
|
|
ldr r1, _020039A0 ; =0x027FFC3C
|
|
str r2, [r0]
|
|
str r2, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200399C: .word 0x03807608
|
|
_020039A0: .word 0x027FFC3C
|
|
arm_func_end sub_02003980
|
|
|
|
arm_func_start sub_020039A4
|
|
sub_020039A4: ; 0x020039A4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r4, _02003A34 ; =0x038074F4
|
|
mov sb, #0
|
|
mov r2, #0xc
|
|
ldr r5, _02003A38 ; =0x03807670
|
|
ldr r7, _02003A3C ; =0x03807610
|
|
mov r8, sb
|
|
mov lr, sb
|
|
mov ip, #1
|
|
mov r3, r2
|
|
_020039CC:
|
|
tst r0, #1
|
|
beq _02003A1C
|
|
mov sl, r8
|
|
cmp sb, #8
|
|
blt _020039F0
|
|
cmp sb, #0xb
|
|
suble r6, sb, #8
|
|
mlale sl, r6, r3, r7
|
|
ble _02003A14
|
|
_020039F0:
|
|
cmp sb, #3
|
|
blt _02003A08
|
|
cmp sb, #6
|
|
addle r6, sb, #1
|
|
mlale sl, r6, r2, r7
|
|
ble _02003A14
|
|
_02003A08:
|
|
cmp sb, #0
|
|
strne r1, [r4, sb, lsl #2]
|
|
moveq sl, r5
|
|
_02003A14:
|
|
cmp sl, #0
|
|
stmneia sl, {r1, ip, lr}
|
|
_02003A1C:
|
|
add sb, sb, #1
|
|
cmp sb, #0x19
|
|
mov r0, r0, lsr #1
|
|
blt _020039CC
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02003A34: .word 0x038074F4
|
|
_02003A38: .word 0x03807670
|
|
_02003A3C: .word 0x03807610
|
|
arm_func_end sub_020039A4
|
|
|
|
arm_func_start sub_02003A40
|
|
sub_02003A40: ; 0x02003A40
|
|
stmdb sp!, {r4, lr}
|
|
mov r3, #0xc
|
|
mul r4, r0, r3
|
|
ldr ip, _02003A80 ; =0x03807640
|
|
ldr r3, _02003A84 ; =0x03807648
|
|
str r1, [ip, r4]
|
|
add r0, r0, #3
|
|
mov r1, #1
|
|
mov r0, r1, lsl r0
|
|
str r2, [r3, r4]
|
|
bl sub_02003AD8
|
|
ldr r0, _02003A88 ; =0x03807644
|
|
mov r1, #1
|
|
str r1, [r0, r4]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02003A80: .word 0x03807640
|
|
_02003A84: .word 0x03807648
|
|
_02003A88: .word 0x03807644
|
|
arm_func_end sub_02003A40
|
|
|
|
arm_func_start sub_02003A8C
|
|
sub_02003A8C: ; 0x02003A8C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_02003AC0
|
|
ldr r1, _02003ABC ; =0x04000210
|
|
ldr r3, [r1]
|
|
sub r2, r1, #8
|
|
str r4, [r1]
|
|
ldrh r1, [r2]
|
|
strh r0, [r2]
|
|
mov r0, r3
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02003ABC: .word 0x04000210
|
|
arm_func_end sub_02003A8C
|
|
|
|
arm_func_start sub_02003AC0
|
|
sub_02003AC0: ; 0x02003AC0
|
|
ldr r2, _02003AD4 ; =0x04000208
|
|
mov r1, #0
|
|
ldrh r0, [r2]
|
|
strh r1, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_02003AD4: .word 0x04000208
|
|
arm_func_end sub_02003AC0
|
|
|
|
arm_func_start sub_02003AD8
|
|
sub_02003AD8: ; 0x02003AD8
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_02003AC0
|
|
ldr ip, _02003B0C ; =0x04000210
|
|
ldr r3, [ip]
|
|
sub r2, ip, #8
|
|
orr r1, r3, r4
|
|
str r1, [ip]
|
|
ldrh r1, [r2]
|
|
strh r0, [r2]
|
|
mov r0, r3
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02003B0C: .word 0x04000210
|
|
arm_func_end sub_02003AD8
|
|
|
|
arm_func_start sub_02003B10
|
|
sub_02003B10: ; 0x02003B10
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_02003AC0
|
|
ldr ip, _02003B48 ; =0x04000210
|
|
mvn r1, r4
|
|
ldr r3, [ip]
|
|
sub r2, ip, #8
|
|
and r1, r3, r1
|
|
str r1, [ip]
|
|
ldrh r1, [r2]
|
|
strh r0, [r2]
|
|
mov r0, r3
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02003B48: .word 0x04000210
|
|
arm_func_end sub_02003B10
|
|
|
|
arm_func_start sub_02003B4C
|
|
sub_02003B4C: ; 0x02003B4C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_02003AC0
|
|
ldr r1, _02003B7C ; =0x04000214
|
|
ldr r3, [r1]
|
|
sub r2, r1, #0xc
|
|
str r4, [r1]
|
|
ldrh r1, [r2]
|
|
strh r0, [r2]
|
|
mov r0, r3
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02003B7C: .word 0x04000214
|
|
arm_func_end sub_02003B4C
|
|
|
|
arm_func_start sub_02003B80
|
|
sub_02003B80: ; 0x02003B80
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _02003BE8 ; =0x0380767C
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
bne _02003BE0
|
|
ldr r4, _02003BEC ; =0x027FFFF0
|
|
mov r2, #1
|
|
mov r1, #0
|
|
str r2, [r0]
|
|
strh r1, [r4, #6]
|
|
mov r5, #0x400
|
|
b _02003BB8
|
|
_02003BB0:
|
|
mov r0, r5
|
|
bl sub_02003BF4
|
|
_02003BB8:
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0x7f
|
|
bne _02003BB0
|
|
ldr r1, _02003BF0 ; =0x027FFFB8
|
|
mvn r0, #0
|
|
str r0, [r1]
|
|
mov r0, r0, lsl #0x10
|
|
str r0, [r1, #4]
|
|
mov r0, #0xbf
|
|
strh r0, [r4, #6]
|
|
_02003BE0:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02003BE8: .word 0x0380767C
|
|
_02003BEC: .word 0x027FFFF0
|
|
_02003BF0: .word 0x027FFFB8
|
|
arm_func_end sub_02003B80
|
|
|
|
arm_func_start sub_02003BF4
|
|
sub_02003BF4: ; 0x02003BF4
|
|
ldr ip, _02003BFC ; =sub_038037B8
|
|
bx ip
|
|
.align 2, 0
|
|
_02003BFC: .word sub_038037B8
|
|
arm_func_end sub_02003BF4
|
|
|
|
arm_func_start sub_02003C00
|
|
sub_02003C00: ; 0x02003C00
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r1
|
|
ldrh r1, [r7, #4]
|
|
mov r6, r2
|
|
cmp r0, r1
|
|
mov r5, r3
|
|
mvnne r0, #1
|
|
bne _02003C74
|
|
cmp r5, #0
|
|
beq _02003C30
|
|
bl sub_02005F14
|
|
b _02003C34
|
|
_02003C30:
|
|
bl sub_02005EE8
|
|
_02003C34:
|
|
mov r4, r0
|
|
mov r0, #0
|
|
strh r0, [r7, #4]
|
|
cmp r6, #0
|
|
beq _02003C50
|
|
mov lr, pc
|
|
bx r6
|
|
_02003C50:
|
|
mov r0, #0
|
|
str r0, [r7]
|
|
cmp r5, #0
|
|
mov r0, r4
|
|
beq _02003C6C
|
|
bl sub_02005F28
|
|
b _02003C70
|
|
_02003C6C:
|
|
bl sub_02005EFC
|
|
_02003C70:
|
|
mov r0, #0
|
|
_02003C74:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_02003C00
|
|
|
|
arm_func_start sub_02003C7C
|
|
sub_02003C7C: ; 0x02003C7C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
movs r6, r3
|
|
mov sb, r0
|
|
mov r8, r1
|
|
mov r7, r2
|
|
beq _02003C9C
|
|
bl sub_02005F14
|
|
b _02003CA0
|
|
_02003C9C:
|
|
bl sub_02005EE8
|
|
_02003CA0:
|
|
mov r5, r0
|
|
mov r0, sb
|
|
mov r1, r8
|
|
bl sub_02006494
|
|
movs r4, r0
|
|
bne _02003CCC
|
|
cmp r7, #0
|
|
beq _02003CC8
|
|
mov lr, pc
|
|
bx r7
|
|
_02003CC8:
|
|
strh sb, [r8, #4]
|
|
_02003CCC:
|
|
cmp r6, #0
|
|
mov r0, r5
|
|
beq _02003CE0
|
|
bl sub_02005F28
|
|
b _02003CE4
|
|
_02003CE0:
|
|
bl sub_02005EFC
|
|
_02003CE4:
|
|
mov r0, r4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
arm_func_end sub_02003C7C
|
|
|
|
arm_func_start sub_02003CF0
|
|
sub_02003CF0: ; 0x02003CF0
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r6, _02003D38 ; =0x027FFFE8
|
|
ldr r5, _02003D3C ; =0x037FBBA4
|
|
mov r8, r0
|
|
mov r7, #0x400
|
|
mov r4, #1
|
|
b _02003D14
|
|
_02003D0C:
|
|
mov r0, r7
|
|
bl sub_02003BF4
|
|
_02003D14:
|
|
mov r0, r8
|
|
mov r1, r6
|
|
mov r2, r5
|
|
mov r3, r4
|
|
bl sub_02003C7C
|
|
cmp r0, #0
|
|
bgt _02003D0C
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02003D38: .word 0x027FFFE8
|
|
_02003D3C: .word 0x037FBBA4
|
|
arm_func_end sub_02003CF0
|
|
|
|
arm_func_start sub_02003D40
|
|
sub_02003D40: ; 0x02003D40
|
|
ldr ip, _02003D54 ; =sub_037FBA18
|
|
ldr r1, _02003D58 ; =0x027FFFE8
|
|
ldr r2, _02003D5C ; =0x037FBBA8
|
|
mov r3, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_02003D54: .word sub_037FBA18
|
|
_02003D58: .word 0x027FFFE8
|
|
_02003D5C: .word 0x037FBBA8
|
|
arm_func_end sub_02003D40
|
|
|
|
arm_func_start sub_02003D60
|
|
sub_02003D60: ; 0x02003D60
|
|
ldr r1, _02003D68 ; =sub_037FBB58
|
|
bx r1
|
|
.align 2, 0
|
|
_02003D68: .word sub_037FBB58
|
|
arm_func_end sub_02003D60
|
|
|
|
arm_func_start sub_02003D6C
|
|
sub_02003D6C: ; 0x02003D6C
|
|
ldr ip, _02003D80 ; =sub_037FBA94
|
|
ldr r1, _02003D84 ; =0x027FFFE8
|
|
ldr r2, _02003D88 ; =0x037FBBA4
|
|
mov r3, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_02003D80: .word sub_037FBA94
|
|
_02003D84: .word 0x027FFFE8
|
|
_02003D88: .word 0x037FBBA4
|
|
arm_func_end sub_02003D6C
|
|
|
|
arm_func_start sub_02003D8C
|
|
sub_02003D8C: ; 0x02003D8C
|
|
bx lr
|
|
arm_func_end sub_02003D8C
|
|
|
|
arm_func_start sub_02003D90
|
|
sub_02003D90: ; 0x02003D90
|
|
bx lr
|
|
arm_func_end sub_02003D90
|
|
|
|
arm_func_start sub_02003D94
|
|
sub_02003D94: ; 0x02003D94
|
|
ldr ip, _02003DA8 ; =sub_037FBA18
|
|
ldr r1, _02003DAC ; =0x027FFFE0
|
|
ldr r2, _02003DB0 ; =0x037FBBF0
|
|
mov r3, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_02003DA8: .word sub_037FBA18
|
|
_02003DAC: .word 0x027FFFE0
|
|
_02003DB0: .word 0x037FBBF0
|
|
arm_func_end sub_02003D94
|
|
|
|
arm_func_start sub_02003DB4
|
|
sub_02003DB4: ; 0x02003DB4
|
|
ldr ip, _02003DC8 ; =sub_037FBA94
|
|
ldr r1, _02003DCC ; =0x027FFFE0
|
|
ldr r2, _02003DD0 ; =0x037FBBEC
|
|
mov r3, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_02003DC8: .word sub_037FBA94
|
|
_02003DCC: .word 0x027FFFE0
|
|
_02003DD0: .word 0x037FBBEC
|
|
arm_func_end sub_02003DB4
|
|
|
|
arm_func_start sub_02003DD4
|
|
sub_02003DD4: ; 0x02003DD4
|
|
bx lr
|
|
arm_func_end sub_02003DD4
|
|
|
|
arm_func_start sub_02003DD8
|
|
sub_02003DD8: ; 0x02003DD8
|
|
bx lr
|
|
arm_func_end sub_02003DD8
|
|
|
|
arm_func_start sub_02003DDC
|
|
sub_02003DDC: ; 0x02003DDC
|
|
ldrh r0, [r0, #4]
|
|
bx lr
|
|
arm_func_end sub_02003DDC
|
|
|
|
arm_func_start sub_02003DE4
|
|
sub_02003DE4: ; 0x02003DE4
|
|
ldr r3, _02003E84 ; =0x027FFFB8
|
|
ldr r1, [r3]
|
|
mov r2, #0
|
|
mov r0, #0x80000000
|
|
_02003DF4:
|
|
tst r1, r0
|
|
bne _02003E10
|
|
add r2, r2, #1
|
|
cmp r2, #0x20
|
|
beq _02003E10
|
|
mov r0, r0, lsr #1
|
|
b _02003DF4
|
|
_02003E10:
|
|
cmp r2, #0x20
|
|
bne _02003E1C
|
|
b _02003E20
|
|
_02003E1C:
|
|
mov r0, #0x80
|
|
_02003E20:
|
|
bne _02003E68
|
|
add r3, r3, #4
|
|
ldr r1, [r3]
|
|
mov r2, #0
|
|
mov r0, #0x80000000
|
|
_02003E34:
|
|
tst r1, r0
|
|
bne _02003E50
|
|
add r2, r2, #1
|
|
cmp r2, #0x20
|
|
beq _02003E50
|
|
mov r0, r0, lsr #1
|
|
b _02003E34
|
|
_02003E50:
|
|
cmp r2, #0x20
|
|
ldr r0, _02003E88 ; =0xFFFFFFFD
|
|
beq _02003E60
|
|
b _02003E64
|
|
_02003E60:
|
|
bx lr
|
|
_02003E64:
|
|
mov r0, #0xa0
|
|
_02003E68:
|
|
add r0, r0, r2
|
|
mov r1, #0x80000000
|
|
mov r1, r1, lsr r2
|
|
ldr r2, [r3]
|
|
bic r2, r2, r1
|
|
str r2, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_02003E84: .word 0x027FFFB8
|
|
_02003E88: .word 0xFFFFFFFD
|
|
arm_func_end sub_02003DE4
|
|
|
|
arm_func_start sub_02003E8C
|
|
sub_02003E8C: ; 0x02003E8C
|
|
ldr r3, _02003ED0 ; =0x027FFFB8
|
|
cmp r0, #0xa0
|
|
bpl _02003E9C
|
|
b _02003EA0
|
|
_02003E9C:
|
|
add r3, r3, #4
|
|
_02003EA0:
|
|
bpl _02003EA8
|
|
b _02003EAC
|
|
_02003EA8:
|
|
sub r0, r0, #0xa0
|
|
_02003EAC:
|
|
bmi _02003EB4
|
|
b _02003EB8
|
|
_02003EB4:
|
|
sub r0, r0, #0x80
|
|
_02003EB8:
|
|
mov r1, #0x80000000
|
|
mov r1, r1, lsr r0
|
|
ldr r2, [r3]
|
|
orr r2, r2, r1
|
|
str r2, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_02003ED0: .word 0x027FFFB8
|
|
arm_func_end sub_02003E8C
|
|
|
|
arm_func_start sub_02003ED4
|
|
sub_02003ED4: ; 0x02003ED4
|
|
ldr ip, [r0]
|
|
b _02003EE8
|
|
_02003EDC:
|
|
cmp ip, r1
|
|
bxeq lr
|
|
ldr ip, [ip, #0x64]
|
|
_02003EE8:
|
|
cmp ip, #0
|
|
beq _02003F00
|
|
ldr r3, [ip, #0x54]
|
|
ldr r2, [r1, #0x54]
|
|
cmp r3, r2
|
|
bls _02003EDC
|
|
_02003F00:
|
|
cmp ip, #0
|
|
bne _02003F2C
|
|
ldr r2, [r0, #4]
|
|
cmp r2, #0
|
|
streq r1, [r0]
|
|
strne r1, [r2, #0x64]
|
|
str r2, [r1, #0x60]
|
|
mov r2, #0
|
|
str r2, [r1, #0x64]
|
|
str r1, [r0, #4]
|
|
bx lr
|
|
_02003F2C:
|
|
ldr r2, [ip, #0x60]
|
|
cmp r2, #0
|
|
streq r1, [r0]
|
|
strne r1, [r2, #0x64]
|
|
str r2, [r1, #0x60]
|
|
str ip, [r1, #0x64]
|
|
str r1, [ip, #0x60]
|
|
bx lr
|
|
arm_func_end sub_02003ED4
|
|
|
|
arm_func_start sub_02003F4C
|
|
sub_02003F4C: ; 0x02003F4C
|
|
stmdb sp!, {r3, lr}
|
|
ldr lr, [r0]
|
|
mov r2, lr
|
|
b _02003F90
|
|
_02003F5C:
|
|
ldr r3, [r2, #0x64]
|
|
cmp r2, r1
|
|
bne _02003F8C
|
|
ldr ip, [r2, #0x60]
|
|
cmp lr, r2
|
|
streq r3, [r0]
|
|
strne r3, [ip, #0x64]
|
|
ldr r1, [r0, #4]
|
|
cmp r1, r2
|
|
streq ip, [r0, #4]
|
|
strne ip, [r3, #0x60]
|
|
b _02003F98
|
|
_02003F8C:
|
|
mov r2, r3
|
|
_02003F90:
|
|
cmp r2, #0
|
|
bne _02003F5C
|
|
_02003F98:
|
|
mov r0, r2
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_02003F4C
|
|
|
|
arm_func_start sub_02003FA4
|
|
sub_02003FA4: ; 0x02003FA4
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02003FCC
|
|
ldr r1, [r2, #0x10]
|
|
str r1, [r0]
|
|
cmp r1, #0
|
|
movne r0, #0
|
|
strne r0, [r1, #0x14]
|
|
moveq r1, #0
|
|
streq r1, [r0, #4]
|
|
_02003FCC:
|
|
mov r0, r2
|
|
bx lr
|
|
arm_func_end sub_02003FA4
|
|
|
|
arm_func_start sub_02003FD4
|
|
sub_02003FD4: ; 0x02003FD4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02004030 ; =0x03807680
|
|
mov ip, #0
|
|
ldr lr, [r1, #0x2c]
|
|
mov r3, lr
|
|
b _02003FF4
|
|
_02003FEC:
|
|
mov ip, r3
|
|
ldr r3, [r3, #0x4c]
|
|
_02003FF4:
|
|
cmp r3, #0
|
|
beq _0200400C
|
|
ldr r2, [r3, #0x54]
|
|
ldr r1, [r0, #0x54]
|
|
cmp r2, r1
|
|
blo _02003FEC
|
|
_0200400C:
|
|
cmp ip, #0
|
|
ldreq r1, _02004030 ; =0x03807680
|
|
streq lr, [r0, #0x4c]
|
|
streq r0, [r1, #0x2c]
|
|
ldrne r1, [ip, #0x4c]
|
|
strne r1, [r0, #0x4c]
|
|
strne r0, [ip, #0x4c]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02004030: .word 0x03807680
|
|
arm_func_end sub_02003FD4
|
|
|
|
arm_func_start sub_02004034
|
|
sub_02004034: ; 0x02004034
|
|
ldr r1, _02004074 ; =0x03807680
|
|
mov r2, #0
|
|
ldr r1, [r1, #0x2c]
|
|
b _0200404C
|
|
_02004044:
|
|
mov r2, r1
|
|
ldr r1, [r1, #0x4c]
|
|
_0200404C:
|
|
cmp r1, #0
|
|
cmpne r1, r0
|
|
bne _02004044
|
|
cmp r2, #0
|
|
ldreq r1, [r0, #0x4c]
|
|
ldreq r0, _02004074 ; =0x03807680
|
|
streq r1, [r0, #0x2c]
|
|
ldrne r0, [r0, #0x4c]
|
|
strne r0, [r2, #0x4c]
|
|
bx lr
|
|
.align 2, 0
|
|
_02004074: .word 0x03807680
|
|
arm_func_end sub_02004034
|
|
|
|
arm_func_start sub_02004078
|
|
sub_02004078: ; 0x02004078
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r0, _02004144 ; =0x03807680
|
|
ldr r1, [r0, #4]
|
|
cmp r1, #0
|
|
bne _0200413C
|
|
ldrh r0, [r0, #0x26]
|
|
ldr r4, _02004148 ; =0x038076A4
|
|
cmp r0, #0
|
|
bne _020040A8
|
|
bl sub_02005F40
|
|
cmp r0, #0x12
|
|
bne _020040B4
|
|
_020040A8:
|
|
mov r0, #1
|
|
strh r0, [r4]
|
|
b _0200413C
|
|
_020040B4:
|
|
ldr r0, _02004144 ; =0x03807680
|
|
ldr r0, [r0, #8]
|
|
ldr r6, [r0]
|
|
bl sub_02004580
|
|
mov r5, r0
|
|
cmp r6, r5
|
|
cmpne r5, #0
|
|
beq _0200413C
|
|
ldr r0, [r6, #0x48]
|
|
cmp r0, #2
|
|
beq _020040F0
|
|
mov r0, r6
|
|
bl sub_02004834
|
|
cmp r0, #0
|
|
bne _0200413C
|
|
_020040F0:
|
|
ldr r0, _02004144 ; =0x03807680
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02004110
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov lr, pc
|
|
bx r2
|
|
_02004110:
|
|
ldr r2, [r4, #0xc]
|
|
cmp r2, #0
|
|
beq _0200412C
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov lr, pc
|
|
bx r2
|
|
_0200412C:
|
|
ldr r1, _02004144 ; =0x03807680
|
|
mov r0, r5
|
|
str r5, [r1, #0x28]
|
|
bl sub_02004868
|
|
_0200413C:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02004144: .word 0x03807680
|
|
_02004148: .word 0x038076A4
|
|
arm_func_end sub_02004078
|
|
|
|
arm_func_start sub_0200414C
|
|
sub_0200414C: ; 0x0200414C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02004210 ; =0x03807680
|
|
ldr r1, [r0, #0xc]
|
|
cmp r1, #0
|
|
bne _02004208
|
|
ldr r1, _02004214 ; =0x038076A8
|
|
mov r2, #1
|
|
str r2, [r0, #0xc]
|
|
str r1, [r0, #8]
|
|
mov r1, #0x10
|
|
str r1, [r0, #0x12c]
|
|
mov r3, #0
|
|
str r3, [r0, #0x128]
|
|
str r2, [r0, #0x120]
|
|
str r3, [r0, #0x124]
|
|
ldr r2, _02004218 ; =0x00000400
|
|
ldr r1, _0200421C ; =0x03807758
|
|
str r3, [r0, #0x130]
|
|
str r1, [r0, #0x2c]
|
|
str r1, [r0, #0x28]
|
|
cmp r2, #0
|
|
ldrle r0, _02004220 ; =0x037F8000
|
|
ldrgt r1, _02004224 ; =0x00000400
|
|
ldrgt r0, _02004228 ; =0x0380FF80
|
|
subgt r0, r0, r1
|
|
sub ip, r0, r2
|
|
ldr r2, _02004224 ; =0x00000400
|
|
ldr r0, _02004228 ; =0x0380FF80
|
|
ldr r1, _02004210 ; =0x03807680
|
|
sub r3, r0, r2
|
|
str r3, [r1, #0x150]
|
|
str ip, [r1, #0x14c]
|
|
mov r0, #0
|
|
ldr r2, _0200422C ; =0xD73BFDF7
|
|
str r0, [r1, #0x154]
|
|
str r2, [r3, #-4]
|
|
ldr r2, [r1, #0x14c]
|
|
ldr ip, _02004230 ; =0xFBDD37BB
|
|
ldr r3, _02004234 ; =0x038076A4
|
|
str ip, [r2]
|
|
str r0, [r1, #0x15c]
|
|
str r0, [r1, #0x158]
|
|
strh r0, [r1, #0x24]
|
|
ldr r2, _02004238 ; =0x027FFFA4
|
|
strh r0, [r1, #0x26]
|
|
str r3, [r2]
|
|
bl sub_02004714
|
|
_02004208:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02004210: .word 0x03807680
|
|
_02004214: .word 0x038076A8
|
|
_02004218: .word 0x00000400
|
|
_0200421C: .word 0x03807758
|
|
_02004220: .word 0x037F8000
|
|
_02004224: .word 0x00000400
|
|
_02004228: .word 0x0380FF80
|
|
_0200422C: .word 0xD73BFDF7
|
|
_02004230: .word 0xFBDD37BB
|
|
_02004234: .word 0x038076A4
|
|
_02004238: .word 0x027FFFA4
|
|
arm_func_end sub_0200414C
|
|
|
|
arm_func_start sub_0200423C
|
|
sub_0200423C: ; 0x0200423C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
mov r8, r0
|
|
mov r5, r1
|
|
mov r7, r2
|
|
mov r6, r3
|
|
bl sub_02005EE8
|
|
ldr r1, _02004334 ; =0x03807680
|
|
ldr r2, [sp, #0x1c]
|
|
ldr r3, [r1, #0x20]
|
|
mov r4, r0
|
|
add r0, r3, #1
|
|
str r0, [r1, #0x20]
|
|
str r2, [r8, #0x54]
|
|
str r0, [r8, #0x50]
|
|
mov r1, #0
|
|
str r1, [r8, #0x48]
|
|
mov r0, r8
|
|
str r1, [r8, #0x58]
|
|
bl sub_02003FD4
|
|
ldr r0, [sp, #0x18]
|
|
mov r1, r5
|
|
str r6, [r8, #0x78]
|
|
sub r5, r6, r0
|
|
sub r2, r6, #4
|
|
str r5, [r8, #0x74]
|
|
mov ip, #0
|
|
str ip, [r8, #0x7c]
|
|
ldr r6, _02004338 ; =0xD73BFDF7
|
|
ldr r0, [r8, #0x78]
|
|
ldr r3, _0200433C ; =0xFBDD37BB
|
|
str r6, [r0, #-4]
|
|
ldr r0, [r8, #0x74]
|
|
str r3, [r0]
|
|
str ip, [r8, #0x84]
|
|
mov r0, r8
|
|
str ip, [r8, #0x80]
|
|
bl sub_020047B0
|
|
ldr r2, _02004340 ; =0x037FC15C
|
|
str r7, [r8, #4]
|
|
str r2, [r8, #0x3c]
|
|
ldr r2, [sp, #0x18]
|
|
add r1, r5, #4
|
|
mov r0, #0
|
|
sub r2, r2, #8
|
|
bl sub_020061B8
|
|
mov r0, #0
|
|
str r0, [r8, #0x68]
|
|
str r0, [r8, #0x6c]
|
|
str r0, [r8, #0x70]
|
|
str r0, [r8, #0x98]
|
|
str r0, [r8, #0x5c]
|
|
str r0, [r8, #0x64]
|
|
str r0, [r8, #0x60]
|
|
add r1, r8, #0x88
|
|
mov r2, #0xc
|
|
bl sub_020061B8
|
|
mov r1, #0
|
|
mov r0, r4
|
|
str r1, [r8, #0x94]
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02004334: .word 0x03807680
|
|
_02004338: .word 0xD73BFDF7
|
|
_0200433C: .word 0xFBDD37BB
|
|
_02004340: .word 0x037FC15C
|
|
arm_func_end sub_0200423C
|
|
|
|
arm_func_start sub_02004344
|
|
sub_02004344: ; 0x02004344
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_02005EE8
|
|
ldr r0, _02004364 ; =0x03807680
|
|
mov r1, #0
|
|
ldr r0, [r0, #0x28]
|
|
bl sub_02004368
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02004364: .word 0x03807680
|
|
arm_func_end sub_02004344
|
|
|
|
arm_func_start sub_02004368
|
|
sub_02004368: ; 0x02004368
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _020043C0 ; =0x03807680
|
|
mov r5, r0
|
|
ldr r2, [r2, #0x1c]
|
|
mov r4, r1
|
|
cmp r2, #0
|
|
beq _020043B0
|
|
ldr r1, _020043C4 ; =0x037FC1E0
|
|
bl sub_020047B0
|
|
str r4, [r5, #4]
|
|
ldr r1, [r5]
|
|
mov r0, r5
|
|
orr r1, r1, #0x80
|
|
str r1, [r5]
|
|
mov r1, #1
|
|
str r1, [r5, #0x48]
|
|
bl sub_02004868
|
|
b _020043B8
|
|
_020043B0:
|
|
mov r0, r4
|
|
bl sub_020043C8
|
|
_020043B8:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020043C0: .word 0x03807680
|
|
_020043C4: .word 0x037FC1E0
|
|
arm_func_end sub_02004368
|
|
|
|
arm_func_start sub_020043C8
|
|
sub_020043C8: ; 0x020043C8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02004404 ; =0x03807680
|
|
ldr r1, [r1, #8]
|
|
ldr r3, [r1]
|
|
ldr r2, [r3, #0x98]
|
|
cmp r2, #0
|
|
beq _020043F8
|
|
mov r1, #0
|
|
str r1, [r3, #0x98]
|
|
mov lr, pc
|
|
bx r2
|
|
_020043F4:
|
|
bl sub_02005EE8
|
|
_020043F8:
|
|
bl sub_02004408
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02004404: .word 0x03807680
|
|
arm_func_end sub_020043C8
|
|
|
|
arm_func_start sub_02004408
|
|
sub_02004408: ; 0x02004408
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _02004474 ; =0x03807680
|
|
ldr r0, [r0, #8]
|
|
ldr r4, [r0]
|
|
bl sub_02004740
|
|
mov r0, r4
|
|
bl sub_02004B54
|
|
ldr r0, [r4, #0x5c]
|
|
cmp r0, #0
|
|
beq _02004438
|
|
mov r1, r4
|
|
bl sub_02003F4C
|
|
_02004438:
|
|
mov r0, r4
|
|
bl sub_02004034
|
|
mov r1, #2
|
|
add r0, r4, #0x80
|
|
str r1, [r4, #0x48]
|
|
bl sub_020044CC
|
|
bl sub_02004778
|
|
bl sub_02005EE8
|
|
mov r4, r0
|
|
bl sub_02004078
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
bl sub_02006058
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02004474: .word 0x03807680
|
|
arm_func_end sub_02004408
|
|
|
|
arm_func_start sub_02004478
|
|
sub_02004478: ; 0x02004478
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
bl sub_02005EE8
|
|
ldr r1, _020044C8 ; =0x03807680
|
|
mov r4, r0
|
|
ldr r0, [r1, #8]
|
|
cmp r6, #0
|
|
ldr r5, [r0]
|
|
beq _020044AC
|
|
mov r0, r6
|
|
mov r1, r5
|
|
str r6, [r5, #0x5c]
|
|
bl sub_02003ED4
|
|
_020044AC:
|
|
mov r0, #0
|
|
str r0, [r5, #0x48]
|
|
bl sub_02004078
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020044C8: .word 0x03807680
|
|
arm_func_end sub_02004478
|
|
|
|
arm_func_start sub_020044CC
|
|
sub_020044CC: ; 0x020044CC
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl sub_02005EE8
|
|
ldr r1, [r5]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
beq _02004544
|
|
mov r2, #0
|
|
mov r3, r2
|
|
mov r1, #1
|
|
mov r0, r2
|
|
b _02004528
|
|
_020044FC:
|
|
beq _02004518
|
|
ldr ip, [lr, #0x64]
|
|
str ip, [r5]
|
|
cmp ip, #0
|
|
strne r3, [ip, #0x60]
|
|
streq r2, [r5, #4]
|
|
streq r2, [lr, #0x5c]
|
|
_02004518:
|
|
str r1, [lr, #0x48]
|
|
str r0, [lr, #0x5c]
|
|
str r0, [lr, #0x64]
|
|
str r0, [lr, #0x60]
|
|
_02004528:
|
|
ldr lr, [r5]
|
|
cmp lr, #0
|
|
bne _020044FC
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
str r0, [r5]
|
|
bl sub_02004078
|
|
_02004544:
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_020044CC
|
|
|
|
arm_func_start sub_02004554
|
|
sub_02004554: ; 0x02004554
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl sub_02005EE8
|
|
mov r1, #1
|
|
mov r4, r0
|
|
str r1, [r5, #0x48]
|
|
bl sub_02004078
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_02004554
|
|
|
|
arm_func_start sub_02004580
|
|
sub_02004580: ; 0x02004580
|
|
ldr r0, _020045A4 ; =0x03807680
|
|
ldr r0, [r0, #0x2c]
|
|
b _02004590
|
|
_0200458C:
|
|
ldr r0, [r0, #0x4c]
|
|
_02004590:
|
|
cmp r0, #0
|
|
ldrne r1, [r0, #0x48]
|
|
cmpne r1, #1
|
|
bne _0200458C
|
|
bx lr
|
|
.align 2, 0
|
|
_020045A4: .word 0x03807680
|
|
arm_func_end sub_02004580
|
|
|
|
arm_func_start sub_020045A8
|
|
sub_020045A8: ; 0x020045A8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r2, _02004648 ; =0x03807680
|
|
mov r7, r0
|
|
ldr r8, [r2, #0x2c]
|
|
mov r6, r1
|
|
mov r4, #0
|
|
bl sub_02005EE8
|
|
mov r5, r0
|
|
b _020045D4
|
|
_020045CC:
|
|
mov r4, r8
|
|
ldr r8, [r8, #0x4c]
|
|
_020045D4:
|
|
cmp r8, #0
|
|
cmpne r8, r7
|
|
bne _020045CC
|
|
cmp r8, #0
|
|
ldrne r0, _0200464C ; =0x038076B4
|
|
cmpne r8, r0
|
|
bne _02004600
|
|
mov r0, r5
|
|
bl sub_02005EFC
|
|
mov r0, #0
|
|
b _02004640
|
|
_02004600:
|
|
ldr r0, [r8, #0x54]
|
|
cmp r0, r6
|
|
beq _02004634
|
|
cmp r4, #0
|
|
ldreq r1, [r7, #0x4c]
|
|
ldreq r0, _02004648 ; =0x03807680
|
|
streq r1, [r0, #0x2c]
|
|
ldrne r0, [r7, #0x4c]
|
|
strne r0, [r4, #0x4c]
|
|
mov r0, r7
|
|
str r6, [r7, #0x54]
|
|
bl sub_02003FD4
|
|
bl sub_02004078
|
|
_02004634:
|
|
mov r0, r5
|
|
bl sub_02005EFC
|
|
mov r0, #1
|
|
_02004640:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02004648: .word 0x03807680
|
|
_0200464C: .word 0x038076B4
|
|
arm_func_end sub_020045A8
|
|
|
|
arm_func_start sub_02004650
|
|
sub_02004650: ; 0x02004650
|
|
stmdb sp!, {r4, r5, lr}
|
|
sub sp, sp, #0x34
|
|
mov r4, r0
|
|
add r0, sp, #8
|
|
bl sub_02005588
|
|
ldr r0, _020046E8 ; =0x03807680
|
|
ldr r0, [r0, #8]
|
|
ldr r0, [r0]
|
|
str r0, [sp, #4]
|
|
bl sub_02005EE8
|
|
ldr r1, _020046EC ; =0x000082EA
|
|
mov r2, #0
|
|
umull ip, r3, r4, r1
|
|
mla r3, r4, r2, r3
|
|
mla r3, r2, r1, r3
|
|
mov r5, r0
|
|
mov r1, ip, lsr #6
|
|
ldr r4, [sp, #4]
|
|
add r0, sp, #8
|
|
str r0, [r4, #0x94]
|
|
add r2, sp, #4
|
|
str r2, [sp]
|
|
mov r2, r3, lsr #6
|
|
orr r1, r1, r3, lsl #26
|
|
ldr r3, _020046F0 ; =0x037FC50C
|
|
bl sub_020056C4
|
|
mov r4, #0
|
|
b _020046C8
|
|
_020046C0:
|
|
mov r0, r4
|
|
bl sub_02004478
|
|
_020046C8:
|
|
ldr r0, [sp, #4]
|
|
cmp r0, #0
|
|
bne _020046C0
|
|
mov r0, r5
|
|
bl sub_02005EFC
|
|
add sp, sp, #0x34
|
|
ldmia sp!, {r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020046E8: .word 0x03807680
|
|
_020046EC: .word 0x000082EA
|
|
_020046F0: .word 0x037FC50C
|
|
arm_func_end sub_02004650
|
|
|
|
arm_func_start sub_020046F4
|
|
sub_020046F4: ; 0x020046F4
|
|
ldr r2, [r0]
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
ldr ip, _02004710 ; =sub_037FC36C
|
|
mov r0, r2
|
|
str r1, [r2, #0x94]
|
|
bx ip
|
|
.align 2, 0
|
|
_02004710: .word sub_037FC36C
|
|
arm_func_end sub_020046F4
|
|
|
|
arm_func_start sub_02004714
|
|
sub_02004714: ; 0x02004714
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl sub_02005EE8
|
|
ldr r1, _0200473C ; =0x03807680
|
|
ldr r4, [r1, #0x30]
|
|
str r5, [r1, #0x30]
|
|
bl sub_02005EFC
|
|
mov r0, r4
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200473C: .word 0x03807680
|
|
arm_func_end sub_02004714
|
|
|
|
arm_func_start sub_02004740
|
|
sub_02004740: ; 0x02004740
|
|
stmdb sp!, {r4, lr}
|
|
bl sub_02005EE8
|
|
ldr r2, _02004774 ; =0x03807680
|
|
mvn r1, #0
|
|
ldr r3, [r2, #4]
|
|
cmp r3, r1
|
|
addlo r1, r3, #1
|
|
strlo r1, [r2, #4]
|
|
movlo r4, r3
|
|
bl sub_02005EFC
|
|
mov r0, r4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02004774: .word 0x03807680
|
|
arm_func_end sub_02004740
|
|
|
|
arm_func_start sub_02004778
|
|
sub_02004778: ; 0x02004778
|
|
stmdb sp!, {r4, lr}
|
|
bl sub_02005EE8
|
|
ldr r1, _020047AC ; =0x03807680
|
|
mov r4, #0
|
|
ldr r3, [r1, #4]
|
|
cmp r3, #0
|
|
subne r2, r3, #1
|
|
strne r2, [r1, #4]
|
|
movne r4, r3
|
|
bl sub_02005EFC
|
|
mov r0, r4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020047AC: .word 0x03807680
|
|
arm_func_end sub_02004778
|
|
|
|
arm_func_start sub_020047B0
|
|
sub_020047B0: ; 0x020047B0
|
|
add r1, r1, #4
|
|
str r1, [r0, #0x40]
|
|
str r2, [r0, #0x44]
|
|
sub r2, r2, #0x40
|
|
tst r2, #4
|
|
bne _020047CC
|
|
b _020047D0
|
|
_020047CC:
|
|
sub r2, r2, #4
|
|
_020047D0:
|
|
str r2, [r0, #0x38]
|
|
ands r1, r1, #1
|
|
bne _020047E0
|
|
b _020047E4
|
|
_020047E0:
|
|
mov r1, #0x3f
|
|
_020047E4:
|
|
beq _020047EC
|
|
b _020047F0
|
|
_020047EC:
|
|
mov r1, #0x1f
|
|
_020047F0:
|
|
str r1, [r0]
|
|
mov r1, #0
|
|
str r1, [r0, #4]
|
|
str r1, [r0, #8]
|
|
str r1, [r0, #0xc]
|
|
str r1, [r0, #0x10]
|
|
str r1, [r0, #0x14]
|
|
str r1, [r0, #0x18]
|
|
str r1, [r0, #0x1c]
|
|
str r1, [r0, #0x20]
|
|
str r1, [r0, #0x24]
|
|
str r1, [r0, #0x28]
|
|
str r1, [r0, #0x2c]
|
|
str r1, [r0, #0x30]
|
|
str r1, [r0, #0x34]
|
|
str r1, [r0, #0x3c]
|
|
bx lr
|
|
arm_func_end sub_020047B0
|
|
|
|
arm_func_start sub_02004834
|
|
sub_02004834: ; 0x02004834
|
|
add r1, r0, #0
|
|
mrs r2, cpsr
|
|
str r2, [r1], #4
|
|
mov r0, #0xd3
|
|
msr cpsr_c, r0
|
|
str sp, [r1, #0x40]
|
|
msr cpsr_c, r2
|
|
mov r0, #1
|
|
stmia r1, {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, ip, sp, lr}
|
|
add r0, pc, #0x8 ; =sub_02004868
|
|
str r0, [r1, #0x3c]
|
|
mov r0, #0
|
|
bx lr
|
|
arm_func_end sub_02004834
|
|
|
|
arm_func_start sub_02004868
|
|
sub_02004868: ; 0x02004868
|
|
mrs r1, cpsr
|
|
bic r1, r1, #0x1f
|
|
orr r1, r1, #0xd3
|
|
msr cpsr_c, r1
|
|
ldr r1, [r0], #4
|
|
msr spsr_fsxc, r1
|
|
ldr sp, [r0, #0x40]
|
|
ldr lr, [r0, #0x3c]
|
|
ldmia r0, {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, ip, sp, lr} ^
|
|
mov r0, r0
|
|
subs pc, lr, #4
|
|
arm_func_end sub_02004868
|
|
|
|
arm_func_start sub_02004894
|
|
sub_02004894: ; 0x02004894
|
|
mov r3, #0
|
|
str r3, [r0, #4]
|
|
str r3, [r0]
|
|
str r3, [r0, #0xc]
|
|
str r3, [r0, #8]
|
|
str r1, [r0, #0x10]
|
|
str r2, [r0, #0x14]
|
|
str r3, [r0, #0x18]
|
|
str r3, [r0, #0x1c]
|
|
bx lr
|
|
arm_func_end sub_02004894
|
|
|
|
arm_func_start sub_020048BC
|
|
sub_020048BC: ; 0x020048BC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r2
|
|
mov r6, r0
|
|
mov r5, r1
|
|
bl sub_02005EE8
|
|
mov r4, r0
|
|
and r7, r7, #1
|
|
b _020048FC
|
|
_020048DC:
|
|
cmp r7, #0
|
|
bne _020048F4
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
mov r0, #0
|
|
b _02004940
|
|
_020048F4:
|
|
mov r0, r6
|
|
bl sub_02004478
|
|
_020048FC:
|
|
ldr r2, [r6, #0x1c]
|
|
ldr r1, [r6, #0x14]
|
|
cmp r1, r2
|
|
ble _020048DC
|
|
ldr r0, [r6, #0x18]
|
|
add r0, r0, r2
|
|
bl sub_0200EDB0
|
|
ldr r2, [r6, #0x10]
|
|
add r0, r6, #8
|
|
str r5, [r2, r1, lsl #2]
|
|
ldr r1, [r6, #0x1c]
|
|
add r1, r1, #1
|
|
str r1, [r6, #0x1c]
|
|
bl sub_020044CC
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
mov r0, #1
|
|
_02004940:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_020048BC
|
|
|
|
arm_func_start sub_02004948
|
|
sub_02004948: ; 0x02004948
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r2
|
|
mov r6, r0
|
|
mov r5, r1
|
|
bl sub_02005EE8
|
|
mov r4, r0
|
|
and r7, r7, #1
|
|
b _02004988
|
|
_02004968:
|
|
cmp r7, #0
|
|
bne _02004980
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
mov r0, #0
|
|
b _020049DC
|
|
_02004980:
|
|
add r0, r6, #8
|
|
bl sub_02004478
|
|
_02004988:
|
|
ldr r0, [r6, #0x1c]
|
|
cmp r0, #0
|
|
beq _02004968
|
|
cmp r5, #0
|
|
ldrne r1, [r6, #0x10]
|
|
ldrne r0, [r6, #0x18]
|
|
ldrne r0, [r1, r0, lsl #2]
|
|
strne r0, [r5]
|
|
ldr r0, [r6, #0x18]
|
|
ldr r1, [r6, #0x14]
|
|
add r0, r0, #1
|
|
bl sub_0200EDB0
|
|
str r1, [r6, #0x18]
|
|
ldr r1, [r6, #0x1c]
|
|
mov r0, r6
|
|
sub r1, r1, #1
|
|
str r1, [r6, #0x1c]
|
|
bl sub_020044CC
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
mov r0, #1
|
|
_020049DC:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_02004948
|
|
|
|
arm_func_start sub_020049E4
|
|
sub_020049E4: ; 0x020049E4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r6, r2
|
|
mov r7, r0
|
|
mov r4, r1
|
|
bl sub_02005EE8
|
|
mov r5, r0
|
|
and r6, r6, #1
|
|
b _02004A24
|
|
_02004A04:
|
|
cmp r6, #0
|
|
bne _02004A1C
|
|
mov r0, r5
|
|
bl sub_02005EFC
|
|
mov r0, #0
|
|
b _02004A50
|
|
_02004A1C:
|
|
add r0, r7, #8
|
|
bl sub_02004478
|
|
_02004A24:
|
|
ldr r0, [r7, #0x1c]
|
|
cmp r0, #0
|
|
beq _02004A04
|
|
cmp r4, #0
|
|
ldrne r1, [r7, #0x10]
|
|
ldrne r0, [r7, #0x18]
|
|
ldrne r0, [r1, r0, lsl #2]
|
|
strne r0, [r4]
|
|
mov r0, r5
|
|
bl sub_02005EFC
|
|
mov r0, #1
|
|
_02004A50:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_020049E4
|
|
|
|
arm_func_start sub_02004A58
|
|
sub_02004A58: ; 0x02004A58
|
|
mov r1, #0
|
|
str r1, [r0, #4]
|
|
str r1, [r0]
|
|
str r1, [r0, #8]
|
|
str r1, [r0, #0xc]
|
|
bx lr
|
|
arm_func_end sub_02004A58
|
|
|
|
arm_func_start sub_02004A70
|
|
sub_02004A70: ; 0x02004A70
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r5, r0
|
|
bl sub_02005EE8
|
|
ldr r1, _02004AF0 ; =0x038076A4
|
|
mov r4, r0
|
|
ldr r7, [r1, #4]
|
|
mov r6, #0
|
|
_02004A8C:
|
|
ldr r0, [r5, #8]
|
|
cmp r0, #0
|
|
bne _02004AB8
|
|
str r7, [r5, #8]
|
|
ldr r1, [r5, #0xc]
|
|
mov r0, r7
|
|
add r2, r1, #1
|
|
mov r1, r5
|
|
str r2, [r5, #0xc]
|
|
bl sub_02004B8C
|
|
b _02004AE0
|
|
_02004AB8:
|
|
cmp r0, r7
|
|
ldreq r0, [r5, #0xc]
|
|
addeq r0, r0, #1
|
|
streq r0, [r5, #0xc]
|
|
beq _02004AE0
|
|
str r5, [r7, #0x68]
|
|
mov r0, r5
|
|
bl sub_02004478
|
|
str r6, [r7, #0x68]
|
|
b _02004A8C
|
|
_02004AE0:
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02004AF0: .word 0x038076A4
|
|
arm_func_end sub_02004A70
|
|
|
|
arm_func_start sub_02004AF4
|
|
sub_02004AF4: ; 0x02004AF4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl sub_02005EE8
|
|
ldr r1, _02004B50 ; =0x038076A4
|
|
mov r4, r0
|
|
ldr r0, [r1, #4]
|
|
ldr r1, [r5, #8]
|
|
cmp r1, r0
|
|
bne _02004B40
|
|
ldr r1, [r5, #0xc]
|
|
subs r1, r1, #1
|
|
str r1, [r5, #0xc]
|
|
bne _02004B40
|
|
mov r1, r5
|
|
bl sub_02004BB0
|
|
mov r1, #0
|
|
mov r0, r5
|
|
str r1, [r5, #8]
|
|
bl sub_020044CC
|
|
_02004B40:
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02004B50: .word 0x038076A4
|
|
arm_func_end sub_02004AF4
|
|
|
|
arm_func_start sub_02004B54
|
|
sub_02004B54: ; 0x02004B54
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, #0
|
|
b _02004B78
|
|
_02004B64:
|
|
add r0, r5, #0x6c
|
|
bl sub_02003FA4
|
|
str r4, [r0, #0xc]
|
|
str r4, [r0, #8]
|
|
bl sub_020044CC
|
|
_02004B78:
|
|
ldr r0, [r5, #0x6c]
|
|
cmp r0, #0
|
|
bne _02004B64
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_02004B54
|
|
|
|
arm_func_start sub_02004B8C
|
|
sub_02004B8C: ; 0x02004B8C
|
|
ldr r2, [r0, #0x70]
|
|
cmp r2, #0
|
|
streq r1, [r0, #0x6c]
|
|
strne r1, [r2, #0x10]
|
|
str r2, [r1, #0x14]
|
|
mov r2, #0
|
|
str r2, [r1, #0x10]
|
|
str r1, [r0, #0x70]
|
|
bx lr
|
|
arm_func_end sub_02004B8C
|
|
|
|
arm_func_start sub_02004BB0
|
|
sub_02004BB0: ; 0x02004BB0
|
|
ldr r2, [r1, #0x10]
|
|
ldr r1, [r1, #0x14]
|
|
cmp r2, #0
|
|
streq r1, [r0, #0x70]
|
|
strne r1, [r2, #0x14]
|
|
cmp r1, #0
|
|
streq r2, [r0, #0x6c]
|
|
strne r2, [r1, #0x10]
|
|
bx lr
|
|
arm_func_end sub_02004BB0
|
|
|
|
arm_func_start sub_02004BD4
|
|
sub_02004BD4: ; 0x02004BD4
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_02004C04
|
|
bl sub_0200649C
|
|
bl sub_02003B80
|
|
bl sub_02003980
|
|
bl sub_02005310
|
|
bl sub_02005534
|
|
bl sub_0200414C
|
|
bl sub_02005F64
|
|
bl sub_0200E570
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_02004BD4
|
|
|
|
arm_func_start sub_02004C04
|
|
sub_02004C04: ; 0x02004C04
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02004C3C ; =0x038077FC
|
|
ldr r0, [r1]
|
|
cmp r0, #0
|
|
bne _02004C34
|
|
mov r0, #1
|
|
str r0, [r1]
|
|
bl sub_02004C40
|
|
mov r0, #7
|
|
bl sub_02004C40
|
|
mov r0, #8
|
|
bl sub_02004C40
|
|
_02004C34:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02004C3C: .word 0x038077FC
|
|
arm_func_end sub_02004C04
|
|
|
|
arm_func_start sub_02004C40
|
|
sub_02004C40: ; 0x02004C40
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_02004CA4
|
|
mov r1, r4, lsl #2
|
|
add r1, r1, #0x2700000
|
|
add r1, r1, #0xff000
|
|
str r0, [r1, #0xdc4]
|
|
mov r0, r4
|
|
bl sub_02004D20
|
|
mov r1, r4, lsl #2
|
|
add r1, r1, #0x2700000
|
|
add r1, r1, #0xff000
|
|
str r0, [r1, #0xda0]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02004C40
|
|
|
|
arm_func_start sub_02004C7C
|
|
sub_02004C7C: ; 0x02004C7C
|
|
mov r0, r0, lsl #2
|
|
add r0, r0, #0x2700000
|
|
add r0, r0, #0xff000
|
|
ldr r0, [r0, #0xdc4]
|
|
bx lr
|
|
arm_func_end sub_02004C7C
|
|
|
|
arm_func_start sub_02004C90
|
|
sub_02004C90: ; 0x02004C90
|
|
mov r0, r0, lsl #2
|
|
add r0, r0, #0x2700000
|
|
add r0, r0, #0xff000
|
|
ldr r0, [r0, #0xda0]
|
|
bx lr
|
|
arm_func_end sub_02004C90
|
|
|
|
arm_func_start sub_02004CA4
|
|
sub_02004CA4: ; 0x02004CA4
|
|
cmp r0, #1
|
|
beq _02004CC0
|
|
cmp r0, #7
|
|
beq _02004CC8
|
|
cmp r0, #8
|
|
beq _02004CD0
|
|
b _02004D04
|
|
_02004CC0:
|
|
ldr r0, _02004D0C ; =0x027FF000
|
|
bx lr
|
|
_02004CC8:
|
|
mov r0, #0x3800000
|
|
bx lr
|
|
_02004CD0:
|
|
ldr r2, _02004D10 ; =0x00000400
|
|
ldr r0, _02004D14 ; =0x0380FF80
|
|
ldr r1, _02004D18 ; =0x0380B488
|
|
sub r2, r0, r2
|
|
mov r0, #0x3800000
|
|
cmp r1, #0x3800000
|
|
movhi r0, r1
|
|
ldr r1, _02004D1C ; =0x00000400
|
|
cmp r1, #0
|
|
bxeq lr
|
|
sublt r0, r0, r1
|
|
subge r0, r2, r1
|
|
bx lr
|
|
_02004D04:
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02004D0C: .word 0x027FF000
|
|
_02004D10: .word 0x00000400
|
|
_02004D14: .word 0x0380FF80
|
|
_02004D18: .word 0x0380B488
|
|
_02004D1C: .word 0x00000400
|
|
arm_func_end sub_02004CA4
|
|
|
|
arm_func_start sub_02004D20
|
|
sub_02004D20: ; 0x02004D20
|
|
cmp r0, #1
|
|
beq _02004D3C
|
|
cmp r0, #7
|
|
beq _02004D44
|
|
cmp r0, #8
|
|
beq _02004D54
|
|
b _02004D68
|
|
_02004D3C:
|
|
ldr r0, _02004D70 ; =0x027F91E0
|
|
bx lr
|
|
_02004D44:
|
|
ldr r0, _02004D74 ; =0x0380B488
|
|
cmp r0, #0x3800000
|
|
movhi r0, #0x3800000
|
|
bx lr
|
|
_02004D54:
|
|
ldr r1, _02004D74 ; =0x0380B488
|
|
mov r0, #0x3800000
|
|
cmp r1, #0x3800000
|
|
movhi r0, r1
|
|
bx lr
|
|
_02004D68:
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02004D70: .word 0x027F91E0
|
|
_02004D74: .word 0x0380B488
|
|
arm_func_end sub_02004D20
|
|
|
|
arm_func_start sub_02004D78
|
|
sub_02004D78: ; 0x02004D78
|
|
mov r0, r0, lsl #2
|
|
add r0, r0, #0x2700000
|
|
add r0, r0, #0xff000
|
|
str r1, [r0, #0xda0]
|
|
bx lr
|
|
arm_func_end sub_02004D78
|
|
|
|
arm_func_start sub_02004D8C
|
|
sub_02004D8C: ; 0x02004D8C
|
|
ldr r3, [r1, #4]
|
|
cmp r3, #0
|
|
ldrne r2, [r1]
|
|
strne r2, [r3]
|
|
ldr r2, [r1]
|
|
cmp r2, #0
|
|
ldreq r0, [r1, #4]
|
|
ldrne r1, [r1, #4]
|
|
strne r1, [r2, #4]
|
|
bx lr
|
|
arm_func_end sub_02004D8C
|
|
|
|
arm_func_start sub_02004DB4
|
|
sub_02004DB4: ; 0x02004DB4
|
|
stmdb sp!, {r3, lr}
|
|
mov lr, r0
|
|
mov ip, #0
|
|
b _02004DD4
|
|
_02004DC4:
|
|
cmp r1, lr
|
|
bls _02004DDC
|
|
mov ip, lr
|
|
ldr lr, [lr, #4]
|
|
_02004DD4:
|
|
cmp lr, #0
|
|
bne _02004DC4
|
|
_02004DDC:
|
|
stmia r1, {ip, lr}
|
|
cmp lr, #0
|
|
beq _02004E18
|
|
str r1, [lr]
|
|
ldr r3, [r1, #8]
|
|
add r2, r1, r3
|
|
cmp r2, lr
|
|
bne _02004E18
|
|
ldr r2, [lr, #8]
|
|
add r2, r3, r2
|
|
str r2, [r1, #8]
|
|
ldr lr, [lr, #4]
|
|
str lr, [r1, #4]
|
|
cmp lr, #0
|
|
strne r1, [lr]
|
|
_02004E18:
|
|
cmp ip, #0
|
|
beq _02004E50
|
|
str r1, [ip, #4]
|
|
ldr r2, [ip, #8]
|
|
add r3, ip, r2
|
|
cmp r3, r1
|
|
bne _02004E54
|
|
ldr r1, [r1, #8]
|
|
cmp lr, #0
|
|
add r1, r2, r1
|
|
str r1, [ip, #8]
|
|
str lr, [ip, #4]
|
|
strne ip, [lr]
|
|
b _02004E54
|
|
_02004E50:
|
|
mov r0, r1
|
|
_02004E54:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_02004DB4
|
|
|
|
arm_func_start sub_02004E5C
|
|
sub_02004E5C: ; 0x02004E5C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r4, r0
|
|
mov r5, r1
|
|
mov r7, r2
|
|
bl sub_02005EE8
|
|
ldr r1, _02004F68 ; =0x03807800
|
|
mov r6, r0
|
|
ldr r1, [r1, r4, lsl #2]
|
|
cmp r1, #0
|
|
bne _02004E90
|
|
bl sub_02005EFC
|
|
mov r0, #0
|
|
b _02004F60
|
|
_02004E90:
|
|
cmp r5, #0
|
|
ldrlt r5, [r1]
|
|
ldr r1, [r1, #0x10]
|
|
mov r0, #0xc
|
|
mla r4, r5, r0, r1
|
|
ldr r0, [r4, #4]
|
|
add r1, r7, #0x3f
|
|
mov r5, r0
|
|
bic r7, r1, #0x1f
|
|
b _02004EC8
|
|
_02004EB8:
|
|
ldr r1, [r5, #8]
|
|
cmp r7, r1
|
|
ble _02004ED0
|
|
ldr r5, [r5, #4]
|
|
_02004EC8:
|
|
cmp r5, #0
|
|
bne _02004EB8
|
|
_02004ED0:
|
|
cmp r5, #0
|
|
bne _02004EE8
|
|
mov r0, r6
|
|
bl sub_02005EFC
|
|
mov r0, #0
|
|
b _02004F60
|
|
_02004EE8:
|
|
ldr r1, [r5, #8]
|
|
sub r1, r1, r7
|
|
cmp r1, #0x40
|
|
bhs _02004F08
|
|
mov r1, r5
|
|
bl sub_02004D8C
|
|
str r0, [r4, #4]
|
|
b _02004F3C
|
|
_02004F08:
|
|
str r7, [r5, #8]
|
|
add r2, r5, r7
|
|
str r1, [r2, #8]
|
|
ldr r0, [r5]
|
|
str r0, [r5, r7]
|
|
ldr r0, [r5, #4]
|
|
str r0, [r2, #4]
|
|
cmp r0, #0
|
|
strne r2, [r0]
|
|
ldr r0, [r2]
|
|
cmp r0, #0
|
|
strne r2, [r0, #4]
|
|
streq r2, [r4, #4]
|
|
_02004F3C:
|
|
ldr r1, [r4, #8]
|
|
mov r0, #0
|
|
stmia r5, {r0, r1}
|
|
cmp r1, #0
|
|
strne r5, [r1]
|
|
mov r0, r6
|
|
str r5, [r4, #8]
|
|
bl sub_02005EFC
|
|
add r0, r5, #0x20
|
|
_02004F60:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02004F68: .word 0x03807800
|
|
arm_func_end sub_02004E5C
|
|
|
|
arm_func_start sub_02004F6C
|
|
sub_02004F6C: ; 0x02004F6C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
bl sub_02005EE8
|
|
ldr r1, _02004FD4 ; =0x03807800
|
|
mov r4, r0
|
|
ldr r0, [r1, r7, lsl #2]
|
|
cmp r6, #0
|
|
ldrlt r6, [r0]
|
|
ldr r1, [r0, #0x10]
|
|
mov r0, #0xc
|
|
mla r7, r6, r0, r1
|
|
sub r5, r5, #0x20
|
|
ldr r0, [r7, #8]
|
|
mov r1, r5
|
|
bl sub_02004D8C
|
|
str r0, [r7, #8]
|
|
ldr r0, [r7, #4]
|
|
mov r1, r5
|
|
bl sub_02004DB4
|
|
str r0, [r7, #4]
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02004FD4: .word 0x03807800
|
|
arm_func_end sub_02004F6C
|
|
|
|
arm_func_start sub_02004FD8
|
|
sub_02004FD8: ; 0x02004FD8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
mov r5, r1
|
|
bl sub_02005EE8
|
|
ldr r1, _02005008 ; =0x03807800
|
|
ldr r1, [r1, r4, lsl #2]
|
|
ldr r4, [r1]
|
|
str r5, [r1]
|
|
bl sub_02005EFC
|
|
mov r0, r4
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005008: .word 0x03807800
|
|
arm_func_end sub_02004FD8
|
|
|
|
arm_func_start sub_0200500C
|
|
sub_0200500C: ; 0x0200500C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r5, r1
|
|
mov r4, r2
|
|
mov r6, r3
|
|
bl sub_02005EE8
|
|
ldr r2, _020050B0 ; =0x03807800
|
|
mov r1, #0xc
|
|
str r5, [r2, r7, lsl #2]
|
|
add r2, r5, #0x14
|
|
str r2, [r5, #0x10]
|
|
mov r7, #0
|
|
mul r1, r6, r1
|
|
str r6, [r5, #4]
|
|
mvn lr, #0
|
|
mov ip, r7
|
|
mov r2, #0xc
|
|
b _02005070
|
|
_02005054:
|
|
mul r3, r7, r2
|
|
ldr r6, [r5, #0x10]
|
|
add r7, r7, #1
|
|
str lr, [r6, r3]
|
|
add r3, r6, r3
|
|
str ip, [r3, #8]
|
|
str ip, [r3, #4]
|
|
_02005070:
|
|
ldr r3, [r5, #4]
|
|
cmp r7, r3
|
|
blt _02005054
|
|
mvn r2, #0
|
|
str r2, [r5]
|
|
ldr r3, [r5, #0x10]
|
|
bic r2, r4, #0x1f
|
|
add r1, r3, r1
|
|
add r1, r1, #0x1f
|
|
bic r1, r1, #0x1f
|
|
str r1, [r5, #8]
|
|
str r2, [r5, #0xc]
|
|
bl sub_02005EFC
|
|
ldr r0, [r5, #8]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020050B0: .word 0x03807800
|
|
arm_func_end sub_0200500C
|
|
|
|
arm_func_start sub_020050B4
|
|
sub_020050B4: ; 0x020050B4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r4, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
bl sub_02005EE8
|
|
ldr r2, _02005150 ; =0x03807800
|
|
add r1, r6, #0x1f
|
|
ldr lr, [r2, r4, lsl #2]
|
|
bic r6, r1, #0x1f
|
|
ldr r7, [lr, #4]
|
|
bic r5, r5, #0x1f
|
|
mov r4, #0
|
|
mov r1, #0xc
|
|
b _02005138
|
|
_020050EC:
|
|
mul r3, r4, r1
|
|
ldr ip, [lr, #0x10]
|
|
ldr r2, [ip, r3]
|
|
add r3, ip, r3
|
|
cmp r2, #0
|
|
bge _02005134
|
|
sub r1, r5, r6
|
|
str r1, [r3]
|
|
mov r2, #0
|
|
str r2, [r6]
|
|
str r2, [r6, #4]
|
|
ldr r1, [r3]
|
|
str r1, [r6, #8]
|
|
str r6, [r3, #4]
|
|
str r2, [r3, #8]
|
|
bl sub_02005EFC
|
|
mov r0, r4
|
|
b _02005148
|
|
_02005134:
|
|
add r4, r4, #1
|
|
_02005138:
|
|
cmp r4, r7
|
|
blt _020050EC
|
|
bl sub_02005EFC
|
|
mvn r0, #0
|
|
_02005148:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005150: .word 0x03807800
|
|
arm_func_end sub_020050B4
|
|
|
|
arm_func_start sub_02005154
|
|
sub_02005154: ; 0x02005154
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
mov r4, #0
|
|
mov r8, r0
|
|
mov r7, r1
|
|
mov r5, r4
|
|
sub r6, r4, #1
|
|
bl sub_02005EE8
|
|
ldr r1, _020052F0 ; =0x03807800
|
|
mvn r2, #0
|
|
ldr r1, [r1, r8, lsl #2]
|
|
cmp r7, r2
|
|
ldr ip, [r1, #0x10]
|
|
ldreq r7, [r1]
|
|
cmp ip, #0
|
|
beq _020052E0
|
|
cmp r7, #0
|
|
blt _020052E0
|
|
ldr r2, [r1, #4]
|
|
cmp r7, r2
|
|
bge _020052E0
|
|
mov r2, #0xc
|
|
mul r3, r7, r2
|
|
ldr r2, [ip, r3]
|
|
add r7, ip, r3
|
|
cmp r2, #0
|
|
blt _020052E0
|
|
ldr ip, [r7, #8]
|
|
cmp ip, #0
|
|
ldrne r3, [ip]
|
|
cmpne r3, #0
|
|
bne _020052E0
|
|
b _02005234
|
|
_020051D4:
|
|
ldr r3, [r1, #8]
|
|
cmp r3, ip
|
|
bhi _020052E0
|
|
ldr r3, [r1, #0xc]
|
|
cmp ip, r3
|
|
bhs _020052E0
|
|
tst ip, #0x1f
|
|
bne _020052E0
|
|
ldr lr, [ip, #4]
|
|
cmp lr, #0
|
|
ldrne r3, [lr]
|
|
cmpne r3, ip
|
|
bne _020052E0
|
|
ldr r3, [ip, #8]
|
|
cmp r3, #0x40
|
|
blo _020052E0
|
|
tst r3, #0x1f
|
|
bne _020052E0
|
|
add r4, r4, r3
|
|
cmp r4, #0
|
|
ble _020052E0
|
|
cmp r4, r2
|
|
bgt _020052E0
|
|
mov ip, lr
|
|
_02005234:
|
|
cmp ip, #0
|
|
bne _020051D4
|
|
ldr lr, [r7, #4]
|
|
cmp lr, #0
|
|
ldrne r3, [lr]
|
|
cmpne r3, #0
|
|
bne _020052E0
|
|
b _020052D0
|
|
_02005254:
|
|
ldr r3, [r1, #8]
|
|
cmp r3, lr
|
|
bhi _020052E0
|
|
ldr r3, [r1, #0xc]
|
|
cmp lr, r3
|
|
bhs _020052E0
|
|
tst lr, #0x1f
|
|
bne _020052E0
|
|
ldr r7, [lr, #4]
|
|
cmp r7, #0
|
|
ldrne r3, [r7]
|
|
cmpne r3, lr
|
|
bne _020052E0
|
|
ldr ip, [lr, #8]
|
|
cmp ip, #0x40
|
|
blo _020052E0
|
|
tst ip, #0x1f
|
|
bne _020052E0
|
|
cmp r7, #0
|
|
beq _020052B0
|
|
add r3, lr, ip
|
|
cmp r3, r7
|
|
bhs _020052E0
|
|
_020052B0:
|
|
add r4, r4, ip
|
|
sub r3, ip, #0x20
|
|
cmp r4, #0
|
|
add r5, r5, r3
|
|
ble _020052E0
|
|
cmp r4, r2
|
|
bgt _020052E0
|
|
mov lr, r7
|
|
_020052D0:
|
|
cmp lr, #0
|
|
bne _02005254
|
|
cmp r4, r2
|
|
moveq r6, r5
|
|
_020052E0:
|
|
bl sub_02005EFC
|
|
mov r0, r6
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020052F0: .word 0x03807800
|
|
arm_func_end sub_02005154
|
|
|
|
arm_func_start sub_020052F4
|
|
sub_020052F4: ; 0x020052F4
|
|
ldr r1, _0200530C ; =0x03807824
|
|
mov r2, #1
|
|
ldrh r3, [r1]
|
|
orr r0, r3, r2, lsl r0
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200530C: .word 0x03807824
|
|
arm_func_end sub_020052F4
|
|
|
|
arm_func_start sub_02005310
|
|
sub_02005310: ; 0x02005310
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02005380 ; =0x03807828
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _02005378
|
|
mov r2, #1
|
|
mov r0, #0
|
|
strh r2, [r1]
|
|
bl sub_020052F4
|
|
ldr r0, _02005380 ; =0x03807828
|
|
mov r2, #0
|
|
str r2, [r0, #8]
|
|
ldr r3, _02005384 ; =0x04000102
|
|
str r2, [r0, #0xc]
|
|
strh r2, [r3]
|
|
ldr r1, _02005388 ; =0x037FD1B4
|
|
strh r2, [r3, #-2]
|
|
mov r2, #0xc1
|
|
mov r0, #8
|
|
strh r2, [r3]
|
|
bl sub_020039A4
|
|
mov r0, #8
|
|
bl sub_02003AD8
|
|
ldr r0, _02005380 ; =0x03807828
|
|
mov r1, #0
|
|
str r1, [r0, #4]
|
|
_02005378:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005380: .word 0x03807828
|
|
_02005384: .word 0x04000102
|
|
_02005388: .word 0x037FD1B4
|
|
arm_func_end sub_02005310
|
|
|
|
arm_func_start sub_0200538C
|
|
sub_0200538C: ; 0x0200538C
|
|
ldr r0, _02005398 ; =0x03807828
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_02005398: .word 0x03807828
|
|
arm_func_end sub_0200538C
|
|
|
|
arm_func_start sub_0200539C
|
|
sub_0200539C: ; 0x0200539C
|
|
ldr r0, _020053F4 ; =0x03807828
|
|
mov r3, #0
|
|
ldr r2, [r0, #8]
|
|
ldr r1, [r0, #0xc]
|
|
adds r2, r2, #1
|
|
str r2, [r0, #8]
|
|
adc r1, r1, #0
|
|
str r1, [r0, #0xc]
|
|
ldr r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _020053E0
|
|
ldr r2, _020053F8 ; =0x04000102
|
|
mov r1, #0xc1
|
|
strh r3, [r2]
|
|
strh r3, [r2, #-2]
|
|
strh r1, [r2]
|
|
str r3, [r0, #4]
|
|
_020053E0:
|
|
ldr ip, _020053FC ; =sub_037FB858
|
|
mov r0, #0
|
|
ldr r1, _02005400 ; =0x037FD1B4
|
|
mov r2, r0
|
|
bx ip
|
|
.align 2, 0
|
|
_020053F4: .word 0x03807828
|
|
_020053F8: .word 0x04000102
|
|
_020053FC: .word sub_037FB858
|
|
_02005400: .word 0x037FD1B4
|
|
arm_func_end sub_0200539C
|
|
|
|
arm_func_start sub_02005404
|
|
sub_02005404: ; 0x02005404
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0xc
|
|
bl sub_02005EE8
|
|
ldr lr, _0200549C ; =sub_04000100
|
|
ldr r1, _020054A0 ; =0x03807828
|
|
ldrh r3, [lr]
|
|
ldr r2, _020054A4 ; =0x0000FFFF
|
|
strh r3, [sp]
|
|
ldr ip, [r1, #8]
|
|
ldr r3, [r1, #0xc]
|
|
sub r1, r2, #0x10000
|
|
and ip, ip, r1
|
|
and r1, r3, r2
|
|
str ip, [sp, #4]
|
|
str r1, [sp, #8]
|
|
ldr r1, [lr, #0x114]
|
|
tst r1, #8
|
|
beq _02005470
|
|
ldrh r1, [sp]
|
|
tst r1, #0x8000
|
|
bne _02005470
|
|
ldr r2, [sp, #4]
|
|
ldr r1, [sp, #8]
|
|
adds r2, r2, #1
|
|
adc r1, r1, #0
|
|
str r2, [sp, #4]
|
|
str r1, [sp, #8]
|
|
_02005470:
|
|
bl sub_02005EFC
|
|
ldr r2, [sp, #4]
|
|
ldr r1, [sp, #8]
|
|
ldrh r0, [sp]
|
|
mov r1, r1, lsl #0x10
|
|
orr r1, r1, r2, lsr #16
|
|
orr r1, r1, r0, asr #31
|
|
orr r0, r0, r2, lsl #16
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200549C: .word sub_04000100
|
|
_020054A0: .word 0x03807828
|
|
_020054A4: .word 0x0000FFFF
|
|
arm_func_end sub_02005404
|
|
|
|
arm_func_start sub_020054A8
|
|
sub_020054A8: ; 0x020054A8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
bl sub_02005404
|
|
ldr r3, _02005524 ; =0x04000106
|
|
mov r2, #0
|
|
strh r2, [r3]
|
|
ldr ip, [r4, #0xc]
|
|
ldr r3, [r4, #0x10]
|
|
subs r5, ip, r0
|
|
sbc r4, r3, r1
|
|
ldr r1, _02005528 ; =0x037FD648
|
|
mov r0, #1
|
|
bl sub_02003A40
|
|
subs r0, r5, #0
|
|
mov r3, #0
|
|
sbcs r0, r4, #0
|
|
ldrlt r3, _0200552C ; =0x0000FFFE
|
|
blt _02005504
|
|
subs r0, r5, #0x10000
|
|
sbcs r0, r4, r3
|
|
mvnlt r0, r5
|
|
movlt r0, r0, lsl #0x10
|
|
movlt r3, r0, lsr #0x10
|
|
_02005504:
|
|
ldr r2, _02005530 ; =0x04000104
|
|
mov r1, #0xc1
|
|
strh r3, [r2]
|
|
mov r0, #0x10
|
|
strh r1, [r2, #2]
|
|
bl sub_02003AD8
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005524: .word 0x04000106
|
|
_02005528: .word 0x037FD648
|
|
_0200552C: .word 0x0000FFFE
|
|
_02005530: .word 0x04000104
|
|
arm_func_end sub_020054A8
|
|
|
|
arm_func_start sub_02005534
|
|
sub_02005534: ; 0x02005534
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02005574 ; =0x03807838
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _0200556C
|
|
mov r0, #1
|
|
strh r0, [r1]
|
|
bl sub_020052F4
|
|
ldr r1, _02005574 ; =0x03807838
|
|
mov r2, #0
|
|
str r2, [r1, #4]
|
|
mov r0, #0x10
|
|
str r2, [r1, #8]
|
|
bl sub_02003B10
|
|
_0200556C:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005574: .word 0x03807838
|
|
arm_func_end sub_02005534
|
|
|
|
arm_func_start sub_02005578
|
|
sub_02005578: ; 0x02005578
|
|
ldr r0, _02005584 ; =0x03807838
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_02005584: .word 0x03807838
|
|
arm_func_end sub_02005578
|
|
|
|
arm_func_start sub_02005588
|
|
sub_02005588: ; 0x02005588
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
str r1, [r0, #8]
|
|
bx lr
|
|
arm_func_end sub_02005588
|
|
|
|
arm_func_start sub_02005598
|
|
sub_02005598: ; 0x02005598
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
mov r8, r0
|
|
ldr r0, [r8, #0x20]
|
|
ldr r3, [r8, #0x1c]
|
|
cmp r0, #0
|
|
mov r7, r1
|
|
mov r6, r2
|
|
cmpeq r3, #0
|
|
beq _0200560C
|
|
bl sub_02005404
|
|
ldr r6, [r8, #0x28]
|
|
ldr r7, [r8, #0x24]
|
|
cmp r6, r1
|
|
cmpeq r7, r0
|
|
bhs _0200560C
|
|
ldr r5, [r8, #0x1c]
|
|
ldr r4, [r8, #0x20]
|
|
subs r0, r0, r7
|
|
mov r2, r5
|
|
mov r3, r4
|
|
sbc r1, r1, r6
|
|
bl sub_0200ED68
|
|
adds r2, r0, #1
|
|
adc r0, r1, #0
|
|
umull r3, r1, r5, r2
|
|
mla r1, r5, r0, r1
|
|
mla r1, r4, r2, r1
|
|
adds r7, r7, r3
|
|
adc r6, r6, r1
|
|
_0200560C:
|
|
str r7, [r8, #0xc]
|
|
ldr r0, _020056C0 ; =0x03807838
|
|
str r6, [r8, #0x10]
|
|
mov r2, #0
|
|
ldr r5, [r0, #4]
|
|
mov r1, r2
|
|
b _0200567C
|
|
_02005628:
|
|
ldr r3, [r5, #0xc]
|
|
ldr r0, [r5, #0x10]
|
|
subs r4, r7, r3
|
|
sbc r3, r6, r0
|
|
subs r0, r4, r1
|
|
sbcs r0, r3, r2
|
|
bge _02005678
|
|
ldr r0, [r5, #0x14]
|
|
str r0, [r8, #0x14]
|
|
str r8, [r5, #0x14]
|
|
str r5, [r8, #0x18]
|
|
ldr r0, [r8, #0x14]
|
|
cmp r0, #0
|
|
strne r8, [r0, #0x18]
|
|
bne _020056B8
|
|
ldr r1, _020056C0 ; =0x03807838
|
|
mov r0, r8
|
|
str r8, [r1, #4]
|
|
bl sub_020054A8
|
|
b _020056B8
|
|
_02005678:
|
|
ldr r5, [r5, #0x18]
|
|
_0200567C:
|
|
cmp r5, #0
|
|
bne _02005628
|
|
ldr r1, _020056C0 ; =0x03807838
|
|
mov r0, #0
|
|
str r0, [r8, #0x18]
|
|
ldr r0, [r1, #8]
|
|
str r8, [r1, #8]
|
|
str r0, [r8, #0x14]
|
|
cmp r0, #0
|
|
strne r8, [r0, #0x18]
|
|
bne _020056B8
|
|
str r8, [r1, #8]
|
|
mov r0, r8
|
|
str r8, [r1, #4]
|
|
bl sub_020054A8
|
|
_020056B8:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020056C0: .word 0x03807838
|
|
arm_func_end sub_02005598
|
|
|
|
arm_func_start sub_020056C4
|
|
sub_020056C4: ; 0x020056C4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
movs r6, r0
|
|
mov r5, r1
|
|
mov r4, r2
|
|
mov r7, r3
|
|
beq _020056E8
|
|
ldr r0, [r6]
|
|
cmp r0, #0
|
|
beq _020056EC
|
|
_020056E8:
|
|
bl sub_02006058
|
|
_020056EC:
|
|
bl sub_02005EE8
|
|
mov r1, #0
|
|
str r1, [r6, #0x1c]
|
|
str r1, [r6, #0x20]
|
|
str r7, [r6]
|
|
ldr r1, [sp, #0x18]
|
|
mov r7, r0
|
|
str r1, [r6, #4]
|
|
bl sub_02005404
|
|
adds r3, r5, r0
|
|
adc r2, r4, r1
|
|
mov r0, r6
|
|
mov r1, r3
|
|
bl sub_02005598
|
|
mov r0, r7
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_020056C4
|
|
|
|
arm_func_start sub_02005734
|
|
sub_02005734: ; 0x02005734
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r5, [sp, #0x18]
|
|
movs r4, r0
|
|
mov r8, r1
|
|
mov r7, r2
|
|
mov r6, r3
|
|
beq _0200575C
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _02005760
|
|
_0200575C:
|
|
bl sub_02006058
|
|
_02005760:
|
|
bl sub_02005EE8
|
|
str r6, [r4, #0x1c]
|
|
str r5, [r4, #0x20]
|
|
str r8, [r4, #0x24]
|
|
mov r1, #0
|
|
mov r5, r0
|
|
ldr r0, [sp, #0x1c]
|
|
str r7, [r4, #0x28]
|
|
ldr r3, [sp, #0x20]
|
|
str r0, [r4]
|
|
mov r0, r4
|
|
mov r2, r1
|
|
str r3, [r4, #4]
|
|
bl sub_02005598
|
|
mov r0, r5
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
arm_func_end sub_02005734
|
|
|
|
arm_func_start sub_020057A8
|
|
sub_020057A8: ; 0x020057A8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl sub_02005EE8
|
|
ldr r1, [r5]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
bne _020057CC
|
|
bl sub_02005EFC
|
|
b _02005824
|
|
_020057CC:
|
|
ldr r0, [r5, #0x18]
|
|
cmp r0, #0
|
|
ldreq r2, [r5, #0x14]
|
|
ldreq r1, _0200582C ; =0x03807838
|
|
streq r2, [r1, #8]
|
|
ldrne r1, [r5, #0x14]
|
|
strne r1, [r0, #0x14]
|
|
ldr r1, [r5, #0x14]
|
|
cmp r1, #0
|
|
strne r0, [r1, #0x18]
|
|
bne _0200580C
|
|
ldr r1, _0200582C ; =0x03807838
|
|
cmp r0, #0
|
|
str r0, [r1, #4]
|
|
beq _0200580C
|
|
bl sub_020054A8
|
|
_0200580C:
|
|
mov r1, #0
|
|
str r1, [r5]
|
|
str r1, [r5, #0x1c]
|
|
mov r0, r4
|
|
str r1, [r5, #0x20]
|
|
bl sub_02005EFC
|
|
_02005824:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200582C: .word 0x03807838
|
|
arm_func_end sub_020057A8
|
|
|
|
arm_func_start sub_02005830
|
|
sub_02005830: ; 0x02005830
|
|
stmdb sp!, {r0, lr}
|
|
bl sub_02005840
|
|
ldmia sp!, {r0, lr}
|
|
bx lr
|
|
arm_func_end sub_02005830
|
|
|
|
arm_func_start sub_02005840
|
|
sub_02005840: ; 0x02005840
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _02005928 ; =0x04000106
|
|
mov r2, #0
|
|
mov r0, #0x10
|
|
strh r2, [r1]
|
|
bl sub_02003B10
|
|
ldr r1, _0200592C ; =0x0380FFF8
|
|
ldr r0, [r1]
|
|
orr r0, r0, #0x10
|
|
str r0, [r1]
|
|
bl sub_02005404
|
|
ldr r2, _02005930 ; =0x03807838
|
|
ldr r4, [r2, #4]
|
|
cmp r4, #0
|
|
beq _02005920
|
|
ldr r3, [r4, #0x10]
|
|
ldr ip, [r4, #0xc]
|
|
cmp r1, r3
|
|
cmpeq r0, ip
|
|
bhs _0200589C
|
|
mov r0, r4
|
|
bl sub_020054A8
|
|
b _02005920
|
|
_0200589C:
|
|
ldr r1, [r4, #0x18]
|
|
mov r0, #0
|
|
str r1, [r2, #4]
|
|
cmp r1, #0
|
|
streq r0, [r2, #8]
|
|
strne r0, [r1, #0x14]
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, [r4, #0x1c]
|
|
cmp r0, #0
|
|
ldr r5, [r4]
|
|
mov r0, #0
|
|
cmpeq r1, #0
|
|
streq r0, [r4]
|
|
cmp r5, #0
|
|
beq _020058E4
|
|
ldr r0, [r4, #4]
|
|
mov lr, pc
|
|
bx r5
|
|
_020058E4:
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, [r4, #0x1c]
|
|
cmp r0, #0
|
|
cmpeq r1, #0
|
|
mov r1, #0
|
|
beq _0200590C
|
|
mov r0, r4
|
|
mov r2, r1
|
|
str r5, [r4]
|
|
bl sub_02005598
|
|
_0200590C:
|
|
ldr r0, _02005930 ; =0x03807838
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _02005920
|
|
bl sub_020054A8
|
|
_02005920:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005928: .word 0x04000106
|
|
_0200592C: .word 0x0380FFF8
|
|
_02005930: .word 0x03807838
|
|
arm_func_end sub_02005840
|
|
|
|
arm_func_start sub_02005934
|
|
sub_02005934: ; 0x02005934
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _0200597C ; =0x03807844
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _02005974
|
|
mov r0, #1
|
|
strh r0, [r1]
|
|
mov r2, #0
|
|
str r2, [r1, #0xc]
|
|
mov r0, #4
|
|
str r2, [r1, #0x10]
|
|
bl sub_02003B10
|
|
ldr r0, _0200597C ; =0x03807844
|
|
mov r1, #0
|
|
str r1, [r0, #8]
|
|
str r1, [r0, #4]
|
|
_02005974:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200597C: .word 0x03807844
|
|
arm_func_end sub_02005934
|
|
|
|
arm_func_start sub_02005980
|
|
sub_02005980: ; 0x02005980
|
|
ldr r0, _0200598C ; =0x03807844
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200598C: .word 0x03807844
|
|
arm_func_end sub_02005980
|
|
|
|
arm_func_start sub_02005990
|
|
sub_02005990: ; 0x02005990
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02005A30 ; =0x03807844
|
|
ldr r3, [r1, #0xc]
|
|
b _020059F4
|
|
_020059A0:
|
|
ldr r2, [r0, #0xc]
|
|
ldr r1, [r3, #0xc]
|
|
cmp r1, r2
|
|
blo _020059F0
|
|
bne _020059C4
|
|
ldrsh r2, [r3, #0x10]
|
|
ldrsh r1, [r0, #0x10]
|
|
cmp r2, r1
|
|
ble _020059F0
|
|
_020059C4:
|
|
ldr r1, [r3, #0x14]
|
|
str r1, [r0, #0x14]
|
|
str r3, [r0, #0x18]
|
|
str r0, [r3, #0x14]
|
|
cmp r1, #0
|
|
strne r0, [r1, #0x18]
|
|
bne _02005A28
|
|
ldr r1, _02005A30 ; =0x03807844
|
|
str r0, [r1, #0xc]
|
|
bl sub_02005BA0
|
|
b _02005A28
|
|
_020059F0:
|
|
ldr r3, [r3, #0x18]
|
|
_020059F4:
|
|
cmp r3, #0
|
|
bne _020059A0
|
|
ldr r1, _02005A30 ; =0x03807844
|
|
mov r2, #0
|
|
ldr r3, [r1, #0x10]
|
|
str r3, [r0, #0x14]
|
|
str r2, [r0, #0x18]
|
|
str r0, [r1, #0x10]
|
|
cmp r3, #0
|
|
strne r0, [r3, #0x18]
|
|
bne _02005A28
|
|
str r0, [r1, #0xc]
|
|
bl sub_02005BA0
|
|
_02005A28:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005A30: .word 0x03807844
|
|
arm_func_end sub_02005990
|
|
|
|
arm_func_start sub_02005A34
|
|
sub_02005A34: ; 0x02005A34
|
|
cmp r0, #0
|
|
bxeq lr
|
|
ldr r2, [r0, #0x18]
|
|
ldr r1, [r0, #0x14]
|
|
cmp r2, #0
|
|
ldreq r0, _02005A68 ; =0x03807844
|
|
strne r1, [r2, #0x14]
|
|
streq r1, [r0, #0x10]
|
|
cmp r1, #0
|
|
ldreq r0, _02005A68 ; =0x03807844
|
|
strne r2, [r1, #0x18]
|
|
streq r2, [r0, #0xc]
|
|
bx lr
|
|
.align 2, 0
|
|
_02005A68: .word 0x03807844
|
|
arm_func_end sub_02005A34
|
|
|
|
arm_func_start sub_02005A6C
|
|
sub_02005A6C: ; 0x02005A6C
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
str r1, [r0, #8]
|
|
str r1, [r0, #0x20]
|
|
bx lr
|
|
arm_func_end sub_02005A6C
|
|
|
|
arm_func_start sub_02005A80
|
|
sub_02005A80: ; 0x02005A80
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
mov r8, r0
|
|
mov r7, r1
|
|
mov r6, r2
|
|
mov r5, r3
|
|
bl sub_02005EE8
|
|
mov r4, r0
|
|
cmp r8, #0
|
|
beq _02005AB0
|
|
ldr r0, [r8]
|
|
cmp r0, #0
|
|
beq _02005AB4
|
|
_02005AB0:
|
|
bl sub_02006058
|
|
_02005AB4:
|
|
ldr r0, _02005B0C ; =0x04000006
|
|
ldrh sb, [r0]
|
|
mov r0, sb
|
|
bl sub_02005E90
|
|
mov r1, #0
|
|
str r1, [r8, #0x1c]
|
|
cmp r7, sb
|
|
strh r7, [r8, #0x10]
|
|
addle r0, r0, #1
|
|
str r0, [r8, #0xc]
|
|
strh r6, [r8, #0x12]
|
|
ldr r0, [sp, #0x20]
|
|
str r5, [r8]
|
|
str r0, [r8, #4]
|
|
mov r1, #0
|
|
mov r0, r8
|
|
str r1, [r8, #0x24]
|
|
bl sub_02005990
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005B0C: .word 0x04000006
|
|
arm_func_end sub_02005A80
|
|
|
|
arm_func_start sub_02005B10
|
|
sub_02005B10: ; 0x02005B10
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
mov r8, r0
|
|
mov r7, r1
|
|
mov r6, r2
|
|
mov r5, r3
|
|
bl sub_02005EE8
|
|
mov r4, r0
|
|
cmp r8, #0
|
|
beq _02005B40
|
|
ldr r0, [r8]
|
|
cmp r0, #0
|
|
beq _02005B44
|
|
_02005B40:
|
|
bl sub_02006058
|
|
_02005B44:
|
|
ldr r0, _02005B9C ; =0x04000006
|
|
ldrh sb, [r0]
|
|
mov r0, sb
|
|
bl sub_02005E90
|
|
mov r1, #1
|
|
str r1, [r8, #0x1c]
|
|
cmp r7, sb
|
|
strh r7, [r8, #0x10]
|
|
addle r0, r0, #1
|
|
str r0, [r8, #0xc]
|
|
strh r6, [r8, #0x12]
|
|
ldr r0, [sp, #0x20]
|
|
str r5, [r8]
|
|
str r0, [r8, #4]
|
|
mov r1, #0
|
|
mov r0, r8
|
|
str r1, [r8, #0x24]
|
|
bl sub_02005990
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005B9C: .word 0x04000006
|
|
arm_func_end sub_02005B10
|
|
|
|
arm_func_start sub_02005BA0
|
|
sub_02005BA0: ; 0x02005BA0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02005BF4 ; =0x037FDAF8
|
|
mov r4, r0
|
|
mov r0, #4
|
|
bl sub_020039A4
|
|
ldrsh r3, [r4, #0x10]
|
|
ldr r2, _02005BF8 ; =0x04000004
|
|
mov r0, r3, lsl #0x18
|
|
ldrh r1, [r2]
|
|
and r3, r3, #0x100
|
|
and r1, r1, #0x3f
|
|
orr r0, r1, r0, lsr #16
|
|
orr r0, r0, r3, asr #1
|
|
strh r0, [r2]
|
|
ldrh r1, [r2]
|
|
mov r0, #4
|
|
orr r1, r1, #0x20
|
|
strh r1, [r2]
|
|
bl sub_02003AD8
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005BF4: .word 0x037FDAF8
|
|
_02005BF8: .word 0x04000004
|
|
arm_func_end sub_02005BA0
|
|
|
|
arm_func_start sub_02005BFC
|
|
sub_02005BFC: ; 0x02005BFC
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
movs r4, r1
|
|
mov r5, r0
|
|
bne _02005C10
|
|
bl sub_02006058
|
|
_02005C10:
|
|
cmp r5, #0
|
|
strne r4, [r5, #8]
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_02005BFC
|
|
|
|
arm_func_start sub_02005C20
|
|
sub_02005C20: ; 0x02005C20
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl sub_02005EE8
|
|
mov r1, #1
|
|
str r1, [r5, #0x24]
|
|
ldr r1, [r5]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
bne _02005C4C
|
|
bl sub_02005EFC
|
|
b _02005C64
|
|
_02005C4C:
|
|
mov r0, r5
|
|
bl sub_02005A34
|
|
mov r1, #0
|
|
mov r0, r4
|
|
str r1, [r5]
|
|
bl sub_02005EFC
|
|
_02005C64:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_02005C20
|
|
|
|
arm_func_start sub_02005C6C
|
|
sub_02005C6C: ; 0x02005C6C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
bl sub_02005EE8
|
|
mov r5, r0
|
|
cmp r7, #0
|
|
bne _02005C88
|
|
bl sub_02006058
|
|
_02005C88:
|
|
ldr r0, _02005CDC ; =0x03807844
|
|
mov r4, #0
|
|
ldr r0, [r0, #0xc]
|
|
cmp r0, #0
|
|
ldrne r6, [r0, #0x18]
|
|
moveq r6, #0
|
|
b _02005CC4
|
|
_02005CA4:
|
|
ldr r1, [r0, #8]
|
|
cmp r1, r7
|
|
bne _02005CB4
|
|
bl sub_02005C20
|
|
_02005CB4:
|
|
mov r0, r6
|
|
cmp r6, #0
|
|
ldrne r6, [r6, #0x18]
|
|
moveq r6, r4
|
|
_02005CC4:
|
|
cmp r0, #0
|
|
bne _02005CA4
|
|
mov r0, r5
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005CDC: .word 0x03807844
|
|
arm_func_end sub_02005C6C
|
|
|
|
arm_func_start sub_02005CE0
|
|
sub_02005CE0: ; 0x02005CE0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov r0, #4
|
|
bl sub_02003B10
|
|
ldr r2, _02005E80 ; =0x04000004
|
|
ldr r1, _02005E84 ; =0x0380FFF8
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #0x20
|
|
strh r0, [r2]
|
|
ldr r0, [r1]
|
|
orr r0, r0, #4
|
|
str r0, [r1]
|
|
ldrh r0, [r2]
|
|
mov r1, r0, asr #8
|
|
mov r0, r0, lsl #1
|
|
and r1, r1, #0xff
|
|
and r0, r0, #0x100
|
|
orr r0, r1, r0
|
|
sub r0, r0, #1
|
|
bl sub_02005E90
|
|
ldr sl, _02005E88 ; =0x04000006
|
|
mov r6, #0
|
|
ldr r5, _02005E8C ; =0x03807844
|
|
sub r7, sl, #2
|
|
mov fp, #1
|
|
mov r8, r6
|
|
b _02005E6C
|
|
_02005D48:
|
|
ldrh sb, [sl]
|
|
mov r0, sb
|
|
bl sub_02005E90
|
|
ldrsh r1, [r4, #0x10]
|
|
ldr r2, [r4, #0xc]
|
|
sub r1, sb, r1
|
|
mov sb, r0
|
|
subs r0, sb, r2
|
|
bmi _02005D7C
|
|
cmp r0, #0
|
|
bne _02005D84
|
|
cmp r1, #0
|
|
bge _02005D84
|
|
_02005D7C:
|
|
mov r0, r8
|
|
b _02005DA0
|
|
_02005D84:
|
|
cmp r1, #0
|
|
addlt r0, r1, #7
|
|
addlt r1, r0, #0x100
|
|
ldrsh r0, [r4, #0x12]
|
|
cmp r1, r0
|
|
movle r0, fp
|
|
movgt r0, #2
|
|
_02005DA0:
|
|
cmp r0, #0
|
|
beq _02005DBC
|
|
cmp r0, #1
|
|
beq _02005DF8
|
|
cmp r0, #2
|
|
beq _02005E50
|
|
b _02005E6C
|
|
_02005DBC:
|
|
mov r0, r4
|
|
bl sub_02005BA0
|
|
ldrh r1, [sl]
|
|
ldrsh r0, [r4, #0x10]
|
|
cmp r0, r1
|
|
ldreq r0, [r4, #0xc]
|
|
cmpeq r0, sb
|
|
bne _02005E78
|
|
mov r0, #4
|
|
bl sub_02003B10
|
|
ldrh r1, [r7]
|
|
mov r0, #4
|
|
bic r1, r1, #0x20
|
|
strh r1, [r7]
|
|
bl sub_02003B4C
|
|
_02005DF8:
|
|
ldr sb, [r4]
|
|
mov r0, r4
|
|
bl sub_02005A34
|
|
str r6, [r4]
|
|
cmp sb, #0
|
|
beq _02005E1C
|
|
ldr r0, [r4, #4]
|
|
mov lr, pc
|
|
bx sb
|
|
_02005E1C:
|
|
ldr r0, [r4, #0x1c]
|
|
cmp r0, #0
|
|
beq _02005E6C
|
|
ldr r0, [r4, #0x24]
|
|
cmp r0, #0
|
|
bne _02005E6C
|
|
str sb, [r4]
|
|
ldr r1, [r5, #8]
|
|
mov r0, r4
|
|
add r1, r1, #1
|
|
str r1, [r4, #0xc]
|
|
bl sub_02005990
|
|
b _02005E6C
|
|
_02005E50:
|
|
mov r0, r4
|
|
bl sub_02005A34
|
|
ldr r1, [r5, #8]
|
|
mov r0, r4
|
|
add r1, r1, #1
|
|
str r1, [r4, #0xc]
|
|
bl sub_02005990
|
|
_02005E6C:
|
|
ldr r4, [r5, #0xc]
|
|
cmp r4, #0
|
|
bne _02005D48
|
|
_02005E78:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005E80: .word 0x04000004
|
|
_02005E84: .word 0x0380FFF8
|
|
_02005E88: .word 0x04000006
|
|
_02005E8C: .word 0x03807844
|
|
arm_func_end sub_02005CE0
|
|
|
|
arm_func_start sub_02005E90
|
|
sub_02005E90: ; 0x02005E90
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_02005EE8
|
|
ldr r1, _02005ED0 ; =0x03807844
|
|
ldr r2, [r1, #4]
|
|
cmp r4, r2
|
|
ldrlt r2, [r1, #8]
|
|
addlt r2, r2, #1
|
|
strlt r2, [r1, #8]
|
|
ldr r1, _02005ED0 ; =0x03807844
|
|
str r4, [r1, #4]
|
|
bl sub_02005EFC
|
|
ldr r0, _02005ED0 ; =0x03807844
|
|
ldr r0, [r0, #8]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005ED0: .word 0x03807844
|
|
arm_func_end sub_02005E90
|
|
|
|
arm_func_start sub_02005ED4
|
|
sub_02005ED4: ; 0x02005ED4
|
|
mrs r0, cpsr
|
|
bic r1, r0, #0x80
|
|
msr cpsr_c, r1
|
|
and r0, r0, #0x80
|
|
bx lr
|
|
arm_func_end sub_02005ED4
|
|
|
|
arm_func_start sub_02005EE8
|
|
sub_02005EE8: ; 0x02005EE8
|
|
mrs r0, cpsr
|
|
orr r1, r0, #0x80
|
|
msr cpsr_c, r1
|
|
and r0, r0, #0x80
|
|
bx lr
|
|
arm_func_end sub_02005EE8
|
|
|
|
arm_func_start sub_02005EFC
|
|
sub_02005EFC: ; 0x02005EFC
|
|
mrs r1, cpsr
|
|
bic r2, r1, #0x80
|
|
orr r2, r2, r0
|
|
msr cpsr_c, r2
|
|
and r0, r1, #0x80
|
|
bx lr
|
|
arm_func_end sub_02005EFC
|
|
|
|
arm_func_start sub_02005F14
|
|
sub_02005F14: ; 0x02005F14
|
|
mrs r0, cpsr
|
|
orr r1, r0, #0xc0
|
|
msr cpsr_c, r1
|
|
and r0, r0, #0xc0
|
|
bx lr
|
|
arm_func_end sub_02005F14
|
|
|
|
arm_func_start sub_02005F28
|
|
sub_02005F28: ; 0x02005F28
|
|
mrs r1, cpsr
|
|
bic r2, r1, #0xc0
|
|
orr r2, r2, r0
|
|
msr cpsr_c, r2
|
|
and r0, r1, #0xc0
|
|
bx lr
|
|
arm_func_end sub_02005F28
|
|
|
|
arm_func_start sub_02005F40
|
|
sub_02005F40: ; 0x02005F40
|
|
mrs r0, cpsr
|
|
and r0, r0, #0x1f
|
|
bx lr
|
|
arm_func_end sub_02005F40
|
|
|
|
arm_func_start sub_02005F4C
|
|
sub_02005F4C: ; 0x02005F4C
|
|
ldr ip, _02005F60 ; =sub_038037B8
|
|
mov r1, r0, asr #1
|
|
add r0, r0, r1, lsr #30
|
|
mov r0, r0, asr #2
|
|
bx ip
|
|
.align 2, 0
|
|
_02005F60: .word sub_038037B8
|
|
arm_func_end sub_02005F4C
|
|
|
|
arm_func_start sub_02005F64
|
|
sub_02005F64: ; 0x02005F64
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _02005F94 ; =0x03807858
|
|
ldrh r0, [r2]
|
|
cmp r0, #0
|
|
bne _02005F8C
|
|
ldr r1, _02005F98 ; =0x037FDDC4
|
|
mov r3, #1
|
|
mov r0, #0xc
|
|
strh r3, [r2]
|
|
bl sub_02006584
|
|
_02005F8C:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005F94: .word 0x03807858
|
|
_02005F98: .word 0x037FDDC4
|
|
arm_func_end sub_02005F64
|
|
|
|
arm_func_start sub_02005F9C
|
|
sub_02005F9C: ; 0x02005F9C
|
|
ldr r0, _02005FA8 ; =0x03807858
|
|
ldrh r0, [r0, #2]
|
|
bx lr
|
|
.align 2, 0
|
|
_02005FA8: .word 0x03807858
|
|
arm_func_end sub_02005F9C
|
|
|
|
arm_func_start sub_02005FAC
|
|
sub_02005FAC: ; 0x02005FAC
|
|
stmdb sp!, {r3, lr}
|
|
and r0, r1, #0x7f00
|
|
mov r0, r0, lsl #8
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #0x10
|
|
ldreq r0, _02005FDC ; =0x03807858
|
|
moveq r1, #1
|
|
streqh r1, [r0, #2]
|
|
beq _02005FD4
|
|
bl sub_02006058
|
|
_02005FD4:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02005FDC: .word 0x03807858
|
|
arm_func_end sub_02005FAC
|
|
|
|
arm_func_start sub_02005FE0
|
|
sub_02005FE0: ; 0x02005FE0
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r0, #0
|
|
bl sub_020060DC
|
|
mov r0, #1
|
|
bl sub_020060DC
|
|
mov r0, #2
|
|
bl sub_020060DC
|
|
mov r0, #3
|
|
bl sub_020060DC
|
|
mov r0, #0x40000
|
|
bl sub_02003A8C
|
|
mvn r0, #0
|
|
bl sub_02003B4C
|
|
bl sub_0200689C
|
|
mov r6, #0xc
|
|
mov r5, #0x1000
|
|
mov r4, #0
|
|
_02006024:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_020065F8
|
|
cmp r0, #0
|
|
bne _02006024
|
|
ldr r0, _02006054 ; =0x04000208
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
bl sub_0200F4A8
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02006054: .word 0x04000208
|
|
arm_func_end sub_02005FE0
|
|
|
|
arm_func_start sub_02006058
|
|
sub_02006058: ; 0x02006058
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
bl sub_0200E7F8
|
|
_02006064:
|
|
bl sub_02005EE8
|
|
bl sub_02000660
|
|
b _02006064
|
|
arm_func_end sub_02006058
|
|
|
|
arm_func_start sub_02006070
|
|
sub_02006070: ; 0x02006070
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_02005EE8
|
|
add r1, r4, r4, lsl #1
|
|
add r1, r1, #2
|
|
mov r1, r1, lsl #2
|
|
add r1, r1, #0xb0
|
|
add r2, r1, #0x4000000
|
|
_02006090:
|
|
ldr r1, [r2]
|
|
tst r1, #0x80000000
|
|
bne _02006090
|
|
cmp r4, #0
|
|
bne _020060CC
|
|
mov r1, #0xc
|
|
mul r1, r4, r1
|
|
add r2, r1, #0x4000000
|
|
mov r3, #0
|
|
add r1, r1, #0xb0
|
|
str r3, [r2, #0xb0]
|
|
add r2, r1, #0x4000000
|
|
ldr r1, _020060D8 ; =0x81400001
|
|
str r3, [r2, #4]
|
|
str r1, [r2, #8]
|
|
_020060CC:
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020060D8: .word 0x81400001
|
|
arm_func_end sub_02006070
|
|
|
|
arm_func_start sub_020060DC
|
|
sub_020060DC: ; 0x020060DC
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_02005EE8
|
|
mov r1, #6
|
|
mul r1, r4, r1
|
|
add r1, r1, #5
|
|
mov r1, r1, lsl #1
|
|
add r1, r1, #0x4000000
|
|
ldrh r2, [r1, #0xb0]
|
|
cmp r4, #0
|
|
bic r2, r2, #0x3200
|
|
strh r2, [r1, #0xb0]
|
|
ldrh r2, [r1, #0xb0]
|
|
bic r2, r2, #0x8000
|
|
strh r2, [r1, #0xb0]
|
|
ldrh r2, [r1, #0xb0]
|
|
ldrh r1, [r1, #0xb0]
|
|
bne _0200614C
|
|
mov r1, #0xc
|
|
mul r1, r4, r1
|
|
add r2, r1, #0x4000000
|
|
mov r3, #0
|
|
add r1, r1, #0xb0
|
|
str r3, [r2, #0xb0]
|
|
add r2, r1, #0x4000000
|
|
ldr r1, _02006158 ; =0x81400001
|
|
str r3, [r2, #4]
|
|
str r1, [r2, #8]
|
|
_0200614C:
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02006158: .word 0x81400001
|
|
arm_func_end sub_020060DC
|
|
|
|
arm_func_start sub_0200615C
|
|
sub_0200615C: ; 0x0200615C
|
|
mov r3, #0
|
|
_02006160:
|
|
cmp r3, r2
|
|
blt _0200616C
|
|
b _02006170
|
|
_0200616C:
|
|
strh r0, [r1, r3]
|
|
_02006170:
|
|
blt _02006178
|
|
b _0200617C
|
|
_02006178:
|
|
add r3, r3, #2
|
|
_0200617C:
|
|
blt _02006160
|
|
bx lr
|
|
arm_func_end sub_0200615C
|
|
|
|
arm_func_start sub_02006184
|
|
sub_02006184: ; 0x02006184
|
|
mov ip, #0
|
|
_02006188:
|
|
cmp ip, r2
|
|
blt _02006194
|
|
b _02006198
|
|
_02006194:
|
|
ldrh r3, [r0, ip]
|
|
_02006198:
|
|
blt _020061A0
|
|
b _020061A4
|
|
_020061A0:
|
|
strh r3, [r1, ip]
|
|
_020061A4:
|
|
blt _020061AC
|
|
b _020061B0
|
|
_020061AC:
|
|
add ip, ip, #2
|
|
_020061B0:
|
|
blt _02006188
|
|
bx lr
|
|
arm_func_end sub_02006184
|
|
|
|
arm_func_start sub_020061B8
|
|
sub_020061B8: ; 0x020061B8
|
|
add ip, r1, r2
|
|
_020061BC:
|
|
cmp r1, ip
|
|
blt _020061C8
|
|
b _020061CC
|
|
_020061C8:
|
|
stmia r1!, {r0}
|
|
_020061CC:
|
|
blt _020061BC
|
|
bx lr
|
|
arm_func_end sub_020061B8
|
|
|
|
arm_func_start sub_020061D4
|
|
sub_020061D4: ; 0x020061D4
|
|
add ip, r1, r2
|
|
_020061D8:
|
|
cmp r1, ip
|
|
blt _020061E4
|
|
b _020061E8
|
|
_020061E4:
|
|
ldmia r0!, {r2}
|
|
_020061E8:
|
|
blt _020061F0
|
|
b _020061F4
|
|
_020061F0:
|
|
stmia r1!, {r2}
|
|
_020061F4:
|
|
blt _020061D8
|
|
bx lr
|
|
arm_func_end sub_020061D4
|
|
|
|
arm_func_start sub_020061FC
|
|
sub_020061FC: ; 0x020061FC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb}
|
|
add sb, r1, r2
|
|
mov ip, r2, lsr #5
|
|
add ip, r1, ip, lsl #5
|
|
mov r2, r0
|
|
mov r3, r2
|
|
mov r4, r2
|
|
mov r5, r2
|
|
mov r6, r2
|
|
mov r7, r2
|
|
mov r8, r2
|
|
_02006228:
|
|
cmp r1, ip
|
|
blt _02006234
|
|
b _02006238
|
|
_02006234:
|
|
stmia r1!, {r0, r2, r3, r4, r5, r6, r7, r8}
|
|
_02006238:
|
|
blt _02006228
|
|
_0200623C:
|
|
cmp r1, sb
|
|
blt _02006248
|
|
b _0200624C
|
|
_02006248:
|
|
stmia r1!, {r0}
|
|
_0200624C:
|
|
blt _0200623C
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb}
|
|
bx lr
|
|
arm_func_end sub_020061FC
|
|
|
|
arm_func_start sub_02006258
|
|
sub_02006258: ; 0x02006258
|
|
cmp r2, #0
|
|
beq _02006264
|
|
b _02006268
|
|
_02006264:
|
|
bx lr
|
|
_02006268:
|
|
tst r0, #1
|
|
beq _02006294
|
|
ldrh ip, [r0, #-1]
|
|
and ip, ip, #0xff
|
|
orr r3, ip, r1, lsl #8
|
|
strh r3, [r0, #-1]
|
|
add r0, r0, #1
|
|
subs r2, r2, #1
|
|
beq _02006290
|
|
b _02006294
|
|
_02006290:
|
|
bx lr
|
|
_02006294:
|
|
cmp r2, #2
|
|
blo _020062EC
|
|
orr r1, r1, r1, lsl #8
|
|
tst r0, #2
|
|
beq _020062BC
|
|
strh r1, [r0], #2
|
|
subs r2, r2, #2
|
|
beq _020062B8
|
|
b _020062BC
|
|
_020062B8:
|
|
bx lr
|
|
_020062BC:
|
|
orr r1, r1, r1, lsl #16
|
|
bics r3, r2, #3
|
|
beq _020062DC
|
|
sub r2, r2, r3
|
|
add ip, r3, r0
|
|
_020062D0:
|
|
str r1, [r0], #4
|
|
cmp r0, ip
|
|
blo _020062D0
|
|
_020062DC:
|
|
tst r2, #2
|
|
bne _020062E8
|
|
b _020062EC
|
|
_020062E8:
|
|
strh r1, [r0], #2
|
|
_020062EC:
|
|
tst r2, #1
|
|
beq _020062F8
|
|
b _020062FC
|
|
_020062F8:
|
|
bx lr
|
|
_020062FC:
|
|
ldrh r3, [r0]
|
|
and r3, r3, #0xff00
|
|
and r1, r1, #0xff
|
|
orr r1, r1, r3
|
|
strh r1, [r0]
|
|
bx lr
|
|
arm_func_end sub_02006258
|
|
|
|
arm_func_start sub_02006314
|
|
sub_02006314: ; 0x02006314
|
|
cmp r2, #0
|
|
beq _02006320
|
|
b _02006324
|
|
_02006320:
|
|
bx lr
|
|
_02006324:
|
|
tst r1, #1
|
|
beq _0200637C
|
|
ldrh ip, [r1, #-1]
|
|
and ip, ip, #0xff
|
|
tst r0, #1
|
|
bne _02006340
|
|
b _02006344
|
|
_02006340:
|
|
ldrh r3, [r0, #-1]
|
|
_02006344:
|
|
bne _0200634C
|
|
b _02006350
|
|
_0200634C:
|
|
mov r3, r3, lsr #8
|
|
_02006350:
|
|
beq _02006358
|
|
b _0200635C
|
|
_02006358:
|
|
ldrh r3, [r0]
|
|
_0200635C:
|
|
orr r3, ip, r3, lsl #8
|
|
strh r3, [r1, #-1]
|
|
add r0, r0, #1
|
|
add r1, r1, #1
|
|
subs r2, r2, #1
|
|
beq _02006378
|
|
b _0200637C
|
|
_02006378:
|
|
bx lr
|
|
_0200637C:
|
|
eor ip, r1, r0
|
|
tst ip, #1
|
|
beq _020063D8
|
|
bic r0, r0, #1
|
|
ldrh ip, [r0], #2
|
|
mov r3, ip, lsr #8
|
|
subs r2, r2, #2
|
|
blo _020063B4
|
|
_0200639C:
|
|
ldrh ip, [r0], #2
|
|
orr ip, r3, ip, lsl #8
|
|
strh ip, [r1], #2
|
|
mov r3, ip, lsr #0x10
|
|
subs r2, r2, #2
|
|
bhs _0200639C
|
|
_020063B4:
|
|
tst r2, #1
|
|
beq _020063C0
|
|
b _020063C4
|
|
_020063C0:
|
|
bx lr
|
|
_020063C4:
|
|
ldrh ip, [r1]
|
|
and ip, ip, #0xff00
|
|
orr ip, ip, r3
|
|
strh ip, [r1]
|
|
bx lr
|
|
_020063D8:
|
|
tst ip, #2
|
|
beq _02006404
|
|
bics r3, r2, #1
|
|
beq _02006468
|
|
sub r2, r2, r3
|
|
add ip, r3, r1
|
|
_020063F0:
|
|
ldrh r3, [r0], #2
|
|
strh r3, [r1], #2
|
|
cmp r1, ip
|
|
blo _020063F0
|
|
b _02006468
|
|
_02006404:
|
|
cmp r2, #2
|
|
blo _02006468
|
|
tst r1, #2
|
|
beq _0200642C
|
|
ldrh r3, [r0], #2
|
|
strh r3, [r1], #2
|
|
subs r2, r2, #2
|
|
beq _02006428
|
|
b _0200642C
|
|
_02006428:
|
|
bx lr
|
|
_0200642C:
|
|
bics r3, r2, #3
|
|
beq _0200644C
|
|
sub r2, r2, r3
|
|
add ip, r3, r1
|
|
_0200643C:
|
|
ldr r3, [r0], #4
|
|
str r3, [r1], #4
|
|
cmp r1, ip
|
|
blo _0200643C
|
|
_0200644C:
|
|
tst r2, #2
|
|
bne _02006458
|
|
b _0200645C
|
|
_02006458:
|
|
ldrh r3, [r0], #2
|
|
_0200645C:
|
|
bne _02006464
|
|
b _02006468
|
|
_02006464:
|
|
strh r3, [r1], #2
|
|
_02006468:
|
|
tst r2, #1
|
|
beq _02006474
|
|
b _02006478
|
|
_02006474:
|
|
bx lr
|
|
_02006478:
|
|
ldrh r2, [r1]
|
|
ldrh r0, [r0]
|
|
and r2, r2, #0xff00
|
|
and r0, r0, #0xff
|
|
orr r0, r2, r0
|
|
strh r0, [r1]
|
|
bx lr
|
|
arm_func_end sub_02006314
|
|
|
|
arm_func_start sub_02006494
|
|
sub_02006494: ; 0x02006494
|
|
.word 0xE1010090
|
|
bx lr
|
|
arm_func_end sub_02006494
|
|
|
|
arm_func_start sub_0200649C
|
|
sub_0200649C: ; 0x0200649C
|
|
ldr ip, _020064A4 ; =sub_037FE2C0
|
|
bx ip
|
|
.align 2, 0
|
|
_020064A4: .word sub_037FE2C0
|
|
arm_func_end sub_0200649C
|
|
|
|
arm_func_start sub_020064A8
|
|
sub_020064A8: ; 0x020064A8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
bl sub_02005EE8
|
|
ldr r1, _02006568 ; =0x0380785C
|
|
mov r4, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _02006558
|
|
ldr r0, _0200656C ; =0x027FFC00
|
|
mov r2, #1
|
|
strh r2, [r1]
|
|
mov r2, #0
|
|
str r2, [r0, #0x38c]
|
|
ldr r0, _02006570 ; =0x03807860
|
|
mov r1, r2
|
|
_020064E0:
|
|
str r1, [r0, r2, lsl #2]
|
|
add r2, r2, #1
|
|
cmp r2, #0x20
|
|
blt _020064E0
|
|
ldr r2, _02006574 ; =0x0000C408
|
|
ldr r1, _02006578 ; =0x04000184
|
|
mov r0, #0x40000
|
|
strh r2, [r1]
|
|
bl sub_02003B4C
|
|
ldr r1, _0200657C ; =0x037FE4A8
|
|
mov r0, #0x40000
|
|
bl sub_020039A4
|
|
mov r0, #0x40000
|
|
bl sub_02003AD8
|
|
mov r5, #8
|
|
ldr r8, _02006580 ; =0x04000180
|
|
mov r6, r5
|
|
mov r7, #0x3e8
|
|
b _02006550
|
|
_0200652C:
|
|
mov r0, r5, lsl #8
|
|
strh r0, [r8]
|
|
mov r0, r7
|
|
bl sub_02005F4C
|
|
ldrh r0, [r8]
|
|
and r0, r0, #0xf
|
|
cmp r0, r5
|
|
movne r5, r6
|
|
sub r5, r5, #1
|
|
_02006550:
|
|
cmp r5, #0
|
|
bge _0200652C
|
|
_02006558:
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02006568: .word 0x0380785C
|
|
_0200656C: .word 0x027FFC00
|
|
_02006570: .word 0x03807860
|
|
_02006574: .word 0x0000C408
|
|
_02006578: .word 0x04000184
|
|
_0200657C: .word 0x037FE4A8
|
|
_02006580: .word 0x04000180
|
|
arm_func_end sub_020064A8
|
|
|
|
arm_func_start sub_02006584
|
|
sub_02006584: ; 0x02006584
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
mov r5, r1
|
|
bl sub_02005EE8
|
|
ldr r1, _020065CC ; =0x03807860
|
|
ldr r3, _020065D0 ; =0x027FFC00
|
|
str r5, [r1, r4, lsl #2]
|
|
cmp r5, #0
|
|
ldrne r2, [r3, #0x38c]
|
|
mov r1, #1
|
|
orrne r1, r2, r1, lsl r4
|
|
ldreq r2, [r3, #0x38c]
|
|
mvneq r1, r1, lsl r4
|
|
andeq r1, r2, r1
|
|
str r1, [r3, #0x38c]
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020065CC: .word 0x03807860
|
|
_020065D0: .word 0x027FFC00
|
|
arm_func_end sub_02006584
|
|
|
|
arm_func_start sub_020065D4
|
|
sub_020065D4: ; 0x020065D4
|
|
ldr r2, _020065F4 ; =0x027FFC00
|
|
mov r3, #1
|
|
add r1, r2, r1, lsl #2
|
|
ldr r1, [r1, #0x388]
|
|
tst r1, r3, lsl r0
|
|
moveq r3, #0
|
|
mov r0, r3
|
|
bx lr
|
|
.align 2, 0
|
|
_020065F4: .word 0x027FFC00
|
|
arm_func_end sub_020065D4
|
|
|
|
arm_func_start sub_020065F8
|
|
sub_020065F8: ; 0x020065F8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, [sp]
|
|
and r0, r0, #0x1f
|
|
bic r3, r3, #0x1f
|
|
orr r0, r3, r0
|
|
bic r3, r0, #0x20
|
|
mov r0, r2, lsl #0x1f
|
|
orr r0, r3, r0, lsr #26
|
|
and r0, r0, #0x3f
|
|
orr r0, r0, r1, lsl #6
|
|
str r0, [sp]
|
|
bl sub_02006630
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_020065F8
|
|
|
|
arm_func_start sub_02006630
|
|
sub_02006630: ; 0x02006630
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _0200668C ; =0x04000184
|
|
mov r4, r0
|
|
ldrh r0, [r2]
|
|
tst r0, #0x4000
|
|
ldrneh r1, [r2]
|
|
mvnne r0, #0
|
|
orrne r1, r1, #0xc000
|
|
strneh r1, [r2]
|
|
bne _02006684
|
|
bl sub_02005EE8
|
|
ldr r2, _0200668C ; =0x04000184
|
|
ldrh r1, [r2]
|
|
tst r1, #2
|
|
beq _02006678
|
|
bl sub_02005EFC
|
|
mvn r0, #1
|
|
b _02006684
|
|
_02006678:
|
|
str r4, [r2, #4]
|
|
bl sub_02005EFC
|
|
mov r0, #0
|
|
_02006684:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200668C: .word 0x04000184
|
|
arm_func_end sub_02006630
|
|
|
|
arm_func_start sub_02006690
|
|
sub_02006690: ; 0x02006690
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
|
|
sub sp, sp, #4
|
|
ldr r6, [sp]
|
|
mvn r8, #3
|
|
ldr r4, _02006768 ; =0x03807860
|
|
ldr sb, _0200676C ; =0x04000184
|
|
add sl, r8, #1
|
|
mov r7, #0x4100000
|
|
mov r5, #0
|
|
_020066B4:
|
|
ldrh r0, [sb]
|
|
tst r0, #0x4000
|
|
ldrneh r0, [sb]
|
|
addne r1, r8, #1
|
|
orrne r0, r0, #0xc000
|
|
strneh r0, [sb]
|
|
bne _020066FC
|
|
bl sub_02005EE8
|
|
ldrh r1, [sb]
|
|
tst r1, #0x100
|
|
beq _020066EC
|
|
bl sub_02005EFC
|
|
mov r1, r8
|
|
b _020066FC
|
|
_020066EC:
|
|
ldr r6, [r7]
|
|
str r6, [sp]
|
|
bl sub_02005EFC
|
|
mov r1, r5
|
|
_020066FC:
|
|
cmp r1, r8
|
|
beq _0200675C
|
|
cmp r1, sl
|
|
beq _020066B4
|
|
mov r0, r6, lsl #0x1b
|
|
movs r0, r0, lsr #0x1b
|
|
beq _020066B4
|
|
ldr r3, [r4, r0, lsl #2]
|
|
cmp r3, #0
|
|
beq _0200673C
|
|
mov r2, r6, lsl #0x1a
|
|
mov r1, r6, lsr #6
|
|
mov r2, r2, lsr #0x1f
|
|
mov lr, pc
|
|
bx r3
|
|
_02006738:
|
|
b _020066B4
|
|
_0200673C:
|
|
mov r0, r6, lsl #0x1a
|
|
movs r0, r0, lsr #0x1f
|
|
bne _020066B4
|
|
orr r6, r6, #0x20
|
|
mov r0, r6
|
|
str r6, [sp]
|
|
bl sub_02006630
|
|
b _020066B4
|
|
_0200675C:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02006768: .word 0x03807860
|
|
_0200676C: .word 0x04000184
|
|
arm_func_end sub_02006690
|
|
|
|
arm_func_start sub_02006770
|
|
sub_02006770: ; 0x02006770
|
|
ldr r2, _0200678C ; =0x04000134
|
|
mvn r3, r0
|
|
ldrh r0, [r2]
|
|
and r0, r3, r0
|
|
orr r0, r1, r0
|
|
strh r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200678C: .word 0x04000134
|
|
arm_func_end sub_02006770
|
|
|
|
arm_func_start sub_02006790
|
|
sub_02006790: ; 0x02006790
|
|
ldr ip, _020067A4 ; =sub_037FE588
|
|
mov r0, r0, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
mov r0, #0xc000
|
|
bx ip
|
|
.align 2, 0
|
|
_020067A4: .word sub_037FE588
|
|
arm_func_end sub_02006790
|
|
|
|
arm_func_start sub_020067A8
|
|
sub_020067A8: ; 0x020067A8
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0xc
|
|
bl sub_0200538C
|
|
cmp r0, #0
|
|
beq _020067C8
|
|
bl sub_02005578
|
|
cmp r0, #0
|
|
bne _020067D0
|
|
_020067C8:
|
|
mov r0, #0
|
|
b _02006828
|
|
_020067D0:
|
|
ldr r0, _02006834 ; =0x038078E0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
movne r0, #0
|
|
bne _02006828
|
|
ldr r0, _02006838 ; =0x038078E4
|
|
bl sub_02005588
|
|
bl sub_02005404
|
|
ldr r2, _0200683C ; =0x037FE65C
|
|
ldr r3, _02006840 ; =0x0000082E
|
|
str r2, [sp, #4]
|
|
adds ip, r0, r3
|
|
mov lr, #0
|
|
str lr, [sp, #8]
|
|
adc r2, r1, #0
|
|
ldr r0, _02006838 ; =0x038078E4
|
|
mov r1, ip
|
|
str lr, [sp]
|
|
bl sub_02005734
|
|
ldr r1, _02006834 ; =0x038078E0
|
|
mov r0, #1
|
|
str r0, [r1]
|
|
_02006828:
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02006834: .word 0x038078E0
|
|
_02006838: .word 0x038078E4
|
|
_0200683C: .word 0x037FE65C
|
|
_02006840: .word 0x0000082E
|
|
arm_func_end sub_020067A8
|
|
|
|
arm_func_start sub_02006844
|
|
sub_02006844: ; 0x02006844
|
|
stmdb sp!, {r4, lr}
|
|
mov r0, #0x8000
|
|
mov r4, #0
|
|
bl sub_02006790
|
|
ldr r0, _0200687C ; =0x04000136
|
|
ldrh r1, [r0]
|
|
ldr r0, _02006880 ; =0x027FFFA8
|
|
tst r1, #0x80
|
|
movne r4, #0x8000
|
|
and r1, r1, #0xb
|
|
orr r1, r4, r1, lsl #10
|
|
strh r1, [r0]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200687C: .word 0x04000136
|
|
_02006880: .word 0x027FFFA8
|
|
arm_func_end sub_02006844
|
|
|
|
arm_func_start sub_02006884
|
|
sub_02006884: ; 0x02006884
|
|
ldr r1, _02006898 ; =0x04000501
|
|
ldrb r0, [r1]
|
|
orr r0, r0, #0x80
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_02006898: .word 0x04000501
|
|
arm_func_end sub_02006884
|
|
|
|
arm_func_start sub_0200689C
|
|
sub_0200689C: ; 0x0200689C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _020068E8 ; =0x04000501
|
|
mov r5, #0
|
|
ldrb r0, [r1]
|
|
bic r0, r0, #0x80
|
|
strb r0, [r1]
|
|
mov r4, #1
|
|
_020068B8:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_02006C08
|
|
add r5, r5, #1
|
|
cmp r5, #0x10
|
|
blt _020068B8
|
|
ldr r0, _020068EC ; =0x04000508
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
strb r1, [r0, #1]
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020068E8: .word 0x04000501
|
|
_020068EC: .word 0x04000508
|
|
arm_func_end sub_0200689C
|
|
|
|
arm_func_start sub_020068F0
|
|
sub_020068F0: ; 0x020068F0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _02006934 ; =0x04000501
|
|
mov r0, #0x80
|
|
ldrb r1, [r2]
|
|
bic r1, r1, #0x80
|
|
strb r1, [r2]
|
|
bl sub_0200693C
|
|
mov r0, #0x40000
|
|
bl sub_02005F4C
|
|
mov r0, #1
|
|
bl sub_0200CF4C
|
|
ldr r1, _02006938 ; =0x04000304
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #1
|
|
strh r0, [r1]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02006934: .word 0x04000501
|
|
_02006938: .word 0x04000304
|
|
arm_func_end sub_020068F0
|
|
|
|
arm_func_start sub_0200693C
|
|
sub_0200693C: ; 0x0200693C
|
|
ldr ip, _02006944 ; =sub_038037E6
|
|
bx ip
|
|
.align 2, 0
|
|
_02006944: .word sub_038037E6
|
|
arm_func_end sub_0200693C
|
|
|
|
arm_func_start sub_02006948
|
|
sub_02006948: ; 0x02006948
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0200698C ; =0x04000304
|
|
mov r0, #1
|
|
ldrh r1, [r2]
|
|
orr r1, r1, #1
|
|
strh r1, [r2]
|
|
bl sub_0200CF28
|
|
mov r0, #0x100
|
|
bl sub_02006998
|
|
ldr r0, _02006990 ; =0x0007AB80
|
|
bl sub_02005F4C
|
|
ldr r1, _02006994 ; =0x04000501
|
|
ldrb r0, [r1]
|
|
orr r0, r0, #0x80
|
|
strb r0, [r1]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200698C: .word 0x04000304
|
|
_02006990: .word 0x0007AB80
|
|
_02006994: .word 0x04000501
|
|
arm_func_end sub_02006948
|
|
|
|
arm_func_start sub_02006998
|
|
sub_02006998: ; 0x02006998
|
|
ldr ip, _020069A0 ; =sub_038037DE
|
|
bx ip
|
|
.align 2, 0
|
|
_020069A0: .word sub_038037DE
|
|
arm_func_end sub_02006998
|
|
|
|
arm_func_start sub_020069A4
|
|
sub_020069A4: ; 0x020069A4
|
|
ldr r1, _020069B0 ; =0x04000500
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_020069B0: .word 0x04000500
|
|
arm_func_end sub_020069A4
|
|
|
|
arm_func_start sub_020069B4
|
|
sub_020069B4: ; 0x020069B4
|
|
ldr ip, _020069E8 ; =0x04000501
|
|
mov r3, r3, lsl #5
|
|
ldrb ip, [ip]
|
|
tst ip, #0x80
|
|
movne ip, #1
|
|
moveq ip, #0
|
|
orr r3, r3, ip, lsl #7
|
|
orr r2, r3, r2, lsl #4
|
|
orr r2, r2, r1, lsl #2
|
|
ldr r1, _020069E8 ; =0x04000501
|
|
orr r0, r0, r2
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_020069E8: .word 0x04000501
|
|
arm_func_end sub_020069B4
|
|
|
|
arm_func_start sub_020069EC
|
|
sub_020069EC: ; 0x020069EC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r4, _02006AA4 ; =0x03807558
|
|
mov r8, r1
|
|
ldr lr, [r4]
|
|
ldr r1, _02006AA8 ; =0x03807910
|
|
mov r7, r2
|
|
ldr r5, [sp, #0x2c]
|
|
ldr r4, _02006AAC ; =0x03807914
|
|
ldr ip, [sp, #0x20]
|
|
ldr r2, _02006AB0 ; =0x03807924
|
|
strb r5, [r4, r0]
|
|
cmp lr, #0
|
|
ldr r1, [r1]
|
|
movge r5, lr
|
|
mov r6, r3
|
|
mov r4, r0, lsl #4
|
|
strb ip, [r2, r0]
|
|
cmp r1, #0
|
|
ble _02006A58
|
|
ldr r1, _02006AB4 ; =0x0000FFF5
|
|
mov r2, #1
|
|
tst r1, r2, lsl r0
|
|
beq _02006A58
|
|
mov r0, ip
|
|
mov r1, r5
|
|
bl sub_02006E28
|
|
mov ip, r0
|
|
_02006A58:
|
|
ldr r2, [sp, #0x24]
|
|
mov r0, r6, lsl #0x1b
|
|
orr r0, r0, r7, lsl #29
|
|
orr r1, r0, r5, lsl #16
|
|
ldr r0, [sp, #0x28]
|
|
orr r2, r1, r2, lsl #8
|
|
add r1, r4, #0x4000000
|
|
orr r2, ip, r2
|
|
str r2, [r1, #0x400]
|
|
ldr r3, [sp, #0x18]
|
|
rsb r2, r0, #0x10000
|
|
add r0, r1, #0x400
|
|
strh r2, [r0, #8]
|
|
ldr r2, [sp, #0x1c]
|
|
strh r3, [r0, #0xa]
|
|
str r2, [r1, #0x40c]
|
|
str r8, [r1, #0x404]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02006AA4: .word 0x03807558
|
|
_02006AA8: .word 0x03807910
|
|
_02006AAC: .word 0x03807914
|
|
_02006AB0: .word 0x03807924
|
|
_02006AB4: .word 0x0000FFF5
|
|
arm_func_end sub_020069EC
|
|
|
|
arm_func_start sub_02006AB8
|
|
sub_02006AB8: ; 0x02006AB8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r4, _02006B50 ; =0x03807558
|
|
mov r7, r1
|
|
ldr ip, [r4]
|
|
ldr r1, _02006B54 ; =0x03807910
|
|
mov r6, r3
|
|
ldr r3, _02006B58 ; =0x03807924
|
|
ldr r5, [sp, #0x1c]
|
|
ldr r4, _02006B5C ; =0x03807914
|
|
ldr r1, [r1]
|
|
strb r5, [r4, r0]
|
|
cmp ip, #0
|
|
movge r5, ip
|
|
mov r4, r0, lsl #4
|
|
strb r2, [r3, r0]
|
|
cmp r1, #0
|
|
ble _02006B1C
|
|
ldr r1, _02006B60 ; =0x0000FFF5
|
|
mov r3, #1
|
|
tst r1, r3, lsl r0
|
|
beq _02006B1C
|
|
mov r0, r2
|
|
mov r1, r5
|
|
bl sub_02006E28
|
|
mov r2, r0
|
|
_02006B1C:
|
|
mov r0, r7, lsl #0x18
|
|
orr r0, r0, #0x60000000
|
|
orr r0, r0, r5, lsl #16
|
|
ldr r1, [sp, #0x18]
|
|
orr r3, r0, r6, lsl #8
|
|
add r0, r4, #0x4000000
|
|
orr r2, r2, r3
|
|
str r2, [r0, #0x400]
|
|
rsb r1, r1, #0x10000
|
|
add r0, r0, #0x400
|
|
strh r1, [r0, #8]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02006B50: .word 0x03807558
|
|
_02006B54: .word 0x03807910
|
|
_02006B58: .word 0x03807924
|
|
_02006B5C: .word 0x03807914
|
|
_02006B60: .word 0x0000FFF5
|
|
arm_func_end sub_02006AB8
|
|
|
|
arm_func_start sub_02006B64
|
|
sub_02006B64: ; 0x02006B64
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r4, _02006BF4 ; =0x03807558
|
|
mov r7, r2
|
|
ldr ip, [r4]
|
|
ldr r2, _02006BF8 ; =0x03807910
|
|
mov r6, r3
|
|
ldr r3, _02006BFC ; =0x03807924
|
|
ldr r5, [sp, #0x18]
|
|
ldr r4, _02006C00 ; =0x03807914
|
|
ldr r2, [r2]
|
|
strb r5, [r4, r0]
|
|
cmp ip, #0
|
|
movge r5, ip
|
|
mov r4, r0, lsl #4
|
|
strb r1, [r3, r0]
|
|
cmp r2, #0
|
|
ble _02006BC8
|
|
ldr r2, _02006C04 ; =0x0000FFF5
|
|
mov r3, #1
|
|
tst r2, r3, lsl r0
|
|
beq _02006BC8
|
|
mov r0, r1
|
|
mov r1, r5
|
|
bl sub_02006E28
|
|
mov r1, r0
|
|
_02006BC8:
|
|
mov r0, r5, lsl #0x10
|
|
orr r0, r0, #0x60000000
|
|
orr r2, r0, r7, lsl #8
|
|
add r0, r4, #0x4000000
|
|
orr r1, r1, r2
|
|
str r1, [r0, #0x400]
|
|
rsb r1, r6, #0x10000
|
|
add r0, r0, #0x400
|
|
strh r1, [r0, #8]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02006BF4: .word 0x03807558
|
|
_02006BF8: .word 0x03807910
|
|
_02006BFC: .word 0x03807924
|
|
_02006C00: .word 0x03807914
|
|
_02006C04: .word 0x0000FFF5
|
|
arm_func_end sub_02006B64
|
|
|
|
arm_func_start sub_02006C08
|
|
sub_02006C08: ; 0x02006C08
|
|
mov r3, r0, lsl #4
|
|
add r0, r3, #0x4000000
|
|
ldr r2, [r0, #0x400]
|
|
add r0, r3, #0x400
|
|
tst r1, #1
|
|
bic r1, r2, #0x80000000
|
|
add r0, r0, #0x4000000
|
|
orrne r1, r1, #0x8000
|
|
str r1, [r0]
|
|
bx lr
|
|
arm_func_end sub_02006C08
|
|
|
|
arm_func_start sub_02006C30
|
|
sub_02006C30: ; 0x02006C30
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r3, _02006C9C ; =0x03807910
|
|
ldr ip, _02006CA0 ; =0x03807924
|
|
ldr r3, [r3]
|
|
mov r5, r0
|
|
mov r4, r2
|
|
strb r1, [ip, r5]
|
|
cmp r3, #0
|
|
ble _02006C80
|
|
ldr r0, _02006CA4 ; =0x0000FFF5
|
|
mov r2, #1
|
|
tst r0, r2, lsl r5
|
|
beq _02006C80
|
|
mov r0, r5, lsl #4
|
|
add r0, r0, #0x4000000
|
|
ldrb r2, [r0, #0x402]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
bl sub_02006E28
|
|
mov r1, r0
|
|
_02006C80:
|
|
mov r0, r5, lsl #4
|
|
add r0, r0, #0x4000000
|
|
orr r1, r1, r4, lsl #8
|
|
add r0, r0, #0x400
|
|
strh r1, [r0]
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02006C9C: .word 0x03807910
|
|
_02006CA0: .word 0x03807924
|
|
_02006CA4: .word 0x0000FFF5
|
|
arm_func_end sub_02006C30
|
|
|
|
arm_func_start sub_02006CA8
|
|
sub_02006CA8: ; 0x02006CA8
|
|
mov r0, r0, lsl #4
|
|
add r0, r0, #0x4000000
|
|
rsb r1, r1, #0x10000
|
|
add r0, r0, #0x400
|
|
strh r1, [r0, #8]
|
|
bx lr
|
|
arm_func_end sub_02006CA8
|
|
|
|
arm_func_start sub_02006CC0
|
|
sub_02006CC0: ; 0x02006CC0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _02006D24 ; =0x03807558
|
|
ldr r3, _02006D28 ; =0x03807914
|
|
ldr r2, [r2]
|
|
strb r1, [r3, r0]
|
|
cmp r2, #0
|
|
ldr r3, _02006D2C ; =0x03807910
|
|
mov r4, r0, lsl #4
|
|
movge r1, r2
|
|
add r2, r4, #0x4000000
|
|
strb r1, [r2, #0x402]
|
|
ldr r2, [r3]
|
|
cmp r2, #0
|
|
ble _02006D1C
|
|
ldr r2, _02006D30 ; =0x0000FFF5
|
|
mov r3, #1
|
|
tst r2, r3, lsl r0
|
|
beq _02006D1C
|
|
ldr r2, _02006D34 ; =0x03807924
|
|
ldrb r0, [r2, r0]
|
|
bl sub_02006E28
|
|
add r1, r4, #0x4000000
|
|
strb r0, [r1, #0x400]
|
|
_02006D1C:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02006D24: .word 0x03807558
|
|
_02006D28: .word 0x03807914
|
|
_02006D2C: .word 0x03807910
|
|
_02006D30: .word 0x0000FFF5
|
|
_02006D34: .word 0x03807924
|
|
arm_func_end sub_02006CC0
|
|
|
|
arm_func_start sub_02006D38
|
|
sub_02006D38: ; 0x02006D38
|
|
mov r0, r0, lsl #4
|
|
add r0, r0, #0x4000000
|
|
ldrb r0, [r0, #0x403]
|
|
tst r0, #0x80
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bx lr
|
|
arm_func_end sub_02006D38
|
|
|
|
arm_func_start sub_02006D54
|
|
sub_02006D54: ; 0x02006D54
|
|
ldr r1, _02006DB0 ; =0x03807558
|
|
cmp r0, #0
|
|
str r0, [r1]
|
|
blt _02006D88
|
|
mov r2, #0
|
|
and r1, r0, #0xff
|
|
_02006D6C:
|
|
mov r0, r2, lsl #4
|
|
add r0, r0, #0x4000000
|
|
add r2, r2, #1
|
|
strb r1, [r0, #0x402]
|
|
cmp r2, #0x10
|
|
blt _02006D6C
|
|
bx lr
|
|
_02006D88:
|
|
ldr r2, _02006DB4 ; =0x03807914
|
|
mov r3, #0
|
|
_02006D90:
|
|
ldrb r1, [r2, r3]
|
|
mov r0, r3, lsl #4
|
|
add r0, r0, #0x4000000
|
|
add r3, r3, #1
|
|
strb r1, [r0, #0x402]
|
|
cmp r3, #0x10
|
|
blt _02006D90
|
|
bx lr
|
|
.align 2, 0
|
|
_02006DB0: .word 0x03807558
|
|
_02006DB4: .word 0x03807914
|
|
arm_func_end sub_02006D54
|
|
|
|
arm_func_start sub_02006DB8
|
|
sub_02006DB8: ; 0x02006DB8
|
|
mov r0, r0, lsl #4
|
|
add r0, r0, #0x4000000
|
|
ldr r0, [r0, #0x400]
|
|
bx lr
|
|
arm_func_end sub_02006DB8
|
|
|
|
arm_func_start sub_02006DC8
|
|
sub_02006DC8: ; 0x02006DC8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r1, _02006E1C ; =0x03807910
|
|
ldr r5, _02006E20 ; =0x03807924
|
|
ldr r4, _02006E24 ; =0x0000FFF5
|
|
str r0, [r1]
|
|
mov r7, #0
|
|
mov r6, #1
|
|
_02006DE4:
|
|
tst r4, r6, lsl r7
|
|
beq _02006E08
|
|
mov r8, r7, lsl #4
|
|
add r0, r8, #0x4000000
|
|
ldrb r1, [r0, #0x402]
|
|
ldrb r0, [r5, r7]
|
|
bl sub_02006E28
|
|
add r1, r8, #0x4000000
|
|
strb r0, [r1, #0x400]
|
|
_02006E08:
|
|
add r7, r7, #1
|
|
cmp r7, #0x10
|
|
blt _02006DE4
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02006E1C: .word 0x03807910
|
|
_02006E20: .word 0x03807924
|
|
_02006E24: .word 0x0000FFF5
|
|
arm_func_end sub_02006DC8
|
|
|
|
arm_func_start sub_02006E28
|
|
sub_02006E28: ; 0x02006E28
|
|
cmp r1, #0x18
|
|
bge _02006E58
|
|
ldr r2, _02006E8C ; =0x03807910
|
|
add r3, r1, #0x28
|
|
ldr ip, [r2]
|
|
ldr r1, _02006E90 ; =0x00007FFF
|
|
mul r2, ip, r3
|
|
sub r1, r1, ip
|
|
add r1, r2, r1, lsl #6
|
|
mul r1, r0, r1
|
|
mov r0, r1, asr #0x15
|
|
bx lr
|
|
_02006E58:
|
|
cmp r1, #0x68
|
|
bxle lr
|
|
ldr r2, _02006E8C ; =0x03807910
|
|
sub r1, r1, #0x28
|
|
ldr ip, [r2]
|
|
rsb r2, ip, #0
|
|
mul r3, r2, r1
|
|
add r1, ip, #0xff
|
|
add r1, r1, #0x7f00
|
|
add r1, r3, r1, lsl #6
|
|
mul r1, r0, r1
|
|
mov r0, r1, asr #0x15
|
|
bx lr
|
|
.align 2, 0
|
|
_02006E8C: .word 0x03807910
|
|
_02006E90: .word 0x00007FFF
|
|
arm_func_end sub_02006E28
|
|
|
|
arm_func_start sub_02006E94
|
|
sub_02006E94: ; 0x02006E94
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r0
|
|
rsb r0, r1, #0
|
|
mov r4, #0
|
|
b _02006EB0
|
|
_02006EA8:
|
|
sub r4, r4, #1
|
|
add r0, r0, #0x300
|
|
_02006EB0:
|
|
cmp r0, #0
|
|
blt _02006EA8
|
|
b _02006EC4
|
|
_02006EBC:
|
|
add r4, r4, #1
|
|
sub r0, r0, #0x300
|
|
_02006EC4:
|
|
cmp r0, #0x300
|
|
bge _02006EBC
|
|
bl sub_02006FB4
|
|
adds r3, r0, #0x10000
|
|
mov r0, r5, asr #0x1f
|
|
umull r2, r1, r3, r5
|
|
mov ip, #0
|
|
mla r1, r3, r0, r1
|
|
adc r3, ip, #0
|
|
sub r0, r4, #0x10
|
|
mla r1, r3, r5, r1
|
|
cmp r0, #0
|
|
mov r4, #0x10000
|
|
bgt _02006F1C
|
|
rsb r3, r0, #0
|
|
mov r4, r2, lsr r3
|
|
rsb r0, r3, #0x20
|
|
orr r4, r4, r1, lsl r0
|
|
sub r0, r3, #0x20
|
|
mov r3, r1, lsr r3
|
|
orr r4, r4, r1, lsr r0
|
|
b _02006F78
|
|
_02006F1C:
|
|
cmp r0, #0x20
|
|
bge _02006F70
|
|
rsb r5, r0, #0x20
|
|
sub lr, ip, #1
|
|
mov r6, lr, lsl r5
|
|
rsb r3, r5, #0x20
|
|
orr r6, r6, lr, lsr r3
|
|
sub r3, r5, #0x20
|
|
orr r6, r6, lr, lsl r3
|
|
and r3, r1, r6
|
|
and r6, r2, lr, lsl r5
|
|
cmp r3, ip
|
|
cmpeq r6, ip
|
|
subne r0, r4, #1
|
|
bne _02006FA8
|
|
mov r3, r1, lsl r0
|
|
orr r3, r3, r2, lsr r5
|
|
sub r1, r0, #0x20
|
|
mov r4, r2, lsl r0
|
|
orr r3, r3, r2, lsl r1
|
|
b _02006F78
|
|
_02006F70:
|
|
sub r0, r4, #1
|
|
b _02006FA8
|
|
_02006F78:
|
|
mov r0, #0x10
|
|
cmp r3, #0
|
|
cmpeq r4, #0x10
|
|
mov r1, #0
|
|
movlo r4, r0
|
|
blo _02006FA0
|
|
ldr r0, _02006FB0 ; =0x0000FFFF
|
|
cmp r3, r1
|
|
cmpeq r4, r0
|
|
movhi r4, r0
|
|
_02006FA0:
|
|
mov r0, r4, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
_02006FA8:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02006FB0: .word 0x0000FFFF
|
|
arm_func_end sub_02006E94
|
|
|
|
arm_func_start sub_02006FB4
|
|
sub_02006FB4: ; 0x02006FB4
|
|
ldr ip, _02006FBC ; =sub_03803828
|
|
bx ip
|
|
.align 2, 0
|
|
_02006FBC: .word sub_03803828
|
|
arm_func_end sub_02006FB4
|
|
|
|
arm_func_start sub_02006FC0
|
|
sub_02006FC0: ; 0x02006FC0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02007030 ; =0xFFFFFD2D
|
|
mov r4, r0
|
|
cmp r4, r1
|
|
movlt r4, r1
|
|
blt _02006FE0
|
|
cmp r4, #0
|
|
movgt r4, #0
|
|
_02006FE0:
|
|
add r0, r4, #0xd3
|
|
add r0, r0, #0x200
|
|
bl sub_02007034
|
|
mvn r2, #0xef
|
|
cmp r4, r2
|
|
movlt r1, #3
|
|
blt _0200701C
|
|
add r1, r2, #0x78
|
|
cmp r4, r1
|
|
movlt r1, #2
|
|
blt _0200701C
|
|
add r1, r2, #0xb4
|
|
cmp r4, r1
|
|
movlt r1, #1
|
|
movge r1, #0
|
|
_0200701C:
|
|
orr r0, r0, r1, lsl #8
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02007030: .word 0xFFFFFD2D
|
|
arm_func_end sub_02006FC0
|
|
|
|
arm_func_start sub_02007034
|
|
sub_02007034: ; 0x02007034
|
|
ldr ip, _0200703C ; =sub_0380382C
|
|
bx ip
|
|
.align 2, 0
|
|
_0200703C: .word sub_0380382C
|
|
arm_func_end sub_02007034
|
|
|
|
arm_func_start sub_02007040
|
|
sub_02007040: ; 0x02007040
|
|
cmp r0, #0x20
|
|
ldrlt r1, _020070A8 ; =0x03806FB8
|
|
ldrltsb r0, [r1, r0]
|
|
bxlt lr
|
|
cmp r0, #0x40
|
|
ldrlt r1, _020070A8 ; =0x03806FB8
|
|
rsblt r0, r0, #0x40
|
|
ldrltsb r0, [r1, r0]
|
|
bxlt lr
|
|
cmp r0, #0x60
|
|
bge _02007088
|
|
ldr r1, _020070A8 ; =0x03806FB8
|
|
sub r0, r0, #0x40
|
|
ldrsb r0, [r1, r0]
|
|
rsb r0, r0, #0
|
|
mov r0, r0, lsl #0x18
|
|
mov r0, r0, asr #0x18
|
|
bx lr
|
|
_02007088:
|
|
ldr r1, _020070A8 ; =0x03806FB8
|
|
sub r0, r0, #0x60
|
|
rsb r0, r0, #0x20
|
|
ldrsb r0, [r1, r0]
|
|
rsb r0, r0, #0
|
|
mov r0, r0, lsl #0x18
|
|
mov r0, r0, asr #0x18
|
|
bx lr
|
|
.align 2, 0
|
|
_020070A8: .word 0x03806FB8
|
|
arm_func_end sub_02007040
|
|
|
|
arm_func_start sub_020070AC
|
|
sub_020070AC: ; 0x020070AC
|
|
ldr r2, _020070D4 ; =0x0380755C
|
|
ldr r0, _020070D8 ; =0x0019660D
|
|
ldr r3, [r2]
|
|
ldr r1, _020070DC ; =0x3C6EF35F
|
|
mla r1, r3, r0, r1
|
|
mov r0, r1, lsr #0x10
|
|
mov r0, r0, lsl #0x10
|
|
str r1, [r2]
|
|
mov r0, r0, lsr #0x10
|
|
bx lr
|
|
.align 2, 0
|
|
_020070D4: .word 0x0380755C
|
|
_020070D8: .word 0x0019660D
|
|
_020070DC: .word 0x3C6EF35F
|
|
arm_func_end sub_020070AC
|
|
|
|
arm_func_start sub_020070E0
|
|
sub_020070E0: ; 0x020070E0
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _0200713C ; =0x03807934
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
cmp r0, #0
|
|
bne _02007130
|
|
mov r0, #1
|
|
str r0, [r1]
|
|
bl sub_0200A0C0
|
|
mov r0, #0x400
|
|
str r0, [sp]
|
|
ldr r0, _02007140 ; =0x038079A4
|
|
ldr r1, _02007144 ; =0x037FF008
|
|
ldr r3, _02007148 ; =0x03807E48
|
|
mov r2, #0
|
|
str r4, [sp, #4]
|
|
bl sub_0200423C
|
|
ldr r0, _02007140 ; =0x038079A4
|
|
bl sub_02004554
|
|
_02007130:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200713C: .word 0x03807934
|
|
_02007140: .word 0x038079A4
|
|
_02007144: .word 0x037FF008
|
|
_02007148: .word 0x03807E48
|
|
arm_func_end sub_020070E0
|
|
|
|
arm_func_start sub_0200714C
|
|
sub_0200714C: ; 0x0200714C
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0xc
|
|
bl sub_02005404
|
|
ldr r3, _02007190 ; =0x037FEFEC
|
|
adds ip, r0, #0x10000
|
|
str r3, [sp, #4]
|
|
mov lr, #0
|
|
str lr, [sp, #8]
|
|
adc r2, r1, #0
|
|
ldr r3, _02007194 ; =0x00000AA8
|
|
ldr r0, _02007198 ; =0x03807978
|
|
mov r1, ip
|
|
str lr, [sp]
|
|
bl sub_02005734
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02007190: .word 0x037FEFEC
|
|
_02007194: .word 0x00000AA8
|
|
_02007198: .word 0x03807978
|
|
arm_func_end sub_0200714C
|
|
|
|
arm_func_start sub_0200719C
|
|
sub_0200719C: ; 0x0200719C
|
|
ldr ip, _020071A8 ; =sub_037FD5C0
|
|
ldr r0, _020071AC ; =0x03807978
|
|
bx ip
|
|
.align 2, 0
|
|
_020071A8: .word sub_037FD5C0
|
|
_020071AC: .word 0x03807978
|
|
arm_func_end sub_0200719C
|
|
|
|
arm_func_start sub_020071B0
|
|
sub_020071B0: ; 0x020071B0
|
|
ldr ip, _020071C4 ; =sub_037FC6D4
|
|
ldr r0, _020071C8 ; =0x03807958
|
|
mov r1, #2
|
|
mov r2, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_020071C4: .word sub_037FC6D4
|
|
_020071C8: .word 0x03807958
|
|
arm_func_end sub_020071B0
|
|
|
|
arm_func_start sub_020071CC
|
|
sub_020071CC: ; 0x020071CC
|
|
bx lr
|
|
arm_func_end sub_020071CC
|
|
|
|
arm_func_start sub_020071D0
|
|
sub_020071D0: ; 0x020071D0
|
|
bx lr
|
|
arm_func_end sub_020071D0
|
|
|
|
arm_func_start sub_020071D4
|
|
sub_020071D4: ; 0x020071D4
|
|
ldr ip, _020071E8 ; =sub_037FC6D4
|
|
ldr r0, _020071EC ; =0x03807958
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_020071E8: .word sub_037FC6D4
|
|
_020071EC: .word 0x03807958
|
|
arm_func_end sub_020071D4
|
|
|
|
arm_func_start sub_020071F0
|
|
sub_020071F0: ; 0x020071F0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
sub sp, sp, #0x10
|
|
ldr r0, _020072D0 ; =0x03807958
|
|
ldr r1, _020072D4 ; =0x03807938
|
|
mov r2, #8
|
|
bl sub_02004894
|
|
ldr r0, _020072D8 ; =0x03807978
|
|
bl sub_02005588
|
|
bl sub_0200734C
|
|
bl sub_020080D8
|
|
bl sub_02009F0C
|
|
bl sub_02006884
|
|
mov r0, #0
|
|
mov r1, r0
|
|
mov r2, r0
|
|
mov r3, r0
|
|
bl sub_020069B4
|
|
mov r0, #0x7f
|
|
bl sub_020069A4
|
|
bl sub_02005404
|
|
ldr r2, _020072DC ; =0x037FEFEC
|
|
adds r4, r0, #0x10000
|
|
str r2, [sp, #4]
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
str r0, [sp]
|
|
adc r2, r1, #0
|
|
ldr r3, _020072E0 ; =0x00000AA8
|
|
ldr r0, _020072D8 ; =0x03807978
|
|
mov r1, r4
|
|
bl sub_02005734
|
|
ldr r7, _020072D0 ; =0x03807958
|
|
mov r4, #1
|
|
add r6, sp, #0xc
|
|
mov r8, #0
|
|
mov r5, r4
|
|
_02007280:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
mov sb, r8
|
|
bl sub_02004948
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #1
|
|
beq _020072A8
|
|
cmp r0, #2
|
|
b _020072AC
|
|
_020072A8:
|
|
mov sb, r4
|
|
_020072AC:
|
|
bl sub_020073A8
|
|
bl sub_0200A104
|
|
mov r0, sb
|
|
bl sub_0200813C
|
|
mov r0, sb
|
|
bl sub_02007594
|
|
bl sub_02009E74
|
|
bl sub_020070AC
|
|
b _02007280
|
|
.align 2, 0
|
|
_020072D0: .word 0x03807958
|
|
_020072D4: .word 0x03807938
|
|
_020072D8: .word 0x03807978
|
|
_020072DC: .word 0x037FEFEC
|
|
_020072E0: .word 0x00000AA8
|
|
arm_func_end sub_020071F0
|
|
|
|
arm_func_start sub_020072E4
|
|
sub_020072E4: ; 0x020072E4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r4, [sp, #0x10]
|
|
mov r5, r0, lsl #3
|
|
cmp r4, #0
|
|
movne r4, #0
|
|
moveq r4, #1
|
|
mov ip, r4, lsl #2
|
|
ldr lr, [sp, #0x14]
|
|
orr r1, ip, r1, lsl #3
|
|
orr ip, r1, lr, lsl #1
|
|
ldr r4, [sp, #0x18]
|
|
add r0, r0, #0x4000000
|
|
orr r4, r4, ip
|
|
strb r4, [r0, #0x508]
|
|
add r1, r5, #0x4000000
|
|
str r2, [r1, #0x510]
|
|
add r0, r1, #0x500
|
|
strh r3, [r0, #0x14]
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_020072E4
|
|
|
|
arm_func_start sub_02007334
|
|
sub_02007334: ; 0x02007334
|
|
add r0, r0, #0x4000000
|
|
ldrb r0, [r0, #0x508]
|
|
tst r0, #0x80
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
bx lr
|
|
arm_func_end sub_02007334
|
|
|
|
arm_func_start sub_0200734C
|
|
sub_0200734C: ; 0x0200734C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, _020073A0 ; =0x03807E70
|
|
mov lr, #0
|
|
mov r0, #0x54
|
|
_0200735C:
|
|
mul r1, lr, r0
|
|
add ip, r3, r1
|
|
strb lr, [r3, r1]
|
|
ldrb r1, [ip, #3]
|
|
add lr, lr, #1
|
|
bic r2, r1, #0xf8
|
|
and r1, r2, #0xff
|
|
bic r1, r1, #1
|
|
strb r1, [ip, #3]
|
|
cmp lr, #0x10
|
|
blt _0200735C
|
|
ldr r0, _020073A4 ; =0x03807E48
|
|
mov r1, #0
|
|
str r1, [r0, #4]
|
|
str r1, [r0]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020073A0: .word 0x03807E70
|
|
_020073A4: .word 0x03807E48
|
|
arm_func_end sub_0200734C
|
|
|
|
arm_func_start sub_020073A8
|
|
sub_020073A8: ; 0x020073A8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
sub sp, sp, #0x18
|
|
ldr r7, _02007590 ; =0x03807E70
|
|
mov sb, #0
|
|
mov r4, #2
|
|
mov r5, #1
|
|
mov r6, sb
|
|
mov sl, #0x54
|
|
_020073C8:
|
|
mla r8, sb, sl, r7
|
|
ldrb r0, [r8, #3]
|
|
mov r0, r0, lsl #0x18
|
|
movs r0, r0, lsr #0x1b
|
|
beq _02007528
|
|
tst r0, #2
|
|
beq _020073F0
|
|
mov r0, sb
|
|
mov r1, r6
|
|
bl sub_02006C08
|
|
_020073F0:
|
|
ldrb r0, [r8, #3]
|
|
mov r0, r0, lsl #0x18
|
|
mov r0, r0, lsr #0x1b
|
|
tst r0, #1
|
|
beq _020074CC
|
|
ldrb r0, [r8, #1]
|
|
cmp r0, #0
|
|
beq _02007424
|
|
cmp r0, #1
|
|
beq _0200747C
|
|
cmp r0, #2
|
|
beq _020074A8
|
|
b _02007528
|
|
_02007424:
|
|
ldrb r0, [r8, #0x39]
|
|
ldrh ip, [r8, #0x24]
|
|
cmp r0, #0
|
|
ldrh r0, [r8, #0x3e]
|
|
movne r3, r5
|
|
str r0, [sp]
|
|
ldr r2, [r8, #0x40]
|
|
and r1, ip, #0xff
|
|
str r2, [sp, #4]
|
|
str r1, [sp, #8]
|
|
mov r0, ip, asr #8
|
|
str r0, [sp, #0xc]
|
|
ldrh r1, [r8, #0x26]
|
|
moveq r3, r4
|
|
str r1, [sp, #0x10]
|
|
ldrb r1, [r8, #0x23]
|
|
mov r0, sb
|
|
str r1, [sp, #0x14]
|
|
ldr r1, [r8, #0x44]
|
|
ldrb r2, [r8, #0x38]
|
|
bl sub_020069EC
|
|
b _02007528
|
|
_0200747C:
|
|
ldrh r3, [r8, #0x24]
|
|
ldrh r1, [r8, #0x26]
|
|
mov r0, sb
|
|
str r1, [sp]
|
|
ldrb r1, [r8, #0x23]
|
|
and r2, r3, #0xff
|
|
str r1, [sp, #4]
|
|
ldr r1, [r8, #0x44]
|
|
mov r3, r3, asr #8
|
|
bl sub_02006AB8
|
|
b _02007528
|
|
_020074A8:
|
|
ldrh r2, [r8, #0x24]
|
|
ldrb r1, [r8, #0x23]
|
|
mov r0, sb
|
|
str r1, [sp]
|
|
ldrh r3, [r8, #0x26]
|
|
and r1, r2, #0xff
|
|
mov r2, r2, asr #8
|
|
bl sub_02006B64
|
|
b _02007528
|
|
_020074CC:
|
|
tst r0, #4
|
|
beq _020074E0
|
|
ldrh r1, [r8, #0x26]
|
|
mov r0, sb
|
|
bl sub_02006CA8
|
|
_020074E0:
|
|
ldrb r0, [r8, #3]
|
|
mov r0, r0, lsl #0x18
|
|
mov r0, r0, lsr #0x1b
|
|
tst r0, #8
|
|
beq _02007508
|
|
ldrh r2, [r8, #0x24]
|
|
mov r0, sb
|
|
and r1, r2, #0xff
|
|
mov r2, r2, asr #8
|
|
bl sub_02006C30
|
|
_02007508:
|
|
ldrb r0, [r8, #3]
|
|
mov r0, r0, lsl #0x18
|
|
mov r0, r0, lsr #0x1b
|
|
tst r0, #0x10
|
|
beq _02007528
|
|
ldrb r1, [r8, #0x23]
|
|
mov r0, sb
|
|
bl sub_02006CC0
|
|
_02007528:
|
|
add sb, sb, #1
|
|
cmp sb, #0x10
|
|
blt _020073C8
|
|
ldr r3, _02007590 ; =0x03807E70
|
|
mov r4, #0
|
|
mov r1, #0x54
|
|
_02007540:
|
|
mla r5, r4, r1, r3
|
|
ldrb r0, [r5, #3]
|
|
mov r0, r0, lsl #0x18
|
|
movs r0, r0, lsr #0x1b
|
|
beq _02007578
|
|
tst r0, #1
|
|
movne r0, r4, lsl #4
|
|
addne r0, r0, #0x4000000
|
|
ldrneb r2, [r0, #0x403]
|
|
orrne r2, r2, #0x80
|
|
strneb r2, [r0, #0x403]
|
|
ldrb r0, [r5, #3]
|
|
bic r0, r0, #0xf8
|
|
strb r0, [r5, #3]
|
|
_02007578:
|
|
add r4, r4, #1
|
|
cmp r4, #0x10
|
|
blt _02007540
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02007590: .word 0x03807E70
|
|
arm_func_end sub_020073A8
|
|
|
|
arm_func_start sub_02007594
|
|
sub_02007594: ; 0x02007594
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov fp, #0x8000
|
|
mov sl, r0
|
|
mov r5, #0
|
|
rsb fp, fp, #0
|
|
_020075A8:
|
|
ldr r0, _02007938 ; =0x03807E70
|
|
mov r1, #0x54
|
|
mla r4, r5, r1, r0
|
|
ldrb r2, [r4, #3]
|
|
mov r6, #0
|
|
mov r0, r2, lsl #0x1f
|
|
mov r7, r6
|
|
mov r8, r6
|
|
movs r0, r0, lsr #0x1f
|
|
beq _02007924
|
|
mov r0, r2, lsl #0x1e
|
|
movs r0, r0, lsr #0x1f
|
|
beq _0200760C
|
|
bic r1, r2, #0xf8
|
|
mov r0, r2, lsl #0x18
|
|
mov r0, r0, lsr #0x1b
|
|
orr r0, r0, #1
|
|
and r0, r0, #0xff
|
|
mov r0, r0, lsl #0x1b
|
|
orr r0, r1, r0, lsr #24
|
|
strb r0, [r4, #3]
|
|
and r0, r0, #0xff
|
|
bic r0, r0, #2
|
|
strb r0, [r4, #3]
|
|
b _0200765C
|
|
_0200760C:
|
|
mov r0, r5
|
|
bl sub_02006D38
|
|
cmp r0, #0
|
|
bne _0200765C
|
|
ldr r3, [r4, #0x48]
|
|
cmp r3, #0
|
|
moveq r0, r6
|
|
streqb r0, [r4, #0x22]
|
|
beq _02007644
|
|
ldr r2, [r4, #0x4c]
|
|
mov r0, r4
|
|
mov r1, #1
|
|
mov lr, pc
|
|
bx r3
|
|
_02007644:
|
|
mov r0, #0
|
|
strh r0, [r4, #0x24]
|
|
ldrb r0, [r4, #3]
|
|
bic r0, r0, #1
|
|
strb r0, [r4, #3]
|
|
b _02007924
|
|
_0200765C:
|
|
ldrb r0, [r4, #9]
|
|
ldrb r1, [r4, #8]
|
|
mov r2, r0, lsl #1
|
|
ldr r0, _0200793C ; =0x03806FDC
|
|
ldrsh r2, [r0, r2]
|
|
ldrb r0, [r4, #5]
|
|
add r6, r6, r2
|
|
sub r0, r1, r0
|
|
add r7, r7, r0, lsl #6
|
|
mov r0, r4
|
|
mov r1, sl
|
|
bl sub_02007A14
|
|
ldrsh r3, [r4, #0x32]
|
|
add r6, r6, r0
|
|
cmp r3, #0
|
|
moveq r0, #0
|
|
beq _020076E4
|
|
ldr r0, [r4, #0x14]
|
|
ldr r2, [r4, #0x18]
|
|
cmp r0, r2
|
|
movge r0, #0
|
|
bge _020076E4
|
|
sub r0, r2, r0
|
|
smull r0, r1, r3, r0
|
|
mov r3, r2, asr #0x1f
|
|
bl sub_0200EBB8
|
|
cmp sl, #0
|
|
beq _020076E4
|
|
ldrb r1, [r4, #3]
|
|
mov r1, r1, lsl #0x1d
|
|
movs r1, r1, lsr #0x1f
|
|
ldrne r1, [r4, #0x14]
|
|
addne r1, r1, #1
|
|
strne r1, [r4, #0x14]
|
|
_020076E4:
|
|
ldrsh r1, [r4, #0xc]
|
|
add r2, r7, r0
|
|
ldrsh r0, [r4, #6]
|
|
add r1, r6, r1
|
|
add r6, r1, r0
|
|
ldrsh r1, [r4, #0xe]
|
|
add r0, r4, #0x28
|
|
add r7, r2, r1
|
|
bl sub_02007FFC
|
|
mov r1, r0, asr #0x1f
|
|
cmp r1, #0
|
|
mov sb, r0
|
|
cmpeq r0, #0
|
|
beq _02007778
|
|
ldrb r2, [r4, #0x28]
|
|
cmp r2, #0
|
|
beq _02007764
|
|
cmp r2, #1
|
|
beq _02007744
|
|
cmp r2, #2
|
|
moveq r1, r1, lsl #6
|
|
orreq r1, r1, r0, lsr #26
|
|
moveq sb, r0, lsl #6
|
|
b _02007770
|
|
_02007744:
|
|
mov r2, #0x3c
|
|
umull sb, r3, r0, r2
|
|
mov r2, #0
|
|
mla r3, r0, r2, r3
|
|
mov r0, #0x3c
|
|
mla r3, r1, r0, r3
|
|
mov r1, r3
|
|
b _02007770
|
|
_02007764:
|
|
mov r1, r1, lsl #6
|
|
orr r1, r1, r0, lsr #26
|
|
mov sb, r0, lsl #6
|
|
_02007770:
|
|
mov sb, sb, lsr #0xe
|
|
orr sb, sb, r1, lsl #18
|
|
_02007778:
|
|
cmp sl, #0
|
|
beq _02007788
|
|
add r0, r4, #0x28
|
|
bl sub_02007F9C
|
|
_02007788:
|
|
ldrb r0, [r4, #0x28]
|
|
cmp r0, #0
|
|
beq _020077B4
|
|
cmp r0, #1
|
|
beq _020077A8
|
|
cmp r0, #2
|
|
addeq r8, r8, sb
|
|
b _020077B8
|
|
_020077A8:
|
|
cmp r6, fp
|
|
addgt r6, r6, sb
|
|
b _020077B8
|
|
_020077B4:
|
|
add r7, r7, sb
|
|
_020077B8:
|
|
ldrsb r1, [r4, #0xa]
|
|
ldrb r0, [r4, #4]
|
|
add r8, r8, r1
|
|
cmp r0, #0x7f
|
|
mulne r0, r8, r0
|
|
addne r0, r0, #0x40
|
|
movne r8, r0, asr #7
|
|
ldrsb r1, [r4, #0xb]
|
|
ldrb r0, [r4, #2]
|
|
add r8, r8, r1
|
|
cmp r0, #3
|
|
bne _02007844
|
|
ldr r0, _02007940 ; =0xFFFFFD2D
|
|
cmp r6, r0
|
|
bgt _02007844
|
|
ldrb r0, [r4, #3]
|
|
bic r0, r0, #0xf8
|
|
orr r0, r0, #0x10
|
|
strb r0, [r4, #3]
|
|
ldr r3, [r4, #0x48]
|
|
cmp r3, #0
|
|
moveq r0, #0
|
|
streqb r0, [r4, #0x22]
|
|
beq _0200782C
|
|
ldr r2, [r4, #0x4c]
|
|
mov r0, r4
|
|
mov r1, #1
|
|
mov lr, pc
|
|
bx r3
|
|
_0200782C:
|
|
mov r0, #0
|
|
strh r0, [r4, #0x24]
|
|
ldrb r0, [r4, #3]
|
|
bic r0, r0, #1
|
|
strb r0, [r4, #3]
|
|
b _02007924
|
|
_02007844:
|
|
mov r0, r6
|
|
bl sub_02006FC0
|
|
mov r6, r0
|
|
ldrh r0, [r4, #0x3c]
|
|
mov r1, r7
|
|
bl sub_02006E94
|
|
ldrb r1, [r4, #1]
|
|
cmp r1, #1
|
|
ldreq r1, _02007944 ; =0x0000FFFC
|
|
andeq r0, r0, r1
|
|
moveq r0, r0, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
adds r8, r8, #0x40
|
|
movmi r8, #0
|
|
bmi _02007888
|
|
cmp r8, #0x7f
|
|
movgt r8, #0x7f
|
|
_02007888:
|
|
ldrh r1, [r4, #0x24]
|
|
cmp r6, r1
|
|
beq _020078BC
|
|
strh r6, [r4, #0x24]
|
|
ldrb r1, [r4, #3]
|
|
bic r2, r1, #0xf8
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, lsr #0x1b
|
|
orr r1, r1, #8
|
|
and r1, r1, #0xff
|
|
mov r1, r1, lsl #0x1b
|
|
orr r1, r2, r1, lsr #24
|
|
strb r1, [r4, #3]
|
|
_020078BC:
|
|
ldrh r1, [r4, #0x26]
|
|
cmp r0, r1
|
|
beq _020078F0
|
|
strh r0, [r4, #0x26]
|
|
ldrb r0, [r4, #3]
|
|
bic r1, r0, #0xf8
|
|
mov r0, r0, lsl #0x18
|
|
mov r0, r0, lsr #0x1b
|
|
orr r0, r0, #4
|
|
and r0, r0, #0xff
|
|
mov r0, r0, lsl #0x1b
|
|
orr r0, r1, r0, lsr #24
|
|
strb r0, [r4, #3]
|
|
_020078F0:
|
|
ldrb r0, [r4, #0x23]
|
|
cmp r8, r0
|
|
beq _02007924
|
|
strb r8, [r4, #0x23]
|
|
ldrb r0, [r4, #3]
|
|
bic r1, r0, #0xf8
|
|
mov r0, r0, lsl #0x18
|
|
mov r0, r0, lsr #0x1b
|
|
orr r0, r0, #0x10
|
|
and r0, r0, #0xff
|
|
mov r0, r0, lsl #0x1b
|
|
orr r0, r1, r0, lsr #24
|
|
strb r0, [r4, #3]
|
|
_02007924:
|
|
add r5, r5, #1
|
|
cmp r5, #0x10
|
|
blt _020075A8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02007938: .word 0x03807E70
|
|
_0200793C: .word 0x03806FDC
|
|
_02007940: .word 0xFFFFFD2D
|
|
_02007944: .word 0x0000FFFC
|
|
arm_func_end sub_02007594
|
|
|
|
arm_func_start sub_02007948
|
|
sub_02007948: ; 0x02007948
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0
|
|
strb r0, [r4, #1]
|
|
mov lr, r2
|
|
add ip, r4, #0x38
|
|
ldmia r1, {r0, r1, r2}
|
|
stmia ip, {r0, r1, r2}
|
|
mov r0, r4
|
|
mov r1, r3
|
|
str lr, [r4, #0x44]
|
|
bl sub_020080A0
|
|
mov r0, #1
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02007948
|
|
|
|
arm_func_start sub_02007984
|
|
sub_02007984: ; 0x02007984
|
|
stmdb sp!, {r3, lr}
|
|
ldrb r3, [r0]
|
|
cmp r3, #8
|
|
movlo r0, #0
|
|
blo _020079C4
|
|
cmp r3, #0xd
|
|
movhi r0, #0
|
|
bhi _020079C4
|
|
mov r3, #1
|
|
strb r3, [r0, #1]
|
|
str r1, [r0, #0x44]
|
|
ldr r3, _020079CC ; =0x00001F46
|
|
mov r1, r2
|
|
strh r3, [r0, #0x3c]
|
|
bl sub_020080A0
|
|
mov r0, #1
|
|
_020079C4:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020079CC: .word 0x00001F46
|
|
arm_func_end sub_02007984
|
|
|
|
arm_func_start sub_020079D0
|
|
sub_020079D0: ; 0x020079D0
|
|
stmdb sp!, {r3, lr}
|
|
ldrb r2, [r0]
|
|
cmp r2, #0xe
|
|
movlo r0, #0
|
|
blo _02007A08
|
|
cmp r2, #0xf
|
|
movhi r0, #0
|
|
bhi _02007A08
|
|
ldr r2, _02007A10 ; =0x00001F46
|
|
mov r3, #2
|
|
strb r3, [r0, #1]
|
|
strh r2, [r0, #0x3c]
|
|
bl sub_020080A0
|
|
mov r0, #1
|
|
_02007A08:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02007A10: .word 0x00001F46
|
|
arm_func_end sub_020079D0
|
|
|
|
arm_func_start sub_02007A14
|
|
sub_02007A14: ; 0x02007A14
|
|
cmp r1, #0
|
|
beq _02007AAC
|
|
ldrb r1, [r0, #2]
|
|
cmp r1, #3
|
|
addls pc, pc, r1, lsl #2
|
|
b _02007AAC
|
|
_02007A2C: ; jump table
|
|
b _02007A3C ; case 0
|
|
b _02007A64 ; case 1
|
|
b _02007AAC ; case 2
|
|
b _02007A9C ; case 3
|
|
_02007A3C:
|
|
ldr r2, [r0, #0x10]
|
|
ldrb r1, [r0, #0x1c]
|
|
rsb r2, r2, #0
|
|
mul r1, r2, r1
|
|
mov r1, r1, asr #8
|
|
rsbs r1, r1, #0
|
|
str r1, [r0, #0x10]
|
|
moveq r1, #1
|
|
streqb r1, [r0, #2]
|
|
b _02007AAC
|
|
_02007A64:
|
|
ldrb r2, [r0, #0x1d]
|
|
ldr r1, _02007AB8 ; =0x03806FDC
|
|
mov r2, r2, lsl #1
|
|
ldrsh r3, [r1, r2]
|
|
ldr r2, [r0, #0x10]
|
|
ldrh r1, [r0, #0x1e]
|
|
mov ip, r3, lsl #7
|
|
sub r1, r2, r1
|
|
str r1, [r0, #0x10]
|
|
cmp r1, r3, lsl #7
|
|
strle ip, [r0, #0x10]
|
|
movle r1, #2
|
|
strleb r1, [r0, #2]
|
|
b _02007AAC
|
|
_02007A9C:
|
|
ldr r2, [r0, #0x10]
|
|
ldrh r1, [r0, #0x20]
|
|
sub r1, r2, r1
|
|
str r1, [r0, #0x10]
|
|
_02007AAC:
|
|
ldr r0, [r0, #0x10]
|
|
mov r0, r0, asr #7
|
|
bx lr
|
|
.align 2, 0
|
|
_02007AB8: .word 0x03806FDC
|
|
arm_func_end sub_02007A14
|
|
|
|
arm_func_start sub_02007ABC
|
|
sub_02007ABC: ; 0x02007ABC
|
|
cmp r1, #0x6d
|
|
ldrge r2, _02007AD8 ; =0x038071F0
|
|
rsblt r1, r1, #0xff
|
|
rsbge r1, r1, #0x7f
|
|
ldrgeb r1, [r2, r1]
|
|
strb r1, [r0, #0x1c]
|
|
bx lr
|
|
.align 2, 0
|
|
_02007AD8: .word 0x038071F0
|
|
arm_func_end sub_02007ABC
|
|
|
|
arm_func_start sub_02007ADC
|
|
sub_02007ADC: ; 0x02007ADC
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, r1
|
|
bl sub_0200804C
|
|
strh r0, [r4, #0x1e]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02007ADC
|
|
|
|
arm_func_start sub_02007AF8
|
|
sub_02007AF8: ; 0x02007AF8
|
|
strb r1, [r0, #0x1d]
|
|
bx lr
|
|
arm_func_end sub_02007AF8
|
|
|
|
arm_func_start sub_02007B00
|
|
sub_02007B00: ; 0x02007B00
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, r1
|
|
bl sub_0200804C
|
|
strh r0, [r4, #0x20]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02007B00
|
|
|
|
arm_func_start sub_02007B1C
|
|
sub_02007B1C: ; 0x02007B1C
|
|
mov r1, #3
|
|
strb r1, [r0, #2]
|
|
bx lr
|
|
arm_func_end sub_02007B1C
|
|
|
|
arm_func_start sub_02007B28
|
|
sub_02007B28: ; 0x02007B28
|
|
ldrb r0, [r0, #3]
|
|
mov r0, r0, lsl #0x1f
|
|
mov r0, r0, lsr #0x1f
|
|
bx lr
|
|
arm_func_end sub_02007B28
|
|
|
|
arm_func_start sub_02007B38
|
|
sub_02007B38: ; 0x02007B38
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r4, _02007CF0 ; =0x03807E48
|
|
mov r6, r1
|
|
ldr r1, [r4, #4]
|
|
mov r5, r3
|
|
mvn r1, r1
|
|
cmp r2, #0
|
|
and r0, r0, r1
|
|
ldreq r1, [r4]
|
|
mov r4, #0
|
|
mvneq r1, r1
|
|
andeq r0, r0, r1
|
|
ldr r3, _02007CF4 ; =0x038071DC
|
|
ldr r8, _02007CF8 ; =0x038071E0
|
|
mov sb, r4
|
|
mvn r1, #0
|
|
mov fp, #1
|
|
_02007B7C:
|
|
ldrb ip, [r8, sb]
|
|
tst r0, fp, lsl ip
|
|
beq _02007BFC
|
|
ldr r2, _02007CFC ; =0x03807E70
|
|
mov r7, #0x54
|
|
mla sl, ip, r7, r2
|
|
cmp r4, #0
|
|
moveq r4, sl
|
|
beq _02007BFC
|
|
ldrb r7, [r4, #0x22]
|
|
ldrb r2, [sl, #0x22]
|
|
cmp r2, r7
|
|
bhi _02007BFC
|
|
bne _02007BF8
|
|
ldrh r2, [r4, #0x24]
|
|
ldrh r7, [sl, #0x24]
|
|
mov ip, r2, lsl #0x18
|
|
mov ip, ip, lsr #0x14
|
|
ldrb r2, [r3, r2, asr #8]
|
|
mov lr, r7, lsl #0x18
|
|
mov r2, ip, asr r2
|
|
mov ip, lr, lsr #0x14
|
|
ldrb r7, [r3, r7, asr #8]
|
|
cmp r2, ip, asr r7
|
|
beq _02007BEC
|
|
movlt r2, fp
|
|
movge r2, r1
|
|
b _02007BF0
|
|
_02007BEC:
|
|
mov r2, #0
|
|
_02007BF0:
|
|
cmp r2, #0
|
|
bge _02007BFC
|
|
_02007BF8:
|
|
mov r4, sl
|
|
_02007BFC:
|
|
add sb, sb, #1
|
|
cmp sb, #0x10
|
|
blt _02007B7C
|
|
cmp r4, #0
|
|
moveq r0, #0
|
|
beq _02007CE8
|
|
ldrb r0, [r4, #0x22]
|
|
cmp r6, r0
|
|
movlt r0, #0
|
|
blt _02007CE8
|
|
ldr r3, [r4, #0x48]
|
|
cmp r3, #0
|
|
beq _02007C44
|
|
ldr r2, [r4, #0x4c]
|
|
mov r0, r4
|
|
mov r1, #0
|
|
mov lr, pc
|
|
bx r3
|
|
_02007C44:
|
|
ldrb r0, [r4, #3]
|
|
mov r7, #0
|
|
bic r0, r0, #0xf8
|
|
orr r1, r0, #0x10
|
|
and r0, r1, #0xff
|
|
bic r0, r0, #1
|
|
strb r0, [r4, #3]
|
|
str r7, [r4, #0x50]
|
|
ldr r0, [sp, #0x28]
|
|
str r5, [r4, #0x48]
|
|
str r0, [r4, #0x4c]
|
|
str r7, [r4, #0x34]
|
|
strb r6, [r4, #0x22]
|
|
mov r3, #0x7f
|
|
strh r3, [r4, #0x24]
|
|
ldrb r1, [r4, #3]
|
|
mov r0, #0x3c
|
|
bic r2, r1, #2
|
|
and r1, r2, #0xff
|
|
orr r1, r1, #4
|
|
strb r1, [r4, #3]
|
|
strb r0, [r4, #8]
|
|
strb r0, [r4, #5]
|
|
strb r3, [r4, #9]
|
|
strb r7, [r4, #0xa]
|
|
strh r7, [r4, #0xc]
|
|
strh r7, [r4, #6]
|
|
strh r7, [r4, #0xe]
|
|
strb r7, [r4, #0xb]
|
|
strb r3, [r4, #4]
|
|
strh r7, [r4, #0x32]
|
|
str r7, [r4, #0x18]
|
|
str r7, [r4, #0x14]
|
|
ldr r1, _02007D00 ; =0x0000FFFF
|
|
strb r7, [r4, #0x1c]
|
|
strh r1, [r4, #0x1e]
|
|
strb r3, [r4, #0x1d]
|
|
add r0, r4, #0x28
|
|
strh r1, [r4, #0x20]
|
|
bl sub_02007F78
|
|
mov r0, r4
|
|
_02007CE8:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02007CF0: .word 0x03807E48
|
|
_02007CF4: .word 0x038071DC
|
|
_02007CF8: .word 0x038071E0
|
|
_02007CFC: .word 0x03807E70
|
|
_02007D00: .word 0x0000FFFF
|
|
arm_func_end sub_02007B38
|
|
|
|
arm_func_start sub_02007D04
|
|
sub_02007D04: ; 0x02007D04
|
|
cmp r0, #0
|
|
movne r1, #0
|
|
strne r1, [r0, #0x48]
|
|
strne r1, [r0, #0x4c]
|
|
bx lr
|
|
arm_func_end sub_02007D04
|
|
|
|
arm_func_start sub_02007D18
|
|
sub_02007D18: ; 0x02007D18
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov sb, #0
|
|
ldr r7, _02007DC0 ; =0x03807E70
|
|
ldr r4, _02007DC4 ; =0x03807E48
|
|
mov sl, r0
|
|
mov r5, sb
|
|
mov r6, #1
|
|
mov fp, #0x54
|
|
b _02007DA8
|
|
_02007D3C:
|
|
tst sl, #1
|
|
beq _02007DA0
|
|
ldr r0, [r4, #4]
|
|
mla r8, sb, fp, r7
|
|
tst r0, r6, lsl sb
|
|
bne _02007DA0
|
|
ldr r3, [r8, #0x48]
|
|
cmp r3, #0
|
|
beq _02007D74
|
|
ldr r2, [r8, #0x4c]
|
|
mov r0, r8
|
|
mov r1, #0
|
|
mov lr, pc
|
|
bx r3
|
|
_02007D74:
|
|
mov r0, sb
|
|
mov r1, #0
|
|
bl sub_02006C08
|
|
strb r5, [r8, #0x22]
|
|
mov r0, r8
|
|
bl sub_02007D04
|
|
ldrb r0, [r8, #3]
|
|
bic r1, r0, #0xf8
|
|
and r0, r1, #0xff
|
|
bic r0, r0, #1
|
|
strb r0, [r8, #3]
|
|
_02007DA0:
|
|
add sb, sb, #1
|
|
mov sl, sl, lsr #1
|
|
_02007DA8:
|
|
cmp sb, #0x10
|
|
bge _02007DB8
|
|
cmp sl, #0
|
|
bne _02007D3C
|
|
_02007DB8:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02007DC0: .word 0x03807E70
|
|
_02007DC4: .word 0x03807E48
|
|
arm_func_end sub_02007D18
|
|
|
|
arm_func_start sub_02007DC8
|
|
sub_02007DC8: ; 0x02007DC8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov sl, r0
|
|
mov r8, #0
|
|
ldr r5, _02007EA0 ; =0x03807E70
|
|
mov sb, r1
|
|
mov r7, sl
|
|
mov fp, r8
|
|
mov r4, #1
|
|
b _02007E64
|
|
_02007DEC:
|
|
tst r7, #1
|
|
beq _02007E5C
|
|
ldr r0, _02007EA4 ; =0x03807E48
|
|
ldr r1, [r0, #4]
|
|
mov r0, #0x54
|
|
mla r6, r8, r0, r5
|
|
tst r1, r4, lsl r8
|
|
bne _02007E5C
|
|
ldr r3, [r6, #0x48]
|
|
cmp r3, #0
|
|
beq _02007E2C
|
|
ldr r2, [r6, #0x4c]
|
|
mov r0, r6
|
|
mov r1, #0
|
|
mov lr, pc
|
|
bx r3
|
|
_02007E2C:
|
|
mov r0, r8
|
|
mov r1, #0
|
|
bl sub_02006C08
|
|
strb fp, [r6, #0x22]
|
|
mov r0, r6
|
|
bl sub_02007D04
|
|
ldrb r0, [r6, #3]
|
|
bic r0, r0, #0xf8
|
|
strb r0, [r6, #3]
|
|
and r0, r0, #0xff
|
|
bic r0, r0, #1
|
|
strb r0, [r6, #3]
|
|
_02007E5C:
|
|
add r8, r8, #1
|
|
mov r7, r7, lsr #1
|
|
_02007E64:
|
|
cmp r8, #0x10
|
|
bge _02007E74
|
|
cmp r7, #0
|
|
bne _02007DEC
|
|
_02007E74:
|
|
tst sb, #1
|
|
ldrne r0, _02007EA4 ; =0x03807E48
|
|
ldrne r1, [r0]
|
|
orrne r1, r1, sl
|
|
strne r1, [r0]
|
|
ldreq r0, _02007EA4 ; =0x03807E48
|
|
ldreq r1, [r0, #4]
|
|
orreq r1, r1, sl
|
|
streq r1, [r0, #4]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02007EA0: .word 0x03807E70
|
|
_02007EA4: .word 0x03807E48
|
|
arm_func_end sub_02007DC8
|
|
|
|
arm_func_start sub_02007EA8
|
|
sub_02007EA8: ; 0x02007EA8
|
|
tst r1, #1
|
|
ldreq r1, _02007EDC ; =0x03807E48
|
|
mvneq r0, r0
|
|
ldreq r2, [r1, #4]
|
|
andeq r0, r2, r0
|
|
streq r0, [r1, #4]
|
|
bxeq lr
|
|
ldr r1, _02007EDC ; =0x03807E48
|
|
mvn r0, r0
|
|
ldr r2, [r1]
|
|
and r0, r2, r0
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_02007EDC: .word 0x03807E48
|
|
arm_func_end sub_02007EA8
|
|
|
|
arm_func_start sub_02007EE0
|
|
sub_02007EE0: ; 0x02007EE0
|
|
tst r0, #1
|
|
ldrne r0, _02007EF8 ; =0x03807E48
|
|
ldrne r0, [r0]
|
|
ldreq r0, _02007EF8 ; =0x03807E48
|
|
ldreq r0, [r0, #4]
|
|
bx lr
|
|
.align 2, 0
|
|
_02007EF8: .word 0x03807E48
|
|
arm_func_end sub_02007EE0
|
|
|
|
arm_func_start sub_02007EFC
|
|
sub_02007EFC: ; 0x02007EFC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r5, _02007F74 ; =0x03807E70
|
|
mov r6, #0
|
|
mov r8, r0
|
|
mov r7, r1
|
|
mov r4, r6
|
|
mov sb, #0x54
|
|
_02007F18:
|
|
mla r2, r6, sb, r5
|
|
ldrb r1, [r2, #3]
|
|
mov r0, r1, lsl #0x1f
|
|
movs r0, r0, lsr #0x1f
|
|
beq _02007F5C
|
|
ldrb r0, [r2, #1]
|
|
cmp r0, #0
|
|
bne _02007F5C
|
|
ldr r0, [r2, #0x44]
|
|
cmp r8, r0
|
|
cmpls r0, r7
|
|
bhi _02007F5C
|
|
bic r3, r1, #2
|
|
mov r0, r6
|
|
mov r1, r4
|
|
strb r3, [r2, #3]
|
|
bl sub_02006C08
|
|
_02007F5C:
|
|
add r0, r6, #1
|
|
and r6, r0, #0xff
|
|
cmp r6, #0x10
|
|
blo _02007F18
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02007F74: .word 0x03807E70
|
|
arm_func_end sub_02007EFC
|
|
|
|
arm_func_start sub_02007F78
|
|
sub_02007F78: ; 0x02007F78
|
|
mov r2, #0
|
|
strb r2, [r0]
|
|
strb r2, [r0, #2]
|
|
mov r1, #1
|
|
strb r1, [r0, #3]
|
|
mov r1, #0x10
|
|
strb r1, [r0, #1]
|
|
strh r2, [r0, #4]
|
|
bx lr
|
|
arm_func_end sub_02007F78
|
|
|
|
arm_func_start sub_02007F9C
|
|
sub_02007F9C: ; 0x02007F9C
|
|
ldrh r2, [r0, #6]
|
|
ldrh r1, [r0, #4]
|
|
cmp r2, r1
|
|
addlo r1, r2, #1
|
|
strloh r1, [r0, #6]
|
|
bxlo lr
|
|
ldrh r1, [r0, #8]
|
|
ldrb r2, [r0, #1]
|
|
add r1, r1, r2, lsl #6
|
|
mov r3, r1, lsr #8
|
|
b _02007FCC
|
|
_02007FC8:
|
|
sub r3, r3, #0x80
|
|
_02007FCC:
|
|
cmp r3, #0x80
|
|
bhs _02007FC8
|
|
ldrh r1, [r0, #8]
|
|
add r1, r1, r2, lsl #6
|
|
strh r1, [r0, #8]
|
|
ldrh r1, [r0, #8]
|
|
and r1, r1, #0xff
|
|
strh r1, [r0, #8]
|
|
ldrh r1, [r0, #8]
|
|
orr r1, r1, r3, lsl #8
|
|
strh r1, [r0, #8]
|
|
bx lr
|
|
arm_func_end sub_02007F9C
|
|
|
|
arm_func_start sub_02007FFC
|
|
sub_02007FFC: ; 0x02007FFC
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldrb r0, [r4, #2]
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
beq _02008044
|
|
ldrh r1, [r4, #6]
|
|
ldrh r0, [r4, #4]
|
|
cmp r1, r0
|
|
movlo r0, #0
|
|
blo _02008044
|
|
ldrh r0, [r4, #8]
|
|
mov r0, r0, lsr #8
|
|
bl sub_02007040
|
|
ldrb r1, [r4, #2]
|
|
ldrb r2, [r4, #3]
|
|
mul r0, r1, r0
|
|
mul r0, r2, r0
|
|
_02008044:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02007FFC
|
|
|
|
arm_func_start sub_0200804C
|
|
sub_0200804C: ; 0x0200804C
|
|
stmdb sp!, {r3, lr}
|
|
cmp r0, #0x7f
|
|
ldreq r0, _0200809C ; =0x0000FFFF
|
|
beq _02008094
|
|
cmp r0, #0x7e
|
|
moveq r0, #0x3c00
|
|
beq _02008094
|
|
cmp r0, #0x32
|
|
movlt r0, r0, lsl #1
|
|
addlt r0, r0, #1
|
|
movlt r0, r0, lsl #0x10
|
|
movlt r0, r0, lsr #0x10
|
|
blt _02008094
|
|
rsb r1, r0, #0x7e
|
|
mov r0, #0x1e00
|
|
bl sub_0200EDB0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
_02008094:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200809C: .word 0x0000FFFF
|
|
arm_func_end sub_0200804C
|
|
|
|
arm_func_start sub_020080A0
|
|
sub_020080A0: ; 0x020080A0
|
|
ldr r3, _020080D4 ; =0xFFFE9680
|
|
mov r2, #0
|
|
str r3, [r0, #0x10]
|
|
strb r2, [r0, #2]
|
|
str r1, [r0, #0x34]
|
|
strh r2, [r0, #0x30]
|
|
strh r2, [r0, #0x2e]
|
|
ldrb r1, [r0, #3]
|
|
orr r2, r1, #2
|
|
bic r1, r2, #1
|
|
orr r1, r1, #1
|
|
strb r1, [r0, #3]
|
|
bx lr
|
|
.align 2, 0
|
|
_020080D4: .word 0xFFFE9680
|
|
arm_func_end sub_020080A0
|
|
|
|
arm_func_start sub_020080D8
|
|
sub_020080D8: ; 0x020080D8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, _02008134 ; =0x038083B0
|
|
mov lr, #0
|
|
mov r0, #0x24
|
|
_020080E8:
|
|
mul r2, lr, r0
|
|
ldrb r1, [r3, r2]
|
|
add ip, r3, r2
|
|
bic r1, r1, #1
|
|
strb r1, [r3, r2]
|
|
strb lr, [ip, #1]
|
|
add lr, lr, #1
|
|
cmp lr, #0x10
|
|
blt _020080E8
|
|
ldr r1, _02008138 ; =0x038085F0
|
|
mov r2, #0
|
|
_02008114:
|
|
ldrb r0, [r1, r2, lsl #6]
|
|
bic r0, r0, #1
|
|
strb r0, [r1, r2, lsl #6]
|
|
add r2, r2, #1
|
|
cmp r2, #0x20
|
|
blt _02008114
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02008134: .word 0x038083B0
|
|
_02008138: .word 0x038085F0
|
|
arm_func_end sub_020080D8
|
|
|
|
arm_func_start sub_0200813C
|
|
sub_0200813C: ; 0x0200813C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
mov r6, #0
|
|
mov sb, r0
|
|
mov r5, r6
|
|
_0200814C:
|
|
mov r0, #0x24
|
|
mul r0, r5, r0
|
|
ldr r2, _02008294 ; =0x038083B0
|
|
ldrb r1, [r2, r0]
|
|
add r4, r2, r0
|
|
mov r0, r1, lsl #0x1f
|
|
movs r0, r0, lsr #0x1f
|
|
beq _02008270
|
|
mov r0, r1, lsl #0x1e
|
|
movs r0, r0, lsr #0x1f
|
|
beq _0200825C
|
|
cmp sb, #0
|
|
beq _02008228
|
|
mov r0, r1, lsl #0x1d
|
|
movs r0, r0, lsr #0x1f
|
|
bne _02008228
|
|
mov r8, #0
|
|
b _020081A4
|
|
_02008194:
|
|
ldrh r0, [r4, #0x1c]
|
|
add r8, r8, #1
|
|
sub r0, r0, #0xf0
|
|
strh r0, [r4, #0x1c]
|
|
_020081A4:
|
|
ldrh r0, [r4, #0x1c]
|
|
cmp r0, #0xf0
|
|
bhs _02008194
|
|
mov r7, #0
|
|
mov sl, #1
|
|
b _020081E0
|
|
_020081BC:
|
|
mov r0, r4
|
|
mov r1, sl
|
|
bl sub_02008ED8
|
|
cmp r0, #0
|
|
beq _020081DC
|
|
mov r0, r4
|
|
bl sub_02008CE8
|
|
b _020081E8
|
|
_020081DC:
|
|
add r7, r7, #1
|
|
_020081E0:
|
|
cmp r7, r8
|
|
blt _020081BC
|
|
_020081E8:
|
|
ldr r0, _02008298 ; =0x03807E6C
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
beq _02008210
|
|
ldrb r1, [r4, #1]
|
|
mov r0, #0x24
|
|
mla r2, r1, r0, r2
|
|
ldr r0, [r2, #0x40]
|
|
add r0, r0, r7
|
|
str r0, [r2, #0x40]
|
|
_02008210:
|
|
ldrh r2, [r4, #0x18]
|
|
ldrh r1, [r4, #0x1a]
|
|
ldrh r0, [r4, #0x1c]
|
|
mul r1, r2, r1
|
|
add r0, r0, r1, asr #8
|
|
strh r0, [r4, #0x1c]
|
|
_02008228:
|
|
mov r8, #0
|
|
mov r7, #1
|
|
_02008230:
|
|
mov r0, r4
|
|
mov r1, r8
|
|
bl sub_02008C64
|
|
cmp r0, #0
|
|
beq _02008250
|
|
mov r1, r4
|
|
mov r2, r7
|
|
bl sub_02008D80
|
|
_02008250:
|
|
add r8, r8, #1
|
|
cmp r8, #0x10
|
|
blt _02008230
|
|
_0200825C:
|
|
ldrb r0, [r4]
|
|
mov r0, r0, lsl #0x1f
|
|
movs r0, r0, lsr #0x1f
|
|
movne r0, #1
|
|
orrne r6, r6, r0, lsl r5
|
|
_02008270:
|
|
add r5, r5, #1
|
|
cmp r5, #0x10
|
|
blt _0200814C
|
|
ldr r0, _02008298 ; =0x03807E6C
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
strne r6, [r0, #4]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02008294: .word 0x038083B0
|
|
_02008298: .word 0x03807E6C
|
|
arm_func_end sub_0200813C
|
|
|
|
arm_func_start sub_0200829C
|
|
sub_0200829C: ; 0x0200829C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
mov sb, r0
|
|
mov r0, #0x24
|
|
mul r5, sb, r0
|
|
ldr r6, _0200846C ; =0x038083B0
|
|
mov r8, r1
|
|
ldrb r0, [r6, r5]
|
|
mov r7, r2
|
|
mov r0, r0, lsl #0x1f
|
|
mov r4, r3
|
|
add r5, r6, r5
|
|
movs r0, r0, lsr #0x1f
|
|
beq _020082D8
|
|
mov r0, r5
|
|
bl sub_02008CE8
|
|
_020082D8:
|
|
ldrb r1, [r5]
|
|
mov r0, #0x78
|
|
bic r1, r1, #4
|
|
strb r1, [r5]
|
|
str r4, [r5, #0x20]
|
|
strh r0, [r5, #0x18]
|
|
mov r0, #0x100
|
|
strh r0, [r5, #0x1a]
|
|
mov r0, #0xf0
|
|
strh r0, [r5, #0x1c]
|
|
mov r0, #0x7f
|
|
strb r0, [r5, #5]
|
|
mov r2, #0
|
|
strh r2, [r5, #6]
|
|
mov r0, #0x40
|
|
strb r0, [r5, #4]
|
|
mov r1, #0xff
|
|
_0200831C:
|
|
add r0, r5, r2
|
|
add r2, r2, #1
|
|
strb r1, [r0, #8]
|
|
cmp r2, #0x10
|
|
blt _0200831C
|
|
ldr r1, _02008470 ; =0x03807E6C
|
|
ldr r3, [r1]
|
|
cmp r3, #0
|
|
beq _0200837C
|
|
ldrb r2, [r5, #1]
|
|
mov r0, #0x24
|
|
mla r0, r2, r0, r3
|
|
mov r6, #0
|
|
str r6, [r0, #0x40]
|
|
mvn r4, #0
|
|
mov r0, #0x24
|
|
_0200835C:
|
|
ldr r2, [r1]
|
|
ldrb r3, [r5, #1]
|
|
mla r2, r3, r0, r2
|
|
add r2, r2, r6, lsl #1
|
|
add r6, r6, #1
|
|
strh r4, [r2, #0x20]
|
|
cmp r6, #0x10
|
|
blt _0200835C
|
|
_0200837C:
|
|
bl sub_02009A6C
|
|
movs r4, r0
|
|
bmi _02008464
|
|
ldr r0, _02008474 ; =0x038085F0
|
|
add r6, r0, r4, lsl #6
|
|
mov r0, r6
|
|
bl sub_02008AD8
|
|
str r8, [r6, #0x24]
|
|
add r0, r8, r7
|
|
str r0, [r6, #0x28]
|
|
strb r4, [r5, #8]
|
|
ldr r0, [r6, #0x28]
|
|
bl sub_0200896C
|
|
mov r0, r6
|
|
bl sub_02008478
|
|
cmp r0, #0xfe
|
|
ldrne r0, [r6, #0x28]
|
|
subne r0, r0, #1
|
|
strne r0, [r6, #0x28]
|
|
bne _02008430
|
|
mov r0, r6
|
|
bl sub_02008478
|
|
mov r4, r0
|
|
mov r0, r6
|
|
bl sub_02008478
|
|
orr r0, r4, r0, lsl #8
|
|
mov r0, r0, lsl #0x10
|
|
ldr r4, _02008474 ; =0x038085F0
|
|
mov r8, r0, lsr #0x11
|
|
mov r7, #1
|
|
b _02008428
|
|
_020083F8:
|
|
tst r8, #1
|
|
beq _0200841C
|
|
bl sub_02009A6C
|
|
movs r6, r0
|
|
bmi _02008430
|
|
add r0, r4, r6, lsl #6
|
|
bl sub_02008AD8
|
|
add r0, r5, r7
|
|
strb r6, [r0, #8]
|
|
_0200841C:
|
|
mov r0, r8, lsl #0xf
|
|
add r7, r7, #1
|
|
mov r8, r0, lsr #0x10
|
|
_02008428:
|
|
cmp r8, #0
|
|
bne _020083F8
|
|
_02008430:
|
|
ldrb r1, [r5]
|
|
ldr r0, _02008470 ; =0x03807E6C
|
|
bic r1, r1, #1
|
|
ldr r2, [r0]
|
|
orr r1, r1, #1
|
|
and r0, r1, #0xff
|
|
bic r0, r0, #2
|
|
strb r0, [r5]
|
|
cmp r2, #0
|
|
ldrne r1, [r2, #4]
|
|
movne r0, #1
|
|
orrne r0, r1, r0, lsl sb
|
|
strne r0, [r2, #4]
|
|
_02008464:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200846C: .word 0x038083B0
|
|
_02008470: .word 0x03807E6C
|
|
_02008474: .word 0x038085F0
|
|
arm_func_end sub_0200829C
|
|
|
|
arm_func_start sub_02008478
|
|
sub_02008478: ; 0x02008478
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _020084D0 ; =0x03807E50
|
|
mov r5, r0
|
|
ldr r4, [r5, #0x28]
|
|
ldr r0, [r1, #4]
|
|
cmp r4, r0
|
|
blo _020084A0
|
|
ldr r0, [r1, #8]
|
|
cmp r4, r0
|
|
blo _020084A8
|
|
_020084A0:
|
|
mov r0, r4
|
|
bl sub_0200896C
|
|
_020084A8:
|
|
ldr r0, _020084D0 ; =0x03807E50
|
|
ldr r1, [r5, #0x28]
|
|
ldr r2, [r0, #4]
|
|
ldr r0, _020084D4 ; =0x03807E5C
|
|
sub r2, r4, r2
|
|
ldrb r0, [r0, r2]
|
|
add r1, r1, #1
|
|
str r1, [r5, #0x28]
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020084D0: .word 0x03807E50
|
|
_020084D4: .word 0x03807E5C
|
|
arm_func_end sub_02008478
|
|
|
|
arm_func_start sub_020084D8
|
|
sub_020084D8: ; 0x020084D8
|
|
mov r1, #0x24
|
|
mul r1, r0, r1
|
|
ldr r2, _020084F4 ; =0x038083B0
|
|
ldrb r0, [r2, r1]
|
|
orr r0, r0, #2
|
|
strb r0, [r2, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_020084F4: .word 0x038083B0
|
|
arm_func_end sub_020084D8
|
|
|
|
arm_func_start sub_020084F8
|
|
sub_020084F8: ; 0x020084F8
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_0200829C
|
|
mov r0, #0x24
|
|
mul r1, r4, r0
|
|
ldr r2, _02008524 ; =0x038083B0
|
|
ldrb r0, [r2, r1]
|
|
orr r0, r0, #2
|
|
strb r0, [r2, r1]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02008524: .word 0x038083B0
|
|
arm_func_end sub_020084F8
|
|
|
|
arm_func_start sub_02008528
|
|
sub_02008528: ; 0x02008528
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x24
|
|
mul r1, r4, r0
|
|
ldr r2, _0200857C ; =0x038083B0
|
|
ldrb r0, [r2, r1]
|
|
mov r0, r0, lsl #0x1f
|
|
movs r0, r0, lsr #0x1f
|
|
beq _02008574
|
|
add r0, r2, r1
|
|
bl sub_02008CE8
|
|
ldr r0, _02008580 ; =0x03807E6C
|
|
ldr r2, [r0]
|
|
cmp r2, #0
|
|
movne r0, #1
|
|
ldrne r1, [r2, #4]
|
|
mvnne r0, r0, lsl r4
|
|
andne r0, r1, r0
|
|
strne r0, [r2, #4]
|
|
_02008574:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200857C: .word 0x038083B0
|
|
_02008580: .word 0x03807E6C
|
|
arm_func_end sub_02008528
|
|
|
|
arm_func_start sub_02008584
|
|
sub_02008584: ; 0x02008584
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
mov r2, #0x24
|
|
mul r4, r0, r2
|
|
ldr r5, _020085F8 ; =0x038083B0
|
|
and r0, r1, #0xff
|
|
ldrb r2, [r5, r4]
|
|
mov r0, r0, lsl #0x1f
|
|
bic r2, r2, #4
|
|
orr r0, r2, r0, lsr #29
|
|
strb r0, [r5, r4]
|
|
cmp r1, #0
|
|
beq _020085F0
|
|
mov r8, #0
|
|
mov r6, #0x7f
|
|
_020085BC:
|
|
mov r1, r8
|
|
add r0, r5, r4
|
|
bl sub_02008C64
|
|
movs r7, r0
|
|
beq _020085E4
|
|
mov r2, r6
|
|
add r1, r5, r4
|
|
bl sub_02008BC8
|
|
mov r0, r7
|
|
bl sub_02008C30
|
|
_020085E4:
|
|
add r8, r8, #1
|
|
cmp r8, #0x10
|
|
blt _020085BC
|
|
_020085F0:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020085F8: .word 0x038083B0
|
|
arm_func_end sub_02008584
|
|
|
|
arm_func_start sub_020085FC
|
|
sub_020085FC: ; 0x020085FC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r3, _020086C0 ; =0x038083B0
|
|
mov r2, #0x24
|
|
mla r6, r0, r2, r3
|
|
mov r8, r1
|
|
mov r7, #0
|
|
mov r4, #0x7f
|
|
_02008618:
|
|
mov r0, r6
|
|
mov r1, r7
|
|
bl sub_02008C64
|
|
movs r5, r0
|
|
beq _02008640
|
|
mov r1, r6
|
|
mov r2, r4
|
|
bl sub_02008BC8
|
|
mov r0, r5
|
|
bl sub_02008C30
|
|
_02008640:
|
|
add r7, r7, #1
|
|
cmp r7, #0x10
|
|
blt _02008618
|
|
bl sub_0200719C
|
|
mov r4, #0
|
|
mov r5, r4
|
|
b _02008680
|
|
_0200865C:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl sub_02008ED8
|
|
cmp r0, #0
|
|
beq _0200867C
|
|
mov r0, r6
|
|
bl sub_02008CE8
|
|
b _02008688
|
|
_0200867C:
|
|
add r4, r4, #1
|
|
_02008680:
|
|
cmp r4, r8
|
|
blo _0200865C
|
|
_02008688:
|
|
bl sub_0200714C
|
|
ldr r0, _020086C4 ; =0x03807E6C
|
|
ldr r3, [r0]
|
|
cmp r3, #0
|
|
beq _020086B8
|
|
ldrb r1, [r6, #1]
|
|
mov r0, #0x24
|
|
mul r2, r1, r0
|
|
add r1, r3, #0x40
|
|
ldr r0, [r1, r2]
|
|
add r0, r0, r4
|
|
str r0, [r1, r2]
|
|
_020086B8:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020086C0: .word 0x038083B0
|
|
_020086C4: .word 0x03807E6C
|
|
arm_func_end sub_020085FC
|
|
|
|
arm_func_start sub_020086C8
|
|
sub_020086C8: ; 0x020086C8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
mov r3, #0x24
|
|
mul r4, r0, r3
|
|
ldr r5, _02008730 ; =0x038083B0
|
|
mov r8, r1
|
|
mov r7, r2
|
|
mov r6, #0
|
|
b _02008718
|
|
_020086E8:
|
|
tst r8, #1
|
|
beq _02008710
|
|
mov r1, r6
|
|
add r0, r5, r4
|
|
bl sub_02008C64
|
|
cmp r0, #0
|
|
beq _02008710
|
|
mov r2, r7
|
|
add r1, r5, r4
|
|
bl sub_02009AB0
|
|
_02008710:
|
|
add r6, r6, #1
|
|
mov r8, r8, lsr #1
|
|
_02008718:
|
|
cmp r6, #0x10
|
|
bge _02008728
|
|
cmp r8, #0
|
|
bne _020086E8
|
|
_02008728:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02008730: .word 0x038083B0
|
|
arm_func_end sub_020086C8
|
|
|
|
arm_func_start sub_02008734
|
|
sub_02008734: ; 0x02008734
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
mov r3, #0x24
|
|
mul r4, r0, r3
|
|
mov r0, r2, lsl #0x10
|
|
ldr r5, _020087A0 ; =0x038083B0
|
|
mov r7, r1
|
|
mov r6, #0
|
|
mov r8, r0, lsr #0x10
|
|
b _02008788
|
|
_02008758:
|
|
tst r7, #1
|
|
beq _02008780
|
|
mov r1, r6
|
|
add r0, r5, r4
|
|
bl sub_02008C64
|
|
cmp r0, #0
|
|
strneh r8, [r0, #0x1e]
|
|
ldrneb r1, [r0]
|
|
orrne r1, r1, #0x80
|
|
strneb r1, [r0]
|
|
_02008780:
|
|
add r6, r6, #1
|
|
mov r7, r7, lsr #1
|
|
_02008788:
|
|
cmp r6, #0x10
|
|
bge _02008798
|
|
cmp r7, #0
|
|
bne _02008758
|
|
_02008798:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020087A0: .word 0x038083B0
|
|
arm_func_end sub_02008734
|
|
|
|
arm_func_start sub_020087A4
|
|
sub_020087A4: ; 0x020087A4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r6, _0200882C ; =0x038083B0
|
|
mov r7, #0
|
|
mov sl, r0
|
|
mov sb, r1
|
|
mov fp, r7
|
|
mov r4, #0x24
|
|
_020087C0:
|
|
mul r5, r7, r4
|
|
ldrb r0, [r6, r5]
|
|
mov r0, r0, lsl #0x1f
|
|
movs r0, r0, lsr #0x1f
|
|
beq _02008818
|
|
mov r8, fp
|
|
b _02008810
|
|
_020087DC:
|
|
mov r1, r8
|
|
add r0, r6, r5
|
|
bl sub_02008C64
|
|
cmp r0, #0
|
|
beq _0200880C
|
|
ldr r0, [r0, #0x28]
|
|
cmp sl, r0
|
|
cmpls r0, sb
|
|
bhi _0200880C
|
|
add r0, r6, r5
|
|
bl sub_02008CE8
|
|
b _02008818
|
|
_0200880C:
|
|
add r8, r8, #1
|
|
_02008810:
|
|
cmp r8, #0x10
|
|
blt _020087DC
|
|
_02008818:
|
|
add r7, r7, #1
|
|
cmp r7, #0x10
|
|
blt _020087C0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200882C: .word 0x038083B0
|
|
arm_func_end sub_020087A4
|
|
|
|
arm_func_start sub_02008830
|
|
sub_02008830: ; 0x02008830
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r4, _02008888 ; =0x038083B0
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, #0
|
|
mov r8, #0x24
|
|
_02008848:
|
|
mul r0, r5, r8
|
|
ldrb r1, [r4, r0]
|
|
add r0, r4, r0
|
|
mov r1, r1, lsl #0x1f
|
|
movs r1, r1, lsr #0x1f
|
|
beq _02008874
|
|
ldr r1, [r0, #0x20]
|
|
cmp r7, r1
|
|
cmpls r1, r6
|
|
bhi _02008874
|
|
bl sub_02008CE8
|
|
_02008874:
|
|
add r5, r5, #1
|
|
cmp r5, #0x10
|
|
blt _02008848
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02008888: .word 0x038083B0
|
|
arm_func_end sub_02008830
|
|
|
|
arm_func_start sub_0200888C
|
|
sub_0200888C: ; 0x0200888C
|
|
stmdb sp!, {r3, lr}
|
|
ldr lr, _020088CC ; =0x038083B0
|
|
mov ip, #0x24
|
|
mla ip, r0, ip, lr
|
|
cmp r3, #1
|
|
beq _020088B8
|
|
cmp r3, #2
|
|
beq _020088C0
|
|
cmp r3, #4
|
|
streq r2, [ip, r1]
|
|
b _020088C4
|
|
_020088B8:
|
|
strb r2, [ip, r1]
|
|
b _020088C4
|
|
_020088C0:
|
|
strh r2, [ip, r1]
|
|
_020088C4:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020088CC: .word 0x038083B0
|
|
arm_func_end sub_0200888C
|
|
|
|
arm_func_start sub_020088D0
|
|
sub_020088D0: ; 0x020088D0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov r4, #0x24
|
|
mul r5, r0, r4
|
|
mov r8, r3
|
|
mov r0, r8, lsl #0x10
|
|
ldr r7, [sp, #0x28]
|
|
mov sl, r1
|
|
mov sb, r2
|
|
mov r6, #0
|
|
mov fp, r0, lsr #0x10
|
|
and r4, r8, #0xff
|
|
b _02008950
|
|
_02008900:
|
|
tst sl, #1
|
|
beq _02008948
|
|
ldr r0, _02008968 ; =0x038083B0
|
|
mov r1, r6
|
|
add r0, r0, r5
|
|
bl sub_02008C64
|
|
cmp r0, #0
|
|
beq _02008948
|
|
cmp r7, #1
|
|
beq _0200893C
|
|
cmp r7, #2
|
|
beq _02008944
|
|
cmp r7, #4
|
|
streq r8, [r0, sb]
|
|
b _02008948
|
|
_0200893C:
|
|
strb r4, [r0, sb]
|
|
b _02008948
|
|
_02008944:
|
|
strh fp, [r0, sb]
|
|
_02008948:
|
|
add r6, r6, #1
|
|
mov sl, sl, lsr #1
|
|
_02008950:
|
|
cmp r6, #0x10
|
|
bge _02008960
|
|
cmp sl, #0
|
|
bne _02008900
|
|
_02008960:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02008968: .word 0x038083B0
|
|
arm_func_end sub_020088D0
|
|
|
|
arm_func_start sub_0200896C
|
|
sub_0200896C: ; 0x0200896C
|
|
ldr r1, _020089A4 ; =0x03807E50
|
|
bic r2, r0, #3
|
|
str r2, [r1, #4]
|
|
add r0, r2, #0x10
|
|
str r0, [r1, #8]
|
|
ldr r0, [r2]
|
|
str r0, [r1, #0xc]
|
|
ldr r0, [r2, #4]
|
|
str r0, [r1, #0x10]
|
|
ldr r0, [r2, #8]
|
|
str r0, [r1, #0x14]
|
|
ldr r0, [r2, #0xc]
|
|
str r0, [r1, #0x18]
|
|
bx lr
|
|
.align 2, 0
|
|
_020089A4: .word 0x03807E50
|
|
arm_func_end sub_0200896C
|
|
|
|
arm_func_start sub_020089A8
|
|
sub_020089A8: ; 0x020089A8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl sub_02008478
|
|
mov r4, r0
|
|
mov r0, r5
|
|
bl sub_02008478
|
|
orr r4, r4, r0, lsl #8
|
|
mov r0, r5
|
|
bl sub_02008478
|
|
orr r0, r4, r0, lsl #16
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_020089A8
|
|
|
|
arm_func_start sub_020089D8
|
|
sub_020089D8: ; 0x020089D8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r4, r0
|
|
mov r6, r1
|
|
cmp r2, #4
|
|
addls pc, pc, r2, lsl #2
|
|
b _02008ACC
|
|
_020089F0: ; jump table
|
|
b _02008A04 ; case 0
|
|
b _02008A10 ; case 1
|
|
b _02008A30 ; case 2
|
|
b _02008A6C ; case 3
|
|
b _02008A50 ; case 4
|
|
_02008A04:
|
|
bl sub_02008478
|
|
mov r5, r0
|
|
b _02008ACC
|
|
_02008A10:
|
|
bl sub_02008478
|
|
mov r5, r0
|
|
mov r0, r4
|
|
bl sub_02008478
|
|
orr r0, r5, r0, lsl #8
|
|
mov r0, r0, lsl #0x10
|
|
mov r5, r0, lsr #0x10
|
|
b _02008ACC
|
|
_02008A30:
|
|
mov r5, #0
|
|
_02008A34:
|
|
mov r0, r4
|
|
bl sub_02008478
|
|
and r1, r0, #0x7f
|
|
tst r0, #0x80
|
|
orr r5, r1, r5, lsl #7
|
|
bne _02008A34
|
|
b _02008ACC
|
|
_02008A50:
|
|
bl sub_02008478
|
|
mov r1, r0
|
|
mov r0, r6
|
|
bl sub_02009A28
|
|
cmp r0, #0
|
|
ldrnesh r5, [r0]
|
|
b _02008ACC
|
|
_02008A6C:
|
|
bl sub_02008478
|
|
mov r5, r0
|
|
mov r0, r4
|
|
bl sub_02008478
|
|
orr r0, r5, r0, lsl #8
|
|
mov r0, r0, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
mov r0, r4
|
|
mov r5, r1, lsl #0x10
|
|
bl sub_02008478
|
|
mov r6, r0
|
|
mov r0, r4
|
|
bl sub_02008478
|
|
orr r0, r6, r0, lsl #8
|
|
mov r0, r0, lsl #0x10
|
|
mov r4, r0, lsr #0x10
|
|
bl sub_020070AC
|
|
mov r1, r4, lsl #0x10
|
|
mov r1, r1, asr #0x10
|
|
sub r1, r1, r5, asr #16
|
|
add r1, r1, #1
|
|
mul r1, r0, r1
|
|
mov r0, r1, asr #0x10
|
|
add r5, r0, r5, asr #16
|
|
_02008ACC:
|
|
mov r0, r5
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_020089D8
|
|
|
|
arm_func_start sub_02008AD8
|
|
sub_02008AD8: ; 0x02008AD8
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0
|
|
str r0, [r4, #0x24]
|
|
str r0, [r4, #0x28]
|
|
ldrb r1, [r4]
|
|
mov r2, #0xff
|
|
orr r1, r1, #2
|
|
bic ip, r1, #4
|
|
strb r1, [r4]
|
|
and r1, ip, #0xff
|
|
bic r3, r1, #8
|
|
strb ip, [r4]
|
|
and r1, r3, #0xff
|
|
bic ip, r1, #0x10
|
|
strb r3, [r4]
|
|
and r1, ip, #0xff
|
|
bic r3, r1, #0x20
|
|
and r1, r3, #0xff
|
|
orr r1, r1, #0x40
|
|
strb ip, [r4]
|
|
bic r1, r1, #0x80
|
|
strb r1, [r4]
|
|
strb r0, [r4, #0x3b]
|
|
strh r0, [r4, #2]
|
|
mov r1, #0x40
|
|
strb r1, [r4, #0x12]
|
|
mov r1, #0x7f
|
|
strb r1, [r4, #4]
|
|
strb r1, [r4, #5]
|
|
strh r0, [r4, #0xa]
|
|
strb r0, [r4, #8]
|
|
strb r0, [r4, #9]
|
|
strb r0, [r4, #6]
|
|
strh r0, [r4, #0xc]
|
|
strb r2, [r4, #0xe]
|
|
strb r2, [r4, #0xf]
|
|
strb r2, [r4, #0x10]
|
|
strb r2, [r4, #0x11]
|
|
strb r1, [r4, #1]
|
|
mov r1, #2
|
|
strb r1, [r4, #7]
|
|
mov r1, #0x3c
|
|
strb r1, [r4, #0x14]
|
|
strb r0, [r4, #0x15]
|
|
strh r0, [r4, #0x16]
|
|
strb r0, [r4, #0x13]
|
|
add r0, r2, #0xff00
|
|
strh r0, [r4, #0x1e]
|
|
add r0, r4, #0x18
|
|
bl sub_02007F78
|
|
mov r0, #0
|
|
str r0, [r4, #0x20]
|
|
str r0, [r4, #0x3c]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02008AD8
|
|
|
|
arm_func_start sub_02008BB8
|
|
sub_02008BB8: ; 0x02008BB8
|
|
str r1, [r0, #0x24]
|
|
add r1, r1, r2
|
|
str r1, [r0, #0x28]
|
|
bx lr
|
|
arm_func_end sub_02008BB8
|
|
|
|
arm_func_start sub_02008BC8
|
|
sub_02008BC8: ; 0x02008BC8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r2
|
|
mov r4, r0
|
|
mov r2, #0
|
|
bl sub_02008D80
|
|
ldr r5, [r4, #0x3c]
|
|
and r6, r7, #0xff
|
|
mov r4, #1
|
|
b _02008C20
|
|
_02008BEC:
|
|
mov r0, r5
|
|
bl sub_02007B28
|
|
cmp r0, #0
|
|
beq _02008C1C
|
|
cmp r7, #0
|
|
blt _02008C10
|
|
mov r0, r5
|
|
mov r1, r6
|
|
bl sub_02007B00
|
|
_02008C10:
|
|
mov r0, r5
|
|
strb r4, [r5, #0x22]
|
|
bl sub_02007B1C
|
|
_02008C1C:
|
|
ldr r5, [r5, #0x50]
|
|
_02008C20:
|
|
cmp r5, #0
|
|
bne _02008BEC
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_02008BC8
|
|
|
|
arm_func_start sub_02008C30
|
|
sub_02008C30: ; 0x02008C30
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
ldr r4, [r5, #0x3c]
|
|
b _02008C4C
|
|
_02008C40:
|
|
mov r0, r4
|
|
bl sub_02007D04
|
|
ldr r4, [r4, #0x50]
|
|
_02008C4C:
|
|
cmp r4, #0
|
|
bne _02008C40
|
|
mov r0, #0
|
|
str r0, [r5, #0x3c]
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_02008C30
|
|
|
|
arm_func_start sub_02008C64
|
|
sub_02008C64: ; 0x02008C64
|
|
cmp r1, #0xf
|
|
movgt r0, #0
|
|
bxgt lr
|
|
add r0, r0, r1
|
|
ldrb r1, [r0, #8]
|
|
cmp r1, #0xff
|
|
moveq r0, #0
|
|
ldrne r0, _02008C8C ; =0x038085F0
|
|
addne r0, r0, r1, lsl #6
|
|
bx lr
|
|
.align 2, 0
|
|
_02008C8C: .word 0x038085F0
|
|
arm_func_end sub_02008C64
|
|
|
|
arm_func_start sub_02008C90
|
|
sub_02008C90: ; 0x02008C90
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r4, r1
|
|
bl sub_02008C64
|
|
movs r5, r0
|
|
beq _02008CDC
|
|
mov r1, r6
|
|
mvn r2, #0
|
|
bl sub_02008BC8
|
|
mov r0, r5
|
|
bl sub_02008C30
|
|
add ip, r6, #8
|
|
ldrb r2, [ip, r4]
|
|
ldr r3, _02008CE4 ; =0x038085F0
|
|
mov r0, #0xff
|
|
ldrb r1, [r3, r2, lsl #6]
|
|
bic r1, r1, #1
|
|
strb r1, [r3, r2, lsl #6]
|
|
strb r0, [ip, r4]
|
|
_02008CDC:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02008CE4: .word 0x038085F0
|
|
arm_func_end sub_02008C90
|
|
|
|
arm_func_start sub_02008CE8
|
|
sub_02008CE8: ; 0x02008CE8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, #0
|
|
_02008CF4:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_02008C90
|
|
add r4, r4, #1
|
|
cmp r4, #0x10
|
|
blt _02008CF4
|
|
ldrb r0, [r5]
|
|
bic r0, r0, #1
|
|
strb r0, [r5]
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_02008CE8
|
|
|
|
arm_func_start sub_02008D20
|
|
sub_02008D20: ; 0x02008D20
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r2
|
|
cmp r1, #1
|
|
bne _02008D40
|
|
mov r1, #0
|
|
strb r1, [r5, #0x22]
|
|
bl sub_02007D04
|
|
_02008D40:
|
|
ldr r1, [r4, #0x3c]
|
|
cmp r1, r5
|
|
ldreq r0, [r5, #0x50]
|
|
streq r0, [r4, #0x3c]
|
|
beq _02008D78
|
|
b _02008D6C
|
|
_02008D58:
|
|
cmp r0, r5
|
|
ldreq r0, [r5, #0x50]
|
|
streq r0, [r1, #0x50]
|
|
beq _02008D78
|
|
mov r1, r0
|
|
_02008D6C:
|
|
ldr r0, [r1, #0x50]
|
|
cmp r0, #0
|
|
bne _02008D58
|
|
_02008D78:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_02008D20
|
|
|
|
arm_func_start sub_02008D80
|
|
sub_02008D80: ; 0x02008D80
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov sl, r0
|
|
ldrb r0, [sl, #7]
|
|
ldrb r6, [sl, #4]
|
|
ldrb r3, [sl, #5]
|
|
ldrb fp, [r1, #5]
|
|
mov r5, r0, lsl #6
|
|
mov r8, r3, lsl #1
|
|
ldrb r4, [sl, #1]
|
|
ldrsb r7, [sl, #6]
|
|
mov sb, r6, lsl #1
|
|
ldr r0, _02008ED4 ; =0x03806FDC
|
|
mul r6, r7, r5
|
|
mov r3, fp, lsl #1
|
|
ldrsh sb, [r0, sb]
|
|
ldrsh r7, [r0, r8]
|
|
ldrsh r0, [r0, r3]
|
|
add r8, sb, r7
|
|
ldrsb r3, [sl, #8]
|
|
cmp r4, #0x7f
|
|
mulne r4, r3, r4
|
|
addne r3, r4, #0x40
|
|
mov r4, #0x8000
|
|
ldrsh r5, [sl, #0xc]
|
|
mov sb, r2
|
|
add r2, r5, r6, asr #7
|
|
ldrsh r7, [sl, #0xa]
|
|
ldrsh r1, [r1, #6]
|
|
ldrsb r5, [sl, #9]
|
|
movne r3, r3, asr #7
|
|
add r0, r0, r8
|
|
rsb r4, r4, #0
|
|
cmp r0, r4
|
|
movlt r0, r4
|
|
mov r4, #0x8000
|
|
add r1, r7, r1
|
|
rsb r4, r4, #0
|
|
cmp r1, r4
|
|
movlt r1, r4
|
|
add r3, r3, r5
|
|
mvn r4, #0x7f
|
|
cmp r3, r4
|
|
movlt r3, r4
|
|
blt _02008E38
|
|
cmp r3, #0x7f
|
|
movgt r3, #0x7f
|
|
_02008E38:
|
|
mov r0, r0, lsl #0x10
|
|
mov r2, r2, lsl #0x10
|
|
mov r3, r3, lsl #0x18
|
|
mov r1, r1, lsl #0x10
|
|
ldr r8, [sl, #0x3c]
|
|
mov r6, r0, asr #0x10
|
|
mov r5, r2, asr #0x10
|
|
mov r4, r3, asr #0x18
|
|
mov r7, r1, asr #0x10
|
|
mov fp, #1
|
|
b _02008EC4
|
|
_02008E64:
|
|
strh r7, [r8, #6]
|
|
ldrb r0, [r8, #2]
|
|
cmp r0, #3
|
|
beq _02008EC0
|
|
strh r6, [r8, #0xc]
|
|
strh r5, [r8, #0xe]
|
|
strb r4, [r8, #0xb]
|
|
ldrb r0, [sl, #1]
|
|
strb r0, [r8, #4]
|
|
ldrh r0, [sl, #0x18]
|
|
strh r0, [r8, #0x28]
|
|
ldrh r0, [sl, #0x1a]
|
|
strh r0, [r8, #0x2a]
|
|
ldrh r0, [sl, #0x1c]
|
|
strh r0, [r8, #0x2c]
|
|
ldr r0, [r8, #0x34]
|
|
cmp r0, #0
|
|
bne _02008EC0
|
|
cmp sb, #0
|
|
beq _02008EC0
|
|
mov r0, r8
|
|
strb fp, [r8, #0x22]
|
|
bl sub_02007B1C
|
|
_02008EC0:
|
|
ldr r8, [r8, #0x50]
|
|
_02008EC4:
|
|
cmp r8, #0
|
|
bne _02008E64
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02008ED4: .word 0x03806FDC
|
|
arm_func_end sub_02008D80
|
|
|
|
arm_func_start sub_02008ED8
|
|
sub_02008ED8: ; 0x02008ED8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x24
|
|
mov r2, #0
|
|
str r2, [sp, #0x10]
|
|
str r1, [sp, #8]
|
|
mov r7, r0
|
|
mov sl, r2
|
|
_02008EF4:
|
|
mov r0, r7
|
|
mov r1, sl
|
|
bl sub_02008C64
|
|
movs r8, r0
|
|
ldrne r0, [r8, #0x28]
|
|
cmpne r0, #0
|
|
beq _020099F4
|
|
ldr r0, [r8, #0x3c]
|
|
b _02008F50
|
|
_02008F18:
|
|
ldr r1, [r0, #0x34]
|
|
cmp r1, #0
|
|
subgt r1, r1, #1
|
|
strgt r1, [r0, #0x34]
|
|
ldrb r1, [r0, #3]
|
|
mov r1, r1, lsl #0x1d
|
|
movs r1, r1, lsr #0x1f
|
|
bne _02008F4C
|
|
ldr r2, [r0, #0x14]
|
|
ldr r1, [r0, #0x18]
|
|
cmp r2, r1
|
|
addlt r1, r2, #1
|
|
strlt r1, [r0, #0x14]
|
|
_02008F4C:
|
|
ldr r0, [r0, #0x50]
|
|
_02008F50:
|
|
cmp r0, #0
|
|
bne _02008F18
|
|
ldrb r1, [r8]
|
|
mov r0, r1, lsl #0x1b
|
|
movs r0, r0, lsr #0x1f
|
|
beq _02008F80
|
|
ldr r0, [r8, #0x3c]
|
|
cmp r0, #0
|
|
movne r0, #0
|
|
bne _020099D8
|
|
bic r0, r1, #0x10
|
|
strb r0, [r8]
|
|
_02008F80:
|
|
ldr r0, [r8, #0x20]
|
|
cmp r0, #0
|
|
subgt r0, r0, #1
|
|
strgt r0, [r8, #0x20]
|
|
cmpgt r0, #0
|
|
movgt r0, #0
|
|
bgt _020099D8
|
|
ldr r0, [r8, #0x28]
|
|
bl sub_0200896C
|
|
ldr r0, _02009A1C ; =0x0000FFFF
|
|
sub fp, r0, #0x10000
|
|
b _020099B8
|
|
_02008FB0:
|
|
mov r0, r8
|
|
mov sb, #0
|
|
mov r4, #1
|
|
bl sub_02008478
|
|
mov r6, r0
|
|
cmp r6, #0xa2
|
|
bne _02008FE4
|
|
mov r0, r8
|
|
bl sub_02008478
|
|
mov r6, r0
|
|
ldrb r0, [r8]
|
|
mov r0, r0, lsl #0x19
|
|
mov r4, r0, lsr #0x1f
|
|
_02008FE4:
|
|
cmp r6, #0xa0
|
|
bne _02009000
|
|
mov r0, r8
|
|
bl sub_02008478
|
|
mov r6, r0
|
|
mov r5, #3
|
|
mov sb, #1
|
|
_02009000:
|
|
cmp r6, #0xa1
|
|
bne _0200901C
|
|
mov r0, r8
|
|
bl sub_02008478
|
|
mov r6, r0
|
|
mov r5, #4
|
|
mov sb, #1
|
|
_0200901C:
|
|
tst r6, #0x80
|
|
bne _020092A0
|
|
mov r0, r8
|
|
bl sub_02008478
|
|
cmp sb, #0
|
|
str r0, [sp, #0xc]
|
|
movne r2, r5
|
|
moveq r2, #2
|
|
mov r0, r8
|
|
mov r1, r7
|
|
bl sub_020089D8
|
|
cmp r4, #0
|
|
mov r4, r0
|
|
ldrsb r0, [r8, #0x13]
|
|
add sb, r6, r0
|
|
beq _020099B8
|
|
cmp sb, #0
|
|
movlt sb, #0
|
|
blt _02009070
|
|
cmp sb, #0x7f
|
|
movgt sb, #0x7f
|
|
_02009070:
|
|
ldrb r1, [r8]
|
|
mov r0, r1, lsl #0x1d
|
|
movs r0, r0, lsr #0x1f
|
|
bne _02009274
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
beq _02009274
|
|
mov r0, r1, lsl #0x1c
|
|
mov r6, #0
|
|
movs r0, r0, lsr #0x1f
|
|
ldrne r6, [r8, #0x3c]
|
|
cmpne r6, #0
|
|
strneb sb, [r6, #8]
|
|
ldrne r0, [sp, #0xc]
|
|
strneb r0, [r6, #9]
|
|
cmp r6, #0
|
|
bne _020091A4
|
|
ldr r0, [r7, #0x20]
|
|
ldrh r1, [r8, #2]
|
|
mov r2, sb
|
|
add r3, sp, #0x16
|
|
bl sub_02009B30
|
|
cmp r0, #0
|
|
beq _02009274
|
|
ldrb r0, [sp, #0x16]
|
|
cmp r0, #4
|
|
addls pc, pc, r0, lsl #2
|
|
b _02009274
|
|
_020090E0: ; jump table
|
|
b _02009274 ; case 0
|
|
b _020090F4 ; case 1
|
|
b _020090FC ; case 2
|
|
b _02009104 ; case 3
|
|
b _020090F4 ; case 4
|
|
_020090F4:
|
|
ldr r1, _02009A1C ; =0x0000FFFF
|
|
b _02009108
|
|
_020090FC:
|
|
mov r1, #0x3f00
|
|
b _02009108
|
|
_02009104:
|
|
mov r1, #0xc000
|
|
_02009108:
|
|
ldrh r0, [r8, #0x1e]
|
|
ldr r3, _02009A20 ; =0x03800B38
|
|
str r8, [sp]
|
|
ldrb r2, [r8]
|
|
and r0, r1, r0
|
|
mov r2, r2, lsl #0x18
|
|
ldrb r6, [r7, #4]
|
|
ldrb r1, [r8, #0x12]
|
|
mov r2, r2, lsr #0x1f
|
|
add r1, r6, r1
|
|
bl sub_02007B38
|
|
movs r6, r0
|
|
beq _02009274
|
|
ldrb r0, [r8]
|
|
mov r0, r0, lsl #0x1c
|
|
movs r0, r0, lsr #0x1f
|
|
movne r3, fp
|
|
bne _0200915C
|
|
cmp r4, #0
|
|
movgt r3, r4
|
|
movle r3, fp
|
|
_0200915C:
|
|
ldr r2, [sp, #0xc]
|
|
ldr r1, [r7, #0x20]
|
|
mov r0, r6
|
|
str r1, [sp]
|
|
add r1, sp, #0x16
|
|
str r1, [sp, #4]
|
|
mov r1, sb
|
|
bl sub_02009CF0
|
|
cmp r0, #0
|
|
bne _02009198
|
|
mov r0, #0
|
|
strb r0, [r6, #0x22]
|
|
mov r0, r6
|
|
bl sub_02007D04
|
|
b _02009274
|
|
_02009198:
|
|
ldr r0, [r8, #0x3c]
|
|
str r0, [r6, #0x50]
|
|
str r6, [r8, #0x3c]
|
|
_020091A4:
|
|
ldrb r1, [r8, #0xe]
|
|
cmp r1, #0xff
|
|
beq _020091B8
|
|
mov r0, r6
|
|
bl sub_02007ABC
|
|
_020091B8:
|
|
ldrb r1, [r8, #0xf]
|
|
cmp r1, #0xff
|
|
beq _020091CC
|
|
mov r0, r6
|
|
bl sub_02007ADC
|
|
_020091CC:
|
|
ldrb r1, [r8, #0x10]
|
|
cmp r1, #0xff
|
|
beq _020091E0
|
|
mov r0, r6
|
|
bl sub_02007AF8
|
|
_020091E0:
|
|
ldrb r1, [r8, #0x11]
|
|
cmp r1, #0xff
|
|
beq _020091F4
|
|
mov r0, r6
|
|
bl sub_02007B00
|
|
_020091F4:
|
|
ldrsh r0, [r8, #0x16]
|
|
strh r0, [r6, #0x32]
|
|
ldrb r0, [r8]
|
|
mov r0, r0, lsl #0x1a
|
|
movs r0, r0, lsr #0x1f
|
|
beq _02009224
|
|
ldrsh r1, [r6, #0x32]
|
|
ldrb r0, [r8, #0x14]
|
|
sub r0, r0, sb
|
|
mov r0, r0, lsl #0x16
|
|
add r0, r1, r0, asr #16
|
|
strh r0, [r6, #0x32]
|
|
_02009224:
|
|
ldrb r0, [r8, #0x15]
|
|
cmp r0, #0
|
|
bne _02009250
|
|
cmp r4, #0
|
|
movgt r0, r4
|
|
movle r0, fp
|
|
str r0, [r6, #0x18]
|
|
ldrb r0, [r6, #3]
|
|
bic r0, r0, #4
|
|
strb r0, [r6, #3]
|
|
b _0200926C
|
|
_02009250:
|
|
mul r1, r0, r0
|
|
ldrsh r0, [r6, #0x32]
|
|
cmp r0, #0
|
|
rsblt r0, r0, #0
|
|
mul r0, r1, r0
|
|
mov r0, r0, asr #0xb
|
|
str r0, [r6, #0x18]
|
|
_0200926C:
|
|
mov r0, #0
|
|
str r0, [r6, #0x14]
|
|
_02009274:
|
|
strb sb, [r8, #0x14]
|
|
ldrb r0, [r8]
|
|
mov r0, r0, lsl #0x1e
|
|
movs r0, r0, lsr #0x1f
|
|
beq _020099B8
|
|
str r4, [r8, #0x20]
|
|
cmp r4, #0
|
|
ldreqb r0, [r8]
|
|
orreq r0, r0, #0x10
|
|
streqb r0, [r8]
|
|
b _020099B8
|
|
_020092A0:
|
|
and r0, r6, #0xf0
|
|
cmp r0, #0xc0
|
|
bgt _020092D4
|
|
bge _0200941C
|
|
cmp r0, #0x90
|
|
bgt _020092C8
|
|
bge _02009340
|
|
cmp r0, #0x80
|
|
beq _020092F8
|
|
b _020099B8
|
|
_020092C8:
|
|
cmp r0, #0xb0
|
|
beq _020096CC
|
|
b _020099B8
|
|
_020092D4:
|
|
cmp r0, #0xe0
|
|
bgt _020092EC
|
|
bge _02009678
|
|
cmp r0, #0xd0
|
|
beq _0200941C
|
|
b _020099B8
|
|
_020092EC:
|
|
cmp r0, #0xf0
|
|
beq _02009914
|
|
b _020099B8
|
|
_020092F8:
|
|
cmp sb, #0
|
|
movne r2, r5
|
|
moveq r2, #2
|
|
mov r0, r8
|
|
mov r1, r7
|
|
bl sub_020089D8
|
|
cmp r4, #0
|
|
beq _020099B8
|
|
cmp r6, #0x80
|
|
beq _0200932C
|
|
cmp r6, #0x81
|
|
beq _02009334
|
|
b _020099B8
|
|
_0200932C:
|
|
str r0, [r8, #0x20]
|
|
b _020099B8
|
|
_02009334:
|
|
cmp r0, #0x10000
|
|
strlth r0, [r8, #2]
|
|
b _020099B8
|
|
_02009340:
|
|
cmp r6, #0x93
|
|
beq _0200935C
|
|
cmp r6, #0x94
|
|
beq _020093BC
|
|
cmp r6, #0x95
|
|
beq _020093D8
|
|
b _020099B8
|
|
_0200935C:
|
|
mov r0, r8
|
|
bl sub_02008478
|
|
mov r6, r0
|
|
mov r0, r8
|
|
bl sub_020089A8
|
|
cmp r4, #0
|
|
mov sb, r0
|
|
beq _020099B8
|
|
mov r1, r6
|
|
mov r0, r7
|
|
bl sub_02008C64
|
|
movs r4, r0
|
|
cmpne r4, r8
|
|
beq _020099B8
|
|
mov r1, r7
|
|
mov r2, fp
|
|
bl sub_02008BC8
|
|
mov r0, r4
|
|
bl sub_02008C30
|
|
mov r0, r4
|
|
mov r2, sb
|
|
ldr r1, [r8, #0x24]
|
|
bl sub_02008BB8
|
|
b _020099B8
|
|
_020093BC:
|
|
mov r0, r8
|
|
bl sub_020089A8
|
|
cmp r4, #0
|
|
ldrne r1, [r8, #0x24]
|
|
addne r0, r1, r0
|
|
strne r0, [r8, #0x28]
|
|
b _020099B8
|
|
_020093D8:
|
|
mov r0, r8
|
|
bl sub_020089A8
|
|
cmp r4, #0
|
|
beq _020099B8
|
|
ldrb r1, [r8, #0x3b]
|
|
cmp r1, #3
|
|
bhs _020099B8
|
|
add r1, r8, r1, lsl #2
|
|
ldr r2, [r8, #0x28]
|
|
str r2, [r1, #0x2c]
|
|
ldrb r1, [r8, #0x3b]
|
|
add r1, r1, #1
|
|
strb r1, [r8, #0x3b]
|
|
ldr r1, [r8, #0x24]
|
|
add r0, r1, r0
|
|
str r0, [r8, #0x28]
|
|
b _020099B8
|
|
_0200941C:
|
|
cmp sb, #0
|
|
movne r2, r5
|
|
moveq r2, #0
|
|
mov r0, r8
|
|
mov r1, r7
|
|
bl sub_020089D8
|
|
cmp r4, #0
|
|
strb r0, [sp, #0x14]
|
|
beq _020099B8
|
|
sub r1, r6, #0xc0
|
|
cmp r1, #0x17
|
|
addls pc, pc, r1, lsl #2
|
|
b _020099B8
|
|
_02009450: ; jump table
|
|
b _02009648 ; case 0
|
|
b _020094B0 ; case 1
|
|
b _020094C8 ; case 2
|
|
b _02009630 ; case 3
|
|
b _0200963C ; case 4
|
|
b _020094D4 ; case 5
|
|
b _020094E0 ; case 6
|
|
b _020094EC ; case 7
|
|
b _020095AC ; case 8
|
|
b _020095F4 ; case 9
|
|
b _02009514 ; case 10
|
|
b _02009520 ; case 11
|
|
b _0200952C ; case 12
|
|
b _02009538 ; case 13
|
|
b _02009614 ; case 14
|
|
b _02009508 ; case 15
|
|
b _02009544 ; case 16
|
|
b _02009550 ; case 17
|
|
b _0200955C ; case 18
|
|
b _02009568 ; case 19
|
|
b _02009574 ; case 20
|
|
b _020094BC ; case 21
|
|
b _02009658 ; case 22
|
|
b _020095E0 ; case 23
|
|
_020094B0:
|
|
and r0, r0, #0xff
|
|
strb r0, [r8, #4]
|
|
b _020099B8
|
|
_020094BC:
|
|
and r0, r0, #0xff
|
|
strb r0, [r8, #5]
|
|
b _020099B8
|
|
_020094C8:
|
|
and r0, r0, #0xff
|
|
strb r0, [r7, #5]
|
|
b _020099B8
|
|
_020094D4:
|
|
and r0, r0, #0xff
|
|
strb r0, [r8, #7]
|
|
b _020099B8
|
|
_020094E0:
|
|
and r0, r0, #0xff
|
|
strb r0, [r8, #0x12]
|
|
b _020099B8
|
|
_020094EC:
|
|
and r0, r0, #0xff
|
|
mov r0, r0, lsl #0x1f
|
|
ldrb r1, [r8]
|
|
bic r1, r1, #2
|
|
orr r0, r1, r0, lsr #30
|
|
strb r0, [r8]
|
|
b _020099B8
|
|
_02009508:
|
|
and r0, r0, #0xff
|
|
strb r0, [r8, #0x15]
|
|
b _020099B8
|
|
_02009514:
|
|
and r0, r0, #0xff
|
|
strb r0, [r8, #0x1a]
|
|
b _020099B8
|
|
_02009520:
|
|
and r0, r0, #0xff
|
|
strb r0, [r8, #0x19]
|
|
b _020099B8
|
|
_0200952C:
|
|
and r0, r0, #0xff
|
|
strb r0, [r8, #0x18]
|
|
b _020099B8
|
|
_02009538:
|
|
and r0, r0, #0xff
|
|
strb r0, [r8, #0x1b]
|
|
b _020099B8
|
|
_02009544:
|
|
and r0, r0, #0xff
|
|
strb r0, [r8, #0xe]
|
|
b _020099B8
|
|
_02009550:
|
|
and r0, r0, #0xff
|
|
strb r0, [r8, #0xf]
|
|
b _020099B8
|
|
_0200955C:
|
|
and r0, r0, #0xff
|
|
strb r0, [r8, #0x10]
|
|
b _020099B8
|
|
_02009568:
|
|
and r0, r0, #0xff
|
|
strb r0, [r8, #0x11]
|
|
b _020099B8
|
|
_02009574:
|
|
ldrb r1, [r8, #0x3b]
|
|
cmp r1, #3
|
|
bhs _020099B8
|
|
add r2, r8, r1, lsl #2
|
|
and r1, r0, #0xff
|
|
ldr r0, [r8, #0x28]
|
|
str r0, [r2, #0x2c]
|
|
ldrb r0, [r8, #0x3b]
|
|
add r0, r8, r0
|
|
strb r1, [r0, #0x38]
|
|
ldrb r0, [r8, #0x3b]
|
|
add r0, r0, #1
|
|
strb r0, [r8, #0x3b]
|
|
b _020099B8
|
|
_020095AC:
|
|
and r0, r0, #0xff
|
|
mov r1, r0, lsl #0x1f
|
|
ldrb r2, [r8]
|
|
mov r0, r8
|
|
bic r2, r2, #8
|
|
orr r1, r2, r1, lsr #28
|
|
strb r1, [r8]
|
|
mov r1, r7
|
|
mov r2, fp
|
|
bl sub_02008BC8
|
|
mov r0, r8
|
|
bl sub_02008C30
|
|
b _020099B8
|
|
_020095E0:
|
|
and r2, r0, #0xff
|
|
mov r0, r8
|
|
mov r1, r7
|
|
bl sub_02009AB0
|
|
b _020099B8
|
|
_020095F4:
|
|
and r1, r0, #0xff
|
|
ldrsb r0, [r8, #0x13]
|
|
add r0, r1, r0
|
|
strb r0, [r8, #0x14]
|
|
ldrb r0, [r8]
|
|
orr r0, r0, #0x20
|
|
strb r0, [r8]
|
|
b _020099B8
|
|
_02009614:
|
|
and r0, r0, #0xff
|
|
mov r0, r0, lsl #0x1f
|
|
ldrb r1, [r8]
|
|
bic r1, r1, #0x20
|
|
orr r0, r1, r0, lsr #26
|
|
strb r0, [r8]
|
|
b _020099B8
|
|
_02009630:
|
|
ldrsb r0, [sp, #0x14]
|
|
strb r0, [r8, #0x13]
|
|
b _020099B8
|
|
_0200963C:
|
|
ldrsb r0, [sp, #0x14]
|
|
strb r0, [r8, #6]
|
|
b _020099B8
|
|
_02009648:
|
|
and r0, r0, #0xff
|
|
sub r0, r0, #0x40
|
|
strb r0, [r8, #8]
|
|
b _020099B8
|
|
_02009658:
|
|
ldr r1, _02009A24 ; =0x03807E50
|
|
ldr r1, [r1]
|
|
cmp r1, #0
|
|
beq _020099B8
|
|
and r1, r0, #0xff
|
|
mov r0, r7
|
|
bl sub_02009A28
|
|
b _020099B8
|
|
_02009678:
|
|
cmp sb, #0
|
|
movne r2, r5
|
|
moveq r2, #1
|
|
mov r0, r8
|
|
mov r1, r7
|
|
bl sub_020089D8
|
|
mov r0, r0, lsl #0x10
|
|
cmp r4, #0
|
|
mov r0, r0, asr #0x10
|
|
beq _020099B8
|
|
cmp r6, #0xe0
|
|
beq _020096C4
|
|
cmp r6, #0xe1
|
|
beq _020096BC
|
|
cmp r6, #0xe3
|
|
streqh r0, [r8, #0x16]
|
|
b _020099B8
|
|
_020096BC:
|
|
strh r0, [r7, #0x18]
|
|
b _020099B8
|
|
_020096C4:
|
|
strh r0, [r8, #0x1c]
|
|
b _020099B8
|
|
_020096CC:
|
|
mov r0, r8
|
|
bl sub_02008478
|
|
cmp sb, #0
|
|
movne r2, r5
|
|
mov sb, r0
|
|
moveq r2, #1
|
|
mov r0, r8
|
|
mov r1, r7
|
|
bl sub_020089D8
|
|
mov r0, r0, lsl #0x10
|
|
mov r1, sb
|
|
mov sb, r0, asr #0x10
|
|
mov r0, r7
|
|
bl sub_02009A28
|
|
cmp r4, #0
|
|
mov r4, r0
|
|
cmpne r4, #0
|
|
beq _020099B8
|
|
sub r0, r6, #0xb0
|
|
cmp r0, #0xd
|
|
addls pc, pc, r0, lsl #2
|
|
b _020099B8
|
|
_02009724: ; jump table
|
|
b _0200975C ; case 0
|
|
b _02009764 ; case 1
|
|
b _02009774 ; case 2
|
|
b _02009784 ; case 3
|
|
b _02009794 ; case 4
|
|
b _020097B0 ; case 5
|
|
b _020097D4 ; case 6
|
|
b _020099B8 ; case 7
|
|
b _0200980C ; case 8
|
|
b _02009838 ; case 9
|
|
b _02009864 ; case 10
|
|
b _02009890 ; case 11
|
|
b _020098BC ; case 12
|
|
b _020098E8 ; case 13
|
|
_0200975C:
|
|
strh sb, [r4]
|
|
b _020099B8
|
|
_02009764:
|
|
ldrsh r0, [r4]
|
|
add r0, r0, sb
|
|
strh r0, [r4]
|
|
b _020099B8
|
|
_02009774:
|
|
ldrsh r0, [r4]
|
|
sub r0, r0, sb
|
|
strh r0, [r4]
|
|
b _020099B8
|
|
_02009784:
|
|
ldrsh r0, [r4]
|
|
mul r1, r0, sb
|
|
strh r1, [r4]
|
|
b _020099B8
|
|
_02009794:
|
|
cmp sb, #0
|
|
beq _020099B8
|
|
mov r1, sb
|
|
ldrsh r0, [r4]
|
|
bl sub_0200EDB0
|
|
strh r0, [r4]
|
|
b _020099B8
|
|
_020097B0:
|
|
cmp sb, #0
|
|
ldrgesh r0, [r4]
|
|
movge r0, r0, lsl sb
|
|
strgeh r0, [r4]
|
|
ldrltsh r1, [r4]
|
|
rsblt r0, sb, #0
|
|
movlt r0, r1, asr r0
|
|
strlth r0, [r4]
|
|
b _020099B8
|
|
_020097D4:
|
|
cmp sb, #0
|
|
rsblt r0, sb, #0
|
|
movlt r0, r0, lsl #0x10
|
|
mov r6, #0
|
|
movlt sb, r0, asr #0x10
|
|
movlt r6, #1
|
|
bl sub_020070AC
|
|
add r1, sb, #1
|
|
mul r1, r0, r1
|
|
mov r0, r1, asr #0x10
|
|
cmp r6, #0
|
|
rsbne r0, r0, #0
|
|
strh r0, [r4]
|
|
b _020099B8
|
|
_0200980C:
|
|
ldrsh r0, [r4]
|
|
ldrb r1, [r8]
|
|
cmp r0, sb
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
and r0, r0, #0xff
|
|
mov r0, r0, lsl #0x1f
|
|
bic r1, r1, #0x40
|
|
orr r0, r1, r0, lsr #25
|
|
strb r0, [r8]
|
|
b _020099B8
|
|
_02009838:
|
|
ldrsh r0, [r4]
|
|
ldrb r1, [r8]
|
|
cmp r0, sb
|
|
movge r0, #1
|
|
movlt r0, #0
|
|
and r0, r0, #0xff
|
|
mov r0, r0, lsl #0x1f
|
|
bic r1, r1, #0x40
|
|
orr r0, r1, r0, lsr #25
|
|
strb r0, [r8]
|
|
b _020099B8
|
|
_02009864:
|
|
ldrsh r0, [r4]
|
|
ldrb r1, [r8]
|
|
cmp r0, sb
|
|
movgt r0, #1
|
|
movle r0, #0
|
|
and r0, r0, #0xff
|
|
mov r0, r0, lsl #0x1f
|
|
bic r1, r1, #0x40
|
|
orr r0, r1, r0, lsr #25
|
|
strb r0, [r8]
|
|
b _020099B8
|
|
_02009890:
|
|
ldrsh r0, [r4]
|
|
ldrb r1, [r8]
|
|
cmp r0, sb
|
|
movle r0, #1
|
|
movgt r0, #0
|
|
and r0, r0, #0xff
|
|
mov r0, r0, lsl #0x1f
|
|
bic r1, r1, #0x40
|
|
orr r0, r1, r0, lsr #25
|
|
strb r0, [r8]
|
|
b _020099B8
|
|
_020098BC:
|
|
ldrsh r0, [r4]
|
|
ldrb r1, [r8]
|
|
cmp r0, sb
|
|
movlt r0, #1
|
|
movge r0, #0
|
|
and r0, r0, #0xff
|
|
mov r0, r0, lsl #0x1f
|
|
bic r1, r1, #0x40
|
|
orr r0, r1, r0, lsr #25
|
|
strb r0, [r8]
|
|
b _020099B8
|
|
_020098E8:
|
|
ldrsh r0, [r4]
|
|
ldrb r1, [r8]
|
|
cmp r0, sb
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
and r0, r0, #0xff
|
|
mov r0, r0, lsl #0x1f
|
|
bic r1, r1, #0x40
|
|
orr r0, r1, r0, lsr #25
|
|
strb r0, [r8]
|
|
b _020099B8
|
|
_02009914:
|
|
cmp r4, #0
|
|
beq _020099B8
|
|
sub r0, r6, #0xfc
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _020099B8
|
|
_0200992C: ; jump table
|
|
b _02009964 ; case 0
|
|
b _0200993C ; case 1
|
|
b _020099B8 ; case 2
|
|
b _020099B0 ; case 3
|
|
_0200993C:
|
|
ldrb r0, [r8, #0x3b]
|
|
cmp r0, #0
|
|
beq _020099B8
|
|
sub r0, r0, #1
|
|
strb r0, [r8, #0x3b]
|
|
and r0, r0, #0xff
|
|
add r0, r8, r0, lsl #2
|
|
ldr r0, [r0, #0x2c]
|
|
str r0, [r8, #0x28]
|
|
b _020099B8
|
|
_02009964:
|
|
ldrb r0, [r8, #0x3b]
|
|
cmp r0, #0
|
|
beq _020099B8
|
|
add r1, r8, r0
|
|
ldrb r0, [r1, #0x37]
|
|
cmp r0, #0
|
|
beq _02009998
|
|
sub r0, r0, #1
|
|
ands r0, r0, #0xff
|
|
ldreqb r0, [r8, #0x3b]
|
|
subeq r0, r0, #1
|
|
streqb r0, [r8, #0x3b]
|
|
beq _020099B8
|
|
_02009998:
|
|
strb r0, [r1, #0x37]
|
|
ldrb r0, [r8, #0x3b]
|
|
add r0, r8, r0, lsl #2
|
|
ldr r0, [r0, #0x28]
|
|
str r0, [r8, #0x28]
|
|
b _020099B8
|
|
_020099B0:
|
|
mvn r0, #0
|
|
b _020099D8
|
|
_020099B8:
|
|
ldr r0, [r8, #0x20]
|
|
cmp r0, #0
|
|
bne _020099D4
|
|
ldrb r0, [r8]
|
|
mov r0, r0, lsl #0x1b
|
|
movs r0, r0, lsr #0x1f
|
|
beq _02008FB0
|
|
_020099D4:
|
|
mov r0, #0
|
|
_020099D8:
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
streq r0, [sp, #0x10]
|
|
beq _020099F4
|
|
mov r0, r7
|
|
mov r1, sl
|
|
bl sub_02008C90
|
|
_020099F4:
|
|
add sl, sl, #1
|
|
cmp sl, #0x10
|
|
blt _02008EF4
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
add sp, sp, #0x24
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02009A1C: .word 0x0000FFFF
|
|
_02009A20: .word 0x03800B38
|
|
_02009A24: .word 0x03807E50
|
|
arm_func_end sub_02008ED8
|
|
|
|
arm_func_start sub_02009A28
|
|
sub_02009A28: ; 0x02009A28
|
|
ldr r2, _02009A68 ; =0x03807E6C
|
|
ldr r3, [r2]
|
|
cmp r3, #0
|
|
moveq r0, #0
|
|
bxeq lr
|
|
cmp r1, #0x10
|
|
addge r2, r3, #0x260
|
|
subge r0, r1, #0x10
|
|
addge r0, r2, r0, lsl #1
|
|
bxge lr
|
|
ldrb r2, [r0, #1]
|
|
add r3, r3, #0x20
|
|
mov r0, #0x24
|
|
mla r0, r2, r0, r3
|
|
add r0, r0, r1, lsl #1
|
|
bx lr
|
|
.align 2, 0
|
|
_02009A68: .word 0x03807E6C
|
|
arm_func_end sub_02009A28
|
|
|
|
arm_func_start sub_02009A6C
|
|
sub_02009A6C: ; 0x02009A6C
|
|
ldr ip, _02009AAC ; =0x038085F0
|
|
mov r0, #0
|
|
b _02009A9C
|
|
_02009A78:
|
|
ldrb r1, [ip, r0, lsl #6]
|
|
mov r3, r0, lsl #6
|
|
mov r2, r1, lsl #0x1f
|
|
movs r2, r2, lsr #0x1f
|
|
biceq r1, r1, #1
|
|
orreq r1, r1, #1
|
|
streqb r1, [ip, r3]
|
|
bxeq lr
|
|
add r0, r0, #1
|
|
_02009A9C:
|
|
cmp r0, #0x20
|
|
blt _02009A78
|
|
mvn r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02009AAC: .word 0x038085F0
|
|
arm_func_end sub_02009A6C
|
|
|
|
arm_func_start sub_02009AB0
|
|
sub_02009AB0: ; 0x02009AB0
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
cmp r2, #3
|
|
addls pc, pc, r2, lsl #2
|
|
b _02009B28
|
|
_02009AC4: ; jump table
|
|
b _02009AD4 ; case 0
|
|
b _02009AE4 ; case 1
|
|
b _02009AF4 ; case 2
|
|
b _02009B0C ; case 3
|
|
_02009AD4:
|
|
ldrb r0, [r4]
|
|
bic r0, r0, #4
|
|
strb r0, [r4]
|
|
b _02009B28
|
|
_02009AE4:
|
|
ldrb r0, [r4]
|
|
orr r0, r0, #4
|
|
strb r0, [r4]
|
|
b _02009B28
|
|
_02009AF4:
|
|
ldrb r3, [r4]
|
|
mvn r2, #0
|
|
orr r3, r3, #4
|
|
strb r3, [r4]
|
|
bl sub_02008BC8
|
|
b _02009B28
|
|
_02009B0C:
|
|
ldrb r3, [r4]
|
|
mov r2, #0x7f
|
|
orr r3, r3, #4
|
|
strb r3, [r4]
|
|
bl sub_02008BC8
|
|
mov r0, r4
|
|
bl sub_02008C30
|
|
_02009B28:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02009AB0
|
|
|
|
arm_func_start sub_02009B30
|
|
sub_02009B30: ; 0x02009B30
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
movs r7, r1
|
|
mov r6, r0
|
|
mov r5, r2
|
|
mov r4, r3
|
|
movmi r0, #0
|
|
bmi _02009CA8
|
|
bl sub_020071CC
|
|
ldr r0, [r6, #0x38]
|
|
cmp r7, r0
|
|
blo _02009B68
|
|
bl sub_020071D0
|
|
mov r0, #0
|
|
b _02009CA8
|
|
_02009B68:
|
|
add r0, r6, r7, lsl #2
|
|
ldr r1, [r0, #0x3c]
|
|
and r0, r1, #0xff
|
|
strb r1, [r4]
|
|
cmp r0, #0x11
|
|
mov r1, r1, lsr #8
|
|
addls pc, pc, r0, lsl #2
|
|
b _02009C94
|
|
_02009B88: ; jump table
|
|
b _02009C94 ; case 0
|
|
b _02009BD0 ; case 1
|
|
b _02009BD0 ; case 2
|
|
b _02009BD0 ; case 3
|
|
b _02009BD0 ; case 4
|
|
b _02009BD0 ; case 5
|
|
b _02009C94 ; case 6
|
|
b _02009C94 ; case 7
|
|
b _02009C94 ; case 8
|
|
b _02009C94 ; case 9
|
|
b _02009C94 ; case 10
|
|
b _02009C94 ; case 11
|
|
b _02009C94 ; case 12
|
|
b _02009C94 ; case 13
|
|
b _02009C94 ; case 14
|
|
b _02009C94 ; case 15
|
|
b _02009BF0 ; case 16
|
|
b _02009C40 ; case 17
|
|
_02009BD0:
|
|
add r3, r6, r1
|
|
add r2, r4, #2
|
|
mov r1, #5
|
|
_02009BDC:
|
|
ldrh r0, [r3], #2
|
|
subs r1, r1, #1
|
|
strh r0, [r2], #2
|
|
bne _02009BDC
|
|
b _02009CA0
|
|
_02009BF0:
|
|
ldrb r0, [r6, r1]
|
|
add r2, r6, r1
|
|
ldrb r1, [r2, #1]
|
|
cmp r5, r0
|
|
blt _02009C0C
|
|
cmp r5, r1
|
|
ble _02009C18
|
|
_02009C0C:
|
|
bl sub_020071D0
|
|
mov r0, #0
|
|
b _02009CA8
|
|
_02009C18:
|
|
sub r1, r5, r0
|
|
mov r0, #0xc
|
|
mla r0, r1, r0, r2
|
|
add r2, r0, #2
|
|
mov r1, #6
|
|
_02009C2C:
|
|
ldrh r0, [r2], #2
|
|
subs r1, r1, #1
|
|
strh r0, [r4], #2
|
|
bne _02009C2C
|
|
b _02009CA0
|
|
_02009C40:
|
|
add r2, r6, r1
|
|
mov r1, #0
|
|
b _02009C64
|
|
_02009C4C:
|
|
add r1, r1, #1
|
|
cmp r1, #8
|
|
blt _02009C64
|
|
bl sub_020071D0
|
|
mov r0, #0
|
|
b _02009CA8
|
|
_02009C64:
|
|
ldrb r0, [r2, r1]
|
|
cmp r5, r0
|
|
bgt _02009C4C
|
|
mov r0, #0xc
|
|
mla r0, r1, r0, r2
|
|
add r2, r0, #8
|
|
mov r1, #6
|
|
_02009C80:
|
|
ldrh r0, [r2], #2
|
|
subs r1, r1, #1
|
|
strh r0, [r4], #2
|
|
bne _02009C80
|
|
b _02009CA0
|
|
_02009C94:
|
|
bl sub_020071D0
|
|
mov r0, #0
|
|
b _02009CA8
|
|
_02009CA0:
|
|
bl sub_020071D0
|
|
mov r0, #1
|
|
_02009CA8:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_02009B30
|
|
|
|
arm_func_start sub_02009CB0
|
|
sub_02009CB0: ; 0x02009CB0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
bl sub_020071CC
|
|
add r0, r5, r4, lsl #2
|
|
ldr r4, [r0, #0x3c]
|
|
cmp r4, #0
|
|
beq _02009CDC
|
|
cmp r4, #0x2000000
|
|
addlo r4, r5, r4
|
|
b _02009CE0
|
|
_02009CDC:
|
|
mov r4, #0
|
|
_02009CE0:
|
|
bl sub_020071D0
|
|
mov r0, r4
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_02009CB0
|
|
|
|
arm_func_start sub_02009CF0
|
|
sub_02009CF0: ; 0x02009CF0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r5, [sp, #0x24]
|
|
mov sb, r0
|
|
ldrb r4, [r5, #0xa]
|
|
ldrb r0, [r5]
|
|
cmp r4, #0xff
|
|
mov r6, r3
|
|
mov r8, r1
|
|
mov r7, r2
|
|
mvneq r6, #0
|
|
moveq r4, #0
|
|
cmp r0, #4
|
|
addls pc, pc, r0, lsl #2
|
|
b _02009DD0
|
|
_02009D28: ; jump table
|
|
b _02009DD0 ; case 0
|
|
b _02009D3C ; case 1
|
|
b _02009DAC ; case 2
|
|
b _02009DC0 ; case 3
|
|
b _02009D3C ; case 4
|
|
_02009D3C:
|
|
cmp r0, #1
|
|
bne _02009D80
|
|
ldr r2, [sp, #0x20]
|
|
ldrh r0, [r5, #4]
|
|
ldrh r1, [r5, #2]
|
|
add r0, r2, r0, lsl #3
|
|
ldr r0, [r0, #0x18]
|
|
cmp r0, #0
|
|
moveq r1, #0
|
|
beq _02009D8C
|
|
ldr r2, [r0, #0x38]
|
|
cmp r1, r2
|
|
movhs r1, #0
|
|
bhs _02009D8C
|
|
bl sub_02009CB0
|
|
mov r1, r0
|
|
b _02009D8C
|
|
_02009D80:
|
|
ldrh r1, [r5, #4]
|
|
ldrh r0, [r5, #2]
|
|
orr r1, r0, r1, lsl #16
|
|
_02009D8C:
|
|
cmp r1, #0
|
|
moveq r0, #0
|
|
beq _02009DD4
|
|
mov r0, sb
|
|
mov r3, r6
|
|
add r2, r1, #0xc
|
|
bl sub_02007948
|
|
b _02009DD4
|
|
_02009DAC:
|
|
ldrh r1, [r5, #2]
|
|
mov r0, sb
|
|
mov r2, r6
|
|
bl sub_02007984
|
|
b _02009DD4
|
|
_02009DC0:
|
|
mov r0, sb
|
|
mov r1, r6
|
|
bl sub_020079D0
|
|
b _02009DD4
|
|
_02009DD0:
|
|
mov r0, #0
|
|
_02009DD4:
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
beq _02009E30
|
|
strb r8, [sb, #8]
|
|
ldrb r1, [r5, #6]
|
|
mov r0, sb
|
|
strb r1, [sb, #5]
|
|
strb r7, [sb, #9]
|
|
ldrb r1, [r5, #7]
|
|
bl sub_02007ABC
|
|
ldrb r1, [r5, #8]
|
|
mov r0, sb
|
|
bl sub_02007ADC
|
|
ldrb r1, [r5, #9]
|
|
mov r0, sb
|
|
bl sub_02007AF8
|
|
mov r0, sb
|
|
mov r1, r4
|
|
bl sub_02007B00
|
|
ldrb r1, [r5, #0xb]
|
|
mov r0, #1
|
|
sub r1, r1, #0x40
|
|
strb r1, [sb, #0xa]
|
|
_02009E30:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
arm_func_end sub_02009CF0
|
|
|
|
arm_func_start sub_02009E38
|
|
sub_02009E38: ; 0x02009E38
|
|
ldr ip, _02009E54 ; =0x03807E6C
|
|
mov r3, #0x24
|
|
ldr ip, [ip]
|
|
mla r3, r0, r3, ip
|
|
add r0, r3, r1, lsl #1
|
|
strh r2, [r0, #0x20]
|
|
bx lr
|
|
.align 2, 0
|
|
_02009E54: .word 0x03807E6C
|
|
arm_func_end sub_02009E38
|
|
|
|
arm_func_start sub_02009E58
|
|
sub_02009E58: ; 0x02009E58
|
|
ldr r2, _02009E70 ; =0x03807E6C
|
|
ldr r2, [r2]
|
|
add r0, r2, r0, lsl #1
|
|
add r0, r0, #0x200
|
|
strh r1, [r0, #0x60]
|
|
bx lr
|
|
.align 2, 0
|
|
_02009E70: .word 0x03807E6C
|
|
arm_func_end sub_02009E58
|
|
|
|
arm_func_start sub_02009E74
|
|
sub_02009E74: ; 0x02009E74
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r0, _02009F08 ; =0x03807E6C
|
|
mov r4, #0
|
|
ldr r0, [r0]
|
|
mov r5, r4
|
|
cmp r0, #0
|
|
beq _02009F00
|
|
mov r7, r4
|
|
mov r6, #1
|
|
_02009E98:
|
|
mov r0, r7
|
|
bl sub_02006D38
|
|
cmp r0, #0
|
|
orrne r0, r4, r6, lsl r7
|
|
movne r0, r0, lsl #0x10
|
|
add r7, r7, #1
|
|
movne r4, r0, lsr #0x10
|
|
cmp r7, #0x10
|
|
blt _02009E98
|
|
mov r0, #0
|
|
bl sub_02007334
|
|
cmp r0, #0
|
|
orrne r0, r5, #1
|
|
movne r0, r0, lsl #0x10
|
|
movne r5, r0, lsr #0x10
|
|
mov r0, #1
|
|
bl sub_02007334
|
|
cmp r0, #0
|
|
orrne r0, r5, #2
|
|
movne r0, r0, lsl #0x10
|
|
movne r5, r0, lsr #0x10
|
|
ldr r0, _02009F08 ; =0x03807E6C
|
|
ldr r1, [r0]
|
|
strh r4, [r1, #8]
|
|
ldr r0, [r0]
|
|
strh r5, [r0, #0xa]
|
|
_02009F00:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02009F08: .word 0x03807E6C
|
|
arm_func_end sub_02009E74
|
|
|
|
arm_func_start sub_02009F0C
|
|
sub_02009F0C: ; 0x02009F0C
|
|
ldr r1, _02009F34 ; =0x03807E70
|
|
mov r3, #0
|
|
mov r2, r3
|
|
_02009F18:
|
|
add r0, r1, r3, lsl #6
|
|
strb r2, [r0, #0xf80]
|
|
add r3, r3, #1
|
|
strb r2, [r0, #0xf81]
|
|
cmp r3, #8
|
|
blt _02009F18
|
|
bx lr
|
|
.align 2, 0
|
|
_02009F34: .word 0x03807E70
|
|
arm_func_end sub_02009F0C
|
|
|
|
arm_func_start sub_02009F38
|
|
sub_02009F38: ; 0x02009F38
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr lr, _02009F90 ; =sub_03808DF0
|
|
ldr r4, [sp, #0x18]
|
|
ldrb ip, [lr, r0, lsl #6]
|
|
mov r7, r1
|
|
mov r6, r2
|
|
mov r5, r3
|
|
cmp ip, #0
|
|
add r8, lr, r0, lsl #6
|
|
beq _02009F70
|
|
add r0, r8, #0x14
|
|
bl sub_020057A8
|
|
mov r0, #0
|
|
strb r0, [r8]
|
|
_02009F70:
|
|
str r7, [r8, #4]
|
|
str r6, [r8, #8]
|
|
str r5, [r8, #0xc]
|
|
ldr r0, [sp, #0x1c]
|
|
str r4, [r8, #0x10]
|
|
strb r0, [r8, #1]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02009F90: .word sub_03808DF0
|
|
arm_func_end sub_02009F38
|
|
|
|
arm_func_start sub_02009F94
|
|
sub_02009F94: ; 0x02009F94
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
|
|
sub sp, sp, #0xc
|
|
ldr r1, _0200A048 ; =sub_03808DF0
|
|
mov sb, r0
|
|
ldrb r0, [r1, sb, lsl #6]
|
|
add r8, r1, sb, lsl #6
|
|
cmp r0, #0
|
|
beq _02009FC4
|
|
add r0, r8, #0x14
|
|
bl sub_020057A8
|
|
mov r0, #0
|
|
strb r0, [r8]
|
|
_02009FC4:
|
|
ldrb r1, [r8, #1]
|
|
ldr r7, [r8, #0xc]
|
|
ldr r6, [r8, #0x10]
|
|
add r0, r8, #0x14
|
|
ldr r5, [r8, #4]
|
|
ldr r4, [r8, #8]
|
|
orr sb, sb, r1, lsl #8
|
|
bl sub_02005588
|
|
cmp r6, #0
|
|
cmpeq r7, #0
|
|
bne _0200A00C
|
|
ldr r3, _0200A04C ; =0x03801EA8
|
|
mov r1, r5
|
|
mov r2, r4
|
|
add r0, r8, #0x14
|
|
str sb, [sp]
|
|
bl sub_020056C4
|
|
b _0200A034
|
|
_0200A00C:
|
|
bl sub_02005404
|
|
ldr r2, _0200A04C ; =0x03801EA8
|
|
adds r0, r5, r0
|
|
stmib sp, {r2, sb}
|
|
adc r2, r4, r1
|
|
mov r1, r0
|
|
mov r3, r7
|
|
add r0, r8, #0x14
|
|
str r6, [sp]
|
|
bl sub_02005734
|
|
_0200A034:
|
|
mov r0, #1
|
|
strb r0, [r8]
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200A048: .word sub_03808DF0
|
|
_0200A04C: .word 0x03801EA8
|
|
arm_func_end sub_02009F94
|
|
|
|
arm_func_start sub_0200A050
|
|
sub_0200A050: ; 0x0200A050
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _0200A08C ; =sub_03808DF0
|
|
ldrb r1, [r2, r0, lsl #6]
|
|
add r4, r2, r0, lsl #6
|
|
cmp r1, #0
|
|
beq _0200A084
|
|
add r0, r4, #0x14
|
|
bl sub_020057A8
|
|
ldrb r1, [r4, #1]
|
|
mov r0, #0
|
|
add r1, r1, #1
|
|
strb r1, [r4, #1]
|
|
strb r0, [r4]
|
|
_0200A084:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200A08C: .word sub_03808DF0
|
|
arm_func_end sub_0200A050
|
|
|
|
arm_func_start sub_0200A090
|
|
sub_0200A090: ; 0x0200A090
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, #7
|
|
mov r4, #0
|
|
_0200A0A0:
|
|
mov r0, r5
|
|
mov r1, r6
|
|
mov r2, r4
|
|
bl sub_020065F8
|
|
cmp r0, #0
|
|
blt _0200A0A0
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_0200A090
|
|
|
|
arm_func_start sub_0200A0C0
|
|
sub_0200A0C0: ; 0x0200A0C0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0200A0F4 ; =0x03808FF0
|
|
ldr r1, _0200A0F8 ; =0x03809010
|
|
mov r2, #8
|
|
bl sub_02004894
|
|
ldr r1, _0200A0FC ; =0x038025CC
|
|
mov r0, #7
|
|
bl sub_02006584
|
|
ldr r0, _0200A100 ; =0x03807E6C
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200A0F4: .word 0x03808FF0
|
|
_0200A0F8: .word 0x03809010
|
|
_0200A0FC: .word 0x038025CC
|
|
_0200A100: .word 0x03807E6C
|
|
arm_func_end sub_0200A0C0
|
|
|
|
arm_func_start sub_0200A104
|
|
sub_0200A104: ; 0x0200A104
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x34
|
|
b _0200A77C
|
|
_0200A110:
|
|
ldr sl, _0200A7A0 ; =0x04000509
|
|
ldr r6, [sp, #0x18]
|
|
sub r4, sl, #1
|
|
b _0200A760
|
|
_0200A120:
|
|
add r5, sp, #0x1c
|
|
ldmia r6!, {r0, r1, r2, r3}
|
|
stmia r5!, {r0, r1, r2, r3}
|
|
ldmia r6, {r0, r1}
|
|
stmia r5, {r0, r1}
|
|
ldr r0, [sp, #0x20]
|
|
cmp r0, #0x21
|
|
addls pc, pc, r0, lsl #2
|
|
b _0200A75C
|
|
_0200A144: ; jump table
|
|
b _0200A1CC ; case 0
|
|
b _0200A1E4 ; case 1
|
|
b _0200A1F0 ; case 2
|
|
b _0200A208 ; case 3
|
|
b _0200A214 ; case 4
|
|
b _0200A224 ; case 5
|
|
b _0200A234 ; case 6
|
|
b _0200A24C ; case 7
|
|
b _0200A274 ; case 8
|
|
b _0200A288 ; case 9
|
|
b _0200A29C ; case 10
|
|
b _0200A2B8 ; case 11
|
|
b _0200A2D0 ; case 12
|
|
b _0200A398 ; case 13
|
|
b _0200A574 ; case 14
|
|
b _0200A5F4 ; case 15
|
|
b _0200A62C ; case 16
|
|
b _0200A43C ; case 17
|
|
b _0200A484 ; case 18
|
|
b _0200A4AC ; case 19
|
|
b _0200A4EC ; case 20
|
|
b _0200A534 ; case 21
|
|
b _0200A65C ; case 22
|
|
b _0200A668 ; case 23
|
|
b _0200A674 ; case 24
|
|
b _0200A680 ; case 25
|
|
b _0200A698 ; case 26
|
|
b _0200A6A8 ; case 27
|
|
b _0200A6B8 ; case 28
|
|
b _0200A6F8 ; case 29
|
|
b _0200A6C8 ; case 30
|
|
b _0200A6D8 ; case 31
|
|
b _0200A6E8 ; case 32
|
|
b _0200A708 ; case 33
|
|
_0200A1CC:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
ldr r2, [sp, #0x2c]
|
|
ldr r3, [sp, #0x30]
|
|
bl sub_020084F8
|
|
b _0200A75C
|
|
_0200A1E4:
|
|
ldr r0, [sp, #0x24]
|
|
bl sub_02008528
|
|
b _0200A75C
|
|
_0200A1F0:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
ldr r2, [sp, #0x2c]
|
|
ldr r3, [sp, #0x30]
|
|
bl sub_0200829C
|
|
b _0200A75C
|
|
_0200A208:
|
|
ldr r0, [sp, #0x24]
|
|
bl sub_020084D8
|
|
b _0200A75C
|
|
_0200A214:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
bl sub_02008584
|
|
b _0200A75C
|
|
_0200A224:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
bl sub_020085FC
|
|
b _0200A75C
|
|
_0200A234:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
ldr r2, [sp, #0x2c]
|
|
ldr r3, [sp, #0x30]
|
|
bl sub_0200888C
|
|
b _0200A75C
|
|
_0200A24C:
|
|
ldr r1, [sp, #0x24]
|
|
mov r0, r1, lsr #0x18
|
|
and r0, r0, #0xff
|
|
str r0, [sp]
|
|
bic r0, r1, #0xff000000
|
|
ldr r1, [sp, #0x28]
|
|
ldr r2, [sp, #0x2c]
|
|
ldr r3, [sp, #0x30]
|
|
bl sub_020088D0
|
|
b _0200A75C
|
|
_0200A274:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
ldr r2, [sp, #0x2c]
|
|
bl sub_020086C8
|
|
b _0200A75C
|
|
_0200A288:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
ldr r2, [sp, #0x2c]
|
|
bl sub_02008734
|
|
b _0200A75C
|
|
_0200A29C:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
ldr r2, [sp, #0x2c]
|
|
mov r2, r2, lsl #0x10
|
|
mov r2, r2, asr #0x10
|
|
bl sub_02009E38
|
|
b _0200A75C
|
|
_0200A2B8:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
mov r1, r1, lsl #0x10
|
|
mov r1, r1, asr #0x10
|
|
bl sub_02009E58
|
|
b _0200A75C
|
|
_0200A2D0:
|
|
ldr r7, [sp, #0x2c]
|
|
ldr r6, [sp, #0x28]
|
|
ldr r5, [sp, #0x24]
|
|
bl sub_02005EE8
|
|
mov r8, r0
|
|
mov r2, #0
|
|
b _0200A30C
|
|
_0200A2EC:
|
|
tst r5, #1
|
|
movne r0, r2, lsl #4
|
|
addne r0, r0, #0x4000000
|
|
ldrneb r1, [r0, #0x403]
|
|
add r2, r2, #1
|
|
orrne r1, r1, #0x80
|
|
strneb r1, [r0, #0x403]
|
|
mov r5, r5, lsr #1
|
|
_0200A30C:
|
|
cmp r2, #0x10
|
|
bge _0200A31C
|
|
cmp r5, #0
|
|
bne _0200A2EC
|
|
_0200A31C:
|
|
tst r6, #1
|
|
beq _0200A348
|
|
tst r6, #2
|
|
ldrneh r1, [r4]
|
|
orrne r0, r1, #0x80
|
|
orrne r0, r0, #0x8000
|
|
strneh r0, [r4]
|
|
ldreqb r0, [r4]
|
|
orreq r0, r0, #0x80
|
|
streqb r0, [r4]
|
|
b _0200A358
|
|
_0200A348:
|
|
tst r6, #2
|
|
ldrneb r0, [sl]
|
|
orrne r0, r0, #0x80
|
|
strneb r0, [sl]
|
|
_0200A358:
|
|
mov r5, #0
|
|
b _0200A378
|
|
_0200A360:
|
|
tst r7, #1
|
|
beq _0200A370
|
|
mov r0, r5
|
|
bl sub_02009F94
|
|
_0200A370:
|
|
add r5, r5, #1
|
|
mov r7, r7, lsr #1
|
|
_0200A378:
|
|
cmp r5, #8
|
|
bge _0200A388
|
|
cmp r7, #0
|
|
bne _0200A360
|
|
_0200A388:
|
|
mov r0, r8
|
|
bl sub_02005EFC
|
|
bl sub_02009E74
|
|
b _0200A75C
|
|
_0200A398:
|
|
ldr sb, [sp, #0x30]
|
|
ldr r7, [sp, #0x2c]
|
|
ldr r6, [sp, #0x28]
|
|
ldr r5, [sp, #0x24]
|
|
bl sub_02005EE8
|
|
mov fp, r0
|
|
mov r8, #0
|
|
b _0200A3D0
|
|
_0200A3B8:
|
|
tst r7, #1
|
|
beq _0200A3C8
|
|
mov r0, r8
|
|
bl sub_0200A050
|
|
_0200A3C8:
|
|
add r8, r8, #1
|
|
mov r7, r7, lsr #1
|
|
_0200A3D0:
|
|
cmp r8, #8
|
|
bge _0200A3E0
|
|
cmp r7, #0
|
|
bne _0200A3B8
|
|
_0200A3E0:
|
|
mov r7, #0
|
|
b _0200A404
|
|
_0200A3E8:
|
|
tst r5, #1
|
|
beq _0200A3FC
|
|
mov r0, r7
|
|
mov r1, sb
|
|
bl sub_02006C08
|
|
_0200A3FC:
|
|
add r7, r7, #1
|
|
mov r5, r5, lsr #1
|
|
_0200A404:
|
|
cmp r7, #0x10
|
|
bge _0200A414
|
|
cmp r5, #0
|
|
bne _0200A3E8
|
|
_0200A414:
|
|
tst r6, #1
|
|
movne r0, #0
|
|
strneb r0, [r4]
|
|
tst r6, #2
|
|
movne r0, #0
|
|
strneb r0, [sl]
|
|
mov r0, fp
|
|
bl sub_02005EFC
|
|
bl sub_02009E74
|
|
b _0200A75C
|
|
_0200A43C:
|
|
ldr r1, [sp, #0x2c]
|
|
mov r0, r1, lsr #0x1d
|
|
and r0, r0, #1
|
|
str r0, [sp]
|
|
mov r0, r1, lsr #0x1c
|
|
and r0, r0, #1
|
|
str r0, [sp, #4]
|
|
mov r0, r1, lsr #0x1b
|
|
and r0, r0, #1
|
|
str r0, [sp, #8]
|
|
mov r0, r1, lsr #0x1f
|
|
and r0, r0, #1
|
|
mov r1, r1, lsr #0x1e
|
|
and r1, r1, #1
|
|
ldr r2, [sp, #0x24]
|
|
ldr r3, [sp, #0x28]
|
|
bl sub_020072E4
|
|
b _0200A75C
|
|
_0200A484:
|
|
ldr r0, [sp, #0x30]
|
|
mov r2, #0
|
|
str r0, [sp, #4]
|
|
ldr r3, [sp, #0x2c]
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
bl sub_02009F38
|
|
b _0200A75C
|
|
_0200A4AC:
|
|
ldr r6, [sp, #0x28]
|
|
ldr r5, [sp, #0x24]
|
|
mov r7, #0
|
|
b _0200A4D8
|
|
_0200A4BC:
|
|
tst r5, #1
|
|
beq _0200A4D0
|
|
mov r0, r7
|
|
mov r1, r6
|
|
bl sub_02006CA8
|
|
_0200A4D0:
|
|
add r7, r7, #1
|
|
mov r5, r5, lsr #1
|
|
_0200A4D8:
|
|
cmp r7, #0x10
|
|
bge _0200A75C
|
|
cmp r5, #0
|
|
bne _0200A4BC
|
|
b _0200A75C
|
|
_0200A4EC:
|
|
ldr r7, [sp, #0x2c]
|
|
ldr r6, [sp, #0x28]
|
|
ldr r5, [sp, #0x24]
|
|
mov r8, #0
|
|
b _0200A520
|
|
_0200A500:
|
|
tst r5, #1
|
|
beq _0200A518
|
|
mov r0, r8
|
|
mov r1, r6
|
|
mov r2, r7
|
|
bl sub_02006C30
|
|
_0200A518:
|
|
add r8, r8, #1
|
|
mov r5, r5, lsr #1
|
|
_0200A520:
|
|
cmp r8, #0x10
|
|
bge _0200A75C
|
|
cmp r5, #0
|
|
bne _0200A500
|
|
b _0200A75C
|
|
_0200A534:
|
|
ldr r6, [sp, #0x28]
|
|
ldr r5, [sp, #0x24]
|
|
mov r7, #0
|
|
b _0200A560
|
|
_0200A544:
|
|
tst r5, #1
|
|
beq _0200A558
|
|
mov r0, r7
|
|
mov r1, r6
|
|
bl sub_02006CC0
|
|
_0200A558:
|
|
add r7, r7, #1
|
|
mov r5, r5, lsr #1
|
|
_0200A560:
|
|
cmp r7, #0x10
|
|
bge _0200A75C
|
|
cmp r5, #0
|
|
bne _0200A544
|
|
b _0200A75C
|
|
_0200A574:
|
|
ldr r3, [sp, #0x30]
|
|
ldr r0, [sp, #0x24]
|
|
mov r1, r3, lsl #0x10
|
|
ldr r2, [sp, #0x2c]
|
|
mov r1, r1, lsr #0x10
|
|
str r1, [sp]
|
|
ldr r1, _0200A7A4 ; =0x003FFFFF
|
|
and r1, r2, r1
|
|
str r1, [sp, #4]
|
|
mov r1, r2, lsr #0x18
|
|
and r1, r1, #0x7f
|
|
str r1, [sp, #8]
|
|
mov r1, r2, lsr #0x16
|
|
and r1, r1, #3
|
|
str r1, [sp, #0xc]
|
|
mov r1, r0, lsr #0x10
|
|
mov r1, r1, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
str r1, [sp, #0x10]
|
|
mov r1, r3, lsr #0x10
|
|
mov r2, r3, lsr #0x18
|
|
and r1, r1, #0x7f
|
|
str r1, [sp, #0x14]
|
|
ldr r1, [sp, #0x28]
|
|
mov r0, r0, lsl #0x10
|
|
mov r3, r3, lsr #0x1a
|
|
mov r0, r0, lsr #0x10
|
|
bic r1, r1, #0xf8000000
|
|
and r2, r2, #3
|
|
and r3, r3, #3
|
|
bl sub_020069EC
|
|
b _0200A75C
|
|
_0200A5F4:
|
|
ldr r1, [sp, #0x2c]
|
|
ldr r3, [sp, #0x28]
|
|
mov r0, r1, lsl #8
|
|
mov r0, r0, lsr #0x10
|
|
str r0, [sp]
|
|
and r0, r1, #0x7f
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x30]
|
|
and r2, r3, #0x7f
|
|
mov r3, r3, lsr #8
|
|
and r3, r3, #3
|
|
bl sub_02006AB8
|
|
b _0200A75C
|
|
_0200A62C:
|
|
ldr r1, [sp, #0x2c]
|
|
ldr r2, [sp, #0x28]
|
|
and r0, r1, #0x7f
|
|
str r0, [sp]
|
|
mov r0, r1, lsl #8
|
|
mov r3, r0, lsr #0x10
|
|
ldr r0, [sp, #0x24]
|
|
and r1, r2, #0x7f
|
|
mov r2, r2, lsr #8
|
|
and r2, r2, #3
|
|
bl sub_02006B64
|
|
b _0200A75C
|
|
_0200A65C:
|
|
ldr r0, [sp, #0x24]
|
|
bl sub_02006DC8
|
|
b _0200A75C
|
|
_0200A668:
|
|
ldr r0, [sp, #0x24]
|
|
bl sub_020069A4
|
|
b _0200A75C
|
|
_0200A674:
|
|
ldr r0, [sp, #0x24]
|
|
bl sub_02006D54
|
|
b _0200A75C
|
|
_0200A680:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
ldr r2, [sp, #0x2c]
|
|
ldr r3, [sp, #0x30]
|
|
bl sub_020069B4
|
|
b _0200A75C
|
|
_0200A698:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
bl sub_02007DC8
|
|
b _0200A75C
|
|
_0200A6A8:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
bl sub_02007EA8
|
|
b _0200A75C
|
|
_0200A6B8:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
bl sub_02007D18
|
|
b _0200A75C
|
|
_0200A6C8:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
bl sub_020087A4
|
|
b _0200A75C
|
|
_0200A6D8:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
bl sub_02008830
|
|
b _0200A75C
|
|
_0200A6E8:
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
bl sub_02007EFC
|
|
b _0200A75C
|
|
_0200A6F8:
|
|
ldr r1, [sp, #0x24]
|
|
ldr r0, _0200A7A8 ; =0x03807E6C
|
|
str r1, [r0]
|
|
b _0200A75C
|
|
_0200A708:
|
|
ldr r5, [sp, #0x24]
|
|
ldr r0, _0200A7AC ; =0x03807E70
|
|
mov r1, r5
|
|
mov r2, #0x1180
|
|
bl sub_020061D4
|
|
ldr r0, _0200A7AC ; =0x03807E70
|
|
add r1, r5, #0x1000
|
|
str r0, [r1, #0x1c0]
|
|
mov r6, #0
|
|
_0200A72C:
|
|
mov r0, r6
|
|
bl sub_02006DB8
|
|
add r1, r5, r6, lsl #2
|
|
add r1, r1, #0x1000
|
|
str r0, [r1, #0x180]
|
|
add r6, r6, #1
|
|
cmp r6, #0x10
|
|
blt _0200A72C
|
|
mov r0, #0
|
|
bl sub_02007EE0
|
|
add r1, r5, #0x1000
|
|
str r0, [r1, #0x1c4]
|
|
_0200A75C:
|
|
ldr r6, [sp, #0x1c]
|
|
_0200A760:
|
|
cmp r6, #0
|
|
bne _0200A120
|
|
ldr r0, _0200A7A8 ; =0x03807E6C
|
|
ldr r1, [r0]
|
|
ldr r0, [r1]
|
|
add r0, r0, #1
|
|
str r0, [r1]
|
|
_0200A77C:
|
|
ldr r0, _0200A7B0 ; =0x03808FF0
|
|
add r1, sp, #0x18
|
|
mov r2, #0
|
|
bl sub_02004948
|
|
cmp r0, #0
|
|
bne _0200A110
|
|
add sp, sp, #0x34
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200A7A0: .word 0x04000509
|
|
_0200A7A4: .word 0x003FFFFF
|
|
_0200A7A8: .word 0x03807E6C
|
|
_0200A7AC: .word 0x03807E70
|
|
_0200A7B0: .word 0x03808FF0
|
|
arm_func_end sub_0200A104
|
|
|
|
arm_func_start sub_0200A7B4
|
|
sub_0200A7B4: ; 0x0200A7B4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r1
|
|
bl sub_02005EE8
|
|
mov r4, r0
|
|
cmp r5, #0x2000000
|
|
blo _0200A7E0
|
|
ldr r0, _0200A7FC ; =0x03808FF0
|
|
mov r1, r5
|
|
mov r2, #0
|
|
bl sub_020048BC
|
|
b _0200A7EC
|
|
_0200A7E0:
|
|
cmp r5, #0
|
|
bne _0200A7EC
|
|
bl sub_020071B0
|
|
_0200A7EC:
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200A7FC: .word 0x03808FF0
|
|
arm_func_end sub_0200A7B4
|
|
|
|
arm_func_start sub_0200A800
|
|
sub_0200A800: ; 0x0200A800
|
|
ldr ip, _0200A808 ; =sub_03803168
|
|
bx ip
|
|
.align 2, 0
|
|
_0200A808: .word sub_03803168
|
|
arm_func_end sub_0200A800
|
|
|
|
arm_func_start sub_0200A80C
|
|
sub_0200A80C: ; 0x0200A80C
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
ldr r4, _0200A8B0 ; =0x03809060
|
|
mov r2, #0
|
|
mvn r1, #2
|
|
str r1, [r4, #0xc]
|
|
mov r0, #4
|
|
str r0, [r4, #0xf0]
|
|
str r2, [r4, #0x10]
|
|
str r2, [r4, #0x1c]
|
|
str r2, [r4]
|
|
str r2, [r4, #8]
|
|
str r2, [r4, #0x18]
|
|
str r2, [r4, #0x14]
|
|
str r2, [r4, #0xf8]
|
|
str r2, [r4, #0xf4]
|
|
mov r0, #0x400
|
|
str r0, [sp]
|
|
ldr ip, [r4, #0xf0]
|
|
ldr r1, _0200A8B4 ; =0x038032B8
|
|
ldr r3, _0200A8B8 ; =0x03809660
|
|
add r0, r4, #0x48
|
|
str ip, [sp, #4]
|
|
bl sub_0200423C
|
|
add r0, r4, #0x48
|
|
bl sub_02004554
|
|
ldr r1, _0200A8BC ; =0x038031D4
|
|
mov r0, #0xb
|
|
bl sub_02006584
|
|
ldr r0, _0200A8C0 ; =0x027FFC40
|
|
ldrh r0, [r0]
|
|
cmp r0, #2
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
cmp r0, #0
|
|
ldreq r0, _0200A8C4 ; =0x03809040
|
|
moveq r1, #1
|
|
streq r1, [r0]
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200A8B0: .word 0x03809060
|
|
_0200A8B4: .word 0x038032B8
|
|
_0200A8B8: .word 0x03809660
|
|
_0200A8BC: .word 0x038031D4
|
|
_0200A8C0: .word 0x027FFC40
|
|
_0200A8C4: .word 0x03809040
|
|
arm_func_end sub_0200A80C
|
|
|
|
arm_func_start sub_0200A8C8
|
|
sub_0200A8C8: ; 0x0200A8C8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r5, _0200A904 ; =0x03809060
|
|
mov r7, r0
|
|
bl sub_02005EE8
|
|
ldr r6, [r5, #0xf0]
|
|
mov r4, r0
|
|
mov r1, r7
|
|
add r0, r5, #0x48
|
|
str r7, [r5, #0xf0]
|
|
bl sub_020045A8
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
mov r0, r6
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200A904: .word 0x03809060
|
|
arm_func_end sub_0200A8C8
|
|
|
|
arm_func_start sub_0200A908
|
|
sub_0200A908: ; 0x0200A908
|
|
ldr r0, _0200A910 ; =0x027FFA80
|
|
bx lr
|
|
.align 2, 0
|
|
_0200A910: .word 0x027FFA80
|
|
arm_func_end sub_0200A908
|
|
|
|
arm_func_start sub_0200A914
|
|
sub_0200A914: ; 0x0200A914
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
adds r1, r5, r4
|
|
beq _0200A9AC
|
|
cmp r5, #0
|
|
beq _0200A934
|
|
bl sub_02004650
|
|
_0200A934:
|
|
cmp r4, #0
|
|
beq _0200A988
|
|
sub r7, r4, r5
|
|
mov r4, #0
|
|
mov r5, #1
|
|
mov r6, #5
|
|
b _0200A968
|
|
_0200A950:
|
|
cmp r7, #5
|
|
movlt r8, r7
|
|
movge r8, r6
|
|
mov r0, r8
|
|
bl sub_02004650
|
|
sub r7, r7, r8
|
|
_0200A968:
|
|
bl sub_0200A9B8
|
|
tst r0, #1
|
|
moveq r0, r5
|
|
movne r0, r4
|
|
cmp r0, #0
|
|
bne _0200A988
|
|
cmp r7, #0
|
|
bgt _0200A950
|
|
_0200A988:
|
|
bl sub_0200A9B8
|
|
tst r0, #1
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
cmp r0, #0
|
|
ldreq r0, _0200A9B4 ; =0x03809060
|
|
moveq r1, #4
|
|
ldreq r0, [r0]
|
|
streq r1, [r0]
|
|
_0200A9AC:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200A9B4: .word 0x03809060
|
|
arm_func_end sub_0200A914
|
|
|
|
arm_func_start sub_0200A9B8
|
|
sub_0200A9B8: ; 0x0200A9B8
|
|
stmdb sp!, {r3, lr}
|
|
ldr ip, _0200A9FC ; =0x03809660
|
|
mov lr, #2
|
|
ldr r0, _0200AA00 ; =0x0380720C
|
|
ldr r3, _0200AA04 ; =0x03802924
|
|
mov r1, #0
|
|
mov r2, #1
|
|
str lr, [ip, #4]
|
|
bl sub_0200AA48
|
|
ldr r3, _0200AA08 ; =0x038028E4
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
mov r2, #1
|
|
bl sub_0200AA48
|
|
ldrb r0, [sp]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200A9FC: .word 0x03809660
|
|
_0200AA00: .word 0x0380720C
|
|
_0200AA04: .word 0x03802924
|
|
_0200AA08: .word 0x038028E4
|
|
arm_func_end sub_0200A9B8
|
|
|
|
arm_func_start sub_0200AA0C
|
|
sub_0200AA0C: ; 0x0200AA0C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0
|
|
mov r1, #0x32
|
|
bl sub_0200A914
|
|
ldr r0, _0200AA44 ; =0x03809060
|
|
ldr r1, [r0]
|
|
ldr r0, [r1]
|
|
cmp r0, #4
|
|
moveq r0, #6
|
|
streq r0, [r1]
|
|
moveq r0, #0
|
|
movne r0, #1
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200AA44: .word 0x03809060
|
|
arm_func_end sub_0200AA0C
|
|
|
|
arm_func_start sub_0200AA48
|
|
sub_0200AA48: ; 0x0200AA48
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r5, _0200AAC0 ; =0x03809664
|
|
ldr r8, _0200AAC4 ; =0x0000A040
|
|
ldr r4, _0200AAC8 ; =0x040001A0
|
|
stmib r5, {r0, r1}
|
|
strh r8, [r4]
|
|
mov r7, r2
|
|
mov r6, r3
|
|
mov r8, #0xa000
|
|
b _0200AA9C
|
|
_0200AA70:
|
|
ldr r0, [r5]
|
|
subs r0, r0, #1
|
|
str r0, [r5]
|
|
streqh r8, [r4]
|
|
_0200AA80:
|
|
ldrh r0, [r4]
|
|
tst r0, #0x80
|
|
bne _0200AA80
|
|
mov r0, r5
|
|
mov lr, pc
|
|
bx r6
|
|
_0200AA98:
|
|
sub r7, r7, #1
|
|
_0200AA9C:
|
|
cmp r7, #0
|
|
bne _0200AA70
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
ldreq r0, _0200AAC8 ; =0x040001A0
|
|
moveq r1, #0
|
|
streqh r1, [r0]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200AAC0: .word 0x03809664
|
|
_0200AAC4: .word 0x0000A040
|
|
_0200AAC8: .word 0x040001A0
|
|
arm_func_end sub_0200AA48
|
|
|
|
arm_func_start sub_0200AACC
|
|
sub_0200AACC: ; 0x0200AACC
|
|
ldr r1, _0200AB08 ; =0x040001A2
|
|
mov r2, #0
|
|
strh r2, [r1]
|
|
sub r2, r1, #2
|
|
_0200AADC:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _0200AADC
|
|
ldr r2, _0200AB08 ; =0x040001A2
|
|
ldr r1, [r0, #8]
|
|
ldrh r2, [r2]
|
|
strb r2, [r1]
|
|
ldr r1, [r0, #8]
|
|
add r1, r1, #1
|
|
str r1, [r0, #8]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200AB08: .word 0x040001A2
|
|
arm_func_end sub_0200AACC
|
|
|
|
arm_func_start sub_0200AB0C
|
|
sub_0200AB0C: ; 0x0200AB0C
|
|
stmdb sp!, {r3}
|
|
sub sp, sp, #4
|
|
ldr r1, [r0, #4]
|
|
ldr r2, _0200AB58 ; =0x040001A2
|
|
ldrb r1, [r1]
|
|
strh r1, [r2]
|
|
ldr r1, [r0, #4]
|
|
add r1, r1, #1
|
|
str r1, [r0, #4]
|
|
sub r1, r2, #2
|
|
_0200AB34:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _0200AB34
|
|
ldr r0, _0200AB58 ; =0x040001A2
|
|
ldrh r0, [r0]
|
|
strh r0, [sp]
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200AB58: .word 0x040001A2
|
|
arm_func_end sub_0200AB0C
|
|
|
|
arm_func_start sub_0200AB5C
|
|
sub_0200AB5C: ; 0x0200AB5C
|
|
ldr r1, _0200ABBC ; =0x040001A2
|
|
mov r2, #0
|
|
strh r2, [r1]
|
|
sub r2, r1, #2
|
|
_0200AB6C:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _0200AB6C
|
|
ldr r2, _0200ABBC ; =0x040001A2
|
|
ldr r1, [r0, #4]
|
|
ldrh r2, [r2]
|
|
ldrb r1, [r1]
|
|
and r2, r2, #0xff
|
|
cmp r2, r1
|
|
beq _0200ABAC
|
|
mov r1, #0
|
|
str r1, [r0, #0xc]
|
|
ldr r1, [r0]
|
|
cmp r1, #1
|
|
movhi r1, #1
|
|
strhi r1, [r0]
|
|
_0200ABAC:
|
|
ldr r1, [r0, #4]
|
|
add r1, r1, #1
|
|
str r1, [r0, #4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200ABBC: .word 0x040001A2
|
|
arm_func_end sub_0200AB5C
|
|
|
|
arm_func_start sub_0200ABC0
|
|
sub_0200ABC0: ; 0x0200ABC0
|
|
stmdb sp!, {r3, lr}
|
|
ldr ip, _0200ABE8 ; =0x03809660
|
|
mov r2, #1
|
|
ldr r0, _0200ABEC ; =0x03807204
|
|
ldr r3, _0200ABF0 ; =0x03802924
|
|
mov r1, #0
|
|
str r2, [ip, #4]
|
|
bl sub_0200AA48
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200ABE8: .word 0x03809660
|
|
_0200ABEC: .word 0x03807204
|
|
_0200ABF0: .word 0x03802924
|
|
arm_func_end sub_0200ABC0
|
|
|
|
arm_func_start sub_0200ABF4
|
|
sub_0200ABF4: ; 0x0200ABF4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0200AC8C ; =0x03809060
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x28]
|
|
cmp r2, #1
|
|
beq _0200AC20
|
|
cmp r2, #2
|
|
beq _0200AC3C
|
|
cmp r2, #3
|
|
beq _0200AC54
|
|
b _0200AC70
|
|
_0200AC20:
|
|
mov r3, r0, lsr #5
|
|
and r3, r3, #8
|
|
mov ip, r0, lsl #0x18
|
|
orr r0, r1, r3
|
|
orr r0, r0, ip, lsr #16
|
|
str r0, [sp]
|
|
b _0200AC70
|
|
_0200AC3C:
|
|
and r3, r0, #0xff00
|
|
mov ip, r0, lsl #0x18
|
|
orr r0, r1, r3
|
|
orr r0, r0, ip, lsr #8
|
|
str r0, [sp]
|
|
b _0200AC70
|
|
_0200AC54:
|
|
mov r3, r0, lsr #8
|
|
and r3, r3, #0xff00
|
|
and ip, r0, #0xff00
|
|
orr r1, r1, r3
|
|
orr r1, r1, ip, lsl #8
|
|
orr r0, r1, r0, lsl #24
|
|
str r0, [sp]
|
|
_0200AC70:
|
|
ldr r3, _0200AC90 ; =0x03802924
|
|
add r0, sp, #0
|
|
add r2, r2, #1
|
|
mov r1, #0
|
|
bl sub_0200AA48
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200AC8C: .word 0x03809060
|
|
_0200AC90: .word 0x03802924
|
|
arm_func_end sub_0200ABF4
|
|
|
|
arm_func_start sub_0200AC94
|
|
sub_0200AC94: ; 0x0200AC94
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0200ACE4 ; =0x03809060
|
|
ldr r0, [r0]
|
|
ldrb r4, [r0, #0x54]
|
|
cmp r4, #0xff
|
|
beq _0200ACDC
|
|
ldr r0, _0200ACE8 ; =0x03809660
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0200ACDC
|
|
bl sub_0200A9B8
|
|
cmp r4, r0
|
|
beq _0200ACD0
|
|
mov r0, r4
|
|
bl sub_0200B0EC
|
|
_0200ACD0:
|
|
ldr r0, _0200ACE8 ; =0x03809660
|
|
mov r1, #1
|
|
str r1, [r0]
|
|
_0200ACDC:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200ACE4: .word 0x03809060
|
|
_0200ACE8: .word 0x03809660
|
|
arm_func_end sub_0200AC94
|
|
|
|
arm_func_start sub_0200ACEC
|
|
sub_0200ACEC: ; 0x0200ACEC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, r1
|
|
mov r4, r2
|
|
bl sub_0200AA0C
|
|
cmp r0, #0
|
|
beq _0200AD44
|
|
ldr r0, _0200AD4C ; =0x03809060
|
|
ldr r2, _0200AD50 ; =0x03809660
|
|
ldr r1, [r0]
|
|
mov r0, r6
|
|
ldr r3, [r1, #0x28]
|
|
mov r1, #3
|
|
add r3, r3, #1
|
|
add r3, r3, r4
|
|
str r3, [r2, #4]
|
|
bl sub_0200ABF4
|
|
ldr r3, _0200AD54 ; =0x038028E4
|
|
mov r1, r5
|
|
mov r2, r4
|
|
mov r0, #0
|
|
bl sub_0200AA48
|
|
_0200AD44:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200AD4C: .word 0x03809060
|
|
_0200AD50: .word 0x03809660
|
|
_0200AD54: .word 0x038028E4
|
|
arm_func_end sub_0200ACEC
|
|
|
|
arm_func_start sub_0200AD58
|
|
sub_0200AD58: ; 0x0200AD58
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov sl, r0
|
|
mov sb, r1
|
|
mov r8, r2
|
|
bl sub_0200AA0C
|
|
cmp r0, #0
|
|
beq _0200ADFC
|
|
ldr r0, _0200AE04 ; =0x03809060
|
|
ldr fp, _0200AE08 ; =0x03809660
|
|
ldr r5, [r0]
|
|
ldr r6, [r5, #0x24]
|
|
sub r4, r6, #1
|
|
b _0200ADF4
|
|
_0200AD8C:
|
|
and r0, sl, r4
|
|
sub r7, r6, r0
|
|
cmp r7, r8
|
|
movhi r7, r8
|
|
bl sub_0200ABC0
|
|
ldr r1, [r5, #0x28]
|
|
mov r0, sl
|
|
add r1, r1, #1
|
|
add r1, r1, r7
|
|
str r1, [fp, #4]
|
|
mov r1, #2
|
|
bl sub_0200ABF4
|
|
ldr r3, _0200AE0C ; =0x03802924
|
|
mov r0, sb
|
|
mov r1, #0
|
|
mov r2, r7
|
|
bl sub_0200AA48
|
|
ldr r0, [r5, #0x2c]
|
|
mov r1, #0
|
|
bl sub_0200A914
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
bne _0200ADFC
|
|
add sb, sb, r7
|
|
add sl, sl, r7
|
|
sub r8, r8, r7
|
|
_0200ADF4:
|
|
cmp r8, #0
|
|
bne _0200AD8C
|
|
_0200ADFC:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200AE04: .word 0x03809060
|
|
_0200AE08: .word 0x03809660
|
|
_0200AE0C: .word 0x03802924
|
|
arm_func_end sub_0200AD58
|
|
|
|
arm_func_start sub_0200AE10
|
|
sub_0200AE10: ; 0x0200AE10
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov sl, r0
|
|
mov sb, r1
|
|
mov r8, r2
|
|
bl sub_0200AA0C
|
|
cmp r0, #0
|
|
beq _0200AEB4
|
|
ldr r0, _0200AEBC ; =0x03809060
|
|
ldr fp, _0200AEC0 ; =0x03809660
|
|
ldr r5, [r0]
|
|
ldr r6, [r5, #0x24]
|
|
sub r4, r6, #1
|
|
b _0200AEAC
|
|
_0200AE44:
|
|
and r0, sl, r4
|
|
sub r7, r6, r0
|
|
cmp r7, r8
|
|
movhi r7, r8
|
|
bl sub_0200ABC0
|
|
ldr r1, [r5, #0x28]
|
|
mov r0, sl
|
|
add r1, r1, #1
|
|
add r1, r1, r7
|
|
str r1, [fp, #4]
|
|
mov r1, #0xa
|
|
bl sub_0200ABF4
|
|
ldr r3, _0200AEC4 ; =0x03802924
|
|
mov r0, sb
|
|
mov r1, #0
|
|
mov r2, r7
|
|
bl sub_0200AA48
|
|
ldr r0, [r5, #0x30]
|
|
ldr r1, [r5, #0x34]
|
|
bl sub_0200A914
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
bne _0200AEB4
|
|
add sb, sb, r7
|
|
add sl, sl, r7
|
|
sub r8, r8, r7
|
|
_0200AEAC:
|
|
cmp r8, #0
|
|
bne _0200AE44
|
|
_0200AEB4:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200AEBC: .word 0x03809060
|
|
_0200AEC0: .word 0x03809660
|
|
_0200AEC4: .word 0x03802924
|
|
arm_func_end sub_0200AE10
|
|
|
|
arm_func_start sub_0200AEC8
|
|
sub_0200AEC8: ; 0x0200AEC8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
bl sub_0200AA0C
|
|
cmp r0, #0
|
|
beq _0200AF44
|
|
ldr r0, _0200AF4C ; =0x03809060
|
|
ldr r2, _0200AF50 ; =0x03809660
|
|
ldr r4, [r0]
|
|
mov r0, #1
|
|
str r0, [r2, #0x10]
|
|
ldr r1, [r4, #0x28]
|
|
mov r0, r7
|
|
add r1, r1, #1
|
|
add r3, r1, r5
|
|
mov r1, #3
|
|
str r3, [r2, #4]
|
|
bl sub_0200ABF4
|
|
ldr r3, _0200AF54 ; =0x03802974
|
|
mov r0, r6
|
|
mov r2, r5
|
|
mov r1, #0
|
|
bl sub_0200AA48
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
ldreq r0, _0200AF50 ; =0x03809660
|
|
ldreq r0, [r0, #0x10]
|
|
cmpeq r0, #0
|
|
moveq r0, #1
|
|
streq r0, [r4]
|
|
_0200AF44:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200AF4C: .word 0x03809060
|
|
_0200AF50: .word 0x03809660
|
|
_0200AF54: .word 0x03802974
|
|
arm_func_end sub_0200AEC8
|
|
|
|
arm_func_start sub_0200AF58
|
|
sub_0200AF58: ; 0x0200AF58
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r2, _0200AFEC ; =0x03809060
|
|
mov r7, r0
|
|
ldr r4, [r2]
|
|
mov r6, r1
|
|
ldr r5, [r4, #0x1c]
|
|
orr r0, r7, r6
|
|
sub r1, r5, #1
|
|
tst r1, r0
|
|
movne r0, #2
|
|
strne r0, [r4]
|
|
bne _0200AFE4
|
|
bl sub_0200AA0C
|
|
cmp r0, #0
|
|
beq _0200AFE4
|
|
ldr r8, _0200AFF0 ; =0x03809660
|
|
mov sb, #0xd8
|
|
b _0200AFDC
|
|
_0200AFA0:
|
|
bl sub_0200ABC0
|
|
ldr r1, [r4, #0x28]
|
|
mov r0, r7
|
|
add r1, r1, #1
|
|
str r1, [r8, #4]
|
|
mov r1, sb
|
|
bl sub_0200ABF4
|
|
ldr r0, [r4, #0x40]
|
|
ldr r1, [r4, #0x44]
|
|
bl sub_0200A914
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
bne _0200AFE4
|
|
add r7, r7, r5
|
|
sub r6, r6, r5
|
|
_0200AFDC:
|
|
cmp r6, #0
|
|
bne _0200AFA0
|
|
_0200AFE4:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200AFEC: .word 0x03809060
|
|
_0200AFF0: .word 0x03809660
|
|
arm_func_end sub_0200AF58
|
|
|
|
arm_func_start sub_0200AFF4
|
|
sub_0200AFF4: ; 0x0200AFF4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r2, _0200B088 ; =0x03809060
|
|
mov r7, r0
|
|
ldr r4, [r2]
|
|
mov r6, r1
|
|
ldr r5, [r4, #0x20]
|
|
orr r0, r7, r6
|
|
sub r1, r5, #1
|
|
tst r1, r0
|
|
movne r0, #2
|
|
strne r0, [r4]
|
|
bne _0200B080
|
|
bl sub_0200AA0C
|
|
cmp r0, #0
|
|
beq _0200B080
|
|
ldr r8, _0200B08C ; =0x03809660
|
|
mov sb, #0x20
|
|
b _0200B078
|
|
_0200B03C:
|
|
bl sub_0200ABC0
|
|
ldr r1, [r4, #0x28]
|
|
mov r0, r7
|
|
add r1, r1, #1
|
|
str r1, [r8, #4]
|
|
mov r1, sb
|
|
bl sub_0200ABF4
|
|
ldr r0, [r4, #0x48]
|
|
ldr r1, [r4, #0x4c]
|
|
bl sub_0200A914
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
bne _0200B080
|
|
add r7, r7, r5
|
|
sub r6, r6, r5
|
|
_0200B078:
|
|
cmp r6, #0
|
|
bne _0200B03C
|
|
_0200B080:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B088: .word 0x03809060
|
|
_0200B08C: .word 0x03809660
|
|
arm_func_end sub_0200AFF4
|
|
|
|
arm_func_start sub_0200B090
|
|
sub_0200B090: ; 0x0200B090
|
|
stmdb sp!, {r4, lr}
|
|
bl sub_0200AA0C
|
|
cmp r0, #0
|
|
beq _0200B0D4
|
|
ldr r0, _0200B0DC ; =0x03809060
|
|
ldr r4, [r0]
|
|
bl sub_0200ABC0
|
|
ldr r1, _0200B0E0 ; =0x03809660
|
|
mov r2, #1
|
|
ldr r0, _0200B0E4 ; =0x03807208
|
|
ldr r3, _0200B0E8 ; =0x03802924
|
|
str r2, [r1, #4]
|
|
mov r1, #0
|
|
bl sub_0200AA48
|
|
ldr r0, [r4, #0x38]
|
|
ldr r1, [r4, #0x3c]
|
|
bl sub_0200A914
|
|
_0200B0D4:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B0DC: .word 0x03809060
|
|
_0200B0E0: .word 0x03809660
|
|
_0200B0E4: .word 0x03807208
|
|
_0200B0E8: .word 0x03802924
|
|
arm_func_end sub_0200B090
|
|
|
|
arm_func_start sub_0200B0EC
|
|
sub_0200B0EC: ; 0x0200B0EC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov r4, r0
|
|
bl sub_0200AA0C
|
|
cmp r0, #0
|
|
beq _0200B170
|
|
ldr r0, _0200B178 ; =0x03809060
|
|
strb r4, [sp, #1]
|
|
mov r1, #1
|
|
ldr sb, [r0]
|
|
ldr r5, _0200B17C ; =0x03802924
|
|
ldr r4, _0200B180 ; =0x03809660
|
|
strb r1, [sp]
|
|
mov sl, #0xa
|
|
add r7, sp, #0
|
|
mov r8, #2
|
|
mov r6, #0
|
|
mov fp, #5
|
|
_0200B130:
|
|
bl sub_0200ABC0
|
|
mov r0, r7
|
|
str r8, [r4, #4]
|
|
mov r1, r6
|
|
mov r2, r8
|
|
mov r3, r5
|
|
bl sub_0200AA48
|
|
mov r0, fp
|
|
mov r1, #0
|
|
bl sub_0200A914
|
|
ldr r0, [sb]
|
|
cmp r0, #4
|
|
bne _0200B170
|
|
sub sl, sl, #1
|
|
cmp sl, #0
|
|
bgt _0200B130
|
|
_0200B170:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B178: .word 0x03809060
|
|
_0200B17C: .word 0x03802924
|
|
_0200B180: .word 0x03809660
|
|
arm_func_end sub_0200B0EC
|
|
|
|
arm_func_start sub_0200B184
|
|
sub_0200B184: ; 0x0200B184
|
|
ldr r3, _0200B1DC ; =0x040001A4
|
|
_0200B188:
|
|
ldr r2, [r3]
|
|
tst r2, #0x80000000
|
|
bne _0200B188
|
|
ldr r3, _0200B1E0 ; =0x040001A1
|
|
mov r2, #0xc0
|
|
strb r2, [r3]
|
|
mov r2, r0, lsr #0x18
|
|
strb r2, [r3, #7]
|
|
mov r2, r0, lsr #0x10
|
|
strb r2, [r3, #8]
|
|
mov r2, r0, lsr #8
|
|
strb r2, [r3, #9]
|
|
strb r0, [r3, #0xa]
|
|
mov r0, r1, lsr #0x18
|
|
strb r0, [r3, #0xb]
|
|
mov r0, r1, lsr #0x10
|
|
strb r0, [r3, #0xc]
|
|
mov r0, r1, lsr #8
|
|
strb r0, [r3, #0xd]
|
|
strb r1, [r3, #0xe]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B1DC: .word 0x040001A4
|
|
_0200B1E0: .word 0x040001A1
|
|
arm_func_end sub_0200B184
|
|
|
|
arm_func_start sub_0200B1E4
|
|
sub_0200B1E4: ; 0x0200B1E4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r4, _0200B254 ; =0x03809060
|
|
mov r1, #0
|
|
ldr r0, [r4]
|
|
str r1, [r0]
|
|
ldr r7, [r4, #0x3c]
|
|
ldr r6, [r4, #0x40]
|
|
bl sub_02005EE8
|
|
ldr r1, [r4, #0xfc]
|
|
mov r5, r0
|
|
bic r0, r1, #0x4c
|
|
str r0, [r4, #0xfc]
|
|
add r0, r4, #0xf4
|
|
bl sub_020044CC
|
|
ldr r0, [r4, #0xfc]
|
|
tst r0, #0x10
|
|
beq _0200B230
|
|
add r0, r4, #0x48
|
|
bl sub_02004554
|
|
_0200B230:
|
|
mov r0, r5
|
|
bl sub_02005EFC
|
|
cmp r7, #0
|
|
beq _0200B24C
|
|
mov r0, r6
|
|
mov lr, pc
|
|
bx r7
|
|
_0200B24C:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B254: .word 0x03809060
|
|
arm_func_end sub_0200B1E4
|
|
|
|
arm_func_start sub_0200B258
|
|
sub_0200B258: ; 0x0200B258
|
|
ldr r1, _0200B274 ; =0x03807560
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x60]
|
|
bic r1, r1, #0x7000000
|
|
orr r0, r1, r0
|
|
orr r0, r0, #0xa0000000
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B274: .word 0x03807560
|
|
arm_func_end sub_0200B258
|
|
|
|
arm_func_start sub_0200B278
|
|
sub_0200B278: ; 0x0200B278
|
|
bx lr
|
|
arm_func_end sub_0200B278
|
|
|
|
arm_func_start sub_0200B27C
|
|
sub_0200B27C: ; 0x0200B27C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0xb8000000
|
|
mov r1, #0
|
|
bl sub_0200B184
|
|
mov r0, #0x7000000
|
|
bl sub_0200B258
|
|
mov r1, #0x2000
|
|
rsb r1, r1, #0
|
|
ldr r2, _0200B2C4 ; =0x040001A4
|
|
and r0, r0, r1
|
|
str r0, [r2]
|
|
_0200B2A8:
|
|
ldr r0, [r2]
|
|
tst r0, #0x800000
|
|
beq _0200B2A8
|
|
ldr r0, _0200B2C8 ; =0x04100010
|
|
ldr r0, [r0]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B2C4: .word 0x040001A4
|
|
_0200B2C8: .word 0x04100010
|
|
arm_func_end sub_0200B27C
|
|
|
|
arm_func_start sub_0200B2CC
|
|
sub_0200B2CC: ; 0x0200B2CC
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0200B2F8 ; =0x03809060
|
|
mov r1, #0
|
|
mov r2, r1
|
|
bl sub_0200B2FC
|
|
bl sub_0200B27C
|
|
mov r4, r0
|
|
bl sub_0200B1E4
|
|
mov r0, r4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B2F8: .word 0x03809060
|
|
arm_func_end sub_0200B2CC
|
|
|
|
arm_func_start sub_0200B2FC
|
|
sub_0200B2FC: ; 0x0200B2FC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
bl sub_02005EE8
|
|
mov r4, r0
|
|
b _0200B320
|
|
_0200B318:
|
|
add r0, r7, #0xf4
|
|
bl sub_02004478
|
|
_0200B320:
|
|
ldr r0, [r7, #0xfc]
|
|
tst r0, #4
|
|
bne _0200B318
|
|
ldr r1, [r7, #0xfc]
|
|
mov r0, r4
|
|
orr r1, r1, #4
|
|
str r1, [r7, #0xfc]
|
|
str r6, [r7, #0x3c]
|
|
str r5, [r7, #0x40]
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_0200B2FC
|
|
|
|
arm_func_start sub_0200B350
|
|
sub_0200B350: ; 0x0200B350
|
|
stmdb sp!, {r3, lr}
|
|
ldr ip, _0200B3B0 ; =0x03809060
|
|
ldr r0, [ip, #0xfc]
|
|
cmp r0, #0
|
|
bne _0200B3A8
|
|
ldr r0, _0200B3B4 ; =0x03809680
|
|
mov r2, #0
|
|
sub r1, r2, #1
|
|
mov r3, #1
|
|
str r3, [ip, #0xfc]
|
|
str r2, [ip, #0x28]
|
|
str r2, [ip, #0x24]
|
|
str r2, [ip, #0x20]
|
|
str r1, [ip, #0x2c]
|
|
str r2, [ip, #0x3c]
|
|
str r2, [ip, #0x40]
|
|
str r2, [r0]
|
|
bl sub_0200A80C
|
|
ldr r1, _0200B3B8 ; =0x03803090
|
|
ldr r0, _0200B3B4 ; =0x03809680
|
|
str r1, [r0, #0x20]
|
|
bl sub_0200B6D4
|
|
_0200B3A8:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B3B0: .word 0x03809060
|
|
_0200B3B4: .word 0x03809680
|
|
_0200B3B8: .word 0x03803090
|
|
arm_func_end sub_0200B350
|
|
|
|
arm_func_start sub_0200B3BC
|
|
sub_0200B3BC: ; 0x0200B3BC
|
|
stmdb sp!, {r3, lr}
|
|
cmp r0, #0xb
|
|
bne _0200B494
|
|
cmp r2, #0
|
|
beq _0200B494
|
|
ldr r0, _0200B49C ; =0x03809060
|
|
ldr r2, [r0, #8]
|
|
cmp r2, #0
|
|
streq r1, [r0, #4]
|
|
ldr r2, [r0, #4]
|
|
cmp r2, #0xf
|
|
addls pc, pc, r2, lsl #2
|
|
b _0200B460
|
|
_0200B3F0: ; jump table
|
|
b _0200B430 ; case 0
|
|
b _0200B460 ; case 1
|
|
b _0200B454 ; case 2
|
|
b _0200B454 ; case 3
|
|
b _0200B454 ; case 4
|
|
b _0200B454 ; case 5
|
|
b _0200B454 ; case 6
|
|
b _0200B454 ; case 7
|
|
b _0200B454 ; case 8
|
|
b _0200B454 ; case 9
|
|
b _0200B454 ; case 10
|
|
b _0200B454 ; case 11
|
|
b _0200B454 ; case 12
|
|
b _0200B454 ; case 13
|
|
b _0200B454 ; case 14
|
|
b _0200B454 ; case 15
|
|
_0200B430:
|
|
ldr r2, [r0, #8]
|
|
cmp r2, #0
|
|
beq _0200B460
|
|
cmp r2, #1
|
|
ldreq r2, [r0, #0xfc]
|
|
streq r1, [r0]
|
|
orreq r1, r2, #0x10
|
|
streq r1, [r0, #0xfc]
|
|
b _0200B460
|
|
_0200B454:
|
|
ldr r1, [r0, #0xfc]
|
|
orr r1, r1, #0x10
|
|
str r1, [r0, #0xfc]
|
|
_0200B460:
|
|
ldr r1, [r0, #0xfc]
|
|
tst r1, #0x10
|
|
ldreq r1, [r0, #8]
|
|
addeq r1, r1, #1
|
|
streq r1, [r0, #8]
|
|
beq _0200B494
|
|
ldr r1, [r0, #0xfc]
|
|
mov r2, #0
|
|
str r2, [r0, #8]
|
|
tst r1, #4
|
|
ldrne r0, [r0, #0xec]
|
|
addeq r0, r0, #0x48
|
|
bl sub_02004554
|
|
_0200B494:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B49C: .word 0x03809060
|
|
arm_func_end sub_0200B3BC
|
|
|
|
arm_func_start sub_0200B4A0
|
|
sub_0200B4A0: ; 0x0200B4A0
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r4, _0200B6D0 ; =0x03809060
|
|
_0200B4A8:
|
|
mov r5, #0
|
|
bl sub_02005EE8
|
|
mov r6, r0
|
|
add r8, r4, #0x48
|
|
mov r7, r5
|
|
_0200B4BC:
|
|
ldr r0, [r4, #0xfc]
|
|
tst r0, #4
|
|
bne _0200B4F4
|
|
ldr r0, [r4, #0xfc]
|
|
tst r0, #0x10
|
|
beq _0200B500
|
|
ldr r0, [r4, #0xfc]
|
|
mov r5, #1
|
|
orr r0, r0, #4
|
|
str r0, [r4, #0xfc]
|
|
ldr r0, [r4, #0xfc]
|
|
bic r0, r0, #0x10
|
|
str r0, [r4, #0xfc]
|
|
b _0200B510
|
|
_0200B4F4:
|
|
ldr r0, [r4, #0xfc]
|
|
tst r0, #8
|
|
bne _0200B510
|
|
_0200B500:
|
|
mov r0, r7
|
|
str r8, [r4, #0xec]
|
|
bl sub_02004478
|
|
b _0200B4BC
|
|
_0200B510:
|
|
mov r0, r6
|
|
bl sub_02005EFC
|
|
cmp r5, #0
|
|
beq _0200B6BC
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
ldr r3, [r4]
|
|
ldr r2, [r4, #4]
|
|
ldr r1, [r3, #0x58]
|
|
mov r0, #1
|
|
tst r1, r0, lsl r2
|
|
moveq r0, #3
|
|
streq r0, [r3]
|
|
beq _0200B660
|
|
cmp r2, #0xf
|
|
addls pc, pc, r2, lsl #2
|
|
b _0200B658
|
|
_0200B558: ; jump table
|
|
b _0200B660 ; case 0
|
|
b _0200B660 ; case 1
|
|
b _0200B598 ; case 2
|
|
b _0200B5A0 ; case 3
|
|
b _0200B5B0 ; case 4
|
|
b _0200B658 ; case 5
|
|
b _0200B5BC ; case 6
|
|
b _0200B5D0 ; case 7
|
|
b _0200B5E4 ; case 8
|
|
b _0200B5F8 ; case 9
|
|
b _0200B658 ; case 10
|
|
b _0200B60C ; case 11
|
|
b _0200B62C ; case 12
|
|
b _0200B634 ; case 13
|
|
b _0200B648 ; case 14
|
|
b _0200B61C ; case 15
|
|
_0200B598:
|
|
bl sub_0200AC94
|
|
b _0200B660
|
|
_0200B5A0:
|
|
bl sub_0200B27C
|
|
ldr r1, [r4]
|
|
str r0, [r1, #8]
|
|
b _0200B660
|
|
_0200B5B0:
|
|
mov r0, #3
|
|
str r0, [r3]
|
|
b _0200B660
|
|
_0200B5BC:
|
|
ldr r0, [r3, #0xc]
|
|
ldr r1, [r3, #0x10]
|
|
ldr r2, [r3, #0x14]
|
|
bl sub_0200ACEC
|
|
b _0200B660
|
|
_0200B5D0:
|
|
ldr r0, [r3, #0x10]
|
|
ldr r1, [r3, #0xc]
|
|
ldr r2, [r3, #0x14]
|
|
bl sub_0200AE10
|
|
b _0200B660
|
|
_0200B5E4:
|
|
ldr r0, [r3, #0x10]
|
|
ldr r1, [r3, #0xc]
|
|
ldr r2, [r3, #0x14]
|
|
bl sub_0200AD58
|
|
b _0200B660
|
|
_0200B5F8:
|
|
ldr r0, [r3, #0x10]
|
|
ldr r1, [r3, #0xc]
|
|
ldr r2, [r3, #0x14]
|
|
bl sub_0200AEC8
|
|
b _0200B660
|
|
_0200B60C:
|
|
ldr r0, [r3, #0x10]
|
|
ldr r1, [r3, #0x14]
|
|
bl sub_0200AF58
|
|
b _0200B660
|
|
_0200B61C:
|
|
ldr r0, [r3, #0x10]
|
|
ldr r1, [r3, #0x14]
|
|
bl sub_0200AFF4
|
|
b _0200B660
|
|
_0200B62C:
|
|
bl sub_0200B090
|
|
b _0200B660
|
|
_0200B634:
|
|
bl sub_0200A9B8
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, #0x10]
|
|
strb r0, [r1]
|
|
b _0200B660
|
|
_0200B648:
|
|
ldr r0, [r3, #0xc]
|
|
ldrb r0, [r0]
|
|
bl sub_0200B0EC
|
|
b _0200B660
|
|
_0200B658:
|
|
mov r0, #3
|
|
str r0, [r3]
|
|
_0200B660:
|
|
mov r6, #0xb
|
|
mov r5, #1
|
|
_0200B668:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r5
|
|
bl sub_020065F8
|
|
cmp r0, #0
|
|
blt _0200B668
|
|
bl sub_02005EE8
|
|
ldr r1, [r4, #0xfc]
|
|
mov r5, r0
|
|
bic r0, r1, #0x4c
|
|
str r0, [r4, #0xfc]
|
|
add r0, r4, #0xf4
|
|
bl sub_020044CC
|
|
ldr r0, [r4, #0xfc]
|
|
tst r0, #0x10
|
|
beq _0200B6B0
|
|
add r0, r4, #0x48
|
|
bl sub_02004554
|
|
_0200B6B0:
|
|
mov r0, r5
|
|
bl sub_02005EFC
|
|
b _0200B4A8
|
|
_0200B6BC:
|
|
ldr r1, [r4, #0x44]
|
|
mov r0, r4
|
|
mov lr, pc
|
|
bx r1
|
|
_0200B6CC:
|
|
b _0200B4A8
|
|
.align 2, 0
|
|
_0200B6D0: .word 0x03809060
|
|
arm_func_end sub_0200B4A0
|
|
|
|
arm_func_start sub_0200B6D4
|
|
sub_0200B6D4: ; 0x0200B6D4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _0200B724 ; =0x038098C0
|
|
ldr r1, [r0, #8]
|
|
cmp r1, #0
|
|
bne _0200B71C
|
|
mov r1, #1
|
|
str r1, [r0, #8]
|
|
bl sub_0200649C
|
|
mov r5, #0xe
|
|
mov r4, #0
|
|
_0200B6FC:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_020065D4
|
|
cmp r0, #0
|
|
beq _0200B6FC
|
|
ldr r1, _0200B728 ; =0x03803544
|
|
mov r0, #0xe
|
|
bl sub_02006584
|
|
_0200B71C:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B724: .word 0x038098C0
|
|
_0200B728: .word 0x03803544
|
|
arm_func_end sub_0200B6D4
|
|
|
|
arm_func_start sub_0200B72C
|
|
sub_0200B72C: ; 0x0200B72C
|
|
stmdb sp!, {r4, lr}
|
|
and r0, r1, #0x3f
|
|
cmp r0, #1
|
|
bne _0200B784
|
|
mov r0, #0
|
|
bl sub_020060DC
|
|
mov r0, #1
|
|
bl sub_020060DC
|
|
mov r0, #2
|
|
bl sub_020060DC
|
|
mov r0, #3
|
|
bl sub_020060DC
|
|
mov r0, #0
|
|
bl sub_0200E7F8
|
|
bl sub_02005EE8
|
|
mov r4, r0
|
|
bl sub_020068F0
|
|
bl sub_0200D474
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
bl sub_02006058
|
|
b _0200B788
|
|
_0200B784:
|
|
bl sub_02006058
|
|
_0200B788:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_0200B72C
|
|
|
|
arm_func_start sub_0200B790
|
|
sub_0200B790: ; 0x0200B790
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0200B7D0 ; =0x038098C0
|
|
ldr r0, [r0, #0xc]
|
|
cmp r0, #0
|
|
bne _0200B7C0
|
|
ldr r0, _0200B7D4 ; =0x027FFE1F
|
|
ldrb r0, [r0]
|
|
tst r0, #0x80
|
|
beq _0200B7BC
|
|
bl sub_0200B7D8
|
|
b _0200B7C0
|
|
_0200B7BC:
|
|
bl sub_0200B878
|
|
_0200B7C0:
|
|
ldr r0, _0200B7D0 ; =0x038098C0
|
|
ldr r0, [r0, #0xc]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B7D0: .word 0x038098C0
|
|
_0200B7D4: .word 0x027FFE1F
|
|
arm_func_end sub_0200B790
|
|
|
|
arm_func_start sub_0200B7D8
|
|
sub_0200B7D8: ; 0x0200B7D8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, #1
|
|
bl sub_02003DE4
|
|
mov r4, r0
|
|
mvn r0, #2
|
|
cmp r4, r0
|
|
beq _0200B850
|
|
mov r0, r4, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_02003DB4
|
|
cmp r0, #0
|
|
bne _0200B844
|
|
ldr r1, _0200B870 ; =0x027FFC10
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
subeq r0, r1, #0x410
|
|
subne r0, r1, #0x10
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
bl sub_0200B2CC
|
|
ldr r1, [sp]
|
|
cmp r0, r1
|
|
mov r0, r4, lsl #0x10
|
|
moveq r5, #1
|
|
mov r0, r0, lsr #0x10
|
|
movne r5, #0
|
|
bl sub_02003D94
|
|
_0200B844:
|
|
mov r0, r4, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_02003E8C
|
|
_0200B850:
|
|
ldr r1, _0200B874 ; =0x038098C0
|
|
cmp r5, #0
|
|
moveq r2, #1
|
|
movne r2, #0
|
|
str r2, [r1, #0xc]
|
|
mov r0, r5
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B870: .word 0x027FFC10
|
|
_0200B874: .word 0x038098C0
|
|
arm_func_end sub_0200B7D8
|
|
|
|
arm_func_start sub_0200B878
|
|
sub_0200B878: ; 0x0200B878
|
|
ldr r0, _0200B89C ; =0x04000214
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, r2
|
|
tst r1, #0x100000
|
|
ldrne r1, _0200B8A0 ; =0x038098C0
|
|
movne r0, #0
|
|
strne r2, [r1, #0xc]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B89C: .word 0x04000214
|
|
_0200B8A0: .word 0x038098C0
|
|
arm_func_end sub_0200B878
|
|
|
|
arm_func_start sub_0200B8A4
|
|
sub_0200B8A4: ; 0x0200B8A4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r0, _0200B990 ; =0x038098C0
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
bne _0200B988
|
|
ldr r2, _0200B994 ; =0x027FFC40
|
|
ldrh r0, [r2]
|
|
cmp r0, #2
|
|
beq _0200B988
|
|
ldr r1, _0200B998 ; =0x03807564
|
|
mvn r0, #0
|
|
ldr r3, [r1]
|
|
cmp r3, r0
|
|
ldreq r0, [r2, #-4]
|
|
addeq r0, r0, #0xa
|
|
streq r0, [r1]
|
|
beq _0200B988
|
|
ldr r0, [r2, #-4]!
|
|
cmp r0, r3
|
|
blo _0200B988
|
|
ldr r0, [r2]
|
|
add r0, r0, #0xa
|
|
str r0, [r1]
|
|
bl sub_0200B790
|
|
cmp r0, #0
|
|
beq _0200B938
|
|
ldr r0, _0200B990 ; =0x038098C0
|
|
mov r1, #1
|
|
str r1, [r0, #4]
|
|
bl sub_0200A908
|
|
ldr r0, [r0, #0xc]
|
|
cmp r0, #0
|
|
bne _0200B938
|
|
ldr r0, _0200B998 ; =0x03807564
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
bne _0200B988
|
|
_0200B938:
|
|
ldr r0, _0200B990 ; =0x038098C0
|
|
ldr r1, _0200B998 ; =0x03807564
|
|
ldr r0, [r0, #4]
|
|
mov r2, #0
|
|
str r2, [r1, #4]
|
|
cmp r0, #0
|
|
beq _0200B988
|
|
mov r7, #0x64
|
|
mov r6, #0xe
|
|
mov r5, #0x11
|
|
mov r4, r2
|
|
b _0200B970
|
|
_0200B968:
|
|
mov r0, r7
|
|
bl sub_02003BF4
|
|
_0200B970:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_020065F8
|
|
cmp r0, #0
|
|
bne _0200B968
|
|
_0200B988:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B990: .word 0x038098C0
|
|
_0200B994: .word 0x027FFC40
|
|
_0200B998: .word 0x03807564
|
|
arm_func_end sub_0200B8A4
|
|
|
|
thumb_func_start sub_0200B99C
|
|
sub_0200B99C: ; 0x0200B99C
|
|
swi 0
|
|
bx lr
|
|
thumb_func_end sub_0200B99C
|
|
|
|
thumb_func_start sub_0200B9A0
|
|
sub_0200B9A0: ; 0x0200B9A0
|
|
swi 3
|
|
bx lr
|
|
thumb_func_end sub_0200B9A0
|
|
|
|
thumb_func_start sub_0200B9A4
|
|
sub_0200B9A4: ; 0x0200B9A4
|
|
ldr r2, _0200B9B0 ; =0x04000000
|
|
mov ip, r2
|
|
mov r2, #0
|
|
swi 4
|
|
bx lr
|
|
.align 2, 0
|
|
_0200B9B0: .word 0x04000000
|
|
thumb_func_end sub_0200B9A4
|
|
|
|
thumb_func_start sub_0200B9B4
|
|
sub_0200B9B4: ; 0x0200B9B4
|
|
mov r2, #0
|
|
swi 5
|
|
bx lr
|
|
thumb_func_end sub_0200B9B4
|
|
|
|
non_word_aligned_thumb_func_start sub_0200B9BA
|
|
sub_0200B9BA: ; 0x0200B9BA
|
|
swi 6
|
|
bx lr
|
|
thumb_func_end sub_0200B9BA
|
|
|
|
non_word_aligned_thumb_func_start sub_0200B9BE
|
|
sub_0200B9BE: ; 0x0200B9BE
|
|
swi 7
|
|
bx lr
|
|
thumb_func_end sub_0200B9BE
|
|
|
|
non_word_aligned_thumb_func_start sub_0200B9C2
|
|
sub_0200B9C2: ; 0x0200B9C2
|
|
swi 8
|
|
bx lr
|
|
thumb_func_end sub_0200B9C2
|
|
|
|
non_word_aligned_thumb_func_start sub_0200B9C6
|
|
sub_0200B9C6: ; 0x0200B9C6
|
|
add r1, r0, #0
|
|
mov r0, #1
|
|
swi 8
|
|
bx lr
|
|
thumb_func_end sub_0200B9C6
|
|
|
|
non_word_aligned_thumb_func_start sub_0200B9CE
|
|
sub_0200B9CE: ; 0x0200B9CE
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
swi 8
|
|
bx lr
|
|
thumb_func_end sub_0200B9CE
|
|
|
|
non_word_aligned_thumb_func_start sub_0200B9D6
|
|
sub_0200B9D6: ; 0x0200B9D6
|
|
swi 9
|
|
bx lr
|
|
thumb_func_end sub_0200B9D6
|
|
|
|
non_word_aligned_thumb_func_start sub_0200B9DA
|
|
sub_0200B9DA: ; 0x0200B9DA
|
|
swi 9
|
|
add r0, r1, #0
|
|
bx lr
|
|
thumb_func_end sub_0200B9DA
|
|
|
|
thumb_func_start sub_0200B9E0
|
|
sub_0200B9E0: ; 0x0200B9E0
|
|
swi 0xb
|
|
bx lr
|
|
thumb_func_end sub_0200B9E0
|
|
|
|
thumb_func_start sub_0200B9E4
|
|
sub_0200B9E4: ; 0x0200B9E4
|
|
swi 0xc
|
|
bx lr
|
|
thumb_func_end sub_0200B9E4
|
|
|
|
thumb_func_start sub_0200B9E8
|
|
sub_0200B9E8: ; 0x0200B9E8
|
|
swi 0xd
|
|
bx lr
|
|
thumb_func_end sub_0200B9E8
|
|
|
|
thumb_func_start sub_0200B9EC
|
|
sub_0200B9EC: ; 0x0200B9EC
|
|
swi 0xe
|
|
bx lr
|
|
thumb_func_end sub_0200B9EC
|
|
|
|
thumb_func_start sub_0200B9F0
|
|
sub_0200B9F0: ; 0x0200B9F0
|
|
swi 0xf
|
|
bx lr
|
|
thumb_func_end sub_0200B9F0
|
|
|
|
thumb_func_start sub_0200B9F4
|
|
sub_0200B9F4: ; 0x0200B9F4
|
|
swi 0x10
|
|
bx lr
|
|
thumb_func_end sub_0200B9F4
|
|
|
|
thumb_func_start sub_0200B9F8
|
|
sub_0200B9F8: ; 0x0200B9F8
|
|
swi 0x11
|
|
bx lr
|
|
thumb_func_end sub_0200B9F8
|
|
|
|
thumb_func_start sub_0200B9FC
|
|
sub_0200B9FC: ; 0x0200B9FC
|
|
swi 0x12
|
|
bx lr
|
|
thumb_func_end sub_0200B9FC
|
|
|
|
thumb_func_start sub_0200BA00
|
|
sub_0200BA00: ; 0x0200BA00
|
|
swi 0x13
|
|
bx lr
|
|
thumb_func_end sub_0200BA00
|
|
|
|
thumb_func_start sub_0200BA04
|
|
sub_0200BA04: ; 0x0200BA04
|
|
swi 0x14
|
|
bx lr
|
|
thumb_func_end sub_0200BA04
|
|
|
|
thumb_func_start sub_0200BA08
|
|
sub_0200BA08: ; 0x0200BA08
|
|
swi 0x15
|
|
bx lr
|
|
thumb_func_end sub_0200BA08
|
|
|
|
thumb_func_start sub_0200BA0C
|
|
sub_0200BA0C: ; 0x0200BA0C
|
|
swi 0x1a
|
|
bx lr
|
|
thumb_func_end sub_0200BA0C
|
|
|
|
thumb_func_start sub_0200BA10
|
|
sub_0200BA10: ; 0x0200BA10
|
|
swi 0x1b
|
|
bx lr
|
|
thumb_func_end sub_0200BA10
|
|
|
|
thumb_func_start sub_0200BA14
|
|
sub_0200BA14: ; 0x0200BA14
|
|
swi 0x1c
|
|
bx lr
|
|
thumb_func_end sub_0200BA14
|
|
|
|
arm_func_start sub_0200BA18
|
|
sub_0200BA18: ; 0x0200BA18
|
|
ldr r1, _0200BA50 ; =0x55555555
|
|
ldr r2, _0200BA54 ; =0x33333333
|
|
and r1, r1, r0, lsr #1
|
|
sub r1, r0, r1
|
|
ldr r0, _0200BA58 ; =0x0F0F0F0F
|
|
and r3, r1, r2
|
|
and r1, r2, r1, lsr #2
|
|
add r1, r3, r1
|
|
add r1, r1, r1, lsr #4
|
|
and r0, r1, r0
|
|
add r0, r0, r0, lsr #8
|
|
add r0, r0, r0, lsr #16
|
|
and r0, r0, #0xff
|
|
bx lr
|
|
.align 2, 0
|
|
_0200BA50: .word 0x55555555
|
|
_0200BA54: .word 0x33333333
|
|
_0200BA58: .word 0x0F0F0F0F
|
|
arm_func_end sub_0200BA18
|
|
|
|
arm_func_start sub_0200BA5C
|
|
sub_0200BA5C: ; 0x0200BA5C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _0200BB58 ; =0x038098D0
|
|
mov r4, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _0200BB4C
|
|
mov r0, #1
|
|
strh r0, [r1]
|
|
mov r0, #0
|
|
str r0, [r1, #4]
|
|
mov r0, #5
|
|
str r0, [r1, #8]
|
|
bl sub_0200BF38
|
|
bl sub_00FFD194
|
|
bl sub_0200D548
|
|
bl sub_0200CA8C
|
|
bl sub_0200649C
|
|
ldr r1, _0200BB5C ; =0x03803CE8
|
|
mov r0, #6
|
|
bl sub_02006584
|
|
ldr r1, _0200BB5C ; =0x03803CE8
|
|
mov r0, #9
|
|
bl sub_02006584
|
|
ldr r1, _0200BB5C ; =0x03803CE8
|
|
mov r0, #8
|
|
bl sub_02006584
|
|
ldr r1, _0200BB5C ; =0x03803CE8
|
|
mov r0, #4
|
|
bl sub_02006584
|
|
ldr r0, _0200BB60 ; =0x03809B80
|
|
ldr r1, _0200BB64 ; =0x03809BA0
|
|
mov r2, #0x10
|
|
bl sub_02004894
|
|
mov sb, #0
|
|
mov r6, #0x18
|
|
ldr r8, _0200BB68 ; =0x03809BE0
|
|
mov r7, sb
|
|
mov r5, r6
|
|
_0200BAF8:
|
|
mla r0, sb, r5, r8
|
|
mov r1, r7
|
|
mov r2, r6
|
|
bl sub_02006258
|
|
add sb, sb, #1
|
|
cmp sb, #0x10
|
|
blt _0200BAF8
|
|
ldr r0, _0200BB58 ; =0x038098D0
|
|
mov r2, #0
|
|
str r2, [r0, #0x490]
|
|
str r2, [r0, #0x498]
|
|
str r2, [r0, #0x494]
|
|
mov r0, #0x200
|
|
str r0, [sp]
|
|
ldr r0, _0200BB6C ; =0x038098DC
|
|
ldr r1, _0200BB70 ; =0x03803C7C
|
|
ldr r3, _0200BB60 ; =0x03809B80
|
|
str r4, [sp, #4]
|
|
bl sub_0200423C
|
|
ldr r0, _0200BB6C ; =0x038098DC
|
|
bl sub_02004554
|
|
_0200BB4C:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200BB58: .word 0x038098D0
|
|
_0200BB5C: .word 0x03803CE8
|
|
_0200BB60: .word 0x03809B80
|
|
_0200BB64: .word 0x03809BA0
|
|
_0200BB68: .word 0x03809BE0
|
|
_0200BB6C: .word 0x038098DC
|
|
_0200BB70: .word 0x03803C7C
|
|
arm_func_end sub_0200BA5C
|
|
|
|
arm_func_start sub_0200BB74
|
|
sub_0200BB74: ; 0x0200BB74
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r5, _0200BBC8 ; =0x03809D64
|
|
ldr r4, _0200BBCC ; =0x038098D0
|
|
mov r6, r0
|
|
_0200BB84:
|
|
bl sub_02005EE8
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #0
|
|
beq _0200BBA4
|
|
bl sub_02005EFC
|
|
mov r0, r5
|
|
bl sub_02004478
|
|
b _0200BB84
|
|
_0200BBA4:
|
|
ldr r1, _0200BBCC ; =0x038098D0
|
|
mov r2, #1
|
|
str r2, [r1, #4]
|
|
mov r2, #4
|
|
str r2, [r1, #8]
|
|
str r6, [r1, #0x49c]
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200BBC8: .word 0x03809D64
|
|
_0200BBCC: .word 0x038098D0
|
|
arm_func_end sub_0200BB74
|
|
|
|
arm_func_start sub_0200BBD0
|
|
sub_0200BBD0: ; 0x0200BBD0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _0200BC28 ; =0x038098D0
|
|
ldr r2, [r1, #4]
|
|
cmp r2, #0
|
|
beq _0200BC20
|
|
ldr r2, [r1, #8]
|
|
cmp r2, #4
|
|
ldreq r1, [r1, #0x49c]
|
|
cmpeq r1, r0
|
|
bne _0200BC20
|
|
bl sub_02005EE8
|
|
ldr r1, _0200BC28 ; =0x038098D0
|
|
mov r2, #5
|
|
str r2, [r1, #8]
|
|
mov r2, #0
|
|
str r2, [r1, #4]
|
|
str r2, [r1, #0x49c]
|
|
bl sub_02005EFC
|
|
ldr r0, _0200BC2C ; =0x03809D64
|
|
bl sub_020044CC
|
|
_0200BC20:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200BC28: .word 0x038098D0
|
|
_0200BC2C: .word 0x03809D64
|
|
arm_func_end sub_0200BBD0
|
|
|
|
arm_func_start sub_0200BC30
|
|
sub_0200BC30: ; 0x0200BC30
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
and r2, r0, #0x70
|
|
cmp r2, #0x30
|
|
bgt _0200BC68
|
|
bge _0200BCB4
|
|
cmp r2, #0x10
|
|
bgt _0200BC5C
|
|
bge _0200BC9C
|
|
cmp r2, #0
|
|
beq _0200BC9C
|
|
b _0200BCB8
|
|
_0200BC5C:
|
|
cmp r2, #0x20
|
|
beq _0200BCB4
|
|
b _0200BCB8
|
|
_0200BC68:
|
|
cmp r2, #0x50
|
|
bgt _0200BC80
|
|
bge _0200BCA4
|
|
cmp r2, #0x40
|
|
beq _0200BCA4
|
|
b _0200BCB8
|
|
_0200BC80:
|
|
cmp r2, #0x60
|
|
bgt _0200BC90
|
|
beq _0200BCAC
|
|
b _0200BCB8
|
|
_0200BC90:
|
|
cmp r2, #0x70
|
|
beq _0200BCAC
|
|
b _0200BCB8
|
|
_0200BC9C:
|
|
mov r4, #6
|
|
b _0200BCB8
|
|
_0200BCA4:
|
|
mov r4, #9
|
|
b _0200BCB8
|
|
_0200BCAC:
|
|
mov r4, #8
|
|
b _0200BCB8
|
|
_0200BCB4:
|
|
mov r4, #4
|
|
_0200BCB8:
|
|
and r0, r0, #0xff
|
|
orr r0, r0, #0x80
|
|
mov r0, r0, lsl #8
|
|
orr r2, r0, #0x3000000
|
|
and r0, r1, #0xff
|
|
orr r6, r2, r0
|
|
mov r5, #0
|
|
_0200BCD4:
|
|
mov r0, r4
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl sub_020065F8
|
|
cmp r0, #0
|
|
blt _0200BCD4
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_0200BC30
|
|
|
|
arm_func_start sub_0200BCF4
|
|
sub_0200BCF4: ; 0x0200BCF4
|
|
ldr r0, _0200BD0C ; =0x038098D0
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0200BD0C: .word 0x038098D0
|
|
arm_func_end sub_0200BCF4
|
|
|
|
arm_func_start sub_0200BD10
|
|
sub_0200BD10: ; 0x0200BD10
|
|
ldr r1, _0200BD24 ; =0x038098D0
|
|
mov r2, #1
|
|
str r2, [r1, #4]
|
|
str r0, [r1, #8]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200BD24: .word 0x038098D0
|
|
arm_func_end sub_0200BD10
|
|
|
|
arm_func_start sub_0200BD28
|
|
sub_0200BD28: ; 0x0200BD28
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _0200BD5C ; =0x038098D0
|
|
ldr r2, [r1, #8]
|
|
cmp r2, r0
|
|
bne _0200BD54
|
|
ldr r0, _0200BD60 ; =0x03809D64
|
|
mov r2, #5
|
|
str r2, [r1, #8]
|
|
mov r2, #0
|
|
str r2, [r1, #4]
|
|
bl sub_020044CC
|
|
_0200BD54:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200BD5C: .word 0x038098D0
|
|
_0200BD60: .word 0x03809D64
|
|
arm_func_end sub_0200BD28
|
|
|
|
arm_func_start sub_0200BD64
|
|
sub_0200BD64: ; 0x0200BD64
|
|
stmdb sp!, {r0, r1, r2, r3}
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldrh r2, [sp, #0x18]
|
|
mov r5, r0
|
|
cmp r2, #4
|
|
mov r4, r1
|
|
movhi r0, #0
|
|
bhi _0200BE24
|
|
bl sub_02005EE8
|
|
ldr r3, _0200BE30 ; =0x038098D0
|
|
add r2, sp, #0x18
|
|
ldr ip, [r3, #0x490]
|
|
mov r1, #0x18
|
|
mul r6, ip, r1
|
|
ldr lr, _0200BE34 ; =0x03809BE0
|
|
ldr ip, _0200BE38 ; =0x03809BE4
|
|
str r5, [lr, r6]
|
|
ldr r5, [r3, #0x490]
|
|
bic r2, r2, #3
|
|
mul lr, r5, r1
|
|
str r4, [ip, lr]
|
|
add r6, r2, #4
|
|
ldrh r1, [sp, #0x18]
|
|
ldr r5, _0200BE3C ; =0x038098D4
|
|
mov lr, #0
|
|
mov r2, #0x18
|
|
b _0200BDEC
|
|
_0200BDD0:
|
|
ldr ip, [r3, #0x490]
|
|
add r6, r6, #4
|
|
mla r4, ip, r2, r5
|
|
add r4, r4, lr, lsl #2
|
|
ldr ip, [r6, #-4]
|
|
add lr, lr, #1
|
|
str ip, [r4, #0x314]
|
|
_0200BDEC:
|
|
cmp lr, r1
|
|
blt _0200BDD0
|
|
ldr r1, _0200BE30 ; =0x038098D0
|
|
ldr r4, [r1, #0x490]
|
|
add r2, r4, #1
|
|
and r2, r2, #0xf
|
|
str r2, [r1, #0x490]
|
|
bl sub_02005EFC
|
|
ldr r1, _0200BE34 ; =0x03809BE0
|
|
mov r0, #0x18
|
|
mla r1, r4, r0, r1
|
|
ldr r0, _0200BE40 ; =0x03809B80
|
|
mov r2, #0
|
|
bl sub_020048BC
|
|
_0200BE24:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
add sp, sp, #0x10
|
|
bx lr
|
|
.align 2, 0
|
|
_0200BE30: .word 0x038098D0
|
|
_0200BE34: .word 0x03809BE0
|
|
_0200BE38: .word 0x03809BE4
|
|
_0200BE3C: .word 0x038098D4
|
|
_0200BE40: .word 0x03809B80
|
|
arm_func_end sub_0200BD64
|
|
|
|
arm_func_start sub_0200BE44
|
|
sub_0200BE44: ; 0x0200BE44
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0200BE60 ; =0x03809B80
|
|
add r1, sp, #0
|
|
mov r2, #0
|
|
bl sub_020049E4
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200BE60: .word 0x03809B80
|
|
arm_func_end sub_0200BE44
|
|
|
|
arm_func_start sub_0200BE64
|
|
sub_0200BE64: ; 0x0200BE64
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #4
|
|
ldr r6, _0200BECC ; =0x03809B80
|
|
add r5, sp, #0
|
|
mov r4, #1
|
|
_0200BE78:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_02004948
|
|
ldr r0, [sp]
|
|
ldr r1, [r0]
|
|
cmp r1, #3
|
|
addls pc, pc, r1, lsl #2
|
|
b _0200BE78
|
|
_0200BE9C: ; jump table
|
|
b _0200BEAC ; case 0
|
|
b _0200BEC4 ; case 1
|
|
b _0200BEB4 ; case 2
|
|
b _0200BEBC ; case 3
|
|
_0200BEAC:
|
|
bl sub_0200C230
|
|
b _0200BE78
|
|
_0200BEB4:
|
|
bl sub_0200D8FC
|
|
b _0200BE78
|
|
_0200BEBC:
|
|
bl sub_0200CC84
|
|
b _0200BE78
|
|
_0200BEC4:
|
|
bl sub_00FFD364
|
|
b _0200BE78
|
|
.align 2, 0
|
|
_0200BECC: .word 0x03809B80
|
|
arm_func_end sub_0200BE64
|
|
|
|
arm_func_start sub_0200BED0
|
|
sub_0200BED0: ; 0x0200BED0
|
|
stmdb sp!, {r3, lr}
|
|
cmp r2, #0
|
|
bne _0200BF30
|
|
sub r0, r0, #4
|
|
cmp r0, #5
|
|
addls pc, pc, r0, lsl #2
|
|
b _0200BF30
|
|
_0200BEEC: ; jump table
|
|
b _0200BF28 ; case 0
|
|
b _0200BF30 ; case 1
|
|
b _0200BF04 ; case 2
|
|
b _0200BF30 ; case 3
|
|
b _0200BF1C ; case 4
|
|
b _0200BF10 ; case 5
|
|
_0200BF04:
|
|
mov r0, r1
|
|
bl sub_0200C048
|
|
b _0200BF30
|
|
_0200BF10:
|
|
mov r0, r1
|
|
bl sub_0200D590
|
|
b _0200BF30
|
|
_0200BF1C:
|
|
mov r0, r1
|
|
bl sub_0200CAC8
|
|
b _0200BF30
|
|
_0200BF28:
|
|
mov r0, r1
|
|
bl sub_00FFD1BC
|
|
_0200BF30:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_0200BED0
|
|
|
|
arm_func_start sub_0200BF38
|
|
sub_0200BF38: ; 0x0200BF38
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r0, _0200C004 ; =0x03809D70
|
|
mov r3, #0
|
|
str r3, [r0, #0x24]
|
|
mov r1, #0x14
|
|
str r1, [r0, #0x28]
|
|
str r1, [r0, #0x2c]
|
|
ldr r0, _0200C008 ; =0x03809D74
|
|
mov r2, r3
|
|
_0200BF5C:
|
|
mov r1, r3, lsl #1
|
|
add r3, r3, #1
|
|
strh r2, [r0, r1]
|
|
cmp r3, #0x10
|
|
blt _0200BF5C
|
|
bl sub_02005980
|
|
cmp r0, #0
|
|
bne _0200BF80
|
|
bl sub_02005934
|
|
_0200BF80:
|
|
ldr r7, _0200C00C ; =0x03809DA0
|
|
ldr r5, _0200C010 ; =0x54505641
|
|
mov r8, #0
|
|
mov r4, #0x28
|
|
_0200BF90:
|
|
mul r6, r8, r4
|
|
add r0, r7, r6
|
|
bl sub_02005A6C
|
|
mov r1, r5
|
|
add r0, r7, r6
|
|
bl sub_02005BFC
|
|
add r8, r8, #1
|
|
cmp r8, #4
|
|
blt _0200BF90
|
|
ldr r2, _0200C014 ; =0x040001C0
|
|
_0200BFB8:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _0200BFB8
|
|
ldr r1, _0200C018 ; =0x00008A01
|
|
ldr r0, _0200C01C ; =0x040001C2
|
|
strh r1, [r2]
|
|
mov r1, #0x84
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_0200BFDC:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _0200BFDC
|
|
bl sub_0200C024
|
|
ldr r1, _0200C020 ; =0x00008201
|
|
ldr r0, _0200C014 ; =0x040001C0
|
|
strh r1, [r0]
|
|
bl sub_0200C024
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200C004: .word 0x03809D70
|
|
_0200C008: .word 0x03809D74
|
|
_0200C00C: .word 0x03809DA0
|
|
_0200C010: .word 0x54505641
|
|
_0200C014: .word 0x040001C0
|
|
_0200C018: .word 0x00008A01
|
|
_0200C01C: .word 0x040001C2
|
|
_0200C020: .word 0x00008201
|
|
arm_func_end sub_0200BF38
|
|
|
|
arm_func_start sub_0200C024
|
|
sub_0200C024: ; 0x0200C024
|
|
ldr r0, _0200C044 ; =0x040001C2
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_0200C034:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _0200C034
|
|
bx lr
|
|
.align 2, 0
|
|
_0200C044: .word 0x040001C2
|
|
arm_func_end sub_0200C024
|
|
|
|
arm_func_start sub_0200C048
|
|
sub_0200C048: ; 0x0200C048
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
tst r0, #0x2000000
|
|
beq _0200C078
|
|
ldr r1, _0200C224 ; =0x03809D74
|
|
mov r4, #0
|
|
mov r3, r4
|
|
_0200C064:
|
|
mov r2, r4, lsl #1
|
|
add r4, r4, #1
|
|
strh r3, [r1, r2]
|
|
cmp r4, #0x10
|
|
blt _0200C064
|
|
_0200C078:
|
|
ldr r1, _0200C224 ; =0x03809D74
|
|
and r2, r0, #0xf0000
|
|
mov r2, r2, lsr #0x10
|
|
mov r2, r2, lsl #1
|
|
strh r0, [r1, r2]
|
|
tst r0, #0x1000000
|
|
beq _0200C218
|
|
ldr r2, _0200C228 ; =0x03809D70
|
|
ldrh r1, [r2, #4]
|
|
and r0, r1, #0xff00
|
|
mov r0, r0, lsl #8
|
|
mov r4, r0, lsr #0x10
|
|
cmp r4, #3
|
|
addls pc, pc, r4, lsl #2
|
|
b _0200C20C
|
|
_0200C0B4: ; jump table
|
|
b _0200C0F8 ; case 0
|
|
b _0200C120 ; case 1
|
|
b _0200C1BC ; case 2
|
|
b _0200C0C4 ; case 3
|
|
_0200C0C4:
|
|
and r0, r1, #0xff
|
|
mov r0, r0, lsl #0x10
|
|
movs r3, r0, lsr #0x10
|
|
mov r0, #3
|
|
bne _0200C0E4
|
|
mov r1, #2
|
|
bl sub_0200BC30
|
|
b _0200C218
|
|
_0200C0E4:
|
|
str r3, [r2, #0x28]
|
|
mov r1, #0
|
|
str r3, [r2, #0x2c]
|
|
bl sub_0200BC30
|
|
b _0200C218
|
|
_0200C0F8:
|
|
mov r0, #0
|
|
mov r1, r4
|
|
mov r2, r0
|
|
bl sub_0200BD64
|
|
cmp r0, #0
|
|
bne _0200C218
|
|
mov r0, r4
|
|
mov r1, #4
|
|
bl sub_0200BC30
|
|
b _0200C218
|
|
_0200C120:
|
|
ldr r0, [r2, #0x24]
|
|
cmp r0, #0
|
|
beq _0200C13C
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_0200BC30
|
|
b _0200C218
|
|
_0200C13C:
|
|
and r0, r1, #0xff
|
|
mov r0, r0, lsl #0x10
|
|
movs r3, r0, lsr #0x10
|
|
beq _0200C154
|
|
cmp r3, #4
|
|
bls _0200C164
|
|
_0200C154:
|
|
mov r0, r4
|
|
mov r1, #2
|
|
bl sub_0200BC30
|
|
b _0200C218
|
|
_0200C164:
|
|
ldrh ip, [r2, #6]
|
|
ldr r0, _0200C22C ; =0x00000107
|
|
cmp ip, r0
|
|
blo _0200C184
|
|
mov r0, r4
|
|
mov r1, #2
|
|
bl sub_0200BC30
|
|
b _0200C218
|
|
_0200C184:
|
|
mov r1, r4
|
|
mov r0, #0
|
|
mov r2, #2
|
|
str ip, [sp]
|
|
bl sub_0200BD64
|
|
cmp r0, #0
|
|
ldrne r0, _0200C228 ; =0x03809D70
|
|
movne r1, #1
|
|
strne r1, [r0, #0x24]
|
|
bne _0200C218
|
|
mov r0, r4
|
|
mov r1, #4
|
|
bl sub_0200BC30
|
|
b _0200C218
|
|
_0200C1BC:
|
|
ldr r0, [r2, #0x24]
|
|
cmp r0, #2
|
|
beq _0200C1D8
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_0200BC30
|
|
b _0200C218
|
|
_0200C1D8:
|
|
mov r0, #0
|
|
mov r1, r4
|
|
mov r2, r0
|
|
bl sub_0200BD64
|
|
cmp r0, #0
|
|
ldrne r0, _0200C228 ; =0x03809D70
|
|
movne r1, #3
|
|
strne r1, [r0, #0x24]
|
|
bne _0200C218
|
|
mov r0, r4
|
|
mov r1, #4
|
|
bl sub_0200BC30
|
|
b _0200C218
|
|
_0200C20C:
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_0200BC30
|
|
_0200C218:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200C224: .word 0x03809D74
|
|
_0200C228: .word 0x03809D70
|
|
_0200C22C: .word 0x00000107
|
|
arm_func_end sub_0200C048
|
|
|
|
arm_func_start sub_0200C230
|
|
sub_0200C230: ; 0x0200C230
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0xc
|
|
mov sl, r0
|
|
ldr r1, [sl, #4]
|
|
cmp r1, #2
|
|
bhi _0200C264
|
|
cmp r1, #0
|
|
beq _0200C27C
|
|
cmp r1, #1
|
|
beq _0200C3E8
|
|
cmp r1, #2
|
|
beq _0200C4B0
|
|
b _0200C4FC
|
|
_0200C264:
|
|
cmp r1, #0x10
|
|
bne _0200C4FC
|
|
ldr r0, _0200C508 ; =0x03809D70
|
|
ldr r0, [r0, #0x24]
|
|
cmp r0, #2
|
|
bne _0200C4FC
|
|
_0200C27C:
|
|
bl sub_02005EE8
|
|
mov r4, r0
|
|
mov r0, #0
|
|
bl sub_0200BCF4
|
|
cmp r0, #0
|
|
bne _0200C2B4
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldr r0, [sl, #4]
|
|
mov r1, #4
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0200BC30
|
|
b _0200C4FC
|
|
_0200C2B4:
|
|
mov r0, #0
|
|
bl sub_0200BD10
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldr r1, _0200C508 ; =0x03809D70
|
|
add r0, sp, #8
|
|
ldr r1, [r1, #0x28]
|
|
add r2, sp, #4
|
|
bl sub_0200C894
|
|
ldr r0, [sp, #8]
|
|
ldrh r2, [sp, #4]
|
|
mov r1, r0, lsl #7
|
|
movs r1, r1, lsr #0x1f
|
|
ldreq r0, _0200C508 ; =0x03809D70
|
|
moveq r1, #0
|
|
streqb r1, [r0, #1]
|
|
streqb r1, [r0]
|
|
beq _0200C394
|
|
mov r0, r0, lsl #5
|
|
movs r0, r0, lsr #0x1e
|
|
beq _0200C344
|
|
ldr r0, _0200C508 ; =0x03809D70
|
|
mov r3, #0
|
|
strb r3, [r0]
|
|
ldrb r1, [r0, #1]
|
|
add r2, r1, #1
|
|
and r1, r2, #0xff
|
|
strb r2, [r0, #1]
|
|
cmp r1, #4
|
|
blo _0200C394
|
|
strb r3, [r0, #1]
|
|
ldr r1, [r0, #0x28]
|
|
cmp r1, #0x23
|
|
addlt r1, r1, #1
|
|
strlt r1, [r0, #0x28]
|
|
b _0200C394
|
|
_0200C344:
|
|
ldr r0, _0200C508 ; =0x03809D70
|
|
mov r4, #0
|
|
strb r4, [r0, #1]
|
|
ldr r3, [r0, #0x28]
|
|
cmp r2, r3, asr #1
|
|
strgeb r4, [r0]
|
|
bge _0200C394
|
|
ldrb r1, [r0]
|
|
add r2, r1, #1
|
|
and r1, r2, #0xff
|
|
strb r2, [r0]
|
|
cmp r1, #4
|
|
blo _0200C394
|
|
strb r4, [r0]
|
|
ldr r1, [r0, #0x2c]
|
|
cmp r3, r1
|
|
subgt r1, r3, #1
|
|
strgt r1, [r0, #0x28]
|
|
movgt r1, #3
|
|
strgtb r1, [r0, #1]
|
|
_0200C394:
|
|
ldrh r0, [sp, #8]
|
|
ldr r1, _0200C50C ; =0x027FFFAA
|
|
strh r0, [r1]
|
|
ldrh r0, [sp, #0xa]
|
|
strh r0, [r1, #2]
|
|
ldr r0, [sl, #4]
|
|
cmp r0, #0
|
|
bne _0200C3C8
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0
|
|
bl sub_0200BC30
|
|
b _0200C3DC
|
|
_0200C3C8:
|
|
ldr r1, [sl, #8]
|
|
mov r0, r0, lsl #0x10
|
|
and r1, r1, #0xff
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0200BC30
|
|
_0200C3DC:
|
|
mov r0, #0
|
|
bl sub_0200BD28
|
|
b _0200C4FC
|
|
_0200C3E8:
|
|
ldr r0, _0200C508 ; =0x03809D70
|
|
ldr r0, [r0, #0x24]
|
|
cmp r0, #1
|
|
bne _0200C49C
|
|
ldr r8, _0200C510 ; =0x00000107
|
|
ldr r6, _0200C514 ; =0x03809D74
|
|
ldr r5, _0200C518 ; =0x03809DA0
|
|
mov sb, #0
|
|
mov r7, #0xd7
|
|
mov fp, #0xa
|
|
mov r4, #0x28
|
|
b _0200C46C
|
|
_0200C418:
|
|
mul r0, sb, r8
|
|
bl sub_0200EFBC
|
|
ldr r2, [sl, #0xc]
|
|
mov r1, r8
|
|
add r0, r2, r0
|
|
bl sub_0200EFBC
|
|
mov r0, r1, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #0xc8
|
|
blo _0200C448
|
|
cmp r0, #0xd7
|
|
movlo r0, r7
|
|
_0200C448:
|
|
add r1, r6, sb, lsl #1
|
|
strh r0, [r1, #0xcc]
|
|
str sb, [sp]
|
|
mla r0, sb, r4, r5
|
|
ldrsh r1, [r1, #0xcc]
|
|
ldr r3, _0200C51C ; =0x0380433C
|
|
mov r2, fp
|
|
bl sub_02005B10
|
|
add sb, sb, #1
|
|
_0200C46C:
|
|
ldr r1, [sl, #8]
|
|
cmp sb, r1
|
|
blo _0200C418
|
|
ldr r0, [sl, #4]
|
|
mov r1, #0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0200BC30
|
|
ldr r0, _0200C508 ; =0x03809D70
|
|
mov r1, #2
|
|
str r1, [r0, #0x24]
|
|
b _0200C4FC
|
|
_0200C49C:
|
|
mov r0, r1, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #3
|
|
bl sub_0200BC30
|
|
b _0200C4FC
|
|
_0200C4B0:
|
|
ldr r0, _0200C508 ; =0x03809D70
|
|
ldr r0, [r0, #0x24]
|
|
cmp r0, #3
|
|
bne _0200C4EC
|
|
ldr r0, _0200C520 ; =0x54505641
|
|
bl sub_02005C6C
|
|
ldr r0, [sl, #4]
|
|
mov r1, #0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0200BC30
|
|
ldr r0, _0200C508 ; =0x03809D70
|
|
mov r1, #0
|
|
str r1, [r0, #0x24]
|
|
b _0200C4FC
|
|
_0200C4EC:
|
|
mov r0, r1, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #3
|
|
bl sub_0200BC30
|
|
_0200C4FC:
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200C508: .word 0x03809D70
|
|
_0200C50C: .word 0x027FFFAA
|
|
_0200C510: .word 0x00000107
|
|
_0200C514: .word 0x03809D74
|
|
_0200C518: .word 0x03809DA0
|
|
_0200C51C: .word 0x0380433C
|
|
_0200C520: .word 0x54505641
|
|
arm_func_end sub_0200C230
|
|
|
|
arm_func_start sub_0200C524
|
|
sub_0200C524: ; 0x0200C524
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
mov r3, r4
|
|
mov r0, #0
|
|
mov r1, #0x10
|
|
mov r2, #1
|
|
bl sub_0200BD64
|
|
cmp r0, #0
|
|
bne _0200C57C
|
|
ldr r0, [sp]
|
|
ldr r3, _0200C588 ; =0x027FFFAA
|
|
bic r0, r0, #0x6000000
|
|
orr r0, r0, #0x6000000
|
|
str r0, [sp]
|
|
ldrh r0, [sp]
|
|
ldrh r2, [sp, #2]
|
|
strh r0, [r3]
|
|
and r1, r4, #0xff
|
|
mov r0, #0x10
|
|
strh r2, [r3, #2]
|
|
bl sub_0200BC30
|
|
_0200C57C:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200C588: .word 0x027FFFAA
|
|
arm_func_end sub_0200C524
|
|
|
|
arm_func_start sub_0200C58C
|
|
sub_0200C58C: ; 0x0200C58C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x8000
|
|
bl sub_02006790
|
|
ldr r2, _0200C668 ; =0x040001C0
|
|
_0200C59C:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _0200C59C
|
|
ldr r1, _0200C66C ; =0x00008A01
|
|
ldr r0, _0200C670 ; =0x040001C2
|
|
strh r1, [r2]
|
|
mov r1, #0x84
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_0200C5C0:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _0200C5C0
|
|
bl sub_0200C680
|
|
ldr r1, _0200C674 ; =0x00008201
|
|
ldr r0, _0200C668 ; =0x040001C0
|
|
strh r1, [r0]
|
|
bl sub_0200C680
|
|
ldr r0, _0200C678 ; =0x03809E48
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
bne _0200C608
|
|
ldr r0, _0200C67C ; =0x04000136
|
|
ldrh r0, [r0]
|
|
tst r0, #0x40
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
b _0200C660
|
|
_0200C608:
|
|
ldr r2, _0200C67C ; =0x04000136
|
|
ldrh r0, [r2]
|
|
tst r0, #0x40
|
|
moveq r0, #1
|
|
beq _0200C660
|
|
ldr r1, _0200C66C ; =0x00008A01
|
|
mov r0, #0x84
|
|
strh r1, [r2, #0x8a]
|
|
strh r0, [r2, #0x8c]
|
|
_0200C62C:
|
|
ldrh r0, [r2, #0x8a]
|
|
tst r0, #0x80
|
|
bne _0200C62C
|
|
bl sub_0200C680
|
|
ldr r1, _0200C674 ; =0x00008201
|
|
ldr r0, _0200C668 ; =0x040001C0
|
|
strh r1, [r0]
|
|
bl sub_0200C680
|
|
ldr r0, _0200C67C ; =0x04000136
|
|
ldrh r0, [r0]
|
|
tst r0, #0x40
|
|
movne r0, #0
|
|
moveq r0, #2
|
|
_0200C660:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200C668: .word 0x040001C0
|
|
_0200C66C: .word 0x00008A01
|
|
_0200C670: .word 0x040001C2
|
|
_0200C674: .word 0x00008201
|
|
_0200C678: .word 0x03809E48
|
|
_0200C67C: .word 0x04000136
|
|
arm_func_end sub_0200C58C
|
|
|
|
arm_func_start sub_0200C680
|
|
sub_0200C680: ; 0x0200C680
|
|
ldr r0, _0200C6A0 ; =0x040001C2
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_0200C690:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _0200C690
|
|
bx lr
|
|
.align 2, 0
|
|
_0200C6A0: .word 0x040001C2
|
|
arm_func_end sub_0200C680
|
|
|
|
arm_func_start sub_0200C6A4
|
|
sub_0200C6A4: ; 0x0200C6A4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
|
|
sub sp, sp, #0x14
|
|
cmp r2, #0
|
|
ldr r2, _0200C880 ; =0x040001C0
|
|
mov r5, r3
|
|
moveq r3, #0xd1
|
|
moveq r4, #1
|
|
mov r7, r0
|
|
mov r6, r1
|
|
movne r3, #0x91
|
|
movne r4, #2
|
|
_0200C6D0:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _0200C6D0
|
|
ldr r1, _0200C884 ; =0x00008A01
|
|
ldr r0, _0200C888 ; =0x040001C2
|
|
strh r1, [r2]
|
|
and r2, r3, #0xff
|
|
strh r2, [r0]
|
|
sub r1, r0, #2
|
|
_0200C6F4:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _0200C6F4
|
|
mov r0, r2, lsl #0x10
|
|
ldr r2, _0200C880 ; =0x040001C0
|
|
mov ip, #0
|
|
ldr r8, _0200C88C ; =0x00007FF8
|
|
add r1, sp, #0
|
|
mov r0, r0, lsr #0x10
|
|
mov r3, ip
|
|
_0200C71C:
|
|
strh r3, [r2, #2]
|
|
_0200C720:
|
|
ldrh sb, [r2]
|
|
tst sb, #0x80
|
|
bne _0200C720
|
|
ldrh sb, [r2, #2]
|
|
and sb, sb, #0xff
|
|
mov lr, sb, lsl #0x10
|
|
mov sb, lr, lsr #8
|
|
str sb, [r1, ip, lsl #2]
|
|
strh r0, [r2, #2]
|
|
_0200C744:
|
|
ldrh sb, [r2]
|
|
tst sb, #0x80
|
|
bne _0200C744
|
|
ldrh lr, [r2, #2]
|
|
ldr sb, [r1, ip, lsl #2]
|
|
and lr, lr, #0xff
|
|
mov lr, lr, lsl #0x10
|
|
orr sb, sb, lr, lsr #16
|
|
and lr, sb, r8
|
|
mov lr, lr, asr #3
|
|
str lr, [r1, ip, lsl #2]
|
|
add ip, ip, #1
|
|
cmp ip, #5
|
|
blt _0200C71C
|
|
ldr r0, _0200C890 ; =0x00008201
|
|
strh r0, [r2]
|
|
bl sub_0200C680
|
|
mov r8, #0
|
|
mov sb, r8
|
|
add r2, sp, #0
|
|
_0200C794:
|
|
ldr r1, [r2, sb, lsl #2]
|
|
add r3, sb, #1
|
|
b _0200C7B8
|
|
_0200C7A0:
|
|
ldr r0, [r2, r3, lsl #2]
|
|
add r3, r3, #1
|
|
subs r0, r1, r0
|
|
rsbmi r0, r0, #0
|
|
cmp r0, r8
|
|
movgt r8, r0
|
|
_0200C7B8:
|
|
cmp r3, #5
|
|
blt _0200C7A0
|
|
add sb, sb, #1
|
|
cmp sb, #4
|
|
blt _0200C794
|
|
strh r8, [r5]
|
|
mov r8, #0
|
|
add r0, sp, #0
|
|
b _0200C850
|
|
_0200C7DC:
|
|
ldr r3, [r0, r8, lsl #2]
|
|
add sb, r8, #1
|
|
b _0200C844
|
|
_0200C7E8:
|
|
ldr r2, [r0, sb, lsl #2]
|
|
subs r1, r3, r2
|
|
rsbmi r1, r1, #0
|
|
cmp r1, r6
|
|
bgt _0200C840
|
|
add r1, sb, #1
|
|
b _0200C838
|
|
_0200C804:
|
|
ldr r5, [r0, r1, lsl #2]
|
|
subs ip, r3, r5
|
|
rsbmi ip, ip, #0
|
|
cmp ip, r6
|
|
bgt _0200C834
|
|
add r0, r2, r3, lsl #1
|
|
add r0, r5, r0
|
|
mov r0, r0, asr #2
|
|
bic r0, r0, #7
|
|
strh r0, [r7]
|
|
mov r0, #0
|
|
b _0200C874
|
|
_0200C834:
|
|
add r1, r1, #1
|
|
_0200C838:
|
|
cmp r1, #5
|
|
blt _0200C804
|
|
_0200C840:
|
|
add sb, sb, #1
|
|
_0200C844:
|
|
cmp sb, #4
|
|
blt _0200C7E8
|
|
add r8, r8, #1
|
|
_0200C850:
|
|
cmp r8, #3
|
|
blt _0200C7DC
|
|
ldr r2, [sp]
|
|
ldr r1, [sp, #0x10]
|
|
mov r0, r4
|
|
add r1, r2, r1
|
|
mov r1, r1, asr #1
|
|
bic r1, r1, #7
|
|
strh r1, [r7]
|
|
_0200C874:
|
|
add sp, sp, #0x14
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200C880: .word 0x040001C0
|
|
_0200C884: .word 0x00008A01
|
|
_0200C888: .word 0x040001C2
|
|
_0200C88C: .word 0x00007FF8
|
|
_0200C890: .word 0x00008201
|
|
arm_func_end sub_0200C6A4
|
|
|
|
arm_func_start sub_0200C894
|
|
sub_0200C894: ; 0x0200C894
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #8
|
|
movs r6, r1
|
|
mov r5, r2
|
|
mov r1, #0
|
|
mov r7, r0
|
|
strh r1, [r5]
|
|
rsbmi r6, r6, #0
|
|
bl sub_0200C58C
|
|
movs r4, r0
|
|
bne _0200C8FC
|
|
ldr r1, [r7]
|
|
mov r0, #0x1000
|
|
rsb r0, r0, #0
|
|
and r1, r1, r0
|
|
ldr r0, _0200CA78 ; =0xFF000FFF
|
|
and r0, r1, r0
|
|
bic r1, r0, #0x1000000
|
|
bic r0, r1, #0x6000000
|
|
str r1, [r7]
|
|
orr r1, r0, #0x6000000
|
|
str r1, [r7]
|
|
ldr r0, _0200CA7C ; =0x03809E48
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
b _0200CA6C
|
|
_0200C8FC:
|
|
add r0, sp, #4
|
|
add r3, sp, #2
|
|
mov r1, r6
|
|
mov r2, #0
|
|
bl sub_0200C6A4
|
|
ldr r1, [r7]
|
|
mov r0, r0, lsl #0x1e
|
|
bic r1, r1, #0x6000000
|
|
orr ip, r1, r0, lsr #5
|
|
str ip, [r7]
|
|
mov r1, #0x1000
|
|
rsb r1, r1, #0
|
|
ldrh r2, [sp, #4]
|
|
and ip, ip, r1
|
|
and r1, r2, r1, lsr #20
|
|
orr ip, ip, r1
|
|
add r0, sp, #4
|
|
add r3, sp, #0
|
|
mov r1, r6
|
|
mov r2, #1
|
|
str ip, [r7]
|
|
bl sub_0200C6A4
|
|
cmp r0, #2
|
|
bne _0200C97C
|
|
ldr r1, [r7]
|
|
mov r0, r1, lsl #5
|
|
mov r0, r0, lsr #0x1e
|
|
orr r0, r0, #2
|
|
bic r1, r1, #0x6000000
|
|
mov r0, r0, lsl #0x1e
|
|
orr r0, r1, r0, lsr #5
|
|
str r0, [r7]
|
|
_0200C97C:
|
|
ldrh r1, [sp, #4]
|
|
ldr r2, [r7]
|
|
ldr r0, _0200CA78 ; =0xFF000FFF
|
|
mov r1, r1, lsl #0x14
|
|
and r0, r2, r0
|
|
orr r2, r0, r1, lsr #8
|
|
ldr r1, _0200CA80 ; =0x00008A01
|
|
ldr r0, _0200CA84 ; =0x040001C0
|
|
str r2, [r7]
|
|
strh r1, [r0]
|
|
mov r6, #0
|
|
_0200C9A8:
|
|
bl sub_0200C680
|
|
add r6, r6, #1
|
|
cmp r6, #0xc
|
|
blt _0200C9A8
|
|
ldr r1, _0200CA88 ; =0x00008201
|
|
ldr r0, _0200CA84 ; =0x040001C0
|
|
strh r1, [r0]
|
|
bl sub_0200C680
|
|
cmp r4, #2
|
|
ldreq r0, [r7]
|
|
biceq r0, r0, #0x6000000
|
|
orreq r0, r0, #0x6000000
|
|
streq r0, [r7]
|
|
bl sub_0200C58C
|
|
cmp r0, #0
|
|
beq _0200CA4C
|
|
cmp r0, #1
|
|
beq _0200CA1C
|
|
cmp r0, #2
|
|
bne _0200CA68
|
|
ldr r1, [r7]
|
|
ldr r0, _0200CA7C ; =0x03809E48
|
|
orr r2, r1, #0x1000000
|
|
bic r1, r2, #0x6000000
|
|
orr r1, r1, #0x6000000
|
|
str r1, [r7]
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
b _0200CA6C
|
|
_0200CA1C:
|
|
ldr r1, [r7]
|
|
ldr r0, _0200CA7C ; =0x03809E48
|
|
orr r1, r1, #0x1000000
|
|
str r1, [r7]
|
|
mov r2, #1
|
|
ldrh r1, [sp]
|
|
ldrh r3, [sp, #2]
|
|
strh r2, [r0]
|
|
cmp r3, r1
|
|
movlo r3, r1
|
|
strh r3, [r5]
|
|
b _0200CA6C
|
|
_0200CA4C:
|
|
ldr r1, [r7]
|
|
ldr r0, _0200CA7C ; =0x03809E48
|
|
bic r1, r1, #0x1000000
|
|
str r1, [r7]
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
b _0200CA6C
|
|
_0200CA68:
|
|
bl sub_02006058
|
|
_0200CA6C:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200CA78: .word 0xFF000FFF
|
|
_0200CA7C: .word 0x03809E48
|
|
_0200CA80: .word 0x00008A01
|
|
_0200CA84: .word 0x040001C0
|
|
_0200CA88: .word 0x00008201
|
|
arm_func_end sub_0200C894
|
|
|
|
arm_func_start sub_0200CA8C
|
|
sub_0200CA8C: ; 0x0200CA8C
|
|
ldr r0, _0200CAC0 ; =0x03809E4C
|
|
mov r1, #1
|
|
str r1, [r0, #4]
|
|
mov r3, #0
|
|
str r3, [r0, #0x28]
|
|
ldr r0, _0200CAC4 ; =0x03809E54
|
|
mov r2, r3
|
|
_0200CAA8:
|
|
mov r1, r3, lsl #1
|
|
add r3, r3, #1
|
|
strh r2, [r0, r1]
|
|
cmp r3, #0x10
|
|
blt _0200CAA8
|
|
bx lr
|
|
.align 2, 0
|
|
_0200CAC0: .word 0x03809E4C
|
|
_0200CAC4: .word 0x03809E54
|
|
arm_func_end sub_0200CA8C
|
|
|
|
arm_func_start sub_0200CAC8
|
|
sub_0200CAC8: ; 0x0200CAC8
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
tst r0, #0x2000000
|
|
beq _0200CAF8
|
|
ldr r1, _0200CC7C ; =0x03809E54
|
|
mov r4, #0
|
|
mov r3, r4
|
|
_0200CAE4:
|
|
mov r2, r4, lsl #1
|
|
add r4, r4, #1
|
|
strh r3, [r1, r2]
|
|
cmp r4, #0x10
|
|
blt _0200CAE4
|
|
_0200CAF8:
|
|
ldr r1, _0200CC7C ; =0x03809E54
|
|
and r2, r0, #0xf0000
|
|
mov r2, r2, lsr #0x10
|
|
mov r2, r2, lsl #1
|
|
strh r0, [r1, r2]
|
|
tst r0, #0x1000000
|
|
beq _0200CC70
|
|
ldr r1, _0200CC80 ; =0x03809E4C
|
|
ldrh r2, [r1, #8]
|
|
and r0, r2, #0xff00
|
|
mov r0, r0, lsl #8
|
|
mov r4, r0, lsr #0x10
|
|
sub r0, r4, #0x60
|
|
cmp r0, #7
|
|
addls pc, pc, r0, lsl #2
|
|
b _0200CC64
|
|
_0200CB38: ; jump table
|
|
b _0200CB58 ; case 0
|
|
b _0200CB68 ; case 1
|
|
b _0200CC64 ; case 2
|
|
b _0200CC00 ; case 3
|
|
b _0200CB9C ; case 4
|
|
b _0200CBD0 ; case 5
|
|
b _0200CC34 ; case 6
|
|
b _0200CC4C ; case 7
|
|
_0200CB58:
|
|
mov r0, #0x60
|
|
mov r1, #0
|
|
bl sub_0200BC30
|
|
b _0200CC70
|
|
_0200CB68:
|
|
ldrh ip, [r1, #0xa]
|
|
mov r1, r4
|
|
and r3, r2, #0xff
|
|
mov r0, #3
|
|
mov r2, #2
|
|
str ip, [sp]
|
|
bl sub_0200BD64
|
|
cmp r0, #0
|
|
bne _0200CC70
|
|
mov r0, r4
|
|
mov r1, #4
|
|
bl sub_0200BC30
|
|
b _0200CC70
|
|
_0200CB9C:
|
|
ldrh ip, [r1, #0xa]
|
|
mov r1, r4
|
|
and r3, r2, #0xff
|
|
mov r0, #3
|
|
mov r2, #2
|
|
str ip, [sp]
|
|
bl sub_0200BD64
|
|
cmp r0, #0
|
|
bne _0200CC70
|
|
mov r0, r4
|
|
mov r1, #4
|
|
bl sub_0200BC30
|
|
b _0200CC70
|
|
_0200CBD0:
|
|
mov r0, r2, lsl #0x10
|
|
mov r1, r4
|
|
mov r3, r0, lsr #0x10
|
|
mov r0, #3
|
|
mov r2, #1
|
|
bl sub_0200BD64
|
|
cmp r0, #0
|
|
bne _0200CC70
|
|
mov r0, r4
|
|
mov r1, #4
|
|
bl sub_0200BC30
|
|
b _0200CC70
|
|
_0200CC00:
|
|
ldrh r0, [r1, #0xa]
|
|
mov r2, r2, lsl #0x18
|
|
mov r1, r4
|
|
orr r3, r0, r2, lsr #8
|
|
mov r0, #3
|
|
mov r2, #1
|
|
bl sub_0200BD64
|
|
cmp r0, #0
|
|
bne _0200CC70
|
|
mov r0, r4
|
|
mov r1, #4
|
|
bl sub_0200BC30
|
|
b _0200CC70
|
|
_0200CC34:
|
|
and r0, r2, #0xff
|
|
bl sub_0200D404
|
|
mov r0, #0x66
|
|
mov r1, #0
|
|
bl sub_0200BC30
|
|
b _0200CC70
|
|
_0200CC4C:
|
|
bl sub_0200D420
|
|
mov r0, r0, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
mov r0, #0x67
|
|
bl sub_0200BC30
|
|
b _0200CC70
|
|
_0200CC64:
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_0200BC30
|
|
_0200CC70:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200CC7C: .word 0x03809E54
|
|
_0200CC80: .word 0x03809E4C
|
|
arm_func_end sub_0200CAC8
|
|
|
|
arm_func_start sub_0200CC84
|
|
sub_0200CC84: ; 0x0200CC84
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
bl sub_02005EE8
|
|
mov r5, r0
|
|
mov r0, #3
|
|
bl sub_0200BCF4
|
|
cmp r0, #0
|
|
bne _0200CCC4
|
|
mov r0, r5
|
|
bl sub_02005EFC
|
|
ldr r0, [r4, #4]
|
|
mov r1, #4
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0200BC30
|
|
b _0200CDE8
|
|
_0200CCC4:
|
|
mov r0, #3
|
|
bl sub_0200BD10
|
|
mov r0, r5
|
|
bl sub_02005EFC
|
|
ldr r1, [r4, #4]
|
|
sub r0, r1, #0x61
|
|
cmp r0, #5
|
|
addls pc, pc, r0, lsl #2
|
|
b _0200CDD0
|
|
_0200CCE8: ; jump table
|
|
b _0200CD00 ; case 0
|
|
b _0200CDD0 ; case 1
|
|
b _0200CD9C ; case 2
|
|
b _0200CD24 ; case 3
|
|
b _0200CD60 ; case 4
|
|
b _0200CDC4 ; case 5
|
|
_0200CD00:
|
|
ldr r0, _0200CDF0 ; =0x03809E4C
|
|
mov r1, #1
|
|
str r1, [r0, #0x28]
|
|
ldr r1, [r4, #8]
|
|
strh r1, [r0, #2]
|
|
ldr r1, [r4, #0xc]
|
|
strh r1, [r0]
|
|
bl sub_0200D104
|
|
b _0200CDE0
|
|
_0200CD24:
|
|
ldr r2, _0200CDF0 ; =0x03809E4C
|
|
mov r0, #4
|
|
str r0, [r2, #0x28]
|
|
ldr r0, [r4, #8]
|
|
str r0, [r2, #0x30]
|
|
ldr r3, [r4, #0xc]
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
and r1, r3, #0xff
|
|
str r3, [r2, #0x2c]
|
|
bl sub_0200CE38
|
|
mov r0, #0x64
|
|
mov r1, #0
|
|
bl sub_0200BC30
|
|
b _0200CDE0
|
|
_0200CD60:
|
|
ldr r1, _0200CDF0 ; =0x03809E4C
|
|
mov r0, #3
|
|
str r0, [r1, #0x28]
|
|
ldr r2, [r4, #8]
|
|
mov r0, r2, lsl #0x10
|
|
mov r4, r0, lsr #0x10
|
|
mov r0, r4
|
|
str r2, [r1, #0x30]
|
|
bl sub_0200CEB4
|
|
add r1, r4, #0x70
|
|
mov r2, r1, lsl #0x10
|
|
mov r1, r0
|
|
mov r0, r2, lsr #0x10
|
|
bl sub_0200BC30
|
|
b _0200CDE0
|
|
_0200CD9C:
|
|
ldr r1, _0200CDF0 ; =0x03809E4C
|
|
mov r0, #2
|
|
str r0, [r1, #0x28]
|
|
ldr r0, [r4, #8]
|
|
str r0, [r1, #0x2c]
|
|
bl sub_0200CF78
|
|
mov r0, #0x63
|
|
mov r1, #0
|
|
bl sub_0200BC30
|
|
b _0200CDE0
|
|
_0200CDC4:
|
|
ldr r0, [r4, #8]
|
|
bl sub_0200D09C
|
|
b _0200CDE0
|
|
_0200CDD0:
|
|
mov r0, r1, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #1
|
|
bl sub_0200BC30
|
|
_0200CDE0:
|
|
mov r0, #3
|
|
bl sub_0200BD28
|
|
_0200CDE8:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200CDF0: .word 0x03809E4C
|
|
arm_func_end sub_0200CC84
|
|
|
|
arm_func_start sub_0200CDF4
|
|
sub_0200CDF4: ; 0x0200CDF4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
and r1, r1, #0x3f0000
|
|
and r3, r0, #0x3c00000
|
|
mov r1, r1, lsl #0x10
|
|
mov r0, r2, lsl #0x10
|
|
orr r1, r1, r3, lsl #22
|
|
orr r6, r1, r0, lsr #16
|
|
mov r5, #8
|
|
mov r4, #0
|
|
_0200CE18:
|
|
mov r0, r5
|
|
mov r1, r6
|
|
mov r2, r4
|
|
bl sub_020065F8
|
|
cmp r0, #0
|
|
bne _0200CE18
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_0200CDF4
|
|
|
|
arm_func_start sub_0200CE38
|
|
sub_0200CE38: ; 0x0200CE38
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _0200CE84 ; =0x040001C0
|
|
mov r4, r1
|
|
_0200CE44:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _0200CE44
|
|
ldr r1, _0200CE88 ; =0x00008202
|
|
and r0, r0, #0xff
|
|
strh r1, [r2]
|
|
add r1, r1, #0x600
|
|
strh r1, [r2]
|
|
bl sub_0200CE90
|
|
ldr r2, _0200CE8C ; =0x00008002
|
|
ldr r1, _0200CE84 ; =0x040001C0
|
|
and r0, r4, #0xff
|
|
strh r2, [r1]
|
|
strh r0, [r1, #2]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200CE84: .word 0x040001C0
|
|
_0200CE88: .word 0x00008202
|
|
_0200CE8C: .word 0x00008002
|
|
arm_func_end sub_0200CE38
|
|
|
|
arm_func_start sub_0200CE90
|
|
sub_0200CE90: ; 0x0200CE90
|
|
ldr r1, _0200CEB0 ; =0x040001C2
|
|
and r0, r0, #0xff
|
|
strh r0, [r1]
|
|
sub r1, r1, #2
|
|
_0200CEA0:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _0200CEA0
|
|
bx lr
|
|
.align 2, 0
|
|
_0200CEB0: .word 0x040001C2
|
|
arm_func_end sub_0200CE90
|
|
|
|
arm_func_start sub_0200CEB4
|
|
sub_0200CEB4: ; 0x0200CEB4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0200CF18 ; =0x040001C0
|
|
_0200CEBC:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _0200CEBC
|
|
ldr r1, _0200CF1C ; =0x00008202
|
|
orr r0, r0, #0x80
|
|
strh r1, [r2]
|
|
add r1, r1, #0x600
|
|
and r0, r0, #0xff
|
|
strh r1, [r2]
|
|
bl sub_0200CE90
|
|
ldr r2, _0200CF20 ; =0x00008002
|
|
ldr r1, _0200CF18 ; =0x040001C0
|
|
mov r0, #0
|
|
strh r2, [r1]
|
|
strh r0, [r1, #2]
|
|
_0200CEF8:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _0200CEF8
|
|
ldr r0, _0200CF24 ; =0x040001C2
|
|
ldrh r0, [r0]
|
|
and r0, r0, #0xff
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200CF18: .word 0x040001C0
|
|
_0200CF1C: .word 0x00008202
|
|
_0200CF20: .word 0x00008002
|
|
_0200CF24: .word 0x040001C2
|
|
arm_func_end sub_0200CEB4
|
|
|
|
arm_func_start sub_0200CF28
|
|
sub_0200CF28: ; 0x0200CF28
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0
|
|
bl sub_0200CEB4
|
|
orr r1, r0, r4
|
|
mov r0, #0
|
|
bl sub_0200CE38
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_0200CF28
|
|
|
|
arm_func_start sub_0200CF4C
|
|
sub_0200CF4C: ; 0x0200CF4C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0
|
|
bl sub_0200CEB4
|
|
mvn r1, r4
|
|
and r0, r0, r1
|
|
and r1, r0, #0xff
|
|
mov r0, #0
|
|
bl sub_0200CE38
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_0200CF4C
|
|
|
|
arm_func_start sub_0200CF78
|
|
sub_0200CF78: ; 0x0200CF78
|
|
stmdb sp!, {r3, lr}
|
|
cmp r0, #0xf
|
|
addls pc, pc, r0, lsl #2
|
|
b _0200D094
|
|
_0200CF88: ; jump table
|
|
b _0200D094 ; case 0
|
|
b _0200CFC8 ; case 1
|
|
b _0200CFDC ; case 2
|
|
b _0200CFF0 ; case 3
|
|
b _0200D004 ; case 4
|
|
b _0200D010 ; case 5
|
|
b _0200D01C ; case 6
|
|
b _0200D028 ; case 7
|
|
b _0200D034 ; case 8
|
|
b _0200D040 ; case 9
|
|
b _0200D04C ; case 10
|
|
b _0200D058 ; case 11
|
|
b _0200D064 ; case 12
|
|
b _0200D070 ; case 13
|
|
b _0200D088 ; case 14
|
|
b _0200D07C ; case 15
|
|
_0200CFC8:
|
|
mov r0, #1
|
|
bl sub_0200D404
|
|
mov r0, #1
|
|
bl sub_0200D09C
|
|
b _0200D094
|
|
_0200CFDC:
|
|
mov r0, #3
|
|
bl sub_0200D404
|
|
mov r0, #3
|
|
bl sub_0200D09C
|
|
b _0200D094
|
|
_0200CFF0:
|
|
mov r0, #2
|
|
bl sub_0200D404
|
|
mov r0, #2
|
|
bl sub_0200D09C
|
|
b _0200D094
|
|
_0200D004:
|
|
mov r0, #4
|
|
bl sub_0200CF28
|
|
b _0200D094
|
|
_0200D010:
|
|
mov r0, #4
|
|
bl sub_0200CF4C
|
|
b _0200D094
|
|
_0200D01C:
|
|
mov r0, #8
|
|
bl sub_0200CF28
|
|
b _0200D094
|
|
_0200D028:
|
|
mov r0, #8
|
|
bl sub_0200CF4C
|
|
b _0200D094
|
|
_0200D034:
|
|
mov r0, #0xc
|
|
bl sub_0200CF28
|
|
b _0200D094
|
|
_0200D040:
|
|
mov r0, #0xc
|
|
bl sub_0200CF4C
|
|
b _0200D094
|
|
_0200D04C:
|
|
mov r0, #1
|
|
bl sub_0200CF28
|
|
b _0200D094
|
|
_0200D058:
|
|
mov r0, #1
|
|
bl sub_0200CF4C
|
|
b _0200D094
|
|
_0200D064:
|
|
mov r0, #2
|
|
bl sub_0200CF4C
|
|
b _0200D094
|
|
_0200D070:
|
|
mov r0, #2
|
|
bl sub_0200CF28
|
|
b _0200D094
|
|
_0200D07C:
|
|
mov r0, #0x40
|
|
bl sub_0200CF4C
|
|
b _0200D094
|
|
_0200D088:
|
|
bl sub_020068F0
|
|
mov r0, #0x40
|
|
bl sub_0200CF28
|
|
_0200D094:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_0200CF78
|
|
|
|
arm_func_start sub_0200D09C
|
|
sub_0200D09C: ; 0x0200D09C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
cmp r4, #1
|
|
beq _0200D0C0
|
|
cmp r4, #2
|
|
beq _0200D0D8
|
|
cmp r4, #3
|
|
beq _0200D0CC
|
|
b _0200D0EC
|
|
_0200D0C0:
|
|
mov r0, #0x10
|
|
bl sub_0200CF4C
|
|
b _0200D0F0
|
|
_0200D0CC:
|
|
mov r0, #0x30
|
|
bl sub_0200CF28
|
|
b _0200D0F0
|
|
_0200D0D8:
|
|
mov r0, #0x20
|
|
bl sub_0200CF4C
|
|
mov r0, #0x10
|
|
bl sub_0200CF28
|
|
b _0200D0F0
|
|
_0200D0EC:
|
|
bl sub_02006058
|
|
_0200D0F0:
|
|
ldr r0, _0200D100 ; =0x0380756C
|
|
str r4, [r0]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200D100: .word 0x0380756C
|
|
arm_func_end sub_0200D09C
|
|
|
|
arm_func_start sub_0200D104
|
|
sub_0200D104: ; 0x0200D104
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r0, _0200D2C0 ; =0x04000208
|
|
mov r8, #0
|
|
ldrh sb, [r0]
|
|
strh r8, [r0]
|
|
bl sub_02005EE8
|
|
mov r4, r0
|
|
mvn r0, #0xfe000000
|
|
bl sub_02003B10
|
|
mov r5, r0
|
|
mov r0, r8
|
|
bl sub_0200CEB4
|
|
mov r6, r0
|
|
mov r0, #2
|
|
bl sub_0200D404
|
|
mov r0, #2
|
|
bl sub_0200D09C
|
|
mov r0, #2
|
|
bl sub_0200D09C
|
|
bl sub_020068F0
|
|
mov r0, #1
|
|
bl sub_0200CF4C
|
|
ldr r0, _0200D2C4 ; =0x03809E4E
|
|
ldrh r0, [r0]
|
|
tst r0, #1
|
|
beq _0200D188
|
|
ldr r0, _0200D2C8 ; =0x03809E4C
|
|
ldr r1, _0200D2CC ; =0x04000132
|
|
ldrh r2, [r0]
|
|
mov r0, #0x1000
|
|
orr r2, r2, #0x4000
|
|
strh r2, [r1]
|
|
bl sub_02003AD8
|
|
_0200D188:
|
|
ldr r0, _0200D2C4 ; =0x03809E4E
|
|
ldrh r0, [r0]
|
|
tst r0, #4
|
|
beq _0200D1A0
|
|
mov r0, #0x400000
|
|
bl sub_02003AD8
|
|
_0200D1A0:
|
|
ldr r0, _0200D2C4 ; =0x03809E4E
|
|
ldrh r0, [r0]
|
|
tst r0, #2
|
|
beq _0200D1E4
|
|
ldr r1, _0200D2D0 ; =0x04000134
|
|
mov r0, #0x8000
|
|
ldrh r7, [r1]
|
|
mov r8, #1
|
|
bl sub_02006790
|
|
mov r0, #0x40
|
|
mov r1, #0
|
|
bl sub_02006770
|
|
mov r0, #0x100
|
|
mov r1, r0
|
|
bl sub_02006770
|
|
mov r0, #0x80
|
|
bl sub_02003AD8
|
|
_0200D1E4:
|
|
ldr r0, _0200D2C4 ; =0x03809E4E
|
|
ldrh r0, [r0]
|
|
tst r0, #8
|
|
beq _0200D1FC
|
|
mov r0, #0x100000
|
|
bl sub_02003AD8
|
|
_0200D1FC:
|
|
ldr r0, _0200D2C4 ; =0x03809E4E
|
|
ldrh r0, [r0]
|
|
tst r0, #0x10
|
|
beq _0200D214
|
|
mov r0, #0x2000
|
|
bl sub_02003AD8
|
|
_0200D214:
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldr r2, _0200D2C0 ; =0x04000208
|
|
mov r0, #1
|
|
ldrh r1, [r2]
|
|
strh r0, [r2]
|
|
bl sub_0200D2D8
|
|
mov r1, r6
|
|
mov r0, #0
|
|
bl sub_0200CE38
|
|
ldr r0, _0200D2C4 ; =0x03809E4E
|
|
ldrh r1, [r0]
|
|
tst r1, #0x20
|
|
movne r0, #6
|
|
moveq r0, #7
|
|
tst r1, #0x40
|
|
movne r6, #4
|
|
moveq r6, #5
|
|
bl sub_0200CF78
|
|
mov r0, r6
|
|
bl sub_0200CF78
|
|
cmp r8, #0
|
|
ldrne r0, _0200D2D0 ; =0x04000134
|
|
strneh r7, [r0]
|
|
mov r0, #1
|
|
bl sub_0200CF28
|
|
bl sub_02006948
|
|
mov r1, #0
|
|
ldr r3, _0200D2D4 ; =0x03809E54
|
|
mov r2, r1
|
|
mov r0, #0x62
|
|
str r1, [r3, #0x20]
|
|
bl sub_0200CDF4
|
|
bl sub_02005EE8
|
|
mov r0, r5
|
|
bl sub_02003A8C
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldr r1, _0200D2C0 ; =0x04000208
|
|
ldrh r0, [r1]
|
|
strh sb, [r1]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200D2C0: .word 0x04000208
|
|
_0200D2C4: .word 0x03809E4E
|
|
_0200D2C8: .word 0x03809E4C
|
|
_0200D2CC: .word 0x04000132
|
|
_0200D2D0: .word 0x04000134
|
|
_0200D2D4: .word 0x03809E54
|
|
arm_func_end sub_0200D104
|
|
|
|
arm_func_start sub_0200D2D8
|
|
sub_0200D2D8: ; 0x0200D2D8
|
|
ldr ip, _0200D2E0 ; =sub_038037D6
|
|
bx ip
|
|
.align 2, 0
|
|
_0200D2E0: .word sub_038037D6
|
|
arm_func_end sub_0200D2D8
|
|
|
|
arm_func_start sub_0200D2E4
|
|
sub_0200D2E4: ; 0x0200D2E4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _0200D3F8 ; =0x03809E80
|
|
ldr r3, [r1, #4]
|
|
cmp r3, #0
|
|
bne _0200D320
|
|
mov r2, #1
|
|
mov r3, r2
|
|
mov r0, #3
|
|
mov r1, #0x66
|
|
bl sub_0200BD64
|
|
cmp r0, #0
|
|
beq _0200D3F0
|
|
mov r0, #1
|
|
bl sub_0200D404
|
|
b _0200D3F0
|
|
_0200D320:
|
|
cmp r3, #4
|
|
bge _0200D34C
|
|
ldr r0, _0200D3FC ; =0x0380756C
|
|
ldr r0, [r0]
|
|
cmp r3, r0
|
|
beq _0200D3F0
|
|
mov r0, #3
|
|
mov r1, #0x66
|
|
mov r2, #1
|
|
bl sub_0200BD64
|
|
b _0200D3F0
|
|
_0200D34C:
|
|
sub r2, r3, #4
|
|
mov r0, #0xc
|
|
mul r4, r2, r0
|
|
ldr r5, _0200D400 ; =0x03807570
|
|
ldr r0, [r1]
|
|
add r6, r5, r4
|
|
ldrh r1, [r6, #0xa]
|
|
bl sub_0200EFBC
|
|
mov r1, #0
|
|
mov r3, r1, lsr r0
|
|
ldr ip, [r6, #4]
|
|
mov r2, #0x80000000
|
|
rsb r1, r0, #0x20
|
|
orr r3, r3, r2, lsl r1
|
|
sub r1, r0, #0x20
|
|
and ip, ip, r2, lsr r0
|
|
orr r3, r3, r2, lsr r1
|
|
ldr r0, [r5, r4]
|
|
cmp ip, #0
|
|
and r0, r0, r3
|
|
cmpeq r0, #0
|
|
movne r3, #1
|
|
ldrh r2, [r6, #8]
|
|
ldrh r1, [r6, #0xa]
|
|
ldr r0, _0200D3F8 ; =0x03809E80
|
|
mul r1, r2, r1
|
|
ldr r2, [r0]
|
|
moveq r3, #2
|
|
add r2, r2, #1
|
|
cmp r2, r1
|
|
str r2, [r0]
|
|
movhs r1, #0
|
|
strhs r1, [r0]
|
|
ldr r0, _0200D3FC ; =0x0380756C
|
|
ldr r0, [r0]
|
|
cmp r3, r0
|
|
beq _0200D3F0
|
|
mov r0, #3
|
|
mov r1, #0x66
|
|
mov r2, #1
|
|
bl sub_0200BD64
|
|
_0200D3F0:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200D3F8: .word 0x03809E80
|
|
_0200D3FC: .word 0x0380756C
|
|
_0200D400: .word 0x03807570
|
|
arm_func_end sub_0200D2E4
|
|
|
|
arm_func_start sub_0200D404
|
|
sub_0200D404: ; 0x0200D404
|
|
cmp r0, #0xf
|
|
ldrle r1, _0200D41C ; =0x03809E80
|
|
movle r2, #0
|
|
strle r0, [r1, #4]
|
|
strle r2, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200D41C: .word 0x03809E80
|
|
arm_func_end sub_0200D404
|
|
|
|
arm_func_start sub_0200D420
|
|
sub_0200D420: ; 0x0200D420
|
|
ldr r0, _0200D42C ; =0x03809E80
|
|
ldr r0, [r0, #4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200D42C: .word 0x03809E80
|
|
arm_func_end sub_0200D420
|
|
|
|
arm_func_start sub_0200D430
|
|
sub_0200D430: ; 0x0200D430
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldr r3, _0200D46C ; =0x03809E88
|
|
mov r1, #0
|
|
ldr r0, _0200D470 ; =0x03809E98
|
|
mov r2, #0xa4
|
|
stmib r3, {r1, r4}
|
|
bl sub_02006258
|
|
mov r0, r4
|
|
bl sub_0200D4A4
|
|
ldr r0, _0200D46C ; =0x03809E88
|
|
mov r1, #3
|
|
strb r1, [r0]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200D46C: .word 0x03809E88
|
|
_0200D470: .word 0x03809E98
|
|
arm_func_end sub_0200D430
|
|
|
|
arm_func_start sub_0200D474
|
|
sub_0200D474: ; 0x0200D474
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0200D4A0 ; =0x04000304
|
|
mov r0, #1
|
|
ldrh r1, [r2]
|
|
bic r1, r1, #2
|
|
strh r1, [r2]
|
|
bl sub_0200D404
|
|
mov r0, #1
|
|
bl sub_0200D09C
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200D4A0: .word 0x04000304
|
|
arm_func_end sub_0200D474
|
|
|
|
arm_func_start sub_0200D4A4
|
|
sub_0200D4A4: ; 0x0200D4A4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
sub sp, sp, #0x50
|
|
str r0, [sp, #0x44]
|
|
ldr r0, _0200D53C ; =0x0380AAFC
|
|
mov sb, #4
|
|
mov r7, #8
|
|
mov r4, #3
|
|
ldr r1, _0200D540 ; =0x0380AAFC
|
|
ldr r6, _0200D544 ; =0x03809F3C
|
|
mov sl, #0x600
|
|
mov r8, #0
|
|
mov r5, #0x1c0
|
|
mov lr, #0x40
|
|
mov ip, #5
|
|
mov r3, #7
|
|
mov r2, #9
|
|
str r0, [sp, #0x1c]
|
|
str r1, [sp, #0x20]
|
|
add r0, sp, #0x1c
|
|
add r1, sp, #0
|
|
str sl, [sp, #0x24]
|
|
str sb, [sp, #0x28]
|
|
str r8, [sp, #0x3c]
|
|
str r7, [sp, #0x40]
|
|
str r6, [sp, #0x48]
|
|
str r5, [sp, #0x4c]
|
|
str r4, [sp]
|
|
str lr, [sp, #0x38]
|
|
str r4, [sp, #8]
|
|
str sb, [sp, #0x18]
|
|
str ip, [sp, #0x10]
|
|
str r3, [sp, #4]
|
|
str r7, [sp, #0x14]
|
|
str r2, [sp, #0xc]
|
|
bl sub_00FE81E8
|
|
add sp, sp, #0x50
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200D53C: .word 0x0380AAFC
|
|
_0200D540: .word 0x0380AAFC
|
|
_0200D544: .word 0x03809F3C
|
|
arm_func_end sub_0200D4A4
|
|
|
|
arm_func_start sub_0200D548
|
|
sub_0200D548: ; 0x0200D548
|
|
ldr r0, _0200D584 ; =0x0380B1FC
|
|
mov r3, #0
|
|
str r3, [r0, #0x20]
|
|
ldr r0, _0200D588 ; =0x0380B1FC
|
|
mov r2, r3
|
|
_0200D55C:
|
|
mov r1, r3, lsl #1
|
|
add r3, r3, #1
|
|
strh r2, [r0, r1]
|
|
cmp r3, #0x10
|
|
blt _0200D55C
|
|
ldr r1, _0200D58C ; =0x0400010E
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #0x80
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200D584: .word 0x0380B1FC
|
|
_0200D588: .word 0x0380B1FC
|
|
_0200D58C: .word 0x0400010E
|
|
arm_func_end sub_0200D548
|
|
|
|
arm_func_start sub_0200D590
|
|
sub_0200D590: ; 0x0200D590
|
|
stmdb sp!, {r4, lr}
|
|
tst r0, #0x2000000
|
|
beq _0200D5BC
|
|
ldr r1, _0200D848 ; =0x0380B1FC
|
|
mov r4, #0
|
|
mov r3, r4
|
|
_0200D5A8:
|
|
mov r2, r4, lsl #1
|
|
add r4, r4, #1
|
|
strh r3, [r1, r2]
|
|
cmp r4, #0x10
|
|
blt _0200D5A8
|
|
_0200D5BC:
|
|
ldr r1, _0200D848 ; =0x0380B1FC
|
|
and r2, r0, #0xf0000
|
|
mov r2, r2, lsr #0x10
|
|
mov r2, r2, lsl #1
|
|
strh r0, [r1, r2]
|
|
tst r0, #0x1000000
|
|
beq _0200D840
|
|
ldr r1, _0200D84C ; =0x0380B1FC
|
|
ldrh r2, [r1]
|
|
and r0, r2, #0xff00
|
|
mov r0, r0, lsl #8
|
|
mov r4, r0, lsr #0x10
|
|
sub r0, r4, #0x40
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _0200D834
|
|
_0200D5FC: ; jump table
|
|
b _0200D60C ; case 0
|
|
b _0200D648 ; case 1
|
|
b _0200D74C ; case 2
|
|
b _0200D7B0 ; case 3
|
|
_0200D60C:
|
|
mov r1, r4
|
|
and r3, r2, #0xff
|
|
mov r0, #2
|
|
mov r2, #1
|
|
bl sub_0200BD64
|
|
cmp r0, #0
|
|
bne _0200D634
|
|
mov r0, r4
|
|
mov r1, #4
|
|
bl sub_0200BC30
|
|
_0200D634:
|
|
ldr r0, _0200D850 ; =0x027FFF94
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
str r1, [r0, #-4]
|
|
b _0200D840
|
|
_0200D648:
|
|
ldr r0, [r1, #0x20]
|
|
cmp r0, #0
|
|
beq _0200D664
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_0200BC30
|
|
b _0200D840
|
|
_0200D664:
|
|
and r0, r2, #0xff
|
|
strh r0, [r1, #0x24]
|
|
ldrh r2, [r1, #2]
|
|
ldrh r0, [r1, #4]
|
|
orr r3, r0, r2, lsl #16
|
|
cmp r3, #0x2000000
|
|
blo _0200D688
|
|
cmp r3, #0x2400000
|
|
blo _0200D698
|
|
_0200D688:
|
|
mov r0, r4
|
|
mov r1, #2
|
|
bl sub_0200BC30
|
|
b _0200D840
|
|
_0200D698:
|
|
str r3, [r1, #0x28]
|
|
ldrh r2, [r1, #6]
|
|
ldrh r0, [r1, #8]
|
|
orr r2, r0, r2, lsl #16
|
|
add r0, r3, r2
|
|
cmp r0, #0x2400000
|
|
bls _0200D6C4
|
|
mov r0, r4
|
|
mov r1, #2
|
|
bl sub_0200BC30
|
|
b _0200D840
|
|
_0200D6C4:
|
|
str r2, [r1, #0x30]
|
|
ldrh r2, [r1, #0xa]
|
|
ldrh r0, [r1, #0xc]
|
|
orr r0, r0, r2, lsl #16
|
|
bl sub_0200D858
|
|
cmp r0, #0
|
|
bne _0200D6F0
|
|
mov r0, r4
|
|
mov r1, #2
|
|
bl sub_0200BC30
|
|
b _0200D840
|
|
_0200D6F0:
|
|
ldr r3, _0200D84C ; =0x0380B1FC
|
|
mov r2, #0
|
|
str r2, [r3, #0x2c]
|
|
ldrh r0, [r3, #0x24]
|
|
mov r1, r4
|
|
and ip, r0, #7
|
|
mov r0, #2
|
|
strh ip, [r3, #0x26]
|
|
bl sub_0200BD64
|
|
cmp r0, #0
|
|
bne _0200D72C
|
|
mov r0, r4
|
|
mov r1, #4
|
|
bl sub_0200BC30
|
|
b _0200D840
|
|
_0200D72C:
|
|
ldr r1, _0200D850 ; =0x027FFF94
|
|
mov r2, #0
|
|
strh r2, [r1]
|
|
ldr r0, _0200D84C ; =0x0380B1FC
|
|
str r2, [r1, #-4]
|
|
mov r1, #1
|
|
str r1, [r0, #0x20]
|
|
b _0200D840
|
|
_0200D74C:
|
|
ldr r0, [r1, #0x20]
|
|
cmp r0, #2
|
|
beq _0200D768
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_0200BC30
|
|
b _0200D840
|
|
_0200D768:
|
|
mov r1, r4
|
|
mov r0, #2
|
|
mov r2, #0
|
|
bl sub_0200BD64
|
|
cmp r0, #0
|
|
bne _0200D790
|
|
mov r0, r4
|
|
mov r1, #4
|
|
bl sub_0200BC30
|
|
b _0200D840
|
|
_0200D790:
|
|
ldr r0, _0200D84C ; =0x0380B1FC
|
|
mov r2, #3
|
|
ldr r1, _0200D854 ; =0x0400010E
|
|
str r2, [r0, #0x20]
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #0x80
|
|
strh r0, [r1]
|
|
b _0200D840
|
|
_0200D7B0:
|
|
ldr r0, [r1, #0x20]
|
|
cmp r0, #2
|
|
beq _0200D7CC
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_0200BC30
|
|
b _0200D840
|
|
_0200D7CC:
|
|
ldrh r2, [r1, #2]
|
|
ldrh r0, [r1, #4]
|
|
orr r0, r0, r2, lsl #16
|
|
bl sub_0200D858
|
|
cmp r0, #0
|
|
bne _0200D7F4
|
|
mov r0, r4
|
|
mov r1, #2
|
|
bl sub_0200BC30
|
|
b _0200D840
|
|
_0200D7F4:
|
|
bl sub_02005EE8
|
|
ldr r3, _0200D854 ; =0x0400010E
|
|
ldr r1, _0200D84C ; =0x0380B1FC
|
|
ldrh r2, [r3]
|
|
bic r2, r2, #0x80
|
|
strh r2, [r3]
|
|
ldrh r2, [r1, #0x34]
|
|
strh r2, [r3, #-2]
|
|
ldrh r1, [r1, #0x36]
|
|
orr r1, r1, #0xc0
|
|
strh r1, [r3]
|
|
bl sub_02005EFC
|
|
mov r0, r4
|
|
mov r1, #0
|
|
bl sub_0200BC30
|
|
b _0200D840
|
|
_0200D834:
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_0200BC30
|
|
_0200D840:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200D848: .word 0x0380B1FC
|
|
_0200D84C: .word 0x0380B1FC
|
|
_0200D850: .word 0x027FFF94
|
|
_0200D854: .word 0x0400010E
|
|
arm_func_end sub_0200D590
|
|
|
|
arm_func_start sub_0200D858
|
|
sub_0200D858: ; 0x0200D858
|
|
cmp r0, #0x10000
|
|
bhs _0200D87C
|
|
ldr r1, _0200D8F8 ; =0x0380B1FC
|
|
mov r2, #0
|
|
strh r2, [r1, #0x36]
|
|
rsb r0, r0, #0x10000
|
|
strh r0, [r1, #0x34]
|
|
mov r0, #1
|
|
bx lr
|
|
_0200D87C:
|
|
cmp r0, #0x400000
|
|
bhs _0200D8A4
|
|
ldr r1, _0200D8F8 ; =0x0380B1FC
|
|
mov r3, #1
|
|
mov r0, r0, lsr #6
|
|
rsb r2, r0, #0x10000
|
|
strh r3, [r1, #0x36]
|
|
mov r0, r3
|
|
strh r2, [r1, #0x34]
|
|
bx lr
|
|
_0200D8A4:
|
|
cmp r0, #0x1000000
|
|
bhs _0200D8CC
|
|
ldr r1, _0200D8F8 ; =0x0380B1FC
|
|
mov r2, #2
|
|
mov r0, r0, lsr #8
|
|
strh r2, [r1, #0x36]
|
|
rsb r0, r0, #0x10000
|
|
strh r0, [r1, #0x34]
|
|
mov r0, #1
|
|
bx lr
|
|
_0200D8CC:
|
|
cmp r0, #0x4000000
|
|
movhs r0, #0
|
|
bxhs lr
|
|
ldr r1, _0200D8F8 ; =0x0380B1FC
|
|
mov r2, #3
|
|
mov r0, r0, lsr #0xa
|
|
strh r2, [r1, #0x36]
|
|
rsb r0, r0, #0x10000
|
|
strh r0, [r1, #0x34]
|
|
mov r0, #1
|
|
bx lr
|
|
.align 2, 0
|
|
_0200D8F8: .word 0x0380B1FC
|
|
arm_func_end sub_0200D858
|
|
|
|
arm_func_start sub_0200D8FC
|
|
sub_0200D8FC: ; 0x0200D8FC
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
ldr r2, [r4, #4]
|
|
cmp r2, #0x40
|
|
beq _0200D924
|
|
cmp r2, #0x41
|
|
beq _0200D9D4
|
|
cmp r2, #0x42
|
|
beq _0200DA6C
|
|
b _0200DB08
|
|
_0200D924:
|
|
bl sub_02005EE8
|
|
mov r5, r0
|
|
mov r0, #2
|
|
bl sub_0200BCF4
|
|
cmp r0, #0
|
|
bne _0200D95C
|
|
mov r0, r5
|
|
bl sub_02005EFC
|
|
ldr r0, [r4, #4]
|
|
mov r1, #4
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0200BC30
|
|
b _0200DB08
|
|
_0200D95C:
|
|
mov r0, #2
|
|
bl sub_0200BD10
|
|
mov r0, r5
|
|
bl sub_02005EFC
|
|
ldr r0, [r4, #8]
|
|
and r0, r0, #1
|
|
cmp r0, #1
|
|
bne _0200D990
|
|
bl sub_0200DE4C
|
|
ldr r1, [r4, #8]
|
|
tst r1, #2
|
|
eorne r0, r0, #0x8000
|
|
b _0200D9A0
|
|
_0200D990:
|
|
bl sub_0200DCF8
|
|
ldr r1, [r4, #8]
|
|
tst r1, #2
|
|
eorne r0, r0, #0x80
|
|
_0200D9A0:
|
|
ldr r1, _0200DB10 ; =0x027FFF94
|
|
movne r0, r0, lsl #0x10
|
|
movne r0, r0, lsr #0x10
|
|
strh r0, [r1]
|
|
str r1, [r1, #-4]
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0200BC30
|
|
mov r0, #2
|
|
bl sub_0200BD28
|
|
b _0200DB08
|
|
_0200D9D4:
|
|
ldr r0, _0200DB14 ; =0x0380B1FC
|
|
ldr r1, [r0, #0x20]
|
|
cmp r1, #1
|
|
bne _0200DA58
|
|
mov r1, #0
|
|
strh r1, [r0, #0x3a]
|
|
strh r1, [r0, #0x38]
|
|
bl sub_02005EE8
|
|
mov r5, r0
|
|
mov r0, #0x40
|
|
bl sub_02003AD8
|
|
ldr r1, _0200DB18 ; =0x0380593C
|
|
mov r0, #0x40
|
|
bl sub_0200DF80
|
|
bl sub_0200DFA8
|
|
ldr r1, _0200DB14 ; =0x0380B1FC
|
|
ldr r2, _0200DB1C ; =0x0400010C
|
|
ldrh r3, [r1, #0x34]
|
|
mov r0, r5
|
|
strh r3, [r2]
|
|
ldrh r1, [r1, #0x36]
|
|
orr r1, r1, #0xc0
|
|
strh r1, [r2, #2]
|
|
bl sub_02005EFC
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0200BC30
|
|
ldr r0, _0200DB14 ; =0x0380B1FC
|
|
mov r1, #2
|
|
str r1, [r0, #0x20]
|
|
b _0200DB08
|
|
_0200DA58:
|
|
mov r0, r2, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #3
|
|
bl sub_0200BC30
|
|
b _0200DB08
|
|
_0200DA6C:
|
|
ldr r0, _0200DB14 ; =0x0380B1FC
|
|
ldr r1, [r0, #0x20]
|
|
sub r0, r1, #3
|
|
cmp r0, #1
|
|
bhi _0200DAE8
|
|
ldr r1, _0200DB20 ; =0x0400010E
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #0x80
|
|
strh r0, [r1]
|
|
bl sub_02005EE8
|
|
mov r4, r0
|
|
mov r0, #0x40
|
|
mov r1, #0
|
|
bl sub_0200DF80
|
|
bl sub_0200E008
|
|
mov r0, r4
|
|
bl sub_02005EFC
|
|
ldr r0, _0200DB14 ; =0x0380B1FC
|
|
mov r1, #0
|
|
ldr r0, [r0, #0x20]
|
|
cmp r0, #3
|
|
bne _0200DAD0
|
|
mov r0, #0x42
|
|
bl sub_0200BC30
|
|
b _0200DAD8
|
|
_0200DAD0:
|
|
mov r0, #0x51
|
|
bl sub_0200BC30
|
|
_0200DAD8:
|
|
ldr r0, _0200DB14 ; =0x0380B1FC
|
|
mov r1, #0
|
|
str r1, [r0, #0x20]
|
|
b _0200DB08
|
|
_0200DAE8:
|
|
cmp r1, #3
|
|
mov r1, #3
|
|
bne _0200DB00
|
|
mov r0, #0x42
|
|
bl sub_0200BC30
|
|
b _0200DB08
|
|
_0200DB00:
|
|
mov r0, #0x51
|
|
bl sub_0200BC30
|
|
_0200DB08:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200DB10: .word 0x027FFF94
|
|
_0200DB14: .word 0x0380B1FC
|
|
_0200DB18: .word 0x0380593C
|
|
_0200DB1C: .word 0x0400010C
|
|
_0200DB20: .word 0x0400010E
|
|
arm_func_end sub_0200D8FC
|
|
|
|
arm_func_start sub_0200DB24
|
|
sub_0200DB24: ; 0x0200DB24
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_0200DB58
|
|
ldr r3, _0200DB50 ; =0x0380FFF8
|
|
ldr r0, _0200DB54 ; =0x04000214
|
|
ldr r2, [r3]
|
|
mov r1, #0x40
|
|
orr r2, r2, #0x40
|
|
str r2, [r3]
|
|
str r1, [r0]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200DB50: .word 0x0380FFF8
|
|
_0200DB54: .word 0x04000214
|
|
arm_func_end sub_0200DB24
|
|
|
|
arm_func_start sub_0200DB58
|
|
sub_0200DB58: ; 0x0200DB58
|
|
stmdb sp!, {r4, r5, r6, r7, lr}
|
|
ldr r4, _0200DCE8 ; =0x0380B1FC
|
|
ldrh r5, [r4, #0x26]
|
|
and r0, r5, #4
|
|
cmp r0, #4
|
|
ldrh r6, [r4, #0x38]
|
|
bne _0200DB78
|
|
b _0200DB7C
|
|
_0200DB78:
|
|
ldrh r7, [r4, #0x3a]
|
|
_0200DB7C:
|
|
beq _0200DB84
|
|
b _0200DB88
|
|
_0200DB84:
|
|
ldr r7, _0200DCEC ; =0x0000FFFF
|
|
_0200DB88:
|
|
bl sub_0200BE44
|
|
cmp r0, #0
|
|
bne _0200DBF4
|
|
mov r0, #2
|
|
bl sub_0200BCF4
|
|
cmp r0, #0
|
|
beq _0200DBF4
|
|
and r0, r5, #1
|
|
cmp r0, #1
|
|
bne _0200DBD4
|
|
bl sub_0200DE4C
|
|
tst r5, #2
|
|
beq _0200DBC0
|
|
b _0200DBC4
|
|
_0200DBC0:
|
|
mov r7, r0
|
|
_0200DBC4:
|
|
bne _0200DBCC
|
|
b _0200DBD0
|
|
_0200DBCC:
|
|
eor r7, r0, #0x8000
|
|
_0200DBD0:
|
|
b _0200DBF4
|
|
_0200DBD4:
|
|
bl sub_0200DCF8
|
|
tst r5, #2
|
|
beq _0200DBE4
|
|
b _0200DBE8
|
|
_0200DBE4:
|
|
mov r7, r0
|
|
_0200DBE8:
|
|
bne _0200DBF0
|
|
b _0200DBF4
|
|
_0200DBF0:
|
|
eor r7, r0, #0x80
|
|
_0200DBF4:
|
|
and r0, r5, #1
|
|
ldr r3, _0200DCF0 ; =0x027FFC00
|
|
ldr r1, [r4, #0x2c]
|
|
cmp r0, #1
|
|
bne _0200DC24
|
|
ldr r2, [r4, #0x28]
|
|
strh r7, [r2, r1]!
|
|
str r2, [r3, #0x390]
|
|
add r3, r3, #0x394
|
|
strh r7, [r3]
|
|
add r1, r1, #2
|
|
b _0200DC5C
|
|
_0200DC24:
|
|
and r7, r7, #0xff
|
|
tst r1, #1
|
|
bne _0200DC3C
|
|
mov r6, r7
|
|
add r1, r1, #1
|
|
b _0200DC5C
|
|
_0200DC3C:
|
|
orr r0, r6, r7, lsl #8
|
|
ldr r2, [r4, #0x28]
|
|
sub r1, r1, #1
|
|
strh r0, [r2, r1]!
|
|
str r2, [r3, #0x390]
|
|
add r3, r3, #0x394
|
|
strh r0, [r3]
|
|
add r1, r1, #2
|
|
_0200DC5C:
|
|
strh r6, [r4, #0x38]
|
|
strh r7, [r4, #0x3a]
|
|
ldr r0, [r4, #0x30]
|
|
cmp r1, r0
|
|
bhs _0200DC74
|
|
b _0200DC78
|
|
_0200DC74:
|
|
mov r1, #0
|
|
_0200DC78:
|
|
str r1, [r4, #0x2c]
|
|
blo _0200DCE0
|
|
ldrh r0, [r4, #0x24]
|
|
and r0, r0, #0x10
|
|
cmp r0, #0x10
|
|
bne _0200DCA0
|
|
mov r0, #0x51
|
|
mov r1, #0
|
|
bl sub_0200BC30
|
|
b _0200DCE0
|
|
_0200DCA0:
|
|
mov r0, #2
|
|
mov r1, #0x42
|
|
mov r2, #0
|
|
bl sub_0200BD64
|
|
cmp r0, #0
|
|
bne _0200DCC8
|
|
mov r0, #0x51
|
|
mov r1, #4
|
|
bl sub_0200BC30
|
|
b _0200DCE0
|
|
_0200DCC8:
|
|
mov r0, #4
|
|
str r0, [r4, #0x20]
|
|
ldr r1, _0200DCF4 ; =0x0400010E
|
|
ldrh r0, [r1]
|
|
bic r0, r0, #0x80
|
|
strh r0, [r1]
|
|
_0200DCE0:
|
|
ldmia sp!, {r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200DCE8: .word 0x0380B1FC
|
|
_0200DCEC: .word 0x0000FFFF
|
|
_0200DCF0: .word 0x027FFC00
|
|
_0200DCF4: .word 0x0400010E
|
|
arm_func_end sub_0200DB58
|
|
|
|
arm_func_start sub_0200DCF8
|
|
sub_0200DCF8: ; 0x0200DCF8
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _0200DE04 ; =0x040001C0
|
|
_0200DD00:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _0200DD00
|
|
ldr r1, _0200DE08 ; =0x00008A01
|
|
ldr r0, _0200DE0C ; =0x040001C2
|
|
strh r1, [r2]
|
|
mov r1, #0xec
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_0200DD24:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _0200DD24
|
|
bl sub_0200DE1C
|
|
ldr r2, _0200DE10 ; =0x00008201
|
|
ldr r1, _0200DE04 ; =0x040001C0
|
|
mov r4, r0, lsl #0x18
|
|
strh r2, [r1]
|
|
bl sub_0200DE1C
|
|
ldr r2, _0200DE14 ; =0x0380B238
|
|
ldr r1, _0200DE18 ; =0x00007F80
|
|
orr r0, r0, r4, lsr #16
|
|
and r1, r0, r1
|
|
ldr r0, [r2, #0x10]
|
|
mov r1, r1, lsl #9
|
|
add r3, r0, r1, lsr #16
|
|
str r3, [r2, #0x10]
|
|
ldr r0, [r2, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [r2, #0xc]
|
|
cmp r0, #0x1000
|
|
blo _0200DDD4
|
|
ldrsb r4, [r2]
|
|
mov r0, r3, lsr #0xc
|
|
sub r0, r0, #0x80
|
|
mov r0, r0, lsl #0x18
|
|
cmp r4, r0, asr #24
|
|
mov r0, r0, asr #0x18
|
|
cmplt r4, #0xc
|
|
addlt r0, r4, #1
|
|
strltb r0, [r2]
|
|
blt _0200DDC4
|
|
cmp r0, r4
|
|
bge _0200DDC4
|
|
mvn r0, #0xb
|
|
cmp r4, r0
|
|
ldrgt r0, _0200DE14 ; =0x0380B238
|
|
ldrgtsb r2, [r0]
|
|
subgt r2, r2, #1
|
|
strgtb r2, [r0]
|
|
_0200DDC4:
|
|
ldr r0, _0200DE14 ; =0x0380B238
|
|
mov r2, #0
|
|
str r2, [r0, #0xc]
|
|
str r2, [r0, #0x10]
|
|
_0200DDD4:
|
|
ldr r0, _0200DE14 ; =0x0380B238
|
|
ldrsb r0, [r0]
|
|
rsb r0, r0, r1, lsr #16
|
|
cmp r0, #0xff
|
|
movgt r0, #0xff
|
|
bgt _0200DDF4
|
|
cmp r0, #0
|
|
movlt r0, #0
|
|
_0200DDF4:
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200DE04: .word 0x040001C0
|
|
_0200DE08: .word 0x00008A01
|
|
_0200DE0C: .word 0x040001C2
|
|
_0200DE10: .word 0x00008201
|
|
_0200DE14: .word 0x0380B238
|
|
_0200DE18: .word 0x00007F80
|
|
arm_func_end sub_0200DCF8
|
|
|
|
arm_func_start sub_0200DE1C
|
|
sub_0200DE1C: ; 0x0200DE1C
|
|
ldr r0, _0200DE48 ; =0x040001C2
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_0200DE2C:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _0200DE2C
|
|
ldr r0, _0200DE48 ; =0x040001C2
|
|
ldrh r0, [r0]
|
|
and r0, r0, #0xff
|
|
bx lr
|
|
.align 2, 0
|
|
_0200DE48: .word 0x040001C2
|
|
arm_func_end sub_0200DE1C
|
|
|
|
arm_func_start sub_0200DE4C
|
|
sub_0200DE4C: ; 0x0200DE4C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _0200DF64 ; =0x040001C0
|
|
_0200DE54:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _0200DE54
|
|
ldr r1, _0200DF68 ; =0x00008A01
|
|
ldr r0, _0200DF6C ; =0x040001C2
|
|
strh r1, [r2]
|
|
mov r1, #0xe4
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_0200DE78:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _0200DE78
|
|
bl sub_0200DE1C
|
|
ldr r2, _0200DF70 ; =0x00008201
|
|
ldr r1, _0200DF64 ; =0x040001C0
|
|
mov r4, r0, lsl #0x18
|
|
strh r2, [r1]
|
|
bl sub_0200DE1C
|
|
ldr r3, _0200DF74 ; =0x0380B238
|
|
ldr r1, _0200DF78 ; =0x00007FF8
|
|
orr r0, r0, r4, lsr #16
|
|
and r2, r0, r1
|
|
ldr r0, [r3, #4]
|
|
mov r2, r2, lsl #0x11
|
|
add r4, r0, r2, lsr #16
|
|
str r4, [r3, #4]
|
|
ldr r0, [r3, #8]
|
|
add r0, r0, #1
|
|
str r0, [r3, #8]
|
|
cmp r0, #0x100
|
|
blo _0200DF30
|
|
mov r0, r1, lsl #1
|
|
and r0, r0, r4, lsr #8
|
|
ldrsh r4, [r3, #2]
|
|
sub r0, r0, #0x8000
|
|
mov r0, r0, lsl #0x10
|
|
cmp r4, r0, asr #16
|
|
mov r1, r0, asr #0x10
|
|
cmplt r4, #0xc00
|
|
addlt r0, r4, #0x10
|
|
strlth r0, [r3, #2]
|
|
blt _0200DF20
|
|
cmp r1, r4
|
|
bge _0200DF20
|
|
mov r0, #0xc00
|
|
rsb r0, r0, #0
|
|
cmp r4, r0
|
|
ldrgt r0, _0200DF74 ; =0x0380B238
|
|
ldrgtsh r1, [r0, #2]
|
|
subgt r1, r1, #0x10
|
|
strgth r1, [r0, #2]
|
|
_0200DF20:
|
|
ldr r0, _0200DF74 ; =0x0380B238
|
|
mov r1, #0
|
|
str r1, [r0, #8]
|
|
str r1, [r0, #4]
|
|
_0200DF30:
|
|
ldr r1, _0200DF74 ; =0x0380B238
|
|
ldr r0, _0200DF7C ; =0x0000FFF0
|
|
ldrsh r1, [r1, #2]
|
|
rsb r1, r1, r2, lsr #16
|
|
cmp r1, r0
|
|
movgt r1, r0
|
|
bgt _0200DF54
|
|
cmp r1, #0
|
|
movlt r1, #0
|
|
_0200DF54:
|
|
mov r0, r1, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200DF64: .word 0x040001C0
|
|
_0200DF68: .word 0x00008A01
|
|
_0200DF6C: .word 0x040001C2
|
|
_0200DF70: .word 0x00008201
|
|
_0200DF74: .word 0x0380B238
|
|
_0200DF78: .word 0x00007FF8
|
|
_0200DF7C: .word 0x0000FFF0
|
|
arm_func_end sub_0200DE4C
|
|
|
|
arm_func_start sub_0200DF80
|
|
sub_0200DF80: ; 0x0200DF80
|
|
ldr r2, _0200DFA4 ; =0x038074F4
|
|
mov r3, #0
|
|
_0200DF88:
|
|
tst r0, #1
|
|
strne r1, [r2, r3, lsl #2]
|
|
add r3, r3, #1
|
|
cmp r3, #0x19
|
|
mov r0, r0, lsr #1
|
|
blt _0200DF88
|
|
bx lr
|
|
.align 2, 0
|
|
_0200DFA4: .word 0x038074F4
|
|
arm_func_end sub_0200DF80
|
|
|
|
arm_func_start sub_0200DFA8
|
|
sub_0200DFA8: ; 0x0200DFA8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, _0200DFFC ; =0x0380FFFC
|
|
ldr r0, _0200E000 ; =0x03805E64
|
|
ldr r2, [r3]
|
|
cmp r2, r0
|
|
beq _0200DFF4
|
|
ldr r0, _0200E004 ; =0x0380B24C
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
sub r1, r3, #0x17c
|
|
str r1, [r0, #4]
|
|
mov r1, #0x40
|
|
str r1, [r0, #8]
|
|
str r2, [r0, #0xc]
|
|
bl sub_02005EE8
|
|
ldr r2, _0200E000 ; =0x03805E64
|
|
ldr r1, _0200DFFC ; =0x0380FFFC
|
|
str r2, [r1]
|
|
bl sub_02005EFC
|
|
_0200DFF4:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200DFFC: .word 0x0380FFFC
|
|
_0200E000: .word 0x03805E64
|
|
_0200E004: .word 0x0380B24C
|
|
arm_func_end sub_0200DFA8
|
|
|
|
arm_func_start sub_0200E008
|
|
sub_0200E008: ; 0x0200E008
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _0200E040 ; =0x0380FFFC
|
|
ldr r0, _0200E044 ; =0x03805E64
|
|
ldr r1, [r1]
|
|
cmp r1, r0
|
|
bne _0200E038
|
|
bl sub_02005EE8
|
|
ldr r1, _0200E048 ; =0x0380B24C
|
|
ldr r2, _0200E040 ; =0x0380FFFC
|
|
ldr r1, [r1, #0xc]
|
|
str r1, [r2]
|
|
bl sub_02005EFC
|
|
_0200E038:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200E040: .word 0x0380FFFC
|
|
_0200E044: .word 0x03805E64
|
|
_0200E048: .word 0x0380B24C
|
|
arm_func_end sub_0200E008
|
|
|
|
arm_func_start sub_0200E04C
|
|
sub_0200E04C: ; 0x0200E04C
|
|
mov ip, #0x4000000
|
|
add r1, ip, #0x208
|
|
ldrh r0, [r1]
|
|
tst r0, r0
|
|
beq _0200E064
|
|
b _0200E068
|
|
_0200E064:
|
|
bx lr
|
|
_0200E068:
|
|
ldr r3, [ip, #0x210]
|
|
ldr r1, [ip, #0x214]
|
|
ands r2, r1, r3
|
|
beq _0200E07C
|
|
b _0200E080
|
|
_0200E07C:
|
|
bx lr
|
|
_0200E080:
|
|
ldr r0, _0200E268 ; =0x01DF3FFF
|
|
tst r2, r0
|
|
beq _0200E090
|
|
b _0200E094
|
|
_0200E090:
|
|
str r2, [ip, #0x214]
|
|
_0200E094:
|
|
beq _0200E09C
|
|
b _0200E0A0
|
|
_0200E09C:
|
|
bx lr
|
|
_0200E0A0:
|
|
stmdb sp!, {lr}
|
|
mrs r0, spsr
|
|
stmdb sp!, {r0}
|
|
stmdb sp, {sp, lr} ^
|
|
sub sp, sp, #8
|
|
mov r0, #0x9f
|
|
msr cpsr_c, r0
|
|
ldr r1, _0200E26C ; =0x038076A4
|
|
ldrh r0, [r1, #2]
|
|
add r0, r0, #1
|
|
strh r0, [r1, #2]
|
|
ldr r1, _0200E270 ; =0x0380B24C
|
|
cmp r0, #1
|
|
beq _0200E0DC
|
|
b _0200E0E0
|
|
_0200E0DC:
|
|
mov r0, sp
|
|
_0200E0E0:
|
|
beq _0200E0E8
|
|
b _0200E0EC
|
|
_0200E0E8:
|
|
ldr sp, [r1, #4]
|
|
_0200E0EC:
|
|
beq _0200E0F4
|
|
b _0200E0F8
|
|
_0200E0F4:
|
|
str r0, [r1, #4]
|
|
_0200E0F8:
|
|
stmdb sp!, {r3}
|
|
ldr r1, _0200E274 ; =0x03807210
|
|
ldr r0, [r1]
|
|
tst r0, r2
|
|
bne _0200E110
|
|
b _0200E114
|
|
_0200E110:
|
|
str r0, [ip, #0x214]
|
|
_0200E114:
|
|
bne _0200E11C
|
|
b _0200E120
|
|
_0200E11C:
|
|
ldr r0, [r1, #4]
|
|
_0200E120:
|
|
bne _0200E128
|
|
b _0200E12C
|
|
_0200E128:
|
|
ldr r3, _0200E278 ; =0x038074F4
|
|
_0200E12C:
|
|
bne _0200E134
|
|
b _0200E138
|
|
_0200E134:
|
|
ldr r0, [r3, r0, lsl #2]
|
|
_0200E138:
|
|
bne _0200E1A8
|
|
mov r3, #1
|
|
_0200E140:
|
|
ldr r0, [r1, r3, lsl #3]
|
|
tst r0, r2
|
|
beq _0200E150
|
|
b _0200E154
|
|
_0200E150:
|
|
add r3, r3, #1
|
|
_0200E154:
|
|
beq _0200E140
|
|
str r0, [ip, #0x214]
|
|
add r0, r1, r3, lsl #3
|
|
ldr r2, [r0, #4]
|
|
ldr r3, _0200E278 ; =0x038074F4
|
|
ldr r0, [r3, r2, lsl #2]
|
|
ldr r2, _0200E26C ; =0x038076A4
|
|
ldrh r3, [r2, #2]
|
|
cmp r3, #1
|
|
beq _0200E180
|
|
b _0200E184
|
|
_0200E180:
|
|
ldr r2, [r1]
|
|
_0200E184:
|
|
beq _0200E18C
|
|
b _0200E190
|
|
_0200E18C:
|
|
str r2, [ip, #0x210]
|
|
_0200E190:
|
|
beq _0200E198
|
|
b _0200E19C
|
|
_0200E198:
|
|
mov r2, #0x1f
|
|
_0200E19C:
|
|
beq _0200E1A4
|
|
b _0200E1A8
|
|
_0200E1A4:
|
|
msr cpsr_c, r2
|
|
_0200E1A8:
|
|
ldr r1, [ip, #0x210]
|
|
stmdb sp!, {r1}
|
|
add lr, pc, #0x0 ; =sub_0200E1B8
|
|
bx r0
|
|
arm_func_end sub_0200E04C
|
|
|
|
arm_func_start sub_0200E1B8
|
|
sub_0200E1B8: ; 0x0200E1B8
|
|
mov r0, #0x9f
|
|
msr cpsr_c, r0
|
|
mov ip, #0x4000000
|
|
ldmia sp!, {r0}
|
|
ldr r1, [ip, #0x210]
|
|
eor r2, r0, r1
|
|
and r1, r2, r1
|
|
and r0, r2, r0
|
|
ldmia sp!, {r3}
|
|
orr r3, r3, r1
|
|
bic r3, r3, r0
|
|
str r3, [ip, #0x210]
|
|
ldr r2, _0200E26C ; =0x038076A4
|
|
ldr r3, _0200E270 ; =0x0380B24C
|
|
ldrh r0, [r2, #2]
|
|
subs r1, r0, #1
|
|
strh r1, [r2, #2]
|
|
beq _0200E204
|
|
b _0200E208
|
|
_0200E204:
|
|
mov r0, sp
|
|
_0200E208:
|
|
beq _0200E210
|
|
b _0200E214
|
|
_0200E210:
|
|
ldr sp, [r3, #4]
|
|
_0200E214:
|
|
beq _0200E21C
|
|
b _0200E220
|
|
_0200E21C:
|
|
str r0, [r3, #4]
|
|
_0200E220:
|
|
mov r0, #0x92
|
|
msr cpsr_c, r0
|
|
ldmia sp, {sp, lr} ^
|
|
mov r0, r0
|
|
add sp, sp, #8
|
|
ldmia sp!, {r0}
|
|
msr spsr_fc, r0
|
|
tst r1, r1
|
|
beq _0200E248
|
|
b _0200E24C
|
|
_0200E248:
|
|
ldr r0, _0200E27C ; =0x037FB4F4
|
|
_0200E24C:
|
|
beq _0200E254
|
|
b _0200E258
|
|
_0200E254:
|
|
add lr, pc, #0x0 ; =0x0200E25C
|
|
_0200E258:
|
|
beq _0200E260
|
|
b _0200E264
|
|
_0200E260:
|
|
bx r0
|
|
_0200E264:
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
_0200E268: .word 0x01DF3FFF
|
|
_0200E26C: .word 0x038076A4
|
|
_0200E270: .word 0x0380B24C
|
|
_0200E274: .word 0x03807210
|
|
_0200E278: .word 0x038074F4
|
|
arm_func_end sub_0200E1B8
|
|
_0200E27C: .word 0x037FB4F4
|
|
|
|
arm_func_start sub_0200E280
|
|
sub_0200E280: ; 0x0200E280
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _0200E2B0 ; =0x0380B260
|
|
mov r3, #0
|
|
ldr r2, _0200E2B4 ; =0x05000001
|
|
add r0, sp, #0
|
|
str r3, [sp]
|
|
bl sub_0200E2BC
|
|
bl sub_02003DE4
|
|
ldr r1, _0200E2B8 ; =0x0380B25C
|
|
strh r0, [r1, #6]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200E2B0: .word 0x0380B260
|
|
_0200E2B4: .word 0x05000001
|
|
_0200E2B8: .word 0x0380B25C
|
|
arm_func_end sub_0200E280
|
|
|
|
arm_func_start sub_0200E2BC
|
|
sub_0200E2BC: ; 0x0200E2BC
|
|
ldr ip, _0200E2C4 ; =sub_038037F8
|
|
bx ip
|
|
.align 2, 0
|
|
_0200E2C4: .word sub_038037F8
|
|
arm_func_end sub_0200E2BC
|
|
|
|
arm_func_start sub_0200E2C8
|
|
sub_0200E2C8: ; 0x0200E2C8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0200E310 ; =0x027FFC30
|
|
ldr r0, _0200E314 ; =0x0000FFFF
|
|
ldrh r1, [r2]
|
|
cmp r1, r0
|
|
moveq r0, #0
|
|
beq _0200E308
|
|
ldrb r0, [r2, #5]
|
|
mov r0, r0, lsl #0x1e
|
|
movs r0, r0, lsr #0x1f
|
|
bne _0200E2F8
|
|
bl sub_0200E318
|
|
_0200E2F8:
|
|
ldr r0, _0200E310 ; =0x027FFC30
|
|
ldrb r0, [r0, #5]
|
|
mov r0, r0, lsl #0x1e
|
|
mov r0, r0, lsr #0x1f
|
|
_0200E308:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200E310: .word 0x027FFC30
|
|
_0200E314: .word 0x0000FFFF
|
|
arm_func_end sub_0200E2C8
|
|
|
|
arm_func_start sub_0200E318
|
|
sub_0200E318: ; 0x0200E318
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x10
|
|
ldr r2, _0200E430 ; =0x027FFC30
|
|
mov r4, #1
|
|
ldrh r1, [r2]
|
|
rsb r0, r4, #0x10000
|
|
cmp r1, r0
|
|
moveq r0, #0
|
|
beq _0200E424
|
|
ldrb r0, [r2, #5]
|
|
mov r0, r0, lsl #0x1e
|
|
mov r0, r0, lsr #0x1f
|
|
cmp r0, #1
|
|
moveq r0, #0
|
|
beq _0200E424
|
|
ldr r0, _0200E434 ; =0x0380B25C
|
|
add r1, sp, #8
|
|
ldrh r0, [r0, #6]
|
|
bl sub_0200E4B8
|
|
cmp r0, #0
|
|
bne _0200E37C
|
|
ldr r0, [sp, #0xc]
|
|
bl sub_02005EFC
|
|
mov r0, r4
|
|
b _0200E424
|
|
_0200E37C:
|
|
add r0, sp, #0
|
|
bl sub_0200E43C
|
|
mov r0, #0x8000000
|
|
ldrb r2, [r0, #0xb2]
|
|
cmp r2, #0x96
|
|
bne _0200E3A8
|
|
ldr r1, _0200E430 ; =0x027FFC30
|
|
ldrh r0, [r0, #0xbe]
|
|
ldrh r1, [r1]
|
|
cmp r1, r0
|
|
bne _0200E3EC
|
|
_0200E3A8:
|
|
cmp r2, #0x96
|
|
ldrne r1, _0200E430 ; =0x027FFC30
|
|
ldrne r0, _0200E438 ; =0x0801FFFE
|
|
ldrneh r1, [r1]
|
|
ldrneh r0, [r0]
|
|
cmpne r1, r0
|
|
bne _0200E3EC
|
|
ldr r2, _0200E430 ; =0x027FFC30
|
|
mov r0, #0x8000000
|
|
ldr r1, [r2, #8]
|
|
ldr r0, [r0, #0xac]
|
|
cmp r1, r0
|
|
beq _0200E400
|
|
ldrb r0, [r2, #5]
|
|
mov r0, r0, lsl #0x1f
|
|
movs r0, r0, lsr #0x1f
|
|
beq _0200E400
|
|
_0200E3EC:
|
|
ldr r1, _0200E430 ; =0x027FFC30
|
|
mov r4, #0
|
|
ldrb r0, [r1, #5]
|
|
orr r0, r0, #2
|
|
strb r0, [r1, #5]
|
|
_0200E400:
|
|
ldr r0, [sp]
|
|
bl sub_0200E480
|
|
ldr r0, [sp, #4]
|
|
bl sub_0200E49C
|
|
ldr r0, _0200E434 ; =0x0380B25C
|
|
add r1, sp, #8
|
|
ldrh r0, [r0, #6]
|
|
bl sub_0200E508
|
|
mov r0, r4
|
|
_0200E424:
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200E430: .word 0x027FFC30
|
|
_0200E434: .word 0x0380B25C
|
|
_0200E438: .word 0x0801FFFE
|
|
arm_func_end sub_0200E318
|
|
|
|
arm_func_start sub_0200E43C
|
|
sub_0200E43C: ; 0x0200E43C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0200E47C ; =0x04000204
|
|
ldrh r1, [r2]
|
|
and r1, r1, #0xc
|
|
mov r1, r1, asr #2
|
|
str r1, [r0]
|
|
ldrh r1, [r2]
|
|
and r1, r1, #0x10
|
|
mov r1, r1, asr #4
|
|
str r1, [r0, #4]
|
|
mov r0, #3
|
|
bl sub_0200E480
|
|
mov r0, #0
|
|
bl sub_0200E49C
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200E47C: .word 0x04000204
|
|
arm_func_end sub_0200E43C
|
|
|
|
arm_func_start sub_0200E480
|
|
sub_0200E480: ; 0x0200E480
|
|
ldr r2, _0200E498 ; =0x04000204
|
|
ldrh r1, [r2]
|
|
bic r1, r1, #0xc
|
|
orr r0, r1, r0, lsl #2
|
|
strh r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200E498: .word 0x04000204
|
|
arm_func_end sub_0200E480
|
|
|
|
arm_func_start sub_0200E49C
|
|
sub_0200E49C: ; 0x0200E49C
|
|
ldr r2, _0200E4B4 ; =0x04000204
|
|
ldrh r1, [r2]
|
|
bic r1, r1, #0x10
|
|
orr r0, r1, r0, lsl #4
|
|
strh r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200E4B4: .word 0x04000204
|
|
arm_func_end sub_0200E49C
|
|
|
|
arm_func_start sub_0200E4B8
|
|
sub_0200E4B8: ; 0x0200E4B8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r1
|
|
mov r5, r0
|
|
bl sub_02005EE8
|
|
str r0, [r4, #4]
|
|
ldr r0, _0200E504 ; =0x027FFFE8
|
|
bl sub_02003DDC
|
|
ands r0, r0, #0x80
|
|
str r0, [r4]
|
|
bne _0200E4F0
|
|
mov r0, r5
|
|
bl sub_02003D6C
|
|
cmp r0, #0
|
|
bne _0200E4F8
|
|
_0200E4F0:
|
|
mov r0, #1
|
|
b _0200E4FC
|
|
_0200E4F8:
|
|
mov r0, #0
|
|
_0200E4FC:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200E504: .word 0x027FFFE8
|
|
arm_func_end sub_0200E4B8
|
|
|
|
arm_func_start sub_0200E508
|
|
sub_0200E508: ; 0x0200E508
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r1
|
|
ldr r1, [r4]
|
|
cmp r1, #0
|
|
bne _0200E520
|
|
bl sub_02003D60
|
|
_0200E520:
|
|
ldr r0, [r4, #4]
|
|
bl sub_02005EFC
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_0200E508
|
|
|
|
arm_func_start sub_0200E530
|
|
sub_0200E530: ; 0x0200E530
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, #1
|
|
mov r5, #0xd
|
|
mov r4, #0
|
|
b _0200E550
|
|
_0200E548:
|
|
mov r0, r6
|
|
bl sub_02003BF4
|
|
_0200E550:
|
|
mov r0, r5
|
|
mov r1, r7
|
|
mov r2, r4
|
|
bl sub_020065F8
|
|
cmp r0, #0
|
|
bne _0200E548
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_0200E530
|
|
|
|
arm_func_start sub_0200E570
|
|
sub_0200E570: ; 0x0200E570
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_02005310
|
|
bl sub_02005534
|
|
ldr r0, _0200E5F8 ; =0x0380B294
|
|
bl sub_02005588
|
|
ldr r0, _0200E5FC ; =0x0380B264
|
|
ldr r1, [r0, #0x14]
|
|
cmp r1, #0
|
|
bne _0200E5F0
|
|
mov r1, #1
|
|
str r1, [r0, #0x14]
|
|
bl sub_0200E280
|
|
bl sub_02003DE4
|
|
mvn r1, #2
|
|
cmp r0, r1
|
|
beq _0200E5F0
|
|
ldr r1, _0200E5FC ; =0x0380B264
|
|
strh r0, [r1]
|
|
bl sub_0200649C
|
|
ldr r1, _0200E600 ; =0x0380659C
|
|
mov r0, #0xd
|
|
bl sub_02006584
|
|
bl sub_0200E610
|
|
ldr r1, _0200E604 ; =0x038065CC
|
|
mov r0, #0xd
|
|
bl sub_02006584
|
|
ldr r1, _0200E608 ; =0x03806600
|
|
mov r0, #0x10
|
|
bl sub_02006584
|
|
ldr r1, _0200E60C ; =0x03806944
|
|
mov r0, #0x11
|
|
bl sub_02006584
|
|
_0200E5F0:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200E5F8: .word 0x0380B294
|
|
_0200E5FC: .word 0x0380B264
|
|
_0200E600: .word 0x0380659C
|
|
_0200E604: .word 0x038065CC
|
|
_0200E608: .word 0x03806600
|
|
_0200E60C: .word 0x03806944
|
|
arm_func_end sub_0200E570
|
|
|
|
arm_func_start sub_0200E610
|
|
sub_0200E610: ; 0x0200E610
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r0, _0200E76C ; =0x0380B264
|
|
ldr r1, [r0, #8]
|
|
cmp r1, #0
|
|
bne _0200E764
|
|
ldr r1, _0200E770 ; =0x04000300
|
|
mov r2, #1
|
|
ldrh r1, [r1]
|
|
str r2, [r0, #8]
|
|
tst r1, #1
|
|
beq _0200E764
|
|
mov r0, #0x40000
|
|
bl sub_02003A8C
|
|
ldr r2, _0200E774 ; =0x04000208
|
|
mov r1, #1
|
|
ldrh sb, [r2]
|
|
ldr r5, _0200E76C ; =0x0380B264
|
|
mov r4, r0
|
|
strh r1, [r2]
|
|
mov r6, #0x100
|
|
b _0200E66C
|
|
_0200E664:
|
|
mov r0, r6
|
|
bl sub_02003BF4
|
|
_0200E66C:
|
|
ldr r0, [r5, #0x28]
|
|
cmp r0, #1
|
|
bne _0200E664
|
|
ldr r0, _0200E76C ; =0x0380B264
|
|
mov r1, #0x8000000
|
|
ldr r2, [r0, #0x18]
|
|
ldr r0, _0200E778 ; =0x01FFFFC0
|
|
add r8, r1, #4
|
|
and r0, r2, r0
|
|
mov r0, r0, lsr #6
|
|
mov r0, r0, lsl #5
|
|
add r5, r0, #0x2000000
|
|
mov r6, #1
|
|
bl sub_02003DE4
|
|
mov r0, r0, lsl #0x10
|
|
mov r7, r0, lsr #0x10
|
|
mov r0, r7
|
|
bl sub_02003CF0
|
|
ldr ip, _0200E77C ; =0x0000FFFF
|
|
mov sl, #0
|
|
eor r0, ip, #3
|
|
eor r1, ip, #0x84
|
|
mov r0, r0, lsl #0x10
|
|
mov r1, r1, lsl #0x10
|
|
mov r2, r0, lsr #0x10
|
|
mov r3, r1, lsr #0x10
|
|
b _0200E714
|
|
_0200E6D8:
|
|
mov lr, ip
|
|
cmp sl, #0x4c
|
|
moveq lr, r3
|
|
beq _0200E6F0
|
|
cmp sl, #0x4d
|
|
moveq lr, r2
|
|
_0200E6F0:
|
|
add r0, r5, sl, lsl #1
|
|
mov r1, sl, lsl #1
|
|
ldrh r0, [r0, #4]
|
|
ldrh r1, [r8, r1]
|
|
and r0, lr, r0
|
|
cmp r0, r1
|
|
movne r6, #0
|
|
bne _0200E71C
|
|
add sl, sl, #1
|
|
_0200E714:
|
|
cmp sl, #0x4e
|
|
blt _0200E6D8
|
|
_0200E71C:
|
|
mov r0, r7
|
|
bl sub_02003D60
|
|
mov r0, r7
|
|
bl sub_02003E8C
|
|
ldr r2, _0200E780 ; =0x027FFC30
|
|
and r0, r6, #0xff
|
|
ldrb r1, [r2, #5]
|
|
and r0, r0, #1
|
|
bic r1, r1, #1
|
|
orr r1, r1, r0
|
|
mov r0, #1
|
|
strb r1, [r2, #5]
|
|
bl sub_0200E530
|
|
ldr r2, _0200E774 ; =0x04000208
|
|
mov r0, r4
|
|
ldrh r1, [r2]
|
|
strh sb, [r2]
|
|
bl sub_02003A8C
|
|
_0200E764:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200E76C: .word 0x0380B264
|
|
_0200E770: .word 0x04000300
|
|
_0200E774: .word 0x04000208
|
|
_0200E778: .word 0x01FFFFC0
|
|
_0200E77C: .word 0x0000FFFF
|
|
_0200E780: .word 0x027FFC30
|
|
arm_func_end sub_0200E610
|
|
|
|
arm_func_start sub_0200E784
|
|
sub_0200E784: ; 0x0200E784
|
|
stmdb sp!, {r3, lr}
|
|
and r0, r1, #0x3f
|
|
cmp r0, #1
|
|
ldreq r0, _0200E7B0 ; =0x0380B264
|
|
moveq r2, #1
|
|
streq r1, [r0, #0x18]
|
|
streq r2, [r0, #0x28]
|
|
beq _0200E7A8
|
|
bl sub_02006058
|
|
_0200E7A8:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200E7B0: .word 0x0380B264
|
|
arm_func_end sub_0200E784
|
|
|
|
arm_func_start sub_0200E7B4
|
|
sub_0200E7B4: ; 0x0200E7B4
|
|
stmdb sp!, {r3, lr}
|
|
and r0, r1, #0x3f
|
|
cmp r0, #2
|
|
bne _0200E7DC
|
|
mov r0, #0
|
|
bl sub_0200E7F8
|
|
bl sub_020068F0
|
|
bl sub_0200D474
|
|
bl sub_02006058
|
|
b _0200E7E0
|
|
_0200E7DC:
|
|
bl sub_02006058
|
|
_0200E7E0:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_0200E7B4
|
|
|
|
arm_func_start sub_0200E7E8
|
|
sub_0200E7E8: ; 0x0200E7E8
|
|
ldr ip, _0200E7F4 ; =sub_03806610
|
|
mov r0, r1
|
|
bx ip
|
|
.align 2, 0
|
|
_0200E7F4: .word sub_03806610
|
|
arm_func_end sub_0200E7E8
|
|
|
|
arm_func_start sub_0200E7F8
|
|
sub_0200E7F8: ; 0x0200E7F8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
movs r5, r0
|
|
beq _0200E834
|
|
ldr r0, [r5]
|
|
cmp r0, #0
|
|
bne _0200E834
|
|
ldr r0, [r5, #0x44]
|
|
add r0, r0, #1
|
|
str r0, [r5, #0x44]
|
|
ldr r1, [r5, #0x40]
|
|
cmp r1, #0
|
|
beq _0200E834
|
|
ldr r0, [r5, #0x44]
|
|
cmp r0, r1
|
|
movhi r5, #0
|
|
_0200E834:
|
|
cmp r5, #0
|
|
ldrne r0, [r5, #0x3c]
|
|
cmpne r0, #0
|
|
bne _0200E8D8
|
|
bl sub_02005EE8
|
|
ldr r4, _0200EA14 ; =0x0380B264
|
|
mov sb, r0
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #2
|
|
bne _0200E8C4
|
|
mov sl, #0
|
|
ldr r7, _0200EA18 ; =0x027FFFE8
|
|
ldr r5, _0200EA1C ; =0x08001000
|
|
mov r6, sl
|
|
mov fp, #1
|
|
b _0200E8BC
|
|
_0200E874:
|
|
mov r0, r7
|
|
bl sub_02003DDC
|
|
ands r8, r0, #0x80
|
|
bne _0200E894
|
|
ldrh r0, [r4]
|
|
bl sub_02003D6C
|
|
cmp r0, #0
|
|
bne _0200E8B4
|
|
_0200E894:
|
|
str r6, [r4, #4]
|
|
mov sl, fp
|
|
strh r6, [r5]
|
|
cmp r8, #0
|
|
bne _0200E8BC
|
|
ldrh r0, [r4]
|
|
bl sub_02003D40
|
|
b _0200E8BC
|
|
_0200E8B4:
|
|
ldr r0, _0200EA20 ; =0x000080E8
|
|
bl sub_02005F4C
|
|
_0200E8BC:
|
|
cmp sl, #0
|
|
beq _0200E874
|
|
_0200E8C4:
|
|
ldr r0, _0200EA24 ; =0x0380B294
|
|
bl sub_020057A8
|
|
mov r0, sb
|
|
bl sub_02005EFC
|
|
b _0200EA0C
|
|
_0200E8D8:
|
|
cmp r5, #0
|
|
beq _0200EA0C
|
|
ldr r0, _0200EA18 ; =0x027FFFE8
|
|
bl sub_02003DDC
|
|
ands r4, r0, #0x80
|
|
bne _0200E904
|
|
ldr r0, _0200EA14 ; =0x0380B264
|
|
ldrh r0, [r0]
|
|
bl sub_02003D6C
|
|
cmp r0, #0
|
|
bne _0200E9F4
|
|
_0200E904:
|
|
ldr r1, [r5]
|
|
ldr r0, [r5, #4]
|
|
cmp r1, r0
|
|
bne _0200E94C
|
|
ldr r0, _0200EA14 ; =0x0380B264
|
|
mov r2, #0
|
|
ldr r1, _0200EA1C ; =0x08001000
|
|
str r2, [r0, #4]
|
|
strh r2, [r1]
|
|
str r5, [sp]
|
|
ldr r1, [r5, #8]
|
|
ldr r0, _0200EA24 ; =0x0380B294
|
|
ldr r3, _0200EA28 ; =0x03806610
|
|
mov r2, #0
|
|
bl sub_020056C4
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
b _0200E9DC
|
|
_0200E94C:
|
|
tst r1, #1
|
|
ldr r1, _0200EA1C ; =0x08001000
|
|
beq _0200E99C
|
|
ldr r0, _0200EA14 ; =0x0380B264
|
|
mov r2, #0
|
|
str r2, [r0, #4]
|
|
strh r2, [r1]
|
|
str r5, [sp]
|
|
ldr r1, [r5]
|
|
ldr r0, _0200EA24 ; =0x0380B294
|
|
mov r1, r1, lsr #1
|
|
add r1, r5, r1, lsl #2
|
|
ldr r1, [r1, #0x24]
|
|
ldr r3, _0200EA28 ; =0x03806610
|
|
mov r2, #0
|
|
bl sub_020056C4
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
b _0200E9DC
|
|
_0200E99C:
|
|
ldr r0, _0200EA14 ; =0x0380B264
|
|
mov r2, #2
|
|
str r2, [r0, #4]
|
|
strh r2, [r1]
|
|
str r5, [sp]
|
|
ldr r1, [r5]
|
|
ldr r0, _0200EA24 ; =0x0380B294
|
|
mov r1, r1, lsr #1
|
|
add r1, r5, r1, lsl #2
|
|
ldr r1, [r1, #0xc]
|
|
ldr r3, _0200EA28 ; =0x03806610
|
|
mov r2, #0
|
|
bl sub_020056C4
|
|
ldr r0, [r5]
|
|
add r0, r0, #1
|
|
str r0, [r5]
|
|
_0200E9DC:
|
|
cmp r4, #0
|
|
bne _0200EA0C
|
|
ldr r0, _0200EA14 ; =0x0380B264
|
|
ldrh r0, [r0]
|
|
bl sub_02003D40
|
|
b _0200EA0C
|
|
_0200E9F4:
|
|
ldr r0, _0200EA24 ; =0x0380B294
|
|
ldr r1, _0200EA2C ; =0x0000020B
|
|
ldr r3, _0200EA28 ; =0x03806610
|
|
mov r2, #0
|
|
str r5, [sp]
|
|
bl sub_020056C4
|
|
_0200EA0C:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200EA14: .word 0x0380B264
|
|
_0200EA18: .word 0x027FFFE8
|
|
_0200EA1C: .word 0x08001000
|
|
_0200EA20: .word 0x000080E8
|
|
_0200EA24: .word 0x0380B294
|
|
_0200EA28: .word 0x03806610
|
|
_0200EA2C: .word 0x0000020B
|
|
arm_func_end sub_0200E7F8
|
|
|
|
arm_func_start sub_0200EA30
|
|
sub_0200EA30: ; 0x0200EA30
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _0200EB20 ; =0x03807600
|
|
mvn r0, #0
|
|
ldr r3, [r1, #4]
|
|
cmp r3, r0
|
|
ldreq r0, _0200EB24 ; =0x027FFC3C
|
|
ldreq r0, [r0]
|
|
addeq r0, r0, #0xa
|
|
streq r0, [r1, #4]
|
|
beq _0200EB18
|
|
ldr r0, _0200EB28 ; =0x0380B264
|
|
ldr r2, [r0, #0x10]
|
|
cmp r2, #0
|
|
ldreq r0, [r0, #0xc]
|
|
cmpeq r0, #0
|
|
bne _0200EB18
|
|
ldr r2, _0200EB24 ; =0x027FFC3C
|
|
ldr r0, [r2]
|
|
cmp r0, r3
|
|
blo _0200EB18
|
|
ldr r0, [r2]
|
|
add r0, r0, #0xa
|
|
str r0, [r1, #4]
|
|
bl sub_0200E2C8
|
|
ldr r1, _0200EB28 ; =0x0380B264
|
|
str r0, [r1, #0xc]
|
|
bl sub_0200E318
|
|
cmp r0, #0
|
|
bne _0200EAC8
|
|
ldr r0, _0200EB20 ; =0x03807600
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ldrne r0, _0200EB28 ; =0x0380B264
|
|
strne r1, [r0, #0x10]
|
|
bne _0200EB18
|
|
ldr r0, _0200EB28 ; =0x0380B264
|
|
str r1, [r0, #0xc]
|
|
_0200EAC8:
|
|
ldr r0, _0200EB28 ; =0x0380B264
|
|
ldr r1, _0200EB20 ; =0x03807600
|
|
ldr r0, [r0, #0xc]
|
|
mov r2, #0
|
|
str r2, [r1]
|
|
cmp r0, #0
|
|
beq _0200EB18
|
|
mov r7, #0x64
|
|
mov r6, #0xd
|
|
mov r5, #0x11
|
|
mov r4, r2
|
|
b _0200EB00
|
|
_0200EAF8:
|
|
mov r0, r7
|
|
bl sub_02004650
|
|
_0200EB00:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_020065F8
|
|
cmp r0, #0
|
|
bne _0200EAF8
|
|
_0200EB18:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200EB20: .word 0x03807600
|
|
_0200EB24: .word 0x027FFC3C
|
|
_0200EB28: .word 0x0380B264
|
|
arm_func_end sub_0200EA30
|
|
|
|
arm_func_start sub_0200EB2C
|
|
sub_0200EB2C: ; 0x0200EB2C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
and r0, r1, #0x3f
|
|
cmp r0, #3
|
|
bne _0200EB94
|
|
ldr r3, _0200EBA0 ; =0x04000204
|
|
ldr r0, _0200EBA4 ; =0x01FFFFC0
|
|
ldrh r2, [r3]
|
|
and r0, r1, r0
|
|
mov r1, r0, lsr #6
|
|
bic r0, r2, #0x60
|
|
orr r0, r0, r1, lsl #5
|
|
strh r0, [r3]
|
|
mov r7, #1
|
|
mov r6, #0x11
|
|
mov r5, #0x12
|
|
mov r4, #0
|
|
b _0200EB78
|
|
_0200EB70:
|
|
mov r0, r7
|
|
bl sub_02003BF4
|
|
_0200EB78:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_020065F8
|
|
cmp r0, #0
|
|
bne _0200EB70
|
|
b _0200EB98
|
|
_0200EB94:
|
|
bl sub_02006058
|
|
_0200EB98:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200EBA0: .word 0x04000204
|
|
_0200EBA4: .word 0x01FFFFC0
|
|
arm_func_end sub_0200EB2C
|
|
|
|
arm_func_start sub_0200EBA8
|
|
sub_0200EBA8: ; 0x0200EBA8
|
|
stmdb sp!, {r4, r5, r6, r7, fp, ip, lr}
|
|
mov r4, r1
|
|
orr r4, r4, #1
|
|
b _0200EBC8
|
|
arm_func_end sub_0200EBA8
|
|
|
|
arm_func_start sub_0200EBB8
|
|
sub_0200EBB8: ; 0x0200EBB8
|
|
stmdb sp!, {r4, r5, r6, r7, fp, ip, lr}
|
|
eor r4, r1, r3
|
|
mov r4, r4, asr #1
|
|
mov r4, r4, lsl #1
|
|
_0200EBC8:
|
|
orrs r5, r3, r2
|
|
bne _0200EBD8
|
|
ldmia sp!, {r4, r5, r6, r7, fp, ip, lr}
|
|
bx lr
|
|
_0200EBD8:
|
|
mov r5, r0, lsr #0x1f
|
|
add r5, r5, r1
|
|
mov r6, r2, lsr #0x1f
|
|
add r6, r6, r3
|
|
orrs r6, r5, r6
|
|
bne _0200EC0C
|
|
mov r1, r2
|
|
bl sub_0200EDB0
|
|
ands r4, r4, #1
|
|
movne r0, r1
|
|
mov r1, r0, asr #0x1f
|
|
ldmia sp!, {r4, r5, r6, r7, fp, ip, lr}
|
|
bx lr
|
|
_0200EC0C:
|
|
cmp r1, #0
|
|
bge _0200EC1C
|
|
rsbs r0, r0, #0
|
|
rsc r1, r1, #0
|
|
_0200EC1C:
|
|
cmp r3, #0
|
|
bge _0200EC2C
|
|
rsbs r2, r2, #0
|
|
rsc r3, r3, #0
|
|
_0200EC2C:
|
|
orrs r5, r1, r0
|
|
beq _0200ED50
|
|
mov r5, #0
|
|
mov r6, #1
|
|
cmp r3, #0
|
|
bmi _0200EC58
|
|
_0200EC44:
|
|
add r5, r5, #1
|
|
adds r2, r2, r2
|
|
adcs r3, r3, r3
|
|
bpl _0200EC44
|
|
add r6, r6, r5
|
|
_0200EC58:
|
|
cmp r1, #0
|
|
blt _0200EC78
|
|
_0200EC60:
|
|
cmp r6, #1
|
|
beq _0200EC78
|
|
sub r6, r6, #1
|
|
adds r0, r0, r0
|
|
adcs r1, r1, r1
|
|
bpl _0200EC60
|
|
_0200EC78:
|
|
mov r7, #0
|
|
mov ip, #0
|
|
mov fp, #0
|
|
b _0200ECA0
|
|
_0200EC88:
|
|
orr ip, ip, #1
|
|
subs r6, r6, #1
|
|
beq _0200ECF8
|
|
adds r0, r0, r0
|
|
adcs r1, r1, r1
|
|
adcs r7, r7, r7
|
|
_0200ECA0:
|
|
subs r0, r0, r2
|
|
sbcs r1, r1, r3
|
|
sbcs r7, r7, #0
|
|
adds ip, ip, ip
|
|
adc fp, fp, fp
|
|
cmp r7, #0
|
|
bge _0200EC88
|
|
_0200ECBC:
|
|
subs r6, r6, #1
|
|
beq _0200ECF0
|
|
adds r0, r0, r0
|
|
adcs r1, r1, r1
|
|
adc r7, r7, r7
|
|
adds r0, r0, r2
|
|
adcs r1, r1, r3
|
|
adc r7, r7, #0
|
|
adds ip, ip, ip
|
|
adc fp, fp, fp
|
|
cmp r7, #0
|
|
bge _0200EC88
|
|
b _0200ECBC
|
|
_0200ECF0:
|
|
adds r0, r0, r2
|
|
adc r1, r1, r3
|
|
_0200ECF8:
|
|
ands r7, r4, #1
|
|
moveq r0, ip
|
|
moveq r1, fp
|
|
beq _0200ED30
|
|
subs r7, r5, #0x20
|
|
movge r0, r1, lsr r7
|
|
bge _0200ED54
|
|
rsb r7, r5, #0x20
|
|
mov r0, r0, lsr r5
|
|
orr r0, r0, r1, lsl r7
|
|
mov r1, r1, lsr r5
|
|
b _0200ED30
|
|
_0200ED28:
|
|
mov r0, r1, lsr r7
|
|
mov r1, #0
|
|
_0200ED30:
|
|
cmp r4, #0
|
|
blt _0200ED40
|
|
ldmia sp!, {r4, r5, r6, r7, fp, ip, lr}
|
|
bx lr
|
|
_0200ED40:
|
|
rsbs r0, r0, #0
|
|
rsc r1, r1, #0
|
|
ldmia sp!, {r4, r5, r6, r7, fp, ip, lr}
|
|
bx lr
|
|
_0200ED50:
|
|
mov r0, #0
|
|
_0200ED54:
|
|
mov r1, #0
|
|
cmp r4, #0
|
|
blt _0200ED40
|
|
ldmia sp!, {r4, r5, r6, r7, fp, ip, lr}
|
|
bx lr
|
|
arm_func_end sub_0200EBB8
|
|
|
|
arm_func_start sub_0200ED68
|
|
sub_0200ED68: ; 0x0200ED68
|
|
stmdb sp!, {r4, r5, r6, r7, fp, ip, lr}
|
|
mov r4, #0
|
|
b _0200ED7C
|
|
_0200ED74:
|
|
stmdb sp!, {r4, r5, r6, r7, fp, ip, lr}
|
|
mov r4, #1
|
|
_0200ED7C:
|
|
orrs r5, r3, r2
|
|
bne _0200ED8C
|
|
ldmia sp!, {r4, r5, r6, r7, fp, ip, lr}
|
|
bx lr
|
|
_0200ED8C:
|
|
orrs r5, r1, r3
|
|
bne _0200EC2C
|
|
mov r1, r2
|
|
bl sub_0200EFC4
|
|
cmp r4, #0
|
|
movne r0, r1
|
|
mov r1, #0
|
|
ldmia sp!, {r4, r5, r6, r7, fp, ip, lr}
|
|
bx lr
|
|
arm_func_end sub_0200ED68
|
|
|
|
arm_func_start sub_0200EDB0
|
|
sub_0200EDB0: ; 0x0200EDB0
|
|
eor ip, r0, r1
|
|
and ip, ip, #0x80000000
|
|
cmp r0, #0
|
|
rsblt r0, r0, #0
|
|
addlt ip, ip, #1
|
|
cmp r1, #0
|
|
rsblt r1, r1, #0
|
|
beq _0200EFA8
|
|
cmp r0, r1
|
|
movlo r1, r0
|
|
movlo r0, #0
|
|
blo _0200EFA8
|
|
mov r2, #0x1c
|
|
mov r3, r0, lsr #4
|
|
cmp r1, r3, lsr #12
|
|
suble r2, r2, #0x10
|
|
movle r3, r3, lsr #0x10
|
|
cmp r1, r3, lsr #4
|
|
suble r2, r2, #8
|
|
movle r3, r3, lsr #8
|
|
cmp r1, r3
|
|
suble r2, r2, #4
|
|
movle r3, r3, lsr #4
|
|
mov r0, r0, lsl r2
|
|
rsb r1, r1, #0
|
|
adds r0, r0, r0
|
|
add r2, r2, r2, lsl #1
|
|
add pc, pc, r2, lsl #2
|
|
mov r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
mov r1, r3
|
|
_0200EFA8:
|
|
ands r3, ip, #0x80000000
|
|
rsbne r0, r0, #0
|
|
ands r3, ip, #1
|
|
rsbne r1, r1, #0
|
|
bx lr
|
|
arm_func_end sub_0200EDB0
|
|
|
|
arm_func_start sub_0200EFBC
|
|
sub_0200EFBC: ; 0x0200EFBC
|
|
cmp r1, #0
|
|
bxeq lr
|
|
arm_func_end sub_0200EFBC
|
|
|
|
arm_func_start sub_0200EFC4
|
|
sub_0200EFC4: ; 0x0200EFC4
|
|
cmp r0, r1
|
|
movlo r1, r0
|
|
movlo r0, #0
|
|
bxlo lr
|
|
mov r2, #0x1c
|
|
mov r3, r0, lsr #4
|
|
cmp r1, r3, lsr #12
|
|
suble r2, r2, #0x10
|
|
movle r3, r3, lsr #0x10
|
|
cmp r1, r3, lsr #4
|
|
suble r2, r2, #8
|
|
movle r3, r3, lsr #8
|
|
cmp r1, r3
|
|
suble r2, r2, #4
|
|
movle r3, r3, lsr #4
|
|
mov r0, r0, lsl r2
|
|
rsb r1, r1, #0
|
|
adds r0, r0, r0
|
|
add r2, r2, r2, lsl #1
|
|
add pc, pc, r2, lsl #2
|
|
mov r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
adcs r3, r1, r3, lsl #1
|
|
sublo r3, r3, r1
|
|
adcs r0, r0, r0
|
|
mov r1, r3
|
|
bx lr
|
|
arm_func_end sub_0200EFC4
|
|
_0200F1A0:
|
|
.byte 0x00, 0x06, 0x0C, 0x13, 0x19, 0x1F, 0x25, 0x2B, 0x31, 0x36, 0x3C, 0x41, 0x47, 0x4C, 0x51, 0x55
|
|
.byte 0x5A, 0x5E, 0x62, 0x66, 0x6A, 0x6D, 0x70, 0x73, 0x75, 0x78, 0x7A, 0x7B, 0x7D, 0x7E, 0x7E, 0x7F
|
|
.byte 0x7F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2E, 0xFD, 0x2F, 0xFD, 0x75, 0xFD, 0xA7, 0xFD, 0xCE, 0xFD
|
|
.byte 0xEE, 0xFD, 0x09, 0xFE, 0x20, 0xFE, 0x34, 0xFE, 0x46, 0xFE, 0x57, 0xFE, 0x66, 0xFE, 0x74, 0xFE
|
|
.byte 0x81, 0xFE, 0x8D, 0xFE, 0x98, 0xFE, 0xA3, 0xFE, 0xAD, 0xFE, 0xB6, 0xFE, 0xBF, 0xFE, 0xC7, 0xFE
|
|
.byte 0xCF, 0xFE, 0xD7, 0xFE, 0xDF, 0xFE, 0xE6, 0xFE, 0xEC, 0xFE, 0xF3, 0xFE, 0xF9, 0xFE, 0xFF, 0xFE
|
|
.byte 0x05, 0xFF, 0x0B, 0xFF, 0x11, 0xFF, 0x16, 0xFF, 0x1B, 0xFF, 0x20, 0xFF, 0x25, 0xFF, 0x2A, 0xFF
|
|
.byte 0x2E, 0xFF, 0x33, 0xFF, 0x37, 0xFF, 0x3C, 0xFF, 0x40, 0xFF, 0x44, 0xFF, 0x48, 0xFF, 0x4C, 0xFF
|
|
.byte 0x50, 0xFF, 0x53, 0xFF, 0x57, 0xFF, 0x5B, 0xFF, 0x5E, 0xFF, 0x62, 0xFF, 0x65, 0xFF, 0x68, 0xFF
|
|
.byte 0x6B, 0xFF, 0x6F, 0xFF, 0x72, 0xFF, 0x75, 0xFF, 0x78, 0xFF, 0x7B, 0xFF, 0x7E, 0xFF, 0x81, 0xFF
|
|
.byte 0x83, 0xFF, 0x86, 0xFF, 0x89, 0xFF, 0x8C, 0xFF, 0x8E, 0xFF, 0x91, 0xFF, 0x93, 0xFF, 0x96, 0xFF
|
|
.byte 0x99, 0xFF, 0x9B, 0xFF, 0x9D, 0xFF, 0xA0, 0xFF, 0xA2, 0xFF, 0xA5, 0xFF, 0xA7, 0xFF, 0xA9, 0xFF
|
|
.byte 0xAB, 0xFF, 0xAE, 0xFF, 0xB0, 0xFF, 0xB2, 0xFF, 0xB4, 0xFF, 0xB6, 0xFF, 0xB8, 0xFF, 0xBA, 0xFF
|
|
.byte 0xBC, 0xFF, 0xBE, 0xFF, 0xC0, 0xFF, 0xC2, 0xFF, 0xC4, 0xFF, 0xC6, 0xFF, 0xC8, 0xFF, 0xCA, 0xFF
|
|
.byte 0xCC, 0xFF, 0xCE, 0xFF, 0xCF, 0xFF, 0xD1, 0xFF, 0xD3, 0xFF, 0xD5, 0xFF, 0xD6, 0xFF, 0xD8, 0xFF
|
|
.byte 0xDA, 0xFF, 0xDC, 0xFF, 0xDD, 0xFF, 0xDF, 0xFF, 0xE1, 0xFF, 0xE2, 0xFF, 0xE4, 0xFF, 0xE5, 0xFF
|
|
.byte 0xE7, 0xFF, 0xE9, 0xFF, 0xEA, 0xFF, 0xEC, 0xFF, 0xED, 0xFF, 0xEF, 0xFF, 0xF0, 0xFF, 0xF2, 0xFF
|
|
.byte 0xF3, 0xFF, 0xF5, 0xFF, 0xF6, 0xFF, 0xF8, 0xFF, 0xF9, 0xFF, 0xFA, 0xFF, 0xFC, 0xFF, 0xFD, 0xFF
|
|
.byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0x5B, 0xFE, 0x97, 0xFE, 0xBB, 0xFE, 0xD4, 0xFE, 0xE7, 0xFE
|
|
.byte 0xF7, 0xFE, 0x04, 0xFF, 0x10, 0xFF, 0x1A, 0xFF, 0x23, 0xFF, 0x2C, 0xFF, 0x33, 0xFF, 0x3A, 0xFF
|
|
.byte 0x40, 0xFF, 0x46, 0xFF, 0x4C, 0xFF, 0x51, 0xFF, 0x56, 0xFF, 0x5B, 0xFF, 0x5F, 0xFF, 0x64, 0xFF
|
|
.byte 0x68, 0xFF, 0x6C, 0xFF, 0x6F, 0xFF, 0x73, 0xFF, 0x76, 0xFF, 0x7A, 0xFF, 0x7D, 0xFF, 0x80, 0xFF
|
|
.byte 0x83, 0xFF, 0x86, 0xFF, 0x88, 0xFF, 0x8B, 0xFF, 0x8E, 0xFF, 0x90, 0xFF, 0x92, 0xFF, 0x95, 0xFF
|
|
.byte 0x97, 0xFF, 0x99, 0xFF, 0x9C, 0xFF, 0x9E, 0xFF, 0xA0, 0xFF, 0xA2, 0xFF, 0xA4, 0xFF, 0xA6, 0xFF
|
|
.byte 0xA8, 0xFF, 0xAA, 0xFF, 0xAB, 0xFF, 0xAD, 0xFF, 0xAF, 0xFF, 0xB1, 0xFF, 0xB2, 0xFF, 0xB4, 0xFF
|
|
.byte 0xB6, 0xFF, 0xB7, 0xFF, 0xB9, 0xFF, 0xBA, 0xFF, 0xBC, 0xFF, 0xBD, 0xFF, 0xBF, 0xFF, 0xC0, 0xFF
|
|
.byte 0xC2, 0xFF, 0xC3, 0xFF, 0xC4, 0xFF, 0xC6, 0xFF, 0xC7, 0xFF, 0xC8, 0xFF, 0xCA, 0xFF, 0xCB, 0xFF
|
|
.byte 0xCC, 0xFF, 0xCD, 0xFF, 0xCF, 0xFF, 0xD0, 0xFF, 0xD1, 0xFF, 0xD2, 0xFF, 0xD3, 0xFF, 0xD5, 0xFF
|
|
.byte 0xD6, 0xFF, 0xD7, 0xFF, 0xD8, 0xFF, 0xD9, 0xFF, 0xDA, 0xFF, 0xDB, 0xFF, 0xDC, 0xFF, 0xDD, 0xFF
|
|
.byte 0xDE, 0xFF, 0xDF, 0xFF, 0xE0, 0xFF, 0xE1, 0xFF, 0xE2, 0xFF, 0xE3, 0xFF, 0xE4, 0xFF, 0xE5, 0xFF
|
|
.byte 0xE6, 0xFF, 0xE7, 0xFF, 0xE8, 0xFF, 0xE9, 0xFF, 0xE9, 0xFF, 0xEA, 0xFF, 0xEB, 0xFF, 0xEC, 0xFF
|
|
.byte 0xED, 0xFF, 0xEE, 0xFF, 0xEF, 0xFF, 0xEF, 0xFF, 0xF0, 0xFF, 0xF1, 0xFF, 0xF2, 0xFF, 0xF3, 0xFF
|
|
.byte 0xF4, 0xFF, 0xF4, 0xFF, 0xF5, 0xFF, 0xF6, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF8, 0xFF, 0xF9, 0xFF
|
|
.byte 0xFA, 0xFF, 0xFA, 0xFF, 0xFB, 0xFF, 0xFC, 0xFF, 0xFD, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF
|
|
.byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x05, 0x06, 0x07, 0x02, 0x00, 0x03, 0x01
|
|
.byte 0x08, 0x09, 0x0A, 0x0B, 0x0E, 0x0C, 0x0F, 0x0D, 0x00, 0x01, 0x05, 0x0E, 0x1A, 0x26, 0x33, 0x3F
|
|
.byte 0x49, 0x54, 0x5C, 0x64, 0x6D, 0x74, 0x7B, 0x7F, 0x84, 0x89, 0x8F, 0x00, 0x06, 0x00, 0x00, 0x00
|
|
.byte 0xC7, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x01, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x13, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00
|
|
.byte 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
|
|
.byte 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x02, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x08, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x20, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x16, 0x00, 0x00, 0x00
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x11, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x80, 0x00, 0x17, 0x00, 0x00, 0x00
|
|
|
|
arm_func_start sub_0200F4A8
|
|
sub_0200F4A8: ; 0x0200F4A8
|
|
mov ip, #0x4000000
|
|
str ip, [ip, #0x208]
|
|
ldr r1, _0200F510 ; =0x0380FFFC
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
ldr r1, _0200F514 ; =0x04000180
|
|
mov r0, #0x100
|
|
strh r0, [r1]
|
|
_0200F4C8:
|
|
ldrh r0, [r1]
|
|
and r0, r0, #0xf
|
|
cmp r0, #1
|
|
bne _0200F4C8
|
|
ldr r1, _0200F514 ; =0x04000180
|
|
mov r0, #0
|
|
strh r0, [r1]
|
|
_0200F4E4:
|
|
ldrh r0, [r1]
|
|
cmp r0, #1
|
|
beq _0200F4E4
|
|
ldr r3, _0200F518 ; =0x027FFE00
|
|
ldr ip, [r3, #0x34]
|
|
mov lr, ip
|
|
mov r0, #0
|
|
mov r1, #0
|
|
mov r2, #0
|
|
mov r3, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_0200F510: .word 0x0380FFFC
|
|
_0200F514: .word 0x04000180
|
|
_0200F518: .word 0x027FFE00
|
|
arm_func_end sub_0200F4A8
|
|
_0200F51C:
|
|
.byte 0xF8, 0x40, 0x2D, 0xE9
|
|
.byte 0x00, 0x70, 0xA0, 0xE1, 0x01, 0x6C, 0xA0, 0xE3, 0x0A, 0x50, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE3
|
|
.byte 0x01, 0x00, 0x00, 0xEA, 0x06, 0x00, 0xA0, 0xE1, 0xAD, 0xD1, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1
|
|
.byte 0x07, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1, 0x2A, 0xDC, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3
|
|
.byte 0xF7, 0xFF, 0xFF, 0xBA, 0x08, 0x00, 0x9F, 0xE5, 0x65, 0xD5, 0xFF, 0xEB, 0xF8, 0x40, 0xBD, 0xE8
|
|
.byte 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0x8D, 0x7F, 0x02, 0x38, 0x40, 0x2D, 0xE9, 0x3C, 0x00, 0x9F, 0xE5
|
|
.byte 0x3E, 0xD5, 0xFF, 0xEB, 0x38, 0x40, 0x9F, 0xE5, 0x01, 0x5C, 0xA0, 0xE3, 0x01, 0x00, 0x00, 0xEA
|
|
.byte 0x05, 0x00, 0xA0, 0xE1, 0x9A, 0xD1, 0xFF, 0xEB, 0xB0, 0x10, 0xD4, 0xE1, 0x01, 0x00, 0x11, 0xE3
|
|
.byte 0xFA, 0xFF, 0xFF, 0x1A, 0x1C, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0x81, 0xE3, 0xB0, 0x10, 0xC4, 0xE1
|
|
.byte 0x4C, 0x05, 0x90, 0xE5, 0x08, 0x00, 0x90, 0xE5, 0x38, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1
|
|
.byte 0xA0, 0x8D, 0x7F, 0x02, 0x96, 0xFF, 0x7F, 0x02, 0x78, 0x88, 0x7F, 0x02
|
|
|
|
arm_func_start sub_0200F5BC
|
|
sub_0200F5BC: ; 0x0200F5BC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _0200F6C4 ; =0x00001FFF
|
|
and r0, r0, r1
|
|
mov r0, r0, lsl #0x10
|
|
movs r2, r0, lsr #0x10
|
|
moveq r0, #0
|
|
beq _0200F6BC
|
|
mov r1, #0
|
|
mov r0, #1
|
|
b _0200F5F0
|
|
_0200F5E4:
|
|
tst r2, r0, lsl r1
|
|
bne _0200F5F8
|
|
add r1, r1, #1
|
|
_0200F5F0:
|
|
cmp r1, #0x10
|
|
blt _0200F5E4
|
|
_0200F5F8:
|
|
mov r0, #0xf
|
|
mov r3, #1
|
|
b _0200F610
|
|
_0200F604:
|
|
tst r2, r3, lsl r0
|
|
bne _0200F618
|
|
sub r0, r0, #1
|
|
_0200F610:
|
|
cmp r0, #0
|
|
bne _0200F604
|
|
_0200F618:
|
|
sub r6, r0, r1
|
|
cmp r6, #5
|
|
movlt r0, #1
|
|
movlt r0, r0, lsl r1
|
|
movlt r0, r0, lsl #0x10
|
|
movlt r0, r0, lsr #0x10
|
|
blt _0200F6BC
|
|
add r3, r0, r1
|
|
add r3, r3, r3, lsr #31
|
|
mov r4, r3, asr #1
|
|
mov r5, #0
|
|
mov lr, #1
|
|
b _0200F670
|
|
_0200F64C:
|
|
mov ip, r5, lsr #0x1f
|
|
rsb r3, ip, r5, lsl #31
|
|
add r3, ip, r3, ror #31
|
|
mov r3, r3, lsl #1
|
|
sub r3, r3, #1
|
|
mla r4, r5, r3, r4
|
|
tst r2, lr, lsl r4
|
|
bne _0200F678
|
|
add r5, r5, #1
|
|
_0200F670:
|
|
cmp r5, r6
|
|
blt _0200F64C
|
|
_0200F678:
|
|
sub r2, r0, r4
|
|
cmp r2, #5
|
|
subge r2, r4, r1
|
|
cmpge r2, #5
|
|
bge _0200F6A4
|
|
mov r2, #1
|
|
mov r0, r2, lsl r0
|
|
orr r0, r0, r2, lsl r1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
b _0200F6BC
|
|
_0200F6A4:
|
|
mov r3, #1
|
|
mov r2, r3, lsl r4
|
|
orr r0, r2, r3, lsl r0
|
|
orr r0, r0, r3, lsl r1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
_0200F6BC:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200F6C4: .word 0x00001FFF
|
|
arm_func_end sub_0200F5BC
|
|
_0200F6C8:
|
|
.byte 0x08, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0B, 0x00
|
|
.byte 0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0xB7, 0x7F, 0x03
|
|
.byte 0x38, 0xB6, 0x7F, 0x03, 0x38, 0xB6, 0x7F, 0x03, 0x08, 0xB7, 0x7F, 0x03, 0x18, 0xB7, 0x7F, 0x03
|
|
.byte 0x28, 0xB7, 0x7F, 0x03, 0x38, 0xB7, 0x7F, 0x03, 0x38, 0xB6, 0x7F, 0x03, 0xC8, 0xB6, 0x7F, 0x03
|
|
.byte 0xD8, 0xB6, 0x7F, 0x03, 0xE8, 0xB6, 0x7F, 0x03, 0xF8, 0xB6, 0x7F, 0x03, 0x38, 0xB6, 0x7F, 0x03
|
|
.byte 0x38, 0xB6, 0x7F, 0x03, 0x38, 0xB6, 0x7F, 0x03, 0x38, 0xB6, 0x7F, 0x03, 0x38, 0xB6, 0x7F, 0x03
|
|
.byte 0x38, 0xB6, 0x7F, 0x03, 0x38, 0xB6, 0x7F, 0x03, 0x38, 0xB6, 0x7F, 0x03, 0x38, 0xB6, 0x7F, 0x03
|
|
.byte 0x38, 0xB6, 0x7F, 0x03, 0x38, 0xB6, 0x7F, 0x03, 0x38, 0xB6, 0x7F, 0x03, 0x38, 0xB6, 0x7F, 0x03
|
|
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0x78, 0x56, 0x34, 0x12, 0x00, 0xFE, 0x7F, 0x02, 0xFF, 0xFF, 0xFF, 0xFF
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA
|
|
.byte 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x08, 0x00, 0x01, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE3, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0xF0, 0xF0, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0xF8
|
|
.byte 0x14, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x0C, 0x00, 0x01, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0xC0, 0xFF, 0x14, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF
|
|
.byte 0x20, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x20, 0x00, 0x01, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0xC3, 0x28, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
|
|
.byte 0x38, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2, 0x01, 0x40, 0xA0, 0xE1, 0x00, 0x10, 0x94, 0xE5
|
|
.byte 0x74, 0x31, 0x9F, 0xE5, 0x00, 0x50, 0xA0, 0xE1, 0x40, 0x15, 0x83, 0xE5, 0x24, 0x10, 0x95, 0xE5
|
|
.byte 0x68, 0x01, 0x9F, 0xE5, 0x44, 0x15, 0x83, 0xE5, 0x28, 0x20, 0x95, 0xE5, 0x60, 0x11, 0x9F, 0xE5
|
|
.byte 0x48, 0x25, 0x83, 0xE5, 0x00, 0xC0, 0xA0, 0xE3, 0x4C, 0xC5, 0x83, 0xE5, 0x02, 0x20, 0xA0, 0xE3
|
|
.byte 0x50, 0xC5, 0x83, 0xE5, 0x98, 0x71, 0x40, 0xEB, 0x48, 0x01, 0x9F, 0xE5, 0x48, 0x11, 0x9F, 0xE5
|
|
.byte 0x04, 0x20, 0xA0, 0xE3, 0x94, 0x71, 0x40, 0xEB, 0x40, 0x01, 0x9F, 0xE5, 0x40, 0x11, 0x9F, 0xE5
|
|
.byte 0x04, 0x20, 0xA0, 0xE3, 0x90, 0x71, 0x40, 0xEB, 0x38, 0x01, 0x9F, 0xE5, 0x38, 0x11, 0x9F, 0xE5
|
|
.byte 0x20, 0x20, 0xA0, 0xE3, 0x8C, 0x71, 0x40, 0xEB, 0x10, 0x11, 0x9F, 0xE5, 0x14, 0x01, 0x9F, 0xE5
|
|
.byte 0x10, 0x10, 0x85, 0xE5, 0x14, 0x00, 0x85, 0xE5, 0x08, 0x20, 0x94, 0xE5, 0xF8, 0x10, 0x9F, 0xE5
|
|
.byte 0x18, 0x01, 0x9F, 0xE5, 0x78, 0x25, 0x81, 0xE5, 0x18, 0x20, 0x94, 0xE5, 0x7C, 0x25, 0x81, 0xE5
|
|
.byte 0x10, 0x20, 0x94, 0xE5, 0x80, 0x25, 0x81, 0xE5, 0x04, 0x20, 0x94, 0xE5, 0x84, 0x25, 0x81, 0xE5
|
|
.byte 0x14, 0x20, 0x94, 0xE5, 0x88, 0x25, 0x81, 0xE5, 0x0C, 0x20, 0x94, 0xE5, 0x8C, 0x25, 0x81, 0xE5
|
|
.byte 0xEA, 0x71, 0x40, 0xEB, 0x01, 0x0B, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x04, 0x10, 0x94, 0xE5
|
|
.byte 0xDC, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0x8D, 0xE5, 0xD8, 0x10, 0x9F, 0xE5, 0xCC, 0x30, 0x9F, 0xE5
|
|
.byte 0x00, 0x20, 0xA0, 0xE3, 0xDA, 0x6F, 0x40, 0xEB, 0xC4, 0x00, 0x9F, 0xE5, 0x9E, 0x70, 0x40, 0xEB
|
|
.byte 0x01, 0x0A, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x0C, 0x10, 0x94, 0xE5, 0xB8, 0x00, 0x9F, 0xE5
|
|
.byte 0x04, 0x10, 0x8D, 0xE5, 0xB4, 0x10, 0x9F, 0xE5, 0xB4, 0x30, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3
|
|
.byte 0xCF, 0x6F, 0x40, 0xEB, 0xA0, 0x00, 0x9F, 0xE5, 0x93, 0x70, 0x40, 0xEB, 0x00, 0x30, 0xA0, 0xE3
|
|
.byte 0x68, 0x10, 0x9F, 0xE5, 0x03, 0x20, 0xA0, 0xE1, 0x03, 0x00, 0x81, 0xE0, 0x01, 0x0A, 0x80, 0xE2
|
|
.byte 0x01, 0x30, 0x83, 0xE2, 0x54, 0x25, 0xC0, 0xE5, 0x20, 0x00, 0x53, 0xE3, 0xF9, 0xFF, 0xFF, 0xBA
|
|
.byte 0x44, 0x00, 0x9F, 0xE5, 0x74, 0x25, 0x80, 0xE5, 0x92, 0x75, 0x40, 0xEB, 0x00, 0x00, 0x50, 0xE3
|
|
.byte 0x00, 0x00, 0x00, 0x1A, 0x7C, 0x75, 0x40, 0xEB, 0x55, 0x78, 0x40, 0xEB, 0x64, 0x10, 0x9F, 0xE5
|
|
.byte 0x0A, 0x00, 0xA0, 0xE3, 0x8C, 0x78, 0x40, 0xEB, 0x02, 0x00, 0xA0, 0xE3, 0x18, 0x00, 0x85, 0xE5
|
|
.byte 0x14, 0x10, 0x94, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x0C, 0x10, 0x85, 0xE5, 0x17, 0x22, 0x00, 0xEB
|
|
.byte 0x08, 0xD0, 0x8D, 0xE2, 0x38, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x78, 0x88, 0x7F, 0x02
|
|
.byte 0x78, 0x78, 0x7F, 0x02, 0x98, 0x78, 0x7F, 0x02, 0xA0, 0x78, 0x7F, 0x02, 0xC0, 0x78, 0x7F, 0x02
|
|
.byte 0xD0, 0x78, 0x7F, 0x02, 0xF0, 0x78, 0x7F, 0x02, 0x00, 0x79, 0x7F, 0x02, 0x20, 0x79, 0x7F, 0x02
|
|
.byte 0xA0, 0x8D, 0x7F, 0x02, 0x64, 0xB3, 0x80, 0x03, 0x98, 0x08, 0x7E, 0x02, 0xC0, 0xB2, 0x80, 0x03
|
|
.byte 0xC0, 0x1C, 0x7E, 0x02, 0xA0, 0x89, 0x7F, 0x02, 0x44, 0x02, 0x7E, 0x02
|
|
|
|
arm_func_start sub_0200F9BC
|
|
sub_0200F9BC: ; 0x0200F9BC
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, r0
|
|
ldr r0, _0200FA2C ; =0x027F7878
|
|
mov r2, #1
|
|
bl sub_0302BEC4
|
|
ldr r0, _0200FA30 ; =0x027F78D0
|
|
add r1, sp, #0
|
|
mov r2, #1
|
|
bl sub_0302BF50
|
|
ldr r1, [sp]
|
|
ldrh r0, [r1, #0xe]
|
|
add r0, r1, r0, lsl #1
|
|
ldrh r0, [r0, #0x14]
|
|
cmp r0, #0xe
|
|
bne _0200FA20
|
|
bl sub_03036B70
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #0x13
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x18
|
|
strh r1, [r0, #4]
|
|
bl sub_03036B24
|
|
bl sub_0302DEF8
|
|
bl sub_0302D660
|
|
_0200FA20:
|
|
ldr r0, [sp]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200FA2C: .word 0x027F7878
|
|
_0200FA30: .word 0x027F78D0
|
|
arm_func_end sub_0200F9BC
|
|
|
|
arm_func_start sub_0200FA34
|
|
sub_0200FA34: ; 0x0200FA34
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r1
|
|
cmp r2, #0
|
|
bne _0200FA8C
|
|
ldr r0, _0200FA94 ; =0x027F7900
|
|
mov r2, #0
|
|
bl sub_0302BEC4
|
|
cmp r0, #0
|
|
bne _0200FA8C
|
|
ldr r0, _0200FA98 ; =0x027F8878
|
|
ldr r0, [r0, #0x54c]
|
|
cmp r0, #0
|
|
beq _0200FA8C
|
|
bl sub_03036B70
|
|
ldrh r2, [r4]
|
|
mov r1, #8
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
_0200FA8C:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200FA94: .word 0x027F7900
|
|
_0200FA98: .word 0x027F8878
|
|
arm_func_end sub_0200FA34
|
|
|
|
arm_func_start sub_0200FA9C
|
|
sub_0200FA9C: ; 0x0200FA9C
|
|
ldr r1, _0200FAF8 ; =0x027F8878
|
|
ldrb r2, [r0]
|
|
ldr r3, [r1, #0x550]
|
|
ldrb r1, [r3, #0xe0]
|
|
cmp r2, r1
|
|
ldreqb r2, [r0, #1]
|
|
ldreqb r1, [r3, #0xe1]
|
|
cmpeq r2, r1
|
|
ldreqb r2, [r0, #2]
|
|
ldreqb r1, [r3, #0xe2]
|
|
cmpeq r2, r1
|
|
ldreqb r2, [r0, #3]
|
|
ldreqb r1, [r3, #0xe3]
|
|
cmpeq r2, r1
|
|
ldreqb r2, [r0, #4]
|
|
ldreqb r1, [r3, #0xe4]
|
|
cmpeq r2, r1
|
|
ldreqb r1, [r0, #5]
|
|
ldreqb r0, [r3, #0xe5]
|
|
cmpeq r1, r0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0200FAF8: .word 0x027F8878
|
|
arm_func_end sub_0200FA9C
|
|
|
|
arm_func_start sub_0200FAFC
|
|
sub_0200FAFC: ; 0x0200FAFC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, [r1, #8]
|
|
mov r2, r0
|
|
str r3, [r2, #4]
|
|
ldrh r0, [r1, #0xc]
|
|
strh r0, [r2, #8]
|
|
ldrh r0, [r1, #0x12]
|
|
cmp r0, #0
|
|
movne r3, #2
|
|
ldrh r0, [r1, #0xe]
|
|
moveq r3, #0
|
|
cmp r0, #0
|
|
movne ip, #1
|
|
ldrh r0, [r1, #0x14]
|
|
moveq ip, #0
|
|
cmp r0, #0
|
|
movne lr, #4
|
|
moveq lr, #0
|
|
orr r0, ip, r3
|
|
orr r0, lr, r0
|
|
strb r0, [r2, #0xb]
|
|
ldrh r3, [r1, #4]
|
|
mov r0, #1
|
|
strb r3, [r2, #0xa]
|
|
strh r0, [r2]
|
|
strb r0, [r2, #2]
|
|
mov r0, #0
|
|
strb r0, [r2, #3]
|
|
ldrh r0, [r1, #0x34]
|
|
strh r0, [r2, #0xc]
|
|
ldrh r0, [r1, #0x12]
|
|
cmp r0, #0
|
|
beq _0200FB90
|
|
ldrh r0, [r1, #0x36]
|
|
cmp r0, #8
|
|
movhs r0, #8
|
|
bhs _0200FB94
|
|
_0200FB90:
|
|
ldrh r0, [r1, #0x36]
|
|
_0200FB94:
|
|
strh r0, [r2, #0xe]
|
|
ldrb r3, [r2, #0xa]
|
|
cmp r3, #0
|
|
beq _0200FBB8
|
|
ldr r0, [r1]
|
|
add r3, r3, #1
|
|
add r1, r2, #0x10
|
|
bic r2, r3, #1
|
|
bl sub_0302D91C
|
|
_0200FBB8:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_0200FAFC
|
|
|
|
arm_func_start sub_0200FBC0
|
|
sub_0200FBC0: ; 0x0200FBC0
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _0200FD08 ; =0x027F8878
|
|
mov r5, r1
|
|
ldr r4, [r2, #0x550]
|
|
mov r6, r0
|
|
add r0, r4, #0xe0
|
|
add r1, r5, #0x10
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
mov r0, #7
|
|
strh r0, [r5, #0x16]
|
|
add r0, r4, #0x100
|
|
ldrh r1, [r0, #0xf4]
|
|
strh r1, [r5, #0x18]
|
|
ldrh r1, [r0, #0xec]
|
|
strh r1, [r5, #0x1e]
|
|
ldrh r1, [r4, #0xe6]
|
|
strh r1, [r5, #0x1c]
|
|
ldr r1, [r4, #0x198]
|
|
cmp r1, #0
|
|
bne _0200FC34
|
|
mov r0, #0
|
|
strh r0, [r5, #0x20]
|
|
add r1, r5, #0x24
|
|
mov r2, #0x50
|
|
strh r0, [r5, #0x22]
|
|
bl sub_0302D764
|
|
mov r0, #0
|
|
b _0200FC58
|
|
_0200FC34:
|
|
ldrh r1, [r0, #0x96]
|
|
add r0, r4, #0x19c
|
|
strh r1, [r5, #0x20]
|
|
ldrh r2, [r4, #0xc4]
|
|
add r1, r5, #0x24
|
|
strh r2, [r5, #0x22]
|
|
mov r2, #0x50
|
|
bl sub_0302D91C
|
|
mov r0, #1
|
|
_0200FC58:
|
|
strh r0, [r5, #0x9e]
|
|
mov r0, #1
|
|
strh r0, [r5, #0x74]
|
|
strh r0, [r5, #0x76]
|
|
ldrh r0, [r4, #0xe6]
|
|
add r1, r5, #0x7c
|
|
cmp r0, #1
|
|
moveq r0, #0
|
|
movne r0, #0x10
|
|
strh r0, [r5, #0x78]
|
|
mov r0, #0xa
|
|
strh r0, [r5, #0x7a]
|
|
cmp r6, #0x26
|
|
mov r0, #0
|
|
bne _0200FCA0
|
|
mov r2, #0x20
|
|
bl sub_0302D764
|
|
b _0200FCB8
|
|
_0200FCA0:
|
|
mov r2, #8
|
|
bl sub_0302D764
|
|
ldr r0, _0200FD0C ; =0x0000FFFF
|
|
add r1, r5, #0x84
|
|
mov r2, #0x18
|
|
bl sub_0302D764
|
|
_0200FCB8:
|
|
add r0, r4, #0x100
|
|
ldrh r1, [r0, #0xee]
|
|
mov r0, r5
|
|
strh r1, [r5, #0x9c]
|
|
bl sub_02011BF4
|
|
ldrh r4, [r0, #4]
|
|
cmp r4, #0
|
|
moveq r0, #1
|
|
beq _0200FD00
|
|
bl sub_03036B70
|
|
strh r6, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x200
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03036B24
|
|
mov r0, #0
|
|
_0200FD00:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200FD08: .word 0x027F8878
|
|
_0200FD0C: .word 0x0000FFFF
|
|
arm_func_end sub_0200FBC0
|
|
|
|
arm_func_start sub_0200FD10
|
|
sub_0200FD10: ; 0x0200FD10
|
|
ldr r1, _0200FD48 ; =0x027F8878
|
|
ldr r3, _0200FD4C ; =0x027F8DCC
|
|
ldr ip, [r1, #0x574]
|
|
ldr r2, _0200FD50 ; =0x027FFF98
|
|
strb r0, [r3, ip]
|
|
ldr r3, [r1, #0x574]
|
|
add r3, r3, #1
|
|
and r3, r3, #0x1f
|
|
str r3, [r1, #0x574]
|
|
ldrh r1, [r2]
|
|
eor r0, r0, r1, lsl #1
|
|
eor r0, r0, r0, lsr #16
|
|
strh r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200FD48: .word 0x027F8878
|
|
_0200FD4C: .word 0x027F8DCC
|
|
_0200FD50: .word 0x027FFF98
|
|
arm_func_end sub_0200FD10
|
|
|
|
arm_func_start sub_0200FD54
|
|
sub_0200FD54: ; 0x0200FD54
|
|
ldr r2, _0200FD84 ; =0x027F7878
|
|
mov r3, #0
|
|
_0200FD5C:
|
|
add r1, r2, r3
|
|
add r1, r1, #0x1000
|
|
add r3, r3, #1
|
|
strb r0, [r1, #0x554]
|
|
cmp r3, #0x20
|
|
blt _0200FD5C
|
|
ldr r0, _0200FD88 ; =0x027F8878
|
|
mov r1, #0
|
|
str r1, [r0, #0x574]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200FD84: .word 0x027F7878
|
|
_0200FD88: .word 0x027F8878
|
|
arm_func_end sub_0200FD54
|
|
|
|
arm_func_start sub_0200FD8C
|
|
sub_0200FD8C: ; 0x0200FD8C
|
|
ldr r1, _0200FDC0 ; =0x027F7878
|
|
mov r3, #0
|
|
mov r2, r3
|
|
_0200FD98:
|
|
add r0, r1, r2
|
|
add r0, r0, #0x1000
|
|
ldrb r0, [r0, #0x554]
|
|
add r2, r2, #1
|
|
cmp r2, #0x20
|
|
add r3, r3, r0
|
|
blt _0200FD98
|
|
ldr ip, _0200FDC4 ; =sub_027E05D8
|
|
mov r0, r3, lsr #5
|
|
bx ip
|
|
.align 2, 0
|
|
_0200FDC0: .word 0x027F7878
|
|
_0200FDC4: .word sub_027E05D8
|
|
arm_func_end sub_0200FD8C
|
|
|
|
arm_func_start sub_0200FDC8
|
|
sub_0200FDC8: ; 0x0200FDC8
|
|
ldr r1, _0200FE2C ; =0x027F8878
|
|
ldr r1, [r1, #0x54c]
|
|
ldrb r1, [r1, #0x53]
|
|
cmp r1, #8
|
|
bne _0200FE04
|
|
cmp r0, #0x16
|
|
movlo r0, #0
|
|
bxlo lr
|
|
cmp r0, #0x1c
|
|
movlo r0, #1
|
|
bxlo lr
|
|
cmp r0, #0x22
|
|
movlo r0, #2
|
|
movhs r0, #3
|
|
bx lr
|
|
_0200FE04:
|
|
cmp r0, #8
|
|
movlo r0, #0
|
|
bxlo lr
|
|
cmp r0, #0xe
|
|
movlo r0, #1
|
|
bxlo lr
|
|
cmp r0, #0x14
|
|
movlo r0, #2
|
|
movhs r0, #3
|
|
bx lr
|
|
.align 2, 0
|
|
_0200FE2C: .word 0x027F8878
|
|
arm_func_end sub_0200FDC8
|
|
|
|
arm_func_start sub_0200FE30
|
|
sub_0200FE30: ; 0x0200FE30
|
|
stmdb sp!, {r4, lr}
|
|
bl sub_0302D4F0
|
|
mov r4, r0
|
|
bl sub_0302BD48
|
|
ldr r1, _0200FE84 ; =0x027F8878
|
|
ldr r0, _0200FE88 ; =0x0380B2C0
|
|
ldr r1, [r1, #0x58c]
|
|
bl sub_0302BBB0
|
|
bl sub_020183A0
|
|
ldr r1, _0200FE84 ; =0x027F8878
|
|
ldr r1, [r1, #0x588]
|
|
bl sub_0302BBB0
|
|
ldr r1, _0200FE84 ; =0x027F8878
|
|
ldr r0, _0200FE8C ; =0x0380B364
|
|
ldr r1, [r1, #0x584]
|
|
bl sub_0302BBB0
|
|
bl sub_0302BD80
|
|
mov r0, r4
|
|
bl sub_0302D504
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200FE84: .word 0x027F8878
|
|
_0200FE88: .word 0x0380B2C0
|
|
_0200FE8C: .word 0x0380B364
|
|
arm_func_end sub_0200FE30
|
|
|
|
arm_func_start sub_0200FE90
|
|
sub_0200FE90: ; 0x0200FE90
|
|
stmdb sp!, {r4, lr}
|
|
bl sub_0302D4F0
|
|
mov r4, r0
|
|
bl sub_0302BD48
|
|
ldr r1, _0200FEE4 ; =0x027F8878
|
|
ldr r0, _0200FEE8 ; =0x0380B364
|
|
ldr r1, [r1, #0x578]
|
|
bl sub_0302BBB0
|
|
bl sub_020183A0
|
|
ldr r1, _0200FEE4 ; =0x027F8878
|
|
ldr r1, [r1, #0x57c]
|
|
bl sub_0302BBB0
|
|
ldr r1, _0200FEE4 ; =0x027F8878
|
|
ldr r0, _0200FEEC ; =0x0380B2C0
|
|
ldr r1, [r1, #0x580]
|
|
bl sub_0302BBB0
|
|
bl sub_0302BD80
|
|
mov r0, r4
|
|
bl sub_0302D504
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200FEE4: .word 0x027F8878
|
|
_0200FEE8: .word 0x0380B364
|
|
_0200FEEC: .word 0x0380B2C0
|
|
arm_func_end sub_0200FE90
|
|
|
|
arm_func_start sub_0200FEF0
|
|
sub_0200FEF0: ; 0x0200FEF0
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, #0
|
|
bl sub_0302D4F0
|
|
ldr r1, _0200FF58 ; =0x027F8878
|
|
ldr r2, [r1, #0x54c]
|
|
cmp r2, #0
|
|
beq _0200FF48
|
|
mov r3, r4
|
|
b _0200FF40
|
|
_0200FF14:
|
|
add r1, r2, r3, lsl #4
|
|
ldr r1, [r1, #0xd0]
|
|
tst r1, #0x8000
|
|
beq _0200FF3C
|
|
add r2, r2, #0xd0
|
|
ldr r1, [r2, r3, lsl #4]
|
|
add r4, r2, r3, lsl #4
|
|
bic r1, r1, #0x8000
|
|
str r1, [r2, r3, lsl #4]
|
|
b _0200FF48
|
|
_0200FF3C:
|
|
add r3, r3, #1
|
|
_0200FF40:
|
|
cmp r3, #0x20
|
|
blt _0200FF14
|
|
_0200FF48:
|
|
bl sub_0302D504
|
|
mov r0, r4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0200FF58: .word 0x027F8878
|
|
arm_func_end sub_0200FEF0
|
|
|
|
arm_func_start sub_0200FF5C
|
|
sub_0200FF5C: ; 0x0200FF5C
|
|
ldr r0, _0200FF8C ; =0x027F8878
|
|
mov r1, #0
|
|
ldr r0, [r0, #0x550]
|
|
strh r1, [r0, #0x38]
|
|
strh r1, [r0, #0x3a]
|
|
strh r1, [r0, #0x30]
|
|
strh r1, [r0, #0x32]
|
|
strh r1, [r0, #0x3c]
|
|
strh r1, [r0, #0x3e]
|
|
strh r1, [r0, #0x34]
|
|
strh r1, [r0, #0x36]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200FF8C: .word 0x027F8878
|
|
arm_func_end sub_0200FF5C
|
|
|
|
arm_func_start sub_0200FF90
|
|
sub_0200FF90: ; 0x0200FF90
|
|
ldr r1, _0200FFDC ; =0x027F8878
|
|
cmp r0, #0x200
|
|
ldr r2, [r1, #0x550]
|
|
movhi r0, #0x200
|
|
strh r0, [r2, #0x30]
|
|
strh r0, [r2, #0x34]
|
|
add r1, r2, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
add r0, r0, #4
|
|
cmp r1, #0
|
|
moveq r0, r0, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
streqh r0, [r2, #0x3c]
|
|
streqh r0, [r2, #0x38]
|
|
movne r0, r0, lsl #0x10
|
|
movne r0, r0, lsr #0x10
|
|
strneh r0, [r2, #0x3e]
|
|
strneh r0, [r2, #0x3a]
|
|
bx lr
|
|
.align 2, 0
|
|
_0200FFDC: .word 0x027F8878
|
|
arm_func_end sub_0200FF90
|
|
|
|
arm_func_start sub_0200FFE0
|
|
sub_0200FFE0: ; 0x0200FFE0
|
|
ldr r1, _0201002C ; =0x027F8878
|
|
cmp r0, #0x200
|
|
ldr r2, [r1, #0x550]
|
|
movhi r0, #0x200
|
|
strh r0, [r2, #0x36]
|
|
strh r0, [r2, #0x32]
|
|
add r1, r2, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
add r0, r0, #2
|
|
cmp r1, #0
|
|
moveq r0, r0, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
streqh r0, [r2, #0x3e]
|
|
streqh r0, [r2, #0x3a]
|
|
movne r0, r0, lsl #0x10
|
|
movne r0, r0, lsr #0x10
|
|
strneh r0, [r2, #0x3c]
|
|
strneh r0, [r2, #0x38]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201002C: .word 0x027F8878
|
|
arm_func_end sub_0200FFE0
|
|
|
|
arm_func_start sub_02010030
|
|
sub_02010030: ; 0x02010030
|
|
ldr r1, _02010058 ; =0x027F8878
|
|
ldr r2, [r1, #0x550]
|
|
strh r0, [r2, #0x30]
|
|
add r1, r2, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
add r0, r0, #4
|
|
cmp r1, #0
|
|
streqh r0, [r2, #0x38]
|
|
strneh r0, [r2, #0x3a]
|
|
bx lr
|
|
.align 2, 0
|
|
_02010058: .word 0x027F8878
|
|
arm_func_end sub_02010030
|
|
|
|
arm_func_start sub_0201005C
|
|
sub_0201005C: ; 0x0201005C
|
|
ldr r1, _02010084 ; =0x027F8878
|
|
ldr r2, [r1, #0x550]
|
|
strh r0, [r2, #0x32]
|
|
add r1, r2, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
add r0, r0, #2
|
|
cmp r1, #0
|
|
streqh r0, [r2, #0x3a]
|
|
strneh r0, [r2, #0x38]
|
|
bx lr
|
|
.align 2, 0
|
|
_02010084: .word 0x027F8878
|
|
arm_func_end sub_0201005C
|
|
|
|
arm_func_start sub_02010088
|
|
sub_02010088: ; 0x02010088
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x20
|
|
_02010090:
|
|
ldr r0, _02010EE0 ; =0x027F7878
|
|
add r1, sp, #0x1c
|
|
add r0, r0, #0x28
|
|
mov r2, #1
|
|
bl sub_0302BF50
|
|
ldr sb, [sp, #0x1c]
|
|
cmp sb, #0
|
|
bne _020100B8
|
|
bl sub_0302B94C
|
|
b _020111E0
|
|
_020100B8:
|
|
ldrh r1, [sb, #0xc]
|
|
and r0, r1, #0xff00
|
|
mov r0, r0, lsl #0x10
|
|
movs r0, r0, lsr #0x10
|
|
and r1, r1, #0xff
|
|
cmpne r0, #0x100
|
|
bne _020111C8
|
|
tst r1, #0x80
|
|
beq _020111C8
|
|
ldr r0, _02010EE4 ; =0x027F8878
|
|
ldr r1, [r0, #0x54c]
|
|
cmp r1, #0
|
|
ldrne r8, [r0, #0x550]
|
|
ldrneh r3, [r8]
|
|
cmpne r3, #1
|
|
beq _02010090
|
|
ldrh r2, [sb, #0xc]
|
|
ldr r1, _02010EE8 ; =0x00000182
|
|
cmp r2, r1
|
|
bgt _02010154
|
|
bge _0201080C
|
|
cmp r2, #0x8d
|
|
bgt _02010148
|
|
subs r0, r2, #0x84
|
|
addpl pc, pc, r0, lsl #2
|
|
b _020111BC
|
|
_02010120: ; jump table
|
|
b _02010180 ; case 0
|
|
b _020101A4 ; case 1
|
|
b _02010430 ; case 2
|
|
b _02010594 ; case 3
|
|
b _020105B8 ; case 4
|
|
b _020111BC ; case 5
|
|
b _020111BC ; case 6
|
|
b _020105DC ; case 7
|
|
b _0201060C ; case 8
|
|
b _0201063C ; case 9
|
|
_02010148:
|
|
cmp r2, #0x180
|
|
beq _02010754
|
|
b _020111BC
|
|
_02010154:
|
|
add r0, r1, #3
|
|
cmp r2, r0
|
|
bgt _02010170
|
|
bge _02010E60
|
|
cmp r2, #0x184
|
|
beq _02010B08
|
|
b _020111BC
|
|
_02010170:
|
|
add r0, r1, #4
|
|
cmp r2, r0
|
|
beq _020110C4
|
|
b _020111BC
|
|
_02010180:
|
|
bl sub_03036B70
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x13
|
|
strh r1, [r0, #4]
|
|
bl sub_03036B24
|
|
b _020111BC
|
|
_020101A4:
|
|
cmp r3, #7
|
|
cmpne r3, #9
|
|
bne _0201032C
|
|
add r1, sp, #0x14
|
|
add r0, sb, #0x10
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
mov r6, #0
|
|
mov r5, r6
|
|
add r4, r8, #0x100
|
|
mov sl, #1
|
|
b _020102A4
|
|
_020101D4:
|
|
bl sub_0302D4F0
|
|
ldrh r2, [r4, #0x82]
|
|
add r1, r5, #1
|
|
mov r7, r0
|
|
tst r2, sl, lsl r1
|
|
beq _02010298
|
|
mov r0, #6
|
|
mul r2, r5, r0
|
|
add r0, r8, r2
|
|
ldrb fp, [sp, #0x14]
|
|
ldrb r3, [r0, #0x128]
|
|
cmp fp, r3
|
|
ldreqb fp, [sp, #0x15]
|
|
ldreqb r3, [r0, #0x129]
|
|
cmpeq fp, r3
|
|
ldreqb fp, [sp, #0x16]
|
|
ldreqb r3, [r0, #0x12a]
|
|
cmpeq fp, r3
|
|
ldreqb fp, [sp, #0x17]
|
|
ldreqb r3, [r0, #0x12b]
|
|
cmpeq fp, r3
|
|
ldreqb fp, [sp, #0x18]
|
|
ldreqb r3, [r0, #0x12c]
|
|
cmpeq fp, r3
|
|
ldreqb r3, [sp, #0x19]
|
|
ldreqb r0, [r0, #0x12d]
|
|
cmpeq r3, r0
|
|
bne _02010298
|
|
add r3, r8, #0x100
|
|
mov r0, r1, lsl #0x10
|
|
mov r6, r0, lsr #0x10
|
|
ldrh r0, [r3, #0x82]
|
|
mvn r1, sl, lsl r6
|
|
and r0, r0, r1
|
|
strh r0, [r3, #0x82]
|
|
ldrh r0, [r8, #0x86]
|
|
add r3, r8, r6, lsl #3
|
|
and r1, r0, r1
|
|
add r0, r8, #0x128
|
|
strh r1, [r8, #0x86]
|
|
mov r1, #0
|
|
str r1, [r3, #0x738]
|
|
add r0, r0, r2
|
|
mov r2, #6
|
|
str r1, [r3, #0x73c]
|
|
bl sub_0302D860
|
|
mov r0, r7
|
|
bl sub_0302D504
|
|
b _020102AC
|
|
_02010298:
|
|
mov r0, r7
|
|
bl sub_0302D504
|
|
add r5, r5, #1
|
|
_020102A4:
|
|
cmp r5, #0xf
|
|
blt _020101D4
|
|
_020102AC:
|
|
cmp r6, #0
|
|
beq _020111BC
|
|
bl sub_03036B70
|
|
mov r4, r0
|
|
mov r0, #8
|
|
strh r0, [r4]
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
mov r0, #9
|
|
strh r0, [r4, #8]
|
|
ldrh r1, [sb, #0x16]
|
|
add r0, sb, #0x10
|
|
strh r1, [r4, #0x12]
|
|
strh r6, [r4, #0x10]
|
|
add r1, r4, #0xa
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
ldrh r1, [r8, #0x30]
|
|
mov r0, r4
|
|
strh r1, [r4, #0x2c]
|
|
ldrh r1, [r8, #0x32]
|
|
strh r1, [r4, #0x2e]
|
|
bl sub_03036B24
|
|
ldr r0, [r8, #0xc]
|
|
cmp r0, #1
|
|
bne _020111BC
|
|
mov r0, #1
|
|
mov r0, r0, lsl r6
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0201700C
|
|
b _020111BC
|
|
_0201032C:
|
|
mov r5, #0
|
|
bl sub_0302D4F0
|
|
add r1, r8, #0x100
|
|
ldrh r1, [r1, #0x82]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
bne _02010350
|
|
bl sub_0302D504
|
|
b _020111BC
|
|
_02010350:
|
|
ldr r0, [r8, #0xc]
|
|
cmp r0, #1
|
|
bne _02010370
|
|
mov r0, r5
|
|
str r0, [r8, #0xc]
|
|
mov r5, #1
|
|
bl sub_0201537C
|
|
bl sub_0200FE30
|
|
_02010370:
|
|
add r0, r8, #0x100
|
|
mov r1, #0
|
|
strh r1, [r0, #0x82]
|
|
strh r1, [r8, #0x86]
|
|
str r1, [r8, #0x14]
|
|
str r1, [r8, #0x10]
|
|
str r1, [r8, #0x1c]
|
|
str r1, [r8, #0x198]
|
|
strh r1, [r0, #0x96]
|
|
add r0, r8, #0x19c
|
|
mov r2, #0x50
|
|
bl sub_0302D860
|
|
bl sub_0200FF5C
|
|
mov r0, #0
|
|
strh r0, [r8, #0xc2]
|
|
mov r1, #3
|
|
mov r0, r4
|
|
strh r1, [r8]
|
|
bl sub_0302D504
|
|
bl sub_03036B70
|
|
mov r4, r0
|
|
mov r0, #0xc
|
|
strh r0, [r4]
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
mov r0, #9
|
|
strh r0, [r4, #8]
|
|
ldrh r1, [sb, #0x16]
|
|
add r0, r8, #0x100
|
|
strh r1, [r4, #0xc]
|
|
ldrh r1, [r0, #0x88]
|
|
add r0, r8, #0x8a
|
|
strh r1, [r4, #0xa]
|
|
add r0, r0, #0x100
|
|
add r1, r4, #0x10
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
ldrh r1, [r8, #0x30]
|
|
mov r0, r4
|
|
strh r1, [r4, #0x16]
|
|
ldrh r1, [r8, #0x32]
|
|
strh r1, [r4, #0x18]
|
|
bl sub_03036B24
|
|
cmp r5, #0
|
|
beq _020111BC
|
|
mov r0, #1
|
|
bl sub_0201700C
|
|
b _020111BC
|
|
_02010430:
|
|
ldrh r5, [sb, #0x16]
|
|
cmp r5, #0
|
|
beq _020111BC
|
|
cmp r5, #0x10
|
|
bhs _020111BC
|
|
ldrh r0, [r8, #0xf6]
|
|
cmp r0, #0
|
|
bne _020104BC
|
|
bl sub_0200FEF0
|
|
movs r4, r0
|
|
moveq r0, #0
|
|
beq _02010488
|
|
mov r3, #0x22
|
|
add r0, sb, #0x10
|
|
add r1, r4, #4
|
|
mov r2, #6
|
|
str r3, [r4]
|
|
bl sub_0302D91C
|
|
ldr r0, _02010EEC ; =0x027F7900
|
|
mov r1, r4
|
|
mov r2, #0
|
|
bl sub_0302BEC4
|
|
_02010488:
|
|
cmp r0, #0
|
|
bne _020111BC
|
|
bl sub_03036B70
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x22
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
b _020111BC
|
|
_020104BC:
|
|
bl sub_0302D4F0
|
|
add r1, r8, #0x100
|
|
mov r4, #1
|
|
ldrh r3, [r1, #0x82]
|
|
mvn r2, r4, lsl r5
|
|
orr r3, r3, r4, lsl r5
|
|
strh r3, [r1, #0x82]
|
|
ldrh r1, [r8, #0x86]
|
|
mov r4, r0
|
|
and r0, r1, r2
|
|
strh r0, [r8, #0x86]
|
|
bl sub_0302CA0C
|
|
orr r2, r0, #1
|
|
add r0, r8, r5, lsl #3
|
|
add r3, r8, #0x128
|
|
str r2, [r0, #0x738]
|
|
orr r1, r1, #0
|
|
str r1, [r0, #0x73c]
|
|
sub r0, r5, #1
|
|
mov r2, #6
|
|
mla r1, r0, r2, r3
|
|
add r0, sb, #0x10
|
|
bl sub_0302D91C
|
|
mov r0, r4
|
|
bl sub_0302D504
|
|
mov r0, #1
|
|
add r1, r8, #0x1f8
|
|
add r1, r1, r5, lsl #4
|
|
mov r2, #0x10
|
|
bl sub_0302D764
|
|
bl sub_03036B70
|
|
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, sb, #0x10
|
|
add r1, r4, #0xa
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
strh r5, [r4, #0x10]
|
|
add r0, sb, #0x22
|
|
add r1, r4, #0x14
|
|
mov r2, #0x18
|
|
bl sub_0302D78C
|
|
ldrh r1, [r8, #0x30]
|
|
mov r0, r4
|
|
strh r1, [r4, #0x2c]
|
|
ldrh r1, [r8, #0x32]
|
|
strh r1, [r4, #0x2e]
|
|
bl sub_03036B24
|
|
b _020111BC
|
|
_02010594:
|
|
bl sub_03036B70
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x12
|
|
strh r1, [r0, #4]
|
|
bl sub_03036B24
|
|
b _020111BC
|
|
_020105B8:
|
|
bl sub_03036B70
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x11
|
|
strh r1, [r0, #4]
|
|
bl sub_03036B24
|
|
b _020111BC
|
|
_020105DC:
|
|
ldrh r0, [r8, #0xc2]
|
|
cmp r0, #0
|
|
beq _020111BC
|
|
bl sub_03036B70
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #8
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
b _020111BC
|
|
_0201060C:
|
|
ldrh r0, [r8, #0xc2]
|
|
cmp r0, #0
|
|
beq _020111BC
|
|
bl sub_03036B70
|
|
mov r1, #8
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #2
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
b _020111BC
|
|
_0201063C:
|
|
ldrb r0, [sb, #0x1f]
|
|
bl sub_02011230
|
|
ldr r2, _02010EF0 ; =0x027FFF98
|
|
ldrh r1, [r2]
|
|
eor r0, r0, r1, lsl #1
|
|
eor r0, r0, r0, lsr #16
|
|
strh r0, [r2]
|
|
ldrh r0, [r8]
|
|
cmp r0, #8
|
|
cmpne r0, #0xa
|
|
bne _020111BC
|
|
ldrh r1, [r8, #0xba]
|
|
ldrh r0, [sb, #0x44]
|
|
cmp r1, r0
|
|
beq _020106E0
|
|
bl sub_0200FEF0
|
|
movs r1, r0
|
|
moveq r0, #0
|
|
beq _020106AC
|
|
mov r0, #0x25
|
|
str r0, [r1]
|
|
mov r0, #1
|
|
ldr r3, _02010EF4 ; =0x00008002
|
|
str r0, [r1, #4]
|
|
ldr r0, _02010EEC ; =0x027F7900
|
|
mov r2, #0
|
|
str r3, [r1, #8]
|
|
bl sub_0302BEC4
|
|
_020106AC:
|
|
cmp r0, #0
|
|
bne _020111BC
|
|
bl sub_03036B70
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x25
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
b _020111BC
|
|
_020106E0:
|
|
ldr r0, _02010EE4 ; =0x027F8878
|
|
ldr r0, [r0, #0x550]
|
|
ldrh r0, [r0, #0xc2]
|
|
cmp r0, #0
|
|
beq _020111BC
|
|
bl sub_03036B70
|
|
mov r4, r0
|
|
mov r0, #0x80
|
|
strh r0, [r4]
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x10
|
|
strh r0, [r4, #4]
|
|
ldrh r0, [sb, #0x44]
|
|
strh r0, [r4, #6]
|
|
ldrh r0, [r8]
|
|
strh r0, [r4, #8]
|
|
ldrh r0, [sb, #0x16]
|
|
strh r0, [r4, #0xa]
|
|
cmp r0, #0x80
|
|
bhi _02010748
|
|
add r2, r0, #1
|
|
add r0, sb, #0x3c
|
|
add r1, r4, #0xc
|
|
bic r2, r2, #1
|
|
bl sub_0302D78C
|
|
_02010748:
|
|
mov r0, r4
|
|
bl sub_03036B24
|
|
b _020111BC
|
|
_02010754:
|
|
ldr r0, [r8, #0x10]
|
|
cmp r0, #0
|
|
beq _020111BC
|
|
ldrb r0, [sb, #0x1f]
|
|
bl sub_02011230
|
|
bl sub_0200FD10
|
|
bl sub_0200FD8C
|
|
strh r0, [r8, #0xbc]
|
|
add r0, sb, #0x2e
|
|
bl sub_0200FA9C
|
|
cmp r0, #1
|
|
beq _020111BC
|
|
ldrh r1, [sb, #0x16]
|
|
ldr r0, _02010EF8 ; =0x000005E4
|
|
cmp r1, r0
|
|
bhi _020111BC
|
|
ldrh r1, [r8, #0xae]
|
|
add r0, sb, #0x10
|
|
eor r1, r1, #1
|
|
strh r1, [r8, #0xae]
|
|
ldrh r2, [r8, #0xae]
|
|
ldrh r1, [sb, #0x16]
|
|
add r2, r8, r2, lsl #2
|
|
ldr r4, [r2, #0xb0]
|
|
add r2, r1, #0x2d
|
|
mov r1, r4
|
|
bic r2, r2, #1
|
|
bl sub_0302D91C
|
|
add r0, sb, #0x28
|
|
add r1, r4, #0x18
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
add r0, sb, #0x2e
|
|
add r1, r4, #0x1e
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
bl sub_03036B70
|
|
mov r1, #0x11
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xf
|
|
strh r1, [r0, #4]
|
|
str r4, [r0, #8]
|
|
bl sub_03036B24
|
|
b _020111BC
|
|
_0201080C:
|
|
ldrb r0, [sb, #0x1f]
|
|
bl sub_02011230
|
|
ldrh r1, [r8, #0xbe]
|
|
cmp r1, r0
|
|
strhih r0, [r8, #0xbe]
|
|
ldr r0, [r8, #0xc]
|
|
cmp r0, #0
|
|
beq _020111BC
|
|
ldrh r0, [r8, #0x60]
|
|
cmp r0, #1
|
|
moveq r0, #0
|
|
streqh r0, [r8, #0x60]
|
|
ldrh r0, [r8, #0x70]
|
|
ldrh sl, [r8, #0x8e]
|
|
eor r0, r0, #1
|
|
strh r0, [r8, #0x70]
|
|
ldrh r0, [r8, #0x70]
|
|
ldrh r1, [sb, #0x16]
|
|
add r3, r8, r0, lsl #2
|
|
ldrh r0, [r8, #0x72]
|
|
add r2, r1, #0x30
|
|
ldr r4, [r3, #0x74]
|
|
cmp r0, r2
|
|
movlo r2, r0
|
|
mov r1, r4
|
|
add r0, sb, #0x10
|
|
bl sub_0302D91C
|
|
bl sub_0302D4F0
|
|
ldrh r1, [r8, #0x84]
|
|
mov fp, r0
|
|
cmp r1, #1
|
|
mov r5, #0
|
|
bne _0201089C
|
|
ldr r0, _02010EFC ; =0x0380B408
|
|
mov r5, #1
|
|
bl sub_0302CDB0
|
|
_0201089C:
|
|
mov r7, #1
|
|
strh r7, [r8, #0x84]
|
|
ldrh r0, [r4, #0xa]
|
|
mov ip, #0
|
|
strh r0, [r8, #0x82]
|
|
ldrh r6, [sb, #0x18]
|
|
ldr r0, _02010F00 ; =0x000082EA
|
|
tst r6, #0x2000
|
|
moveq r7, #0
|
|
strh r7, [r8, #0x90]
|
|
str ip, [sp]
|
|
ldrh r2, [r4, #0xa]
|
|
ldrh r1, [r4, #0xc]
|
|
sub r1, r2, r1
|
|
mov r1, r1, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
add r1, r1, #0x80
|
|
mov r1, r1, lsl #4
|
|
umull r3, r2, r1, r0
|
|
mla r2, r1, ip, r2
|
|
mov r1, r1, asr #0x1f
|
|
mla r2, r1, r0, r2
|
|
mov r0, r3, lsr #6
|
|
orr r0, r0, r2, lsl #26
|
|
mov r3, r2, lsr #6
|
|
mov r1, r0, lsr #0xa
|
|
ldr r0, _02010EFC ; =0x0380B408
|
|
mov r2, r3, lsr #0xa
|
|
orr r1, r1, r3, lsl #22
|
|
ldr r3, _02010F04 ; =0x027E1B68
|
|
bl sub_0302CCCC
|
|
and r0, r6, #0x2800
|
|
cmp r0, #0x2800
|
|
moveq r1, #1
|
|
and r0, r6, #0x6000
|
|
movne r1, #0
|
|
cmp r0, #0x6000
|
|
moveq r2, #1
|
|
movne r2, #0
|
|
cmp r2, #0
|
|
movne r0, #0
|
|
strneh r0, [r8, #0x8a]
|
|
cmp r1, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
strh r0, [r8, #0x8e]
|
|
cmp r2, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
strh r0, [r8, #0x8c]
|
|
cmp r7, #0
|
|
beq _020109A8
|
|
ldrh r0, [r4, #0x2c]
|
|
sub r1, r0, #0x66
|
|
mov r0, r1, asr #1
|
|
add r0, r1, r0, lsr #30
|
|
mov r0, r0, asr #2
|
|
subs r1, r0, #0x20
|
|
bmi _020109A8
|
|
ldrh r0, [r8, #0x32]
|
|
cmp r1, #0x200
|
|
movgt r1, #0x200
|
|
cmp r1, r0
|
|
beq _020109A8
|
|
mov r0, r1, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0201005C
|
|
_020109A8:
|
|
mov r0, fp
|
|
bl sub_0302D504
|
|
cmp r5, #0
|
|
beq _020109F4
|
|
cmp sl, #1
|
|
bne _020109CC
|
|
mov r0, r5
|
|
mov r1, #0
|
|
bl sub_02016CDC
|
|
_020109CC:
|
|
bl sub_03036B70
|
|
mov r1, #0xe
|
|
strh r1, [r0]
|
|
mov r1, #9
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xd
|
|
strh r1, [r0, #4]
|
|
mov r1, #0
|
|
str r1, [r0, #8]
|
|
bl sub_03036B24
|
|
_020109F4:
|
|
cmp r7, #0
|
|
bne _02010A20
|
|
ldrh r0, [r4, #6]
|
|
cmp r0, #2
|
|
blo _020111BC
|
|
ldrh r0, [r4, #0x30]
|
|
tst r0, #0x8000
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
strh r0, [r8, #0x5e]
|
|
b _020111BC
|
|
_02010A20:
|
|
add r0, sb, #0x28
|
|
add r1, r4, #0x18
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
add r0, sb, #0x2e
|
|
add r1, r4, #0x1e
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
ldrh r0, [r4, #6]
|
|
cmp r0, #2
|
|
blo _02010AB0
|
|
sub r0, r0, #2
|
|
strh r0, [r4, #6]
|
|
ldrh r0, [r4, #0x30]
|
|
tst r0, #0x8000
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
strh r0, [r8, #0x5e]
|
|
bl sub_03036B70
|
|
mov r1, #0xe
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xc
|
|
strh r1, [r0, #4]
|
|
str r4, [r0, #8]
|
|
bl sub_03036B24
|
|
ldrh r3, [r4, #6]
|
|
cmp r3, #0
|
|
beq _02010ADC
|
|
str r4, [sp]
|
|
ldrh r1, [r4, #0x30]
|
|
add r2, r4, #0x32
|
|
mov r0, #0
|
|
bl sub_02017200
|
|
b _02010ADC
|
|
_02010AB0:
|
|
mov r0, #0
|
|
strh r0, [r4, #6]
|
|
strh r0, [r8, #0x5e]
|
|
bl sub_03036B70
|
|
mov r1, #0xe
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xc
|
|
strh r1, [r0, #4]
|
|
str r4, [r0, #8]
|
|
bl sub_03036B24
|
|
_02010ADC:
|
|
ldr r0, [r8, #0x7bc]
|
|
ldr r1, [r8, #0x7b8]
|
|
cmp r0, #0
|
|
cmpeq r1, #0
|
|
beq _020111BC
|
|
bl sub_0302CA0C
|
|
orr r0, r0, #1
|
|
str r0, [r8, #0x738]
|
|
orr r0, r1, #0
|
|
str r0, [r8, #0x73c]
|
|
b _020111BC
|
|
_02010B08:
|
|
ldr r0, [r8, #0xc]
|
|
mov fp, #0
|
|
cmp r0, #0
|
|
beq _020111BC
|
|
ldrh r0, [sb, #0x12]
|
|
cmp r0, #0
|
|
bne _02010B3C
|
|
ldrh r1, [r8, #0x66]
|
|
cmp r1, #1
|
|
bne _02010B44
|
|
ldrh r0, [sb, #0x10]
|
|
cmp r0, #0
|
|
beq _02010B44
|
|
_02010B3C:
|
|
bl sub_02011244
|
|
b _020111BC
|
|
_02010B44:
|
|
cmp r1, #0
|
|
movne r0, #0
|
|
strneh r0, [r8, #0x66]
|
|
ldrh r1, [sb, #0x16]
|
|
ldrh r0, [sb, #0x14]
|
|
ldrh r3, [r8, #0x70]
|
|
mul r2, r1, r0
|
|
add r1, r8, r3, lsl #2
|
|
ldr r4, [r1, #0x74]
|
|
ldrh r0, [r8, #0x72]
|
|
add r2, r2, #0xa
|
|
cmp r0, r2
|
|
movlo r2, r0
|
|
mov r1, r4
|
|
add r0, sb, #0x10
|
|
bl sub_0302D91C
|
|
ldr r0, _02010EE4 ; =0x027F8878
|
|
ldrh r1, [r4]
|
|
ldr r7, [r0, #0x550]
|
|
cmp r1, #0
|
|
ldrh r5, [r7, #0xbe]
|
|
bne _02010BE0
|
|
ldrh r0, [sb, #0x14]
|
|
cmp r0, #1
|
|
blo _02010BE0
|
|
add sl, sb, #0x1a
|
|
mov r6, #0
|
|
b _02010BD0
|
|
_02010BB4:
|
|
ldrh r1, [sb, #0x16]
|
|
mla r0, r1, r6, sl
|
|
ldrb r0, [r0, #3]
|
|
bl sub_02011230
|
|
cmp r0, r5
|
|
movlo r5, r0
|
|
add r6, r6, #1
|
|
_02010BD0:
|
|
ldrh r0, [sb, #0x14]
|
|
cmp r6, r0
|
|
blt _02010BB4
|
|
strh r5, [r7, #0xbe]
|
|
_02010BE0:
|
|
bl sub_0302CA0C
|
|
orr r0, r0, #1
|
|
str r0, [sp, #8]
|
|
ldr r0, _02010F08 ; =0x00008001
|
|
orr r1, r1, #0
|
|
rsb r0, r0, #0x18000
|
|
ldrh r6, [r4]
|
|
str r1, [sp, #0xc]
|
|
add r5, r4, #0xa
|
|
mov sl, #0
|
|
str r0, [sp, #0x10]
|
|
b _02010D78
|
|
_02010C10:
|
|
ldrh r7, [r5, #4]
|
|
ldrh r1, [r5]
|
|
cmp r7, #1
|
|
blo _02010D64
|
|
cmp r7, #0xf
|
|
bhi _02010D64
|
|
cmp r1, #2
|
|
blo _02010C8C
|
|
ldr r0, [sp, #0x10]
|
|
cmp r1, r0
|
|
beq _02010C8C
|
|
sub r0, r1, #2
|
|
mov r0, r0, lsl #0x10
|
|
movs r3, r0, lsr #0x10
|
|
strh r3, [r5]
|
|
ldrh r2, [r8, #0x86]
|
|
mov r1, #1
|
|
orr r1, r2, r1, lsl r7
|
|
strh r1, [r8, #0x86]
|
|
ldr r1, [sp, #8]
|
|
add r0, r8, r7, lsl #3
|
|
str r1, [r0, #0x738]
|
|
ldr r1, [sp, #0xc]
|
|
str r1, [r0, #0x73c]
|
|
beq _02010D64
|
|
mov r0, r7
|
|
str r4, [sp]
|
|
ldrh r1, [r5, #8]
|
|
add r2, r5, #0xa
|
|
bl sub_02017200
|
|
b _02010D64
|
|
_02010C8C:
|
|
cmp r1, #0
|
|
bne _02010D64
|
|
add r0, r8, r7, lsl #3
|
|
ldr r2, [r0, #0x738]
|
|
ldr r1, [r0, #0x73c]
|
|
mov r0, #1
|
|
mov r0, r0, lsl r7
|
|
str r0, [sp, #4]
|
|
mov r0, #1
|
|
orr r6, r6, r0, lsl r7
|
|
ldr ip, [r8, #0x7bc]
|
|
ldr r0, [r8, #0x7b8]
|
|
cmp ip, #0
|
|
mov r3, #0
|
|
cmpeq r0, #0
|
|
beq _02010D64
|
|
cmp r1, r3
|
|
cmpeq r2, r3
|
|
beq _02010D64
|
|
ldr r3, [sp, #8]
|
|
subs r3, r3, r2
|
|
ldr r2, [sp, #0xc]
|
|
sbc r1, r2, r1
|
|
cmp r1, ip
|
|
cmpeq r3, r0
|
|
bls _02010D64
|
|
bl sub_0200FEF0
|
|
movs r1, r0
|
|
add r2, r8, r7, lsl #3
|
|
mov r0, #0
|
|
str r0, [r2, #0x738]
|
|
str r0, [r2, #0x73c]
|
|
beq _02010D34
|
|
mov r0, #0x25
|
|
str r0, [r1]
|
|
ldr r0, [sp, #4]
|
|
mov r2, #0
|
|
str r0, [r1, #4]
|
|
ldr r0, _02010F08 ; =0x00008001
|
|
str r0, [r1, #8]
|
|
ldr r0, _02010EEC ; =0x027F7900
|
|
bl sub_0302BEC4
|
|
_02010D34:
|
|
cmp r0, #0
|
|
bne _02010D64
|
|
bl sub_03036B70
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x25
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
_02010D64:
|
|
add r0, sl, #1
|
|
mov r0, r0, lsl #0x10
|
|
mov sl, r0, lsr #0x10
|
|
ldrh r0, [r4, #6]
|
|
add r5, r5, r0
|
|
_02010D78:
|
|
ldrh r0, [r4, #4]
|
|
cmp sl, r0
|
|
blo _02010C10
|
|
mov r0, r6, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
mov r0, #0
|
|
bl sub_02016CDC
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
movne fp, #1
|
|
bl sub_03036B70
|
|
mov r1, #0xe
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xb
|
|
strh r1, [r0, #4]
|
|
str r4, [r0, #8]
|
|
bl sub_03036B24
|
|
ldrh r0, [r8, #0x70]
|
|
eor r0, r0, #1
|
|
strh r0, [r8, #0x70]
|
|
bl sub_0302D4F0
|
|
cmp fp, #0
|
|
ldreqsh r1, [r8, #0x62]
|
|
subeq r1, r1, #1
|
|
streqh r1, [r8, #0x62]
|
|
ldrsh r1, [r8, #0x64]
|
|
cmp r1, #0
|
|
subgt r1, r1, #1
|
|
strgth r1, [r8, #0x64]
|
|
ldrsh r1, [r8, #0x62]
|
|
cmp r1, #0
|
|
ldrgtsh r1, [r8, #0x64]
|
|
cmpgt r1, #0
|
|
movgt r4, #1
|
|
movle r4, #0
|
|
bl sub_0302D504
|
|
cmp r4, #0
|
|
beq _020111BC
|
|
cmp fp, #1
|
|
ldreqh r4, [sb, #0x10]
|
|
ldrh r0, [r8, #0x44]
|
|
ldrne r4, _02010F0C ; =0x0000FFFF
|
|
cmp r0, #0
|
|
beq _02010E54
|
|
ldr r0, _02010F10 ; =0x0380B434
|
|
bl sub_0302CDB0
|
|
str r4, [sp]
|
|
ldr r1, [r8, #0x48]
|
|
ldr r2, [r8, #0x4c]
|
|
ldr r0, _02010F10 ; =0x0380B434
|
|
ldr r3, _02010F14 ; =0x027E1AD4
|
|
bl sub_0302CCCC
|
|
b _020111BC
|
|
_02010E54:
|
|
mov r0, r4
|
|
bl sub_020112D8
|
|
b _020111BC
|
|
_02010E60:
|
|
ldr r0, [r8, #0xc]
|
|
mov r5, #0
|
|
cmp r0, #0
|
|
beq _020111BC
|
|
ldrh r0, [sb, #0xe]
|
|
cmp r0, #0
|
|
bne _02010EC0
|
|
ldr r1, _02010F18 ; =0x048080F8
|
|
mov r4, #1
|
|
ldrh r0, [r1]
|
|
ldrh r3, [r1, #2]
|
|
ldrh r2, [r1]
|
|
cmp r0, r2
|
|
ldrhih r3, [r1, #2]
|
|
mov r0, r2, asr #4
|
|
orr r0, r0, r3, lsl #12
|
|
ldrh r1, [r8, #0x82]
|
|
mov r0, r0, lsl #0x10
|
|
rsb r0, r1, r0, lsr #16
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, asr #0x10
|
|
cmp r0, #0
|
|
ble _020111BC
|
|
b _02010EC4
|
|
_02010EC0:
|
|
mov r4, r5
|
|
_02010EC4:
|
|
bl sub_0302D4F0
|
|
ldrh r1, [r8, #0x84]
|
|
mov r7, r0
|
|
cmp r1, #0
|
|
bne _02010F1C
|
|
bl sub_0302D504
|
|
b _020111BC
|
|
.align 2, 0
|
|
_02010EE0: .word 0x027F7878
|
|
_02010EE4: .word 0x027F8878
|
|
_02010EE8: .word 0x00000182
|
|
_02010EEC: .word 0x027F7900
|
|
_02010EF0: .word 0x027FFF98
|
|
_02010EF4: .word 0x00008002
|
|
_02010EF8: .word 0x000005E4
|
|
_02010EFC: .word 0x0380B408
|
|
_02010F00: .word 0x000082EA
|
|
_02010F04: .word 0x027E1B68
|
|
_02010F08: .word 0x00008001
|
|
_02010F0C: .word 0x0000FFFF
|
|
_02010F10: .word 0x0380B434
|
|
_02010F14: .word 0x027E1AD4
|
|
_02010F18: .word 0x048080F8
|
|
_02010F1C:
|
|
ldr r0, _02010EFC ; =0x0380B408
|
|
mov r1, #0
|
|
strh r1, [r8, #0x84]
|
|
ldrh r6, [r8, #0x90]
|
|
bl sub_0302CDB0
|
|
mov r0, r7
|
|
bl sub_0302D504
|
|
ldrh r3, [r8, #0x8c]
|
|
mov r2, #1
|
|
cmp r3, #0
|
|
beq _02010F68
|
|
cmp r4, #0
|
|
bne _02010F64
|
|
add r0, r8, #0x100
|
|
ldrh r1, [sb, #0x3e]
|
|
ldrh r0, [r0, #0x88]
|
|
tst r1, r2, lsl r0
|
|
bne _02010F68
|
|
_02010F64:
|
|
mov r2, #0
|
|
_02010F68:
|
|
cmp r3, #0
|
|
movne r0, #0
|
|
strneh r0, [r8, #0x8c]
|
|
ldrh r0, [r8, #0x8e]
|
|
cmp r0, #0
|
|
beq _02010FA4
|
|
mov r0, #0
|
|
strh r0, [r8, #0x8e]
|
|
cmp r2, #0
|
|
movne r0, #1
|
|
mov r1, r0, lsl #0x10
|
|
mov r0, r4
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_02016CDC
|
|
mov r5, r0
|
|
_02010FA4:
|
|
cmp r6, #0
|
|
beq _020111BC
|
|
bl sub_03036B70
|
|
mov r7, r0
|
|
mov r0, #0xe
|
|
strh r0, [r7]
|
|
cmp r4, #0
|
|
movne r0, #9
|
|
strneh r0, [r7, #2]
|
|
bne _02010FF0
|
|
add r0, r8, #0x100
|
|
ldrh r2, [sb, #0x3e]
|
|
ldrh r0, [r0, #0x88]
|
|
mov r1, #1
|
|
tst r2, r1, lsl r0
|
|
movne r0, #0xf
|
|
strneh r0, [r7, #2]
|
|
moveq r0, #0
|
|
streqh r0, [r7, #2]
|
|
_02010FF0:
|
|
mov r0, #0xd
|
|
strh r0, [r7, #4]
|
|
mov r0, #0
|
|
str r0, [r7, #8]
|
|
cmp r4, #0
|
|
bne _02011050
|
|
ldrh r1, [sb, #0x1c]
|
|
add r0, sb, #0x28
|
|
strh r1, [r7, #0xc]
|
|
ldrh r2, [sb, #0x1e]
|
|
add r1, r7, #0x10
|
|
strh r2, [r7, #0xe]
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
add r0, sb, #0x2e
|
|
add r1, r7, #0x16
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
ldrh r0, [sb, #0x3a]
|
|
strh r0, [r7, #0x1c]
|
|
ldrh r0, [sb, #0x3c]
|
|
strh r0, [r7, #0x1e]
|
|
ldrh r0, [sb, #0x3e]
|
|
strh r0, [r7, #0x20]
|
|
_02011050:
|
|
mov r0, r7
|
|
bl sub_03036B24
|
|
cmp r6, #0
|
|
beq _020111BC
|
|
cmp r5, #1
|
|
ldrneh r0, [r8, #0x5e]
|
|
cmpne r0, #0
|
|
bne _020110AC
|
|
ldrh r0, [r8, #0x46]
|
|
cmp r0, #0
|
|
beq _020110A4
|
|
ldr r0, _02010F10 ; =0x0380B434
|
|
bl sub_0302CDB0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r1, [r8, #0x50]
|
|
ldr r2, [r8, #0x54]
|
|
ldr r0, _02010F10 ; =0x0380B434
|
|
ldr r3, _020111EC ; =0x027E1C00
|
|
bl sub_0302CCCC
|
|
b _020111BC
|
|
_020110A4:
|
|
bl sub_020113FC
|
|
b _020111BC
|
|
_020110AC:
|
|
mov r1, #0
|
|
strh r1, [r8, #0x5e]
|
|
mov r0, #1
|
|
strh r0, [r8, #0x60]
|
|
strh r1, [r8, #0x88]
|
|
b _020111BC
|
|
_020110C4:
|
|
add r0, r8, #0x700
|
|
ldrh r0, [r0, #0xcc]
|
|
cmp r0, #1
|
|
ldreqh r0, [sb, #0x10]
|
|
cmpeq r0, #0x20
|
|
bne _02011138
|
|
bl sub_0302D4F0
|
|
mov r4, r0
|
|
ldr r0, _02010EFC ; =0x0380B408
|
|
bl sub_0302CDB0
|
|
mov r1, #0
|
|
mov r0, r4
|
|
strh r1, [r8, #0x84]
|
|
bl sub_0302D504
|
|
mov r1, #0
|
|
strh r1, [r8, #0x8a]
|
|
mov r0, #1
|
|
bl sub_02016CDC
|
|
bl sub_03036B70
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x17
|
|
strh r1, [r0, #4]
|
|
mov r1, #1
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
b _020111BC
|
|
_02011138:
|
|
bl sub_0200FEF0
|
|
movs r1, r0
|
|
moveq r0, #0
|
|
beq _0201118C
|
|
ldr r0, _020111F0 ; =0x00008003
|
|
mov r2, #0x25
|
|
str r2, [r1]
|
|
str r0, [r1, #8]
|
|
ldrh r0, [r8]
|
|
cmp r0, #9
|
|
cmpne r0, #7
|
|
ldreq r0, _020111F4 ; =0x00007FFE
|
|
streq r0, [r1, #4]
|
|
beq _02011180
|
|
cmp r0, #0xa
|
|
cmpne r0, #8
|
|
moveq r0, #1
|
|
streq r0, [r1, #4]
|
|
_02011180:
|
|
ldr r0, _02010EEC ; =0x027F7900
|
|
mov r2, #0
|
|
bl sub_0302BEC4
|
|
_0201118C:
|
|
cmp r0, #0
|
|
bne _020111BC
|
|
bl sub_03036B70
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x25
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
_020111BC:
|
|
mov r0, sb
|
|
bl sub_020111F8
|
|
b _02010090
|
|
_020111C8:
|
|
ldr r0, _02010EE0 ; =0x027F7878
|
|
mov r1, sb
|
|
add r0, r0, #0x58
|
|
mov r2, #1
|
|
bl sub_0302BEC4
|
|
b _02010090
|
|
_020111E0:
|
|
add sp, sp, #0x20
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020111EC: .word 0x027E1C00
|
|
_020111F0: .word 0x00008003
|
|
_020111F4: .word 0x00007FFE
|
|
arm_func_end sub_02010088
|
|
|
|
arm_func_start sub_020111F8
|
|
sub_020111F8: ; 0x020111F8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl sub_0302D4F0
|
|
ldr r1, _0201122C ; =0x027F8878
|
|
mov r4, r0
|
|
ldr r0, [r1, #0x544]
|
|
ldr r1, [r1, #0x548]
|
|
mov r2, r5
|
|
bl sub_0302C574
|
|
mov r0, r4
|
|
bl sub_0302D504
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201122C: .word 0x027F8878
|
|
arm_func_end sub_020111F8
|
|
|
|
arm_func_start sub_02011230
|
|
sub_02011230: ; 0x02011230
|
|
tst r0, #2
|
|
mov r0, r0, asr #2
|
|
addeq r0, r0, #0x19
|
|
and r0, r0, #0xff
|
|
bx lr
|
|
arm_func_end sub_02011230
|
|
|
|
arm_func_start sub_02011244
|
|
sub_02011244: ; 0x02011244
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _020112BC ; =0x027F8878
|
|
ldr r4, [r0, #0x550]
|
|
bl sub_0200FEF0
|
|
movs r1, r0
|
|
moveq r0, #0
|
|
beq _0201127C
|
|
mov r0, #0x2d
|
|
str r0, [r1]
|
|
ldrh r3, [r4, #0x68]
|
|
ldr r0, _020112C0 ; =0x027F7900
|
|
mov r2, #0
|
|
str r3, [r1, #4]
|
|
bl sub_0302BEC4
|
|
_0201127C:
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
strneh r0, [r4, #0x66]
|
|
bne _020112B4
|
|
bl sub_03036B70
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x2d
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
_020112B4:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020112BC: .word 0x027F8878
|
|
_020112C0: .word 0x027F7900
|
|
arm_func_end sub_02011244
|
|
|
|
arm_func_start sub_020112C4
|
|
sub_020112C4: ; 0x020112C4
|
|
ldr ip, _020112D4 ; =sub_027E1AE8
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bx ip
|
|
.align 2, 0
|
|
_020112D4: .word sub_027E1AE8
|
|
arm_func_end sub_020112C4
|
|
|
|
arm_func_start sub_020112D8
|
|
sub_020112D8: ; 0x020112D8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
bl sub_0200FEF0
|
|
movs r1, r0
|
|
ldr r4, _02011354 ; =0x027F7878
|
|
moveq r0, #0
|
|
beq _0201130C
|
|
mov r0, #0x2b
|
|
str r0, [r1]
|
|
add r0, r4, #0x88
|
|
mov r2, #0
|
|
str r5, [r1, #4]
|
|
bl sub_0302BEC4
|
|
_0201130C:
|
|
cmp r0, #0
|
|
bne _0201134C
|
|
add r0, r4, #0x1000
|
|
ldr r0, [r0, #0x54c]
|
|
cmp r0, #0
|
|
beq _0201134C
|
|
bl sub_03036B70
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x2b
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
_0201134C:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02011354: .word 0x027F7878
|
|
arm_func_end sub_020112D8
|
|
|
|
arm_func_start sub_02011358
|
|
sub_02011358: ; 0x02011358
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _020113E0 ; =0x027F8878
|
|
mov r2, #0x40
|
|
ldr r0, [r1, #0x544]
|
|
ldr r1, [r1, #0x548]
|
|
ldr r5, _020113E4 ; =0x027F7878
|
|
bl sub_0302C464
|
|
mov r4, r0
|
|
ldr r1, _020113E8 ; =0x00000185
|
|
ldr r0, _020113EC ; =0x027F78A0
|
|
strh r1, [r4, #0xc]
|
|
mov r2, #0
|
|
mov r1, r4
|
|
strh r2, [r4, #0xe]
|
|
bl sub_0302BEC4
|
|
cmp r0, #0
|
|
bne _020113D8
|
|
mov r0, r4
|
|
bl sub_020111F8
|
|
add r0, r5, #0x1000
|
|
ldr r0, [r0, #0x54c]
|
|
cmp r0, #0
|
|
beq _020113D8
|
|
bl sub_03036B70
|
|
mov r2, #0x80
|
|
strh r2, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
strh r2, [r0, #6]
|
|
bl sub_03036B24
|
|
_020113D8:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020113E0: .word 0x027F8878
|
|
_020113E4: .word 0x027F7878
|
|
_020113E8: .word 0x00000185
|
|
_020113EC: .word 0x027F78A0
|
|
arm_func_end sub_02011358
|
|
|
|
arm_func_start sub_020113F0
|
|
sub_020113F0: ; 0x020113F0
|
|
ldr ip, _020113F8 ; =sub_027E1C0C
|
|
bx ip
|
|
.align 2, 0
|
|
_020113F8: .word sub_027E1C0C
|
|
arm_func_end sub_020113F0
|
|
|
|
arm_func_start sub_020113FC
|
|
sub_020113FC: ; 0x020113FC
|
|
stmdb sp!, {r4, lr}
|
|
bl sub_0200FEF0
|
|
ldr r2, _02011484 ; =0x027F8878
|
|
movs r1, r0
|
|
ldr r0, [r2, #0x550]
|
|
mov r2, #0
|
|
strh r2, [r0, #0x5e]
|
|
strh r2, [r0, #0x60]
|
|
ldr r4, _02011488 ; =0x027F7878
|
|
strh r2, [r0, #0x88]
|
|
beq _0201143C
|
|
mov r3, #0x2c
|
|
add r0, r4, #0x88
|
|
str r3, [r1]
|
|
bl sub_0302BEC4
|
|
mov r2, r0
|
|
_0201143C:
|
|
cmp r2, #0
|
|
bne _0201147C
|
|
add r0, r4, #0x1000
|
|
ldr r0, [r0, #0x54c]
|
|
cmp r0, #0
|
|
beq _0201147C
|
|
bl sub_03036B70
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x2c
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
_0201147C:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02011484: .word 0x027F8878
|
|
_02011488: .word 0x027F7878
|
|
arm_func_end sub_020113FC
|
|
|
|
arm_func_start sub_0201148C
|
|
sub_0201148C: ; 0x0201148C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _020114A8 ; =0x0380B434
|
|
bl sub_0302CB90
|
|
ldr r0, _020114AC ; =0x0380B408
|
|
bl sub_0302CB90
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020114A8: .word 0x0380B434
|
|
_020114AC: .word 0x0380B408
|
|
arm_func_end sub_0201148C
|
|
|
|
arm_func_start sub_020114B0
|
|
sub_020114B0: ; 0x020114B0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r0, _02011548 ; =0x027F8878
|
|
mov r6, #1
|
|
ldr r8, _0201154C ; =0x027F7878
|
|
ldr sb, [r0, #0x550]
|
|
ldr r5, _02011550 ; =0x027F7184
|
|
add r7, sp, #0
|
|
mov r4, #0
|
|
mov fp, r6
|
|
_020114D4:
|
|
mov r1, r7
|
|
mov r2, fp
|
|
add r0, r8, #0x88
|
|
bl sub_0302BF50
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
bne _020114F8
|
|
bl sub_0302B94C
|
|
b _02011540
|
|
_020114F8:
|
|
ldrh sl, [r0]
|
|
tst sl, #0x8000
|
|
bicne r0, sl, #0x8000
|
|
movne r0, r0, lsl #0x10
|
|
movne sl, r0, lsr #0x10
|
|
cmp sl, #0x2e
|
|
bhs _02011530
|
|
str r6, [sb, #4]
|
|
strh sl, [sb, #2]
|
|
ldr r0, [sp]
|
|
ldr r1, [r5, sl, lsl #2]
|
|
mov lr, pc
|
|
bx r1
|
|
_0201152C:
|
|
str r4, [sb, #4]
|
|
_02011530:
|
|
ldr r0, [sp]
|
|
orr r1, sl, #0x8000
|
|
strh r1, [r0]
|
|
b _020114D4
|
|
_02011540:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02011548: .word 0x027F8878
|
|
_0201154C: .word 0x027F7878
|
|
_02011550: .word 0x027F7184
|
|
arm_func_end sub_020114B0
|
|
|
|
arm_func_start sub_02011554
|
|
sub_02011554: ; 0x02011554
|
|
bx lr
|
|
arm_func_end sub_02011554
|
|
|
|
arm_func_start sub_02011558
|
|
sub_02011558: ; 0x02011558
|
|
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, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02011558
|
|
|
|
arm_func_start sub_020115AC
|
|
sub_020115AC: ; 0x020115AC
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, #0
|
|
strh r4, [r0]
|
|
strh r4, [r0, #2]
|
|
strh r4, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
strh r4, [r0, #8]
|
|
strh r4, [r0, #0xa]
|
|
mov ip, #1
|
|
strh ip, [r0, #0xc]
|
|
mov r4, #3
|
|
strh r4, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
strh r2, [r0, #0x12]
|
|
strh r3, [r0, #0x14]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh ip, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_020115AC
|
|
|
|
arm_func_start sub_0201160C
|
|
sub_0201160C: ; 0x0201160C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
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, #0xa]
|
|
mov r5, #2
|
|
mov r7, r1
|
|
mov r0, r2
|
|
strh r5, [r4, #0xc]
|
|
mov r5, #0x1f
|
|
add r1, r4, #0x10
|
|
mov r2, #6
|
|
mov r6, r3
|
|
strh r5, [r4, #0xe]
|
|
bl sub_0302D78C
|
|
ldr r0, [sp, #0x18]
|
|
add r1, r4, #0x18
|
|
mov r2, #0x20
|
|
strh r6, [r4, #0x16]
|
|
bl sub_0302D78C
|
|
ldrh r2, [sp, #0x1c]
|
|
ldr r0, [sp, #0x20]
|
|
add r1, r4, #0x3a
|
|
strh r2, [r4, #0x38]
|
|
mov r2, #0x10
|
|
bl sub_0302D78C
|
|
ldrh r1, [sp, #0x24]
|
|
mov r0, r7, lsr #1
|
|
strh r1, [r4, #0x4a]
|
|
mov r1, #0
|
|
strh r1, [r4, #0x4c]
|
|
ldrh r2, [r4, #0xe]
|
|
ldrh r1, [r4, #0xc]
|
|
add r5, r4, r2, lsl #1
|
|
strh r1, [r5, #0x10]
|
|
sub r1, r0, #0x2c
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_0201160C
|
|
|
|
arm_func_start sub_020116C4
|
|
sub_020116C4: ; 0x020116C4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
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, #0xa]
|
|
mov r0, #3
|
|
strh r0, [r4, #0xc]
|
|
mov r0, #0x22
|
|
strh r0, [r4, #0xe]
|
|
strh r1, [r4, #0x10]
|
|
mov r0, r2
|
|
strh r3, [r4, #0x12]
|
|
add r1, r4, #0x14
|
|
mov r2, #0x44
|
|
bl sub_0302D78C
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #5
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_020116C4
|
|
|
|
arm_func_start sub_0201173C
|
|
sub_0201173C: ; 0x0201173C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
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, #0xa]
|
|
mov r0, #4
|
|
strh r0, [r4, #0xc]
|
|
mov r5, #5
|
|
mov r6, r2
|
|
mov r0, r1
|
|
strh r5, [r4, #0xe]
|
|
add r1, r4, #0x10
|
|
mov r2, #6
|
|
mov r5, r3
|
|
bl sub_0302D78C
|
|
strh r6, [r4, #0x16]
|
|
strh r5, [r4, #0x18]
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #6
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_0201173C
|
|
|
|
arm_func_start sub_020117BC
|
|
sub_020117BC: ; 0x020117BC
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
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, #0xa]
|
|
mov r0, #5
|
|
strh r0, [r4, #0xc]
|
|
mov r3, #4
|
|
mov r5, r2
|
|
mov r0, r1
|
|
strh r3, [r4, #0xe]
|
|
add r1, r4, #0x10
|
|
mov r2, #6
|
|
bl sub_0302D78C
|
|
strh r5, [r4, #0x16]
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #4
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_020117BC
|
|
|
|
arm_func_start sub_02011834
|
|
sub_02011834: ; 0x02011834
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
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]
|
|
mov r6, r2
|
|
strh r0, [r4, #0xa]
|
|
mov r2, #6
|
|
mov r0, r1
|
|
strh r2, [r4, #0xc]
|
|
mov r1, #5
|
|
strh r1, [r4, #0xe]
|
|
add r1, r4, #0x10
|
|
mov r5, r3
|
|
bl sub_0302D78C
|
|
strh r6, [r4, #0x16]
|
|
strh r5, [r4, #0x18]
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #3
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_02011834
|
|
|
|
arm_func_start sub_020118B0
|
|
sub_020118B0: ; 0x020118B0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
mov ip, #0
|
|
strh ip, [r4]
|
|
strh ip, [r4, #2]
|
|
strh ip, [r4, #4]
|
|
strh ip, [r4, #6]
|
|
ldrh r0, [sp, #0x20]
|
|
strh ip, [r4, #8]
|
|
add r0, r0, #1
|
|
add r0, r0, r0, lsr #31
|
|
mov r5, r0, asr #1
|
|
mov r0, r2
|
|
strh ip, [r4, #0xa]
|
|
mov r2, #9
|
|
strh r2, [r4, #0xc]
|
|
add r2, r5, #0x17
|
|
strh r2, [r4, #0xe]
|
|
strh r1, [r4, #0x10]
|
|
add r1, r4, #0x12
|
|
mov r2, #0x20
|
|
mov r5, r3
|
|
bl sub_0302D78C
|
|
ldrh r1, [sp, #0x10]
|
|
strh r5, [r4, #0x32]
|
|
ldrh r0, [sp, #0x14]
|
|
strh r1, [r4, #0x34]
|
|
ldrh r1, [sp, #0x18]
|
|
strh r0, [r4, #0x36]
|
|
ldrh r0, [sp, #0x1c]
|
|
strh r1, [r4, #0x38]
|
|
ldrh r2, [sp, #0x20]
|
|
strh r0, [r4, #0x3a]
|
|
ldr r0, [sp, #0x24]
|
|
strh r2, [r4, #0x3c]
|
|
add r1, r4, #0x3e
|
|
bl sub_0302D78C
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #1
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_020118B0
|
|
|
|
arm_func_start sub_02011970
|
|
sub_02011970: ; 0x02011970
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
mov r5, #0
|
|
strh r5, [r4]
|
|
strh r5, [r4, #2]
|
|
strh r5, [r4, #4]
|
|
strh r5, [r4, #6]
|
|
strh r5, [r4, #8]
|
|
strh r5, [r4, #0xa]
|
|
mov r0, #0xa
|
|
strh r0, [r4, #0xc]
|
|
mov r0, #0xc
|
|
strh r0, [r4, #0xe]
|
|
strh r5, [r4, #0x10]
|
|
strh r1, [r4, #0x12]
|
|
strh r2, [r4, #0x14]
|
|
ldr r0, [sp, #0x10]
|
|
strh r3, [r4, #0x16]
|
|
add r1, r4, #0x18
|
|
mov r2, #0x10
|
|
bl sub_0302D78C
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #0x12
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_02011970
|
|
|
|
arm_func_start sub_020119F0
|
|
sub_020119F0: ; 0x020119F0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
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, #0xa]
|
|
mov r5, r1
|
|
mov r0, #0x100
|
|
strh r0, [r4, #0xc]
|
|
mov r1, #0x18
|
|
mov r0, r5
|
|
strh r1, [r4, #0xe]
|
|
add r1, r4, #0x10
|
|
mov r2, #0x30
|
|
bl sub_0302D78C
|
|
mov r0, #0
|
|
strh r0, [r5, #2]
|
|
strh r0, [r5, #4]
|
|
strh r0, [r5, #8]
|
|
strh r0, [r5, #0xa]
|
|
strh r0, [r5, #0xc]
|
|
strh r0, [r5, #0x10]
|
|
strh r0, [r5, #0x12]
|
|
strh r0, [r5, #0x14]
|
|
strh r0, [r5, #0x16]
|
|
strh r0, [r5, #0x24]
|
|
strh r0, [r5, #0x26]
|
|
strh r0, [r5, #0x28]
|
|
strh r0, [r5, #0x2a]
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #2
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_020119F0
|
|
|
|
arm_func_start sub_02011A9C
|
|
sub_02011A9C: ; 0x02011A9C
|
|
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]
|
|
ldr r4, _02011B00 ; =0x00000101
|
|
strh ip, [r0, #0xa]
|
|
strh r4, [r0, #0xc]
|
|
mov r4, #4
|
|
strh r4, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
strh r2, [r0, #0x12]
|
|
str r3, [r0, #0x14]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
mov r1, #1
|
|
strh r1, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02011B00: .word 0x00000101
|
|
arm_func_end sub_02011A9C
|
|
|
|
arm_func_start sub_02011B04
|
|
sub_02011B04: ; 0x02011B04
|
|
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]
|
|
ldr r4, _02011B98 ; =0x00000102
|
|
strh ip, [r0, #0xa]
|
|
strh r4, [r0, #0xc]
|
|
mov r4, #0xa
|
|
strh r4, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
strh r2, [r0, #0x12]
|
|
ldrh r2, [sp, #8]
|
|
strh r3, [r0, #0x14]
|
|
ldrh r1, [sp, #0xc]
|
|
strh r2, [r0, #0x16]
|
|
ldrh r2, [sp, #0x10]
|
|
strh r1, [r0, #0x18]
|
|
ldrh r1, [sp, #0x14]
|
|
strh r2, [r0, #0x1a]
|
|
ldrh r2, [sp, #0x18]
|
|
strh r1, [r0, #0x1c]
|
|
ldr r1, [sp, #0x1c]
|
|
strh r2, [r0, #0x1e]
|
|
str r1, [r0, #0x20]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
mov r1, #1
|
|
strh r1, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02011B98: .word 0x00000102
|
|
arm_func_end sub_02011B04
|
|
|
|
arm_func_start sub_02011B9C
|
|
sub_02011B9C: ; 0x02011B9C
|
|
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, #0xa]
|
|
mov r2, #0x104
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02011B9C
|
|
|
|
arm_func_start sub_02011BF4
|
|
sub_02011BF4: ; 0x02011BF4
|
|
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, #0xa]
|
|
mov r1, #0x200
|
|
mov r2, #0x48
|
|
strh r1, [r0, #0xc]
|
|
strh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
mov r1, #1
|
|
strh r1, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02011BF4
|
|
|
|
arm_func_start sub_02011C48
|
|
sub_02011C48: ; 0x02011C48
|
|
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]
|
|
ldr r2, _02011CA0 ; =0x00000207
|
|
strh r3, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02011CA0: .word 0x00000207
|
|
arm_func_end sub_02011C48
|
|
|
|
arm_func_start sub_02011CA4
|
|
sub_02011CA4: ; 0x02011CA4
|
|
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]
|
|
ldr r2, _02011CFC ; =0x0000020B
|
|
strh r3, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02011CFC: .word 0x0000020B
|
|
arm_func_end sub_02011CA4
|
|
|
|
arm_func_start sub_02011D00
|
|
sub_02011D00: ; 0x02011D00
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
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]
|
|
ldr r2, _02011D70 ; =0x0000020D
|
|
strh r0, [r4, #0xa]
|
|
mov r0, r1
|
|
strh r2, [r4, #0xc]
|
|
mov r1, #0x10
|
|
strh r1, [r4, #0xe]
|
|
add r1, r4, #0x10
|
|
mov r2, #0x20
|
|
bl sub_0302D78C
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #1
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02011D70: .word 0x0000020D
|
|
arm_func_end sub_02011D00
|
|
|
|
arm_func_start sub_02011D74
|
|
sub_02011D74: ; 0x02011D74
|
|
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]
|
|
ldr r2, _02011DCC ; =0x0000020E
|
|
strh r3, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02011DCC: .word 0x0000020E
|
|
arm_func_end sub_02011D74
|
|
|
|
arm_func_start sub_02011DD0
|
|
sub_02011DD0: ; 0x02011DD0
|
|
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]
|
|
ldr r4, _02011E34 ; =0x00000211
|
|
strh ip, [r0, #0xa]
|
|
strh r4, [r0, #0xc]
|
|
mov r4, #3
|
|
strh r4, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
strh r2, [r0, #0x12]
|
|
strh r3, [r0, #0x14]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
mov r1, #1
|
|
strh r1, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02011E34: .word 0x00000211
|
|
arm_func_end sub_02011DD0
|
|
|
|
arm_func_start sub_02011E38
|
|
sub_02011E38: ; 0x02011E38
|
|
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]
|
|
ldr r2, _02011E90 ; =0x00000212
|
|
strh r3, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02011E90: .word 0x00000212
|
|
arm_func_end sub_02011E38
|
|
|
|
arm_func_start sub_02011E94
|
|
sub_02011E94: ; 0x02011E94
|
|
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]
|
|
ldr r2, _02011EEC ; =0x00000215
|
|
strh r3, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02011EEC: .word 0x00000215
|
|
arm_func_end sub_02011E94
|
|
|
|
arm_func_start sub_02011EF0
|
|
sub_02011EF0: ; 0x02011EF0
|
|
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]
|
|
ldr r2, _02011F48 ; =0x00000216
|
|
strh r3, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02011F48: .word 0x00000216
|
|
arm_func_end sub_02011EF0
|
|
|
|
arm_func_start sub_02011F4C
|
|
sub_02011F4C: ; 0x02011F4C
|
|
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]
|
|
ldr r2, _02011FA4 ; =0x00000242
|
|
strh r3, [r0, #0xa]
|
|
strh r2, [r0, #0xc]
|
|
mov r3, #1
|
|
strh r3, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r3, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02011FA4: .word 0x00000242
|
|
arm_func_end sub_02011F4C
|
|
|
|
arm_func_start sub_02011FA8
|
|
sub_02011FA8: ; 0x02011FA8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
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]
|
|
add r0, r1, #1
|
|
add r0, r0, r0, lsr #31
|
|
mov r3, r0, asr #1
|
|
mov r0, r2
|
|
ldr r5, _02012028 ; =0x00000245
|
|
strh ip, [r4, #0xa]
|
|
strh r5, [r4, #0xc]
|
|
add r2, r3, #1
|
|
strh r2, [r4, #0xe]
|
|
strh r1, [r4, #0x10]
|
|
mov r2, r1
|
|
add r1, r4, #0x12
|
|
bl sub_0302D78C
|
|
ldrh r1, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r5, r4, r1, lsl #1
|
|
strh r0, [r5, #0x10]
|
|
mov r1, #1
|
|
mov r0, r4
|
|
strh r1, [r5, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r5, #0x10
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02012028: .word 0x00000245
|
|
arm_func_end sub_02011FA8
|
|
|
|
arm_func_start sub_0201202C
|
|
sub_0201202C: ; 0x0201202C
|
|
ldr ip, _0201203C ; =sub_027E29A8
|
|
ldr r1, _02012040 ; =0x00000281
|
|
mov r2, #4
|
|
bx ip
|
|
.align 2, 0
|
|
_0201203C: .word sub_027E29A8
|
|
_02012040: .word 0x00000281
|
|
arm_func_end sub_0201202C
|
|
|
|
arm_func_start sub_02012044
|
|
sub_02012044: ; 0x02012044
|
|
ldr ip, _02012054 ; =sub_027E29A8
|
|
ldr r1, _02012058 ; =0x00000283
|
|
mov r2, #3
|
|
bx ip
|
|
.align 2, 0
|
|
_02012054: .word sub_027E29A8
|
|
_02012058: .word 0x00000283
|
|
arm_func_end sub_02012044
|
|
|
|
arm_func_start sub_0201205C
|
|
sub_0201205C: ; 0x0201205C
|
|
ldr ip, _0201206C ; =sub_027E29A8
|
|
mov r1, #0x284
|
|
mov r2, #2
|
|
bx ip
|
|
.align 2, 0
|
|
_0201206C: .word sub_027E29A8
|
|
arm_func_end sub_0201205C
|
|
|
|
arm_func_start sub_02012070
|
|
sub_02012070: ; 0x02012070
|
|
ldr ip, _02012080 ; =sub_027E29A8
|
|
ldr r1, _02012084 ; =0x00000301
|
|
mov r2, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_02012080: .word sub_027E29A8
|
|
_02012084: .word 0x00000301
|
|
arm_func_end sub_02012070
|
|
|
|
arm_func_start sub_02012088
|
|
sub_02012088: ; 0x02012088
|
|
ldr ip, _02012098 ; =sub_027E29A8
|
|
ldr r1, _0201209C ; =0x00000302
|
|
mov r2, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_02012098: .word sub_027E29A8
|
|
_0201209C: .word 0x00000302
|
|
arm_func_end sub_02012088
|
|
|
|
arm_func_start sub_020120A0
|
|
sub_020120A0: ; 0x020120A0
|
|
ldr ip, _020120B0 ; =sub_027E29A8
|
|
ldr r1, _020120B4 ; =0x00000303
|
|
mov r2, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_020120B0: .word sub_027E29A8
|
|
_020120B4: .word 0x00000303
|
|
arm_func_end sub_020120A0
|
|
|
|
arm_func_start sub_020120B8
|
|
sub_020120B8: ; 0x020120B8
|
|
ldr ip, _020120C8 ; =sub_027E29A8
|
|
mov r1, #0x304
|
|
mov r2, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_020120C8: .word sub_027E29A8
|
|
arm_func_end sub_020120B8
|
|
|
|
arm_func_start sub_020120CC
|
|
sub_020120CC: ; 0x020120CC
|
|
ldr ip, _020120DC ; =sub_027E29A8
|
|
ldr r1, _020120E0 ; =0x00000305
|
|
mov r2, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_020120DC: .word sub_027E29A8
|
|
_020120E0: .word 0x00000305
|
|
arm_func_end sub_020120CC
|
|
|
|
arm_func_start sub_020120E4
|
|
sub_020120E4: ; 0x020120E4
|
|
ldr ip, _020120F4 ; =sub_027E29A8
|
|
ldr r1, _020120F8 ; =0x00000306
|
|
mov r2, #9
|
|
bx ip
|
|
.align 2, 0
|
|
_020120F4: .word sub_027E29A8
|
|
_020120F8: .word 0x00000306
|
|
arm_func_end sub_020120E4
|
|
|
|
arm_func_start sub_020120FC
|
|
sub_020120FC: ; 0x020120FC
|
|
ldr ip, _0201210C ; =sub_027E29A8
|
|
ldr r1, _02012110 ; =0x00000307
|
|
mov r2, #0x5c
|
|
bx ip
|
|
.align 2, 0
|
|
_0201210C: .word sub_027E29A8
|
|
_02012110: .word 0x00000307
|
|
arm_func_end sub_020120FC
|
|
|
|
arm_func_start sub_02012114
|
|
sub_02012114: ; 0x02012114
|
|
ldr ip, _02012124 ; =sub_027E29A8
|
|
mov r1, #0x308
|
|
mov r2, #2
|
|
bx ip
|
|
.align 2, 0
|
|
_02012124: .word sub_027E29A8
|
|
arm_func_end sub_02012114
|
|
|
|
arm_func_start sub_02012128
|
|
sub_02012128: ; 0x02012128
|
|
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]
|
|
ldr r4, _02012194 ; =0x00000309
|
|
strh ip, [r0, #0xa]
|
|
strh r4, [r0, #0xc]
|
|
mov r4, #4
|
|
strh r4, [r0, #0xe]
|
|
strh r1, [r0, #0x10]
|
|
strh r2, [r0, #0x12]
|
|
ldrh r1, [sp, #8]
|
|
strh r3, [r0, #0x14]
|
|
strh r1, [r0, #0x16]
|
|
ldrh r2, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r2, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
mov r1, #1
|
|
strh r1, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02012194: .word 0x00000309
|
|
arm_func_end sub_02012128
|
|
|
|
arm_func_start sub_02012198
|
|
sub_02012198: ; 0x02012198
|
|
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, #0xa]
|
|
strh r1, [r0, #0xc]
|
|
strh r3, [r0, #0xe]
|
|
ldrh r1, [r0, #0xc]
|
|
add r4, r0, r3, lsl #1
|
|
strh r1, [r4, #0x10]
|
|
strh r2, [r4, #0x12]
|
|
bl sub_0200F9BC
|
|
add r0, r4, #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02012198
|
|
|
|
arm_func_start sub_020121E0
|
|
sub_020121E0: ; 0x020121E0
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r4, [r0, #4]
|
|
ldr r1, _0201227C ; =0x027F8878
|
|
str r4, [r1, #0x54c]
|
|
ldr r2, [r0, #8]
|
|
str r2, [r1, #0x550]
|
|
str r2, [r4]
|
|
ldr r1, [r0, #0xc]
|
|
str r1, [r4, #8]
|
|
ldr r0, [r0, #0x10]
|
|
bl sub_02017638
|
|
add r0, sp, #2
|
|
add r1, sp, #0
|
|
bl sub_020178F4
|
|
cmp r0, #0
|
|
bne _02012250
|
|
bl sub_03036B70
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
ldrh r1, [sp, #2]
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [sp]
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
b _02012270
|
|
_02012250:
|
|
ldr r0, [r4]
|
|
mov r1, #2
|
|
strh r1, [r0]
|
|
bl sub_03036B70
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_02012270:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201227C: .word 0x027F8878
|
|
arm_func_end sub_020121E0
|
|
|
|
arm_func_start sub_02012280
|
|
sub_02012280: ; 0x02012280
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x210
|
|
ldr r0, _0201264C ; =0x027F8878
|
|
mov r4, #0
|
|
ldr r8, [r0, #0x550]
|
|
bl sub_0302D4F0
|
|
ldr r1, [r8, #0xc]
|
|
mov r5, r0
|
|
cmp r1, #1
|
|
bne _020122DC
|
|
mov r0, r4
|
|
str r0, [r8, #0xc]
|
|
mov r4, #1
|
|
bl sub_0201537C
|
|
bl sub_0200FE30
|
|
ldrh r0, [r8]
|
|
cmp r0, #0xa
|
|
moveq r0, #8
|
|
streqh r0, [r8]
|
|
beq _020122DC
|
|
cmp r0, #9
|
|
moveq r0, #7
|
|
streqh r0, [r8]
|
|
_020122DC:
|
|
ldrh r1, [r8]
|
|
add r0, r1, #0xf9
|
|
add r0, r0, #0xff00
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #1
|
|
bhi _02012310
|
|
add r0, r8, #0x100
|
|
cmp r1, #7
|
|
moveq sl, #1
|
|
ldrh sb, [r0, #0x82]
|
|
movne sl, #0
|
|
b _02012314
|
|
_02012310:
|
|
mov sb, #0
|
|
_02012314:
|
|
add r0, r8, #0x100
|
|
mov r1, #0
|
|
strh r1, [r0, #0x82]
|
|
strh r1, [r8, #0x86]
|
|
str r1, [r8, #0x14]
|
|
str r1, [r8, #0x10]
|
|
str r1, [r8, #0x1c]
|
|
mov r0, r5
|
|
strh r1, [r8, #0xc2]
|
|
bl sub_0302D504
|
|
cmp r4, #0
|
|
beq _0201234C
|
|
ldr r0, _02012650 ; =0x0000FFFF
|
|
bl sub_0201700C
|
|
_0201234C:
|
|
cmp sl, #0
|
|
movne r0, #0
|
|
strneh r0, [r8, #0xf6]
|
|
cmp sb, #0
|
|
beq _020123A8
|
|
mov r7, #0
|
|
add r5, r8, #0x128
|
|
add r4, r8, #0x8a
|
|
mov r6, #1
|
|
mov fp, #6
|
|
_02012374:
|
|
tst sb, r6, lsl r7
|
|
beq _0201239C
|
|
cmp r7, #0
|
|
addeq r2, r4, #0x100
|
|
subne r0, r7, #1
|
|
mlane r2, r0, fp, r5
|
|
mov r1, r7, lsl #0x10
|
|
mov r0, sl
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_02014278
|
|
_0201239C:
|
|
add r7, r7, #1
|
|
cmp r7, #0x10
|
|
blt _02012374
|
|
_020123A8:
|
|
add r0, r8, #0x128
|
|
mov r1, #0
|
|
mov r2, #0x5a
|
|
bl sub_0302D860
|
|
add r0, sp, #0x10
|
|
bl sub_02012114
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _020123D8
|
|
mov r0, #0x308
|
|
bl sub_02012660
|
|
b _02012640
|
|
_020123D8:
|
|
ldrh r4, [r0, #6]
|
|
add r0, sp, #0x10
|
|
bl sub_0201205C
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _020123FC
|
|
mov r0, #0x284
|
|
bl sub_02012660
|
|
b _02012640
|
|
_020123FC:
|
|
ldrh r1, [r0, #6]
|
|
cmp r4, #0x20
|
|
bgt _02012440
|
|
bge _02012514
|
|
cmp r4, #0
|
|
bgt _0201241C
|
|
beq _02012538
|
|
b _02012618
|
|
_0201241C:
|
|
cmp r4, #0x12
|
|
bgt _02012618
|
|
cmp r4, #0x10
|
|
blt _02012618
|
|
beq _02012558
|
|
cmp r4, #0x11
|
|
cmpne r4, #0x12
|
|
beq _020125B0
|
|
b _02012618
|
|
_02012440:
|
|
cmp r4, #0x30
|
|
bgt _02012450
|
|
beq _02012458
|
|
b _02012618
|
|
_02012450:
|
|
cmp r4, #0x40
|
|
bne _02012618
|
|
_02012458:
|
|
add r0, r1, #0xfe
|
|
add r0, r0, #0xff00
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #1
|
|
bhi _020124DC
|
|
add r0, r8, #0x8a
|
|
add r1, sp, #0xa
|
|
add r0, r0, #0x100
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
mov r6, #0
|
|
add r5, sp, #0xa
|
|
mov r4, #3
|
|
b _020124D0
|
|
_02012494:
|
|
add r0, sp, #0x10
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_020117BC
|
|
ldrh r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _020124C0
|
|
cmp r0, #7
|
|
cmpne r0, #0xc
|
|
beq _020124CC
|
|
b _02012514
|
|
_020124C0:
|
|
mov r0, #3
|
|
strh r0, [r8]
|
|
b _02012514
|
|
_020124CC:
|
|
add r6, r6, #1
|
|
_020124D0:
|
|
cmp r6, #2
|
|
blt _02012494
|
|
b _02012514
|
|
_020124DC:
|
|
cmp r1, #1
|
|
bne _02012514
|
|
add r0, sp, #4
|
|
mov r1, #0xff
|
|
mov r2, #6
|
|
bl sub_0302D860
|
|
add r1, sp, #4
|
|
add r0, sp, #0x10
|
|
mov r2, #3
|
|
bl sub_020117BC
|
|
ldrh r0, [r0, #4]
|
|
cmp r0, #0
|
|
moveq r0, #3
|
|
streqh r0, [r8]
|
|
_02012514:
|
|
add r0, sp, #0x10
|
|
mov r1, #1
|
|
bl sub_02011558
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02012538
|
|
mov r0, #0
|
|
bl sub_02012660
|
|
b _02012640
|
|
_02012538:
|
|
add r0, sp, #0x10
|
|
bl sub_02012088
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02012558
|
|
ldr r0, _02012654 ; =0x00000302
|
|
bl sub_02012660
|
|
b _02012640
|
|
_02012558:
|
|
add r0, r8, #0x100
|
|
ldrh r0, [r0, #0xee]
|
|
cmp r0, #0
|
|
bne _02012598
|
|
add r0, sp, #0x10
|
|
mov r1, #1
|
|
bl sub_02011D74
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _0201258C
|
|
ldr r0, _02012658 ; =0x0000020E
|
|
bl sub_02012660
|
|
b _02012640
|
|
_0201258C:
|
|
add r0, r8, #0x100
|
|
mov r1, #1
|
|
strh r1, [r0, #0xee]
|
|
_02012598:
|
|
mov r0, #2
|
|
strh r0, [r8]
|
|
mov r0, #0
|
|
str r0, [r8, #0x198]
|
|
bl sub_0200FF5C
|
|
b _02012628
|
|
_020125B0:
|
|
cmp r1, #0
|
|
bne _020125EC
|
|
mov r0, #1
|
|
mov r1, #0
|
|
str r0, [sp]
|
|
add r0, sp, #0x10
|
|
mov r2, r1
|
|
mov r3, #0x14
|
|
bl sub_02012128
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _020125EC
|
|
ldr r0, _0201265C ; =0x00000309
|
|
bl sub_02012660
|
|
b _02012640
|
|
_020125EC:
|
|
add r0, sp, #0x10
|
|
bl sub_02012088
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _0201260C
|
|
ldr r0, _02012654 ; =0x00000302
|
|
bl sub_02012660
|
|
b _02012640
|
|
_0201260C:
|
|
mov r0, #2
|
|
strh r0, [r8]
|
|
b _02012628
|
|
_02012618:
|
|
mov r0, #0x308
|
|
mov r1, #0
|
|
bl sub_02012660
|
|
b _02012640
|
|
_02012628:
|
|
bl sub_03036B70
|
|
mov r1, #1
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_02012640:
|
|
add sp, sp, #0x210
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201264C: .word 0x027F8878
|
|
_02012650: .word 0x0000FFFF
|
|
_02012654: .word 0x00000302
|
|
_02012658: .word 0x0000020E
|
|
_0201265C: .word 0x00000309
|
|
arm_func_end sub_02012280
|
|
|
|
arm_func_start sub_02012660
|
|
sub_02012660: ; 0x02012660
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
bl sub_03036B70
|
|
mov r1, #1
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
strh r5, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03036B24
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_02012660
|
|
|
|
arm_func_start sub_02012690
|
|
sub_02012690: ; 0x02012690
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r0, _0201273C ; =0x027F8878
|
|
ldr r4, [r0, #0x550]
|
|
ldrh r0, [r4]
|
|
cmp r0, #2
|
|
beq _020126C8
|
|
bl sub_03036B70
|
|
mov r1, #2
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
b _02012730
|
|
_020126C8:
|
|
add r0, sp, #0
|
|
bl sub_02012070
|
|
ldrh r5, [r0, #4]
|
|
cmp r5, #0
|
|
beq _02012704
|
|
bl sub_03036B70
|
|
mov r2, #2
|
|
mov r1, #1
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
add r1, r1, #0x300
|
|
strh r1, [r0, #4]
|
|
strh r5, [r0, #6]
|
|
bl sub_03036B24
|
|
b _02012730
|
|
_02012704:
|
|
mov r0, #1
|
|
strh r0, [r4]
|
|
bl sub_03034A0C
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
bl sub_03036B70
|
|
mov r1, #2
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_02012730:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201273C: .word 0x027F8878
|
|
arm_func_end sub_02012690
|
|
|
|
arm_func_start sub_02012740
|
|
sub_02012740: ; 0x02012740
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r1, _020127F8 ; =0x027F8878
|
|
ldr r0, [r0, #4]
|
|
ldr r4, [r1, #0x550]
|
|
mov r2, #0x40
|
|
add r1, r4, #0xe8
|
|
bl sub_0302D91C
|
|
add r0, r4, #0x100
|
|
ldrh r1, [r0, #0x1a]
|
|
ldrh r0, [r0, #0xf4]
|
|
mov r2, #1
|
|
tst r0, r2, lsl r1
|
|
bne _02012794
|
|
bl sub_03036B70
|
|
mov r1, #7
|
|
strh r1, [r0]
|
|
mov r1, #6
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
b _020127EC
|
|
_02012794:
|
|
ldrh r1, [r4, #0xf8]
|
|
add r0, sp, #0
|
|
bl sub_02011E38
|
|
ldrh r4, [r0, #4]
|
|
cmp r4, #0
|
|
beq _020127D4
|
|
bl sub_03036B70
|
|
mov r1, #7
|
|
strh r1, [r0]
|
|
mov r2, #1
|
|
ldr r1, _020127FC ; =0x00000212
|
|
strh r2, [r0, #2]
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03036B24
|
|
b _020127EC
|
|
_020127D4:
|
|
bl sub_03036B70
|
|
mov r1, #7
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_020127EC:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020127F8: .word 0x027F8878
|
|
_020127FC: .word 0x00000212
|
|
arm_func_end sub_02012740
|
|
|
|
arm_func_start sub_02012800
|
|
sub_02012800: ; 0x02012800
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #0x2b8
|
|
ldr r1, _02012A84 ; =0x027F8878
|
|
add r5, sp, #0xb8
|
|
ldr r4, [r1, #0x550]
|
|
ldrh r1, [r4]
|
|
cmp r1, #2
|
|
bne _0201282C
|
|
ldr r1, [r4, #0xc8]
|
|
tst r1, #1
|
|
beq _02012850
|
|
_0201282C:
|
|
bl sub_03036B70
|
|
mov r1, #8
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
mov r1, #0
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
b _02012A78
|
|
_02012850:
|
|
add r1, r4, #0x100
|
|
ldrh r2, [r1, #0x1a]
|
|
mov r3, #1
|
|
ldrh ip, [r1, #0xf6]
|
|
mov r2, r3, lsl r2
|
|
ldr r6, [r0, #4]
|
|
tst ip, r2, asr #1
|
|
bne _02012894
|
|
bl sub_03036B70
|
|
mov r1, #8
|
|
strh r1, [r0]
|
|
mov r1, #6
|
|
strh r1, [r0, #2]
|
|
mov r1, #0
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
b _02012A78
|
|
_02012894:
|
|
strh r3, [r4, #0xe6]
|
|
mov r0, #0
|
|
strh r0, [r1, #0x88]
|
|
bl sub_0302D4F0
|
|
add r1, r4, #0x100
|
|
mov r2, #0
|
|
strh r2, [r1, #0x82]
|
|
strh r2, [r4, #0x86]
|
|
bl sub_0302D504
|
|
mov r1, r5
|
|
add r2, r4, #0x100
|
|
mov r3, #1
|
|
mov r0, #8
|
|
strh r3, [r2, #0xee]
|
|
bl sub_0200FBC0
|
|
cmp r0, #0
|
|
beq _02012A78
|
|
mov r0, r5
|
|
bl sub_020120A0
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _020128F8
|
|
ldr r0, _02012A88 ; =0x00000303
|
|
bl sub_02012A8C
|
|
b _02012A78
|
|
_020128F8:
|
|
cmp r6, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
mov r0, r0, lsl #0x10
|
|
mov r6, r0, lsr #0x10
|
|
mov r0, r5
|
|
mov r1, r6
|
|
mov r2, #0
|
|
mov r3, #1
|
|
bl sub_020115AC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02012938
|
|
mov r0, #1
|
|
bl sub_02012A8C
|
|
b _02012A78
|
|
_02012938:
|
|
strh r6, [r4, #0xc6]
|
|
add r1, sp, #0x38
|
|
mov r0, #0
|
|
mov r2, #0x80
|
|
add r6, r4, #0xe8
|
|
bl sub_0302D764
|
|
add r0, sp, #0x38
|
|
mov r1, r6
|
|
bl sub_0200FAFC
|
|
add r1, sp, #0x18
|
|
mov r0, #0
|
|
mov r2, #0x20
|
|
bl sub_0302D764
|
|
ldr r1, [r6, #8]
|
|
mov r0, r5
|
|
strh r1, [sp, #0x18]
|
|
ldr r2, [r6, #8]
|
|
mov r3, #0
|
|
mov r2, r2, lsr #0x10
|
|
strh r2, [sp, #0x1a]
|
|
ldrh r5, [r6, #0xc]
|
|
mov r2, #2
|
|
strh r5, [sp, #0x1c]
|
|
strh r3, [sp, #0x1e]
|
|
str r2, [sp]
|
|
ldrh r3, [r6, #0x32]
|
|
mov r2, #3
|
|
str r3, [sp, #4]
|
|
str r2, [sp, #8]
|
|
str r2, [sp, #0xc]
|
|
ldrh r2, [r6, #4]
|
|
add r3, sp, #0x38
|
|
add r2, r2, #0x10
|
|
mov r2, r2, lsl #0x10
|
|
mov r2, r2, lsr #0x10
|
|
str r2, [sp, #0x10]
|
|
str r3, [sp, #0x14]
|
|
ldrh r3, [r6, #0x18]
|
|
mov r1, #0x20
|
|
add r2, sp, #0x18
|
|
bl sub_020118B0
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _020129F4
|
|
mov r0, #9
|
|
bl sub_02012A8C
|
|
b _02012A78
|
|
_020129F4:
|
|
ldrh r0, [r6, #0x14]
|
|
cmp r0, #0
|
|
ldrh r0, [r6, #0x34]
|
|
movne r1, #0x2a
|
|
moveq r1, #0
|
|
add r0, r0, r1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0200FF90
|
|
ldrh r0, [r6, #0x14]
|
|
cmp r0, #0
|
|
movne r1, #6
|
|
ldrh r0, [r6, #0x36]
|
|
moveq r1, #0
|
|
add r0, r0, r1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0200FFE0
|
|
bl sub_03036B70
|
|
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, #0x30]
|
|
strh r1, [r0, #0x2c]
|
|
ldrh r1, [r4, #0x32]
|
|
strh r1, [r0, #0x2e]
|
|
bl sub_03036B24
|
|
mov r0, #1
|
|
strh r0, [r4, #0xc2]
|
|
_02012A78:
|
|
add sp, sp, #0x2b8
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02012A84: .word 0x027F8878
|
|
_02012A88: .word 0x00000303
|
|
arm_func_end sub_02012800
|
|
|
|
arm_func_start sub_02012A8C
|
|
sub_02012A8C: ; 0x02012A8C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
bl sub_03036B70
|
|
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 sub_03036B24
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_02012A8C
|
|
|
|
arm_func_start sub_02012AC8
|
|
sub_02012AC8: ; 0x02012AC8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
sub sp, sp, #0x208
|
|
ldr r0, _02012C84 ; =0x027F8878
|
|
ldr sl, [r0, #0x550]
|
|
ldrh r0, [sl]
|
|
cmp r0, #7
|
|
beq _02012B00
|
|
bl sub_03036B70
|
|
mov r1, #9
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
b _02012C78
|
|
_02012B00:
|
|
mov r0, #0
|
|
strh r0, [sl, #0xf6]
|
|
mov r8, #1
|
|
_02012B0C:
|
|
add r0, sl, #0x100
|
|
ldrh r0, [r0, #0x82]
|
|
mov r7, #1
|
|
tst r0, r7, lsl r8
|
|
beq _02012BDC
|
|
add r0, sl, #0x128
|
|
sub r1, r8, #1
|
|
mov r2, #6
|
|
mla r0, r1, r2, r0
|
|
add r1, sp, #0
|
|
bl sub_0302D91C
|
|
mov sb, #0
|
|
add r6, sp, #8
|
|
add r5, sp, #0
|
|
mov r4, #3
|
|
b _02012B78
|
|
_02012B4C:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_020117BC
|
|
ldrh r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _02012B80
|
|
cmp r0, #7
|
|
cmpne r0, #0xc
|
|
bne _02012B80
|
|
add sb, sb, #1
|
|
_02012B78:
|
|
cmp sb, #2
|
|
blt _02012B4C
|
|
_02012B80:
|
|
bl sub_0302D4F0
|
|
add r1, sl, #0x100
|
|
ldrh r2, [r1, #0x82]
|
|
tst r2, r7, lsl r8
|
|
beq _02012BD8
|
|
mvn r3, r7, lsl r8
|
|
and r2, r2, r3
|
|
strh r2, [r1, #0x82]
|
|
ldrh r2, [sl, #0x86]
|
|
add r1, sl, r8, lsl #3
|
|
and r2, r2, r3
|
|
strh r2, [sl, #0x86]
|
|
mov r2, #0
|
|
str r2, [r1, #0x738]
|
|
str r2, [r1, #0x73c]
|
|
bl sub_0302D504
|
|
mov r0, r8, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
add r2, sp, #0
|
|
mov r0, #1
|
|
bl sub_02014278
|
|
b _02012BDC
|
|
_02012BD8:
|
|
bl sub_0302D504
|
|
_02012BDC:
|
|
add r8, r8, #1
|
|
cmp r8, #0x10
|
|
blt _02012B0C
|
|
add r0, sp, #8
|
|
mov r1, #1
|
|
bl sub_02011558
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #0
|
|
cmp r1, #0
|
|
beq _02012C0C
|
|
bl sub_02012C8C
|
|
b _02012C78
|
|
_02012C0C:
|
|
strh r0, [sl, #0xc2]
|
|
mov r1, #3
|
|
strh r1, [sl]
|
|
add r0, sp, #8
|
|
bl sub_02012088
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02012C38
|
|
ldr r0, _02012C88 ; =0x00000302
|
|
bl sub_02012C8C
|
|
b _02012C78
|
|
_02012C38:
|
|
mov r0, #2
|
|
strh r0, [sl]
|
|
mov r1, #0
|
|
str r1, [sl, #0x198]
|
|
add r0, sl, #0x100
|
|
strh r1, [r0, #0x96]
|
|
add r0, sl, #0x19c
|
|
mov r2, #0x50
|
|
bl sub_0302D860
|
|
bl sub_0200FF5C
|
|
bl sub_03036B70
|
|
mov r1, #9
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_02012C78:
|
|
add sp, sp, #0x208
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02012C84: .word 0x027F8878
|
|
_02012C88: .word 0x00000302
|
|
arm_func_end sub_02012AC8
|
|
|
|
arm_func_start sub_02012C8C
|
|
sub_02012C8C: ; 0x02012C8C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
bl sub_03036B70
|
|
mov r1, #9
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
strh r5, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03036B24
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_02012C8C
|
|
|
|
arm_func_start sub_02012CC0
|
|
sub_02012CC0: ; 0x02012CC0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x248
|
|
ldr r1, _02013010 ; =0x027F8878
|
|
add r4, sp, #0x48
|
|
ldr r7, [r1, #0x550]
|
|
ldrh r1, [r7]
|
|
cmp r1, #2
|
|
cmpne r1, #3
|
|
cmpne r1, #5
|
|
beq _02012D0C
|
|
bl sub_03036B70
|
|
mov r1, #0xa
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
mov r1, #4
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
b _02013004
|
|
_02012D0C:
|
|
ldr r1, [r0, #4]
|
|
add r2, r7, #0x100
|
|
str r1, [r7, #0x184]
|
|
ldrh r5, [r0, #2]
|
|
add r1, sp, #0x10
|
|
strh r5, [r2, #0x90]
|
|
ldrh r6, [r0, #8]
|
|
add r0, r0, #0xa
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
ldrh r1, [sp, #0x10]
|
|
ldr r0, _02013014 ; =0x0000FFFF
|
|
cmp r1, r0
|
|
beq _02012D50
|
|
tst r1, #1
|
|
bicne r0, r1, #1
|
|
strneh r0, [sp, #0x10]
|
|
_02012D50:
|
|
cmp r5, #0
|
|
bne _02012D7C
|
|
bl sub_03036B70
|
|
mov r1, #0xa
|
|
strh r1, [r0]
|
|
mov r1, #6
|
|
strh r1, [r0, #2]
|
|
mov r1, #4
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
b _02013004
|
|
_02012D7C:
|
|
add r0, r7, #0x100
|
|
ldrh r0, [r0, #0xf4]
|
|
mov r1, #1
|
|
tst r0, r1, lsl r5
|
|
bne _02012DB4
|
|
bl sub_03036B70
|
|
mov r1, #0xa
|
|
strh r1, [r0]
|
|
mov r1, #6
|
|
strh r1, [r0, #2]
|
|
mov r1, #4
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
b _02013004
|
|
_02012DB4:
|
|
mov r0, #2
|
|
strh r0, [r7, #0xe6]
|
|
mov r0, r4
|
|
bl sub_02012114
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02012DE0
|
|
mov r0, #0x308
|
|
mov r2, #0
|
|
bl sub_02013564
|
|
b _02013004
|
|
_02012DE0:
|
|
ldrh r0, [r0, #6]
|
|
cmp r0, #0x10
|
|
bne _02012E5C
|
|
mov r1, r4
|
|
mov r0, #0xa
|
|
bl sub_0200FBC0
|
|
cmp r0, #0
|
|
beq _02013004
|
|
mov r0, r4
|
|
bl sub_020120A0
|
|
ldrh r1, [r0, #4]
|
|
mov r2, #0
|
|
cmp r1, #0
|
|
beq _02012E24
|
|
ldr r0, _02013018 ; =0x00000303
|
|
bl sub_02013564
|
|
b _02013004
|
|
_02012E24:
|
|
mov r0, #3
|
|
mov r1, #1
|
|
strh r0, [r7]
|
|
mov r0, r4
|
|
mov r3, r1
|
|
bl sub_020115AC
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #1
|
|
cmp r1, #0
|
|
beq _02012E58
|
|
mov r2, #0
|
|
bl sub_02013564
|
|
b _02013004
|
|
_02012E58:
|
|
strh r0, [r7, #0xc6]
|
|
_02012E5C:
|
|
ldr r0, _02013014 ; =0x0000FFFF
|
|
mov r3, #5
|
|
strh r3, [r7]
|
|
add r1, sp, #0x26
|
|
mov r2, #0x20
|
|
bl sub_0302D764
|
|
add r0, sp, #0x17
|
|
mov r1, #0
|
|
mov r2, #0xf
|
|
strb r5, [sp, #0x16]
|
|
bl sub_0302D860
|
|
add r1, sp, #0x26
|
|
str r1, [sp]
|
|
mov r1, #1
|
|
str r1, [sp, #4]
|
|
add r0, sp, #0x16
|
|
str r0, [sp, #8]
|
|
ldr r1, _0201301C ; =0x0000011E
|
|
add r2, sp, #0x10
|
|
str r6, [sp, #0xc]
|
|
mov r0, r4
|
|
mov r3, #0
|
|
bl sub_0201160C
|
|
mov r4, r0
|
|
ldrh r1, [r4, #4]
|
|
cmp r1, #0
|
|
beq _02012ED8
|
|
mov r0, #2
|
|
mov r2, #0
|
|
bl sub_02013564
|
|
b _02013004
|
|
_02012ED8:
|
|
bl sub_03036B70
|
|
ldrh r1, [r4, #8]
|
|
mov r6, r0
|
|
cmp r1, #0
|
|
bne _02012F10
|
|
mov r0, #0xa
|
|
strh r0, [r6]
|
|
mov r1, #0
|
|
strh r1, [r6, #2]
|
|
mov r0, #4
|
|
strh r0, [r6, #8]
|
|
strh r5, [r6, #0x10]
|
|
strh r1, [r6, #0x12]
|
|
b _02012FFC
|
|
_02012F10:
|
|
ldr r1, [r7, #0x184]
|
|
mov r0, #0
|
|
add r1, r1, #0x40
|
|
mov r2, #0x80
|
|
bl sub_0302D764
|
|
ldrh r2, [r4, #0xa]
|
|
ldr r1, [r7, #0x184]
|
|
add r0, r4, #0xa
|
|
mov r2, r2, lsl #1
|
|
bl sub_0302D91C
|
|
mov r0, #0xa
|
|
strh r0, [r6]
|
|
mov r0, #0
|
|
strh r0, [r6, #2]
|
|
mov r0, #5
|
|
strh r0, [r6, #8]
|
|
ldrh r0, [r4, #0x40]
|
|
strh r0, [r6, #0x10]
|
|
ldrh r0, [r4, #0xc]
|
|
and r0, r0, #0xff
|
|
bl sub_02013020
|
|
mov r7, r0
|
|
bl sub_0200FDC8
|
|
strh r0, [r6, #0x12]
|
|
mov r0, r7
|
|
bl sub_02013034
|
|
ldrh r1, [r4, #0x14]
|
|
add r0, r4, #0xe
|
|
strh r1, [r6, #0x14]
|
|
add r1, r6, #0xa
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
add r0, r4, #0x16
|
|
add r1, r6, #0x16
|
|
mov r2, #0x20
|
|
bl sub_0302D78C
|
|
ldrh r0, [r4, #0x46]
|
|
strh r0, [r6, #0x36]
|
|
cmp r0, #0x80
|
|
bls _02012FD4
|
|
mov r0, #0xa
|
|
strh r0, [r6]
|
|
mov r1, #0
|
|
strh r1, [r6, #2]
|
|
mov r0, #4
|
|
strh r0, [r6, #8]
|
|
strh r5, [r6, #0x10]
|
|
strh r1, [r6, #0x12]
|
|
b _02012FFC
|
|
_02012FD4:
|
|
add r1, r6, #0x38
|
|
mov r0, #0
|
|
mov r2, #0x80
|
|
bl sub_0302D764
|
|
ldrh r1, [r6, #0x36]
|
|
add r0, r4, #0x4a
|
|
add r2, r1, #1
|
|
add r1, r6, #0x38
|
|
bic r2, r2, #1
|
|
bl sub_0302D78C
|
|
_02012FFC:
|
|
mov r0, r6
|
|
bl sub_03036B24
|
|
_02013004:
|
|
add sp, sp, #0x248
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02013010: .word 0x027F8878
|
|
_02013014: .word 0x0000FFFF
|
|
_02013018: .word 0x00000303
|
|
_0201301C: .word 0x0000011E
|
|
arm_func_end sub_02012CC0
|
|
|
|
arm_func_start sub_02013020
|
|
sub_02013020: ; 0x02013020
|
|
tst r0, #2
|
|
mov r0, r0, asr #2
|
|
addeq r0, r0, #0x19
|
|
and r0, r0, #0xff
|
|
bx lr
|
|
arm_func_end sub_02013020
|
|
|
|
arm_func_start sub_02013034
|
|
sub_02013034: ; 0x02013034
|
|
ldr r2, _0201304C ; =0x027FFF98
|
|
ldrh r1, [r2]
|
|
eor r0, r0, r1, lsl #1
|
|
eor r0, r0, r0, lsr #16
|
|
strh r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201304C: .word 0x027FFF98
|
|
arm_func_end sub_02013034
|
|
|
|
arm_func_start sub_02013050
|
|
sub_02013050: ; 0x02013050
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0xc8
|
|
sub sp, sp, #0x400
|
|
ldr r1, _02013550 ; =0x027F8878
|
|
mov sb, r0
|
|
ldr r8, [r1, #0x550]
|
|
ldrh r0, [r8]
|
|
cmp r0, #2
|
|
cmpne r0, #3
|
|
cmpne r0, #5
|
|
beq _020130A0
|
|
bl sub_03036B70
|
|
mov r1, #0x26
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
mov r1, #4
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
b _02013540
|
|
_020130A0:
|
|
ldr r0, [sb, #4]
|
|
add r1, sp, #0x18
|
|
str r0, [r8, #0x184]
|
|
ldrh sl, [sb, #2]
|
|
add r0, r8, #0x100
|
|
strh sl, [r0, #0x90]
|
|
ldrh r3, [sb, #0xa]
|
|
add r0, sb, #0xc
|
|
str r3, [sp, #0x10]
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
ldrh r5, [sb, #0x12]
|
|
ldrh fp, [sb, #0x36]
|
|
cmp r5, #2
|
|
beq _020130E8
|
|
cmp r5, #3
|
|
beq _020130F4
|
|
b _02013100
|
|
_020130E8:
|
|
mov r6, #1
|
|
mov r5, #0
|
|
b _02013104
|
|
_020130F4:
|
|
mov r6, #1
|
|
mov r5, r6
|
|
b _02013104
|
|
_02013100:
|
|
mov r6, #0
|
|
_02013104:
|
|
add r1, sp, #0x4e
|
|
add r0, sb, #0x16
|
|
mov r2, #0x20
|
|
ldrh r4, [sb, #0x14]
|
|
bl sub_0302D91C
|
|
ldrh r1, [sp, #0x18]
|
|
ldr r0, _02013554 ; =0x0000FFFF
|
|
ldrh r7, [sb, #8]
|
|
cmp r1, r0
|
|
beq _02013138
|
|
tst r1, #1
|
|
bicne r0, r1, #1
|
|
strneh r0, [sp, #0x18]
|
|
_02013138:
|
|
add r0, r8, #0x100
|
|
ldrh r1, [r0, #0xf4]
|
|
mov r0, sl, lsl #0x11
|
|
ands sl, r1, r0, lsr #16
|
|
beq _0201317C
|
|
ldr r0, [r8, #0xc8]
|
|
tst r0, #1
|
|
cmpne r5, #1
|
|
bne _0201317C
|
|
ldr r0, [sb, #4]
|
|
cmp r0, #0
|
|
beq _0201317C
|
|
tst r0, #3
|
|
bne _0201317C
|
|
ldrh r0, [sb, #8]
|
|
cmp r0, #0x40
|
|
bhs _020131A0
|
|
_0201317C:
|
|
bl sub_03036B70
|
|
mov r1, #0x26
|
|
strh r1, [r0]
|
|
mov r1, #6
|
|
strh r1, [r0, #2]
|
|
mov r1, #4
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
b _02013540
|
|
_020131A0:
|
|
mov r0, #2
|
|
strh r0, [r8, #0xe6]
|
|
add r0, sp, #0x70
|
|
bl sub_02012114
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _020131CC
|
|
mov r0, #0x308
|
|
mov r2, #1
|
|
bl sub_02013564
|
|
b _02013540
|
|
_020131CC:
|
|
ldrh r0, [r0, #6]
|
|
cmp r0, #0x10
|
|
bne _0201324C
|
|
add r1, sp, #0x70
|
|
mov r0, #0x26
|
|
bl sub_0200FBC0
|
|
cmp r0, #0
|
|
beq _02013540
|
|
add r0, sp, #0x70
|
|
bl sub_020120A0
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02013210
|
|
ldr r0, _02013558 ; =0x00000303
|
|
mov r2, #1
|
|
bl sub_02013564
|
|
b _02013540
|
|
_02013210:
|
|
mov r0, #3
|
|
mov r1, #1
|
|
strh r0, [r8]
|
|
add r0, sp, #0x70
|
|
mov r3, r1
|
|
mov r2, #0
|
|
bl sub_020115AC
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #1
|
|
cmp r1, #0
|
|
beq _02013248
|
|
mov r2, r0
|
|
bl sub_02013564
|
|
b _02013540
|
|
_02013248:
|
|
strh r0, [r8, #0xc6]
|
|
_0201324C:
|
|
add r0, r8, #0x100
|
|
ldrh r0, [r0, #0xee]
|
|
cmp r5, #0
|
|
bne _0201329C
|
|
cmp r0, #1
|
|
bne _020132D8
|
|
add r0, sp, #0x70
|
|
mov r1, #0
|
|
bl sub_02011D74
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _0201328C
|
|
ldr r0, _0201355C ; =0x0000020E
|
|
mov r2, #1
|
|
bl sub_02013564
|
|
b _02013540
|
|
_0201328C:
|
|
add r0, r8, #0x100
|
|
mov r1, #0
|
|
strh r1, [r0, #0xee]
|
|
b _020132D8
|
|
_0201329C:
|
|
cmp r0, #0
|
|
bne _020132D8
|
|
add r0, sp, #0x70
|
|
mov r1, #1
|
|
bl sub_02011D74
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _020132CC
|
|
ldr r0, _0201355C ; =0x0000020E
|
|
mov r2, #1
|
|
bl sub_02013564
|
|
b _02013540
|
|
_020132CC:
|
|
add r0, r8, #0x100
|
|
mov r1, #1
|
|
strh r1, [r0, #0xee]
|
|
_020132D8:
|
|
cmp r6, #1
|
|
bne _02013330
|
|
add r0, sp, #0x2e
|
|
mov r1, #0xff
|
|
mov r2, #0x20
|
|
bl sub_0302D860
|
|
cmp fp, #0x20
|
|
bhi _02013308
|
|
add r0, sp, #0x2e
|
|
mov r2, fp
|
|
mov r1, #0
|
|
bl sub_0302D860
|
|
_02013308:
|
|
add r1, sp, #0x2e
|
|
add r0, sp, #0x70
|
|
bl sub_02011D00
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02013330
|
|
ldr r0, _02013560 ; =0x0000020D
|
|
mov r2, #1
|
|
bl sub_02013564
|
|
b _02013540
|
|
_02013330:
|
|
mov r6, #0
|
|
mov r3, #5
|
|
add r0, sp, #0x1e
|
|
mov r1, r6
|
|
mov r2, #0x10
|
|
strh r3, [r8]
|
|
bl sub_0302D860
|
|
mov r3, #1
|
|
add r1, sp, #0x1e
|
|
mov r2, r3
|
|
_02013358:
|
|
tst sl, r2, lsl r3
|
|
addne r0, r6, #1
|
|
movne r0, r0, lsl #0x10
|
|
strneb r3, [r1, r6]
|
|
movne r6, r0, lsr #0x10
|
|
add r0, r3, #1
|
|
mov r0, r0, lsl #0x10
|
|
mov r3, r0, lsr #0x10
|
|
cmp r3, #0xf
|
|
blo _02013358
|
|
sub r0, r7, #0x40
|
|
mov r1, #0x42
|
|
bl sub_030365C4
|
|
add r2, sp, #0x4e
|
|
stmia sp, {r2, r5}
|
|
add r1, sp, #0x1e
|
|
str r1, [sp, #8]
|
|
ldr r1, [sp, #0x10]
|
|
sub r5, r7, r0, lsl #1
|
|
str r1, [sp, #0xc]
|
|
add r2, sp, #0x18
|
|
add r0, sp, #0x70
|
|
mov r3, r4
|
|
add r1, r5, #0x5e
|
|
bl sub_0201160C
|
|
mov r5, r0
|
|
ldrh r1, [r5, #4]
|
|
cmp r1, #0
|
|
beq _020133DC
|
|
mov r0, #2
|
|
mov r2, #1
|
|
bl sub_02013564
|
|
b _02013540
|
|
_020133DC:
|
|
bl sub_03036B70
|
|
ldrh r1, [r5, #8]
|
|
mov r6, r0
|
|
cmp r1, #0
|
|
bne _02013418
|
|
mov r0, #0x26
|
|
strh r0, [r6]
|
|
mov r1, #0
|
|
strh r1, [r6, #2]
|
|
mov r0, #4
|
|
strh r0, [r6, #8]
|
|
strh r1, [r6, #0xe]
|
|
mov r0, sl, asr #1
|
|
strh r0, [r6, #0xa]
|
|
b _02013538
|
|
_02013418:
|
|
ldr sb, [r8, #0x184]
|
|
mov r2, r7
|
|
mov r1, sb
|
|
mov r0, #0
|
|
add r8, r5, #0xa
|
|
bl sub_0302D764
|
|
mov r7, #0
|
|
b _02013504
|
|
_02013438:
|
|
ldrh r1, [r8]
|
|
mov r0, r8
|
|
mov r1, r1, lsl #0x11
|
|
mov fp, r1, lsr #0x10
|
|
mov r1, sb
|
|
mov r2, fp
|
|
bl sub_0302D91C
|
|
cmp r4, #0
|
|
beq _020134C0
|
|
ldrh r2, [sb, #0xa]
|
|
cmp r2, #0
|
|
moveq r0, #0
|
|
beq _020134A4
|
|
cmp r2, #0x20
|
|
movhi r0, #0
|
|
bhi _020134A4
|
|
mov r1, #0
|
|
b _02013498
|
|
_02013480:
|
|
add r0, sb, r1
|
|
ldrb r0, [r0, #0xc]
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
bne _020134A4
|
|
add r1, r1, #1
|
|
_02013498:
|
|
cmp r1, r2
|
|
blt _02013480
|
|
mov r0, #0
|
|
_020134A4:
|
|
cmp r0, #0
|
|
bne _020134C0
|
|
add r0, sp, #0x4e
|
|
add r1, sb, #0xc
|
|
mov r2, #0x20
|
|
strh r4, [sb, #0xa]
|
|
bl sub_0302D91C
|
|
_020134C0:
|
|
add r0, r6, r7, lsl #2
|
|
str sb, [r0, #0x10]
|
|
ldrh r0, [r8, #2]
|
|
and r0, r0, #0xff
|
|
bl sub_02013020
|
|
str r0, [sp, #0x14]
|
|
bl sub_0200FDC8
|
|
add r1, r6, r7, lsl #1
|
|
strh r0, [r1, #0x50]
|
|
ldr r0, [sp, #0x14]
|
|
bl sub_02013034
|
|
add sb, sb, fp
|
|
tst sb, #2
|
|
addne r0, sb, #2
|
|
add r8, r8, fp
|
|
bicne sb, r0, #3
|
|
add r7, r7, #1
|
|
_02013504:
|
|
ldrh r0, [r5, #8]
|
|
cmp r7, r0
|
|
blt _02013438
|
|
mov r0, #0x26
|
|
strh r0, [r6]
|
|
mov r0, #0
|
|
strh r0, [r6, #2]
|
|
mov r0, #5
|
|
strh r0, [r6, #8]
|
|
ldrh r1, [r5, #8]
|
|
mov r0, sl, asr #1
|
|
strh r1, [r6, #0xe]
|
|
strh r0, [r6, #0xa]
|
|
_02013538:
|
|
mov r0, r6
|
|
bl sub_03036B24
|
|
_02013540:
|
|
add sp, sp, #0xc8
|
|
add sp, sp, #0x400
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02013550: .word 0x027F8878
|
|
_02013554: .word 0x0000FFFF
|
|
_02013558: .word 0x00000303
|
|
_0201355C: .word 0x0000020E
|
|
_02013560: .word 0x0000020D
|
|
arm_func_end sub_02013050
|
|
|
|
arm_func_start sub_02013564
|
|
sub_02013564: ; 0x02013564
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r4, r2
|
|
mov r6, r0
|
|
mov r5, r1
|
|
bl sub_03036B70
|
|
cmp r4, #0
|
|
movne r1, #0x26
|
|
moveq r1, #0xa
|
|
strh 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 sub_03036B24
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_02013564
|
|
|
|
arm_func_start sub_020135AC
|
|
sub_020135AC: ; 0x020135AC
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r0, _02013674 ; =0x027F8878
|
|
add r4, sp, #0
|
|
ldr r5, [r0, #0x550]
|
|
ldrh r0, [r5]
|
|
cmp r0, #5
|
|
beq _020135E8
|
|
bl sub_03036B70
|
|
mov r1, #0xb
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
b _02013668
|
|
_020135E8:
|
|
mov r0, r4
|
|
bl sub_02012088
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02013608
|
|
ldr r0, _02013678 ; =0x00000302
|
|
bl sub_02013680
|
|
b _02013668
|
|
_02013608:
|
|
mov r0, #2
|
|
strh r0, [r5]
|
|
add r0, r5, #0x100
|
|
ldrh r0, [r0, #0xee]
|
|
cmp r0, #0
|
|
bne _02013650
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_02011D74
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02013644
|
|
ldr r0, _0201367C ; =0x0000020E
|
|
bl sub_02013680
|
|
b _02013668
|
|
_02013644:
|
|
add r0, r5, #0x100
|
|
mov r1, #1
|
|
strh r1, [r0, #0xee]
|
|
_02013650:
|
|
bl sub_03036B70
|
|
mov r1, #0xb
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_02013668:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02013674: .word 0x027F8878
|
|
_02013678: .word 0x00000302
|
|
_0201367C: .word 0x0000020E
|
|
arm_func_end sub_020135AC
|
|
|
|
arm_func_start sub_02013680
|
|
sub_02013680: ; 0x02013680
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
bl sub_03036B70
|
|
mov r1, #0xb
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
strh r5, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03036B24
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_02013680
|
|
|
|
arm_func_start sub_020136B4
|
|
sub_020136B4: ; 0x020136B4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x250
|
|
ldr r1, _02013C44 ; =0x027F8878
|
|
add r4, sp, #0x50
|
|
ldr r7, [r1, #0x550]
|
|
ldr r5, [r1, #0x54c]
|
|
ldrh r1, [r7]
|
|
mov r6, r0
|
|
cmp r1, #2
|
|
bne _020136E8
|
|
ldr r0, [r7, #0xc8]
|
|
tst r0, #1
|
|
beq _0201370C
|
|
_020136E8:
|
|
bl sub_03036B70
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
mov r1, #6
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
b _02013C38
|
|
_0201370C:
|
|
ldr r0, [r6, #4]
|
|
add r1, r5, #0x10
|
|
mov r2, #0xc0
|
|
bl sub_0302D91C
|
|
ldrh r0, [r5, #0x4c]
|
|
cmp r0, #0x10
|
|
blo _02013758
|
|
ldrb r0, [r5, #0x5b]
|
|
tst r0, #1
|
|
bne _02013758
|
|
bl sub_03036B70
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
mov r1, #0xb
|
|
strh r1, [r0, #2]
|
|
mov r1, #6
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
b _02013C38
|
|
_02013758:
|
|
ldrh r1, [r5, #0x46]
|
|
add r0, r7, #0x100
|
|
mov r2, #1
|
|
ldrh r0, [r0, #0xf4]
|
|
mov r1, r2, lsl r1
|
|
tst r1, r0
|
|
beq _02013780
|
|
rsb r0, r2, #0x2000
|
|
tst r0, r1, asr #1
|
|
bne _020137A0
|
|
_02013780:
|
|
bl sub_03036B70
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
mov r1, #6
|
|
strh r1, [r0, #2]
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
b _02013C38
|
|
_020137A0:
|
|
bl sub_03036B70
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #6
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
add r0, r7, #0x100
|
|
ldrh r1, [r0, #0xec]
|
|
cmp r1, #1
|
|
ldrh r1, [r5, #0x3e]
|
|
bne _020137E8
|
|
tst r1, #1
|
|
movne r1, #1
|
|
strneh r1, [r0, #0xec]
|
|
moveq r1, #2
|
|
b _020137F8
|
|
_020137E8:
|
|
tst r1, #2
|
|
movne r1, #2
|
|
strneh r1, [r0, #0xec]
|
|
moveq r1, #1
|
|
_020137F8:
|
|
streqh r1, [r0, #0xec]
|
|
ldrh r0, [r5, #0x3c]
|
|
tst r0, #0x20
|
|
movne r1, #1
|
|
add r0, r7, #0x100
|
|
moveq r1, #0
|
|
strh r1, [r0, #0xee]
|
|
ldrh r0, [r5, #0x4c]
|
|
mov r1, r4
|
|
cmp r0, #0
|
|
moveq r0, #3
|
|
movne r0, #2
|
|
strh r0, [r7, #0xe6]
|
|
mov r0, #0xc
|
|
bl sub_0200FBC0
|
|
cmp r0, #0
|
|
beq _02013C38
|
|
mov r0, r4
|
|
mov r1, #0
|
|
bl sub_02011EF0
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02013864
|
|
ldr r0, _02013C48 ; =0x00000216
|
|
mov r2, #0
|
|
bl sub_02013C58
|
|
b _02013C38
|
|
_02013864:
|
|
ldrh r0, [r5, #0x4c]
|
|
cmp r0, #0x10
|
|
bhs _020138C0
|
|
ldrh r1, [r5, #0x42]
|
|
cmp r1, #0
|
|
moveq r0, #1
|
|
beq _0201388C
|
|
ldr r0, _02013C4C ; =0x00002710
|
|
bl sub_030363B8
|
|
add r0, r0, #1
|
|
_0201388C:
|
|
mov r0, r0, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
cmp r1, #0xff
|
|
movhi r1, #0xff
|
|
mov r0, r4
|
|
bl sub_02011CA4
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _020138C0
|
|
ldr r0, _02013C50 ; =0x0000020B
|
|
mov r2, #0
|
|
bl sub_02013C58
|
|
b _02013C38
|
|
_020138C0:
|
|
mov r0, r4
|
|
bl sub_020120A0
|
|
ldrh r1, [r0, #4]
|
|
mov r2, #0
|
|
cmp r1, #0
|
|
beq _020138E4
|
|
ldr r0, _02013C54 ; =0x00000303
|
|
bl sub_02013C58
|
|
b _02013C38
|
|
_020138E4:
|
|
mov r0, #3
|
|
strh r0, [r7]
|
|
ldr r0, [r6, #0x20]
|
|
mov r3, #1
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
mov r0, r0, lsl #0x10
|
|
mov r8, r0, lsr #0x10
|
|
mov r0, r4
|
|
mov r1, r8
|
|
bl sub_020115AC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02013930
|
|
mov r0, #1
|
|
mov r2, #0
|
|
bl sub_02013C58
|
|
b _02013C38
|
|
_02013930:
|
|
strh r8, [r7, #0xc6]
|
|
add r1, sp, #0xc
|
|
add r0, r5, #0x10
|
|
mov r2, #0x40
|
|
bl sub_0302D91C
|
|
ldrh r0, [r7, #0xe6]
|
|
cmp r0, #2
|
|
bne _0201398C
|
|
mov r0, #0x20
|
|
strh r0, [sp, #0x16]
|
|
ldr r0, [r5, #0x54]
|
|
add r1, sp, #0x20
|
|
strh r0, [sp, #0x18]
|
|
ldr r2, [r5, #0x54]
|
|
add r0, r6, #8
|
|
mov r2, r2, lsr #0x10
|
|
strh r2, [sp, #0x1a]
|
|
ldrh ip, [r5, #0x58]
|
|
mov r3, #0
|
|
mov r2, #0x18
|
|
strh ip, [sp, #0x1c]
|
|
strh r3, [sp, #0x1e]
|
|
bl sub_0302D91C
|
|
_0201398C:
|
|
add r2, sp, #0xc
|
|
mov r0, r4
|
|
mov r1, #0x7d0
|
|
bl sub_020116C4
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
ldreqh r2, [r0, #6]
|
|
cmpeq r2, #0
|
|
beq _020139C0
|
|
ldrh r2, [r0, #6]
|
|
mov r0, #3
|
|
bl sub_02013C58
|
|
b _02013C38
|
|
_020139C0:
|
|
add r1, r7, #0x8a
|
|
add r0, r0, #8
|
|
add r1, r1, #0x100
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
add r0, r7, #0x8a
|
|
add r1, sp, #6
|
|
add r0, r0, #0x100
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
ldrh r2, [r6, #0x26]
|
|
add r1, sp, #6
|
|
mov r0, r4
|
|
mov r3, #0x7d0
|
|
bl sub_0201173C
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0xc
|
|
ldreqh r2, [r0, #6]
|
|
cmpeq r2, #0x13
|
|
bne _02013A30
|
|
bl sub_03036B70
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
mov r1, #6
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
b _02013C38
|
|
_02013A30:
|
|
cmp r1, #0
|
|
ldreqh r2, [r0, #6]
|
|
cmpeq r2, #0
|
|
beq _02013A50
|
|
ldrh r2, [r0, #6]
|
|
mov r0, #4
|
|
bl sub_02013C58
|
|
b _02013C38
|
|
_02013A50:
|
|
add r0, r7, #0x8a
|
|
add r1, sp, #0
|
|
add r0, r0, #0x100
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
add r1, sp, #0
|
|
mov r0, r4
|
|
mov r2, #1
|
|
mov r3, #0x7d0
|
|
bl sub_02011834
|
|
mov r4, r0
|
|
bl sub_0302D4F0
|
|
ldrh r2, [r4, #4]
|
|
mov r6, r0
|
|
cmp r2, #0xc
|
|
ldreqh r1, [r4, #6]
|
|
cmpeq r1, #0x13
|
|
bne _02013ABC
|
|
bl sub_0302D504
|
|
bl sub_03036B70
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
mov r1, #6
|
|
strh r1, [r0, #8]
|
|
bl sub_03036B24
|
|
b _02013C38
|
|
_02013ABC:
|
|
cmp r2, #0
|
|
ldreqh r0, [r4, #6]
|
|
cmpeq r0, #0
|
|
beq _02013AE8
|
|
mov r0, r6
|
|
bl sub_0302D504
|
|
ldrh r1, [r4, #4]
|
|
ldrh r2, [r4, #6]
|
|
mov r0, #6
|
|
bl sub_02013C58
|
|
b _02013C38
|
|
_02013AE8:
|
|
ldrh r1, [r4, #8]
|
|
add r0, r7, #0x100
|
|
strh r1, [r0, #0x88]
|
|
ldrh r0, [r5, #0x58]
|
|
add r1, r7, #0x1f8
|
|
strh r0, [r7, #0xba]
|
|
mov r0, #1
|
|
mov r2, #0x10
|
|
bl sub_0302D764
|
|
ldrh r0, [r5, #0x12]
|
|
and r0, r0, #0xff
|
|
tst r0, #2
|
|
mov r0, r0, asr #2
|
|
addeq r0, r0, #0x19
|
|
and r4, r0, #0xff
|
|
mov r0, r4
|
|
bl sub_0200FDC8
|
|
strh r0, [r7, #0xbc]
|
|
mov r0, r4
|
|
bl sub_0200FD54
|
|
bl sub_0302D4F0
|
|
add r1, r7, #0x100
|
|
mov r2, #1
|
|
strh r2, [r1, #0x82]
|
|
strh r2, [r7, #0x86]
|
|
ldr r1, [r7, #0x7bc]
|
|
ldr r2, [r7, #0x7b8]
|
|
cmp r1, #0
|
|
mov r4, r0
|
|
cmpeq r2, #0
|
|
beq _02013B78
|
|
bl sub_0302CA0C
|
|
orr r0, r0, #1
|
|
str r0, [r7, #0x738]
|
|
orr r0, r1, #0
|
|
str r0, [r7, #0x73c]
|
|
_02013B78:
|
|
mov r0, #8
|
|
strh r0, [r7]
|
|
ldrb r0, [r5, #0x5b]
|
|
tst r0, #4
|
|
movne r1, #0x2a
|
|
ldrh r0, [r5, #0x5c]
|
|
moveq r1, #0
|
|
add r0, r0, r1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0200FF90
|
|
ldrb r0, [r5, #0x5b]
|
|
tst r0, #4
|
|
movne r1, #6
|
|
ldrh r0, [r5, #0x5e]
|
|
moveq r1, #0
|
|
add r0, r0, r1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0200FFE0
|
|
mov r0, r4
|
|
bl sub_0302D504
|
|
mov r0, #1
|
|
strh r0, [r7, #0xc2]
|
|
bl sub_03036B70
|
|
mov r4, r0
|
|
mov r0, #0xc
|
|
strh r0, [r4]
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
mov r0, #7
|
|
strh r0, [r4, #8]
|
|
add r0, r7, #0x100
|
|
ldrh r2, [r0, #0x88]
|
|
add r1, r7, #0x8a
|
|
strh r2, [r4, #0xa]
|
|
add r0, r1, #0x100
|
|
add r1, r4, #0x10
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
ldrh r1, [r7, #0x30]
|
|
mov r0, r4
|
|
strh r1, [r4, #0x16]
|
|
ldrh r1, [r7, #0x32]
|
|
strh r1, [r4, #0x18]
|
|
bl sub_03036B24
|
|
mov r0, r6
|
|
bl sub_0302D504
|
|
_02013C38:
|
|
add sp, sp, #0x250
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02013C44: .word 0x027F8878
|
|
_02013C48: .word 0x00000216
|
|
_02013C4C: .word 0x00002710
|
|
_02013C50: .word 0x0000020B
|
|
_02013C54: .word 0x00000303
|
|
arm_func_end sub_020136B4
|
|
|
|
arm_func_start sub_02013C58
|
|
sub_02013C58: ; 0x02013C58
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, r1
|
|
mov r4, r2
|
|
bl sub_03036B70
|
|
mov r1, #0xc
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
strh r6, [r0, #4]
|
|
strh r5, [r0, #6]
|
|
strh r4, [r0, #0xe]
|
|
bl sub_03036B24
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_02013C58
|
|
|
|
arm_func_start sub_02013C94
|
|
sub_02013C94: ; 0x02013C94
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r1, [r0, #4]
|
|
add r2, sp, #0
|
|
mov r3, r1, lsl #0x10
|
|
mov r1, #0
|
|
mov r4, r3, lsr #0x10
|
|
bl sub_02013CEC
|
|
cmp r0, #1
|
|
bne _02013CE0
|
|
bl sub_03036B70
|
|
mov r1, #0xd
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
strh r4, [r0, #8]
|
|
ldrh r1, [sp]
|
|
strh r1, [r0, #0xa]
|
|
bl sub_03036B24
|
|
_02013CE0:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02013C94
|
|
|
|
arm_func_start sub_02013CEC
|
|
sub_02013CEC: ; 0x02013CEC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x220
|
|
ldr r3, _02014270 ; =0x027F8878
|
|
ldr r4, [r0, #4]
|
|
movs sl, r1
|
|
ldrne r0, [r0, #8]
|
|
mov r1, r4, lsl #0x10
|
|
moveq r0, #0
|
|
mov r0, r0, lsl #0x10
|
|
mov fp, #0
|
|
ldr r7, [r3, #0x550]
|
|
mov r8, r1, lsr #0x10
|
|
ldrh r1, [r7]
|
|
mov r0, r0, lsr #0x10
|
|
cmp r1, #9
|
|
str r2, [sp]
|
|
mov r5, fp
|
|
str r0, [sp, #8]
|
|
cmpne r1, #7
|
|
bne _02013D4C
|
|
ldr r0, [r7, #0xc]
|
|
cmp r0, #1
|
|
moveq r5, #1
|
|
b _02013E44
|
|
_02013D4C:
|
|
cmp r1, #0xa
|
|
cmpne r1, #8
|
|
bne _02013E08
|
|
bl sub_0302D4F0
|
|
add r1, r7, #0x100
|
|
ldrh r1, [r1, #0x82]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
bne _02013DB0
|
|
bl sub_0302D504
|
|
cmp sl, #0
|
|
bne _02013DA8
|
|
bl sub_03036B70
|
|
mov r1, #0xd
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #6]
|
|
strh r8, [r0, #8]
|
|
strh r1, [r0, #0xa]
|
|
bl sub_03036B24
|
|
_02013DA8:
|
|
mov r0, #0
|
|
b _02014264
|
|
_02013DB0:
|
|
ldr r0, [r7, #0xc]
|
|
cmp r0, #1
|
|
bne _02013DE0
|
|
mov r0, #0
|
|
str r0, [r7, #0xc]
|
|
mov r5, #1
|
|
bl sub_0201537C
|
|
bl sub_0200FE30
|
|
ldrh r0, [r7]
|
|
cmp r0, #0xa
|
|
moveq r0, #8
|
|
streqh r0, [r7]
|
|
_02013DE0:
|
|
add r0, r7, #0x100
|
|
mov r1, #0
|
|
strh r1, [r0, #0x82]
|
|
strh r1, [r7, #0x86]
|
|
str r1, [r7, #0x14]
|
|
str r1, [r7, #0x10]
|
|
mov r0, r4
|
|
str r1, [r7, #0x1c]
|
|
bl sub_0302D504
|
|
b _02013E44
|
|
_02013E08:
|
|
cmp sl, #0
|
|
bne _02013E3C
|
|
bl sub_03036B70
|
|
mov r1, #0xd
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
mov r1, fp
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #6]
|
|
strh r8, [r0, #8]
|
|
strh r1, [r0, #0xa]
|
|
bl sub_03036B24
|
|
_02013E3C:
|
|
mov r0, #0
|
|
b _02014264
|
|
_02013E44:
|
|
ldrh r0, [r7]
|
|
cmp r0, #0xa
|
|
cmpne r0, #8
|
|
bne _0201406C
|
|
add r0, r7, #0x8a
|
|
add r1, sp, #0x1a
|
|
add r0, r0, #0x100
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
mov sb, #0
|
|
add r6, sp, #0x1a
|
|
mov r4, #3
|
|
b _02013EFC
|
|
_02013E78:
|
|
add r0, sp, #0x20
|
|
mov r1, r6
|
|
mov r2, r4
|
|
bl sub_020117BC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #7
|
|
bgt _02013EB4
|
|
bge _02013EBC
|
|
cmp r1, #1
|
|
bgt _02013EC4
|
|
cmp r1, #0
|
|
blt _02013EC4
|
|
cmpne r1, #1
|
|
beq _02013F04
|
|
b _02013EC4
|
|
_02013EB4:
|
|
cmp r1, #0xc
|
|
bne _02013EC4
|
|
_02013EBC:
|
|
add sb, sb, #1
|
|
b _02013EFC
|
|
_02013EC4:
|
|
cmp sl, #0
|
|
mov r2, r8
|
|
mov r0, #5
|
|
mov r3, #0
|
|
beq _02013EE0
|
|
bl sub_02014380
|
|
b _02013EE4
|
|
_02013EE0:
|
|
bl sub_0201433C
|
|
_02013EE4:
|
|
cmp r5, #0
|
|
beq _02013EF4
|
|
mov r0, #1
|
|
bl sub_0201700C
|
|
_02013EF4:
|
|
mov r0, #0
|
|
b _02014264
|
|
_02013EFC:
|
|
cmp sb, #2
|
|
blt _02013E78
|
|
_02013F04:
|
|
mov r0, #0
|
|
strh r0, [r7, #0xc2]
|
|
mov r0, #3
|
|
mov fp, #1
|
|
strh r0, [r7]
|
|
add r0, sp, #0x20
|
|
mov r1, fp
|
|
bl sub_02011558
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02013F68
|
|
cmp sl, #0
|
|
mov r2, r8
|
|
mov r0, #0
|
|
mov r3, fp
|
|
beq _02013F4C
|
|
bl sub_02014380
|
|
b _02013F50
|
|
_02013F4C:
|
|
bl sub_0201433C
|
|
_02013F50:
|
|
cmp r5, #0
|
|
beq _02013F60
|
|
mov r0, #1
|
|
bl sub_0201700C
|
|
_02013F60:
|
|
mov r0, #0
|
|
b _02014264
|
|
_02013F68:
|
|
add r0, sp, #0x20
|
|
bl sub_02012088
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02013FB8
|
|
ldr r0, _02014274 ; =0x00000302
|
|
cmp sl, #0
|
|
mov r2, r8
|
|
beq _02013F98
|
|
mov r3, fp
|
|
bl sub_02014380
|
|
b _02013FA0
|
|
_02013F98:
|
|
mov r3, fp
|
|
bl sub_0201433C
|
|
_02013FA0:
|
|
cmp r5, #0
|
|
beq _02013FB0
|
|
mov r0, #1
|
|
bl sub_0201700C
|
|
_02013FB0:
|
|
mov r0, #0
|
|
b _02014264
|
|
_02013FB8:
|
|
mov r0, #2
|
|
strh r0, [r7]
|
|
mov r1, #0
|
|
str r1, [r7, #0x198]
|
|
add r3, r7, #0x100
|
|
add r0, r7, #0x19c
|
|
mov r2, #0x50
|
|
strh r1, [r3, #0x96]
|
|
bl sub_0302D860
|
|
bl sub_0200FF5C
|
|
cmp sl, #1
|
|
bne _02014048
|
|
bl sub_03036B70
|
|
mov r4, r0
|
|
mov r0, #0xc
|
|
strh r0, [r4]
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
mov r0, #9
|
|
strh r0, [r4, #8]
|
|
ldr r0, [sp, #8]
|
|
mov r2, #6
|
|
strh r0, [r4, #0xc]
|
|
add r0, r7, #0x100
|
|
ldrh r1, [r0, #0x88]
|
|
add r0, sp, #0x1a
|
|
strh r1, [r4, #0xa]
|
|
add r1, r4, #0x10
|
|
bl sub_0302D91C
|
|
ldrh r1, [r7, #0x30]
|
|
mov r0, r4
|
|
strh r1, [r4, #0x16]
|
|
ldrh r1, [r7, #0x32]
|
|
strh r1, [r4, #0x18]
|
|
bl sub_03036B24
|
|
b _02014058
|
|
_02014048:
|
|
mov r0, #0
|
|
add r2, sp, #0x1a
|
|
mov r1, r0
|
|
bl sub_02014278
|
|
_02014058:
|
|
cmp r5, #0
|
|
beq _02014254
|
|
mov r0, #1
|
|
bl sub_0201700C
|
|
b _02014254
|
|
_0201406C:
|
|
mov r6, #1
|
|
b _0201424C
|
|
_02014074:
|
|
add r0, r7, #0x100
|
|
ldrh r0, [r0, #0x82]
|
|
mov r1, #1
|
|
mov sb, r1, lsl r6
|
|
and r0, r0, r8
|
|
tst sb, r0
|
|
beq _02014248
|
|
sub r1, r6, #1
|
|
mov r2, #6
|
|
mul r0, r1, r2
|
|
str r0, [sp, #0x10]
|
|
add r0, r7, #0x128
|
|
str r0, [sp, #0xc]
|
|
mov r0, r6, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
str r0, [sp, #4]
|
|
ldr r1, [sp, #0xc]
|
|
ldr r0, [sp, #0x10]
|
|
add r0, r1, r0
|
|
add r1, sp, #0x14
|
|
bl sub_0302D91C
|
|
mov r4, #0
|
|
b _02014138
|
|
_020140D0:
|
|
add r0, sp, #0x20
|
|
add r1, sp, #0x14
|
|
mov r2, #3
|
|
bl sub_020117BC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02014140
|
|
cmp r1, #7
|
|
cmpne r1, #0xc
|
|
bne _02014100
|
|
add r4, r4, #1
|
|
b _02014138
|
|
_02014100:
|
|
cmp sl, #0
|
|
mov r2, r8
|
|
mov r0, #5
|
|
mov r3, fp
|
|
beq _0201411C
|
|
bl sub_02014380
|
|
b _02014120
|
|
_0201411C:
|
|
bl sub_0201433C
|
|
_02014120:
|
|
cmp r5, #0
|
|
beq _02014130
|
|
mov r0, #1
|
|
bl sub_0201700C
|
|
_02014130:
|
|
mov r0, #0
|
|
b _02014264
|
|
_02014138:
|
|
cmp r4, #2
|
|
blt _020140D0
|
|
_02014140:
|
|
bl sub_0302D4F0
|
|
mov r4, r0
|
|
add r1, r7, #0x100
|
|
ldrh r3, [r1, #0x82]
|
|
tst r3, sb
|
|
beq _02014244
|
|
ldr r2, [sp, #0xc]
|
|
ldr r0, [sp, #0x10]
|
|
mov ip, #1
|
|
add r0, r2, r0
|
|
ldr r2, [sp, #4]
|
|
orr r2, fp, ip, lsl r2
|
|
mov r2, r2, lsl #0x10
|
|
mov fp, r2, lsr #0x10
|
|
mvn r2, sb
|
|
and r3, r3, r2
|
|
strh r3, [r1, #0x82]
|
|
ldrh r3, [r7, #0x86]
|
|
mov r1, #0
|
|
and r2, r3, r2
|
|
strh r2, [r7, #0x86]
|
|
ldr r2, [sp, #4]
|
|
add r2, r7, r2, lsl #3
|
|
str r1, [r2, #0x738]
|
|
str r1, [r2, #0x73c]
|
|
mov r2, #6
|
|
bl sub_0302D860
|
|
mov r0, r4
|
|
bl sub_0302D504
|
|
cmp sl, #1
|
|
bne _02014218
|
|
bl sub_03036B70
|
|
mov r4, r0
|
|
mov r0, #8
|
|
strh r0, [r4]
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
mov r0, #9
|
|
strh r0, [r4, #8]
|
|
ldr r0, [sp, #8]
|
|
add r1, r4, #0xa
|
|
strh r0, [r4, #0x12]
|
|
ldr r0, [sp, #4]
|
|
mov r2, #6
|
|
strh r0, [r4, #0x10]
|
|
add r0, sp, #0x14
|
|
bl sub_0302D91C
|
|
ldrh r1, [r7, #0x30]
|
|
mov r0, r4
|
|
strh r1, [r4, #0x2c]
|
|
ldrh r1, [r7, #0x32]
|
|
strh r1, [r4, #0x2e]
|
|
bl sub_03036B24
|
|
b _0201422C
|
|
_02014218:
|
|
mov r0, r6, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
add r2, sp, #0x14
|
|
mov r0, #1
|
|
bl sub_02014278
|
|
_0201422C:
|
|
cmp r5, #0
|
|
beq _02014248
|
|
mov r0, sb, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0201700C
|
|
b _02014248
|
|
_02014244:
|
|
bl sub_0302D504
|
|
_02014248:
|
|
add r6, r6, #1
|
|
_0201424C:
|
|
cmp r6, #0x10
|
|
blt _02014074
|
|
_02014254:
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
strneh fp, [r0]
|
|
mov r0, #1
|
|
_02014264:
|
|
add sp, sp, #0x220
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02014270: .word 0x027F8878
|
|
_02014274: .word 0x00000302
|
|
arm_func_end sub_02013CEC
|
|
|
|
arm_func_start sub_02014278
|
|
sub_02014278: ; 0x02014278
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r3, _02014334 ; =0x027F8878
|
|
mov r8, r0
|
|
ldr r5, [r3, #0x550]
|
|
mov r7, r1
|
|
mov r6, r2
|
|
bl sub_03036B70
|
|
mov r4, r0
|
|
mov r0, #0
|
|
strh r0, [r4, #2]
|
|
cmp r8, #0
|
|
mov r1, #0x1a
|
|
mov r2, #6
|
|
beq _020142E8
|
|
mov r0, #8
|
|
strh r0, [r4]
|
|
strh r1, [r4, #8]
|
|
ldr r0, _02014338 ; =0x0000F001
|
|
add r1, r4, #0xa
|
|
strh r0, [r4, #0x12]
|
|
strh r7, [r4, #0x10]
|
|
mov r0, r6
|
|
bl sub_0302D91C
|
|
ldrh r0, [r5, #0x30]
|
|
strh r0, [r4, #0x2c]
|
|
ldrh r0, [r5, #0x32]
|
|
strh r0, [r4, #0x2e]
|
|
b _02014324
|
|
_020142E8:
|
|
mov r0, #0xc
|
|
strh r0, [r4]
|
|
ldr r0, _02014338 ; =0x0000F001
|
|
strh r1, [r4, #8]
|
|
strh r0, [r4, #0xc]
|
|
add r0, r5, #0x100
|
|
ldrh r1, [r0, #0x88]
|
|
mov r0, r6
|
|
strh r1, [r4, #0xa]
|
|
add r1, r4, #0x10
|
|
bl sub_0302D91C
|
|
ldrh r0, [r5, #0x30]
|
|
strh r0, [r4, #0x16]
|
|
ldrh r0, [r5, #0x32]
|
|
strh r0, [r4, #0x18]
|
|
_02014324:
|
|
mov r0, r4
|
|
bl sub_03036B24
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02014334: .word 0x027F8878
|
|
_02014338: .word 0x0000F001
|
|
arm_func_end sub_02014278
|
|
|
|
arm_func_start sub_0201433C
|
|
sub_0201433C: ; 0x0201433C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl sub_03036B70
|
|
mov r1, #0xd
|
|
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, #0xa]
|
|
bl sub_03036B24
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_0201433C
|
|
|
|
arm_func_start sub_02014380
|
|
sub_02014380: ; 0x02014380
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl sub_03036B70
|
|
mov r1, #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, #0xa]
|
|
bl sub_03036B24
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_02014380
|
|
|
|
arm_func_start sub_020143C4
|
|
sub_020143C4: ; 0x020143C4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x204
|
|
ldr r1, _0201474C ; =0x027F8878
|
|
mov sl, r0
|
|
ldr r8, [r1, #0x550]
|
|
ldr fp, [sl, #4]
|
|
ldrh r1, [r8, #0x9c]
|
|
ldr r4, [sl, #8]
|
|
ldr r5, [sl, #0xc]
|
|
ldr r6, [sl, #0x10]
|
|
ldr r0, _02014750 ; =0x027F7878
|
|
cmp r1, #0
|
|
mov r7, #0
|
|
bne _02014448
|
|
ldrh r1, [r8, #0x3c]
|
|
add r1, r1, #0x1f
|
|
bic r1, r1, #0x1f
|
|
cmp r6, r1
|
|
add r1, r8, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
movlo r7, #6
|
|
cmp r1, #0
|
|
ldrneh r1, [r8, #0x3e]
|
|
addne r1, r1, #0x51
|
|
bne _0201443C
|
|
ldrh r2, [r8, #0x3e]
|
|
ldrh r1, [r8, #0xf8]
|
|
add r2, r2, #0xc
|
|
mul r1, r2, r1
|
|
add r1, r1, #0x29
|
|
_0201443C:
|
|
bic r1, r1, #0x1f
|
|
cmp r4, r1
|
|
movlo r7, #6
|
|
_02014448:
|
|
ldrh r1, [r8, #0xe6]
|
|
cmp r1, #2
|
|
bne _02014478
|
|
add r0, r0, #0x1000
|
|
ldr r1, [r0, #0x54c]
|
|
add r0, r8, #0x100
|
|
ldrh r1, [r1, #0x46]
|
|
ldrh r3, [r0, #0xf6]
|
|
mov r2, #1
|
|
mov r0, r2, lsl r1
|
|
tst r3, r0, asr #1
|
|
moveq r7, #6
|
|
_02014478:
|
|
cmp r7, #0
|
|
beq _020144A0
|
|
bl sub_03036B70
|
|
mov r1, #0xe
|
|
strh r1, [r0]
|
|
strh r7, [r0, #2]
|
|
mov r1, #0xa
|
|
strh r1, [r0, #4]
|
|
bl sub_03036B24
|
|
b _02014740
|
|
_020144A0:
|
|
ldr r0, [r8, #0xc]
|
|
mov r1, #0
|
|
cmp r0, #0
|
|
strne r1, [r8, #0xc]
|
|
movne r1, #1
|
|
cmp r1, #0
|
|
beq _020144C4
|
|
ldr r0, _02014754 ; =0x0000FFFF
|
|
bl sub_0201700C
|
|
_020144C4:
|
|
bl sub_02015B60
|
|
bl sub_0302D4F0
|
|
str r0, [sp]
|
|
add r0, sl, #0x14
|
|
mov r1, #0
|
|
bl sub_02017C0C
|
|
ldr r0, _0201474C ; =0x027F8878
|
|
ldr r7, [sl, #0x30]
|
|
ldr sb, [r0, #0x550]
|
|
ldrh r0, [sb]
|
|
cmp r0, #9
|
|
cmpne r0, #0xa
|
|
beq _020145B8
|
|
bl sub_0302D4F0
|
|
tst r7, #4
|
|
ldrneh r2, [sl, #0x38]
|
|
add r1, sb, #0x700
|
|
ldreqh r2, [sb, #0x5c]
|
|
cmp r2, #0
|
|
moveq r2, #0x10
|
|
tst r7, #1
|
|
ldrneh r3, [sl, #0x34]
|
|
ldreqh r3, [sb, #0x58]
|
|
cmp r3, #0
|
|
moveq r3, #0x10
|
|
cmp r3, r2
|
|
movhi r3, r2
|
|
tst r7, #2
|
|
ldrneh ip, [sl, #0x36]
|
|
ldreqh ip, [sb, #0x5a]
|
|
strh r2, [r1, #0xc4]
|
|
cmp ip, #0
|
|
moveq ip, #0x10
|
|
cmp ip, r2
|
|
strh r3, [r1, #0xc0]
|
|
movhi ip, r2
|
|
strh ip, [r1, #0xc2]
|
|
ldrsh r1, [sb, #0x62]
|
|
cmp r1, r2
|
|
strgth r2, [sb, #0x62]
|
|
tst r7, #0x200
|
|
ldrneh r2, [sl, #0x3a]
|
|
add r1, sb, #0x700
|
|
ldreqh r2, [sb, #0x98]
|
|
tst r7, #0x400
|
|
strh r2, [r1, #0xca]
|
|
ldrneb r2, [sl, #0x3c]
|
|
add r1, sb, #0x700
|
|
ldreqh r2, [sb, #0x92]
|
|
tst r7, #0x800
|
|
strh r2, [r1, #0xc6]
|
|
ldrneb r2, [sl, #0x3d]
|
|
add r1, sb, #0x700
|
|
ldreqh r2, [sb, #0x94]
|
|
tst r7, #0x1000
|
|
strh r2, [r1, #0xc8]
|
|
ldrneb r2, [sl, #0x3e]
|
|
add r1, sb, #0x700
|
|
ldreqh r2, [sb, #0x9a]
|
|
strh r2, [r1, #0xcc]
|
|
bl sub_0302D504
|
|
_020145B8:
|
|
ldrh r0, [r8]
|
|
add r0, r0, #0xf9
|
|
add r0, r0, #0xff00
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #1
|
|
bhi _02014718
|
|
mov r2, #0
|
|
strh r2, [r8, #0x84]
|
|
strh r2, [r8, #0x5e]
|
|
mov r1, #1
|
|
strh r1, [r8, #0x60]
|
|
strh r2, [r8, #0x88]
|
|
strh r2, [r8, #0x9e]
|
|
mov r0, #0x3c
|
|
strh r0, [r8, #0xa0]
|
|
str r2, [r8, #0x734]
|
|
strh r2, [r8, #0x8a]
|
|
strh r2, [r8, #0x8c]
|
|
strh r2, [r8, #0x8e]
|
|
strh r2, [r8, #0x90]
|
|
strh r2, [r8, #0x66]
|
|
str fp, [r8, #0x74]
|
|
strh r4, [r8, #0x72]
|
|
add r0, fp, r4
|
|
str r0, [r8, #0x78]
|
|
strh r2, [r8, #0x70]
|
|
str r5, [r8, #0x7c]
|
|
strh r6, [r8, #0x80]
|
|
strh r2, [r8, #0x62]
|
|
strh r2, [r8, #0x64]
|
|
strh r2, [r8, #0x68]
|
|
strh r2, [r8, #0x6a]
|
|
rsb r0, r1, #0x10000
|
|
strh r0, [r8, #0xbe]
|
|
strh r1, [r8, #0xc0]
|
|
bl sub_0302CA0C
|
|
orr r1, r1, #0
|
|
orr r2, r0, #1
|
|
mov r3, #0
|
|
_02014658:
|
|
add r0, r8, r3, lsl #3
|
|
str r2, [r0, #0x738]
|
|
add r3, r3, #1
|
|
str r1, [r0, #0x73c]
|
|
cmp r3, #0x10
|
|
blt _02014658
|
|
bl sub_0200FE90
|
|
mov r0, #0
|
|
strh r0, [r8, #0xce]
|
|
bl sub_02015390
|
|
ldrh r0, [r8]
|
|
cmp r0, #8
|
|
moveq r0, #0xa
|
|
streqh r0, [r8]
|
|
beq _020146A0
|
|
cmp r0, #7
|
|
moveq r0, #9
|
|
streqh r0, [r8]
|
|
_020146A0:
|
|
bl sub_03036B70
|
|
mov r1, #0xe
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xa
|
|
strh r1, [r0, #4]
|
|
bl sub_03036B24
|
|
mov r1, #1
|
|
ldr r0, [sp]
|
|
str r1, [r8, #0xc]
|
|
bl sub_0302D504
|
|
add r0, sp, #4
|
|
mov r1, #1
|
|
bl sub_02011EF0
|
|
mov r4, r0
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _02014740
|
|
bl sub_03036B70
|
|
mov r2, #0xe
|
|
strh r2, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
add r1, r2, #0x208
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r4, #4]
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
b _02014740
|
|
_02014718:
|
|
ldr r0, [sp]
|
|
bl sub_0302D504
|
|
bl sub_03036B70
|
|
mov r1, #0xe
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xa
|
|
strh r1, [r0, #4]
|
|
bl sub_03036B24
|
|
_02014740:
|
|
add sp, sp, #0x204
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201474C: .word 0x027F8878
|
|
_02014750: .word 0x027F7878
|
|
_02014754: .word 0x0000FFFF
|
|
arm_func_end sub_020143C4
|
|
|
|
arm_func_start sub_02014758
|
|
sub_02014758: ; 0x02014758
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x14
|
|
ldr r1, _0201488C ; =0x027F8878
|
|
ldr r2, [r0, #0x10]
|
|
ldr sl, [r1, #0x550]
|
|
ldr r5, [r0, #8]
|
|
add r4, sl, #0x100
|
|
ldr r3, [r0, #0x14]
|
|
ldrh r8, [r4, #0x88]
|
|
mov r1, r5, lsl #0x10
|
|
ldrh sb, [r4, #0x82]
|
|
ldr fp, [r0, #4]
|
|
ldr r5, [r0, #0xc]
|
|
cmp r8, #0
|
|
ldr r6, [r0, #0x18]
|
|
ldr r7, [r0, #0x1c]
|
|
mov r2, r2, lsl #0x10
|
|
mov r0, r2, lsr #0x10
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sl, #0xc]
|
|
movne r5, #1
|
|
cmp r0, #0
|
|
mov r3, r3, lsl #0x10
|
|
mov r4, r1, lsr #0x10
|
|
mov r1, r3, lsr #0x10
|
|
moveq r8, #3
|
|
beq _020147EC
|
|
tst r5, sb
|
|
moveq r8, #0
|
|
beq _020147EC
|
|
str fp, [sp]
|
|
stmib sp, {r4, r6, r7}
|
|
ldr r2, [sp, #0x10]
|
|
mov r0, sb
|
|
mov r3, r5
|
|
bl sub_02016BA8
|
|
mov r8, r0
|
|
_020147EC:
|
|
cmp r8, #2
|
|
beq _02014880
|
|
bl sub_03036B70
|
|
mov r1, #0x81
|
|
strh r1, [r0]
|
|
strh r8, [r0, #2]
|
|
mov r1, #0x14
|
|
strh r1, [r0, #8]
|
|
ldr r1, [sp, #0x10]
|
|
cmp r8, #0xa
|
|
strh r1, [r0, #0xa]
|
|
andeq r1, r5, sb
|
|
strh r5, [r0, #0xc]
|
|
movne r1, #0
|
|
strh r1, [r0, #0xe]
|
|
mov r1, #0
|
|
strh r1, [r0, #0x10]
|
|
strh r4, [r0, #0x18]
|
|
str fp, [r0, #0x14]
|
|
str r6, [r0, #0x1c]
|
|
ldr r1, _02014890 ; =0x0000FFFF
|
|
str r7, [r0, #0x20]
|
|
strh r1, [r0, #0x1a]
|
|
add r1, sl, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
ldrh r2, [sl, #0x30]
|
|
cmp r1, #0
|
|
ldrh r3, [sl, #0x32]
|
|
moveq r1, r2
|
|
movne r1, r3
|
|
strh r1, [r0, #0x24]
|
|
add r1, sl, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
cmp r1, #0
|
|
movne r3, r2
|
|
strh r3, [r0, #0x26]
|
|
bl sub_03036B24
|
|
_02014880:
|
|
add sp, sp, #0x14
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201488C: .word 0x027F8878
|
|
_02014890: .word 0x0000FFFF
|
|
arm_func_end sub_02014758
|
|
|
|
arm_func_start sub_02014894
|
|
sub_02014894: ; 0x02014894
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r0, _020149A4 ; =0x027F8878
|
|
mov r4, #0
|
|
ldr r6, [r0, #0x550]
|
|
ldrh r0, [r6]
|
|
cmp r0, #9
|
|
cmpne r0, #0xa
|
|
beq _020148D4
|
|
bl sub_03036B70
|
|
mov r1, #0x10
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
b _02014998
|
|
_020148D4:
|
|
bl sub_0302D4F0
|
|
ldr r1, [r6, #0xc]
|
|
mov r5, r0
|
|
mov r0, #0
|
|
cmp r1, #1
|
|
str r0, [r6, #0xc]
|
|
moveq r4, #1
|
|
bl sub_0201537C
|
|
bl sub_0200FE30
|
|
ldrh r0, [r6]
|
|
cmp r0, #0xa
|
|
moveq r0, #8
|
|
streqh r0, [r6]
|
|
beq _02014918
|
|
cmp r0, #9
|
|
moveq r0, #7
|
|
streqh r0, [r6]
|
|
_02014918:
|
|
mov r0, r5
|
|
bl sub_0302D504
|
|
add r0, sp, #0
|
|
mov r1, #0
|
|
bl sub_02011EF0
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02014944
|
|
ldr r0, _020149A8 ; =0x00000216
|
|
bl sub_020149B0
|
|
b _02014998
|
|
_02014944:
|
|
add r0, sp, #0
|
|
mov r1, #7
|
|
bl sub_02011B9C
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02014968
|
|
mov r0, #0x104
|
|
bl sub_020149B0
|
|
b _02014998
|
|
_02014968:
|
|
mov r0, #0
|
|
strh r0, [r6, #0x8a]
|
|
cmp r4, #0
|
|
beq _02014980
|
|
ldr r0, _020149AC ; =0x0000FFFF
|
|
bl sub_0201700C
|
|
_02014980:
|
|
bl sub_03036B70
|
|
mov r1, #0x10
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_02014998:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020149A4: .word 0x027F8878
|
|
_020149A8: .word 0x00000216
|
|
_020149AC: .word 0x0000FFFF
|
|
arm_func_end sub_02014894
|
|
|
|
arm_func_start sub_020149B0
|
|
sub_020149B0: ; 0x020149B0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
bl sub_03036B70
|
|
mov r1, #0x10
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
strh r5, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03036B24
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_020149B0
|
|
|
|
arm_func_start sub_020149E4
|
|
sub_020149E4: ; 0x020149E4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _02014A6C ; =0x027F8878
|
|
ldr r2, [r0, #8]
|
|
ldr r4, [r1, #0x550]
|
|
mov r5, r2, lsl #0x10
|
|
ldr r6, [r0, #4]
|
|
mov r7, r5, lsr #0x10
|
|
bl sub_0302D4F0
|
|
str r6, [r4, #0xb0]
|
|
strh r7, [r4, #0xb8]
|
|
add r1, r6, r5, lsr #16
|
|
str r1, [r4, #0xb4]
|
|
mov r1, #0
|
|
strh r1, [r4, #0xae]
|
|
str r1, [r4, #0xa8]
|
|
strh r1, [r4, #0xac]
|
|
str r1, [r4, #0x18]
|
|
mov r1, #0xb
|
|
strh r1, [r4]
|
|
mov r5, r0
|
|
bl sub_03036B70
|
|
mov r1, #0x11
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0xe
|
|
strh r1, [r0, #4]
|
|
bl sub_03036B24
|
|
mov r1, #1
|
|
mov r0, r5
|
|
str r1, [r4, #0x10]
|
|
bl sub_0302D504
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02014A6C: .word 0x027F8878
|
|
arm_func_end sub_020149E4
|
|
|
|
arm_func_start sub_02014A70
|
|
sub_02014A70: ; 0x02014A70
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x230
|
|
ldr r1, _02014B64 ; =0x027F8878
|
|
mov r5, r0
|
|
ldr r4, [r1, #0x550]
|
|
add r0, r5, #4
|
|
add r1, r4, #0xa2
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
ldr r0, [r5, #0xc]
|
|
add r1, sp, #0
|
|
str r0, [r4, #0xa8]
|
|
ldr r2, [r5, #0x10]
|
|
mov r0, #1
|
|
strh r2, [r4, #0xac]
|
|
str r0, [r4, #0x18]
|
|
mov r0, #0
|
|
mov r2, #0x30
|
|
bl sub_0302D764
|
|
mov r0, #0
|
|
strh r0, [sp]
|
|
ldr r1, [r5, #0x10]
|
|
add r0, r4, #0x100
|
|
strh r1, [sp, #6]
|
|
ldrh r0, [r0, #0xec]
|
|
add r1, sp, #0x18
|
|
cmp r0, #2
|
|
moveq r3, #0x14
|
|
movne r3, #0xa
|
|
add r0, r5, #4
|
|
mov r2, #6
|
|
strb r3, [sp, #0xe]
|
|
bl sub_0302D91C
|
|
add r1, sp, #0x1e
|
|
add r0, r4, #0xe0
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
ldr r2, [r5, #0xc]
|
|
add r0, sp, #0x30
|
|
add r1, sp, #0
|
|
str r2, [sp, #0x2c]
|
|
bl sub_020119F0
|
|
mov r4, r0
|
|
bl sub_03036B70
|
|
mov r1, #0x12
|
|
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, #0x100
|
|
strneh r1, [r0, #4]
|
|
ldrneh r1, [r4, #4]
|
|
strneh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
add sp, sp, #0x230
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02014B64: .word 0x027F8878
|
|
arm_func_end sub_02014A70
|
|
|
|
arm_func_start sub_02014B68
|
|
sub_02014B68: ; 0x02014B68
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r0, _02014C20 ; =0x027F8878
|
|
ldr r4, [r0, #0x550]
|
|
bl sub_0302D4F0
|
|
ldrh r1, [r4]
|
|
cmp r1, #0xb
|
|
beq _02014BA8
|
|
bl sub_0302D504
|
|
bl sub_03036B70
|
|
mov r1, #0x13
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
b _02014C14
|
|
_02014BA8:
|
|
mov r1, #0
|
|
str r1, [r4, #0x10]
|
|
mov r1, #8
|
|
strh r1, [r4]
|
|
bl sub_0302D504
|
|
add r0, sp, #0
|
|
mov r1, #7
|
|
bl sub_02011B9C
|
|
ldrh r4, [r0, #4]
|
|
cmp r4, #0
|
|
beq _02014BFC
|
|
bl sub_03036B70
|
|
mov r1, #0x13
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x104
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03036B24
|
|
b _02014C14
|
|
_02014BFC:
|
|
bl sub_03036B70
|
|
mov r1, #0x13
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_02014C14:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02014C20: .word 0x027F8878
|
|
arm_func_end sub_02014B68
|
|
|
|
arm_func_start sub_02014C24
|
|
sub_02014C24: ; 0x02014C24
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02014CC8 ; =0x027F8878
|
|
ldr r2, [r0, #4]
|
|
ldr r3, [r1, #0x550]
|
|
add r1, r3, #0x100
|
|
strh r2, [r1, #0x96]
|
|
ldrh r1, [r1, #0x96]
|
|
cmp r1, #3
|
|
addls pc, pc, r1, lsl #2
|
|
b _02014C74
|
|
_02014C4C: ; jump table
|
|
b _02014C5C ; case 0
|
|
b _02014C68 ; case 1
|
|
b _02014C68 ; case 2
|
|
b _02014C68 ; case 3
|
|
_02014C5C:
|
|
mov r1, #0
|
|
str r1, [r3, #0x198]
|
|
b _02014C7C
|
|
_02014C68:
|
|
mov r1, #1
|
|
str r1, [r3, #0x198]
|
|
b _02014C7C
|
|
_02014C74:
|
|
mov r1, #0
|
|
str r1, [r3, #0x198]
|
|
_02014C7C:
|
|
ldr r1, [r3, #0x198]
|
|
mov r2, #0x50
|
|
cmp r1, #1
|
|
bne _02014C9C
|
|
ldr r0, [r0, #8]
|
|
add r1, r3, #0x19c
|
|
bl sub_0302D91C
|
|
b _02014CA8
|
|
_02014C9C:
|
|
add r0, r3, #0x19c
|
|
mov r1, #0
|
|
bl sub_0302D860
|
|
_02014CA8:
|
|
bl sub_03036B70
|
|
mov r1, #0x14
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02014CC8: .word 0x027F8878
|
|
arm_func_end sub_02014C24
|
|
|
|
arm_func_start sub_02014CCC
|
|
sub_02014CCC: ; 0x02014CCC
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r1, _02014DC0 ; =0x027F8878
|
|
mov r5, r0
|
|
ldr r4, [r1, #0x550]
|
|
ldr r1, [r5, #4]
|
|
add r0, r4, #0x100
|
|
strh r1, [r0, #0x96]
|
|
ldrh r0, [r0, #0x96]
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _02014D24
|
|
_02014CFC: ; jump table
|
|
b _02014D0C ; case 0
|
|
b _02014D18 ; case 1
|
|
b _02014D18 ; case 2
|
|
b _02014D18 ; case 3
|
|
_02014D0C:
|
|
mov r0, #0
|
|
str r0, [r4, #0x198]
|
|
b _02014D2C
|
|
_02014D18:
|
|
mov r0, #1
|
|
str r0, [r4, #0x198]
|
|
b _02014D2C
|
|
_02014D24:
|
|
mov r0, #0
|
|
str r0, [r4, #0x198]
|
|
_02014D2C:
|
|
ldr r0, [r4, #0x198]
|
|
mov r2, #0x50
|
|
cmp r0, #1
|
|
bne _02014D4C
|
|
ldr r0, [r5, #8]
|
|
add r1, r4, #0x19c
|
|
bl sub_0302D91C
|
|
b _02014D58
|
|
_02014D4C:
|
|
add r0, r4, #0x19c
|
|
mov r1, #0
|
|
bl sub_0302D860
|
|
_02014D58:
|
|
ldr r1, [r5, #0xc]
|
|
add r0, sp, #0
|
|
strh r1, [r4, #0xc4]
|
|
ldrh r1, [r4, #0xc4]
|
|
bl sub_02011C48
|
|
ldrh r4, [r0, #4]
|
|
cmp r4, #0
|
|
beq _02014D9C
|
|
bl sub_03036B70
|
|
mov r2, #0x14
|
|
mov r1, #1
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
rsb r1, r1, #0x208
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03036B24
|
|
_02014D9C:
|
|
bl sub_03036B70
|
|
mov r1, #0x27
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02014DC0: .word 0x027F8878
|
|
arm_func_end sub_02014CCC
|
|
|
|
arm_func_start sub_02014DC4
|
|
sub_02014DC4: ; 0x02014DC4
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x280
|
|
ldr r1, _02014EB0 ; =0x027F8878
|
|
ldr r2, [r0, #4]
|
|
ldr r4, [r1, #0x550]
|
|
str r2, [r4, #0xe8]
|
|
ldr r1, [r0, #8]
|
|
strh r1, [r4, #0xec]
|
|
ldr r1, [r0, #0xc]
|
|
str r1, [r4, #0xf0]
|
|
ldr r1, [r0, #0x10]
|
|
strh r1, [r4, #0xf4]
|
|
ldr r0, [r0, #0x14]
|
|
and r0, r0, #0xff
|
|
tst r0, #1
|
|
movne r1, #1
|
|
moveq r1, #0
|
|
strh r1, [r4, #0xf6]
|
|
tst r0, #2
|
|
movne r1, #1
|
|
moveq r1, #0
|
|
strh r1, [r4, #0xfa]
|
|
tst r0, #4
|
|
movne r1, #1
|
|
moveq r1, #0
|
|
tst r0, #8
|
|
strh r1, [r4, #0xfc]
|
|
movne r1, #1
|
|
moveq r1, #0
|
|
strh r1, [r4, #0xfe]
|
|
add r0, sp, #0
|
|
add r1, r4, #0xe8
|
|
bl sub_0200FAFC
|
|
ldrh r1, [r4, #0xec]
|
|
add r0, sp, #0x80
|
|
add r1, r1, #0x10
|
|
mov r1, r1, lsl #0x10
|
|
add r2, sp, #0
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_02011FA8
|
|
mov r4, r0
|
|
bl sub_03036B70
|
|
mov r1, #0x18
|
|
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, _02014EB4 ; =0x00000245
|
|
strneh r1, [r0, #4]
|
|
ldrneh r1, [r4, #4]
|
|
strneh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
add sp, sp, #0x280
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02014EB0: .word 0x027F8878
|
|
_02014EB4: .word 0x00000245
|
|
arm_func_end sub_02014DC4
|
|
|
|
arm_func_start sub_02014EB8
|
|
sub_02014EB8: ; 0x02014EB8
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r1, [r0, #4]
|
|
add r0, sp, #0
|
|
mov r1, r1, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_02011E94
|
|
ldrh r4, [r0, #4]
|
|
cmp r4, #0
|
|
beq _02014F08
|
|
bl sub_03036B70
|
|
mov r2, #0x19
|
|
mov r1, #1
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
add r1, r1, #0x214
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03036B24
|
|
b _02014F20
|
|
_02014F08:
|
|
bl sub_03036B70
|
|
mov r1, #0x19
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_02014F20:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02014EB8
|
|
|
|
arm_func_start sub_02014F2C
|
|
sub_02014F2C: ; 0x02014F2C
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_03036B70
|
|
mov r1, #0x1a
|
|
strh r1, [r0]
|
|
mov r1, #4
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_02014F2C
|
|
|
|
arm_func_start sub_02014F50
|
|
sub_02014F50: ; 0x02014F50
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_03036B70
|
|
mov r1, #0x1b
|
|
strh r1, [r0]
|
|
mov r1, #4
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_02014F50
|
|
|
|
arm_func_start sub_02014F74
|
|
sub_02014F74: ; 0x02014F74
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #0x200
|
|
ldmib r0, {r1, r2, r3}
|
|
ldr r0, [r0, #0x10]
|
|
mov r1, r1, lsl #0x10
|
|
mov r4, r0, lsl #0x10
|
|
mov r2, r2, lsl #0x10
|
|
mov r3, r3, lsl #0x10
|
|
ldr ip, _02015094 ; =0x027F8878
|
|
mov r5, r4, lsr #0x10
|
|
add r0, sp, #0
|
|
mov r1, r1, lsr #0x10
|
|
mov r2, r2, lsr #0x10
|
|
mov r3, r3, lsr #0x10
|
|
ldr r4, [ip, #0x550]
|
|
bl sub_02011DD0
|
|
ldrh r6, [r0, #4]
|
|
cmp r6, #0
|
|
beq _02014FE8
|
|
bl sub_03036B70
|
|
mov r2, #0x1d
|
|
mov r1, #1
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
add r1, r1, #0x210
|
|
strh r1, [r0, #4]
|
|
strh r6, [r0, #6]
|
|
bl sub_03036B24
|
|
b _02015088
|
|
_02014FE8:
|
|
ldr r0, _02015098 ; =0x0000FFFF
|
|
cmp r5, r0
|
|
beq _0201503C
|
|
cmp r5, #0
|
|
moveq r1, #1
|
|
moveq r0, #0
|
|
beq _02015030
|
|
mov r0, #0x64
|
|
mul r2, r5, r0
|
|
ldr r0, _0201509C ; =0x000082EA
|
|
mov r1, #0
|
|
umull ip, r3, r2, r0
|
|
mla r3, r2, r1, r3
|
|
mov r1, r2, asr #0x1f
|
|
mla r3, r1, r0, r3
|
|
mov r1, ip, lsr #6
|
|
mov r0, r3, lsr #6
|
|
orr r1, r1, r3, lsl #26
|
|
_02015030:
|
|
str r1, [r4, #0x7b8]
|
|
str r0, [r4, #0x7bc]
|
|
b _02015048
|
|
_0201503C:
|
|
mov r0, #0
|
|
str r0, [r4, #0x7b8]
|
|
str r0, [r4, #0x7bc]
|
|
_02015048:
|
|
bl sub_0302CA0C
|
|
orr r1, r1, #0
|
|
orr r2, r0, #1
|
|
mov r3, #0
|
|
_02015058:
|
|
add r0, r4, r3, lsl #3
|
|
str r2, [r0, #0x738]
|
|
add r3, r3, #1
|
|
str r1, [r0, #0x73c]
|
|
cmp r3, #0x10
|
|
blt _02015058
|
|
bl sub_03036B70
|
|
mov r1, #0x1d
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_02015088:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02015094: .word 0x027F8878
|
|
_02015098: .word 0x0000FFFF
|
|
_0201509C: .word 0x000082EA
|
|
arm_func_end sub_02014F74
|
|
|
|
arm_func_start sub_020150A0
|
|
sub_020150A0: ; 0x020150A0
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
|
|
sub sp, sp, #0x214
|
|
ldr r1, _0201523C ; =0x027F8878
|
|
mov r7, r0
|
|
ldr r6, [r1, #0x550]
|
|
add r4, sp, #0x14
|
|
ldrh r0, [r6]
|
|
cmp r0, #2
|
|
beq _020150E0
|
|
bl sub_03036B70
|
|
mov r1, #0x1e
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
b _02015230
|
|
_020150E0:
|
|
mov r0, r4
|
|
bl sub_02012114
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02015100
|
|
mov r0, #0x308
|
|
bl sub_02015248
|
|
b _02015230
|
|
_02015100:
|
|
ldrh r1, [r0, #6]
|
|
mov r0, #2
|
|
strh r0, [r6, #0xe6]
|
|
cmp r1, #0x10
|
|
bne _02015180
|
|
mov r1, r4
|
|
mov r0, #0xa
|
|
bl sub_0200FBC0
|
|
cmp r0, #0
|
|
beq _02015230
|
|
mov r0, r4
|
|
bl sub_020120A0
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02015148
|
|
ldr r0, _02015240 ; =0x00000303
|
|
bl sub_02015248
|
|
b _02015230
|
|
_02015148:
|
|
mov r0, #3
|
|
mov r1, #1
|
|
strh r0, [r6]
|
|
mov r0, r4
|
|
mov r3, r1
|
|
mov r2, #0
|
|
bl sub_020115AC
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #1
|
|
cmp r1, #0
|
|
beq _0201517C
|
|
bl sub_02015248
|
|
b _02015230
|
|
_0201517C:
|
|
strh r0, [r6, #0xc6]
|
|
_02015180:
|
|
ldrh r8, [r7, #2]
|
|
ldrh sb, [r7, #4]
|
|
ldrh r5, [r7, #6]
|
|
ldrh r7, [r7, #8]
|
|
add r0, sp, #4
|
|
mov r1, #0
|
|
mov r2, #0x10
|
|
bl sub_0302D860
|
|
strb r5, [sp, #4]
|
|
add r0, sp, #4
|
|
str r0, [sp]
|
|
mov r0, r4
|
|
mov r1, r8
|
|
mov r2, sb
|
|
mov r3, r7
|
|
bl sub_02011970
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _020151D8
|
|
mov r0, #0xa
|
|
bl sub_02015248
|
|
b _02015230
|
|
_020151D8:
|
|
ldrh r1, [r0, #8]
|
|
mov r0, r4
|
|
and r4, r1, #0xff
|
|
mov r1, r1, lsl #8
|
|
mov r5, r1, lsr #0x10
|
|
bl sub_02012088
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02015208
|
|
ldr r0, _02015244 ; =0x00000302
|
|
bl sub_02015248
|
|
b _02015230
|
|
_02015208:
|
|
mov r0, #2
|
|
strh r0, [r6]
|
|
bl sub_03036B70
|
|
mov r1, #0x1e
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
strh r4, [r0, #8]
|
|
strh r5, [r0, #0xa]
|
|
bl sub_03036B24
|
|
_02015230:
|
|
add sp, sp, #0x214
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201523C: .word 0x027F8878
|
|
_02015240: .word 0x00000303
|
|
_02015244: .word 0x00000302
|
|
arm_func_end sub_020150A0
|
|
|
|
arm_func_start sub_02015248
|
|
sub_02015248: ; 0x02015248
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
bl sub_03036B70
|
|
mov r1, #0x1e
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
strh r5, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03036B24
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_02015248
|
|
|
|
arm_func_start sub_0201527C
|
|
sub_0201527C: ; 0x0201527C
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x200
|
|
add r0, sp, #0
|
|
bl sub_020120CC
|
|
ldrh r4, [r0, #4]
|
|
cmp r4, #0
|
|
beq _020152C0
|
|
bl sub_03036B70
|
|
mov r2, #0x1f
|
|
mov r1, #1
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
add r1, r1, #0x304
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03036B24
|
|
b _020152D8
|
|
_020152C0:
|
|
bl sub_03036B70
|
|
mov r1, #0x1f
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_020152D8:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_0201527C
|
|
|
|
arm_func_start sub_020152E4
|
|
sub_020152E4: ; 0x020152E4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x200
|
|
add r0, sp, #0
|
|
bl sub_020120FC
|
|
mov r5, r0
|
|
ldrh r4, [r5, #4]
|
|
cmp r4, #0
|
|
beq _0201532C
|
|
bl sub_03036B70
|
|
mov r2, #0x20
|
|
mov r1, #1
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
rsb r1, r1, #0x308
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03036B24
|
|
b _0201535C
|
|
_0201532C:
|
|
bl sub_03036B70
|
|
mov r4, r0
|
|
mov r0, #0x20
|
|
strh r0, [r4]
|
|
mov r3, #0
|
|
add r0, r5, #8
|
|
add r1, r4, #8
|
|
mov r2, #0xb4
|
|
strh r3, [r4, #2]
|
|
bl sub_0302D78C
|
|
mov r0, r4
|
|
bl sub_03036B24
|
|
_0201535C:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_020152E4
|
|
|
|
arm_func_start sub_02015368
|
|
sub_02015368: ; 0x02015368
|
|
ldr ip, _02015374 ; =sub_037FD884
|
|
ldr r0, _02015378 ; =0x0380B460
|
|
bx ip
|
|
.align 2, 0
|
|
_02015374: .word sub_037FD884
|
|
_02015378: .word 0x0380B460
|
|
arm_func_end sub_02015368
|
|
|
|
arm_func_start sub_0201537C
|
|
sub_0201537C: ; 0x0201537C
|
|
ldr ip, _02015388 ; =sub_037FDA38
|
|
ldr r0, _0201538C ; =0x0380B460
|
|
bx ip
|
|
.align 2, 0
|
|
_02015388: .word sub_037FDA38
|
|
_0201538C: .word 0x0380B460
|
|
arm_func_end sub_0201537C
|
|
|
|
arm_func_start sub_02015390
|
|
sub_02015390: ; 0x02015390
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r1, _02015430 ; =0x027F8878
|
|
ldr r0, _02015434 ; =0x0380B460
|
|
ldr r4, [r1, #0x550]
|
|
ldrh r1, [r4, #0xe6]
|
|
cmp r1, #1
|
|
bne _020153E0
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
beq _020153C0
|
|
bl sub_0302D228
|
|
_020153C0:
|
|
ldr r0, _02015434 ; =0x0380B460
|
|
mov r1, #0xcb
|
|
mov ip, #3
|
|
ldr r3, _02015438 ; =0x027E5F8C
|
|
add r2, r1, #0x3c
|
|
str ip, [sp]
|
|
bl sub_0302D088
|
|
b _02015424
|
|
_020153E0:
|
|
cmp r1, #2
|
|
bne _02015424
|
|
mov r1, #0
|
|
str r1, [r4, #0x1c]
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
beq _02015400
|
|
bl sub_0302D228
|
|
_02015400:
|
|
ldr r0, _02015434 ; =0x0380B460
|
|
mov r2, #1
|
|
mov r1, #0xc8
|
|
ldr r3, _0201543C ; =0x027E5C50
|
|
str r2, [sp]
|
|
add r2, r1, #0x3f
|
|
bl sub_0302D088
|
|
mov r0, #0
|
|
str r0, [r4, #0xd8]
|
|
_02015424:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02015430: .word 0x027F8878
|
|
_02015434: .word 0x0380B460
|
|
_02015438: .word 0x027E5F8C
|
|
_0201543C: .word 0x027E5C50
|
|
arm_func_end sub_02015390
|
|
|
|
arm_func_start sub_02015440
|
|
sub_02015440: ; 0x02015440
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r1, _0201557C ; =0x027F8878
|
|
ldr r2, _02015580 ; =0x0380FFF0
|
|
ldr r0, [r1, #0x550]
|
|
ldrh r3, [r2]
|
|
str r3, [r0, #0xd0]
|
|
ldr r2, [r0, #0xd4]
|
|
cmp r2, r3
|
|
beq _02015520
|
|
str r3, [r0, #0xd4]
|
|
ldr r1, [r1, #0x550]
|
|
ldr r3, _02015584 ; =0x048080F8
|
|
ldr r2, [r1, #0xd0]
|
|
mov r2, r2, lsl #6
|
|
str r2, [r1, #0xd0]
|
|
ldrh r2, [r3]
|
|
ldrh lr, [r3, #2]
|
|
ldrh r4, [r3]
|
|
cmp r2, r4
|
|
ldrhih lr, [r3, #2]
|
|
ldr r3, _02015588 ; =0x04000006
|
|
ldr r2, _0201558C ; =0x00000107
|
|
ldrh ip, [r3]
|
|
ldr r3, _02015590 ; =0x003FFFC0
|
|
sub ip, r2, ip
|
|
orr lr, r4, lr, lsl #16
|
|
ldr r2, [r1, #0xd0]
|
|
and lr, lr, r3
|
|
rsb ip, ip, ip, lsl #7
|
|
add ip, ip, lr, lsl #1
|
|
and lr, r3, ip, lsr #1
|
|
cmp r2, lr
|
|
movhi r2, #0
|
|
strhi r2, [r1, #0xd8]
|
|
bhi _02015520
|
|
mov ip, #1
|
|
b _02015510
|
|
_020154D8:
|
|
ldr r2, [r1, #0xd0]
|
|
add r2, r2, #0x4b
|
|
add r3, r2, #0x4100
|
|
str r3, [r1, #0xd0]
|
|
cmp r3, lr
|
|
bls _0201550C
|
|
ldr r2, _02015594 ; =0x0000400E
|
|
sub r3, r3, lr
|
|
cmp r3, r2
|
|
str r3, [r1, #0xd8]
|
|
movhi r2, #0
|
|
strhi r2, [r1, #0xd8]
|
|
b _02015520
|
|
_0201550C:
|
|
add ip, ip, #1
|
|
_02015510:
|
|
cmp ip, #0x1e
|
|
blt _020154D8
|
|
mov r2, #0
|
|
str r2, [r1, #0xd8]
|
|
_02015520:
|
|
ldr r1, [r0, #0xd8]
|
|
cmp r1, #0x7f
|
|
bls _0201554C
|
|
ldr r0, _02015598 ; =0x0380B460
|
|
mov r1, #0xd0
|
|
mov ip, #2
|
|
ldr r3, _0201559C ; =0x027E5DB4
|
|
add r2, r1, #0x37
|
|
str ip, [sp]
|
|
bl sub_0302D088
|
|
b _02015570
|
|
_0201554C:
|
|
mov r2, #1
|
|
str r2, [r0, #0x1c]
|
|
mov r1, #4
|
|
str r1, [sp]
|
|
ldrsh r1, [r0, #0x42]
|
|
ldr r0, _02015598 ; =0x0380B460
|
|
ldr r3, _020155A0 ; =0x027E5E74
|
|
rsb r2, r2, #0x108
|
|
bl sub_0302D088
|
|
_02015570:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201557C: .word 0x027F8878
|
|
_02015580: .word 0x0380FFF0
|
|
_02015584: .word 0x048080F8
|
|
_02015588: .word 0x04000006
|
|
_0201558C: .word 0x00000107
|
|
_02015590: .word 0x003FFFC0
|
|
_02015594: .word 0x0000400E
|
|
_02015598: .word 0x0380B460
|
|
_0201559C: .word 0x027E5DB4
|
|
_020155A0: .word 0x027E5E74
|
|
arm_func_end sub_02015440
|
|
|
|
arm_func_start sub_020155A4
|
|
sub_020155A4: ; 0x020155A4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02015650 ; =0x04000006
|
|
ldr r0, _02015654 ; =0x027F8878
|
|
ldrh ip, [r1]
|
|
ldr r0, [r0, #0x550]
|
|
cmp ip, #0xd0
|
|
blt _0201561C
|
|
cmp ip, #0xd2
|
|
bge _0201561C
|
|
ldr r1, [r0, #0xd8]
|
|
cmp r1, #0x7f
|
|
blo _0201561C
|
|
mov r3, #1
|
|
b _020155F4
|
|
_020155DC:
|
|
ldr r2, [r0, #0xd8]
|
|
rsb r1, r3, r3, lsl #6
|
|
add r1, r1, #0x7f
|
|
cmp r2, r1
|
|
blo _020155FC
|
|
add r3, r3, #1
|
|
_020155F4:
|
|
cmp r3, #7
|
|
blt _020155DC
|
|
_020155FC:
|
|
ldr r1, _02015650 ; =0x04000006
|
|
rsb r2, r3, #1
|
|
add r2, ip, r2
|
|
strh r2, [r1]
|
|
ldr r2, [r0, #0xd8]
|
|
rsb r1, r3, r3, lsl #6
|
|
sub r1, r2, r1
|
|
str r1, [r0, #0xd8]
|
|
_0201561C:
|
|
ldr r1, [r0, #0xd8]
|
|
ldr r2, _02015658 ; =0x00000107
|
|
cmp r1, #0x7f
|
|
movhs r1, #0
|
|
strhs r1, [r0, #0x1c]
|
|
mov r1, #4
|
|
str r1, [sp]
|
|
ldrsh r1, [r0, #0x42]
|
|
ldr r0, _0201565C ; =0x0380B460
|
|
ldr r3, _02015660 ; =0x027E5E74
|
|
bl sub_0302D088
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02015650: .word 0x04000006
|
|
_02015654: .word 0x027F8878
|
|
_02015658: .word 0x00000107
|
|
_0201565C: .word 0x0380B460
|
|
_02015660: .word 0x027E5E74
|
|
arm_func_end sub_020155A4
|
|
|
|
arm_func_start sub_02015664
|
|
sub_02015664: ; 0x02015664
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r0, _02015768 ; =0x027F8878
|
|
ldr r4, [r0, #0x550]
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
bne _0201575C
|
|
ldr r0, _0201576C ; =0x0380B460
|
|
mov r2, #1
|
|
mov r1, #0xc8
|
|
ldr r3, _02015770 ; =0x027E5C50
|
|
str r2, [sp]
|
|
add r2, r1, #0x3f
|
|
bl sub_0302D088
|
|
ldr r0, [r4, #0x7bc]
|
|
ldr r1, [r4, #0x7b8]
|
|
cmp r0, #0
|
|
cmpeq r1, #0
|
|
beq _02015758
|
|
bl sub_0302CA0C
|
|
ldr r3, [r4, #0x73c]
|
|
ldr ip, [r4, #0x738]
|
|
cmp r3, #0
|
|
cmpeq ip, #0
|
|
orr lr, r1, #0
|
|
orr r1, r0, #1
|
|
mov r0, #0
|
|
beq _02015758
|
|
ldr r2, [r4, #0x7b8]
|
|
subs ip, r1, ip
|
|
ldr r1, [r4, #0x7bc]
|
|
sbc r3, lr, r3
|
|
cmp r3, r1
|
|
cmpeq ip, r2
|
|
bls _02015758
|
|
str r0, [r4, #0x738]
|
|
str r0, [r4, #0x73c]
|
|
bl sub_0200FEF0
|
|
movs r1, r0
|
|
moveq r0, #0
|
|
beq _02015724
|
|
mov r0, #0x25
|
|
str r0, [r1]
|
|
ldr r3, _02015774 ; =0x00008001
|
|
mov r2, #0
|
|
ldr r0, _02015778 ; =0x027F7900
|
|
stmib r1, {r2, r3}
|
|
bl sub_0302BEC4
|
|
_02015724:
|
|
cmp r0, #0
|
|
bne _0201575C
|
|
bl sub_03036B70
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x25
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
b _0201575C
|
|
_02015758:
|
|
bl sub_02015880
|
|
_0201575C:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02015768: .word 0x027F8878
|
|
_0201576C: .word 0x0380B460
|
|
_02015770: .word 0x027E5C50
|
|
_02015774: .word 0x00008001
|
|
_02015778: .word 0x027F7900
|
|
arm_func_end sub_02015664
|
|
|
|
arm_func_start sub_0201577C
|
|
sub_0201577C: ; 0x0201577C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0201581C ; =0x027F8878
|
|
ldr r0, [r0, #0x550]
|
|
ldrh r1, [r0, #0xdc]
|
|
cmp r1, #0x3c
|
|
blo _020157B8
|
|
ldr r2, _02015820 ; =0x04000006
|
|
ldrh r1, [r2]
|
|
cmp r1, #0xcb
|
|
blt _020157C0
|
|
cmp r1, #0xd2
|
|
strlth r1, [r2]
|
|
movlt r1, #0
|
|
strlth r1, [r0, #0xdc]
|
|
b _020157C0
|
|
_020157B8:
|
|
add r1, r1, #1
|
|
strh r1, [r0, #0xdc]
|
|
_020157C0:
|
|
ldr r1, _02015820 ; =0x04000006
|
|
ldr r2, _02015824 ; =0x048080F8
|
|
ldrh lr, [r1]
|
|
ldrh r1, [r2]
|
|
ldrh r3, [r2, #2]
|
|
ldrh ip, [r2]
|
|
cmp r1, ip
|
|
ldrhih r3, [r2, #2]
|
|
ldr r1, _02015828 ; =0x0380FFF0
|
|
orr r3, ip, r3, lsl #16
|
|
rsb r2, lr, lr, lsl #7
|
|
rsb r2, r2, r3, lsl #1
|
|
mov r3, r2, lsr #7
|
|
strh r3, [r1]
|
|
mov r2, #5
|
|
str r2, [sp]
|
|
ldrsh r1, [r0, #0x40]
|
|
ldr r0, _0201582C ; =0x0380B460
|
|
ldr r3, _02015830 ; =0x027E6044
|
|
rsb r2, r2, #0x10c
|
|
bl sub_0302D088
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201581C: .word 0x027F8878
|
|
_02015820: .word 0x04000006
|
|
_02015824: .word 0x048080F8
|
|
_02015828: .word 0x0380FFF0
|
|
_0201582C: .word 0x0380B460
|
|
_02015830: .word 0x027E6044
|
|
arm_func_end sub_0201577C
|
|
|
|
arm_func_start sub_02015834
|
|
sub_02015834: ; 0x02015834
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02015874 ; =0x027F8878
|
|
ldr r0, [r0, #0x550]
|
|
ldr r0, [r0, #0xc]
|
|
cmp r0, #1
|
|
bne _0201586C
|
|
ldr r0, _02015878 ; =0x0380B460
|
|
mov r1, #0xcb
|
|
mov ip, #3
|
|
ldr r3, _0201587C ; =0x027E5F8C
|
|
add r2, r1, #0x3c
|
|
str ip, [sp]
|
|
bl sub_0302D088
|
|
bl sub_02015880
|
|
_0201586C:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02015874: .word 0x027F8878
|
|
_02015878: .word 0x0380B460
|
|
_0201587C: .word 0x027E5F8C
|
|
arm_func_end sub_02015834
|
|
|
|
arm_func_start sub_02015880
|
|
sub_02015880: ; 0x02015880
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _02015928 ; =0x027F8878
|
|
ldr r4, _0201592C ; =0x027F7878
|
|
ldr r5, [r0, #0x550]
|
|
bl sub_0302D4F0
|
|
ldrh r1, [r5, #0xce]
|
|
cmp r1, #1
|
|
bne _020158A8
|
|
bl sub_0302D504
|
|
b _02015920
|
|
_020158A8:
|
|
mov r1, #1
|
|
strh r1, [r5, #0xce]
|
|
bl sub_0302D504
|
|
bl sub_0200FEF0
|
|
movs r1, r0
|
|
moveq r0, #0
|
|
beq _020158D8
|
|
mov r3, #0x1c
|
|
add r0, r4, #0x88
|
|
mov r2, #0
|
|
str r3, [r1]
|
|
bl sub_0302BEC4
|
|
_020158D8:
|
|
cmp r0, #0
|
|
bne _02015920
|
|
mov r0, #0
|
|
strh r0, [r5, #0xce]
|
|
add r0, r4, #0x1000
|
|
ldr r0, [r0, #0x54c]
|
|
cmp r0, #0
|
|
beq _02015920
|
|
bl sub_03036B70
|
|
mov r1, #0x80
|
|
strh r1, [r0]
|
|
mov r1, #8
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x16
|
|
strh r1, [r0, #4]
|
|
mov r1, #0x1c
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
_02015920:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02015928: .word 0x027F8878
|
|
_0201592C: .word 0x027F7878
|
|
arm_func_end sub_02015880
|
|
|
|
arm_func_start sub_02015930
|
|
sub_02015930: ; 0x02015930
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _02015AC8 ; =0x027F8878
|
|
mov r1, #0
|
|
ldr r4, [r0, #0x550]
|
|
mov r2, #1
|
|
strh r1, [r4, #0xce]
|
|
strh r2, [r4, #0x88]
|
|
ldrh r0, [r4, #0xc0]
|
|
sub r0, r0, #1
|
|
strh r0, [r4, #0xc0]
|
|
ldrh r0, [r4, #0xc0]
|
|
cmp r0, #0
|
|
bne _0201599C
|
|
ldrh r1, [r4, #0xbe]
|
|
rsb r0, r2, #0x10000
|
|
cmp r1, r0
|
|
moveq r0, #4
|
|
streqh r0, [r4, #0xbe]
|
|
ldrh r0, [r4, #0xbe]
|
|
and r0, r0, #0xff
|
|
bl sub_0200FD10
|
|
bl sub_0200FD8C
|
|
strh r0, [r4, #0xbc]
|
|
ldr r1, _02015ACC ; =0x0000FFFF
|
|
mov r0, #1
|
|
strh r1, [r4, #0xbe]
|
|
strh r0, [r4, #0xc0]
|
|
_0201599C:
|
|
ldrh r0, [r4]
|
|
cmp r0, #9
|
|
bne _02015A8C
|
|
bl sub_0302D4F0
|
|
add r1, r4, #0x100
|
|
ldrh r1, [r1, #0x82]
|
|
cmp r1, #0
|
|
bne _020159CC
|
|
mov r1, #0
|
|
strh r1, [r4, #0x62]
|
|
bl sub_0302D504
|
|
b _02015AC0
|
|
_020159CC:
|
|
ldrsh r2, [r4, #0x62]
|
|
mov r3, #1
|
|
cmp r2, #0
|
|
ldrgtsh r1, [r4, #0x64]
|
|
cmpgt r1, #0
|
|
movgt r3, #0
|
|
cmp r2, #0
|
|
movlt r1, #0
|
|
strlth r1, [r4, #0x62]
|
|
add r1, r4, #0x700
|
|
ldrsh r2, [r4, #0x62]
|
|
ldrsh r1, [r1, #0xc2]
|
|
add r1, r2, r1
|
|
strh r1, [r4, #0x62]
|
|
ldrsh r1, [r4, #0x62]
|
|
cmp r1, #0x100
|
|
movgt r1, #0x100
|
|
strgth r1, [r4, #0x62]
|
|
add r1, r4, #0x700
|
|
ldrh r1, [r1, #0xc4]
|
|
cmp r3, #0
|
|
strh r1, [r4, #0x64]
|
|
beq _02015A40
|
|
ldrsh r1, [r4, #0x62]
|
|
cmp r1, #0
|
|
ldrgtsh r1, [r4, #0x64]
|
|
cmpgt r1, #0
|
|
movgt r5, #1
|
|
bgt _02015A44
|
|
_02015A40:
|
|
mov r5, #0
|
|
_02015A44:
|
|
bl sub_0302D504
|
|
cmp r5, #0
|
|
beq _02015A58
|
|
ldr r0, _02015ACC ; =0x0000FFFF
|
|
bl sub_02016110
|
|
_02015A58:
|
|
add r0, r4, #0x700
|
|
ldrh r0, [r0, #0xc6]
|
|
cmp r0, #1
|
|
ldreqh r0, [r4, #0xa0]
|
|
subeq r0, r0, #1
|
|
streqh r0, [r4, #0xa0]
|
|
ldreqh r0, [r4, #0xa0]
|
|
cmpeq r0, #0
|
|
moveq r0, #1
|
|
streqh r0, [r4, #0x9e]
|
|
moveq r0, #0x3c
|
|
streqh r0, [r4, #0xa0]
|
|
b _02015AC0
|
|
_02015A8C:
|
|
cmp r0, #0xa
|
|
bne _02015AC0
|
|
mov r5, #0
|
|
bl sub_0302D4F0
|
|
ldr r1, [r4, #0x734]
|
|
cmp r1, #1
|
|
movne r1, r5
|
|
movne r5, #1
|
|
strneh r1, [r4, #0x60]
|
|
bl sub_0302D504
|
|
cmp r5, #1
|
|
bne _02015AC0
|
|
bl sub_02015C18
|
|
_02015AC0:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02015AC8: .word 0x027F8878
|
|
_02015ACC: .word 0x0000FFFF
|
|
arm_func_end sub_02015930
|
|
|
|
arm_func_start sub_02015AD0
|
|
sub_02015AD0: ; 0x02015AD0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02015B00 ; =0x027F8878
|
|
ldr r1, [r1, #0x550]
|
|
ldrh r1, [r1]
|
|
cmp r1, #9
|
|
bne _02015AF8
|
|
ldr r0, [r0, #4]
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_02016110
|
|
_02015AF8:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02015B00: .word 0x027F8878
|
|
arm_func_end sub_02015AD0
|
|
|
|
arm_func_start sub_02015B04
|
|
sub_02015B04: ; 0x02015B04
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02015B28 ; =0x027F8878
|
|
ldr r0, [r0, #0x550]
|
|
ldrh r0, [r0]
|
|
cmp r0, #0xa
|
|
bne _02015B20
|
|
bl sub_02015C18
|
|
_02015B20:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02015B28: .word 0x027F8878
|
|
arm_func_end sub_02015B04
|
|
|
|
arm_func_start sub_02015B2C
|
|
sub_02015B2C: ; 0x02015B2C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02015B5C ; =0x027F8878
|
|
ldr r1, [r1, #0x550]
|
|
ldrh r1, [r1]
|
|
cmp r1, #9
|
|
bne _02015B54
|
|
ldr r0, [r0, #4]
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_02016AB8
|
|
_02015B54:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02015B5C: .word 0x027F8878
|
|
arm_func_end sub_02015B2C
|
|
|
|
arm_func_start sub_02015B60
|
|
sub_02015B60: ; 0x02015B60
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _02015C10 ; =0x027F8878
|
|
ldr r4, [r0, #0x550]
|
|
add r0, r4, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_0302C078
|
|
add r1, r4, #0x2f8
|
|
mov r0, #0
|
|
mov r2, #0x400
|
|
bl sub_0302D764
|
|
mov r3, #0
|
|
_02015B8C:
|
|
add r0, r3, #1
|
|
mov r0, r0, lsl #0x10
|
|
add r1, r4, r3, lsl #5
|
|
mov r3, r0, lsr #0x10
|
|
add r0, r1, #0x200
|
|
strh r3, [r0, #0xf8]
|
|
cmp r3, #0x1f
|
|
blo _02015B8C
|
|
ldr r2, _02015C14 ; =0x0000FFFF
|
|
add r0, r4, r3, lsl #5
|
|
add r0, r0, #0x200
|
|
strh r2, [r0, #0xf8]
|
|
add r0, r4, #0x600
|
|
mov ip, #0
|
|
strh ip, [r0, #0xf8]
|
|
strh r3, [r0, #0xfa]
|
|
_02015BCC:
|
|
add r1, r4, ip, lsl #2
|
|
add r0, r1, #0x700
|
|
strh r2, [r0, #0xc]
|
|
strh r2, [r0, #0xe]
|
|
add r0, r1, #0x600
|
|
add r1, ip, #1
|
|
strh r2, [r0, #0xfc]
|
|
mov r1, r1, lsl #0x10
|
|
mov ip, r1, lsr #0x10
|
|
strh r2, [r0, #0xfe]
|
|
cmp ip, #4
|
|
blo _02015BCC
|
|
add r0, r4, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_0302C0FC
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02015C10: .word 0x027F8878
|
|
_02015C14: .word 0x0000FFFF
|
|
arm_func_end sub_02015B60
|
|
|
|
arm_func_start sub_02015C18
|
|
sub_02015C18: ; 0x02015C18
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x260
|
|
ldr r1, _02016108 ; =0x027F8878
|
|
ldr fp, [r1, #0x550]
|
|
add r0, fp, #0x100
|
|
ldrh r0, [r0, #0x82]
|
|
cmp r0, #0
|
|
beq _020160FC
|
|
mov r0, #1
|
|
strh r0, [fp, #0x8a]
|
|
str r0, [sp, #0x14]
|
|
mov r0, #0
|
|
strh r0, [sp, #0x5c]
|
|
ldr r8, [r1, #0x550]
|
|
add r1, sp, #0x5c
|
|
ldrh sb, [r8, #0x38]
|
|
str r1, [sp, #0x34]
|
|
add r1, sb, #0x1f
|
|
ldrh r2, [r8, #0x80]
|
|
bic r1, r1, #0x1f
|
|
ldr r7, [r8, #0x7c]
|
|
cmp r2, r1
|
|
blt _020160A8
|
|
add r1, r8, #0x100
|
|
ldrh r1, [r1, #0x88]
|
|
cmp r1, #0x10
|
|
bhs _020160A8
|
|
ldrh r1, [r8]
|
|
cmp r1, #9
|
|
beq _02015C9C
|
|
cmp r1, #0xa
|
|
streq r0, [sp, #0x14]
|
|
bne _020160A8
|
|
_02015C9C:
|
|
ldr r0, [sp, #0x34]
|
|
mov r6, #0
|
|
strh r6, [r0]
|
|
mov r0, #1
|
|
cmp sb, #0
|
|
strlt r0, [sp, #0x14]
|
|
blt _020160A8
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x14]
|
|
cmp r0, #0
|
|
beq _02015CDC
|
|
add r0, r8, #0x700
|
|
ldrh r0, [r0, #0xc6]
|
|
cmp r0, #0
|
|
strne r6, [sp, #0x18]
|
|
b _02015CE0
|
|
_02015CDC:
|
|
str r6, [sp, #0x18]
|
|
_02015CE0:
|
|
add r0, r8, #0x31c
|
|
mov r1, #0
|
|
str r1, [sp, #0xc]
|
|
mov r1, #1
|
|
add r0, r0, #0x400
|
|
str r1, [sp, #0x10]
|
|
bl sub_0302C078
|
|
ldr r0, [r8, #0x734]
|
|
cmp r0, #1
|
|
bne _02015D20
|
|
add r0, r8, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_0302C0FC
|
|
mov r0, #1
|
|
str r0, [sp, #0x14]
|
|
b _020160A8
|
|
_02015D20:
|
|
mov r0, #1
|
|
str r0, [r8, #0x734]
|
|
add r0, r8, #0x2f8
|
|
str r0, [sp, #0x1c]
|
|
mov r5, #0
|
|
b _02016084
|
|
_02015D38:
|
|
add r0, r8, #0x30c
|
|
add r0, r0, #0x400
|
|
mov r1, r5, lsl #2
|
|
ldrh sl, [r0, r1]
|
|
add r0, r0, r5, lsl #2
|
|
str r0, [sp, #0x20]
|
|
add r0, r8, #0x2fc
|
|
add r0, r0, #0x400
|
|
add r0, r0, r5, lsl #2
|
|
str r0, [sp, #0x24]
|
|
ldr r0, [sp, #0x20]
|
|
str r0, [sp, #0x28]
|
|
ldr r0, _0201610C ; =0x0000FFFF
|
|
str r0, [sp, #0x2c]
|
|
str r0, [sp, #0x38]
|
|
str r0, [sp, #0x3c]
|
|
add r0, r8, #0x100
|
|
str r0, [sp, #0x40]
|
|
ldr r0, [sp, #0x2c]
|
|
sub r0, r0, #0x8000
|
|
str r0, [sp, #0x44]
|
|
ldr r0, [sp, #0x2c]
|
|
str r0, [sp, #0x48]
|
|
add r0, r8, #0x700
|
|
str r0, [sp, #0x4c]
|
|
ldr r0, [sp, #0x2c]
|
|
str r0, [sp, #0x50]
|
|
str r0, [sp, #0x54]
|
|
str r0, [sp, #0x58]
|
|
b _0201606C
|
|
_02015DB0:
|
|
ldr r0, [sp, #0x1c]
|
|
ldr r2, [sp, #0xc]
|
|
add r4, r0, sl, lsl #5
|
|
ldrh r0, [r4, #2]
|
|
mov r1, #1
|
|
str r0, [sp, #8]
|
|
tst r2, r1, lsl r0
|
|
bne _02016030
|
|
ldr r0, [sp, #0x18]
|
|
cmp r0, #0
|
|
ldr r0, [sp, #8]
|
|
orr r0, r2, r1, lsl r0
|
|
str r0, [sp, #0xc]
|
|
ldrh r0, [r4, #6]
|
|
and r1, r0, r1
|
|
str r1, [sp, #0x30]
|
|
beq _02015DFC
|
|
bics r1, r1, #1
|
|
bne _02016030
|
|
_02015DFC:
|
|
ldr r1, [sp, #8]
|
|
tst r1, #8
|
|
movne r1, #1
|
|
strne r1, [sp, #4]
|
|
moveq r1, #0
|
|
streq r1, [sp, #4]
|
|
ldr r1, [sp, #0x14]
|
|
cmp r1, #0
|
|
orrne r1, r0, #1
|
|
ldrne r0, [sp, #0x3c]
|
|
cmpne r1, r0
|
|
movne r0, #1
|
|
strne r0, [sp]
|
|
moveq r0, #0
|
|
streq r0, [sp]
|
|
ldrh r0, [r4, #0xe]
|
|
and r1, r0, #1
|
|
cmp r1, #1
|
|
addeq r0, r0, #1
|
|
streqh r0, [r4, #0xe]
|
|
ldr r0, [sp, #4]
|
|
ldr r1, [sp, #0x10]
|
|
cmp r0, #0
|
|
movne r0, #2
|
|
moveq r0, #0
|
|
cmp r1, #0
|
|
movne r3, #0
|
|
ldr r1, [sp]
|
|
moveq r3, #2
|
|
ldrh r2, [r4, #0xe]
|
|
cmp r1, #0
|
|
movne r1, #2
|
|
add r2, r2, r3
|
|
moveq r1, #0
|
|
add r0, r2, r0
|
|
add r0, r1, r0
|
|
cmp r0, sb
|
|
bgt _02016030
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, #0
|
|
streq r7, [sp, #0x34]
|
|
moveq r0, #0
|
|
streqh r0, [r7], #2
|
|
ldr r0, [sp, #0x34]
|
|
ldrh r2, [r4, #2]
|
|
ldrh r1, [r4, #0xe]
|
|
mov r2, r2, lsl #8
|
|
mov r1, r1, lsr #1
|
|
ldrh r0, [r0]
|
|
and r2, r2, #0xf00
|
|
and r1, r1, #0xff
|
|
orr r1, r2, r1
|
|
orr r1, r0, r1
|
|
ldr r0, [sp, #0x34]
|
|
addeq r6, r6, #2
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
ldrh r2, [r4, #0xe]
|
|
mov r1, r7
|
|
subeq sb, sb, #2
|
|
bl sub_0302D78C
|
|
ldrh r1, [r4, #0xe]
|
|
ldr r0, [sp, #4]
|
|
add r6, r6, r1
|
|
cmp r0, #1
|
|
bic r0, r1, #1
|
|
add r7, r7, r0
|
|
sub sb, sb, r1
|
|
bne _02015F64
|
|
ldrh r0, [r4, #0x10]
|
|
tst r0, #1
|
|
moveq r2, r0, asr #1
|
|
beq _02015F50
|
|
ldr r0, [sp, #0x40]
|
|
ldrh r1, [r4, #2]
|
|
ldrh r0, [r0, #0x88]
|
|
mov r1, r1, lsl #0x1d
|
|
add r0, r8, r0, lsl #4
|
|
add r0, r0, r1, lsr #28
|
|
add r0, r0, #0x100
|
|
ldrh r2, [r0, #0xf8]
|
|
add r1, r2, #1
|
|
strh r1, [r0, #0xf8]
|
|
mov r0, r2, lsl #1
|
|
strh r0, [r4, #0x10]
|
|
_02015F50:
|
|
ldr r0, [sp, #0x44]
|
|
add r6, r6, #2
|
|
and r0, r2, r0
|
|
strh r0, [r7], #2
|
|
sub sb, sb, #2
|
|
_02015F64:
|
|
ldr r0, [sp]
|
|
cmp r0, #1
|
|
bne _02015F94
|
|
ldr r0, [sp, #0x34]
|
|
add r6, r6, #2
|
|
ldrh r0, [r0]
|
|
sub sb, sb, #2
|
|
orr r1, r0, #0x1000
|
|
ldr r0, [sp, #0x34]
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, #6]
|
|
strh r0, [r7], #2
|
|
_02015F94:
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, #1
|
|
moveq r0, #0
|
|
streq r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x20]
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, sl
|
|
ldreq r1, [sp, #0x2c]
|
|
ldreq r0, [sp, #0x20]
|
|
streqh r1, [r0, #2]
|
|
ldrh r1, [r4]
|
|
ldr r0, [sp, #0x28]
|
|
strh r1, [r0]
|
|
ldr r0, [sp, #0x38]
|
|
strh r0, [r4]
|
|
ldr r0, [sp, #0x24]
|
|
ldrh r1, [r0, #2]
|
|
ldr r0, [sp, #0x48]
|
|
cmp r1, r0
|
|
ldreq r0, [sp, #0x24]
|
|
movne r1, r1, lsl #5
|
|
streqh sl, [r0]
|
|
ldrne r0, [sp, #0x1c]
|
|
strneh sl, [r0, r1]
|
|
ldr r0, [sp, #8]
|
|
mov r1, #1
|
|
mvn r1, r1, lsl r0
|
|
ldr r0, [sp, #0xc]
|
|
and r0, r0, r1
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x24]
|
|
strh sl, [r0, #2]
|
|
ldr r0, [sp, #0x30]
|
|
ldr sl, [sp, #0x2c]
|
|
strh r0, [r4, #0xa]
|
|
ldr r0, [sp, #0x4c]
|
|
ldrh r0, [r0, #0xc8]
|
|
cmp r0, #1
|
|
beq _02016094
|
|
_02016030:
|
|
ldr r0, [sp, #0x50]
|
|
str sl, [sp, #0x2c]
|
|
cmp sl, r0
|
|
ldrne r0, [sp, #0x1c]
|
|
addne r0, r0, sl, lsl #5
|
|
strne r0, [sp, #0x28]
|
|
ldreq r0, [sp, #0x20]
|
|
streq r0, [sp, #0x28]
|
|
ldr r0, [sp, #0x54]
|
|
cmp sl, r0
|
|
ldrne r0, [sp, #0x1c]
|
|
movne r1, sl, lsl #5
|
|
ldrneh sl, [r0, r1]
|
|
ldreq r0, [sp, #0x20]
|
|
ldreqh sl, [r0]
|
|
_0201606C:
|
|
ldr r0, [sp, #0x58]
|
|
cmp sl, r0
|
|
beq _02016080
|
|
cmp sb, #2
|
|
bgt _02015DB0
|
|
_02016080:
|
|
add r5, r5, #1
|
|
_02016084:
|
|
cmp r5, #4
|
|
bhs _02016094
|
|
cmp sb, #2
|
|
bgt _02015D38
|
|
_02016094:
|
|
add r0, r8, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_0302C0FC
|
|
mov r0, #0
|
|
str r0, [sp, #0x14]
|
|
_020160A8:
|
|
ldr r0, [sp, #0x14]
|
|
cmp r0, #1
|
|
moveq r0, #0
|
|
streqh r0, [fp, #0x8a]
|
|
beq _020160FC
|
|
ldr r0, [fp, #0x1c]
|
|
mov r1, r6, lsl #0x10
|
|
cmp r0, #1
|
|
ldreqh r0, [sp, #0x5c]
|
|
mov r1, r1, lsr #0x10
|
|
orreq r0, r0, #0x8000
|
|
streqh r0, [sp, #0x5c]
|
|
ldrh r2, [sp, #0x5c]
|
|
ldr r3, [fp, #0x7c]
|
|
add r0, sp, #0x60
|
|
bl sub_02011A9C
|
|
ldrh r0, [r0, #4]
|
|
cmp r0, #0
|
|
cmpne r0, #8
|
|
movne r0, #0
|
|
strneh r0, [fp, #0x8a]
|
|
_020160FC:
|
|
add sp, sp, #0x260
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02016108: .word 0x027F8878
|
|
_0201610C: .word 0x0000FFFF
|
|
arm_func_end sub_02015C18
|
|
|
|
arm_func_start sub_02016110
|
|
sub_02016110: ; 0x02016110
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x2c8
|
|
ldr r1, _02016AA8 ; =0x027F8878
|
|
str r0, [sp, #0x18]
|
|
ldr r7, [r1, #0x550]
|
|
bl sub_0302D4F0
|
|
add r1, r7, #0x100
|
|
ldrh r1, [r1, #0x82]
|
|
ldrh r4, [r7, #0x86]
|
|
str r1, [sp, #0x74]
|
|
bl sub_0302D504
|
|
mov r1, #0
|
|
strh r1, [sp, #0xc4]
|
|
ldrh r0, [r7, #0x88]
|
|
cmp r0, #1
|
|
ldreq r0, _02016AAC ; =0x0000FFFF
|
|
streq r0, [sp, #0x18]
|
|
streqh r1, [r7, #0x88]
|
|
ldrh r0, [r7, #0x9e]
|
|
cmp r0, #0
|
|
bne _020169F8
|
|
ldr r1, _02016AA8 ; =0x027F8878
|
|
ldrh r0, [r7, #0x3a]
|
|
ldr r8, [r1, #0x550]
|
|
str r0, [sp, #0x24]
|
|
add r0, sp, #0xc4
|
|
ldrh sb, [r8, #0x38]
|
|
str r0, [sp, #0x70]
|
|
add r0, sb, #0x1f
|
|
ldrh r1, [r8, #0x80]
|
|
bic r0, r0, #0x1f
|
|
cmp r1, r0
|
|
ldr r6, [r8, #0x7c]
|
|
movlt r0, #1
|
|
blt _02016638
|
|
add r0, r8, #0x100
|
|
ldrh r0, [r0, #0x88]
|
|
cmp r0, #0x10
|
|
movhs r0, #1
|
|
bhs _02016638
|
|
ldrh r0, [r8]
|
|
cmp r0, #9
|
|
moveq r0, #1
|
|
streq r0, [sp, #0x48]
|
|
beq _020161DC
|
|
cmp r0, #0xa
|
|
moveq r0, #0
|
|
streq r0, [sp, #0x48]
|
|
beq _020161DC
|
|
mov r0, #1
|
|
b _02016638
|
|
_020161DC:
|
|
ldr r0, [sp, #0x70]
|
|
mov r5, #0
|
|
mov sl, r5
|
|
mov fp, r5
|
|
strh r5, [r0]
|
|
cmp sb, #0
|
|
movlt r0, #1
|
|
blt _02016638
|
|
ldr r0, [sp, #0x48]
|
|
str r4, [sp, #0x50]
|
|
cmp r0, #0
|
|
mov r0, #1
|
|
str r0, [sp, #0x4c]
|
|
beq _02016230
|
|
add r0, r8, #0x700
|
|
ldrh r0, [r0, #0xc6]
|
|
cmp r0, #0
|
|
ldrne r0, [sp, #0x74]
|
|
strne r5, [sp, #0x4c]
|
|
strne r0, [sp, #0x50]
|
|
b _02016234
|
|
_02016230:
|
|
str r5, [sp, #0x4c]
|
|
_02016234:
|
|
ldr r0, [sp, #0x18]
|
|
and r4, r4, r0
|
|
mov r0, #0
|
|
str r0, [sp, #0x40]
|
|
mov r0, #1
|
|
str r0, [sp, #0x44]
|
|
add r0, r8, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_0302C078
|
|
ldr r0, [r8, #0x734]
|
|
cmp r0, #1
|
|
bne _02016278
|
|
add r0, r8, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_0302C0FC
|
|
mov r0, #1
|
|
b _02016638
|
|
_02016278:
|
|
mvn r0, r4
|
|
str r0, [sp, #0x2c]
|
|
mov r0, #1
|
|
str r0, [r8, #0x734]
|
|
add r0, r8, #0x2f8
|
|
str r0, [sp, #0x54]
|
|
mov r0, #0
|
|
str r0, [sp, #0x58]
|
|
b _02016610
|
|
_0201629C:
|
|
ldr r0, [sp, #0x58]
|
|
mov r2, r0, lsl #2
|
|
add r0, r8, #0x30c
|
|
add r1, r0, #0x400
|
|
ldr r0, [sp, #0x58]
|
|
ldrh sl, [r1, r2]
|
|
add r0, r1, r0, lsl #2
|
|
str r0, [sp, #0x5c]
|
|
add r0, r8, #0x2fc
|
|
add r1, r0, #0x400
|
|
ldr r0, [sp, #0x58]
|
|
add r0, r1, r0, lsl #2
|
|
str r0, [sp, #0x60]
|
|
ldr r0, [sp, #0x5c]
|
|
str r0, [sp, #0x64]
|
|
ldr r0, _02016AAC ; =0x0000FFFF
|
|
str r0, [sp, #0x68]
|
|
str r0, [sp, #0x78]
|
|
str r0, [sp, #0x8c]
|
|
add r0, r8, #0x100
|
|
str r0, [sp, #0x90]
|
|
ldr r0, [sp, #0x68]
|
|
sub r0, r0, #0x8000
|
|
str r0, [sp, #0x94]
|
|
ldr r0, [sp, #0x68]
|
|
str r0, [sp, #0x98]
|
|
add r0, r8, #0x700
|
|
str r0, [sp, #0x9c]
|
|
ldr r0, [sp, #0x68]
|
|
str r0, [sp, #0xa0]
|
|
str r0, [sp, #0xa4]
|
|
str r0, [sp, #0xa8]
|
|
b _020165F0
|
|
_02016320:
|
|
ldr r0, [sp, #0x54]
|
|
ldr r2, [sp, #0x40]
|
|
add r4, r0, sl, lsl #5
|
|
ldrh r0, [r4, #2]
|
|
mov r1, #1
|
|
str r0, [sp, #0x28]
|
|
tst r2, r1, lsl r0
|
|
bne _020165B4
|
|
ldr r0, [sp, #0x4c]
|
|
cmp r0, #0
|
|
ldr r0, [sp, #0x28]
|
|
orr r0, r2, r1, lsl r0
|
|
str r0, [sp, #0x40]
|
|
ldrh r0, [r4, #6]
|
|
ldr r1, [sp, #0x50]
|
|
and r1, r0, r1
|
|
str r1, [sp, #0x6c]
|
|
beq _02016378
|
|
mov r2, r1
|
|
ldr r1, [sp, #0x2c]
|
|
tst r2, r1
|
|
bne _020165B4
|
|
_02016378:
|
|
ldr r1, [sp, #0x28]
|
|
tst r1, #8
|
|
movne r1, #1
|
|
strne r1, [sp, #0x20]
|
|
moveq r1, #0
|
|
streq r1, [sp, #0x20]
|
|
ldr r1, [sp, #0x48]
|
|
cmp r1, #0
|
|
orrne r1, r0, #1
|
|
ldrne r0, [sp, #0x8c]
|
|
cmpne r1, r0
|
|
movne r0, #1
|
|
strne r0, [sp, #0x1c]
|
|
moveq r0, #0
|
|
streq r0, [sp, #0x1c]
|
|
ldrh r0, [r4, #0xe]
|
|
and r1, r0, #1
|
|
cmp r1, #1
|
|
addeq r0, r0, #1
|
|
streqh r0, [r4, #0xe]
|
|
ldr r0, [sp, #0x20]
|
|
ldr r1, [sp, #0x44]
|
|
cmp r0, #0
|
|
movne r0, #2
|
|
moveq r0, #0
|
|
cmp r1, #0
|
|
movne r3, #0
|
|
ldr r1, [sp, #0x1c]
|
|
moveq r3, #2
|
|
ldrh r2, [r4, #0xe]
|
|
cmp r1, #0
|
|
movne r1, #2
|
|
add r2, r2, r3
|
|
moveq r1, #0
|
|
add r0, r2, r0
|
|
add r0, r1, r0
|
|
cmp r0, sb
|
|
bgt _020165B4
|
|
ldr r0, [sp, #0x44]
|
|
cmp r0, #0
|
|
streq r6, [sp, #0x70]
|
|
moveq r0, #0
|
|
streqh r0, [r6], #2
|
|
ldr r0, [sp, #0x70]
|
|
ldrh r2, [r4, #2]
|
|
ldrh r1, [r4, #0xe]
|
|
mov r2, r2, lsl #8
|
|
mov r1, r1, lsr #1
|
|
ldrh r0, [r0]
|
|
and r2, r2, #0xf00
|
|
and r1, r1, #0xff
|
|
orr r1, r2, r1
|
|
orr r1, r0, r1
|
|
ldr r0, [sp, #0x70]
|
|
addeq fp, fp, #2
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #0x14]
|
|
ldrh r2, [r4, #0xe]
|
|
mov r1, r6
|
|
subeq sb, sb, #2
|
|
bl sub_0302D78C
|
|
ldrh r1, [r4, #0xe]
|
|
ldr r0, [sp, #0x20]
|
|
add fp, fp, r1
|
|
cmp r0, #1
|
|
bic r0, r1, #1
|
|
add r6, r6, r0
|
|
sub sb, sb, r1
|
|
bne _020164E0
|
|
ldrh r0, [r4, #0x10]
|
|
tst r0, #1
|
|
moveq r2, r0, asr #1
|
|
beq _020164CC
|
|
ldr r0, [sp, #0x90]
|
|
ldrh r1, [r4, #2]
|
|
ldrh r0, [r0, #0x88]
|
|
mov r1, r1, lsl #0x1d
|
|
add r0, r8, r0, lsl #4
|
|
add r0, r0, r1, lsr #28
|
|
add r0, r0, #0x100
|
|
ldrh r2, [r0, #0xf8]
|
|
add r1, r2, #1
|
|
strh r1, [r0, #0xf8]
|
|
mov r0, r2, lsl #1
|
|
strh r0, [r4, #0x10]
|
|
_020164CC:
|
|
ldr r0, [sp, #0x94]
|
|
add fp, fp, #2
|
|
and r0, r2, r0
|
|
strh r0, [r6], #2
|
|
sub sb, sb, #2
|
|
_020164E0:
|
|
ldr r0, [sp, #0x1c]
|
|
cmp r0, #1
|
|
bne _02016510
|
|
ldr r0, [sp, #0x70]
|
|
add fp, fp, #2
|
|
ldrh r0, [r0]
|
|
sub sb, sb, #2
|
|
orr r1, r0, #0x1000
|
|
ldr r0, [sp, #0x70]
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, #6]
|
|
strh r0, [r6], #2
|
|
_02016510:
|
|
ldr r0, [sp, #0x44]
|
|
cmp r0, #1
|
|
moveq r0, #0
|
|
streq r0, [sp, #0x44]
|
|
ldr r0, [sp, #0x5c]
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, sl
|
|
ldreq r1, [sp, #0x68]
|
|
ldreq r0, [sp, #0x5c]
|
|
streqh r1, [r0, #2]
|
|
ldrh r1, [r4]
|
|
ldr r0, [sp, #0x64]
|
|
strh r1, [r0]
|
|
ldr r0, [sp, #0x78]
|
|
strh r0, [r4]
|
|
ldr r0, [sp, #0x60]
|
|
ldrh r1, [r0, #2]
|
|
ldr r0, [sp, #0x98]
|
|
cmp r1, r0
|
|
ldreq r0, [sp, #0x60]
|
|
movne r1, r1, lsl #5
|
|
streqh sl, [r0]
|
|
ldrne r0, [sp, #0x54]
|
|
strneh sl, [r0, r1]
|
|
ldr r0, [sp, #0x28]
|
|
mov r1, #1
|
|
mvn r1, r1, lsl r0
|
|
ldr r0, [sp, #0x40]
|
|
and r0, r0, r1
|
|
str r0, [sp, #0x40]
|
|
ldr r0, [sp, #0x60]
|
|
strh sl, [r0, #2]
|
|
ldr r0, [sp, #0x6c]
|
|
ldr sl, [sp, #0x68]
|
|
strh r0, [r4, #0xa]
|
|
ldrh r0, [r4, #4]
|
|
orr r5, r5, r0
|
|
ldr r0, [sp, #0x9c]
|
|
ldrh r0, [r0, #0xc8]
|
|
cmp r0, #1
|
|
beq _02016624
|
|
_020165B4:
|
|
ldr r0, [sp, #0xa0]
|
|
str sl, [sp, #0x68]
|
|
cmp sl, r0
|
|
ldrne r0, [sp, #0x54]
|
|
addne r0, r0, sl, lsl #5
|
|
strne r0, [sp, #0x64]
|
|
ldreq r0, [sp, #0x5c]
|
|
streq r0, [sp, #0x64]
|
|
ldr r0, [sp, #0xa4]
|
|
cmp sl, r0
|
|
ldrne r0, [sp, #0x54]
|
|
movne r1, sl, lsl #5
|
|
ldrneh sl, [r0, r1]
|
|
ldreq r0, [sp, #0x5c]
|
|
ldreqh sl, [r0]
|
|
_020165F0:
|
|
ldr r0, [sp, #0xa8]
|
|
cmp sl, r0
|
|
beq _02016604
|
|
cmp sb, #2
|
|
bgt _02016320
|
|
_02016604:
|
|
ldr r0, [sp, #0x58]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0x58]
|
|
_02016610:
|
|
ldr r0, [sp, #0x58]
|
|
cmp r0, #4
|
|
bhs _02016624
|
|
cmp sb, #2
|
|
bgt _0201629C
|
|
_02016624:
|
|
add r0, r8, #0x31c
|
|
add r0, r0, #0x400
|
|
mov sl, fp
|
|
bl sub_0302C0FC
|
|
mov r0, #0
|
|
_02016638:
|
|
cmp r0, #1
|
|
moveq r0, #0
|
|
streqh r0, [r7, #0x62]
|
|
streqh r0, [r7, #0x64]
|
|
beq _02016A9C
|
|
add r0, r7, #0x700
|
|
ldrh r1, [r0, #0xc6]
|
|
ldr r0, [sp, #0x24]
|
|
cmp r1, #1
|
|
add r4, r0, #2
|
|
ldrne r5, [sp, #0x18]
|
|
ldr r0, [sp, #0x74]
|
|
and r5, r5, r0
|
|
mov r0, r5
|
|
bl sub_03033020
|
|
ldr r1, [sp, #0x24]
|
|
add r1, r1, #0xc
|
|
mul r0, r1, r0
|
|
add r0, r0, #0x29
|
|
ldrh r1, [r7, #0x72]
|
|
bic r0, r0, #0x1f
|
|
cmp r1, r0
|
|
bge _020169B8
|
|
ldr r0, _02016AA8 ; =0x027F8878
|
|
ldr sb, [r0, #0x550]
|
|
ldrh r0, [sb]
|
|
add r8, sb, #0x2f8
|
|
cmp r0, #9
|
|
moveq r4, #1
|
|
beq _020166BC
|
|
cmp r0, #0xa
|
|
bne _020169A8
|
|
mov r4, #0
|
|
_020166BC:
|
|
add r0, sb, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_0302C078
|
|
ldr r0, [sb, #0x734]
|
|
cmp r0, #0
|
|
bne _020166E4
|
|
add r0, sb, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_0302C0FC
|
|
b _020169A8
|
|
_020166E4:
|
|
cmp r4, #0
|
|
moveq r0, #1
|
|
streq r0, [sp, #0x3c]
|
|
beq _02016708
|
|
bl sub_0302D4F0
|
|
add r1, sb, #0x100
|
|
ldrh r1, [r1, #0x82]
|
|
str r1, [sp, #0x3c]
|
|
bl sub_0302D504
|
|
_02016708:
|
|
mov r0, r5, lsl #0x10
|
|
mvn r0, r0, lsr #16
|
|
str r0, [sp, #0x30]
|
|
mov sl, #0
|
|
_02016718:
|
|
ldr r0, _02016AAC ; =0x0000FFFF
|
|
add fp, sb, #0x600
|
|
str r0, [sp, #0x38]
|
|
add r0, sb, #0x2fc
|
|
add r1, r0, #0x400
|
|
mov r0, sl, lsl #2
|
|
ldrh r5, [r1, r0]
|
|
ldr r0, [sp, #0x38]
|
|
add r6, r1, sl, lsl #2
|
|
str r0, [sp, #0x34]
|
|
ldr r0, [sp, #0x38]
|
|
str r0, [sp, #0x7c]
|
|
str r0, [sp, #0x80]
|
|
str r0, [sp, #0x84]
|
|
str r0, [sp, #0x88]
|
|
str r0, [sp, #0xac]
|
|
str r0, [sp, #0xb0]
|
|
add r0, sb, #0x100
|
|
str r0, [sp, #0xb4]
|
|
ldr r0, [sp, #0x38]
|
|
str r0, [sp, #0xb8]
|
|
str r0, [sp, #0xbc]
|
|
str r0, [sp, #0xc0]
|
|
b _02016934
|
|
_02016778:
|
|
add r4, r8, r5, lsl #5
|
|
ldrh r1, [r4, #0xa]
|
|
ldr r0, [sp, #0x30]
|
|
ldrh r2, [r4, #8]
|
|
and r0, r1, r0
|
|
orr r0, r2, r0
|
|
strh r0, [r4, #8]
|
|
ldrh r0, [r4, #8]
|
|
ldrh r1, [r4, #6]
|
|
mvn r0, r0
|
|
and r0, r1, r0
|
|
strh r0, [r4, #6]
|
|
ldrh r1, [r4, #6]
|
|
ldr r0, [sp, #0x3c]
|
|
and r0, r1, r0
|
|
strh r0, [r4, #6]
|
|
mov r0, #0
|
|
strh r0, [r4, #0xa]
|
|
ldrh r0, [r4, #6]
|
|
cmp r0, #0
|
|
beq _02016848
|
|
ldrh r0, [r4, #2]
|
|
tst r0, #8
|
|
ldreqh r0, [r4, #0x12]
|
|
cmpeq r0, #0
|
|
beq _02016848
|
|
ldrh r0, [r4, #0x12]
|
|
cmp r0, #0
|
|
subne r0, r0, #1
|
|
strneh r0, [r4, #0x12]
|
|
ldrh r1, [r4]
|
|
ldr r0, [sp, #0xac]
|
|
cmp r1, r0
|
|
ldreq r0, [sp, #0x7c]
|
|
streqh r0, [r6, #2]
|
|
ldr r1, [sp, #0x38]
|
|
ldr r0, [sp, #0xb0]
|
|
cmp r1, r0
|
|
ldrh r0, [r4]
|
|
strh r0, [r6]
|
|
ldr r0, [sp, #0x80]
|
|
strh r0, [r4]
|
|
moveq r0, r5, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
streq r0, [sp, #0x34]
|
|
ldrne r0, [sp, #0x38]
|
|
movne r0, r0, lsl #5
|
|
strneh r5, [r8, r0]
|
|
mov r0, r5, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
str r0, [sp, #0x38]
|
|
b _02016930
|
|
_02016848:
|
|
bl sub_03036B70
|
|
mov r1, #0x81
|
|
strh r1, [r0]
|
|
ldrh r1, [r4, #6]
|
|
ldr r3, [sp, #0xb4]
|
|
cmp r1, #0
|
|
moveq r1, #0
|
|
movne r1, #0xf
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x14
|
|
strh r1, [r0, #8]
|
|
ldrh r1, [r4, #2]
|
|
strh r1, [r0, #0xa]
|
|
ldrh r1, [r4, #4]
|
|
strh r1, [r0, #0xc]
|
|
ldrh r1, [r4, #6]
|
|
strh r1, [r0, #0xe]
|
|
ldrh r1, [r4, #8]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r1, [r4, #0xe]
|
|
strh r1, [r0, #0x18]
|
|
ldr r1, [r4, #0x14]
|
|
str r1, [r0, #0x14]
|
|
ldr r1, [r4, #0x18]
|
|
str r1, [r0, #0x1c]
|
|
ldr r1, [r4, #0x1c]
|
|
str r1, [r0, #0x20]
|
|
ldrh r1, [r4, #0x10]
|
|
strh r1, [r0, #0x1a]
|
|
ldrh r3, [r3, #0x88]
|
|
ldrh r1, [sb, #0x30]
|
|
cmp r3, #0
|
|
ldrh r2, [sb, #0x32]
|
|
moveq r3, r1
|
|
movne r3, r2
|
|
strh r3, [r0, #0x24]
|
|
ldr r3, [sp, #0xb4]
|
|
ldrh r3, [r3, #0x88]
|
|
cmp r3, #0
|
|
movne r2, r1
|
|
strh r2, [r0, #0x26]
|
|
bl sub_03036B24
|
|
ldrh r1, [r4]
|
|
ldr r0, [sp, #0xb8]
|
|
cmp r1, r0
|
|
ldreq r0, [sp, #0x84]
|
|
streqh r0, [r6, #2]
|
|
ldrh r0, [r4]
|
|
strh r0, [r6]
|
|
ldr r0, [sp, #0x88]
|
|
strh r0, [r4]
|
|
ldrh r1, [fp, #0xfa]
|
|
ldr r0, [sp, #0xbc]
|
|
cmp r1, r0
|
|
streqh r5, [fp, #0xf8]
|
|
movne r0, r1, lsl #5
|
|
strneh r5, [r8, r0]
|
|
strh r5, [fp, #0xfa]
|
|
_02016930:
|
|
ldrh r5, [r6]
|
|
_02016934:
|
|
ldr r0, [sp, #0xc0]
|
|
cmp r5, r0
|
|
bne _02016778
|
|
ldr r2, _02016AAC ; =0x0000FFFF
|
|
ldr r0, [sp, #0x38]
|
|
cmp r0, r2
|
|
beq _02016988
|
|
add r0, sb, sl, lsl #2
|
|
add r1, r0, #0x700
|
|
ldr r0, [sp, #0x38]
|
|
ldrh r3, [r1, #0xc]
|
|
mov r0, r0, lsl #5
|
|
strh r3, [r8, r0]
|
|
ldrh r0, [r1, #0xe]
|
|
cmp r0, r2
|
|
ldreq r0, [sp, #0x38]
|
|
streqh r0, [r1, #0xe]
|
|
add r0, sb, sl, lsl #2
|
|
add r1, r0, #0x700
|
|
ldr r0, [sp, #0x34]
|
|
strh r0, [r1, #0xc]
|
|
_02016988:
|
|
add sl, sl, #1
|
|
cmp sl, #4
|
|
blt _02016718
|
|
add r0, sb, #0x31c
|
|
mov r1, #0
|
|
add r0, r0, #0x400
|
|
str r1, [sb, #0x734]
|
|
bl sub_0302C0FC
|
|
_020169A8:
|
|
mov r0, #0
|
|
strh r0, [r7, #0x62]
|
|
strh r0, [r7, #0x64]
|
|
b _02016A9C
|
|
_020169B8:
|
|
ldrsh r0, [r7, #0x62]
|
|
cmp r0, #1
|
|
ldrnesh r0, [r7, #0x64]
|
|
cmpne r0, #1
|
|
movne r6, #0
|
|
bne _02016A38
|
|
ldrh r3, [r7, #0x40]
|
|
mov r0, sl
|
|
mov r1, r4
|
|
mov r2, r5
|
|
bl sub_02017404
|
|
ldrh r1, [sp, #0xc4]
|
|
mov r6, r0
|
|
orr r0, r1, #0x8000
|
|
strh r0, [sp, #0xc4]
|
|
b _02016A38
|
|
_020169F8:
|
|
mov r6, #0
|
|
strh r6, [r7, #0x9e]
|
|
ldrh r0, [sp, #0xc4]
|
|
ldr r5, [sp, #0x74]
|
|
bic r0, r0, #0x8000
|
|
strh r0, [sp, #0xc4]
|
|
mov sl, r6
|
|
ldr r4, _02016AB0 ; =0x000080D6
|
|
bl sub_0302D4F0
|
|
ldrsh r1, [r7, #0x62]
|
|
add r1, r1, #1
|
|
strh r1, [r7, #0x62]
|
|
ldrsh r1, [r7, #0x64]
|
|
add r1, r1, #1
|
|
strh r1, [r7, #0x64]
|
|
bl sub_0302D504
|
|
_02016A38:
|
|
mov r0, r5, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
str r0, [sp]
|
|
ldr r0, _02016AB4 ; =0x048080F8
|
|
str r6, [sp, #4]
|
|
ldrh r1, [r0]
|
|
mov r0, sl, lsl #0x10
|
|
str r1, [sp, #8]
|
|
mov r0, r0, lsr #0x10
|
|
str r0, [sp, #0xc]
|
|
ldrh r0, [sp, #0xc4]
|
|
mov r3, r4, lsl #0x10
|
|
str r0, [sp, #0x10]
|
|
ldr r2, [r7, #0x7c]
|
|
mov r1, #0
|
|
str r2, [sp, #0x14]
|
|
add r0, sp, #0xc8
|
|
mov r2, r1
|
|
mov r3, r3, lsr #0x10
|
|
bl sub_02011B04
|
|
strh r5, [r7, #0x68]
|
|
ldrh r0, [sp, #0xc4]
|
|
strh r0, [r7, #0x6a]
|
|
strh r4, [r7, #0x6c]
|
|
strh sl, [r7, #0x6e]
|
|
_02016A9C:
|
|
add sp, sp, #0x2c8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02016AA8: .word 0x027F8878
|
|
_02016AAC: .word 0x0000FFFF
|
|
_02016AB0: .word 0x000080D6
|
|
_02016AB4: .word 0x048080F8
|
|
arm_func_end sub_02016110
|
|
|
|
arm_func_start sub_02016AB8
|
|
sub_02016AB8: ; 0x02016AB8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x218
|
|
ldr r1, _02016B9C ; =0x027F8878
|
|
mov r4, r0
|
|
ldr r7, [r1, #0x550]
|
|
bl sub_0302D4F0
|
|
bl sub_0302D504
|
|
add r0, r7, #0x100
|
|
ldrh r0, [r0, #0x82]
|
|
ldr r1, _02016BA0 ; =0x048080F8
|
|
and r4, r4, r0
|
|
ldrh r8, [r7, #0x3a]
|
|
mov r0, r4
|
|
ldrh r5, [r1]
|
|
ldrh r6, [r7, #0x6a]
|
|
bl sub_03033020
|
|
add r1, r8, #0xc
|
|
mul r0, r1, r0
|
|
add r0, r0, #0x29
|
|
ldrh r1, [r7, #0x72]
|
|
bic r0, r0, #0x1f
|
|
cmp r1, r0
|
|
bge _02016B24
|
|
mov r0, #2
|
|
bl sub_0302BC58
|
|
bl sub_02011244
|
|
b _02016B90
|
|
_02016B24:
|
|
ldrsh r0, [r7, #0x62]
|
|
cmp r0, #1
|
|
ldrnesh r0, [r7, #0x64]
|
|
cmpne r0, #1
|
|
bicne r6, r6, #0x8000
|
|
movne r0, #0
|
|
bne _02016B58
|
|
ldrh r0, [r7, #0x6e]
|
|
ldrh r1, [r7, #0x6c]
|
|
ldrh r3, [r7, #0x40]
|
|
mov r2, r4
|
|
bl sub_02017404
|
|
orr r6, r6, #0x8000
|
|
_02016B58:
|
|
mov r1, r4, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
str r1, [sp]
|
|
stmib sp, {r0, r5}
|
|
mov r2, #0
|
|
mov r0, r6, lsl #0x10
|
|
str r2, [sp, #0xc]
|
|
mov r0, r0, lsr #0x10
|
|
str r0, [sp, #0x10]
|
|
ldr r1, _02016BA4 ; =0x0000800C
|
|
add r0, sp, #0x18
|
|
mov r3, r2
|
|
str r2, [sp, #0x14]
|
|
bl sub_02011B04
|
|
_02016B90:
|
|
add sp, sp, #0x218
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02016B9C: .word 0x027F8878
|
|
_02016BA0: .word 0x048080F8
|
|
_02016BA4: .word 0x0000800C
|
|
arm_func_end sub_02016AB8
|
|
|
|
arm_func_start sub_02016BA8
|
|
sub_02016BA8: ; 0x02016BA8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r4, _02016CD4 ; =0x027F8878
|
|
ldrh r8, [sp, #0x24]
|
|
ldr r4, [r4, #0x550]
|
|
mov r7, r0
|
|
add r0, r4, #0x30c
|
|
add r0, r0, #0x400
|
|
cmp r8, #0
|
|
add sb, r0, r1, lsl #2
|
|
mov r6, r2
|
|
mov r5, r3
|
|
add r8, r4, #0x2f8
|
|
moveq r0, #6
|
|
beq _02016CCC
|
|
ldrh r0, [sp, #0x24]
|
|
tst r6, #8
|
|
movne r1, #2
|
|
moveq r1, #0
|
|
add r0, r0, r1
|
|
cmp r0, #0x204
|
|
movgt r0, #6
|
|
bgt _02016CCC
|
|
add r0, r4, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_0302C078
|
|
add r2, r4, #0x600
|
|
ldrh r1, [r2, #0xf8]
|
|
ldr r3, _02016CD8 ; =0x0000FFFF
|
|
cmp r1, r3
|
|
bne _02016C34
|
|
add r0, r4, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_0302C0FC
|
|
mov r0, #0xa
|
|
b _02016CCC
|
|
_02016C34:
|
|
mov r0, r1, lsl #5
|
|
ldrh ip, [r8, r0]
|
|
add r0, r8, r1, lsl #5
|
|
strh ip, [r2, #0xf8]
|
|
ldrh ip, [r2, #0xfa]
|
|
cmp ip, r1
|
|
streqh r3, [r2, #0xfa]
|
|
strh r6, [r0, #2]
|
|
strh r5, [r0, #4]
|
|
and r2, r5, r7
|
|
strh r2, [r0, #6]
|
|
mov r2, #0
|
|
strh r2, [r0, #8]
|
|
strh r2, [r0, #0xa]
|
|
ldr r3, [sp, #0x20]
|
|
ldrh r2, [sp, #0x24]
|
|
str r3, [r0, #0x14]
|
|
strh r2, [r0, #0xe]
|
|
ldr r3, [sp, #0x28]
|
|
ldr r2, [sp, #0x2c]
|
|
str r3, [r0, #0x18]
|
|
str r2, [r0, #0x1c]
|
|
ldr r3, _02016CD8 ; =0x0000FFFF
|
|
add r2, r4, #0x700
|
|
strh r3, [r0]
|
|
strh r3, [r0, #0x10]
|
|
ldrh r2, [r2, #0xca]
|
|
strh r2, [r0, #0x12]
|
|
ldrh r0, [sb, #2]
|
|
cmp r0, r3
|
|
streqh r1, [sb]
|
|
movne r0, r0, lsl #5
|
|
strneh r1, [r8, r0]
|
|
add r0, r4, #0x31c
|
|
add r0, r0, #0x400
|
|
strh r1, [sb, #2]
|
|
bl sub_0302C0FC
|
|
mov r0, #2
|
|
_02016CCC:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02016CD4: .word 0x027F8878
|
|
_02016CD8: .word 0x0000FFFF
|
|
arm_func_end sub_02016BA8
|
|
|
|
arm_func_start sub_02016CDC
|
|
sub_02016CDC: ; 0x02016CDC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x3c
|
|
ldr r2, _02017004 ; =0x027F8878
|
|
str r0, [sp]
|
|
ldr r8, [r2, #0x550]
|
|
mov r5, r1
|
|
ldrh r1, [r8]
|
|
mov r0, #0
|
|
cmp r1, #9
|
|
add r4, r8, #0x2f8
|
|
str r0, [sp, #0xc]
|
|
moveq r6, #1
|
|
beq _02016D1C
|
|
cmp r1, #0xa
|
|
moveq r6, r0
|
|
bne _02016FF8
|
|
_02016D1C:
|
|
add r0, r8, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_0302C078
|
|
ldr r0, [r8, #0x734]
|
|
cmp r0, #0
|
|
bne _02016D48
|
|
add r0, r8, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_0302C0FC
|
|
mov r0, #0
|
|
b _02016FF8
|
|
_02016D48:
|
|
cmp r6, #0
|
|
moveq r0, #1
|
|
streq r0, [sp, #0x10]
|
|
beq _02016D6C
|
|
bl sub_0302D4F0
|
|
add r1, r8, #0x100
|
|
ldrh r1, [r1, #0x82]
|
|
str r1, [sp, #0x10]
|
|
bl sub_0302D504
|
|
_02016D6C:
|
|
mvn r0, r5
|
|
str r0, [sp, #4]
|
|
mov sl, #0
|
|
_02016D78:
|
|
add r0, r8, #0x2fc
|
|
add r1, r0, #0x400
|
|
ldr sb, _02017008 ; =0x0000FFFF
|
|
mov r0, sl, lsl #2
|
|
ldrh r5, [r1, r0]
|
|
add r0, r8, #0x100
|
|
str sb, [sp, #8]
|
|
add r6, r1, sl, lsl #2
|
|
str sb, [sp, #0x14]
|
|
str sb, [sp, #0x18]
|
|
str sb, [sp, #0x1c]
|
|
str sb, [sp, #0x20]
|
|
str sb, [sp, #0x24]
|
|
str sb, [sp, #0x28]
|
|
str r0, [sp, #0x2c]
|
|
str sb, [sp, #0x30]
|
|
add fp, r8, #0x600
|
|
str sb, [sp, #0x34]
|
|
str sb, [sp, #0x38]
|
|
b _02016F8C
|
|
_02016DC8:
|
|
ldr r0, [sp]
|
|
add r7, r4, r5, lsl #5
|
|
cmp r0, #0
|
|
bne _02016E04
|
|
ldrh r1, [r7, #0xa]
|
|
ldr r0, [sp, #4]
|
|
ldrh r2, [r7, #8]
|
|
and r0, r1, r0
|
|
orr r0, r2, r0
|
|
strh r0, [r7, #8]
|
|
ldrh r0, [r7, #8]
|
|
ldrh r1, [r7, #6]
|
|
mvn r0, r0
|
|
and r0, r1, r0
|
|
strh r0, [r7, #6]
|
|
_02016E04:
|
|
ldrh r1, [r7, #6]
|
|
ldr r0, [sp, #0x10]
|
|
and r0, r1, r0
|
|
strh r0, [r7, #6]
|
|
mov r0, #0
|
|
strh r0, [r7, #0xa]
|
|
ldrh r0, [r7, #6]
|
|
cmp r0, #0
|
|
beq _02016EA0
|
|
ldrh r0, [r7, #2]
|
|
tst r0, #8
|
|
ldreqh r0, [r7, #0x12]
|
|
cmpeq r0, #0
|
|
beq _02016EA0
|
|
mov r0, #1
|
|
str r0, [sp, #0xc]
|
|
ldrh r0, [r7, #0x12]
|
|
cmp r0, #0
|
|
subne r0, r0, #1
|
|
strneh r0, [r7, #0x12]
|
|
ldrh r1, [r7]
|
|
ldr r0, [sp, #0x24]
|
|
cmp r1, r0
|
|
ldreq r0, [sp, #0x14]
|
|
streqh r0, [r6, #2]
|
|
ldr r0, [sp, #0x28]
|
|
cmp sb, r0
|
|
ldrh r0, [r7]
|
|
strh r0, [r6]
|
|
ldr r0, [sp, #0x18]
|
|
strh r0, [r7]
|
|
moveq r0, r5, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
streq r0, [sp, #8]
|
|
movne r0, sb, lsl #5
|
|
strneh r5, [r4, r0]
|
|
mov r0, r5, lsl #0x10
|
|
mov sb, r0, lsr #0x10
|
|
b _02016F88
|
|
_02016EA0:
|
|
bl sub_03036B70
|
|
mov r1, #0x81
|
|
strh r1, [r0]
|
|
ldrh r1, [r7, #6]
|
|
ldr r3, [sp, #0x2c]
|
|
cmp r1, #0
|
|
moveq r1, #0
|
|
movne r1, #0xf
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x14
|
|
strh r1, [r0, #8]
|
|
ldrh r1, [r7, #2]
|
|
strh r1, [r0, #0xa]
|
|
ldrh r1, [r7, #4]
|
|
strh r1, [r0, #0xc]
|
|
ldrh r1, [r7, #6]
|
|
strh r1, [r0, #0xe]
|
|
ldrh r1, [r7, #8]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r1, [r7, #0xe]
|
|
strh r1, [r0, #0x18]
|
|
ldr r1, [r7, #0x14]
|
|
str r1, [r0, #0x14]
|
|
ldr r1, [r7, #0x18]
|
|
str r1, [r0, #0x1c]
|
|
ldr r1, [r7, #0x1c]
|
|
str r1, [r0, #0x20]
|
|
ldrh r1, [r7, #0x10]
|
|
strh r1, [r0, #0x1a]
|
|
ldrh r3, [r3, #0x88]
|
|
ldrh r1, [r8, #0x30]
|
|
cmp r3, #0
|
|
ldrh r2, [r8, #0x32]
|
|
moveq r3, r1
|
|
movne r3, r2
|
|
strh r3, [r0, #0x24]
|
|
ldr r3, [sp, #0x2c]
|
|
ldrh r3, [r3, #0x88]
|
|
cmp r3, #0
|
|
movne r2, r1
|
|
strh r2, [r0, #0x26]
|
|
bl sub_03036B24
|
|
ldrh r1, [r7]
|
|
ldr r0, [sp, #0x30]
|
|
cmp r1, r0
|
|
ldreq r0, [sp, #0x1c]
|
|
streqh r0, [r6, #2]
|
|
ldrh r0, [r7]
|
|
strh r0, [r6]
|
|
ldr r0, [sp, #0x20]
|
|
strh r0, [r7]
|
|
ldrh r1, [fp, #0xfa]
|
|
ldr r0, [sp, #0x34]
|
|
cmp r1, r0
|
|
streqh r5, [fp, #0xf8]
|
|
movne r0, r1, lsl #5
|
|
strneh r5, [r4, r0]
|
|
strh r5, [fp, #0xfa]
|
|
_02016F88:
|
|
ldrh r5, [r6]
|
|
_02016F8C:
|
|
ldr r0, [sp, #0x38]
|
|
cmp r5, r0
|
|
bne _02016DC8
|
|
ldr r1, _02017008 ; =0x0000FFFF
|
|
cmp sb, r1
|
|
beq _02016FD4
|
|
add r0, r8, sl, lsl #2
|
|
add r0, r0, #0x700
|
|
ldrh r3, [r0, #0xc]
|
|
mov r2, sb, lsl #5
|
|
strh r3, [r4, r2]
|
|
ldrh r2, [r0, #0xe]
|
|
cmp r2, r1
|
|
streqh sb, [r0, #0xe]
|
|
add r0, r8, sl, lsl #2
|
|
add r1, r0, #0x700
|
|
ldr r0, [sp, #8]
|
|
strh r0, [r1, #0xc]
|
|
_02016FD4:
|
|
add sl, sl, #1
|
|
cmp sl, #4
|
|
blt _02016D78
|
|
add r0, r8, #0x31c
|
|
mov r1, #0
|
|
add r0, r0, #0x400
|
|
str r1, [r8, #0x734]
|
|
bl sub_0302C0FC
|
|
ldr r0, [sp, #0xc]
|
|
_02016FF8:
|
|
add sp, sp, #0x3c
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02017004: .word 0x027F8878
|
|
_02017008: .word 0x0000FFFF
|
|
arm_func_end sub_02016CDC
|
|
|
|
arm_func_start sub_0201700C
|
|
sub_0201700C: ; 0x0201700C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x14
|
|
ldr r1, _020171F8 ; =0x027F8878
|
|
mvn r2, r0
|
|
ldr sb, [r1, #0x550]
|
|
add r0, sb, #0x100
|
|
ldrh r1, [r0, #0x82]
|
|
add r0, sb, #0x31c
|
|
add r0, r0, #0x400
|
|
add r5, sb, #0x2f8
|
|
and fp, r2, r1
|
|
bl sub_0302C078
|
|
add r0, sb, #0x30c
|
|
add r0, r0, #0x400
|
|
str r0, [sp, #8]
|
|
mov r0, #0
|
|
str r0, [sp, #0xc]
|
|
_02017050:
|
|
add r0, sb, #0x100
|
|
str r0, [sp, #0x10]
|
|
mov r6, #0
|
|
add r4, sb, #0x600
|
|
_02017060:
|
|
ldr r0, [sp, #8]
|
|
mov r1, r6, lsl #2
|
|
add r7, r0, r6, lsl #2
|
|
ldrh sl, [r0, r1]
|
|
ldr r0, _020171FC ; =0x0000FFFF
|
|
str r7, [sp, #4]
|
|
str r0, [sp]
|
|
b _020171B4
|
|
_02017080:
|
|
add r8, r5, sl, lsl #5
|
|
ldrh r0, [r8, #6]
|
|
and r0, r0, fp
|
|
strh r0, [r8, #6]
|
|
ldrh r0, [r8, #0xa]
|
|
and r0, r0, fp
|
|
strh r0, [r8, #0xa]
|
|
ldrh r0, [r8, #6]
|
|
cmp r0, #0
|
|
bne _02017188
|
|
bl sub_03036B70
|
|
mov r1, #0x81
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x14
|
|
strh r1, [r0, #8]
|
|
ldrh r1, [r8, #2]
|
|
ldr r3, [sp, #0x10]
|
|
strh r1, [r0, #0xa]
|
|
ldrh r1, [r8, #4]
|
|
strh r1, [r0, #0xc]
|
|
ldrh r1, [r8, #6]
|
|
strh r1, [r0, #0xe]
|
|
ldrh r1, [r8, #8]
|
|
strh r1, [r0, #0x10]
|
|
ldrh r1, [r8, #0xe]
|
|
strh r1, [r0, #0x18]
|
|
ldr r1, [r8, #0x14]
|
|
str r1, [r0, #0x14]
|
|
ldr r1, [r8, #0x18]
|
|
str r1, [r0, #0x1c]
|
|
ldr r1, [r8, #0x1c]
|
|
str r1, [r0, #0x20]
|
|
ldrh r1, [r8, #0x10]
|
|
strh r1, [r0, #0x1a]
|
|
ldrh r3, [r3, #0x88]
|
|
ldrh r1, [sb, #0x30]
|
|
cmp r3, #0
|
|
ldrh r2, [sb, #0x32]
|
|
moveq r3, r1
|
|
movne r3, r2
|
|
strh r3, [r0, #0x24]
|
|
ldr r3, [sp, #0x10]
|
|
ldrh r3, [r3, #0x88]
|
|
cmp r3, #0
|
|
movne r2, r1
|
|
strh r2, [r0, #0x26]
|
|
bl sub_03036B24
|
|
ldrh r1, [r8]
|
|
ldr r0, _020171FC ; =0x0000FFFF
|
|
cmp r1, r0
|
|
ldreq r0, [sp]
|
|
streqh r0, [r7, #2]
|
|
ldrh r1, [r8]
|
|
ldr r0, [sp, #4]
|
|
strh r1, [r0]
|
|
ldr r0, _020171FC ; =0x0000FFFF
|
|
strh r0, [r8]
|
|
ldrh r1, [r4, #0xfa]
|
|
cmp r1, r0
|
|
streqh sl, [r4, #0xf8]
|
|
movne r0, r1, lsl #5
|
|
strneh sl, [r5, r0]
|
|
strh sl, [r4, #0xfa]
|
|
ldr sl, [sp]
|
|
_02017188:
|
|
ldr r0, _020171FC ; =0x0000FFFF
|
|
str sl, [sp]
|
|
cmp sl, r0
|
|
addne r0, r5, sl, lsl #5
|
|
strne r0, [sp, #4]
|
|
ldr r0, _020171FC ; =0x0000FFFF
|
|
streq r7, [sp, #4]
|
|
cmp sl, r0
|
|
movne r0, sl, lsl #5
|
|
ldrneh sl, [r5, r0]
|
|
ldreqh sl, [r7]
|
|
_020171B4:
|
|
ldr r0, _020171FC ; =0x0000FFFF
|
|
cmp sl, r0
|
|
bne _02017080
|
|
add r6, r6, #1
|
|
cmp r6, #4
|
|
blt _02017060
|
|
ldr r0, [sp, #0xc]
|
|
add r0, r0, #1
|
|
str r0, [sp, #0xc]
|
|
cmp r0, #2
|
|
blt _02017050
|
|
add r0, sb, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_0302C0FC
|
|
add sp, sp, #0x14
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020171F8: .word 0x027F8878
|
|
_020171FC: .word 0x0000FFFF
|
|
arm_func_end sub_0201700C
|
|
|
|
arm_func_start sub_02017200
|
|
sub_02017200: ; 0x02017200
|
|
stmdb sp!, {r0, r1, r2, r3}
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0xc
|
|
ldr r4, _020173FC ; =0x027F8878
|
|
ldr r1, [sp, #0x40]
|
|
ldr r5, [r4, #0x550]
|
|
movs sb, r3
|
|
str r1, [sp, #0x40]
|
|
mov sl, r0
|
|
str r2, [sp]
|
|
beq _020173EC
|
|
cmp sb, #0x204
|
|
bhi _020173EC
|
|
add r4, r5, #0x100
|
|
ldrh r0, [r4, #0x88]
|
|
cmp sl, r0
|
|
beq _020173EC
|
|
cmp sl, #0x10
|
|
bhs _020173EC
|
|
tst sb, #1
|
|
bne _020173EC
|
|
add r0, r5, #0x1f8
|
|
add r8, r0, sl, lsl #4
|
|
mov r0, #1
|
|
str r0, [sp, #8]
|
|
b _020173E4
|
|
_02017268:
|
|
ldr r0, [sp, #8]
|
|
ldr r7, _02017400 ; =0x0000FFFF
|
|
cmp r0, #1
|
|
addeq r1, sp, #0x34
|
|
moveq r0, #0
|
|
ldrne r1, [sp]
|
|
streq r0, [sp, #8]
|
|
movne r0, r1
|
|
addne r0, r0, #2
|
|
ldrh r1, [r1]
|
|
strne r0, [sp]
|
|
mov r0, r1, lsl #0x18
|
|
subne sb, sb, #2
|
|
movs r6, r0, lsr #0x17
|
|
moveq r6, #0x200
|
|
tst r1, #0x1000
|
|
movne r2, #1
|
|
moveq r2, #0
|
|
tst r1, #0x800
|
|
movne r3, #1
|
|
moveq r3, #0
|
|
cmp r2, #0
|
|
movne fp, #2
|
|
moveq fp, #0
|
|
cmp r3, #0
|
|
movne r0, #2
|
|
moveq r0, #0
|
|
add r0, r6, r0
|
|
add r0, r0, fp
|
|
subs sb, sb, r0
|
|
bmi _020173EC
|
|
and r1, r1, #0xf00
|
|
cmp r3, #1
|
|
mov r1, r1, lsl #8
|
|
ldr r3, [sp]
|
|
mov fp, r1, lsr #0x10
|
|
ldr r1, [sp]
|
|
add r0, r3, r0
|
|
str r1, [sp, #4]
|
|
add r1, r1, r6
|
|
str r0, [sp]
|
|
bne _0201734C
|
|
mov r0, fp, lsl #0x1d
|
|
mov r0, r0, lsr #0x1c
|
|
ldrh r3, [r8, r0]
|
|
ldrh r7, [r1], #2
|
|
tst r3, #1
|
|
movne r3, r7, lsl #1
|
|
strneh r3, [r8, r0]
|
|
bne _0201734C
|
|
mov r7, r7, lsl #1
|
|
sub r3, r3, r7
|
|
mov r3, r3, lsl #0x10
|
|
mov r3, r3, lsr #0x10
|
|
cmp r3, #0x100
|
|
blo _020173E4
|
|
strh r7, [r8, r0]
|
|
_0201734C:
|
|
cmp r2, #1
|
|
bne _02017368
|
|
ldrh r2, [r1]
|
|
ldrh r1, [r4, #0x88]
|
|
mov r0, #1
|
|
tst r2, r0, lsl r1
|
|
beq _020173E4
|
|
_02017368:
|
|
cmp r6, #0
|
|
ble _020173E4
|
|
bl sub_03036B70
|
|
mov r1, #0x82
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
mov r1, #0x15
|
|
strh r1, [r0, #4]
|
|
ldr r1, [sp, #0x40]
|
|
strh fp, [r0, #6]
|
|
str r1, [r0, #8]
|
|
ldr r1, [sp, #4]
|
|
str r1, [r0, #0xc]
|
|
strh r6, [r0, #0x10]
|
|
strh sl, [r0, #0x12]
|
|
ldrh r1, [r4, #0x88]
|
|
strh r1, [r0, #0x20]
|
|
strh r7, [r0, #0x1a]
|
|
ldrh r1, [r4, #0x88]
|
|
ldrh r2, [r5, #0x30]
|
|
cmp r1, #0
|
|
ldrh r3, [r5, #0x32]
|
|
moveq r1, r2
|
|
movne r1, r3
|
|
strh r1, [r0, #0x40]
|
|
ldrh r1, [r4, #0x88]
|
|
cmp r1, #0
|
|
movne r3, r2
|
|
strh r3, [r0, #0x42]
|
|
bl sub_03036B24
|
|
_020173E4:
|
|
cmp sb, #0
|
|
bgt _02017268
|
|
_020173EC:
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
add sp, sp, #0x10
|
|
bx lr
|
|
.align 2, 0
|
|
_020173FC: .word 0x027F8878
|
|
_02017400: .word 0x0000FFFF
|
|
arm_func_end sub_02017200
|
|
|
|
arm_func_start sub_02017404
|
|
sub_02017404: ; 0x02017404
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r1
|
|
mov r5, r0
|
|
tst r6, #0x8000
|
|
ldrne r0, _020174A0 ; =0x00007FFF
|
|
mov r4, r3
|
|
andne r6, r6, r0
|
|
addeq r0, r6, #0x1c
|
|
moveq r0, r0, lsl #2
|
|
addeq r6, r0, #0x66
|
|
mov r0, r2
|
|
bl sub_03033020
|
|
mul r2, r6, r0
|
|
ldr r1, _020174A4 ; =0x04000006
|
|
add r0, r5, #0x22
|
|
mov r3, r0, lsl #2
|
|
ldrh r1, [r1]
|
|
sub r0, r4, #2
|
|
add r3, r3, #0x60
|
|
add r2, r2, #0x388
|
|
add r4, r3, r2
|
|
subs r3, r0, r1
|
|
bpl _0201746C
|
|
_02017460:
|
|
add r0, r3, #7
|
|
adds r3, r0, #0x100
|
|
bmi _02017460
|
|
_0201746C:
|
|
ldr r2, _020174A8 ; =0x66666667
|
|
rsb r1, r3, r3, lsl #7
|
|
mov r0, r1, lsr #0x1f
|
|
smull r1, r3, r2, r1
|
|
add r3, r0, r3, asr #3
|
|
mov r0, #0xa
|
|
mul r0, r3, r0
|
|
cmp r0, r4
|
|
movlo r3, #0
|
|
mov r0, r3, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020174A0: .word 0x00007FFF
|
|
_020174A4: .word 0x04000006
|
|
_020174A8: .word 0x66666667
|
|
arm_func_end sub_02017404
|
|
|
|
arm_func_start sub_020174AC
|
|
sub_020174AC: ; 0x020174AC
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x280
|
|
ldr r1, _02017538 ; =0x027F8878
|
|
ldr r2, [r0, #4]
|
|
ldr r4, [r1, #0x550]
|
|
add r0, sp, #0
|
|
strh r2, [r4, #0xf6]
|
|
add r1, r4, #0xe8
|
|
bl sub_0200FAFC
|
|
ldrh r1, [r4, #0xec]
|
|
add r0, sp, #0x80
|
|
add r1, r1, #0x10
|
|
mov r1, r1, lsl #0x10
|
|
add r2, sp, #0
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_02011FA8
|
|
mov r4, r0
|
|
bl sub_03036B70
|
|
mov r1, #0x21
|
|
strh r1, [r0]
|
|
ldrh r1, [r4, #4]
|
|
cmp r1, #0
|
|
moveq r1, #0
|
|
streqh r1, [r0, #2]
|
|
beq _02017528
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
add r1, r1, #0x244
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r4, #4]
|
|
strh r1, [r0, #6]
|
|
_02017528:
|
|
bl sub_03036B24
|
|
add sp, sp, #0x280
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02017538: .word 0x027F8878
|
|
arm_func_end sub_020174AC
|
|
|
|
arm_func_start sub_0201753C
|
|
sub_0201753C: ; 0x0201753C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0x208
|
|
add r1, sp, #0
|
|
add r0, r0, #4
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
mov r8, #0
|
|
add r7, sp, #8
|
|
add r6, sp, #0
|
|
mov r5, #0x13
|
|
b _02017598
|
|
_02017568:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl sub_020117BC
|
|
mov r4, r0
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _020175A0
|
|
cmp r0, #7
|
|
cmpne r0, #0xc
|
|
bne _020175A0
|
|
add r8, r8, #1
|
|
_02017598:
|
|
cmp r8, #2
|
|
blt _02017568
|
|
_020175A0:
|
|
bl sub_03036B70
|
|
mov r1, #0x22
|
|
strh r1, [r0]
|
|
ldrh r1, [r4, #4]
|
|
cmp r1, #0
|
|
moveq r1, #0
|
|
streqh r1, [r0, #2]
|
|
beq _020175D8
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
mov r1, #5
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r4, #4]
|
|
strh r1, [r0, #6]
|
|
_020175D8:
|
|
bl sub_03036B24
|
|
add sp, sp, #0x208
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
arm_func_end sub_0201753C
|
|
|
|
arm_func_start sub_020175E8
|
|
sub_020175E8: ; 0x020175E8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, [r0, #4]
|
|
ldr r1, _02017634 ; =0x027F8878
|
|
str r3, [r1, #0x54c]
|
|
ldr r2, [r0, #8]
|
|
str r2, [r1, #0x550]
|
|
str r2, [r3]
|
|
ldr r1, [r0, #0xc]
|
|
str r1, [r3, #8]
|
|
ldr r0, [r0, #0x10]
|
|
bl sub_02017638
|
|
bl sub_03036B70
|
|
mov r1, #3
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02017634: .word 0x027F8878
|
|
arm_func_end sub_020175E8
|
|
|
|
arm_func_start sub_02017638
|
|
sub_02017638: ; 0x02017638
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r1, _020177D8 ; =0x027F8878
|
|
mov r8, r0
|
|
ldr r7, [r1, #0x550]
|
|
ldr r4, [r1, #0x54c]
|
|
mov r5, #0
|
|
bl sub_0302D4F0
|
|
ldr r1, [r7, #0xc]
|
|
mov r6, r0
|
|
cmp r1, #1
|
|
bne _02017678
|
|
mov r0, r5
|
|
str r0, [r7, #0xc]
|
|
mov r5, #1
|
|
bl sub_0201537C
|
|
bl sub_0200FE30
|
|
_02017678:
|
|
add ip, r7, #0x100
|
|
mov r1, #0
|
|
strh r1, [ip, #0x82]
|
|
strh r1, [r7, #0x86]
|
|
str r1, [r7, #0x14]
|
|
str r1, [r7, #0x10]
|
|
str r1, [r7, #0x1c]
|
|
strh r1, [r7, #0xce]
|
|
strh r1, [r7, #0xc2]
|
|
mov r0, #1
|
|
strh r0, [r7, #0x58]
|
|
strh r0, [r7, #0x5a]
|
|
mov r0, #6
|
|
strh r0, [r7, #0x5c]
|
|
strh r1, [r7, #0x98]
|
|
strh r1, [r7, #0x92]
|
|
strh r1, [r7, #0x94]
|
|
strh r1, [r7, #0x9a]
|
|
strh r1, [r7, #0x9c]
|
|
ldrh r0, [r7, #0x58]
|
|
add r3, r7, #0x700
|
|
strh r0, [r3, #0xc0]
|
|
ldrh r2, [r7, #0x5a]
|
|
add r0, r7, #0x19c
|
|
strh r2, [r3, #0xc2]
|
|
ldrh lr, [r7, #0x5c]
|
|
mov r2, #0x50
|
|
strh lr, [r3, #0xc4]
|
|
ldrh lr, [r7, #0x98]
|
|
strh lr, [r3, #0xca]
|
|
ldrh lr, [r7, #0x92]
|
|
strh lr, [r3, #0xc6]
|
|
ldrh lr, [r7, #0x94]
|
|
strh lr, [r3, #0xc8]
|
|
ldrh lr, [r7, #0x9a]
|
|
strh lr, [r3, #0xcc]
|
|
str r1, [r7, #0x198]
|
|
strh r1, [ip, #0x96]
|
|
bl sub_0302D860
|
|
bl sub_0200FF5C
|
|
mov r0, #0x104
|
|
strh r0, [r7, #0x40]
|
|
mov r0, #0xf0
|
|
strh r0, [r7, #0x42]
|
|
mov r0, #0x3e8
|
|
strh r0, [r7, #0x44]
|
|
mov r1, #0
|
|
ldr r0, _020177DC ; =0x0000020B
|
|
strh r1, [r7, #0x46]
|
|
str r0, [r7, #0x48]
|
|
str r1, [r7, #0x4c]
|
|
str r1, [r7, #0x50]
|
|
str r1, [r7, #0x54]
|
|
strh r1, [r7, #0xc6]
|
|
add r0, r7, #0x100
|
|
mov r1, #1
|
|
strh r1, [r0, #0xee]
|
|
mov r0, r6
|
|
str r8, [r7, #0xc8]
|
|
bl sub_0302D504
|
|
cmp r5, #0
|
|
beq _02017778
|
|
ldr r0, _020177E0 ; =0x0000FFFF
|
|
bl sub_0201700C
|
|
_02017778:
|
|
mov r2, #0
|
|
mov r1, #0x8000
|
|
_02017780:
|
|
add r0, r4, r2, lsl #4
|
|
add r2, r2, #1
|
|
str r1, [r0, #0xd0]
|
|
cmp r2, #0x20
|
|
blt _02017780
|
|
add r1, r7, #0x1f8
|
|
mov r0, #1
|
|
mov r2, #0x100
|
|
bl sub_0302D764
|
|
bl sub_0201148C
|
|
add r0, r7, #0x31c
|
|
add r0, r0, #0x400
|
|
bl sub_0302C060
|
|
bl sub_02015368
|
|
tst r8, #2
|
|
bne _020177C8
|
|
mov r0, #0xf
|
|
bl sub_03034A0C
|
|
_020177C8:
|
|
mov r0, #1
|
|
strh r0, [r7]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020177D8: .word 0x027F8878
|
|
_020177DC: .word 0x0000020B
|
|
_020177E0: .word 0x0000FFFF
|
|
arm_func_end sub_02017638
|
|
|
|
arm_func_start sub_020177E4
|
|
sub_020177E4: ; 0x020177E4
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _02017848 ; =0x027F8878
|
|
ldr r4, [r0, #0x550]
|
|
ldrh r0, [r4]
|
|
cmp r0, #1
|
|
beq _02017818
|
|
bl sub_03036B70
|
|
mov r1, #4
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
b _02017840
|
|
_02017818:
|
|
mov r0, #1
|
|
bl sub_03034A0C
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
bl sub_03036B70
|
|
mov r1, #4
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_02017840:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02017848: .word 0x027F8878
|
|
arm_func_end sub_020177E4
|
|
|
|
arm_func_start sub_0201784C
|
|
sub_0201784C: ; 0x0201784C
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
ldr r0, _020178F0 ; =0x027F8878
|
|
ldr r4, [r0, #0x550]
|
|
ldrh r0, [r4]
|
|
cmp r0, #1
|
|
beq _02017884
|
|
bl sub_03036B70
|
|
mov r1, #5
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
b _020178E4
|
|
_02017884:
|
|
add r0, sp, #2
|
|
add r1, sp, #0
|
|
bl sub_020178F4
|
|
cmp r0, #0
|
|
bne _020178C4
|
|
bl sub_03036B70
|
|
mov r1, #5
|
|
strh r1, [r0]
|
|
mov r1, #1
|
|
strh r1, [r0, #2]
|
|
ldrh r1, [sp, #2]
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [sp]
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
b _020178E4
|
|
_020178C4:
|
|
mov r0, #2
|
|
strh r0, [r4]
|
|
bl sub_03036B70
|
|
mov r1, #5
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_020178E4:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020178F0: .word 0x027F8878
|
|
arm_func_end sub_0201784C
|
|
|
|
arm_func_start sub_020178F4
|
|
sub_020178F4: ; 0x020178F4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r2, _02017ADC ; =0x027F8878
|
|
mov r7, r0
|
|
add r0, sp, #0
|
|
mov r6, r1
|
|
ldr r5, [r2, #0x550]
|
|
bl sub_020120B8
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02017938
|
|
mov r1, #0x304
|
|
strh r1, [r7]
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #0
|
|
strh r1, [r6]
|
|
b _02017AD0
|
|
_02017938:
|
|
add r0, sp, #0
|
|
bl sub_02012088
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02017964
|
|
ldr r1, _02017AE0 ; =0x00000302
|
|
strh r1, [r7]
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #0
|
|
strh r1, [r6]
|
|
b _02017AD0
|
|
_02017964:
|
|
ldr r2, _02017AE4 ; =0x04808124
|
|
mov r0, #0xc8
|
|
strh r0, [r2]
|
|
mov r0, #0x7d0
|
|
strh r0, [r2, #4]
|
|
ldr r1, _02017AE8 ; =0x00000202
|
|
add r0, sp, #0
|
|
strh r1, [r2, #0x2c]
|
|
bl sub_02012044
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _020179AC
|
|
ldr r1, _02017AEC ; =0x00000283
|
|
strh r1, [r7]
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #0
|
|
strh r1, [r6]
|
|
b _02017AD0
|
|
_020179AC:
|
|
ldrh r2, [r0, #6]
|
|
add r0, r5, #0x100
|
|
mov r1, r2, lsl #0xf
|
|
strh r2, [r0, #0xf4]
|
|
mov r0, r1, lsr #0x10
|
|
bl sub_03036BC4
|
|
add r1, r5, #0x100
|
|
strh r0, [r1, #0xf6]
|
|
ldr r1, _02017AF0 ; =0x0000FFFF
|
|
add r0, sp, #0
|
|
mov r2, #0x28
|
|
mov r3, #5
|
|
bl sub_02011DD0
|
|
ldr r1, _02017AF4 ; =0x001FF621
|
|
mov r0, #0
|
|
str r1, [r5, #0x7b8]
|
|
str r0, [r5, #0x7bc]
|
|
add r1, r5, #0x100
|
|
mov r2, #2
|
|
strh r2, [r1, #0xec]
|
|
mov r2, #1
|
|
add r0, sp, #0
|
|
strh r2, [r1, #0xee]
|
|
bl sub_020120E4
|
|
mov r4, r0
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _02017A34
|
|
ldr r1, _02017AF8 ; =0x00000306
|
|
mov r0, #0
|
|
strh r1, [r7]
|
|
ldrh r1, [r4, #4]
|
|
strh r1, [r6]
|
|
b _02017AD0
|
|
_02017A34:
|
|
add r0, r4, #6
|
|
add r1, r5, #0x20
|
|
mov r2, #8
|
|
bl sub_0302D78C
|
|
ldrh r1, [r4, #0xe]
|
|
add r0, sp, #0
|
|
strh r1, [r5, #0x28]
|
|
ldrh r1, [r4, #0x10]
|
|
strh r1, [r5, #0x2c]
|
|
ldrh r1, [r4, #0x12]
|
|
strh r1, [r5, #0x2e]
|
|
ldrh r1, [r4, #0x14]
|
|
strh r1, [r5, #0x2a]
|
|
bl sub_0201202C
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02017A90
|
|
ldr r1, _02017AFC ; =0x00000281
|
|
strh r1, [r7]
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #0
|
|
strh r1, [r6]
|
|
b _02017AD0
|
|
_02017A90:
|
|
add r0, r0, #6
|
|
add r1, r5, #0xe0
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
add r0, sp, #0
|
|
mov r1, #1
|
|
bl sub_02011E94
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
moveq r0, #1
|
|
beq _02017AD0
|
|
ldr r1, _02017B00 ; =0x00000215
|
|
strh r1, [r7]
|
|
ldrh r1, [r0, #4]
|
|
mov r0, #0
|
|
strh r1, [r6]
|
|
_02017AD0:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02017ADC: .word 0x027F8878
|
|
_02017AE0: .word 0x00000302
|
|
_02017AE4: .word 0x04808124
|
|
_02017AE8: .word 0x00000202
|
|
_02017AEC: .word 0x00000283
|
|
_02017AF0: .word 0x0000FFFF
|
|
_02017AF4: .word 0x001FF621
|
|
_02017AF8: .word 0x00000306
|
|
_02017AFC: .word 0x00000281
|
|
_02017B00: .word 0x00000215
|
|
arm_func_end sub_020178F4
|
|
|
|
arm_func_start sub_02017B04
|
|
sub_02017B04: ; 0x02017B04
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r0, _02017BAC ; =0x027F8878
|
|
ldr r5, [r0, #0x550]
|
|
ldrh r0, [r5]
|
|
cmp r0, #2
|
|
beq _02017B3C
|
|
bl sub_03036B70
|
|
mov r1, #6
|
|
strh r1, [r0]
|
|
mov r1, #3
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
b _02017BA0
|
|
_02017B3C:
|
|
add r0, sp, #0
|
|
bl sub_02012070
|
|
mov r4, r0
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _02017B80
|
|
bl sub_03036B70
|
|
mov r2, #6
|
|
mov r1, #1
|
|
strh r2, [r0]
|
|
strh r1, [r0, #2]
|
|
add r1, r1, #0x300
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r4, #4]
|
|
strh r1, [r0, #6]
|
|
bl sub_03036B24
|
|
b _02017BA0
|
|
_02017B80:
|
|
mov r0, #1
|
|
strh r0, [r5]
|
|
bl sub_03036B70
|
|
mov r1, #6
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_02017BA0:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02017BAC: .word 0x027F8878
|
|
arm_func_end sub_02017B04
|
|
|
|
arm_func_start sub_02017BB0
|
|
sub_02017BB0: ; 0x02017BB0
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #0x1c
|
|
mov r6, r0
|
|
add r1, sp, #0
|
|
add r0, r6, #4
|
|
bl sub_02017C0C
|
|
mov r5, r0
|
|
bl sub_03036B70
|
|
mov r4, r0
|
|
mov r0, #0x23
|
|
strh r0, [r4]
|
|
strh r5, [r4, #2]
|
|
ldr r3, [r6, #4]
|
|
add r0, sp, #0
|
|
add r1, r4, #8
|
|
mov r2, #0x1c
|
|
str r3, [r4, #4]
|
|
bl sub_0302D91C
|
|
mov r0, r4
|
|
bl sub_03036B24
|
|
add sp, sp, #0x1c
|
|
ldmia sp!, {r3, r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_02017BB0
|
|
|
|
arm_func_start sub_02017C0C
|
|
sub_02017C0C: ; 0x02017C0C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r2, _02017F1C ; =0x027F8878
|
|
mov r4, r0
|
|
ldr r8, [r2, #0x550]
|
|
ldr r7, [r4]
|
|
ldrh r0, [r8]
|
|
mov sb, r1
|
|
add r0, r0, #0xf7
|
|
add r0, r0, #0xff00
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #1
|
|
mov r6, #0
|
|
bhi _02017C50
|
|
tst r7, #0x2c00
|
|
bicne r7, r7, #0x2c00
|
|
movne r6, #3
|
|
_02017C50:
|
|
bl sub_0302D4F0
|
|
mov r5, r0
|
|
cmp sb, #0
|
|
beq _02017CD8
|
|
ldr r0, _02017F20 ; =0x00003FFF
|
|
str r0, [sb]
|
|
ldrh r0, [r8, #0x58]
|
|
strh r0, [sb, #4]
|
|
ldrh r0, [r8, #0x5a]
|
|
strh r0, [sb, #6]
|
|
ldrh r0, [r8, #0x5c]
|
|
strh r0, [sb, #8]
|
|
ldrh r0, [r8, #0x30]
|
|
strh r0, [sb, #0xa]
|
|
ldrh r0, [r8, #0x32]
|
|
strh r0, [sb, #0xc]
|
|
ldrh r0, [r8, #0x44]
|
|
strh r0, [sb, #0xe]
|
|
ldrh r0, [r8, #0x46]
|
|
strh r0, [sb, #0x10]
|
|
ldrh r0, [r8, #0x40]
|
|
strh r0, [sb, #0x12]
|
|
ldrh r0, [r8, #0x42]
|
|
strh r0, [sb, #0x14]
|
|
ldrh r0, [r8, #0x98]
|
|
strh r0, [sb, #0x16]
|
|
ldrh r0, [r8, #0x92]
|
|
strb r0, [sb, #0x18]
|
|
ldrh r0, [r8, #0x94]
|
|
strb r0, [sb, #0x19]
|
|
ldrh r0, [r8, #0x9a]
|
|
strb r0, [sb, #0x1a]
|
|
ldrh r0, [r8, #0x9c]
|
|
strb r0, [sb, #0x1b]
|
|
_02017CD8:
|
|
tst r7, #1
|
|
beq _02017CF8
|
|
ldrh r1, [r4, #4]
|
|
add r0, r8, #0x700
|
|
cmp r1, #0
|
|
moveq r1, #0x10
|
|
strh r1, [r8, #0x58]
|
|
strh r1, [r0, #0xc0]
|
|
_02017CF8:
|
|
tst r7, #2
|
|
beq _02017D24
|
|
ldrh r1, [r4, #6]
|
|
add r0, r8, #0x700
|
|
cmp r1, #0
|
|
moveq r1, #0x10
|
|
strh r1, [r8, #0x5a]
|
|
strh r1, [r0, #0xc2]
|
|
ldrsh r0, [r8, #0x62]
|
|
cmp r0, r1
|
|
strgth r1, [r8, #0x62]
|
|
_02017D24:
|
|
tst r7, #4
|
|
beq _02017D50
|
|
ldrh r1, [r4, #8]
|
|
add r0, r8, #0x700
|
|
cmp r1, #0
|
|
moveq r1, #0x10
|
|
strh r1, [r8, #0x5c]
|
|
strh r1, [r0, #0xc4]
|
|
ldrsh r0, [r8, #0x62]
|
|
cmp r0, r1
|
|
strgth r1, [r8, #0x62]
|
|
_02017D50:
|
|
tst r7, #8
|
|
beq _02017D7C
|
|
ldrh r0, [r4, #0xa]
|
|
ldrh r2, [r8, #0x34]
|
|
add r1, r0, #1
|
|
bic r1, r1, #1
|
|
mov r1, r1, lsl #0x10
|
|
cmp r2, r1, lsr #16
|
|
movlo r6, #6
|
|
blo _02017D7C
|
|
bl sub_02010030
|
|
_02017D7C:
|
|
tst r7, #0x10
|
|
beq _02017DA8
|
|
ldrh r0, [r4, #0xc]
|
|
add r1, r0, #1
|
|
bic r1, r1, #1
|
|
mov r1, r1, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
cmp r1, #0x200
|
|
movhi r6, #6
|
|
bhi _02017DA8
|
|
bl sub_0201005C
|
|
_02017DA8:
|
|
tst r7, #0x20
|
|
beq _02017DFC
|
|
ldrh r0, [r4, #0xe]
|
|
ldr r1, _02017F24 ; =0x00002710
|
|
cmp r0, r1
|
|
movhi r6, #6
|
|
bhi _02017DFC
|
|
ldr r1, _02017F28 ; =0x000082EA
|
|
mov r2, #0
|
|
umull sb, r3, r0, r1
|
|
mla r3, r0, r2, r3
|
|
mla r3, r2, r1, r3
|
|
mov r2, sb, lsr #6
|
|
orr r2, r2, r3, lsl #26
|
|
mov r1, r3, lsr #6
|
|
mov r2, r2, lsr #0xa
|
|
strh r0, [r8, #0x44]
|
|
orr r2, r2, r1, lsl #22
|
|
str r2, [r8, #0x48]
|
|
mov r0, r1, lsr #0xa
|
|
str r0, [r8, #0x4c]
|
|
_02017DFC:
|
|
tst r7, #0x40
|
|
beq _02017E50
|
|
ldrh r0, [r4, #0x10]
|
|
ldr r1, _02017F24 ; =0x00002710
|
|
cmp r0, r1
|
|
movhi r6, #6
|
|
bhi _02017E50
|
|
ldr r1, _02017F28 ; =0x000082EA
|
|
mov r2, #0
|
|
umull sb, r3, r0, r1
|
|
mla r3, r0, r2, r3
|
|
mla r3, r2, r1, r3
|
|
mov r2, sb, lsr #6
|
|
orr r2, r2, r3, lsl #26
|
|
mov r1, r3, lsr #6
|
|
mov r2, r2, lsr #0xa
|
|
strh r0, [r8, #0x46]
|
|
orr r2, r2, r1, lsl #22
|
|
str r2, [r8, #0x50]
|
|
mov r0, r1, lsr #0xa
|
|
str r0, [r8, #0x54]
|
|
_02017E50:
|
|
tst r7, #0x80
|
|
beq _02017E84
|
|
ldrh r1, [r4, #0x12]
|
|
cmp r1, #0xbe
|
|
bls _02017E78
|
|
cmp r1, #0xdc
|
|
blo _02017E80
|
|
ldr r0, _02017F2C ; =0x00000106
|
|
cmp r1, r0
|
|
bhi _02017E80
|
|
_02017E78:
|
|
strh r1, [r8, #0x40]
|
|
b _02017E84
|
|
_02017E80:
|
|
mov r6, #6
|
|
_02017E84:
|
|
tst r7, #0x100
|
|
beq _02017EB8
|
|
ldrh r1, [r4, #0x14]
|
|
cmp r1, #0xbe
|
|
bls _02017EAC
|
|
cmp r1, #0xdc
|
|
blo _02017EB4
|
|
ldr r0, _02017F2C ; =0x00000106
|
|
cmp r1, r0
|
|
bhi _02017EB4
|
|
_02017EAC:
|
|
strh r1, [r8, #0x42]
|
|
b _02017EB8
|
|
_02017EB4:
|
|
mov r6, #6
|
|
_02017EB8:
|
|
tst r7, #0x200
|
|
ldrneh r1, [r4, #0x16]
|
|
addne r0, r8, #0x700
|
|
strneh r1, [r8, #0x98]
|
|
strneh r1, [r0, #0xca]
|
|
tst r7, #0x400
|
|
ldrneb r0, [r4, #0x18]
|
|
strneh r0, [r8, #0x92]
|
|
tst r7, #0x800
|
|
ldrneb r0, [r4, #0x19]
|
|
strneh r0, [r8, #0x94]
|
|
tst r7, #0x1000
|
|
ldrneb r1, [r4, #0x1a]
|
|
addne r0, r8, #0x700
|
|
strneh r1, [r8, #0x9a]
|
|
ldrneh r1, [r8, #0x9a]
|
|
strneh r1, [r0, #0xcc]
|
|
tst r7, #0x2000
|
|
ldrneb r0, [r4, #0x1b]
|
|
strneh r0, [r8, #0x9c]
|
|
mov r0, r5
|
|
bl sub_0302D504
|
|
mov r0, r6
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02017F1C: .word 0x027F8878
|
|
_02017F20: .word 0x00003FFF
|
|
_02017F24: .word 0x00002710
|
|
_02017F28: .word 0x000082EA
|
|
_02017F2C: .word 0x00000106
|
|
arm_func_end sub_02017C0C
|
|
|
|
arm_func_start sub_02017F30
|
|
sub_02017F30: ; 0x02017F30
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x200
|
|
ldr r1, [r0, #4]
|
|
add r0, sp, #0
|
|
mov r1, r1, lsl #0x10
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_02011F4C
|
|
ldrh r4, [r0, #4]
|
|
cmp r4, #0
|
|
beq _02017F80
|
|
bl sub_03036B70
|
|
mov r1, #0x24
|
|
strh r1, [r0]
|
|
mov r2, #1
|
|
ldr r1, _02017FA4 ; =0x00000242
|
|
strh r2, [r0, #2]
|
|
strh r1, [r0, #4]
|
|
strh r4, [r0, #6]
|
|
bl sub_03036B24
|
|
b _02017F98
|
|
_02017F80:
|
|
bl sub_03036B70
|
|
mov r1, #0x24
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
_02017F98:
|
|
add sp, sp, #0x200
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02017FA4: .word 0x00000242
|
|
arm_func_end sub_02017F30
|
|
|
|
arm_func_start sub_02017FA8
|
|
sub_02017FA8: ; 0x02017FA8
|
|
ldr ip, _02017FB8 ; =sub_027E44FC
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_02017FB8: .word sub_027E44FC
|
|
arm_func_end sub_02017FA8
|
|
|
|
arm_func_start sub_02017FBC
|
|
sub_02017FBC: ; 0x02017FBC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x230
|
|
ldr r1, _02018138 ; =0x027F8878
|
|
mov r7, r0
|
|
ldr r6, [r1, #0x550]
|
|
add r5, sp, #0x30
|
|
bl sub_03036B70
|
|
mov r4, r0
|
|
mov r1, #0x28
|
|
strh r1, [r4]
|
|
ldrh r1, [r6]
|
|
cmp r1, #0xb
|
|
beq _02018000
|
|
mov r1, #3
|
|
strh r1, [r4, #2]
|
|
bl sub_03036B24
|
|
b _0201812C
|
|
_02018000:
|
|
ldr r0, [r7, #4]
|
|
mov r2, #0
|
|
cmp r0, #1
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
mov r1, r0, lsl #0x10
|
|
mov r0, r5
|
|
mov r1, r1, lsr #0x10
|
|
mov r3, #1
|
|
bl sub_020115AC
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _02018054
|
|
mov r1, #1
|
|
strh r1, [r4, #2]
|
|
strh r1, [r4, #4]
|
|
ldrh r1, [r0, #4]
|
|
mov r0, r4
|
|
strh r1, [r4, #6]
|
|
bl sub_03036B24
|
|
b _0201812C
|
|
_02018054:
|
|
ldr r0, _02018138 ; =0x027F8878
|
|
mov r2, #6
|
|
ldr r5, [r0, #0x550]
|
|
add r0, r5, #0x8a
|
|
add r0, r0, #0x100
|
|
add r1, r5, #0xa2
|
|
bl sub_0302D91C
|
|
add r1, sp, #0x30
|
|
str r1, [r5, #0xa8]
|
|
mov r0, #0
|
|
strh r0, [r5, #0xac]
|
|
mov r2, #1
|
|
str r2, [r5, #0x18]
|
|
add r1, sp, #0
|
|
mov r2, #0x30
|
|
bl sub_0302D764
|
|
mov r0, #0
|
|
strh r0, [sp]
|
|
strh r0, [sp, #6]
|
|
add r0, r5, #0x100
|
|
ldrh r0, [r0, #0xec]
|
|
add r1, sp, #0x18
|
|
cmp r0, #2
|
|
moveq r3, #0x14
|
|
add r0, r5, #0x8a
|
|
movne r3, #0xa
|
|
add r0, r0, #0x100
|
|
mov r2, #6
|
|
strb r3, [sp, #0xe]
|
|
bl sub_0302D91C
|
|
add r1, sp, #0x1e
|
|
add r0, r5, #0xe0
|
|
mov r2, #6
|
|
bl sub_0302D91C
|
|
add r0, sp, #0x30
|
|
str r0, [sp, #0x2c]
|
|
add r1, sp, #0
|
|
bl sub_020119F0
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _0201811C
|
|
mov r1, #1
|
|
strh r1, [r4, #2]
|
|
mov r1, #0x100
|
|
strh r1, [r4, #4]
|
|
ldrh r1, [r0, #4]
|
|
mov r0, r4
|
|
strh r1, [r4, #6]
|
|
bl sub_03036B24
|
|
b _0201812C
|
|
_0201811C:
|
|
mov r1, #0
|
|
mov r0, r4
|
|
strh r1, [r4, #2]
|
|
bl sub_03036B24
|
|
_0201812C:
|
|
add sp, sp, #0x230
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02018138: .word 0x027F8878
|
|
arm_func_end sub_02017FBC
|
|
|
|
arm_func_start sub_0201813C
|
|
sub_0201813C: ; 0x0201813C
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_03036B70
|
|
mov r1, #0x29
|
|
strh r1, [r0]
|
|
mov r1, #4
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_0201813C
|
|
|
|
arm_func_start sub_02018160
|
|
sub_02018160: ; 0x02018160
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_03036B70
|
|
mov r1, #0x2a
|
|
strh r1, [r0]
|
|
mov r1, #4
|
|
strh r1, [r0, #2]
|
|
bl sub_03036B24
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_02018160
|
|
|
|
arm_func_start sub_02018184
|
|
sub_02018184: ; 0x02018184
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_0201A3D0
|
|
bl sub_020194E4
|
|
bl sub_02019F10
|
|
bl sub_02018534
|
|
bl sub_020183B4
|
|
ldr r0, _020181CC ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r1, r0, #0x300
|
|
ldr r0, [r0, #0x31c]
|
|
ldrh r1, [r1, #0x20]
|
|
bl sub_020185CC
|
|
bl sub_0201BED4
|
|
bl sub_0201D8A0
|
|
bl sub_0201BC64
|
|
bl sub_02018FA0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020181CC: .word 0x0380FFF4
|
|
arm_func_end sub_02018184
|
|
|
|
arm_func_start sub_020181D0
|
|
sub_020181D0: ; 0x020181D0
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #0xc
|
|
mov r4, r0
|
|
ldr r1, [r4]
|
|
ldr r3, _02018390 ; =0x0380FFF4
|
|
ldr r2, _02018394 ; =0x00000694
|
|
mov r0, #0
|
|
str r1, [r3]
|
|
bl sub_0302D804
|
|
bl sub_0302B3EC
|
|
ldr r2, _02018390 ; =0x0380FFF4
|
|
ldr r1, [r2]
|
|
str r0, [r1, #0x314]
|
|
ldr r1, [r4, #0x18]
|
|
ldr r0, [r2]
|
|
str r1, [r0, #0x30c]
|
|
ldr r1, [r4, #0x1c]
|
|
ldr r0, [r2]
|
|
mov r1, r1, lsr #1
|
|
str r1, [r0, #0x310]
|
|
ldr r1, [r2]
|
|
ldr r0, [r1, #0x310]
|
|
cmp r0, #0
|
|
mvneq r0, #0
|
|
streq r0, [r1, #0x310]
|
|
add r0, r4, #0x20
|
|
bl sub_0201845C
|
|
bl sub_020246B0
|
|
ldr r3, _02018398 ; =0x04000304
|
|
ldr r1, _02018390 ; =0x0380FFF4
|
|
ldrh r2, [r3]
|
|
mov r0, #0x30
|
|
orr r2, r2, #2
|
|
strh r2, [r3]
|
|
strh r0, [r3, #-0xfe]
|
|
ldr r0, [r1]
|
|
mov r2, #3
|
|
str r2, [r0, #0x68c]
|
|
ldr r1, [r1]
|
|
mov r0, #0x3c
|
|
add r1, r1, #0x92
|
|
add r2, r1, #0x600
|
|
mov r1, #2
|
|
bl sub_02024600
|
|
ldr r1, _02018390 ; =0x0380FFF4
|
|
mov r0, #0x3e
|
|
ldr r2, [r1]
|
|
mov r1, #2
|
|
add r2, r2, #0x690
|
|
bl sub_02024600
|
|
ldr r2, _02018390 ; =0x0380FFF4
|
|
ldr r3, [r4, #0x10]
|
|
ldr r0, [r2]
|
|
mov r1, #0x1c
|
|
str r3, [r0, #0x308]
|
|
ldr r0, [r2]
|
|
ldr r2, [r4, #0x14]
|
|
str r2, [r0, #0x304]
|
|
ldr r0, [r4, #0x30]
|
|
bl sub_030365C4
|
|
mov r1, r0
|
|
ldr r0, [r4, #0x2c]
|
|
bl sub_020185CC
|
|
bl sub_020183B4
|
|
bl sub_0201BED4
|
|
bl sub_0201D8A0
|
|
bl sub_0201BC64
|
|
bl sub_0201A138
|
|
add r0, sp, #8
|
|
bl sub_0202451C
|
|
cmp r0, #0
|
|
beq _0201830C
|
|
ldr r0, _02018390 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x3e]
|
|
orr r1, r1, #0x80
|
|
strh r1, [r0, #0x3e]
|
|
b _02018334
|
|
_0201830C:
|
|
bl sub_02019EA0
|
|
bl sub_0201AA10
|
|
bl sub_0201956C
|
|
bl sub_02019F10
|
|
bl sub_02019FB0
|
|
bl sub_0201ABB4
|
|
bl sub_0201AD40
|
|
bl sub_02019F48
|
|
bl sub_02018FA0
|
|
bl sub_020194E4
|
|
_02018334:
|
|
ldr r1, [r4, #8]
|
|
ldr r0, _02018390 ; =0x0380FFF4
|
|
str r1, [sp]
|
|
ldr r2, [r4, #0xc]
|
|
ldr r1, _0201839C ; =0x037F84E0
|
|
str r2, [sp, #4]
|
|
ldr r0, [r0]
|
|
ldr r3, [r4, #4]
|
|
add r0, r0, #0x18
|
|
mov r2, #0
|
|
bl sub_0302B844
|
|
ldr r0, _02018390 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x18
|
|
bl sub_0302BB5C
|
|
bl sub_0201B0AC
|
|
ldr r0, _02018390 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x3e]
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02018390: .word 0x0380FFF4
|
|
_02018394: .word 0x00000694
|
|
_02018398: .word 0x04000304
|
|
_0201839C: .word 0x037F84E0
|
|
arm_func_end sub_020181D0
|
|
|
|
arm_func_start sub_020183A0
|
|
sub_020183A0: ; 0x020183A0
|
|
ldr r0, _020183B0 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x18
|
|
bx lr
|
|
.align 2, 0
|
|
_020183B0: .word 0x0380FFF4
|
|
arm_func_end sub_020183A0
|
|
|
|
arm_func_start sub_020183B4
|
|
sub_020183B4: ; 0x020183B4
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _02018434 ; =0x0380FFF4
|
|
mov r3, #0
|
|
ldr lr, [r0]
|
|
ldr r2, _02018438 ; =0x0000FFFF
|
|
strh r3, [lr, #0x10]
|
|
strh r3, [lr, #0x12]
|
|
_020183D0:
|
|
add r0, lr, r3, lsl #1
|
|
strh r2, [r0, #8]
|
|
ldrh r0, [r0, #8]
|
|
mov r1, r3, lsl #1
|
|
add r3, r3, #1
|
|
strh r0, [lr, r1]
|
|
cmp r3, #4
|
|
blo _020183D0
|
|
ldr ip, _02018438 ; =0x0000FFFF
|
|
mov r4, #0
|
|
ldr r1, _0201843C ; =0x027F723C
|
|
mov r2, r4
|
|
_02018400:
|
|
add r3, lr, r4, lsl #3
|
|
strh ip, [r3, #0xbc]
|
|
ldr r0, [r1, r4, lsl #2]
|
|
strh r2, [r3, #0xbe]
|
|
add r4, r4, #1
|
|
str r0, [r3, #0xc0]
|
|
cmp r4, #0x18
|
|
blo _02018400
|
|
mov r0, #3
|
|
mov r1, #0xc
|
|
bl sub_03027D88
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02018434: .word 0x0380FFF4
|
|
_02018438: .word 0x0000FFFF
|
|
_0201843C: .word 0x027F723C
|
|
arm_func_end sub_020183B4
|
|
|
|
arm_func_start sub_02018440
|
|
sub_02018440: ; 0x02018440
|
|
mvn r2, #0
|
|
str r2, [r0]
|
|
str r2, [r0, #4]
|
|
mov r2, #0
|
|
strh r2, [r0, #8]
|
|
strh r1, [r0, #0xa]
|
|
bx lr
|
|
arm_func_end sub_02018440
|
|
|
|
arm_func_start sub_0201845C
|
|
sub_0201845C: ; 0x0201845C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _02018530 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
ldr r4, [r1]
|
|
mov r1, #2
|
|
str r2, [r4, #0x17c]
|
|
ldr r2, [r0, #4]
|
|
add r5, r4, #0x344
|
|
str r2, [r4, #0x180]
|
|
ldr r2, [r0, #8]
|
|
add r0, r4, #0x188
|
|
str r2, [r4, #0x184]
|
|
bl sub_02018440
|
|
add r0, r4, #0x194
|
|
mov r1, #3
|
|
bl sub_02018440
|
|
add r0, r4, #0x1a0
|
|
mov r1, #4
|
|
bl sub_02018440
|
|
add r0, r4, #0x1ac
|
|
mov r1, #5
|
|
bl sub_02018440
|
|
add r0, r4, #0x1b8
|
|
mov r1, #6
|
|
bl sub_02018440
|
|
add r0, r4, #0x1c4
|
|
mov r1, #7
|
|
bl sub_02018440
|
|
add r0, r4, #0x1d0
|
|
mov r1, #8
|
|
bl sub_02018440
|
|
add r0, r4, #0x1dc
|
|
mov r1, #9
|
|
bl sub_02018440
|
|
add r0, r4, #0x1e8
|
|
mov r1, #0xa
|
|
bl sub_02018440
|
|
add r0, r4, #0x1f4
|
|
mov r1, #0xb
|
|
bl sub_02018440
|
|
add r0, r4, #0x200
|
|
mov r1, #0xc
|
|
bl sub_02018440
|
|
add r0, r4, #0x188
|
|
mov r1, #0x81
|
|
bl sub_0302805C
|
|
add r0, r0, #0xc
|
|
str r0, [r5, #0x9c]
|
|
mov r0, #0
|
|
strh r0, [r5, #0xa0]
|
|
strh r0, [r5, #0xa4]
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02018530: .word 0x0380FFF4
|
|
arm_func_end sub_0201845C
|
|
|
|
arm_func_start sub_02018534
|
|
sub_02018534: ; 0x02018534
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _02018588 ; =0x0380FFF4
|
|
ldr r4, [r0]
|
|
add r0, r4, #0x194
|
|
bl sub_0201858C
|
|
add r0, r4, #0x1a0
|
|
bl sub_0201858C
|
|
add r0, r4, #0x1ac
|
|
bl sub_0201858C
|
|
add r0, r4, #0x1b8
|
|
bl sub_0201858C
|
|
add r0, r4, #0x1c4
|
|
bl sub_0201858C
|
|
add r0, r4, #0x1d0
|
|
bl sub_0201858C
|
|
add r0, r4, #0x1dc
|
|
bl sub_0201858C
|
|
add r0, r4, #0x1e8
|
|
bl sub_0201858C
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02018588: .word 0x0380FFF4
|
|
arm_func_end sub_02018534
|
|
|
|
arm_func_start sub_0201858C
|
|
sub_0201858C: ; 0x0201858C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
ldrh r0, [r6, #8]
|
|
ldr r1, [r6]
|
|
cmp r0, #0
|
|
beq _020185C4
|
|
mvn r4, #0
|
|
b _020185BC
|
|
_020185AC:
|
|
ldr r5, [r1, #4]
|
|
mov r0, r6
|
|
bl sub_030280F8
|
|
mov r1, r5
|
|
_020185BC:
|
|
cmp r1, r4
|
|
bne _020185AC
|
|
_020185C4:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_0201858C
|
|
|
|
arm_func_start sub_020185CC
|
|
sub_020185CC: ; 0x020185CC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _02018648 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r3, [r2]
|
|
mov r6, r1
|
|
add r1, r3, #0x31c
|
|
mov r0, #0
|
|
mov r2, #0x28
|
|
ldr r4, [r3, #0x3e0]
|
|
bl sub_0302D764
|
|
ldr r1, _02018648 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
mov r2, #0xc0
|
|
add r1, r1, #0x344
|
|
bl sub_0302D764
|
|
ldr r3, _02018648 ; =0x0380FFF4
|
|
mov r0, r6, lsl #0x10
|
|
ldr r2, [r3]
|
|
mov r1, r0, lsr #0x10
|
|
str r5, [r2, #0x31c]
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x300
|
|
strh r1, [r0, #0x20]
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x300
|
|
strh r1, [r0, #0x22]
|
|
ldr r0, [r3]
|
|
str r4, [r0, #0x3e0]
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02018648: .word 0x0380FFF4
|
|
arm_func_end sub_020185CC
|
|
|
|
arm_func_start sub_0201864C
|
|
sub_0201864C: ; 0x0201864C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldrh r0, [r4]
|
|
tst r0, #1
|
|
movne r0, #5
|
|
bne _0201869C
|
|
ldr r0, _020186A4 ; =0x0380FFF4
|
|
mov r1, r4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x324
|
|
bl sub_020198D0
|
|
ldr r0, _020186A8 ; =0x04808018
|
|
mov r1, r4
|
|
bl sub_020198D0
|
|
ldr r1, _020186A4 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #0x340]
|
|
orr r1, r1, #2
|
|
str r1, [r2, #0x340]
|
|
_0201869C:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020186A4: .word 0x0380FFF4
|
|
_020186A8: .word 0x04808018
|
|
arm_func_end sub_0201864C
|
|
|
|
arm_func_start sub_020186AC
|
|
sub_020186AC: ; 0x020186AC
|
|
cmp r0, #0xff
|
|
movhi r0, #5
|
|
bxhi lr
|
|
ldr r1, _020186D8 ; =0x0380FFF4
|
|
ldr r2, _020186DC ; =0x0480802C
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0x2a]
|
|
strh r0, [r2]
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_020186D8: .word 0x0380FFF4
|
|
_020186DC: .word 0x0480802C
|
|
arm_func_end sub_020186AC
|
|
|
|
arm_func_start sub_020186E0
|
|
sub_020186E0: ; 0x020186E0
|
|
ldr r1, _02018718 ; =0x00007FFE
|
|
tst r0, r1
|
|
moveq r0, #5
|
|
bxeq lr
|
|
ldr r2, _0201871C ; =0x0380FFF4
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0x2c]
|
|
ldr r2, [r2]
|
|
mov r0, #0
|
|
ldr r1, [r2, #0x340]
|
|
orr r1, r1, #4
|
|
str r1, [r2, #0x340]
|
|
bx lr
|
|
.align 2, 0
|
|
_02018718: .word 0x00007FFE
|
|
_0201871C: .word 0x0380FFF4
|
|
arm_func_end sub_020186E0
|
|
|
|
arm_func_start sub_02018720
|
|
sub_02018720: ; 0x02018720
|
|
stmdb sp!, {r3, lr}
|
|
cmp r0, #3
|
|
movhi r0, #5
|
|
bhi _0201878C
|
|
ldr ip, _02018794 ; =0x0380FFF4
|
|
ldr r3, _02018798 ; =0x04808006
|
|
ldr r1, [ip]
|
|
ldr r2, _0201879C ; =0x0000FFF8
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0x2e]
|
|
ldr r1, [ip]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0x50]
|
|
ldrh r1, [r3]
|
|
and r1, r1, r2
|
|
orr r0, r1, r0
|
|
strh r0, [r3]
|
|
ldr r0, [ip]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x52]
|
|
bl sub_0201943C
|
|
ldr r1, _02018794 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #0x340]
|
|
orr r1, r1, #8
|
|
str r1, [r2, #0x340]
|
|
_0201878C:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02018794: .word 0x0380FFF4
|
|
_02018798: .word 0x04808006
|
|
_0201879C: .word 0x0000FFF8
|
|
arm_func_end sub_02018720
|
|
|
|
arm_func_start sub_020187A0
|
|
sub_020187A0: ; 0x020187A0
|
|
stmdb sp!, {r3, lr}
|
|
cmp r0, #2
|
|
movhi r0, #5
|
|
bhi _020187C8
|
|
ldr r1, _020187D0 ; =0x0380FFF4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0x30]
|
|
bl sub_020193BC
|
|
mov r0, #0
|
|
_020187C8:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020187D0: .word 0x0380FFF4
|
|
arm_func_end sub_020187A0
|
|
|
|
arm_func_start sub_020187D4
|
|
sub_020187D4: ; 0x020187D4
|
|
ldr r1, _02018868 ; =0x0380FFF4
|
|
cmp r0, #3
|
|
ldr r1, [r1]
|
|
movhi r0, #5
|
|
add r2, r1, #0x344
|
|
bxhi lr
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0x34]
|
|
ldrh r1, [r2, #0x7c]
|
|
cmp r0, #0
|
|
biceq r1, r1, #0x10
|
|
streqh r1, [r2, #0x7c]
|
|
ldreqh r1, [r2, #0x8a]
|
|
ldr r3, _0201886C ; =0x04808006
|
|
biceq r1, r1, #0x4000
|
|
orrne r1, r1, #0x10
|
|
strneh r1, [r2, #0x7c]
|
|
ldrneh r1, [r2, #0x8a]
|
|
orrne r1, r1, #0x4000
|
|
strh r1, [r2, #0x8a]
|
|
ldrh r1, [r2, #8]
|
|
cmp r1, #0x40
|
|
cmpeq r0, #1
|
|
ldreq r1, _02018868 ; =0x0380FFF4
|
|
ldreqh r2, [r2, #0x7c]
|
|
ldreq r1, [r1]
|
|
ldreq r1, [r1, #0x4ac]
|
|
streqh r2, [r1, #0x2e]
|
|
cmp r0, #0
|
|
ldr r1, _02018870 ; =0x0000FFC7
|
|
ldrh r2, [r3]
|
|
moveq r0, #1
|
|
and r1, r2, r1
|
|
orr r0, r1, r0, lsl #3
|
|
strh r0, [r3]
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02018868: .word 0x0380FFF4
|
|
_0201886C: .word 0x04808006
|
|
_02018870: .word 0x0000FFC7
|
|
arm_func_end sub_020187D4
|
|
|
|
arm_func_start sub_02018874
|
|
sub_02018874: ; 0x02018874
|
|
cmp r0, #3
|
|
ldrls r1, _02018894 ; =0x0380FFF4
|
|
movhi r0, #5
|
|
ldrls r1, [r1]
|
|
addls r1, r1, #0x300
|
|
strlsh r0, [r1, #0x36]
|
|
movls r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02018894: .word 0x0380FFF4
|
|
arm_func_end sub_02018874
|
|
|
|
arm_func_start sub_02018898
|
|
sub_02018898: ; 0x02018898
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _020188E8 ; =0x04805F80
|
|
mov r2, #0x14
|
|
mov r4, r0
|
|
bl sub_0302D78C
|
|
ldr r1, _020188EC ; =0x04805FA0
|
|
add r0, r4, #0x14
|
|
mov r2, #0x14
|
|
bl sub_0302D78C
|
|
ldr r1, _020188F0 ; =0x04805FC0
|
|
add r0, r4, #0x28
|
|
mov r2, #0x14
|
|
bl sub_0302D78C
|
|
ldr r1, _020188F4 ; =0x04805FE0
|
|
add r0, r4, #0x3c
|
|
mov r2, #0x14
|
|
bl sub_0302D78C
|
|
mov r0, #0
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020188E8: .word 0x04805F80
|
|
_020188EC: .word 0x04805FA0
|
|
_020188F0: .word 0x04805FC0
|
|
_020188F4: .word 0x04805FE0
|
|
arm_func_end sub_02018898
|
|
|
|
arm_func_start sub_020188F8
|
|
sub_020188F8: ; 0x020188F8
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bxhi lr
|
|
ldr r1, _0201892C ; =0x0380FFF4
|
|
and r2, r0, #1
|
|
ldr r1, [r1]
|
|
mov r0, #0
|
|
add r1, r1, #0x300
|
|
ldrh r3, [r1, #0x3a]
|
|
bic r3, r3, #1
|
|
orr r2, r3, r2
|
|
strh r2, [r1, #0x3a]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201892C: .word 0x0380FFF4
|
|
arm_func_end sub_020188F8
|
|
|
|
arm_func_start sub_02018930
|
|
sub_02018930: ; 0x02018930
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bxhi lr
|
|
ldr r1, _02018964 ; =0x0380FFF4
|
|
mov r2, r0, lsl #0x1f
|
|
ldr r1, [r1]
|
|
mov r0, #0
|
|
add r1, r1, #0x300
|
|
ldrh r3, [r1, #0x3a]
|
|
bic r3, r3, #2
|
|
orr r2, r3, r2, lsr #30
|
|
strh r2, [r1, #0x3a]
|
|
bx lr
|
|
.align 2, 0
|
|
_02018964: .word 0x0380FFF4
|
|
arm_func_end sub_02018930
|
|
|
|
arm_func_start sub_02018968
|
|
sub_02018968: ; 0x02018968
|
|
cmp r0, #0xff
|
|
movhi r0, #5
|
|
bxhi lr
|
|
ldr r2, _0201899C ; =0x0380FFF4
|
|
mov r3, #0
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
strh r3, [r1, #0xc4]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0xc2]
|
|
mov r0, r3
|
|
bx lr
|
|
.align 2, 0
|
|
_0201899C: .word 0x0380FFF4
|
|
arm_func_end sub_02018968
|
|
|
|
arm_func_start sub_020189A0
|
|
sub_020189A0: ; 0x020189A0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
cmp r4, #0xa
|
|
movlo r0, #5
|
|
blo _02018A40
|
|
ldr r0, _02018A48 ; =0x0380FFF4
|
|
cmp r1, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
strh r4, [r0, #0x3c]
|
|
ldrne r0, _02018A4C ; =0x04808134
|
|
strneh r4, [r0]
|
|
ldr r0, _02018A48 ; =0x0380FFF4
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x400
|
|
ldrh r0, [r0, #0xa4]
|
|
cmp r0, #0
|
|
beq _02018A3C
|
|
ldr r2, [r1, #0x4ac]
|
|
add r0, r1, #0x300
|
|
ldrh r1, [r0, #0x52]
|
|
ldrh r0, [r0, #0xda]
|
|
add r2, r2, #0x24
|
|
add r5, r2, r0
|
|
cmp r1, #1
|
|
add r0, r5, #6
|
|
bne _02018A28
|
|
and r1, r4, #0xff
|
|
bl sub_0201A514
|
|
mov r1, r4, asr #8
|
|
add r0, r5, #7
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
b _02018A3C
|
|
_02018A28:
|
|
mov r1, #0xff
|
|
bl sub_0201A514
|
|
add r0, r5, #7
|
|
mov r1, #0xff
|
|
bl sub_0201A514
|
|
_02018A3C:
|
|
mov r0, #0
|
|
_02018A40:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02018A48: .word 0x0380FFF4
|
|
_02018A4C: .word 0x04808134
|
|
arm_func_end sub_020189A0
|
|
|
|
arm_func_start sub_02018A50
|
|
sub_02018A50: ; 0x02018A50
|
|
ldr r1, _02018A7C ; =0x0380FFF4
|
|
mov r2, #0
|
|
ldr r1, [r1]
|
|
add r3, r1, #0x384
|
|
_02018A60:
|
|
ldrh r1, [r0], #2
|
|
add r2, r2, #1
|
|
cmp r2, #0x10
|
|
strh r1, [r3], #2
|
|
blo _02018A60
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02018A7C: .word 0x0380FFF4
|
|
arm_func_end sub_02018A50
|
|
|
|
arm_func_start sub_02018A80
|
|
sub_02018A80: ; 0x02018A80
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02018B20 ; =0x0380FFF4
|
|
cmp r0, #1
|
|
ldr r2, [r1]
|
|
movhi r0, #5
|
|
add r1, r2, #0x344
|
|
bhi _02018B18
|
|
add r2, r2, #0x300
|
|
ldrh ip, [r2, #0x3a]
|
|
mov r3, r0, lsl #0x1f
|
|
bic ip, ip, #4
|
|
orr r3, ip, r3, lsr #29
|
|
strh r3, [r2, #0x3a]
|
|
ldrh r2, [r1, #0x7c]
|
|
cmp r0, #0
|
|
biceq r2, r2, #0x20
|
|
orrne r2, r2, #0x20
|
|
strh r2, [r1, #0x7c]
|
|
ldrh r2, [r1, #8]
|
|
cmp r2, #0x40
|
|
ldreq r2, _02018B20 ; =0x0380FFF4
|
|
ldreq r3, [r2]
|
|
addeq r2, r3, #0x300
|
|
ldreqh r2, [r2, #0x2e]
|
|
cmpeq r2, #1
|
|
ldreqh r2, [r1, #0x7c]
|
|
ldreq r1, [r3, #0x4ac]
|
|
streqh r2, [r1, #0x2e]
|
|
ldr r1, _02018B24 ; =0x048080BC
|
|
cmp r0, #0
|
|
ldreqh r0, [r1]
|
|
biceq r0, r0, #6
|
|
streqh r0, [r1]
|
|
ldrneh r0, [r1]
|
|
orrne r0, r0, #6
|
|
strneh r0, [r1]
|
|
bl sub_020193BC
|
|
mov r0, #0
|
|
_02018B18:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02018B20: .word 0x0380FFF4
|
|
_02018B24: .word 0x048080BC
|
|
arm_func_end sub_02018A80
|
|
|
|
arm_func_start sub_02018B28
|
|
sub_02018B28: ; 0x02018B28
|
|
cmp r0, #1
|
|
ldrls r1, _02018B48 ; =0x0380FFF4
|
|
movhi r0, #5
|
|
ldrls r1, [r1]
|
|
addls r1, r1, #0x300
|
|
strlsh r0, [r1, #0x32]
|
|
movls r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02018B48: .word 0x0380FFF4
|
|
arm_func_end sub_02018B28
|
|
|
|
arm_func_start sub_02018B4C
|
|
sub_02018B4C: ; 0x02018B4C
|
|
stmdb sp!, {r4, lr}
|
|
cmp r0, #3
|
|
mov r4, r1
|
|
movhi r0, #5
|
|
bhi _02018B88
|
|
cmp r4, #0x3f
|
|
movhi r0, #5
|
|
bhi _02018B88
|
|
mov r1, r0
|
|
mov r0, #0x13
|
|
bl sub_02019DE0
|
|
mov r1, r4
|
|
mov r0, #0x35
|
|
bl sub_02019DE0
|
|
mov r0, #0
|
|
_02018B88:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02018B4C
|
|
|
|
arm_func_start sub_02018B90
|
|
sub_02018B90: ; 0x02018B90
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bxhi lr
|
|
ldr r3, _02018BF0 ; =0x0380FFF4
|
|
mov r0, r0, lsl #0x10
|
|
ldr r2, [r3]
|
|
mov r1, r0, lsr #0x10
|
|
add r0, r2, #0x300
|
|
ldrh r2, [r0, #0x3a]
|
|
mov r1, r1, lsl #0x1f
|
|
bic r2, r2, #8
|
|
orr r1, r2, r1, lsr #28
|
|
strh r1, [r0, #0x3a]
|
|
ldr r0, [r3]
|
|
ldr r1, _02018BF4 ; =0x04808290
|
|
add r0, r0, #0x300
|
|
ldrh r3, [r0, #0x3a]
|
|
mov r0, #0
|
|
mov r2, r3, lsl #0x1c
|
|
mov r3, r3, lsl #0x1a
|
|
mov r2, r2, lsr #0x1f
|
|
eor r2, r2, r3, lsr #31
|
|
strh r2, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_02018BF0: .word 0x0380FFF4
|
|
_02018BF4: .word 0x04808290
|
|
arm_func_end sub_02018B90
|
|
|
|
arm_func_start sub_02018BF8
|
|
sub_02018BF8: ; 0x02018BF8
|
|
cmp r0, #1
|
|
cmpls r1, #1
|
|
movhi r0, #5
|
|
bxhi lr
|
|
cmp r0, #0
|
|
beq _02018C1C
|
|
cmp r0, #1
|
|
beq _02018C48
|
|
b _02018C70
|
|
_02018C1C:
|
|
ldr r2, _02018CC4 ; =0x0380FFF4
|
|
mov r1, r1, lsl #0x10
|
|
ldr r3, [r2]
|
|
mov r2, r1, lsr #0x10
|
|
add r1, r3, #0x300
|
|
ldrh r3, [r1, #0x3a]
|
|
mov r2, r2, lsl #0x1f
|
|
bic r3, r3, #0x20
|
|
orr r2, r3, r2, lsr #26
|
|
strh r2, [r1, #0x3a]
|
|
b _02018C70
|
|
_02018C48:
|
|
ldr r1, _02018CC4 ; =0x0380FFF4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
ldrh r2, [r1, #0x2e]
|
|
cmp r2, #1
|
|
movne r0, #0xb
|
|
bxne lr
|
|
ldrh r2, [r1, #0x3a]
|
|
bic r2, r2, #0x20
|
|
strh r2, [r1, #0x3a]
|
|
_02018C70:
|
|
ldr r3, _02018CC4 ; =0x0380FFF4
|
|
mov r0, r0, lsl #0x10
|
|
ldr r2, [r3]
|
|
mov r1, r0, lsr #0x10
|
|
add r0, r2, #0x300
|
|
ldrh r2, [r0, #0x3a]
|
|
mov r1, r1, lsl #0x1f
|
|
bic r2, r2, #0x10
|
|
orr r1, r2, r1, lsr #27
|
|
strh r1, [r0, #0x3a]
|
|
ldr r0, [r3]
|
|
ldr r1, _02018CC8 ; =0x04808290
|
|
add r0, r0, #0x300
|
|
ldrh r3, [r0, #0x3a]
|
|
mov r0, #0
|
|
mov r2, r3, lsl #0x1c
|
|
mov r3, r3, lsl #0x1a
|
|
mov r2, r2, lsr #0x1f
|
|
eor r2, r2, r3, lsr #31
|
|
strh r2, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_02018CC4: .word 0x0380FFF4
|
|
_02018CC8: .word 0x04808290
|
|
arm_func_end sub_02018BF8
|
|
|
|
arm_func_start sub_02018CCC
|
|
sub_02018CCC: ; 0x02018CCC
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bxhi lr
|
|
ldr r1, _02018D08 ; =0x0380FFF4
|
|
mov r0, r0, lsl #0x10
|
|
ldr r2, [r1]
|
|
mov r1, r0, lsr #0x10
|
|
add r0, r2, #0x300
|
|
ldrh r2, [r0, #0x3a]
|
|
mov r1, r1, lsl #0x1f
|
|
bic r2, r2, #0x40
|
|
orr r1, r2, r1, lsr #25
|
|
strh r1, [r0, #0x3a]
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02018D08: .word 0x0380FFF4
|
|
arm_func_end sub_02018CCC
|
|
|
|
arm_func_start sub_02018D0C
|
|
sub_02018D0C: ; 0x02018D0C
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bxhi lr
|
|
ldr r2, _02018D54 ; =0x0380FFF4
|
|
mov r1, r0, lsl #0x10
|
|
ldr r3, [r2]
|
|
mov r2, r1, lsr #0x10
|
|
add r1, r3, #0x300
|
|
ldrh r3, [r1, #0x3a]
|
|
mov r2, r2, lsl #0x1f
|
|
bic r3, r3, #0x80
|
|
orr r2, r3, r2, lsr #24
|
|
strh r2, [r1, #0x3a]
|
|
ldreq r1, _02018D58 ; =0x0480802A
|
|
ldreqh r0, [r1]
|
|
streqh r0, [r1, #-2]
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02018D54: .word 0x0380FFF4
|
|
_02018D58: .word 0x0480802A
|
|
arm_func_end sub_02018D0C
|
|
|
|
arm_func_start sub_02018D5C
|
|
sub_02018D5C: ; 0x02018D5C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02018DB4 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
mov r1, r4
|
|
add r0, r0, #0x3a8
|
|
bl sub_020198D0
|
|
ldr r0, _02018DB8 ; =0x04808020
|
|
mov r1, r4
|
|
bl sub_020198D0
|
|
ldrh r0, [r4]
|
|
ldr r1, _02018DBC ; =0x048080D0
|
|
tst r0, #1
|
|
ldrneh r0, [r1]
|
|
bicne r0, r0, #0x400
|
|
strneh r0, [r1]
|
|
ldreqh r0, [r1]
|
|
orreq r0, r0, #0x400
|
|
streqh r0, [r1]
|
|
mov r0, #0
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02018DB4: .word 0x0380FFF4
|
|
_02018DB8: .word 0x04808020
|
|
_02018DBC: .word 0x048080D0
|
|
arm_func_end sub_02018D5C
|
|
|
|
arm_func_start sub_02018DC0
|
|
sub_02018DC0: ; 0x02018DC0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r2, _02018ECC ; =0x0380FFF4
|
|
mov r8, r0
|
|
ldr r2, [r2]
|
|
cmp r8, #0x20
|
|
mov r7, r1
|
|
add r4, r2, #0x344
|
|
mov r6, #0
|
|
movhi r0, #5
|
|
bhi _02018EC4
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x40
|
|
addeq r0, r2, #0x300
|
|
ldreqh r0, [r0, #0x2e]
|
|
cmpeq r0, #1
|
|
bne _02018E1C
|
|
ldrh r0, [r4, #0x1e]
|
|
cmp r0, r8
|
|
movne r0, #6
|
|
bne _02018EC4
|
|
ldrh r0, [r4, #0x92]
|
|
cmp r0, #0
|
|
movne r6, #1
|
|
_02018E1C:
|
|
mov r5, #0
|
|
add sb, r4, #0x20
|
|
b _02018E44
|
|
_02018E28:
|
|
mov r0, r7
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
add r0, sb, r5
|
|
bl sub_0201A514
|
|
add r7, r7, #1
|
|
add r5, r5, #1
|
|
_02018E44:
|
|
cmp r5, r8
|
|
blo _02018E28
|
|
add sb, r4, #0x20
|
|
mov r7, #0
|
|
b _02018E68
|
|
_02018E58:
|
|
mov r1, r7
|
|
add r0, sb, r5
|
|
bl sub_0201A514
|
|
add r5, r5, #1
|
|
_02018E68:
|
|
cmp r5, #0x20
|
|
blo _02018E58
|
|
strh r8, [r4, #0x1e]
|
|
cmp r6, #0
|
|
beq _02018EC0
|
|
ldr r1, _02018ECC ; =0x0380FFF4
|
|
ldrh r0, [r4, #0x92]
|
|
ldr r1, [r1]
|
|
mov r5, #0
|
|
ldr r1, [r1, #0x4ac]
|
|
add r4, r4, #0x20
|
|
add r1, r1, #0x26
|
|
add r6, r1, r0
|
|
b _02018EB8
|
|
_02018EA0:
|
|
add r0, r4, r5
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
add r0, r6, r5
|
|
bl sub_0201A514
|
|
add r5, r5, #1
|
|
_02018EB8:
|
|
cmp r5, r8
|
|
blo _02018EA0
|
|
_02018EC0:
|
|
mov r0, #0
|
|
_02018EC4:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02018ECC: .word 0x0380FFF4
|
|
arm_func_end sub_02018DC0
|
|
|
|
arm_func_start sub_02018ED0
|
|
sub_02018ED0: ; 0x02018ED0
|
|
stmdb sp!, {r3, lr}
|
|
cmp r0, #0xa
|
|
blo _02018EE4
|
|
cmp r0, #0x3e8
|
|
bls _02018EEC
|
|
_02018EE4:
|
|
mov r0, #5
|
|
b _02018F18
|
|
_02018EEC:
|
|
ldr r3, _02018F20 ; =0x0380FFF4
|
|
ldr r2, _02018F24 ; =0x0480808C
|
|
ldr r1, [r3]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0xb2]
|
|
strh r0, [r2]
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x38]
|
|
bl sub_02019620
|
|
mov r0, #0
|
|
_02018F18:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02018F20: .word 0x0380FFF4
|
|
_02018F24: .word 0x0480808C
|
|
arm_func_end sub_02018ED0
|
|
|
|
arm_func_start sub_02018F28
|
|
sub_02018F28: ; 0x02018F28
|
|
cmp r0, #1
|
|
blo _02018F38
|
|
cmp r0, #0xff
|
|
bls _02018F40
|
|
_02018F38:
|
|
mov r0, #5
|
|
bx lr
|
|
_02018F40:
|
|
ldr r1, _02018F64 ; =0x0380FFF4
|
|
ldr r2, _02018F68 ; =0x0480808E
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0xb8]
|
|
strh r0, [r2]
|
|
mov r0, #0
|
|
strh r0, [r2, #-6]
|
|
bx lr
|
|
.align 2, 0
|
|
_02018F64: .word 0x0380FFF4
|
|
_02018F68: .word 0x0480808E
|
|
arm_func_end sub_02018F28
|
|
|
|
arm_func_start sub_02018F6C
|
|
sub_02018F6C: ; 0x02018F6C
|
|
cmp r0, #1
|
|
blo _02018F7C
|
|
cmp r0, #0xff
|
|
bls _02018F84
|
|
_02018F7C:
|
|
mov r0, #5
|
|
bx lr
|
|
_02018F84:
|
|
ldr r1, _02018F9C ; =0x0380FFF4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0xb4]
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02018F9C: .word 0x0380FFF4
|
|
arm_func_end sub_02018F6C
|
|
|
|
arm_func_start sub_02018FA0
|
|
sub_02018FA0: ; 0x02018FA0
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
add r2, sp, #2
|
|
mov r0, #0x36
|
|
mov r1, #6
|
|
bl sub_02024600
|
|
add r2, sp, #0
|
|
mov r0, #0x3c
|
|
mov r1, #2
|
|
bl sub_02024600
|
|
add r0, sp, #2
|
|
bl sub_0201864C
|
|
mov r0, #7
|
|
bl sub_020186AC
|
|
ldrh r1, [sp]
|
|
ldr r0, _020190D4 ; =0x00007FFE
|
|
and r0, r1, r0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_020186E0
|
|
mov r0, #2
|
|
bl sub_02018720
|
|
mov r0, #0
|
|
bl sub_020187A0
|
|
mov r0, #0
|
|
bl sub_020187D4
|
|
mov r0, #0
|
|
bl sub_02018874
|
|
ldr r0, _020190D8 ; =0x027F7300
|
|
bl sub_02018898
|
|
mov r0, #0x1f4
|
|
bl sub_02018ED0
|
|
mov r0, #0
|
|
bl sub_020188F8
|
|
mov r0, #0
|
|
bl sub_02018930
|
|
mov r0, #0x10
|
|
bl sub_02018968
|
|
ldr r0, _020190DC ; =0x0000FFFF
|
|
mov r1, #0
|
|
bl sub_020189A0
|
|
ldr r0, _020190E0 ; =0x027F72A0
|
|
bl sub_02018A50
|
|
mov r0, #1
|
|
bl sub_02018A80
|
|
mov r0, #0
|
|
bl sub_02018B28
|
|
ldr r0, _020190E4 ; =0x027F729C
|
|
bl sub_0201937C
|
|
mov r0, #0
|
|
mov r1, #0x1f
|
|
bl sub_02018B4C
|
|
mov r0, #5
|
|
bl sub_02019620
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl sub_02018BF8
|
|
mov r0, #0
|
|
bl sub_02018B90
|
|
mov r0, #0
|
|
bl sub_02018CCC
|
|
mov r0, #0
|
|
bl sub_02018D0C
|
|
ldr r1, _020190E8 ; =0x04808044
|
|
ldrh r2, [r1]
|
|
ldrh r0, [r1]
|
|
ldrh r1, [r1]
|
|
add r0, r2, r0, lsl #8
|
|
bl sub_0201A55C
|
|
ldr r0, _020190EC ; =0x0380FFF4
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
strh r1, [r0, #0x58]
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020190D4: .word 0x00007FFE
|
|
_020190D8: .word 0x027F7300
|
|
_020190DC: .word 0x0000FFFF
|
|
_020190E0: .word 0x027F72A0
|
|
_020190E4: .word 0x027F729C
|
|
_020190E8: .word 0x04808044
|
|
_020190EC: .word 0x0380FFF4
|
|
arm_func_end sub_02018FA0
|
|
|
|
arm_func_start sub_020190F0
|
|
sub_020190F0: ; 0x020190F0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #8
|
|
mov sl, r0
|
|
ldr r0, _0201936C ; =0x0380FFF4
|
|
cmp r1, #0
|
|
ldr r0, [r0]
|
|
ldrne sb, _02019370 ; =0x027F4E70
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x2c]
|
|
ldreq sb, _02019374 ; =sub_027F4E10
|
|
mov r2, #1
|
|
tst r0, r2, lsl sl
|
|
moveq r0, #5
|
|
beq _02019360
|
|
ldr r1, _02019378 ; =0x04808040
|
|
add r0, r2, #0x8000
|
|
ldrh r6, [r1]
|
|
strh r0, [r1]
|
|
sub r3, r1, #4
|
|
add r1, r1, #0x1d4
|
|
_02019140:
|
|
ldrh r2, [r3]
|
|
ldrh r0, [r1]
|
|
mov r2, r2, asr #8
|
|
cmp r2, #2
|
|
bne _02019140
|
|
cmp r0, #0
|
|
cmpne r0, #9
|
|
bne _02019140
|
|
ldr r5, _0201936C ; =0x0380FFF4
|
|
ldr r0, [r5]
|
|
add r0, r0, #0x300
|
|
strh sl, [r0, #0xbe]
|
|
ldr r0, [r5]
|
|
add r0, r0, #0x500
|
|
ldrh r1, [r0, #0xf8]
|
|
cmp r1, #2
|
|
beq _02019194
|
|
cmp r1, #3
|
|
beq _02019264
|
|
cmp r1, #5
|
|
bne _0201934C
|
|
_02019194:
|
|
sub r4, sl, #1
|
|
mov r0, #6
|
|
mul r5, r4, r0
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
add r2, sp, #4
|
|
add r0, r5, #0xf2
|
|
mov r1, #3
|
|
mov lr, pc
|
|
bx sb
|
|
_020191BC:
|
|
ldr r0, [sp, #4]
|
|
bl sub_02019E10
|
|
add r2, sp, #4
|
|
add r0, r5, #0xf5
|
|
mov r1, #3
|
|
mov lr, pc
|
|
bx sb
|
|
_020191D8:
|
|
ldr r0, [sp, #4]
|
|
bl sub_02019E10
|
|
mov r1, #0
|
|
ldr r0, _0201936C ; =0x0380FFF4
|
|
str r1, [sp, #4]
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x604]
|
|
tst r0, #0x10000
|
|
beq _0201923C
|
|
tst r0, #0x8000
|
|
bne _0201934C
|
|
add r2, sp, #4
|
|
add r0, r4, #0x154
|
|
mov r1, #1
|
|
mov lr, pc
|
|
bx sb
|
|
sub_02019218: ; 0x02019218
|
|
ldr r1, _0201936C ; =0x0380FFF4
|
|
ldr r0, [sp, #4]
|
|
ldr r1, [r1]
|
|
mov r0, r0, lsl #0x1b
|
|
ldr r1, [r1, #0x604]
|
|
orr r0, r1, r0, lsr #17
|
|
str r0, [sp, #4]
|
|
bl sub_02019E10
|
|
b _0201934C
|
|
_0201923C:
|
|
add r0, r4, #0x46
|
|
add r2, sp, #4
|
|
add r0, r0, #0x100
|
|
mov r1, #1
|
|
mov lr, pc
|
|
bx sb
|
|
_02019254:
|
|
ldr r1, [sp, #4]
|
|
mov r0, #0x1e
|
|
bl sub_02019DE0
|
|
b _0201934C
|
|
_02019264:
|
|
ldrh r0, [r0, #0xfc]
|
|
mov r8, #0
|
|
add r7, r0, #0xcf
|
|
mov r4, r8
|
|
mov fp, #1
|
|
b _020192C0
|
|
_0201927C:
|
|
mov r0, r7
|
|
mov r1, fp
|
|
add r2, sp, #0
|
|
str r4, [sp, #4]
|
|
str r4, [sp]
|
|
mov lr, pc
|
|
bx sb
|
|
_02019298:
|
|
add r0, r7, sl
|
|
mov r1, #1
|
|
add r2, sp, #4
|
|
mov lr, pc
|
|
bx sb
|
|
_020192AC:
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, #4]
|
|
bl sub_02019DE0
|
|
add r7, r7, #0xf
|
|
add r8, r8, #1
|
|
_020192C0:
|
|
ldr r0, [r5]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0]
|
|
cmp r8, r0
|
|
blo _0201927C
|
|
mov r8, #0
|
|
ldr r4, _0201936C ; =0x0380FFF4
|
|
mov r5, r8
|
|
mov fp, #1
|
|
b _02019338
|
|
_020192E8:
|
|
str r5, [sp, #4]
|
|
mov r0, r7
|
|
mov r1, fp
|
|
add r2, sp, #4
|
|
mov lr, pc
|
|
bx sb
|
|
_02019300:
|
|
ldr r1, [sp, #4]
|
|
add r0, r7, sl
|
|
mov r1, r1, lsl #8
|
|
str r1, [sp, #4]
|
|
mov r1, #1
|
|
add r2, sp, #4
|
|
mov lr, pc
|
|
bx sb
|
|
_02019320:
|
|
ldr r0, [sp, #4]
|
|
orr r0, r0, #0x50000
|
|
str r0, [sp, #4]
|
|
bl sub_02019E10
|
|
add r7, r7, #0xf
|
|
add r8, r8, #1
|
|
_02019338:
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x500
|
|
ldrh r0, [r0, #0xfe]
|
|
cmp r8, r0
|
|
blo _020192E8
|
|
_0201934C:
|
|
ldr r1, _02019378 ; =0x04808040
|
|
mov r0, #3
|
|
strh r6, [r1]
|
|
strh r0, [r1, #8]
|
|
mov r0, #0
|
|
_02019360:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201936C: .word 0x0380FFF4
|
|
_02019370: .word 0x027F4E70
|
|
_02019374: .word sub_027F4E10
|
|
_02019378: .word 0x04808040
|
|
arm_func_end sub_020190F0
|
|
|
|
arm_func_start sub_0201937C
|
|
sub_0201937C: ; 0x0201937C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _020193B8 ; =0x0380FFF4
|
|
ldrh r2, [r0]
|
|
ldr r3, [r1]
|
|
add r1, r3, #0x300
|
|
strh r2, [r1, #0xa4]
|
|
ldrh r1, [r0, #2]
|
|
ldrh r0, [r0]
|
|
add r2, r3, #0x3a4
|
|
orr r0, r1, r0
|
|
strh r0, [r2, #2]
|
|
bl sub_020193BC
|
|
mov r0, #0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020193B8: .word 0x0380FFF4
|
|
arm_func_end sub_0201937C
|
|
|
|
arm_func_start sub_020193BC
|
|
sub_020193BC: ; 0x020193BC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02019430 ; =0x0000E2E2
|
|
add r2, sp, #0
|
|
str r0, [sp]
|
|
mov r0, #0x58
|
|
mov r1, #2
|
|
bl sub_02024600
|
|
ldr r0, [sp]
|
|
add r0, r0, #2
|
|
add r0, r0, #0x200
|
|
str r0, [sp]
|
|
bl sub_02019D68
|
|
cmp r0, #0x14
|
|
bne _0201941C
|
|
ldr r1, [sp]
|
|
ldr r0, _02019434 ; =0x048080BC
|
|
sub r1, r1, #0x61
|
|
sub r1, r1, #0x6100
|
|
str r1, [sp]
|
|
ldrh r0, [r0]
|
|
tst r0, #2
|
|
subne r0, r1, #0x60
|
|
subne r0, r0, #0x6000
|
|
strne r0, [sp]
|
|
_0201941C:
|
|
ldr r1, [sp]
|
|
ldr r0, _02019438 ; =0x04808140
|
|
strh r1, [r0]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02019430: .word 0x0000E2E2
|
|
_02019434: .word 0x048080BC
|
|
_02019438: .word 0x04808140
|
|
arm_func_end sub_020193BC
|
|
|
|
arm_func_start sub_0201943C
|
|
sub_0201943C: ; 0x0201943C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _0201949C ; =0x0380FFF4
|
|
cmp r0, #0
|
|
ldr r2, [r1]
|
|
add r1, r2, #0x300
|
|
add r3, r2, #0x31c
|
|
strh r0, [r1, #0x52]
|
|
ldrneh r0, [r3, #0x12]
|
|
cmpne r0, #1
|
|
ldrne r1, _020194A0 ; =0x04808006
|
|
ldrneh r0, [r1]
|
|
orrne r0, r0, #0x40
|
|
strneh r0, [r1]
|
|
bne _02019490
|
|
ldr r2, _020194A0 ; =0x04808006
|
|
mov r1, #0
|
|
ldrh r0, [r2]
|
|
bic r0, r0, #0x40
|
|
strh r0, [r2]
|
|
ldrh r0, [r3, #0x20]
|
|
bl sub_020189A0
|
|
_02019490:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201949C: .word 0x0380FFF4
|
|
_020194A0: .word 0x04808006
|
|
arm_func_end sub_0201943C
|
|
|
|
arm_func_start sub_020194A4
|
|
sub_020194A4: ; 0x020194A4
|
|
ldr r1, _020194C8 ; =0x0380FFF4
|
|
ldr r2, _020194CC ; =0x0480803C
|
|
ldr r1, [r1]
|
|
mov r3, r0, lsr #1
|
|
add r1, r1, #0x300
|
|
strh r3, [r1, #0x54]
|
|
strh r0, [r2]
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_020194C8: .word 0x0380FFF4
|
|
_020194CC: .word 0x0480803C
|
|
arm_func_end sub_020194A4
|
|
|
|
arm_func_start sub_020194D0
|
|
sub_020194D0: ; 0x020194D0
|
|
ldr r1, _020194E0 ; =0x04808040
|
|
strh r0, [r1]
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_020194E0: .word 0x04808040
|
|
arm_func_end sub_020194D0
|
|
|
|
arm_func_start sub_020194E4
|
|
sub_020194E4: ; 0x020194E4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0201954C ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x500
|
|
ldrh r0, [r0, #0xf8]
|
|
cmp r0, #2
|
|
bne _02019508
|
|
ldr r0, _02019550 ; =0x0000C008
|
|
bl sub_02019E10
|
|
_02019508:
|
|
ldr r1, _02019554 ; =0x0000601E
|
|
ldr r0, _02019558 ; =0x04808158
|
|
strh r1, [r0]
|
|
bl sub_0302AC10
|
|
ldr r1, _0201955C ; =0x0480815C
|
|
mov r0, #0x1e
|
|
ldrh r1, [r1]
|
|
orr r1, r1, #0x3f
|
|
bl sub_02019DE0
|
|
ldr r2, _02019560 ; =0x0000800D
|
|
ldr r1, _02019564 ; =0x04808168
|
|
ldr r0, _02019568 ; =0x04808036
|
|
strh r2, [r1]
|
|
mov r1, #1
|
|
strh r1, [r0]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201954C: .word 0x0380FFF4
|
|
_02019550: .word 0x0000C008
|
|
_02019554: .word 0x0000601E
|
|
_02019558: .word 0x04808158
|
|
_0201955C: .word 0x0480815C
|
|
_02019560: .word 0x0000800D
|
|
_02019564: .word 0x04808168
|
|
_02019568: .word 0x04808036
|
|
arm_func_end sub_020194E4
|
|
|
|
arm_func_start sub_0201956C
|
|
sub_0201956C: ; 0x0201956C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _02019604 ; =0x04808036
|
|
mov r3, #0
|
|
ldr r1, _02019608 ; =0x027EA99C
|
|
mov r0, #0x1f40
|
|
strh r3, [r2]
|
|
bl sub_0302AB1C
|
|
ldr r1, _0201960C ; =0x04808168
|
|
mov r2, #0
|
|
ldr r0, _02019610 ; =0x0380FFF4
|
|
strh r2, [r1]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x500
|
|
ldrh r0, [r0, #0xf8]
|
|
cmp r0, #2
|
|
beq _020195B8
|
|
cmp r0, #3
|
|
beq _020195F8
|
|
b _020195FC
|
|
_020195B8:
|
|
ldr r0, _02019614 ; =0x00006001
|
|
strh r0, [r1, #-0x10]
|
|
bl sub_0302AC10
|
|
ldr r1, _02019618 ; =0x0480815C
|
|
mov r0, #1
|
|
ldrh r4, [r1]
|
|
and r1, r4, #0x7f
|
|
bl sub_02019DE0
|
|
mov r1, r4
|
|
mov r0, #1
|
|
bl sub_02019DE0
|
|
ldr r0, _0201961C ; =0x00009C40
|
|
ldr r1, _02019608 ; =0x027EA99C
|
|
bl sub_0302AB1C
|
|
bl sub_02019FB0
|
|
b _020195FC
|
|
_020195F8:
|
|
bl sub_02019FB0
|
|
_020195FC:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02019604: .word 0x04808036
|
|
_02019608: .word 0x027EA99C
|
|
_0201960C: .word 0x04808168
|
|
_02019610: .word 0x0380FFF4
|
|
_02019614: .word 0x00006001
|
|
_02019618: .word 0x0480815C
|
|
_0201961C: .word 0x00009C40
|
|
arm_func_end sub_0201956C
|
|
|
|
arm_func_start sub_02019620
|
|
sub_02019620: ; 0x02019620
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _0201967C ; =0x0380FFF4
|
|
ldr r1, _02019680 ; =0x0000FFFF
|
|
ldr r2, [r2]
|
|
mov r6, r0
|
|
add r5, r2, #0x31c
|
|
cmp r6, r1
|
|
streqh r1, [r5, #0x1c]
|
|
add r4, r2, #0x344
|
|
streqh r1, [r4, #0x8c]
|
|
beq _02019670
|
|
ldrh r0, [r4, #0x6e]
|
|
mov r1, #0x64
|
|
mul r0, r6, r0
|
|
bl sub_030365C4
|
|
cmp r0, #0x10000
|
|
movhi r0, #5
|
|
bhi _02019674
|
|
strh r6, [r5, #0x1c]
|
|
strh r0, [r4, #0x8c]
|
|
_02019670:
|
|
mov r0, #0
|
|
_02019674:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201967C: .word 0x0380FFF4
|
|
_02019680: .word 0x0000FFFF
|
|
arm_func_end sub_02019620
|
|
|
|
arm_func_start sub_02019684
|
|
sub_02019684: ; 0x02019684
|
|
ldr r1, _020196C8 ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x300
|
|
strh r2, [r0, #0xea]
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x400
|
|
ldrh r0, [r0, #0x68]
|
|
cmp r0, #0
|
|
bxne lr
|
|
ldr r2, _020196CC ; =0x04808038
|
|
mov r0, #0
|
|
ldrh r1, [r2]
|
|
bic r1, r1, #2
|
|
strh r1, [r2]
|
|
strh r0, [r2, #0x10]
|
|
bx lr
|
|
.align 2, 0
|
|
_020196C8: .word 0x0380FFF4
|
|
_020196CC: .word 0x04808038
|
|
arm_func_end sub_02019684
|
|
|
|
arm_func_start sub_020196D0
|
|
sub_020196D0: ; 0x020196D0
|
|
ldr r0, _020196F8 ; =0x0380FFF4
|
|
ldr r1, _020196FC ; =0x04808038
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
add r0, r0, #0x300
|
|
strh r2, [r0, #0xea]
|
|
ldrh r0, [r1]
|
|
orr r0, r0, #2
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_020196F8: .word 0x0380FFF4
|
|
_020196FC: .word 0x04808038
|
|
arm_func_end sub_020196D0
|
|
|
|
arm_func_start sub_02019700
|
|
sub_02019700: ; 0x02019700
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _02019740 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r2]
|
|
cmp r5, #0x80
|
|
add r4, r0, #0x344
|
|
movhi r0, #4
|
|
bhi _02019738
|
|
mov r0, r1
|
|
ldr r1, [r4, #0x9c]
|
|
add r2, r5, #1
|
|
bl sub_0302D78C
|
|
strh r5, [r4, #0xa0]
|
|
mov r0, #0
|
|
_02019738:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02019740: .word 0x0380FFF4
|
|
arm_func_end sub_02019700
|
|
|
|
arm_func_start sub_02019744
|
|
sub_02019744: ; 0x02019744
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r2, _020197EC ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r2]
|
|
mov r8, r1
|
|
cmp r4, #0x80
|
|
add r5, r0, #0x344
|
|
movhi r0, #4
|
|
bhi _020197E4
|
|
cmp r4, #0
|
|
beq _020197D4
|
|
ldrh r0, [r5, #0xa2]
|
|
tst r0, #1
|
|
beq _020197C4
|
|
ldr r6, [r5, #0x9c]
|
|
mov r1, #0xff
|
|
mov r0, r6
|
|
bl sub_0201A514
|
|
add r6, r6, #1
|
|
mov r7, #0
|
|
b _020197B8
|
|
_02019798:
|
|
mov r0, r8
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
mov r0, r6
|
|
bl sub_0201A514
|
|
add r6, r6, #1
|
|
add r8, r8, #1
|
|
add r7, r7, #1
|
|
_020197B8:
|
|
cmp r7, r4
|
|
blo _02019798
|
|
b _020197D4
|
|
_020197C4:
|
|
ldr r1, [r5, #0x9c]
|
|
mov r0, r8
|
|
add r2, r4, #1
|
|
bl sub_0302D78C
|
|
_020197D4:
|
|
strh r4, [r5, #0xa0]
|
|
mov r0, #1
|
|
strh r0, [r5, #0xa4]
|
|
mov r0, #0
|
|
_020197E4:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020197EC: .word 0x0380FFF4
|
|
arm_func_end sub_02019744
|
|
|
|
arm_func_start sub_020197F0
|
|
sub_020197F0: ; 0x020197F0
|
|
ldr r3, _02019824 ; =0x0380FFF4
|
|
ldr r2, _02019828 ; =0x0480802A
|
|
ldr r1, [r3]
|
|
add r1, r1, #0x300
|
|
strh r0, [r1, #0xae]
|
|
strh r0, [r2]
|
|
ldr r1, [r3]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x3a]
|
|
mov r1, r1, lsl #0x18
|
|
movs r1, r1, lsr #0x1f
|
|
strneh r0, [r2, #-2]
|
|
bx lr
|
|
.align 2, 0
|
|
_02019824: .word 0x0380FFF4
|
|
_02019828: .word 0x0480802A
|
|
arm_func_end sub_020197F0
|
|
|
|
arm_func_start sub_0201982C
|
|
sub_0201982C: ; 0x0201982C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02019880 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
add r4, r1, #0x344
|
|
strh r0, [r4, #0x6a]
|
|
bl sub_0302ABA4
|
|
ldr r0, _02019884 ; =0x0480802A
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, #0x88]
|
|
cmp r0, #0
|
|
beq _02019878
|
|
bl sub_02020550
|
|
ldrh r0, [r4, #0x88]
|
|
mov r1, #0x20
|
|
bl sub_0201B434
|
|
mov r0, #0
|
|
strh r0, [r4, #0x88]
|
|
_02019878:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02019880: .word 0x0380FFF4
|
|
_02019884: .word 0x0480802A
|
|
arm_func_end sub_0201982C
|
|
|
|
arm_func_start sub_02019888
|
|
sub_02019888: ; 0x02019888
|
|
ldr r0, _020198A4 ; =0x0380FFF4
|
|
ldr r1, _020198A8 ; =0x04808028
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0xae]
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_020198A4: .word 0x0380FFF4
|
|
_020198A8: .word 0x04808028
|
|
arm_func_end sub_02019888
|
|
|
|
arm_func_start sub_020198AC
|
|
sub_020198AC: ; 0x020198AC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _020198CC ; =0x04808094
|
|
ldrh r0, [r0]
|
|
tst r0, #0x8000
|
|
bne _020198C4
|
|
bl sub_0302ABA4
|
|
_020198C4:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020198CC: .word 0x04808094
|
|
arm_func_end sub_020198AC
|
|
|
|
arm_func_start sub_020198D0
|
|
sub_020198D0: ; 0x020198D0
|
|
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_end sub_020198D0
|
|
|
|
arm_func_start sub_020198EC
|
|
sub_020198EC: ; 0x020198EC
|
|
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, #0xa]
|
|
bx lr
|
|
arm_func_end sub_020198EC
|
|
|
|
arm_func_start sub_02019920
|
|
sub_02019920: ; 0x02019920
|
|
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, #0xa]
|
|
ldrh r1, [r3]
|
|
strh r1, [r0, #0xc]
|
|
ldrh r1, [r3, #2]
|
|
strh r1, [r0, #0xe]
|
|
ldrh r1, [r3, #4]
|
|
strh r1, [r0, #0x10]
|
|
bx lr
|
|
arm_func_end sub_02019920
|
|
|
|
arm_func_start sub_0201996C
|
|
sub_0201996C: ; 0x0201996C
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_0201999C
|
|
ldr r1, _02019998 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
mov r2, #0xb4
|
|
add r1, r1, #0x13c
|
|
add r1, r1, #0x400
|
|
bl sub_0302D7C0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02019998: .word 0x0380FFF4
|
|
arm_func_end sub_0201996C
|
|
|
|
arm_func_start sub_0201999C
|
|
sub_0201999C: ; 0x0201999C
|
|
ldr r1, _02019B8C ; =0x0380FFF4
|
|
ldr r0, _02019B90 ; =0x048081B0
|
|
ldr r1, [r1]
|
|
ldrh r2, [r0]
|
|
ldr r3, [r1, #0x58c]
|
|
and r2, r2, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x58c]
|
|
ldrh ip, [r0, #2]
|
|
ldr r3, [r1, #0x588]
|
|
and r2, ip, #0xff
|
|
add r3, r3, ip, asr #8
|
|
str r3, [r1, #0x588]
|
|
ldr r3, [r1, #0x598]
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x598]
|
|
ldrh ip, [r0, #4]
|
|
ldr r3, [r1, #0x594]
|
|
and r2, ip, #0xff
|
|
add r3, r3, ip, asr #8
|
|
str r3, [r1, #0x594]
|
|
ldr r3, [r1, #0x590]
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x590]
|
|
ldrh ip, [r0, #6]
|
|
ldr r3, [r1, #0x59c]
|
|
and r2, ip, #0xff
|
|
add r3, r3, ip, asr #8
|
|
str r3, [r1, #0x59c]
|
|
ldr r3, [r1, #0x574]
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x574]
|
|
ldrh r2, [r0, #8]
|
|
ldr r3, [r1, #0x584]
|
|
and r2, r2, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x584]
|
|
ldrh r2, [r0, #0xa]
|
|
ldr r3, [r1, #0x55c]
|
|
and r2, r2, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x55c]
|
|
ldrh ip, [r0, #0xc]
|
|
ldr r3, [r1, #0x56c]
|
|
and r2, ip, #0xff
|
|
add r3, r3, ip, asr #8
|
|
str r3, [r1, #0x56c]
|
|
ldr r3, [r1, #0x580]
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x580]
|
|
ldrh ip, [r0, #0xe]
|
|
ldr r3, [r1, #0x578]
|
|
and r2, ip, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x578]
|
|
ldr r2, [r1, #0x57c]
|
|
add r2, r2, ip, asr #8
|
|
str r2, [r1, #0x57c]
|
|
ldrh r2, [r0, #0x10]
|
|
ldr r3, [r1, #0x548]
|
|
and r2, r2, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x548]
|
|
ldrh r3, [r0, #0x20]
|
|
ldr r2, [r1, #0x5b4]
|
|
add r2, r2, r3, asr #8
|
|
str r2, [r1, #0x5b4]
|
|
ldrh ip, [r0, #0x22]
|
|
ldr r3, [r1, #0x5b8]
|
|
and r2, ip, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x5b8]
|
|
ldr r2, [r1, #0x5bc]
|
|
add r2, r2, ip, asr #8
|
|
str r2, [r1, #0x5bc]
|
|
ldrh ip, [r0, #0x24]
|
|
ldr r3, [r1, #0x5c0]
|
|
and r2, ip, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x5c0]
|
|
ldr r2, [r1, #0x5c4]
|
|
add r2, r2, ip, asr #8
|
|
str r2, [r1, #0x5c4]
|
|
ldrh ip, [r0, #0x26]
|
|
ldr r3, [r1, #0x5c8]
|
|
and r2, ip, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x5c8]
|
|
ldr r2, [r1, #0x5cc]
|
|
add r2, r2, ip, asr #8
|
|
str r2, [r1, #0x5cc]
|
|
ldrh ip, [r0, #0x28]
|
|
ldr r3, [r1, #0x5d0]
|
|
and r2, ip, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x5d0]
|
|
ldr r2, [r1, #0x5d4]
|
|
add r2, r2, ip, asr #8
|
|
str r2, [r1, #0x5d4]
|
|
ldrh ip, [r0, #0x2a]
|
|
ldr r3, [r1, #0x5d8]
|
|
and r2, ip, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x5d8]
|
|
ldr r2, [r1, #0x5dc]
|
|
add r2, r2, ip, asr #8
|
|
str r2, [r1, #0x5dc]
|
|
ldrh ip, [r0, #0x2c]
|
|
ldr r3, [r1, #0x5e0]
|
|
and r2, ip, #0xff
|
|
add r2, r3, r2
|
|
str r2, [r1, #0x5e0]
|
|
ldr r2, [r1, #0x5e4]
|
|
add r2, r2, ip, asr #8
|
|
str r2, [r1, #0x5e4]
|
|
ldrh r3, [r0, #0x2e]
|
|
ldr r2, [r1, #0x5e8]
|
|
and r0, r3, #0xff
|
|
add r0, r2, r0
|
|
str r0, [r1, #0x5e8]
|
|
ldr r0, [r1, #0x5ec]
|
|
add r0, r0, r3, asr #8
|
|
str r0, [r1, #0x5ec]
|
|
bx lr
|
|
.align 2, 0
|
|
_02019B8C: .word 0x0380FFF4
|
|
_02019B90: .word 0x048081B0
|
|
arm_func_end sub_0201999C
|
|
|
|
arm_func_start sub_02019B94
|
|
sub_02019B94: ; 0x02019B94
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r2, _02019C60 ; =0x0380FFF4
|
|
mov sb, r0
|
|
ldr r0, [r2]
|
|
mov r8, r1
|
|
cmp sb, #0x20
|
|
add r2, r0, #0x344
|
|
movhi r0, #0
|
|
bhi _02019C58
|
|
ldrh r1, [r2, #0x1e]
|
|
cmp r1, #0
|
|
moveq r0, #1
|
|
beq _02019C58
|
|
add r0, r0, #0x400
|
|
ldrh r0, [r0, #4]
|
|
cmp r0, #0x13
|
|
bne _02019BEC
|
|
cmp sb, r1
|
|
movlo r0, #0
|
|
blo _02019C58
|
|
mov sb, r1
|
|
b _02019BF8
|
|
_02019BEC:
|
|
cmp sb, r1
|
|
movne r0, #0
|
|
bne _02019C58
|
|
_02019BF8:
|
|
add r5, r2, #0x20
|
|
add r6, r2, #0x40
|
|
mov r7, #0
|
|
b _02019C4C
|
|
_02019C08:
|
|
mov r0, r6
|
|
bl sub_0201A540
|
|
mov r4, r0
|
|
mov r0, r8
|
|
add r6, r6, #1
|
|
bl sub_0201A540
|
|
mov sl, r0
|
|
mov r0, r5
|
|
add r8, r8, #1
|
|
bl sub_0201A540
|
|
orr r1, sl, r4
|
|
orr r0, r0, r4
|
|
cmp r1, r0
|
|
add r5, r5, #1
|
|
movne r0, #0
|
|
bne _02019C58
|
|
add r7, r7, #1
|
|
_02019C4C:
|
|
cmp r7, sb
|
|
blo _02019C08
|
|
mov r0, #1
|
|
_02019C58:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02019C60: .word 0x0380FFF4
|
|
arm_func_end sub_02019B94
|
|
|
|
arm_func_start sub_02019C64
|
|
sub_02019C64: ; 0x02019C64
|
|
ldrh r3, [r0, #4]
|
|
ldrh r2, [r1, #4]
|
|
cmp r3, r2
|
|
ldreqh r3, [r0, #2]
|
|
ldreqh r2, [r1, #2]
|
|
cmpeq r3, r2
|
|
ldreqh r2, [r0]
|
|
ldreqh r0, [r1]
|
|
cmpeq r2, r0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
bx lr
|
|
arm_func_end sub_02019C64
|
|
|
|
arm_func_start sub_02019C94
|
|
sub_02019C94: ; 0x02019C94
|
|
ldr r1, _02019CB0 ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x2c]
|
|
and r0, r1, r2, lsl r0
|
|
bx lr
|
|
.align 2, 0
|
|
_02019CB0: .word 0x0380FFF4
|
|
arm_func_end sub_02019C94
|
|
|
|
arm_func_start sub_02019CB4
|
|
sub_02019CB4: ; 0x02019CB4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
mov sb, r1
|
|
mov r1, #0
|
|
mov r4, r0
|
|
strh r1, [sb]
|
|
add r0, r4, #1
|
|
strh r1, [sb, #2]
|
|
bl sub_0201A540
|
|
add r6, r4, #2
|
|
ldr r5, _02019D64 ; =0x027F73B4
|
|
mov r8, r0
|
|
mov r7, #0
|
|
mov r4, #1
|
|
b _02019D54
|
|
_02019CEC:
|
|
add r0, r6, r7
|
|
bl sub_0201A540
|
|
and r1, r0, #0x7f
|
|
sub r1, r1, #1
|
|
cmp r1, #0x78
|
|
bhs _02019D34
|
|
mov r1, r1, lsl #1
|
|
ldrh r2, [r5, r1]
|
|
cmp r2, #0xff
|
|
beq _02019D34
|
|
ldrh r1, [sb, #2]
|
|
tst r0, #0x80
|
|
orr r0, r1, r4, lsl r2
|
|
strh r0, [sb, #2]
|
|
ldrneh r0, [sb]
|
|
orrne r0, r0, r4, lsl r2
|
|
strneh r0, [sb]
|
|
b _02019D50
|
|
_02019D34:
|
|
ldrh r1, [sb, #2]
|
|
tst r0, #0x80
|
|
orr r0, r1, #0x8000
|
|
strh r0, [sb, #2]
|
|
ldrneh r0, [sb]
|
|
orrne r0, r0, #0x8000
|
|
strneh r0, [sb]
|
|
_02019D50:
|
|
add r7, r7, #1
|
|
_02019D54:
|
|
cmp r7, r8
|
|
blo _02019CEC
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02019D64: .word 0x027F73B4
|
|
arm_func_end sub_02019CB4
|
|
|
|
arm_func_start sub_02019D68
|
|
sub_02019D68: ; 0x02019D68
|
|
ldr r0, _02019DB0 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x30]
|
|
cmp r1, #0
|
|
beq _02019D8C
|
|
cmp r1, #1
|
|
beq _02019DA0
|
|
b _02019DA8
|
|
_02019D8C:
|
|
ldrh r0, [r0, #0xa4]
|
|
tst r0, #1
|
|
beq _02019DA8
|
|
mov r0, #0xa
|
|
bx lr
|
|
_02019DA0:
|
|
mov r0, #0xa
|
|
bx lr
|
|
_02019DA8:
|
|
mov r0, #0x14
|
|
bx lr
|
|
.align 2, 0
|
|
_02019DB0: .word 0x0380FFF4
|
|
arm_func_end sub_02019D68
|
|
|
|
arm_func_start sub_02019DB4
|
|
sub_02019DB4: ; 0x02019DB4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _02019DD8 ; =0x04808158
|
|
orr r0, r0, #0x6000
|
|
strh r0, [r1]
|
|
bl sub_0302AC10
|
|
ldr r0, _02019DDC ; =0x0480815C
|
|
ldrh r0, [r0]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02019DD8: .word 0x04808158
|
|
_02019DDC: .word 0x0480815C
|
|
arm_func_end sub_02019DB4
|
|
|
|
arm_func_start sub_02019DE0
|
|
sub_02019DE0: ; 0x02019DE0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _02019E0C ; =0x0480815A
|
|
orr r0, r0, #0x5000
|
|
strh r1, [r2]
|
|
strh r0, [r2, #-2]
|
|
bl sub_0302AC10
|
|
cmp r0, #0
|
|
mvnne r0, #0
|
|
moveq r0, #0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02019E0C: .word 0x0480815A
|
|
arm_func_end sub_02019DE0
|
|
|
|
arm_func_start sub_02019E10
|
|
sub_02019E10: ; 0x02019E10
|
|
ldr r2, _02019E28 ; =0x0480817E
|
|
ldr ip, _02019E2C ; =sub_037FB454
|
|
strh r0, [r2]
|
|
mov r1, r0, lsr #0x10
|
|
strh r1, [r2, #-2]
|
|
bx ip
|
|
.align 2, 0
|
|
_02019E28: .word 0x0480817E
|
|
_02019E2C: .word sub_037FB454
|
|
arm_func_end sub_02019E10
|
|
|
|
arm_func_start sub_02019E30
|
|
sub_02019E30: ; 0x02019E30
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #4
|
|
mov r8, #0
|
|
str r8, [sp]
|
|
mov r7, r8
|
|
mov r6, #0x64
|
|
add r4, sp, #0
|
|
mov r5, #1
|
|
_02019E50:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_02024600
|
|
cmp r7, #1
|
|
ldreq r0, [sp]
|
|
mov r1, r8
|
|
andeq r0, r0, #0x80
|
|
streq r0, [sp]
|
|
ldr r0, [sp]
|
|
and r0, r0, #0xff
|
|
bl sub_0201A5D8
|
|
add r7, r7, #1
|
|
mov r8, r0
|
|
cmp r7, #0x69
|
|
add r6, r6, #1
|
|
blo _02019E50
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
arm_func_end sub_02019E30
|
|
|
|
arm_func_start sub_02019EA0
|
|
sub_02019EA0: ; 0x02019EA0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _02019F0C ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
mov r2, #0x10
|
|
add r1, r1, #0x1f8
|
|
add r4, r1, #0x400
|
|
mov r1, r4
|
|
bl sub_0302D764
|
|
mov r2, r4
|
|
mov r0, #0x40
|
|
mov r1, #1
|
|
bl sub_02024600
|
|
add r2, r4, #2
|
|
mov r0, #0x41
|
|
mov r1, #1
|
|
bl sub_02024600
|
|
add r2, r4, #4
|
|
mov r0, #0x42
|
|
mov r1, #1
|
|
bl sub_02024600
|
|
add r2, r4, #6
|
|
mov r0, #0x43
|
|
mov r1, #1
|
|
bl sub_02024600
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02019F0C: .word 0x0380FFF4
|
|
arm_func_end sub_02019EA0
|
|
|
|
arm_func_start sub_02019F10
|
|
sub_02019F10: ; 0x02019F10
|
|
ldr r2, _02019F44 ; =0x027F7350
|
|
mov r3, #0
|
|
_02019F18:
|
|
mov r0, r3, lsl #2
|
|
ldrh r0, [r2, r0]
|
|
add r1, r2, r3, lsl #2
|
|
add r0, r0, #0x4800000
|
|
add r3, r3, #1
|
|
ldrh r1, [r1, #2]
|
|
add r0, r0, #0x8000
|
|
strh r1, [r0]
|
|
cmp r3, #0x19
|
|
blo _02019F18
|
|
bx lr
|
|
.align 2, 0
|
|
_02019F44: .word 0x027F7350
|
|
arm_func_end sub_02019F10
|
|
|
|
arm_func_start sub_02019F48
|
|
sub_02019F48: ; 0x02019F48
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r0, _02019FAC ; =0x04808160
|
|
mov r1, #0x100
|
|
strh r1, [r0]
|
|
mov r6, #0
|
|
str r6, [sp]
|
|
mov r7, #0x64
|
|
add r4, sp, #0
|
|
mov r5, #1
|
|
_02019F6C:
|
|
mov r0, r7
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_02024600
|
|
ldr r1, [sp]
|
|
mov r0, r6
|
|
bl sub_02019DE0
|
|
add r6, r6, #1
|
|
cmp r6, #0x69
|
|
add r7, r7, #1
|
|
blo _02019F6C
|
|
mov r0, #0x5a
|
|
mov r1, #2
|
|
bl sub_02019DE0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02019FAC: .word 0x04808160
|
|
arm_func_end sub_02019F48
|
|
|
|
arm_func_start sub_02019FB0
|
|
sub_02019FB0: ; 0x02019FB0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
sub sp, sp, #8
|
|
ldr r0, _0201A12C ; =0x0380FFF4
|
|
ldr r5, _0201A130 ; =0x027F72E0
|
|
ldr r0, [r0]
|
|
mov r8, #0
|
|
add r0, r0, #0x1f8
|
|
str r8, [sp]
|
|
add r4, r0, #0x400
|
|
add r6, sp, #0
|
|
mov r7, #2
|
|
_02019FDC:
|
|
mov r0, r8, lsl #1
|
|
mov r1, r7
|
|
mov r2, r6
|
|
add r0, r0, #0x44
|
|
bl sub_02024600
|
|
mov r0, r8, lsl #1
|
|
ldrh r0, [r5, r0]
|
|
add r8, r8, #1
|
|
add r0, r0, #0x4800000
|
|
ldr r1, [sp]
|
|
add r0, r0, #0x8000
|
|
strh r1, [r0]
|
|
cmp r8, #0x10
|
|
blo _02019FDC
|
|
ldrh r1, [r4, #2]
|
|
ldr r0, _0201A134 ; =0x04808184
|
|
mov r2, r1, lsr #7
|
|
mov r1, r2, lsl #8
|
|
str r1, [sp, #4]
|
|
ldrh r1, [r4, #2]
|
|
mov r7, #0xce
|
|
and r1, r1, #0x7f
|
|
orr r1, r1, r2, lsl #8
|
|
str r1, [sp, #4]
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, #2]
|
|
ldrh r1, [r4]
|
|
and r0, r0, #0x7f
|
|
add r2, r0, #7
|
|
mov r0, r2, asr #2
|
|
add r0, r2, r0, lsr #29
|
|
ldrh r8, [r4, #4]
|
|
cmp r1, #3
|
|
mov r6, r0, asr #3
|
|
bne _0201A0CC
|
|
add r0, r8, #0xce
|
|
add r2, r4, #8
|
|
mov r1, #1
|
|
bl sub_02024600
|
|
mov sb, #0
|
|
add r4, sp, #4
|
|
mov r6, sb
|
|
mov r5, #1
|
|
b _0201A0C0
|
|
_0201A08C:
|
|
str r6, [sp, #4]
|
|
mov r0, r7
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_02024600
|
|
mov r0, sb, lsl #8
|
|
ldr r1, [sp, #4]
|
|
add r0, r0, #0x50000
|
|
orr r0, r1, r0
|
|
str r0, [sp, #4]
|
|
bl sub_02019E10
|
|
add sb, sb, #1
|
|
add r7, r7, #1
|
|
_0201A0C0:
|
|
cmp sb, r8
|
|
blo _0201A08C
|
|
b _0201A120
|
|
_0201A0CC:
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
add r5, sp, #4
|
|
b _0201A118
|
|
_0201A0DC:
|
|
mov r0, r7
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl sub_02024600
|
|
ldr r0, [sp, #4]
|
|
bl sub_02019E10
|
|
ldrh r0, [r4]
|
|
sub r8, r8, #1
|
|
cmp r0, #2
|
|
ldreq r1, [sp, #4]
|
|
add r7, r7, r6
|
|
moveq r0, r1, lsr #0x12
|
|
cmpeq r0, #9
|
|
biceq r0, r1, #0x7c00
|
|
streq r0, [r4, #0xc]
|
|
_0201A118:
|
|
cmp r8, #0
|
|
bne _0201A0DC
|
|
_0201A120:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A12C: .word 0x0380FFF4
|
|
_0201A130: .word 0x027F72E0
|
|
_0201A134: .word 0x04808184
|
|
arm_func_end sub_02019FB0
|
|
|
|
arm_func_start sub_0201A138
|
|
sub_0201A138: ; 0x0201A138
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0201A188 ; =0x0380FFF4
|
|
ldr r4, [r0]
|
|
bl sub_0302CB80
|
|
cmp r0, #0
|
|
addeq r0, r4, #0x300
|
|
ldreqh r1, [r0, #0x3e]
|
|
orreq r1, r1, #0x40
|
|
streqh r1, [r0, #0x3e]
|
|
beq _0201A180
|
|
add r0, r4, #0x208
|
|
add r0, r0, #0x400
|
|
bl sub_0302CB90
|
|
add r0, r4, #0x234
|
|
add r0, r0, #0x400
|
|
bl sub_0302CB90
|
|
add r0, r4, #0x660
|
|
bl sub_0302CB90
|
|
_0201A180:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A188: .word 0x0380FFF4
|
|
arm_func_end sub_0201A138
|
|
|
|
arm_func_start sub_0201A18C
|
|
sub_0201A18C: ; 0x0201A18C
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
bx lr
|
|
arm_func_end sub_0201A18C
|
|
|
|
arm_func_start sub_0201A198
|
|
sub_0201A198: ; 0x0201A198
|
|
ldr ip, _0201A1A4 ; =sub_037FB32C
|
|
ldr r1, _0201A1A8 ; =0x027EA99C
|
|
bx ip
|
|
.align 2, 0
|
|
_0201A1A4: .word sub_037FB32C
|
|
_0201A1A8: .word 0x027EA99C
|
|
arm_func_end sub_0201A198
|
|
|
|
arm_func_start sub_0201A1AC
|
|
sub_0201A1AC: ; 0x0201A1AC
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #0xc
|
|
ldr r2, _0201A234 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r2]
|
|
mov r4, r1
|
|
add r0, r0, #0x208
|
|
add r0, r0, #0x400
|
|
bl sub_0302CDB0
|
|
ldr r0, _0201A238 ; =0x000082EA
|
|
mov r1, #0
|
|
umull r3, r2, r5, r0
|
|
mla r2, r5, r1, r2
|
|
mov r5, r1
|
|
mla r2, r5, r0, r2
|
|
mov r6, r3, lsr #6
|
|
orr r6, r6, r2, lsl #26
|
|
bl sub_0302CA0C
|
|
adds r0, r6, r0
|
|
adc r2, r1, #0
|
|
mov r1, r0
|
|
str r4, [sp, #4]
|
|
mov r0, r5
|
|
str r0, [sp, #8]
|
|
ldr r0, _0201A234 ; =0x0380FFF4
|
|
str r5, [sp]
|
|
ldr r0, [r0]
|
|
mov r3, r6
|
|
add r0, r0, #0x208
|
|
add r0, r0, #0x400
|
|
bl sub_0302CD3C
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r3, r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A234: .word 0x0380FFF4
|
|
_0201A238: .word 0x000082EA
|
|
arm_func_end sub_0201A1AC
|
|
|
|
arm_func_start sub_0201A23C
|
|
sub_0201A23C: ; 0x0201A23C
|
|
ldr r0, _0201A254 ; =0x0380FFF4
|
|
ldr ip, _0201A258 ; =sub_037FD5C0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x208
|
|
add r0, r0, #0x400
|
|
bx ip
|
|
.align 2, 0
|
|
_0201A254: .word 0x0380FFF4
|
|
_0201A258: .word sub_037FD5C0
|
|
arm_func_end sub_0201A23C
|
|
|
|
arm_func_start sub_0201A25C
|
|
sub_0201A25C: ; 0x0201A25C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _0201A2D8 ; =0x0380FFF4
|
|
mov r0, #1
|
|
ldr r4, [r1]
|
|
mov r1, #0xa
|
|
ldr r2, [r4, #0x3ec]
|
|
add r2, r2, #1
|
|
str r2, [r4, #0x3ec]
|
|
bl sub_03027D88
|
|
mov r0, #2
|
|
mov r1, #0x12
|
|
bl sub_03027D88
|
|
mov r0, #1
|
|
mov r1, #0x11
|
|
bl sub_03027D88
|
|
add r0, r4, #0x100
|
|
ldrh r0, [r0, #0xfc]
|
|
cmp r0, #0
|
|
beq _0201A2B4
|
|
mov r0, #2
|
|
mov r1, #0x13
|
|
bl sub_03027D88
|
|
_0201A2B4:
|
|
add r0, r4, #0x300
|
|
ldrh r0, [r0, #0xf4]
|
|
cmp r0, #0
|
|
beq _0201A2D0
|
|
mov r0, #2
|
|
mov r1, #0x15
|
|
bl sub_03027D88
|
|
_0201A2D0:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A2D8: .word 0x0380FFF4
|
|
arm_func_end sub_0201A25C
|
|
|
|
arm_func_start sub_0201A2DC
|
|
sub_0201A2DC: ; 0x0201A2DC
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _0201A344 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r2]
|
|
mov r4, r1
|
|
add r0, r0, #0x234
|
|
add r0, r0, #0x400
|
|
bl sub_0302CDB0
|
|
mov r3, #0
|
|
ldr r0, _0201A348 ; =0x000082EA
|
|
mov r1, r3
|
|
umull r2, ip, r5, r0
|
|
mla ip, r5, r3, ip
|
|
mla ip, r1, r0, ip
|
|
mov r1, r2, lsr #6
|
|
str r3, [sp]
|
|
ldr r0, _0201A344 ; =0x0380FFF4
|
|
mov r3, r4
|
|
ldr r0, [r0]
|
|
mov r2, ip, lsr #6
|
|
add r0, r0, #0x234
|
|
add r0, r0, #0x400
|
|
orr r1, r1, ip, lsl #26
|
|
bl sub_0302CCCC
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A344: .word 0x0380FFF4
|
|
_0201A348: .word 0x000082EA
|
|
arm_func_end sub_0201A2DC
|
|
|
|
arm_func_start sub_0201A34C
|
|
sub_0201A34C: ; 0x0201A34C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _0201A3C8 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r2]
|
|
mov r4, r1
|
|
add r0, r0, #0x234
|
|
add r0, r0, #0x400
|
|
bl sub_0302CDB0
|
|
ldr r0, _0201A3CC ; =0x000082EA
|
|
mov r3, #0
|
|
umull ip, r2, r5, r0
|
|
mla r2, r5, r3, r2
|
|
mov r1, r3
|
|
mla r2, r1, r0, r2
|
|
mov r0, ip, lsr #6
|
|
mov r1, r2, lsr #6
|
|
orr r0, r0, r2, lsl #26
|
|
mov r2, #0x3e8
|
|
bl sub_03036370
|
|
mov r2, r1
|
|
mov r1, r0
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _0201A3C8 ; =0x0380FFF4
|
|
mov r3, r4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x234
|
|
add r0, r0, #0x400
|
|
bl sub_0302CCCC
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A3C8: .word 0x0380FFF4
|
|
_0201A3CC: .word 0x000082EA
|
|
arm_func_end sub_0201A34C
|
|
|
|
arm_func_start sub_0201A3D0
|
|
sub_0201A3D0: ; 0x0201A3D0
|
|
ldr r0, _0201A3E8 ; =0x0380FFF4
|
|
ldr ip, _0201A3EC ; =sub_037FD5C0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x234
|
|
add r0, r0, #0x400
|
|
bx ip
|
|
.align 2, 0
|
|
_0201A3E8: .word 0x0380FFF4
|
|
_0201A3EC: .word sub_037FD5C0
|
|
arm_func_end sub_0201A3D0
|
|
|
|
arm_func_start sub_0201A3F0
|
|
sub_0201A3F0: ; 0x0201A3F0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r3, _0201A464 ; =0x04805F60
|
|
add r2, r2, #1
|
|
mov r5, r1
|
|
bic r2, r2, #1
|
|
add r1, r5, r2
|
|
cmp r1, r3
|
|
mov r6, r0
|
|
subhi r4, r3, r5
|
|
subhi r7, r2, r4
|
|
movls r4, r2
|
|
movls r7, #0
|
|
mov r0, r5
|
|
mov r1, r6
|
|
mov r2, r4
|
|
bl sub_0302D78C
|
|
cmp r7, #0
|
|
beq _0201A45C
|
|
ldr r0, _0201A468 ; =0x0380FFF4
|
|
add r3, r5, r4
|
|
ldr r0, [r0]
|
|
mov r2, r7
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0xde]
|
|
add r1, r6, r4
|
|
sub r0, r3, r0
|
|
bl sub_0302D78C
|
|
_0201A45C:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A464: .word 0x04805F60
|
|
_0201A468: .word 0x0380FFF4
|
|
arm_func_end sub_0201A3F0
|
|
|
|
arm_func_start sub_0201A46C
|
|
sub_0201A46C: ; 0x0201A46C
|
|
ldr ip, _0201A488 ; =sub_037FDF9C
|
|
mov r3, r0
|
|
add r2, r2, #1
|
|
mov r0, r1
|
|
mov r1, r3
|
|
bic r2, r2, #1
|
|
bx ip
|
|
.align 2, 0
|
|
_0201A488: .word sub_037FDF9C
|
|
arm_func_end sub_0201A46C
|
|
|
|
arm_func_start sub_0201A48C
|
|
sub_0201A48C: ; 0x0201A48C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, r2
|
|
mov r0, r1
|
|
mov r4, r3
|
|
mov r1, r6
|
|
mov r2, #0x24
|
|
bl sub_0302D78C
|
|
cmp r4, #0
|
|
beq _0201A4C8
|
|
add r2, r4, #1
|
|
mov r0, r5
|
|
add r1, r6, #0x24
|
|
bic r2, r2, #1
|
|
bl sub_0302D78C
|
|
_0201A4C8:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_0201A48C
|
|
|
|
arm_func_start sub_0201A4D0
|
|
sub_0201A4D0: ; 0x0201A4D0
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, r2
|
|
mov r0, r1
|
|
mov r4, r3
|
|
mov r1, r6
|
|
mov r2, #0x24
|
|
bl sub_0302D78C
|
|
cmp r4, #0
|
|
beq _0201A50C
|
|
add r2, r4, #1
|
|
mov r0, r5
|
|
add r1, r6, #0x28
|
|
bic r2, r2, #1
|
|
bl sub_0302D78C
|
|
_0201A50C:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_0201A4D0
|
|
|
|
arm_func_start sub_0201A514
|
|
sub_0201A514: ; 0x0201A514
|
|
tst r0, #1
|
|
ldrneh r2, [r0, #-1]
|
|
andne r2, r2, #0xff
|
|
orrne r1, r2, r1, lsl #8
|
|
strneh r1, [r0, #-1]
|
|
ldreqh r2, [r0]
|
|
andeq r1, r1, #0xff
|
|
andeq r2, r2, #0xff00
|
|
orreq r1, r2, r1
|
|
streqh r1, [r0]
|
|
bx lr
|
|
arm_func_end sub_0201A514
|
|
|
|
arm_func_start sub_0201A540
|
|
sub_0201A540: ; 0x0201A540
|
|
tst r0, #1
|
|
ldrneh r0, [r0, #-1]
|
|
movne r0, r0, asr #8
|
|
ldreqh r0, [r0]
|
|
and r0, r0, #0xff
|
|
and r0, r0, #0xff
|
|
bx lr
|
|
arm_func_end sub_0201A540
|
|
|
|
arm_func_start sub_0201A55C
|
|
sub_0201A55C: ; 0x0201A55C
|
|
ldr r3, _0201A588 ; =0x0380FFF4
|
|
ldr r2, _0201A58C ; =0x0000FFF8
|
|
ldr r3, [r3]
|
|
and r0, r0, r2
|
|
add r2, r0, #5
|
|
add r0, r3, #0x500
|
|
strh r2, [r0, #0xf0]
|
|
add r2, r3, #0x5f0
|
|
orr r0, r1, #1
|
|
strh r0, [r2, #2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A588: .word 0x0380FFF4
|
|
_0201A58C: .word 0x0000FFF8
|
|
arm_func_end sub_0201A55C
|
|
|
|
arm_func_start sub_0201A590
|
|
sub_0201A590: ; 0x0201A590
|
|
ldr r1, _0201A5A4 ; =0x0380FFF4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x500
|
|
strh r0, [r1, #0xf4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A5A4: .word 0x0380FFF4
|
|
arm_func_end sub_0201A590
|
|
|
|
arm_func_start sub_0201A5A8
|
|
sub_0201A5A8: ; 0x0201A5A8
|
|
ldr r0, _0201A5D4 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r3, r0, #0x5f0
|
|
add r0, r0, #0x500
|
|
ldrh r2, [r3, #2]
|
|
ldrh r1, [r3, #4]
|
|
ldrh r0, [r0, #0xf0]
|
|
mla r0, r1, r0, r2
|
|
strh r0, [r3, #4]
|
|
ldrh r0, [r3, #4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A5D4: .word 0x0380FFF4
|
|
arm_func_end sub_0201A5A8
|
|
|
|
arm_func_start sub_0201A5D8
|
|
sub_0201A5D8: ; 0x0201A5D8
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _0201A650 ; =0x027F72C0
|
|
mov r4, r1, lsl #0x1c
|
|
ldr r3, _0201A654 ; =0x00000FFF
|
|
mov r4, r4, lsr #0x1b
|
|
mov ip, r0, lsl #0x1c
|
|
mov lr, ip, lsr #0x1b
|
|
and r1, r3, r1, asr #4
|
|
ldrh r4, [r2, r4]
|
|
mov r1, r1, lsl #0x10
|
|
mov r0, r0, asr #4
|
|
mov r0, r0, lsl #0x1c
|
|
mov ip, r0, lsr #0x1b
|
|
ldrh r0, [r2, lr]
|
|
eor r1, r4, r1, lsr #16
|
|
eor r0, r1, r0
|
|
mov r0, r0, lsl #0x10
|
|
mov r1, r0, lsr #0x10
|
|
mov r0, r1, lsl #0x1c
|
|
mov r0, r0, lsr #0x1b
|
|
and r1, r3, r1, asr #4
|
|
ldrh r3, [r2, r0]
|
|
mov r0, r1, lsl #0x10
|
|
ldrh r1, [r2, ip]
|
|
eor r0, r3, r0, lsr #16
|
|
eor r0, r0, r1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A650: .word 0x027F72C0
|
|
_0201A654: .word 0x00000FFF
|
|
arm_func_end sub_0201A5D8
|
|
|
|
arm_func_start sub_0201A658
|
|
sub_0201A658: ; 0x0201A658
|
|
stmdb sp!, {r4, lr}
|
|
ldr r4, [r0, #8]
|
|
ldr r1, _0201A6CC ; =0x0000B6B8
|
|
ldrh r2, [r4, #-4]
|
|
sub lr, r4, #4
|
|
cmp r2, r1
|
|
ldreqh r2, [lr, #2]
|
|
ldreq r1, _0201A6D0 ; =0x00001D46
|
|
cmpeq r2, r1
|
|
moveq r0, #0
|
|
beq _0201A6C4
|
|
ldr r3, _0201A6CC ; =0x0000B6B8
|
|
mov ip, #1
|
|
strh ip, [r4, #0xa]
|
|
ldr r2, _0201A6D0 ; =0x00001D46
|
|
strh r3, [lr]
|
|
strh r2, [lr, #2]
|
|
ldr r1, [r0, #8]
|
|
ldr r0, _0201A6D4 ; =0x0380FFF4
|
|
strh r3, [r1, #0xc]
|
|
strh r2, [r1, #0xe]
|
|
ldr r1, [r0]
|
|
mov r0, ip
|
|
add r1, r1, #0x300
|
|
ldrh r2, [r1, #0xfa]
|
|
add r2, r2, #1
|
|
strh r2, [r1, #0xfa]
|
|
_0201A6C4:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A6CC: .word 0x0000B6B8
|
|
_0201A6D0: .word 0x00001D46
|
|
_0201A6D4: .word 0x0380FFF4
|
|
arm_func_end sub_0201A658
|
|
|
|
arm_func_start sub_0201A6D8
|
|
sub_0201A6D8: ; 0x0201A6D8
|
|
ldr r0, _0201A710 ; =0x04808004
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
mov r2, #0x10
|
|
add r1, r0, #0x210
|
|
b _0201A704
|
|
_0201A6F0:
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
cmpne r0, #9
|
|
bxeq lr
|
|
sub r2, r2, #1
|
|
_0201A704:
|
|
cmp r2, #0
|
|
bne _0201A6F0
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A710: .word 0x04808004
|
|
arm_func_end sub_0201A6D8
|
|
|
|
arm_func_start sub_0201A714
|
|
sub_0201A714: ; 0x0201A714
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
beq _0201A754
|
|
bl sub_0201A6D8
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4, #8]
|
|
sub r1, r1, #0x10
|
|
bl sub_0201F904
|
|
ldr r0, _0201A75C ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0xfc]
|
|
add r1, r1, #1
|
|
strh r1, [r0, #0xfc]
|
|
_0201A754:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A75C: .word 0x0380FFF4
|
|
arm_func_end sub_0201A714
|
|
|
|
arm_func_start sub_0201A760
|
|
sub_0201A760: ; 0x0201A760
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _0201A854 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x300
|
|
ldrh r1, [r0, #0x50]
|
|
add r0, r2, #0x2c
|
|
cmp r1, #1
|
|
add r4, r2, #0x344
|
|
add r5, r0, #0x400
|
|
beq _0201A798
|
|
cmp r1, #2
|
|
beq _0201A7CC
|
|
cmp r1, #3
|
|
b _0201A808
|
|
_0201A798:
|
|
add r0, r5, #0x78
|
|
bl sub_0201A658
|
|
cmp r0, #0
|
|
beq _0201A7B0
|
|
bl sub_0201A6D8
|
|
bl sub_020209F4
|
|
_0201A7B0:
|
|
add r0, r5, #0x28
|
|
bl sub_0201A658
|
|
cmp r0, #0
|
|
beq _0201A808
|
|
add r0, r5, #0x28
|
|
bl sub_0201A714
|
|
b _0201A808
|
|
_0201A7CC:
|
|
add r0, r5, #0x64
|
|
bl sub_0201A658
|
|
add r0, r5, #0x28
|
|
bl sub_0201A658
|
|
cmp r0, #0
|
|
beq _0201A808
|
|
ldrh r0, [r5, #0x28]
|
|
cmp r0, #0
|
|
beq _0201A7F4
|
|
bl sub_0201A6D8
|
|
_0201A7F4:
|
|
ldrh r0, [r4, #0x6a]
|
|
bl sub_02021740
|
|
ldrh r0, [r4, #0xb8]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0xb8]
|
|
_0201A808:
|
|
add r0, r5, #0x14
|
|
bl sub_0201A658
|
|
cmp r0, #0
|
|
beq _0201A820
|
|
add r0, r5, #0x14
|
|
bl sub_0201A714
|
|
_0201A820:
|
|
mov r0, r5
|
|
bl sub_0201A658
|
|
cmp r0, #0
|
|
beq _0201A838
|
|
mov r0, r5
|
|
bl sub_0201A714
|
|
_0201A838:
|
|
ldr r1, _0201A858 ; =0x04808004
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
streqh r0, [r1]
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A854: .word 0x0380FFF4
|
|
_0201A858: .word 0x04808004
|
|
arm_func_end sub_0201A760
|
|
|
|
arm_func_start sub_0201A85C
|
|
sub_0201A85C: ; 0x0201A85C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x1000000
|
|
bl sub_0302B118
|
|
ldr r1, _0201A89C ; =0x0380FFF4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
ldrh r2, [r1, #0xf4]
|
|
orr r2, r2, r4
|
|
strh r2, [r1, #0xf4]
|
|
bl sub_0302B0E0
|
|
mov r0, #2
|
|
mov r1, #0x15
|
|
bl sub_03027D88
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A89C: .word 0x0380FFF4
|
|
arm_func_end sub_0201A85C
|
|
|
|
arm_func_start sub_0201A8A0
|
|
sub_0201A8A0: ; 0x0201A8A0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _0201A918 ; =0x0380FFF4
|
|
ldr r1, [r0]
|
|
add r4, r1, #0x344
|
|
ldrh r0, [r4, #0xb0]
|
|
cmp r0, #0
|
|
beq _0201A910
|
|
add r0, r1, #0x188
|
|
mov r1, #0x12
|
|
bl sub_0302805C
|
|
movs r5, r0
|
|
beq _0201A910
|
|
ldr r1, _0201A91C ; =0x00000186
|
|
mov r0, #1
|
|
strh r1, [r5, #0xc]
|
|
strh r0, [r5, #0xe]
|
|
mov r0, #0x1000000
|
|
bl sub_0302B118
|
|
ldrh r2, [r4, #0xb0]
|
|
mov r1, #0
|
|
strh r2, [r5, #0x10]
|
|
strh r1, [r4, #0xb0]
|
|
bl sub_0302B0E0
|
|
ldr r0, _0201A918 ; =0x0380FFF4
|
|
mov r1, r5
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_03028548
|
|
_0201A910:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A918: .word 0x0380FFF4
|
|
_0201A91C: .word 0x00000186
|
|
arm_func_end sub_0201A8A0
|
|
|
|
arm_func_start sub_0201A920
|
|
sub_0201A920: ; 0x0201A920
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _0201A9B8 ; =0x0380FFF4
|
|
ldr r0, [r2]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x3e]
|
|
orr r1, r1, #0x8000
|
|
strh r1, [r0, #0x3e]
|
|
ldr r0, [r2]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0
|
|
beq _0201A98C
|
|
bl sub_03028988
|
|
ldr r2, _0201A9B8 ; =0x0380FFF4
|
|
ldr r0, [r2]
|
|
add r0, r0, #0x400
|
|
ldrh r1, [r0, #4]
|
|
cmp r1, #0
|
|
beq _0201A988
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
ldr r0, [r2]
|
|
mov r1, #6
|
|
ldr r0, [r0, #0x420]
|
|
strh r1, [r0, #4]
|
|
bl sub_0201D304
|
|
_0201A988:
|
|
bl sub_020194E4
|
|
_0201A98C:
|
|
ldr r4, _0201A9BC ; =0x0000FFFF
|
|
mov r5, #3
|
|
_0201A994:
|
|
mov r0, r5
|
|
bl sub_03027E40
|
|
cmp r0, r4
|
|
bne _0201A994
|
|
mov r0, #3
|
|
mov r1, #0x17
|
|
bl sub_03027D88
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201A9B8: .word 0x0380FFF4
|
|
_0201A9BC: .word 0x0000FFFF
|
|
arm_func_end sub_0201A920
|
|
|
|
arm_func_start sub_0201A9C0
|
|
sub_0201A9C0: ; 0x0201A9C0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0201AA0C ; =0x0380FFF4
|
|
ldr r4, [r0]
|
|
bl sub_0201B0D0
|
|
ldr r1, _0201AA0C ; =0x0380FFF4
|
|
add r0, r4, #0x188
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x318]
|
|
sub r1, r1, #0xc
|
|
bl sub_030280F8
|
|
ldr r1, _0201AA0C ; =0x0380FFF4
|
|
add r0, r4, #0x188
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x3e0]
|
|
sub r1, r1, #0xc
|
|
bl sub_030280F8
|
|
bl sub_0302B94C
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201AA0C: .word 0x0380FFF4
|
|
arm_func_end sub_0201A9C0
|
|
|
|
arm_func_start sub_0201AA10
|
|
sub_0201AA10: ; 0x0201AA10
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov ip, #0
|
|
ldr r0, _0201ABA4 ; =0x027F7554
|
|
ldr r6, _0201ABA8 ; =0x027F74E4
|
|
mov r3, ip
|
|
mov r1, ip
|
|
b _0201AA84
|
|
_0201AA2C:
|
|
mov r4, r3, lsl #1
|
|
ldrh r5, [r6, r4]
|
|
mov r2, r1
|
|
b _0201AA78
|
|
_0201AA3C:
|
|
mov lr, r2, lsl #2
|
|
add r4, r0, r2, lsl #2
|
|
ldrh lr, [r0, lr]
|
|
ldrh r4, [r4, #2]
|
|
add lr, lr, #0x4800000
|
|
and r4, r5, r4
|
|
add lr, lr, #0x8000
|
|
strh r4, [lr]
|
|
ldrh lr, [lr]
|
|
cmp lr, r4
|
|
beq _0201AA74
|
|
cmp ip, #0x20
|
|
add ip, ip, #1
|
|
bhi _0201AB7C
|
|
_0201AA74:
|
|
add r2, r2, #1
|
|
_0201AA78:
|
|
cmp r2, #0x1b
|
|
blo _0201AA3C
|
|
add r3, r3, #1
|
|
_0201AA84:
|
|
cmp r3, #3
|
|
blo _0201AA2C
|
|
ldr r4, _0201ABAC ; =0x00001234
|
|
ldr r3, _0201ABA4 ; =0x027F7554
|
|
mov r5, #0
|
|
_0201AA98:
|
|
mov r0, r5, lsl #2
|
|
add r1, r3, r5, lsl #2
|
|
ldrh r0, [r3, r0]
|
|
ldrh r2, [r1, #2]
|
|
add r1, r4, #0x234
|
|
add r0, r0, #0x4800000
|
|
add r1, r1, #0x1000
|
|
add r5, r5, #1
|
|
and r2, r4, r2
|
|
add r0, r0, #0x8000
|
|
mov r1, r1, lsl #0x10
|
|
strh r2, [r0]
|
|
cmp r5, #0x1b
|
|
mov r4, r1, lsr #0x10
|
|
blo _0201AA98
|
|
ldr r5, _0201ABAC ; =0x00001234
|
|
ldr r3, _0201ABA4 ; =0x027F7554
|
|
mov r4, #0
|
|
b _0201AB2C
|
|
_0201AAE4:
|
|
mov r0, r4, lsl #2
|
|
ldrh r0, [r3, r0]
|
|
add r1, r3, r4, lsl #2
|
|
add r0, r0, #0x4800000
|
|
add r0, r0, #0x8000
|
|
ldrh r1, [r1, #2]
|
|
ldrh r2, [r0]
|
|
and r0, r5, r1
|
|
cmp r2, r0
|
|
beq _0201AB18
|
|
cmp ip, #0x20
|
|
add ip, ip, #1
|
|
bhi _0201AB7C
|
|
_0201AB18:
|
|
add r0, r5, #0x234
|
|
add r0, r0, #0x1000
|
|
mov r0, r0, lsl #0x10
|
|
mov r5, r0, lsr #0x10
|
|
add r4, r4, #1
|
|
_0201AB2C:
|
|
cmp r4, #0x1b
|
|
blo _0201AAE4
|
|
mov r3, #0
|
|
ldr r2, _0201ABA4 ; =0x027F7554
|
|
mov r1, r3
|
|
b _0201AB74
|
|
_0201AB44:
|
|
mov r0, r3, lsl #2
|
|
ldrh r0, [r2, r0]
|
|
add r0, r0, #0x4800000
|
|
add r0, r0, #0x8000
|
|
strh r1, [r0]
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _0201AB70
|
|
cmp ip, #0x20
|
|
add ip, ip, #1
|
|
bhi _0201AB7C
|
|
_0201AB70:
|
|
add r3, r3, #1
|
|
_0201AB74:
|
|
cmp r3, #0x1b
|
|
blo _0201AB44
|
|
_0201AB7C:
|
|
cmp ip, #0
|
|
beq _0201AB9C
|
|
ldr r0, _0201ABB0 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x3e]
|
|
orr r1, r1, #1
|
|
strh r1, [r0, #0x3e]
|
|
_0201AB9C:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201ABA4: .word 0x027F7554
|
|
_0201ABA8: .word 0x027F74E4
|
|
_0201ABAC: .word 0x00001234
|
|
_0201ABB0: .word 0x0380FFF4
|
|
arm_func_end sub_0201AA10
|
|
|
|
arm_func_start sub_0201ABB4
|
|
sub_0201ABB4: ; 0x0201ABB4
|
|
stmdb sp!, {r3, lr}
|
|
ldr lr, _0201AD2C ; =0x04804000
|
|
mov r0, #0
|
|
ldr r3, _0201AD30 ; =0x0000FFFF
|
|
mov r2, r0
|
|
_0201ABC8:
|
|
sub r1, r3, #1
|
|
mov ip, r3
|
|
mov r1, r1, lsl #0x10
|
|
add r2, r2, #2
|
|
cmp r2, #0x2000
|
|
mov r3, r1, lsr #0x10
|
|
strh ip, [lr], #2
|
|
blo _0201ABC8
|
|
ldr r2, _0201AD2C ; =0x04804000
|
|
ldr r3, _0201AD30 ; =0x0000FFFF
|
|
mov ip, #0
|
|
b _0201AC24
|
|
_0201ABF8:
|
|
ldrh r1, [r2]
|
|
cmp r1, r3
|
|
beq _0201AC10
|
|
cmp r0, #0x20
|
|
add r0, r0, #1
|
|
bhi _0201AD04
|
|
_0201AC10:
|
|
sub r1, r3, #1
|
|
mov r1, r1, lsl #0x10
|
|
add ip, ip, #2
|
|
add r2, r2, #2
|
|
mov r3, r1, lsr #0x10
|
|
_0201AC24:
|
|
cmp ip, #0x2000
|
|
blo _0201ABF8
|
|
ldr r2, _0201AD2C ; =0x04804000
|
|
ldr r3, _0201AD34 ; =0x00005A5A
|
|
mov ip, #0
|
|
_0201AC38:
|
|
mvn r1, r3
|
|
add ip, ip, #2
|
|
mov r1, r1, lsl #0x10
|
|
strh r3, [r2], #2
|
|
cmp ip, #0x2000
|
|
mov r3, r1, lsr #0x10
|
|
blo _0201AC38
|
|
ldr r2, _0201AD2C ; =0x04804000
|
|
ldr r3, _0201AD34 ; =0x00005A5A
|
|
mov ip, #0
|
|
b _0201AC90
|
|
_0201AC64:
|
|
ldrh r1, [r2]
|
|
cmp r1, r3
|
|
beq _0201AC7C
|
|
cmp r0, #0x20
|
|
add r0, r0, #1
|
|
bhi _0201AD04
|
|
_0201AC7C:
|
|
mvn r1, r3
|
|
mov r1, r1, lsl #0x10
|
|
add ip, ip, #2
|
|
add r2, r2, #2
|
|
mov r3, r1, lsr #0x10
|
|
_0201AC90:
|
|
cmp ip, #0x2000
|
|
blo _0201AC64
|
|
ldr r2, _0201AD2C ; =0x04804000
|
|
ldr r3, _0201AD38 ; =0x0000A5A5
|
|
mov ip, #0
|
|
_0201ACA4:
|
|
mvn r1, r3
|
|
add ip, ip, #2
|
|
mov r1, r1, lsl #0x10
|
|
strh r3, [r2], #2
|
|
cmp ip, #0x2000
|
|
mov r3, r1, lsr #0x10
|
|
blo _0201ACA4
|
|
ldr r2, _0201AD2C ; =0x04804000
|
|
ldr r3, _0201AD38 ; =0x0000A5A5
|
|
mov ip, #0
|
|
b _0201ACFC
|
|
_0201ACD0:
|
|
ldrh r1, [r2]
|
|
cmp r1, r3
|
|
beq _0201ACE8
|
|
cmp r0, #0x20
|
|
add r0, r0, #1
|
|
bhi _0201AD04
|
|
_0201ACE8:
|
|
mvn r1, r3
|
|
mov r1, r1, lsl #0x10
|
|
add ip, ip, #2
|
|
add r2, r2, #2
|
|
mov r3, r1, lsr #0x10
|
|
_0201ACFC:
|
|
cmp ip, #0x2000
|
|
blo _0201ACD0
|
|
_0201AD04:
|
|
cmp r0, #0
|
|
beq _0201AD24
|
|
ldr r0, _0201AD3C ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x3e]
|
|
orr r1, r1, #2
|
|
strh r1, [r0, #0x3e]
|
|
_0201AD24:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201AD2C: .word 0x04804000
|
|
_0201AD30: .word 0x0000FFFF
|
|
_0201AD34: .word 0x00005A5A
|
|
_0201AD38: .word 0x0000A5A5
|
|
_0201AD3C: .word 0x0380FFF4
|
|
arm_func_end sub_0201ABB4
|
|
|
|
arm_func_start sub_0201AD40
|
|
sub_0201AD40: ; 0x0201AD40
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r0, _0201B014 ; =0x0380FFF4
|
|
mov r7, #0
|
|
ldr r0, [r0]
|
|
mov r6, #0
|
|
add r0, r0, #0x500
|
|
ldrh r0, [r0, #0xf8]
|
|
mov r5, #0xff
|
|
cmp r0, #5
|
|
ldreq sl, _0201B018 ; =0x027F74EA
|
|
mvn r4, #0
|
|
ldrne sl, _0201B01C ; =0x027F751C
|
|
b _0201AD90
|
|
_0201AD74:
|
|
mov r0, r6
|
|
mov r1, r5
|
|
bl sub_02019DE0
|
|
cmp r0, r4
|
|
moveq r7, #1
|
|
beq _0201AFEC
|
|
add r6, r6, #1
|
|
_0201AD90:
|
|
cmp r6, #0x69
|
|
blo _0201AD74
|
|
mov r5, #0
|
|
mov r4, r5
|
|
b _0201ADE0
|
|
_0201ADA4:
|
|
mov r0, r4, lsl #1
|
|
ldrh r0, [sl, r0]
|
|
cmp r5, r0
|
|
addeq r4, r4, #1
|
|
beq _0201ADDC
|
|
mov r0, r5
|
|
bl sub_02019DB4
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #0xff
|
|
beq _0201ADDC
|
|
cmp r7, #0x20
|
|
add r7, r7, #1
|
|
bhi _0201AFEC
|
|
_0201ADDC:
|
|
add r5, r5, #1
|
|
_0201ADE0:
|
|
cmp r5, #0x69
|
|
blo _0201ADA4
|
|
mov r5, #0
|
|
mov r4, r5
|
|
_0201ADF0:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_02019DE0
|
|
add r5, r5, #1
|
|
cmp r5, #0x69
|
|
blo _0201ADF0
|
|
mov r4, #0
|
|
mov r5, r4
|
|
b _0201AE4C
|
|
_0201AE14:
|
|
mov r0, r5, lsl #1
|
|
ldrh r0, [sl, r0]
|
|
cmp r4, r0
|
|
addeq r5, r5, #1
|
|
beq _0201AE48
|
|
mov r0, r4
|
|
bl sub_02019DB4
|
|
mov r0, r0, lsl #0x10
|
|
movs r0, r0, lsr #0x10
|
|
beq _0201AE48
|
|
cmp r7, #0x20
|
|
add r7, r7, #1
|
|
bhi _0201AFEC
|
|
_0201AE48:
|
|
add r4, r4, #1
|
|
_0201AE4C:
|
|
cmp r4, #0x69
|
|
blo _0201AE14
|
|
mov r4, #0x55
|
|
mov r5, #0
|
|
_0201AE5C:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_02019DE0
|
|
mvn r0, r4
|
|
add r5, r5, #1
|
|
mov r0, r0, lsl #0x10
|
|
cmp r5, #0x69
|
|
mov r4, r0, lsr #0x10
|
|
blo _0201AE5C
|
|
mov r4, #0
|
|
mov r6, r4
|
|
mov r5, #0x55
|
|
b _0201AED4
|
|
_0201AE90:
|
|
mov r0, r6, lsl #1
|
|
ldrh r0, [sl, r0]
|
|
cmp r4, r0
|
|
addeq r6, r6, #1
|
|
beq _0201AEC8
|
|
mov r0, r4
|
|
bl sub_02019DB4
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, r5
|
|
beq _0201AEC8
|
|
cmp r7, #0x20
|
|
add r7, r7, #1
|
|
bhi _0201AFEC
|
|
_0201AEC8:
|
|
mvn r0, r5
|
|
and r5, r0, #0xff
|
|
add r4, r4, #1
|
|
_0201AED4:
|
|
cmp r4, #0x69
|
|
blo _0201AE90
|
|
mov r5, #0xff
|
|
mov r4, #0
|
|
_0201AEE4:
|
|
mov r0, r4
|
|
mov r1, r5
|
|
bl sub_02019DE0
|
|
sub r0, r5, #1
|
|
add r4, r4, #1
|
|
mov r0, r0, lsl #0x10
|
|
cmp r4, #0x69
|
|
mov r5, r0, lsr #0x10
|
|
blo _0201AEE4
|
|
mov r4, #0
|
|
mov r6, r4
|
|
mov r5, #0xff
|
|
b _0201AF60
|
|
_0201AF18:
|
|
mov r0, r6, lsl #1
|
|
ldrh r0, [sl, r0]
|
|
cmp r4, r0
|
|
addeq r6, r6, #1
|
|
beq _0201AF50
|
|
mov r0, r4
|
|
bl sub_02019DB4
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, r5
|
|
beq _0201AF50
|
|
cmp r7, #0x20
|
|
add r7, r7, #1
|
|
bhi _0201AFEC
|
|
_0201AF50:
|
|
sub r0, r5, #1
|
|
mov r0, r0, lsl #0x10
|
|
add r4, r4, #1
|
|
mov r5, r0, lsr #0x10
|
|
_0201AF60:
|
|
cmp r4, #0x69
|
|
blo _0201AF18
|
|
mov r8, #0
|
|
mov sb, r8
|
|
mov r4, #1
|
|
mov fp, r8
|
|
b _0201AFE4
|
|
_0201AF7C:
|
|
mov r0, sb, lsl #1
|
|
ldrh r0, [sl, r0]
|
|
cmp r8, r0
|
|
addeq sb, sb, #1
|
|
beq _0201AFE0
|
|
mov r6, r4
|
|
mov r5, fp
|
|
b _0201AFD8
|
|
_0201AF9C:
|
|
mov r0, r8
|
|
mov r1, r6
|
|
bl sub_02019DE0
|
|
mov r0, r8
|
|
bl sub_02019DB4
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, r6
|
|
beq _0201AFCC
|
|
cmp r7, #0x20
|
|
add r7, r7, #1
|
|
bhi _0201AFEC
|
|
_0201AFCC:
|
|
mov r0, r6, lsl #1
|
|
and r6, r0, #0xff
|
|
add r5, r5, #1
|
|
_0201AFD8:
|
|
cmp r5, #9
|
|
blo _0201AF9C
|
|
_0201AFE0:
|
|
add r8, r8, #1
|
|
_0201AFE4:
|
|
cmp r8, #0x69
|
|
blo _0201AF7C
|
|
_0201AFEC:
|
|
cmp r7, #0
|
|
beq _0201B00C
|
|
ldr r0, _0201B014 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x3e]
|
|
orr r1, r1, #8
|
|
strh r1, [r0, #0x3e]
|
|
_0201B00C:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B014: .word 0x0380FFF4
|
|
_0201B018: .word 0x027F74EA
|
|
_0201B01C: .word 0x027F751C
|
|
arm_func_end sub_0201AD40
|
|
|
|
arm_func_start sub_0201B020
|
|
sub_0201B020: ; 0x0201B020
|
|
ldr r0, _0201B030 ; =0x04808010
|
|
mov r1, #0x800
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B030: .word 0x04808010
|
|
arm_func_end sub_0201B020
|
|
|
|
arm_func_start sub_0201B034
|
|
sub_0201B034: ; 0x0201B034
|
|
stmdb sp!, {r4, lr}
|
|
ldrh r1, [r0]
|
|
mov r4, #0
|
|
cmp r1, #2
|
|
bne _0201B074
|
|
ldr r2, _0201B0A4 ; =0x04808094
|
|
ldr r3, [r0, #8]
|
|
ldr r1, _0201B0A8 ; =0x00003FFF
|
|
ldrh r2, [r2]
|
|
and r1, r3, r1
|
|
mov r1, r1, lsr #1
|
|
orr r1, r1, #0x8000
|
|
cmp r1, r2
|
|
movne r1, #1
|
|
strneh r1, [r0]
|
|
orrne r4, r4, #1
|
|
_0201B074:
|
|
ldrh r1, [r0]
|
|
cmp r1, #1
|
|
bne _0201B098
|
|
ldr r1, [r0, #8]
|
|
ldrh r1, [r1]
|
|
tst r1, #1
|
|
beq _0201B098
|
|
bl sub_020202A8
|
|
orr r4, r4, #2
|
|
_0201B098:
|
|
mov r0, r4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B0A4: .word 0x04808094
|
|
_0201B0A8: .word 0x00003FFF
|
|
arm_func_end sub_0201B034
|
|
|
|
arm_func_start sub_0201B0AC
|
|
sub_0201B0AC: ; 0x0201B0AC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _0201B0CC ; =0x037F92DC
|
|
mov r0, #0x1000000
|
|
bl sub_0302AFAC
|
|
mov r0, #0x1000000
|
|
bl sub_0302B0E0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B0CC: .word 0x037F92DC
|
|
arm_func_end sub_0201B0AC
|
|
|
|
arm_func_start sub_0201B0D0
|
|
sub_0201B0D0: ; 0x0201B0D0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x1000000
|
|
bl sub_0302B118
|
|
mov r0, #0x1000000
|
|
mov r1, #0
|
|
bl sub_0302AFAC
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_0201B0D0
|
|
|
|
arm_func_start sub_0201B0F0
|
|
sub_0201B0F0: ; 0x0201B0F0
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
mov r8, r0
|
|
ldrh r0, [r8]
|
|
tst r0, #1
|
|
movne r0, #0
|
|
bne _0201B18C
|
|
ldr r4, _0201B194 ; =0x0380FFF4
|
|
ldr r0, [r4]
|
|
add r1, r0, #0x500
|
|
ldrh r1, [r1, #0x2c]
|
|
cmp r1, #1
|
|
bls _0201B188
|
|
ldr r1, [r0, #0x31c]
|
|
mov r7, #0
|
|
add r5, r1, #0x1c
|
|
mov r6, #1
|
|
b _0201B178
|
|
_0201B134:
|
|
ldrh r1, [r5]
|
|
cmp r1, #0
|
|
beq _0201B170
|
|
mov r1, r8
|
|
add r0, r5, #4
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
movne r0, r6
|
|
bne _0201B18C
|
|
ldr r0, [r4]
|
|
add r7, r7, #1
|
|
add r1, r0, #0x500
|
|
ldrh r1, [r1, #0x2c]
|
|
cmp r7, r1
|
|
bhs _0201B188
|
|
_0201B170:
|
|
add r6, r6, #1
|
|
add r5, r5, #0x1c
|
|
_0201B178:
|
|
add r1, r0, #0x300
|
|
ldrh r1, [r1, #0x22]
|
|
cmp r6, r1
|
|
blo _0201B134
|
|
_0201B188:
|
|
mov r0, #0xff
|
|
_0201B18C:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B194: .word 0x0380FFF4
|
|
arm_func_end sub_0201B0F0
|
|
|
|
arm_func_start sub_0201B198
|
|
sub_0201B198: ; 0x0201B198
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r5, _0201B2D4 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r5]
|
|
ldrh r1, [r4]
|
|
add r6, r0, #0x31c
|
|
tst r1, #1
|
|
movne r0, #0
|
|
bne _0201B2CC
|
|
add r1, r0, #0x500
|
|
ldrh r1, [r1, #0x2c]
|
|
mov r8, #1
|
|
cmp r1, #1
|
|
bls _0201B248
|
|
ldr r1, [r6]
|
|
mov sl, #0
|
|
mov sb, sl
|
|
add r7, r1, #0x1c
|
|
b _0201B234
|
|
_0201B1E4:
|
|
ldrh r1, [r7]
|
|
cmp r1, #0
|
|
beq _0201B224
|
|
mov r1, r4
|
|
add r0, r7, #4
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
movne r0, r8
|
|
bne _0201B2CC
|
|
ldr r0, [r5]
|
|
add sb, sb, #1
|
|
add r1, r0, #0x500
|
|
ldrh r1, [r1, #0x2c]
|
|
cmp sb, r1
|
|
bhs _0201B240
|
|
b _0201B22C
|
|
_0201B224:
|
|
cmp sl, #0
|
|
moveq sl, r8
|
|
_0201B22C:
|
|
add r8, r8, #1
|
|
add r7, r7, #0x1c
|
|
_0201B234:
|
|
ldrh r1, [r6, #6]
|
|
cmp r8, r1
|
|
blo _0201B1E4
|
|
_0201B240:
|
|
cmp sl, #0
|
|
movne r8, sl
|
|
_0201B248:
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x22]
|
|
cmp r8, r0
|
|
blo _0201B2BC
|
|
ldr r7, [r6]
|
|
ldrh r5, [r6, #6]
|
|
mov r3, #0x10000
|
|
mov r6, #1
|
|
mov r8, #0
|
|
mov r0, #0x1c
|
|
b _0201B2A8
|
|
_0201B274:
|
|
mul r2, r6, r0
|
|
ldrh r1, [r7, r2]
|
|
add r2, r7, r2
|
|
cmp r1, #0x30
|
|
bhs _0201B2A4
|
|
ldrh r1, [r2, #0x16]
|
|
cmp r1, #0
|
|
bne _0201B2A4
|
|
ldrh r1, [r2, #0x18]
|
|
cmp r3, r1
|
|
movhi r3, r1
|
|
movhi r8, r6
|
|
_0201B2A4:
|
|
add r6, r6, #1
|
|
_0201B2A8:
|
|
cmp r6, r5
|
|
blo _0201B274
|
|
cmp r8, #0
|
|
moveq r0, #0xff
|
|
beq _0201B2CC
|
|
_0201B2BC:
|
|
mov r0, r8
|
|
mov r1, r4
|
|
bl sub_0201BD88
|
|
mov r0, r8
|
|
_0201B2CC:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B2D4: .word 0x0380FFF4
|
|
arm_func_end sub_0201B198
|
|
|
|
arm_func_start sub_0201B2D8
|
|
sub_0201B2D8: ; 0x0201B2D8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r2, _0201B330 ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r2, [r2]
|
|
mov r0, #0x1000000
|
|
add r4, r2, #0x1ac
|
|
mov r6, r1
|
|
bl sub_0302B118
|
|
ldrh r1, [r4, #8]
|
|
mov r5, r0
|
|
cmp r1, #0
|
|
bne _0201B310
|
|
mov r0, #0
|
|
bl sub_0201B8FC
|
|
_0201B310:
|
|
mov r0, r7
|
|
mov r1, r4
|
|
mov r2, r6
|
|
bl sub_03028178
|
|
mov r0, r5
|
|
bl sub_0302B0E0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B330: .word 0x0380FFF4
|
|
arm_func_end sub_0201B2D8
|
|
|
|
arm_func_start sub_0201B334
|
|
sub_0201B334: ; 0x0201B334
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _0201B3C0 ; =0x0380FFF4
|
|
ldrh r5, [r0, #2]
|
|
ldr r0, [r1]
|
|
mov r1, #0x1c
|
|
ldr r2, [r0, #0x31c]
|
|
mov r0, #0x1000000
|
|
mla r6, r5, r1, r2
|
|
bl sub_0302B118
|
|
ldr r1, _0201B3C0 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #1
|
|
ldreqh r0, [r6, #0x16]
|
|
cmpeq r0, #0
|
|
bne _0201B384
|
|
mov r0, r5
|
|
bl sub_0201B8FC
|
|
_0201B384:
|
|
ldrh r1, [r6, #0x16]
|
|
mov r0, r4
|
|
add r1, r1, #1
|
|
strh r1, [r6, #0x16]
|
|
bl sub_0302B0E0
|
|
ldr r0, _0201B3C0 ; =0x0380FFF4
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x500
|
|
ldrh r0, [r0, #0x34]
|
|
tst r0, r1, lsl r5
|
|
ldreqh r0, [r6, #0x1a]
|
|
streqh r0, [r6, #0x18]
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B3C0: .word 0x0380FFF4
|
|
arm_func_end sub_0201B334
|
|
|
|
arm_func_start sub_0201B3C4
|
|
sub_0201B3C4: ; 0x0201B3C4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _0201B430 ; =0x0380FFF4
|
|
ldrh r5, [r0, #2]
|
|
ldr r0, [r1]
|
|
mov r1, #0x1c
|
|
ldr r2, [r0, #0x31c]
|
|
mov r0, #0x1000000
|
|
mla r6, r5, r1, r2
|
|
bl sub_0302B118
|
|
ldr r1, _0201B430 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #1
|
|
ldreqh r0, [r6, #0x16]
|
|
cmpeq r0, #1
|
|
bne _0201B414
|
|
mov r0, r5
|
|
bl sub_0201B9B8
|
|
_0201B414:
|
|
ldrh r1, [r6, #0x16]
|
|
mov r0, r4
|
|
sub r1, r1, #1
|
|
strh r1, [r6, #0x16]
|
|
bl sub_0302B0E0
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B430: .word 0x0380FFF4
|
|
arm_func_end sub_0201B3C4
|
|
|
|
arm_func_start sub_0201B434
|
|
sub_0201B434: ; 0x0201B434
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r0, #0x1000000
|
|
mov r5, r1
|
|
bl sub_0302B118
|
|
ldr r3, _0201B518 ; =0x0380FFF4
|
|
mov r4, r0
|
|
cmp r5, #0x40
|
|
bhs _0201B4B4
|
|
ldr r0, [r3]
|
|
mov r2, #1
|
|
add r0, r0, #0x500
|
|
ldrh r1, [r0, #0x30]
|
|
orr r1, r1, r2, lsl r6
|
|
strh r1, [r0, #0x30]
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x500
|
|
ldrh r1, [r0, #0x32]
|
|
orr r1, r1, r2, lsl r6
|
|
strh r1, [r0, #0x32]
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #1
|
|
bne _0201B4F0
|
|
mov r0, r6
|
|
bl sub_0201B8BC
|
|
cmp r0, #0
|
|
beq _0201B4F0
|
|
mov r0, r6
|
|
bl sub_0201B750
|
|
b _0201B4F0
|
|
_0201B4B4:
|
|
ldr r2, [r3]
|
|
mov r0, #1
|
|
mvn r1, r0, lsl r6
|
|
add r0, r2, #0x500
|
|
ldrh r2, [r0, #0x32]
|
|
and r1, r2, r1
|
|
strh r1, [r0, #0x32]
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x500
|
|
ldrh r0, [r0, #0x2e]
|
|
mov r0, r0, asr r6
|
|
tst r0, #1
|
|
beq _0201B4F0
|
|
mov r0, r6
|
|
bl sub_0201B598
|
|
_0201B4F0:
|
|
ldr r1, _0201B518 ; =0x0380FFF4
|
|
mov r0, #0x1c
|
|
ldr r2, [r1]
|
|
mul r1, r6, r0
|
|
ldr r2, [r2, #0x31c]
|
|
mov r0, r4
|
|
strh r5, [r2, r1]
|
|
bl sub_0302B0E0
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B518: .word 0x0380FFF4
|
|
arm_func_end sub_0201B434
|
|
|
|
arm_func_start sub_0201B51C
|
|
sub_0201B51C: ; 0x0201B51C
|
|
ldr r3, _0201B538 ; =0x0380FFF4
|
|
mov r2, #0x1c
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #0x31c]
|
|
mla r2, r0, r2, r3
|
|
strh r1, [r2, #0xa]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B538: .word 0x0380FFF4
|
|
arm_func_end sub_0201B51C
|
|
|
|
arm_func_start sub_0201B53C
|
|
sub_0201B53C: ; 0x0201B53C
|
|
ldr r3, _0201B58C ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr ip, [r3]
|
|
mvn r3, r2, lsl r0
|
|
add r2, ip, #0x12c
|
|
add ip, r2, #0x400
|
|
ldrh r2, [ip, #2]
|
|
and r2, r2, r3
|
|
orr r0, r2, r1, lsl r0
|
|
strh r0, [ip, #2]
|
|
ldrh r0, [ip, #6]
|
|
ldrh r1, [ip, #2]
|
|
mvn r0, r0
|
|
tst r1, r0
|
|
ldrne r0, _0201B590 ; =0x048080AC
|
|
mov r1, #8
|
|
strneh r1, [r0]
|
|
ldreq r0, _0201B594 ; =0x048080AE
|
|
streqh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B58C: .word 0x0380FFF4
|
|
_0201B590: .word 0x048080AC
|
|
_0201B594: .word 0x048080AE
|
|
arm_func_end sub_0201B53C
|
|
|
|
arm_func_start sub_0201B598
|
|
sub_0201B598: ; 0x0201B598
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x40
|
|
bne _0201B5CC
|
|
ldr r1, _0201B5D4 ; =0x0380FFF4
|
|
mov r0, #1
|
|
ldr r2, [r1]
|
|
mvn r1, r0, lsl r4
|
|
add r0, r2, #0x500
|
|
ldrh r2, [r0, #0x30]
|
|
and r1, r2, r1
|
|
strh r1, [r0, #0x30]
|
|
_0201B5CC:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B5D4: .word 0x0380FFF4
|
|
arm_func_end sub_0201B598
|
|
|
|
arm_func_start sub_0201B5D8
|
|
sub_0201B5D8: ; 0x0201B5D8
|
|
ldr r1, _0201B5F8 ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x500
|
|
ldrh r3, [r1, #0x30]
|
|
orr r0, r3, r2, lsl r0
|
|
strh r0, [r1, #0x30]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B5F8: .word 0x0380FFF4
|
|
arm_func_end sub_0201B5D8
|
|
|
|
arm_func_start sub_0201B5FC
|
|
sub_0201B5FC: ; 0x0201B5FC
|
|
ldr r3, _0201B618 ; =0x0380FFF4
|
|
mov r2, #0x1c
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #0x31c]
|
|
mla r2, r0, r2, r3
|
|
strh r1, [r2, #0xc]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B618: .word 0x0380FFF4
|
|
arm_func_end sub_0201B5FC
|
|
|
|
arm_func_start sub_0201B61C
|
|
sub_0201B61C: ; 0x0201B61C
|
|
ldr r3, _0201B638 ; =0x0380FFF4
|
|
mov r2, #0x1c
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #0x31c]
|
|
mla r2, r0, r2, r3
|
|
strh r1, [r2, #0x10]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B638: .word 0x0380FFF4
|
|
arm_func_end sub_0201B61C
|
|
|
|
arm_func_start sub_0201B63C
|
|
sub_0201B63C: ; 0x0201B63C
|
|
ldr r3, _0201B658 ; =0x0380FFF4
|
|
mov r2, #0x1c
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #0x31c]
|
|
mla r2, r0, r2, r3
|
|
strh r1, [r2, #0x14]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B658: .word 0x0380FFF4
|
|
arm_func_end sub_0201B63C
|
|
|
|
arm_func_start sub_0201B65C
|
|
sub_0201B65C: ; 0x0201B65C
|
|
ldr r3, _0201B678 ; =0x0380FFF4
|
|
mov r2, #0x1c
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #0x31c]
|
|
mla r2, r0, r2, r3
|
|
strh r1, [r2, #0xe]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B678: .word 0x0380FFF4
|
|
arm_func_end sub_0201B65C
|
|
|
|
arm_func_start sub_0201B67C
|
|
sub_0201B67C: ; 0x0201B67C
|
|
ldr r2, _0201B69C ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r0, r1, r2
|
|
ldrh r0, [r1, #0x1a]
|
|
strh r0, [r1, #0x18]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B69C: .word 0x0380FFF4
|
|
arm_func_end sub_0201B67C
|
|
|
|
arm_func_start sub_0201B6A0
|
|
sub_0201B6A0: ; 0x0201B6A0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _0201B74C ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r1, [r1]
|
|
mov r0, #0x1000000
|
|
add r1, r1, #0x12c
|
|
add r4, r1, #0x400
|
|
bl sub_0302B118
|
|
mov r6, r0
|
|
mov r5, #1
|
|
mov r1, #2
|
|
b _0201B730
|
|
_0201B6D0:
|
|
ldrh r0, [r4, #0xe]
|
|
tst r0, r1
|
|
bne _0201B728
|
|
orr r0, r0, r1
|
|
strh r0, [r4, #0xe]
|
|
ldrh r0, [r4, #0xc]
|
|
add r0, r0, #1
|
|
strh r0, [r4, #0xc]
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
bne _0201B700
|
|
bl sub_020196D0
|
|
_0201B700:
|
|
ldr r0, _0201B74C ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r0]
|
|
mov r0, r6
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r7, r1, r2
|
|
strh r5, [r1, #2]
|
|
bl sub_0302B0E0
|
|
mov r0, r5
|
|
b _0201B744
|
|
_0201B728:
|
|
add r5, r5, #1
|
|
mov r1, r1, lsl #1
|
|
_0201B730:
|
|
cmp r5, #0x10
|
|
blo _0201B6D0
|
|
mov r0, r6
|
|
bl sub_0302B0E0
|
|
mov r0, #0
|
|
_0201B744:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B74C: .word 0x0380FFF4
|
|
arm_func_end sub_0201B6A0
|
|
|
|
arm_func_start sub_0201B750
|
|
sub_0201B750: ; 0x0201B750
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _0201B7CC ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r4, [r1]
|
|
bl sub_0201B9B8
|
|
mov r0, r5
|
|
bl sub_0201B8BC
|
|
cmp r0, #0
|
|
beq _0201B7C4
|
|
ldr r1, _0201B7CC ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr r3, [r1]
|
|
mov r1, #0x1c
|
|
ldr r3, [r3, #0x31c]
|
|
mov ip, #0
|
|
mla r1, r5, r1, r3
|
|
strh ip, [r1, #2]
|
|
add r1, r4, #0x500
|
|
ldrh r3, [r1, #0x3a]
|
|
mvn r0, r2, lsl r0
|
|
and r0, r3, r0
|
|
strh r0, [r1, #0x3a]
|
|
ldrh r0, [r1, #0x38]
|
|
sub r0, r0, #1
|
|
strh r0, [r1, #0x38]
|
|
ldrh r0, [r1, #0x38]
|
|
cmp r0, #0
|
|
bne _0201B7C4
|
|
bl sub_02019684
|
|
_0201B7C4:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B7CC: .word 0x0380FFF4
|
|
arm_func_end sub_0201B750
|
|
|
|
arm_func_start sub_0201B7D0
|
|
sub_0201B7D0: ; 0x0201B7D0
|
|
ldr r2, _0201B7EC ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
mul r1, r0, r1
|
|
ldr r0, [r2, #0x31c]
|
|
ldrh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B7EC: .word 0x0380FFF4
|
|
arm_func_end sub_0201B7D0
|
|
|
|
arm_func_start sub_0201B7F0
|
|
sub_0201B7F0: ; 0x0201B7F0
|
|
ldr r1, _0201B80C ; =0x0380FFF4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x500
|
|
ldrh r1, [r1, #0x30]
|
|
mov r0, r1, asr r0
|
|
and r0, r0, #1
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B80C: .word 0x0380FFF4
|
|
arm_func_end sub_0201B7F0
|
|
|
|
arm_func_start sub_0201B810
|
|
sub_0201B810: ; 0x0201B810
|
|
ldr r1, _0201B82C ; =0x0380FFF4
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x500
|
|
ldrh r1, [r1, #0x2e]
|
|
mov r0, r1, asr r0
|
|
and r0, r0, #1
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B82C: .word 0x0380FFF4
|
|
arm_func_end sub_0201B810
|
|
|
|
arm_func_start sub_0201B830
|
|
sub_0201B830: ; 0x0201B830
|
|
ldr r2, _0201B84C ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r0, r1, r2
|
|
add r0, r1, #4
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B84C: .word 0x0380FFF4
|
|
arm_func_end sub_0201B830
|
|
|
|
arm_func_start sub_0201B850
|
|
sub_0201B850: ; 0x0201B850
|
|
ldr r2, _0201B86C ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r0, r1, r2
|
|
ldrh r0, [r1, #0xe]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B86C: .word 0x0380FFF4
|
|
arm_func_end sub_0201B850
|
|
|
|
arm_func_start sub_0201B870
|
|
sub_0201B870: ; 0x0201B870
|
|
ldr r2, _0201B88C ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r0, r1, r2
|
|
ldrh r0, [r1, #0x14]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B88C: .word 0x0380FFF4
|
|
arm_func_end sub_0201B870
|
|
|
|
arm_func_start sub_0201B890
|
|
sub_0201B890: ; 0x0201B890
|
|
ldr r2, _0201B8B8 ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r0, r1, r2
|
|
ldrh r0, [r1, #0x10]
|
|
tst r0, #2
|
|
movne r0, #0x14
|
|
moveq r0, #0xa
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B8B8: .word 0x0380FFF4
|
|
arm_func_end sub_0201B890
|
|
|
|
arm_func_start sub_0201B8BC
|
|
sub_0201B8BC: ; 0x0201B8BC
|
|
ldr r2, _0201B8D8 ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r0, r1, r2
|
|
ldrh r0, [r1, #2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B8D8: .word 0x0380FFF4
|
|
arm_func_end sub_0201B8BC
|
|
|
|
arm_func_start sub_0201B8DC
|
|
sub_0201B8DC: ; 0x0201B8DC
|
|
ldr r2, _0201B8F8 ; =0x0380FFF4
|
|
mov r1, #0x1c
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x31c]
|
|
mla r1, r0, r1, r2
|
|
ldrh r0, [r1, #0x16]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B8F8: .word 0x0380FFF4
|
|
arm_func_end sub_0201B8DC
|
|
|
|
arm_func_start sub_0201B8FC
|
|
sub_0201B8FC: ; 0x0201B8FC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r0
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x40
|
|
bne _0201B9A8
|
|
ldr r0, _0201B9B0 ; =0x0380FFF4
|
|
mov r1, #1
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x500
|
|
ldrh r0, [r0, #0x34]
|
|
tst r0, r1, lsl r5
|
|
bne _0201B9A8
|
|
add r0, r2, #0x300
|
|
ldrh r2, [r0, #0xd8]
|
|
ldr r1, _0201B9B4 ; =0x0480425C
|
|
mov r0, #0x1000000
|
|
add r6, r2, r1
|
|
bl sub_0302B118
|
|
mov r4, r0
|
|
cmp r5, #0
|
|
bne _0201B96C
|
|
add r0, r6, #4
|
|
bl sub_0201A540
|
|
orr r1, r0, #1
|
|
add r0, r6, #4
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
b _0201B9A0
|
|
_0201B96C:
|
|
mov r0, r5
|
|
bl sub_0201B8BC
|
|
mov r5, r0
|
|
add r0, r6, #5
|
|
add r6, r0, r5, lsr #3
|
|
mov r0, r6
|
|
bl sub_0201A540
|
|
and r1, r5, #7
|
|
mov r2, #1
|
|
orr r1, r0, r2, lsl r1
|
|
mov r0, r6
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
_0201B9A0:
|
|
mov r0, r4
|
|
bl sub_0302B0E0
|
|
_0201B9A8:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201B9B0: .word 0x0380FFF4
|
|
_0201B9B4: .word 0x0480425C
|
|
arm_func_end sub_0201B8FC
|
|
|
|
arm_func_start sub_0201B9B8
|
|
sub_0201B9B8: ; 0x0201B9B8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r5, r0
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x40
|
|
bne _0201BA54
|
|
ldr r0, _0201BA5C ; =0x0380FFF4
|
|
ldr r2, _0201BA60 ; =0x0480425C
|
|
ldr r1, [r0]
|
|
mov r0, #0x1000000
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0xd8]
|
|
add r6, r1, r2
|
|
bl sub_0302B118
|
|
mov r4, r0
|
|
cmp r5, #0
|
|
bne _0201BA14
|
|
add r0, r6, #4
|
|
bl sub_0201A540
|
|
and r1, r0, #0xfe
|
|
add r0, r6, #4
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
b _0201BA4C
|
|
_0201BA14:
|
|
mov r0, r5
|
|
bl sub_0201B8BC
|
|
mov r5, r0
|
|
add r0, r6, #5
|
|
add r6, r0, r5, lsr #3
|
|
mov r0, r6
|
|
bl sub_0201A540
|
|
and r1, r5, #7
|
|
mov r2, #1
|
|
mvn r1, r2, lsl r1
|
|
and r1, r1, r0
|
|
mov r0, r6
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
_0201BA4C:
|
|
mov r0, r4
|
|
bl sub_0302B0E0
|
|
_0201BA54:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201BA5C: .word 0x0380FFF4
|
|
_0201BA60: .word 0x0480425C
|
|
arm_func_end sub_0201B9B8
|
|
|
|
arm_func_start sub_0201BA64
|
|
sub_0201BA64: ; 0x0201BA64
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr fp, _0201BC14 ; =0x0380FFF4
|
|
mov sb, #0
|
|
ldr r2, [fp]
|
|
mov r8, #1
|
|
ldr r1, [r2, #0x31c]
|
|
add r0, r2, #0x500
|
|
ldrh sl, [r0, #0x2c]
|
|
add r0, r2, #0x12c
|
|
add r7, r1, #0x1c
|
|
add r5, r0, #0x400
|
|
add r4, r2, #0x300
|
|
b _0201BC00
|
|
_0201BA98:
|
|
ldrh r0, [r7]
|
|
cmp r0, #0
|
|
beq _0201BBF0
|
|
ldrh r1, [r7, #0x18]
|
|
cmp r1, #0
|
|
ldrne r0, _0201BC18 ; =0x0000FFFF
|
|
cmpne r1, r0
|
|
beq _0201BBEC
|
|
sub r0, r1, #1
|
|
strh r0, [r7, #0x18]
|
|
ldrh r0, [r7, #0x18]
|
|
cmp r0, #0
|
|
bne _0201BBEC
|
|
ldrh r0, [r7]
|
|
cmp r0, #0x20
|
|
blo _0201BBD8
|
|
mov r0, r8
|
|
bl sub_0201B7D0
|
|
mov r6, r0
|
|
mov r0, r8, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x20
|
|
bl sub_0201B434
|
|
mov r0, r8
|
|
bl sub_02020550
|
|
ldrh r0, [r4, #0x50]
|
|
cmp r0, #1
|
|
bne _0201BB88
|
|
cmp r6, #0x20
|
|
bls _0201BBD8
|
|
ldr r1, [fp]
|
|
mov r0, r8, lsl #0x10
|
|
add r3, r1, #0x500
|
|
ldrh r6, [r3, #0x34]
|
|
mov r2, #1
|
|
orr r2, r6, r2, lsl r8
|
|
strh r2, [r3, #0x34]
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0
|
|
bl sub_0201B53C
|
|
ldr r1, [fp]
|
|
add r0, r7, #4
|
|
add r3, r1, #0x500
|
|
mov r1, #1
|
|
ldrh r6, [r3, #0x30]
|
|
mov r2, r1
|
|
orr r2, r6, r2, lsl r8
|
|
strh r2, [r3, #0x30]
|
|
mov r2, #0
|
|
bl sub_020216AC
|
|
cmp r0, #0
|
|
mov r1, #1
|
|
beq _0201BB7C
|
|
strh r1, [r0]
|
|
bl sub_0202086C
|
|
add sb, sb, #1
|
|
b _0201BBF8
|
|
_0201BB7C:
|
|
add r0, r7, #4
|
|
bl sub_0201D3D4
|
|
b _0201BBD8
|
|
_0201BB88:
|
|
ldrh r0, [r4, #0xcc]
|
|
cmp r8, r0
|
|
bne _0201BBD8
|
|
add r0, r7, #4
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bl sub_020216AC
|
|
cmp r0, #0
|
|
beq _0201BBC0
|
|
mov r1, #1
|
|
strh r1, [r0]
|
|
bl sub_0202086C
|
|
add sb, sb, #1
|
|
b _0201BBF8
|
|
_0201BBC0:
|
|
mov r0, #0x20
|
|
bl sub_03028A28
|
|
bl sub_0201982C
|
|
add r0, r7, #4
|
|
mov r1, #1
|
|
bl sub_0201D3D4
|
|
_0201BBD8:
|
|
mov r0, #0
|
|
strh r0, [r7]
|
|
ldrh r0, [r5]
|
|
sub r0, r0, #1
|
|
strh r0, [r5]
|
|
_0201BBEC:
|
|
add sb, sb, #1
|
|
_0201BBF0:
|
|
cmp sb, sl
|
|
bhs _0201BC0C
|
|
_0201BBF8:
|
|
add r8, r8, #1
|
|
add r7, r7, #0x1c
|
|
_0201BC00:
|
|
ldrh r0, [r4, #0x22]
|
|
cmp r8, r0
|
|
blo _0201BA98
|
|
_0201BC0C:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201BC14: .word 0x0380FFF4
|
|
_0201BC18: .word 0x0000FFFF
|
|
arm_func_end sub_0201BA64
|
|
|
|
arm_func_start sub_0201BC1C
|
|
sub_0201BC1C: ; 0x0201BC1C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
bl sub_02020550
|
|
ldr r2, _0201BC60 ; =0x0380FFF4
|
|
mov r0, #0x1c
|
|
ldr r1, [r2]
|
|
mul r0, r4, r0
|
|
ldr r1, [r1, #0x31c]
|
|
mov r3, #0
|
|
strh r3, [r1, r0]
|
|
ldr r0, [r2]
|
|
add r0, r0, #0x500
|
|
ldrh r1, [r0, #0x2c]
|
|
sub r1, r1, #1
|
|
strh r1, [r0, #0x2c]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201BC60: .word 0x0380FFF4
|
|
arm_func_end sub_0201BC1C
|
|
|
|
arm_func_start sub_0201BC64
|
|
sub_0201BC64: ; 0x0201BC64
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _0201BCF4 ; =0x0380FFF4
|
|
mov r2, #0x1c
|
|
ldr r3, [r0]
|
|
mov r0, #0
|
|
add r1, r3, #0x300
|
|
ldrh r5, [r1, #0x22]
|
|
ldr r4, [r3, #0x31c]
|
|
mul r2, r5, r2
|
|
mov r1, r4
|
|
bl sub_0302D764
|
|
ldr r1, _0201BCF4 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
mov r2, #0x10
|
|
add r1, r1, #0x12c
|
|
add r1, r1, #0x400
|
|
bl sub_0302D764
|
|
ldr r2, _0201BCF8 ; =0x0000FFFF
|
|
mov r3, #1
|
|
strh r2, [r4, #0x1a]
|
|
mov r0, #0x1c
|
|
b _0201BCCC
|
|
_0201BCC0:
|
|
mla r1, r3, r0, r4
|
|
strh r2, [r1, #0x1a]
|
|
add r3, r3, #1
|
|
_0201BCCC:
|
|
cmp r3, r5
|
|
blo _0201BCC0
|
|
ldr r1, _0201BCFC ; =0x027F74A4
|
|
mov r0, #0
|
|
bl sub_0201BD88
|
|
mov r0, #0
|
|
mov r1, #0x40
|
|
bl sub_0201B434
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201BCF4: .word 0x0380FFF4
|
|
_0201BCF8: .word 0x0000FFFF
|
|
_0201BCFC: .word 0x027F74A4
|
|
arm_func_end sub_0201BC64
|
|
|
|
arm_func_start sub_0201BD00
|
|
sub_0201BD00: ; 0x0201BD00
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r0, _0201BD80 ; =0x0380FFF4
|
|
mov r6, #1
|
|
ldr r2, [r0]
|
|
mov sl, #0
|
|
add r1, r2, #0x300
|
|
add r0, r2, #0x12c
|
|
ldr r4, [r2, #0x31c]
|
|
ldrh r7, [r1, #0x22]
|
|
add r5, r0, #0x400
|
|
mov sb, #0x1a
|
|
mov r8, #0x1c
|
|
b _0201BD48
|
|
_0201BD34:
|
|
mla r1, r6, r8, r4
|
|
mov r0, sl
|
|
mov r2, sb
|
|
bl sub_0302D764
|
|
add r6, r6, #1
|
|
_0201BD48:
|
|
cmp r6, r7
|
|
blo _0201BD34
|
|
mov r2, #1
|
|
strh r2, [r5]
|
|
mov r1, #0
|
|
strh r1, [r5, #2]
|
|
ldr r0, _0201BD84 ; =0x0000FFFE
|
|
strh r2, [r5, #4]
|
|
strh r0, [r5, #6]
|
|
strh r1, [r5, #0xc]
|
|
strh r1, [r5, #8]
|
|
strh r2, [r5, #0xe]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201BD80: .word 0x0380FFF4
|
|
_0201BD84: .word 0x0000FFFE
|
|
arm_func_end sub_0201BD00
|
|
|
|
arm_func_start sub_0201BD88
|
|
sub_0201BD88: ; 0x0201BD88
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r2, _0201BE64 ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r4, [r2]
|
|
mov r0, #0x1c
|
|
mul r2, r7, r0
|
|
ldr r3, [r4, #0x31c]
|
|
mov r6, r1
|
|
ldrh r0, [r3, r2]
|
|
add r5, r3, r2
|
|
cmp r0, #0
|
|
addeq r0, r4, #0x500
|
|
ldreqh r1, [r0, #0x2c]
|
|
mov r2, #0x1a
|
|
addeq r1, r1, #1
|
|
streqh r1, [r0, #0x2c]
|
|
mov r1, r5
|
|
mov r0, #0
|
|
bl sub_0302D764
|
|
ldr r0, _0201BE64 ; =0x0380FFF4
|
|
mov r4, #1
|
|
ldr r1, [r0]
|
|
mov r0, r7, lsl #0x10
|
|
add r2, r1, #0x500
|
|
ldrh r3, [r2, #0x34]
|
|
mvn r1, r4, lsl r7
|
|
and r3, r3, r1
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0
|
|
strh r3, [r2, #0x34]
|
|
bl sub_0201B53C
|
|
ldr r0, _0201BE64 ; =0x0380FFF4
|
|
mov r1, r6
|
|
ldr r2, [r0]
|
|
add r0, r5, #4
|
|
add r2, r2, #0x500
|
|
ldrh r3, [r2, #0x30]
|
|
orr r3, r3, r4, lsl r7
|
|
strh r3, [r2, #0x30]
|
|
bl sub_020198D0
|
|
ldr r2, _0201BE68 ; =0x0000FFFF
|
|
mov r0, r7, lsl #0x10
|
|
ldr r1, _0201BE64 ; =0x0380FFF4
|
|
strh r2, [r5, #0x14]
|
|
ldr r1, [r1]
|
|
mov r0, r0, lsr #0x10
|
|
add r1, r1, #0x300
|
|
ldrh r2, [r1, #0xa6]
|
|
mov r1, #0x20
|
|
strh r2, [r5, #0x10]
|
|
ldrh r2, [r5, #0x1a]
|
|
strh r2, [r5, #0x18]
|
|
bl sub_0201B434
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201BE64: .word 0x0380FFF4
|
|
_0201BE68: .word 0x0000FFFF
|
|
arm_func_end sub_0201BD88
|
|
|
|
arm_func_start sub_0201BE6C
|
|
sub_0201BE6C: ; 0x0201BE6C
|
|
mov r0, #3
|
|
bx lr
|
|
arm_func_end sub_0201BE6C
|
|
|
|
arm_func_start sub_0201BE74
|
|
sub_0201BE74: ; 0x0201BE74
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r6, _0201BED0 ; =0x0380FFF4
|
|
mov r5, #0
|
|
ldr r0, [r6]
|
|
mvn r4, #0
|
|
ldr r7, [r0, #0x1f4]
|
|
b _0201BEC0
|
|
_0201BE90:
|
|
ldr r0, [r0, #0x304]
|
|
mov r1, r7
|
|
mov r2, r5
|
|
bl sub_0302BEC4
|
|
cmp r0, #0
|
|
beq _0201BEC8
|
|
ldr r0, [r6]
|
|
mov r1, r7
|
|
add r0, r0, #0x1f4
|
|
bl sub_03027F9C
|
|
ldr r0, [r6]
|
|
ldr r7, [r0, #0x1f4]
|
|
_0201BEC0:
|
|
cmp r7, r4
|
|
bne _0201BE90
|
|
_0201BEC8:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201BED0: .word 0x0380FFF4
|
|
arm_func_end sub_0201BE74
|
|
|
|
arm_func_start sub_0201BED4
|
|
sub_0201BED4: ; 0x0201BED4
|
|
ldr r0, _0201BEEC ; =0x0380FFF4
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
strh r1, [r0, #0x28]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201BEEC: .word 0x0380FFF4
|
|
arm_func_end sub_0201BED4
|
|
|
|
arm_func_start sub_0201BEF0
|
|
sub_0201BEF0: ; 0x0201BEF0
|
|
stmdb sp!, {r4, lr}
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
mov r4, r0
|
|
ldrh r0, [r4, #0x10]
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bhi _0201BF28
|
|
bl sub_03028988
|
|
ldrh r0, [r4, #0x10]
|
|
cmp r0, #1
|
|
bne _0201BF24
|
|
bl sub_0201996C
|
|
_0201BF24:
|
|
mov r0, #0
|
|
_0201BF28:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_0201BEF0
|
|
|
|
arm_func_start sub_0201BF30
|
|
sub_0201BF30: ; 0x0201BF30
|
|
stmdb sp!, {r4, lr}
|
|
mov r2, #9
|
|
strh r2, [r1, #2]
|
|
mov r4, r0
|
|
ldrh r0, [r4, #0x10]
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bhi _0201BFCC
|
|
ldrh r1, [r4, #0x12]
|
|
cmp r1, #1
|
|
movhi r0, #5
|
|
bhi _0201BFCC
|
|
ldrh r1, [r4, #0x14]
|
|
cmp r1, #1
|
|
movhi r0, #5
|
|
bhi _0201BFCC
|
|
bl sub_0201943C
|
|
ldrh r0, [r4, #0x10]
|
|
cmp r0, #1
|
|
bne _0201BFB8
|
|
ldrh r0, [r4, #0x12]
|
|
cmp r0, #1
|
|
bne _0201BF98
|
|
ldr r0, _0201BFD4 ; =0x00008001
|
|
bl sub_020194D0
|
|
b _0201BFA0
|
|
_0201BF98:
|
|
mov r0, #0
|
|
bl sub_020194D0
|
|
_0201BFA0:
|
|
ldr r0, _0201BFD8 ; =0x0380FFF4
|
|
ldrh r1, [r4, #0x14]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
strh r1, [r0, #0x58]
|
|
b _0201BFC8
|
|
_0201BFB8:
|
|
mov r0, #0x8000
|
|
bl sub_020194D0
|
|
mov r0, #2
|
|
bl sub_020194A4
|
|
_0201BFC8:
|
|
mov r0, #0
|
|
_0201BFCC:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201BFD4: .word 0x00008001
|
|
_0201BFD8: .word 0x0380FFF4
|
|
arm_func_end sub_0201BF30
|
|
|
|
arm_func_start sub_0201BFDC
|
|
sub_0201BFDC: ; 0x0201BFDC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r2, _0201C118 ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r3, [r2]
|
|
ldrh r2, [r5, #2]
|
|
add r1, r3, #4
|
|
add r4, r1, #0x400
|
|
sub r1, r2, #3
|
|
strh r1, [r4, #4]
|
|
mov r1, #3
|
|
strh r1, [r5, #2]
|
|
add r1, r3, #0x300
|
|
ldrh r1, [r1, #0x2e]
|
|
mov r6, r0
|
|
cmp r1, #1
|
|
cmpne r1, #3
|
|
cmpne r1, #2
|
|
movne r0, #0xb
|
|
bne _0201C110
|
|
ldr r0, _0201C118 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0x20
|
|
movlo r0, #1
|
|
blo _0201C110
|
|
ldrh r0, [r6, #0x16]
|
|
cmp r0, #0x20
|
|
movhi r0, #5
|
|
bhi _0201C110
|
|
ldrh r0, [r6, #0x38]
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bhi _0201C110
|
|
add r0, r6, #0x3a
|
|
bl sub_0201A540
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _0201C110
|
|
ldrh r0, [r6, #0x4a]
|
|
cmp r0, #0x3e8
|
|
movhi r0, #5
|
|
bhi _0201C110
|
|
cmp r0, #0xa
|
|
movlo r0, #5
|
|
blo _0201C110
|
|
ldrh r0, [r6, #0x4c]
|
|
cmp r0, #0x10
|
|
movhi r0, #5
|
|
bhi _0201C110
|
|
mov r8, #0
|
|
add r7, r6, #0x3a
|
|
b _0201C0D4
|
|
_0201C0B0:
|
|
add r0, r7, r8
|
|
bl sub_0201A540
|
|
cmp r0, #0
|
|
beq _0201C0DC
|
|
bl sub_02019C94
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _0201C110
|
|
add r8, r8, #1
|
|
_0201C0D4:
|
|
cmp r8, #0x10
|
|
blo _0201C0B0
|
|
_0201C0DC:
|
|
add r0, r6, #0x10
|
|
bl sub_02018D5C
|
|
ldrh r0, [r6, #0x16]
|
|
add r1, r6, #0x18
|
|
bl sub_02018DC0
|
|
str r6, [r4, #0x18]
|
|
str r5, [r4, #0x1c]
|
|
mov r2, #0x10
|
|
mov r0, #2
|
|
mov r1, #0
|
|
strh r2, [r4]
|
|
bl sub_03027D88
|
|
mov r0, #0x80
|
|
_0201C110:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201C118: .word 0x0380FFF4
|
|
arm_func_end sub_0201BFDC
|
|
|
|
arm_func_start sub_0201C11C
|
|
sub_0201C11C: ; 0x0201C11C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _0201C2CC ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r3, [r2]
|
|
mov r1, #5
|
|
strh r1, [r5, #2]
|
|
add r1, r3, #0x300
|
|
ldrh r2, [r1, #0x2e]
|
|
add r1, r3, #4
|
|
mov r6, r0
|
|
cmp r2, #3
|
|
add r0, r3, #0x344
|
|
cmpne r2, #2
|
|
add r4, r1, #0x400
|
|
movne r0, #0xb
|
|
bne _0201C2C4
|
|
ldrh r0, [r0, #8]
|
|
cmp r0, #0x20
|
|
movlo r0, #1
|
|
blo _0201C2C4
|
|
mov r0, #0x20
|
|
bl sub_03028A28
|
|
ldrh r0, [r6, #0x18]
|
|
tst r0, #1
|
|
movne r0, #5
|
|
bne _0201C2C4
|
|
ldrh r0, [r6, #0x1e]
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _0201C2C4
|
|
cmp r0, #0x20
|
|
movhi r0, #5
|
|
bhi _0201C2C4
|
|
ldrh r0, [r6, #0x46]
|
|
cmp r0, #0xa
|
|
movlo r0, #5
|
|
blo _0201C2C4
|
|
cmp r0, #0x3e8
|
|
movhi r0, #5
|
|
bhi _0201C2C4
|
|
ldrh r0, [r6, #0x48]
|
|
cmp r0, #0xff
|
|
movhi r0, #5
|
|
bhi _0201C2C4
|
|
ldrh r0, [r6, #0x4a]
|
|
ldr r1, _0201C2D0 ; =0x0000FFF0
|
|
tst r0, r1
|
|
movne r0, #5
|
|
bne _0201C2C4
|
|
bl sub_02019C94
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _0201C2C4
|
|
ldrh r2, [r6, #0x42]
|
|
mov r0, #0x1000
|
|
rsb r0, r0, #0
|
|
tst r2, r0
|
|
movne r0, #5
|
|
bne _0201C2C4
|
|
ldrh r1, [r6, #0x44]
|
|
tst r1, r0
|
|
movne r0, #5
|
|
bne _0201C2C4
|
|
cmp r2, #0
|
|
moveq r0, #5
|
|
beq _0201C2C4
|
|
orrs r0, r1, r2
|
|
moveq r0, #5
|
|
beq _0201C2C4
|
|
ldrh r0, [r6, #0x10]
|
|
cmp r0, #0x7d0
|
|
movhi r0, #5
|
|
bhi _0201C2C4
|
|
mov r0, #0
|
|
bl sub_0202451C
|
|
cmp r0, #0
|
|
movne r0, #0xe
|
|
bne _0201C2C4
|
|
ldrh r0, [r6, #0x40]
|
|
tst r0, #0x20
|
|
beq _0201C26C
|
|
mov r0, #1
|
|
bl sub_02018A80
|
|
b _0201C274
|
|
_0201C26C:
|
|
mov r0, #0
|
|
bl sub_02018A80
|
|
_0201C274:
|
|
add r0, r6, #0x18
|
|
bl sub_02018D5C
|
|
ldrh r0, [r6, #0x1e]
|
|
add r1, r6, #0x20
|
|
bl sub_02018DC0
|
|
ldrh r0, [r6, #0x46]
|
|
bl sub_02018ED0
|
|
ldrh r0, [r6, #0x4a]
|
|
mov r1, #0
|
|
bl sub_020190F0
|
|
add r0, r6, #0x42
|
|
bl sub_0201937C
|
|
str r6, [r4, #0x18]
|
|
str r5, [r4, #0x1c]
|
|
mov r2, #0x20
|
|
mov r0, #2
|
|
mov r1, #1
|
|
strh r2, [r4]
|
|
bl sub_03027D88
|
|
mov r0, #0x80
|
|
_0201C2C4:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201C2CC: .word 0x0380FFF4
|
|
_0201C2D0: .word 0x0000FFF0
|
|
arm_func_end sub_0201C11C
|
|
|
|
arm_func_start sub_0201C2D4
|
|
sub_0201C2D4: ; 0x0201C2D4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _0201C3A4 ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r3, [r2]
|
|
mov r1, #6
|
|
strh r1, [r5, #2]
|
|
add r1, r3, #0x300
|
|
ldrh r2, [r1, #0x2e]
|
|
add r1, r3, #4
|
|
mov r6, r0
|
|
cmp r2, #3
|
|
add r0, r3, #0x344
|
|
cmpne r2, #2
|
|
add r4, r1, #0x400
|
|
movne r0, #0xb
|
|
bne _0201C39C
|
|
ldrh r0, [r0, #8]
|
|
cmp r0, #0x20
|
|
movlo r0, #1
|
|
blo _0201C39C
|
|
ldrh r0, [r6, #0x10]
|
|
tst r0, #1
|
|
movne r0, #5
|
|
bne _0201C39C
|
|
ldrh r0, [r6, #0x16]
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bhi _0201C39C
|
|
ldrh r0, [r6, #0x18]
|
|
cmp r0, #0x7d0
|
|
movhi r0, #5
|
|
bhi _0201C39C
|
|
cmp r0, #0xa
|
|
movlo r0, #5
|
|
blo _0201C39C
|
|
mov r0, #0x20
|
|
bl sub_03028A28
|
|
str r6, [r4, #0x18]
|
|
str r5, [r4, #0x1c]
|
|
mov r0, #0x30
|
|
strh r0, [r4]
|
|
ldr r1, [r4, #0x18]
|
|
add r0, r5, #8
|
|
ldrh r1, [r1, #0x16]
|
|
strh r1, [r5, #0xe]
|
|
ldr r1, [r4, #0x18]
|
|
add r1, r1, #0x10
|
|
bl sub_020198D0
|
|
bl sub_0201CD34
|
|
mov r0, #0x80
|
|
_0201C39C:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201C3A4: .word 0x0380FFF4
|
|
arm_func_end sub_0201C2D4
|
|
|
|
arm_func_start sub_0201C3A8
|
|
sub_0201C3A8: ; 0x0201C3A8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r3, _0201C4D8 ; =0x0380FFF4
|
|
mov r6, r1
|
|
ldr r2, [r3]
|
|
mov r1, #4
|
|
strh r1, [r6, #2]
|
|
ldr r3, [r3]
|
|
add r1, r2, #4
|
|
add r2, r3, #0x300
|
|
ldrh r2, [r2, #0x2e]
|
|
mov r7, r0
|
|
cmp r2, #3
|
|
cmpne r2, #2
|
|
cmpne r2, #1
|
|
add r5, r1, #0x400
|
|
movne r0, #0xb
|
|
bne _0201C4D0
|
|
add r0, r3, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0x30
|
|
movlo r0, #1
|
|
blo _0201C4D0
|
|
add r0, r2, #0xfe
|
|
add r0, r0, #0xff00
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #1
|
|
bhi _0201C428
|
|
ldrh r0, [r7, #0x10]
|
|
tst r0, #1
|
|
movne r0, #5
|
|
bne _0201C4D0
|
|
_0201C428:
|
|
add r0, r6, #6
|
|
add r1, r7, #0x10
|
|
bl sub_020198D0
|
|
ldrh r1, [r7, #0x16]
|
|
add r0, r6, #6
|
|
mov r2, #0
|
|
bl sub_020216AC
|
|
movs r4, r0
|
|
moveq r0, #8
|
|
beq _0201C4D0
|
|
str r7, [r5, #0x18]
|
|
str r6, [r5, #0x1c]
|
|
str r4, [r5, #4]
|
|
mov r0, #0x41
|
|
strh r0, [r5]
|
|
ldrh r0, [r7, #0x10]
|
|
tst r0, #1
|
|
beq _0201C4BC
|
|
ldr r2, _0201C4D8 ; =0x0380FFF4
|
|
sub r1, r4, #0x10
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, #0x3ec]
|
|
strh r0, [r4, #4]
|
|
ldr r0, [r2]
|
|
add r0, r0, #0x188
|
|
bl sub_0201B2D8
|
|
ldr r0, _0201C4D8 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x500
|
|
ldrh r1, [r0, #0x32]
|
|
ldrh r2, [r0, #0x2e]
|
|
mvn r0, r1
|
|
tst r2, r0
|
|
bne _0201C4CC
|
|
mov r0, #2
|
|
bl sub_0201F6E4
|
|
b _0201C4CC
|
|
_0201C4BC:
|
|
add r0, r7, #0x10
|
|
bl sub_02020648
|
|
mov r0, r4
|
|
bl sub_0202086C
|
|
_0201C4CC:
|
|
mov r0, #0x80
|
|
_0201C4D0:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201C4D8: .word 0x0380FFF4
|
|
arm_func_end sub_0201C3A8
|
|
|
|
arm_func_start sub_0201C4DC
|
|
sub_0201C4DC: ; 0x0201C4DC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r2, _0201C5B0 ; =0x0380FFF4
|
|
mov r6, r1
|
|
ldr r3, [r2]
|
|
mov r1, #3
|
|
strh r1, [r6, #2]
|
|
add r1, r3, #0x300
|
|
ldrh r2, [r1, #0x2e]
|
|
add r1, r3, #4
|
|
cmp r2, #3
|
|
mov r7, r0
|
|
cmpne r2, #2
|
|
add r4, r3, #0x344
|
|
add r5, r1, #0x400
|
|
movne r0, #0xb
|
|
bne _0201C5A8
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x30
|
|
movlo r0, #1
|
|
blo _0201C5A8
|
|
ldrh r0, [r7, #0x10]
|
|
tst r0, #1
|
|
movne r0, #5
|
|
bne _0201C5A8
|
|
ldrh r0, [r7, #0x16]
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _0201C5A8
|
|
cmp r0, #0xff
|
|
movhi r0, #5
|
|
bhi _0201C5A8
|
|
ldrh r0, [r7, #0x18]
|
|
cmp r0, #0x7d0
|
|
movhi r0, #5
|
|
bhi _0201C5A8
|
|
cmp r0, #0xa
|
|
movlo r0, #5
|
|
blo _0201C5A8
|
|
mov r0, #0x30
|
|
bl sub_03028A28
|
|
bl sub_0201982C
|
|
ldrh r1, [r7, #0x16]
|
|
mov r0, #0x50
|
|
strh r1, [r4, #0x70]
|
|
ldrh r1, [r7, #0x16]
|
|
strh r1, [r4, #0x72]
|
|
str r7, [r5, #0x18]
|
|
str r6, [r5, #0x1c]
|
|
strh r0, [r5]
|
|
bl sub_0201CE58
|
|
mov r0, #0x80
|
|
_0201C5A8:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201C5B0: .word 0x0380FFF4
|
|
arm_func_end sub_0201C4DC
|
|
|
|
arm_func_start sub_0201C5B4
|
|
sub_0201C5B4: ; 0x0201C5B4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, _0201C670 ; =0x0380FFF4
|
|
mov r2, #3
|
|
ldr ip, [r3]
|
|
strh r2, [r1, #2]
|
|
add r2, ip, #0x300
|
|
ldrh r3, [r2, #0x2e]
|
|
add r2, ip, #4
|
|
cmp r3, #3
|
|
cmpne r3, #2
|
|
add ip, ip, #0x344
|
|
add lr, r2, #0x400
|
|
movne r0, #0xb
|
|
bne _0201C668
|
|
ldrh r2, [ip, #8]
|
|
cmp r2, #0x30
|
|
movlo r0, #1
|
|
blo _0201C668
|
|
ldrh r2, [r0, #0x10]
|
|
tst r2, #1
|
|
movne r0, #5
|
|
bne _0201C668
|
|
ldrh r3, [r0, #0x16]
|
|
cmp r3, #1
|
|
movlo r0, #5
|
|
blo _0201C668
|
|
cmp r3, #0xff
|
|
movhi r0, #5
|
|
bhi _0201C668
|
|
ldrh r2, [r0, #0x18]
|
|
cmp r2, #0x7d0
|
|
movhi r0, #5
|
|
bhi _0201C668
|
|
cmp r2, #0xa
|
|
movlo r0, #5
|
|
blo _0201C668
|
|
strh r3, [ip, #0x70]
|
|
ldrh r3, [r0, #0x16]
|
|
mov r2, #0x60
|
|
strh r3, [ip, #0x72]
|
|
str r0, [lr, #0x18]
|
|
str r1, [lr, #0x1c]
|
|
strh r2, [lr]
|
|
bl sub_0201CF54
|
|
mov r0, #0x80
|
|
_0201C668:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201C670: .word 0x0380FFF4
|
|
arm_func_end sub_0201C5B4
|
|
|
|
arm_func_start sub_0201C674
|
|
sub_0201C674: ; 0x0201C674
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r3, _0201C77C ; =0x0380FFF4
|
|
mov r6, r1
|
|
ldr r2, [r3]
|
|
mov r1, #1
|
|
strh r1, [r6, #2]
|
|
ldr r3, [r3]
|
|
add r1, r2, #4
|
|
add r2, r3, #0x300
|
|
ldrh r2, [r2, #0x2e]
|
|
mov r7, r0
|
|
cmp r2, #0
|
|
add r5, r1, #0x400
|
|
moveq r0, #0xb
|
|
beq _0201C774
|
|
cmp r2, #1
|
|
beq _0201C6C8
|
|
ldrh r0, [r7, #0x10]
|
|
tst r0, #1
|
|
movne r0, #5
|
|
bne _0201C774
|
|
_0201C6C8:
|
|
add r0, r3, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0x40
|
|
movne r0, #1
|
|
bne _0201C774
|
|
ldrh r1, [r7, #0x16]
|
|
add r0, r7, #0x10
|
|
bl sub_02020E94
|
|
movs r4, r0
|
|
moveq r0, #8
|
|
beq _0201C774
|
|
str r7, [r5, #0x18]
|
|
str r6, [r5, #0x1c]
|
|
str r4, [r5, #4]
|
|
mov r0, #0x71
|
|
strh r0, [r5]
|
|
ldrh r0, [r7, #0x10]
|
|
tst r0, #1
|
|
beq _0201C760
|
|
ldr r2, _0201C77C ; =0x0380FFF4
|
|
sub r1, r4, #0x10
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, #0x3ec]
|
|
strh r0, [r4, #4]
|
|
ldr r0, [r2]
|
|
add r0, r0, #0x188
|
|
bl sub_0201B2D8
|
|
ldr r0, _0201C77C ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x500
|
|
ldrh r1, [r0, #0x32]
|
|
ldrh r2, [r0, #0x2e]
|
|
mvn r0, r1
|
|
tst r2, r0
|
|
bne _0201C770
|
|
mov r0, #2
|
|
bl sub_0201F6E4
|
|
b _0201C770
|
|
_0201C760:
|
|
add r0, r7, #0x10
|
|
bl sub_02020648
|
|
mov r0, r4
|
|
bl sub_0202086C
|
|
_0201C770:
|
|
mov r0, #0x80
|
|
_0201C774:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201C77C: .word 0x0380FFF4
|
|
arm_func_end sub_0201C674
|
|
|
|
arm_func_start sub_0201C780
|
|
sub_0201C780: ; 0x0201C780
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r3, _0201C914 ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr r3, [r3]
|
|
mov r6, r0
|
|
strh r2, [r1, #2]
|
|
add r5, r3, #0x31c
|
|
ldrh r0, [r5, #0x12]
|
|
add r4, r3, #0x344
|
|
cmp r0, #1
|
|
cmpne r0, #0
|
|
movne r0, #0xb
|
|
bne _0201C90C
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x20
|
|
movne r0, #1
|
|
bne _0201C90C
|
|
ldrh r0, [r6, #0x10]
|
|
cmp r0, #0x20
|
|
movhi r0, #5
|
|
bhi _0201C90C
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _0201C90C
|
|
ldrh r0, [r6, #0x32]
|
|
cmp r0, #0xa
|
|
movlo r0, #5
|
|
blo _0201C90C
|
|
cmp r0, #0x3e8
|
|
movhi r0, #5
|
|
bhi _0201C90C
|
|
ldrh r0, [r6, #0x34]
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _0201C90C
|
|
cmp r0, #0xff
|
|
movhi r0, #5
|
|
bhi _0201C90C
|
|
ldrh r0, [r6, #0x36]
|
|
ldr r1, _0201C918 ; =0x0000FFF0
|
|
tst r0, r1
|
|
movne r0, #5
|
|
bne _0201C90C
|
|
bl sub_02019C94
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _0201C90C
|
|
ldrh r1, [r6, #0x38]
|
|
cmp r1, #0
|
|
moveq r0, #5
|
|
beq _0201C90C
|
|
mov r0, #0x1000
|
|
rsb r0, r0, #0
|
|
tst r1, r0
|
|
movne r0, #5
|
|
bne _0201C90C
|
|
ldrh r1, [r6, #0x3a]
|
|
cmp r1, #0
|
|
moveq r0, #5
|
|
beq _0201C90C
|
|
tst r1, r0
|
|
movne r0, #5
|
|
bne _0201C90C
|
|
ldrh r0, [r6, #0x3c]
|
|
cmp r0, #0x80
|
|
movhi r0, #5
|
|
bhi _0201C90C
|
|
mov r0, #0
|
|
bl sub_0202451C
|
|
cmp r0, #0
|
|
movne r0, #0xe
|
|
bne _0201C90C
|
|
ldrh r0, [r5, #0x12]
|
|
cmp r0, #0
|
|
bne _0201C8B8
|
|
ldr r0, _0201C91C ; =0x027F74A4
|
|
bl sub_02018D5C
|
|
b _0201C8C0
|
|
_0201C8B8:
|
|
add r0, r5, #8
|
|
bl sub_02018D5C
|
|
_0201C8C0:
|
|
ldrh r0, [r6, #0x10]
|
|
add r1, r6, #0x12
|
|
bl sub_02018DC0
|
|
ldrh r0, [r6, #0x32]
|
|
bl sub_02018ED0
|
|
ldrh r0, [r6, #0x34]
|
|
bl sub_02018F28
|
|
ldrh r0, [r6, #0x36]
|
|
mov r1, #0
|
|
bl sub_020190F0
|
|
add r0, r6, #0x38
|
|
bl sub_0201937C
|
|
ldrh r0, [r6, #0x3c]
|
|
add r1, r6, #0x3e
|
|
bl sub_02019700
|
|
mov r0, #0
|
|
strh r0, [r4, #0xa4]
|
|
bl sub_030285D0
|
|
mov r0, #0
|
|
_0201C90C:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201C914: .word 0x0380FFF4
|
|
_0201C918: .word 0x0000FFF0
|
|
_0201C91C: .word 0x027F74A4
|
|
arm_func_end sub_0201C780
|
|
|
|
arm_func_start sub_0201C920
|
|
sub_0201C920: ; 0x0201C920
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r2, _0201CA00 ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r3, [r2]
|
|
mov r1, #0x12
|
|
strh r1, [r5, #2]
|
|
ldr r2, [r2]
|
|
add r1, r3, #4
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x4c]
|
|
mov r6, r0
|
|
cmp r2, #0x20
|
|
add r4, r1, #0x400
|
|
movne r0, #1
|
|
bne _0201C9F8
|
|
ldrh r0, [r6, #0x12]
|
|
cmp r0, #3
|
|
movhi r0, #5
|
|
bhi _0201C9F8
|
|
ldrh r0, [r6, #0x14]
|
|
cmp r0, #0x3f
|
|
movhi r0, #5
|
|
bhi _0201C9F8
|
|
ldrh r0, [r6, #0x16]
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _0201C9F8
|
|
cmp r0, #0x3e8
|
|
movhi r0, #5
|
|
bhi _0201C9F8
|
|
mov r8, #0
|
|
add r7, r6, #0x18
|
|
b _0201C9C8
|
|
_0201C9A4:
|
|
add r0, r7, r8
|
|
bl sub_0201A540
|
|
cmp r0, #0
|
|
beq _0201C9D0
|
|
bl sub_02019C94
|
|
cmp r0, #0
|
|
moveq r0, #5
|
|
beq _0201C9F8
|
|
add r8, r8, #1
|
|
_0201C9C8:
|
|
cmp r8, #0x10
|
|
blo _0201C9A4
|
|
_0201C9D0:
|
|
cmp r8, #0
|
|
moveq r0, #5
|
|
beq _0201C9F8
|
|
str r6, [r4, #0x18]
|
|
str r5, [r4, #0x1c]
|
|
mov r0, #0x80
|
|
strh r0, [r4]
|
|
strh r0, [r5, #4]
|
|
bl sub_0201D048
|
|
mov r0, #0x80
|
|
_0201C9F8:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201CA00: .word 0x0380FFF4
|
|
arm_func_end sub_0201C920
|
|
|
|
arm_func_start sub_0201CA04
|
|
sub_0201CA04: ; 0x0201CA04
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r0, _0201CBEC ; =0x0380FFF4
|
|
mov r6, #0
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x400
|
|
ldrh r1, [r0, #4]
|
|
add r0, r2, #4
|
|
sub r1, r1, #0x10
|
|
cmp r1, #5
|
|
add r4, r0, #0x400
|
|
add r5, r2, #0x344
|
|
addls pc, pc, r1, lsl #2
|
|
b _0201CBD0
|
|
_0201CA38: ; jump table
|
|
b _0201CA50 ; case 0
|
|
b _0201CAC8 ; case 1
|
|
b _0201CB58 ; case 2
|
|
b _0201CB58 ; case 3
|
|
b _0201CBD0 ; case 4
|
|
b _0201CBB0 ; case 5
|
|
_0201CA50:
|
|
mov r0, #0x20
|
|
bl sub_03028A28
|
|
mov r0, #2
|
|
strh r0, [r5, #0xc]
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, r6
|
|
strh r1, [r0, #8]
|
|
ldr r0, [r4, #0x1c]
|
|
strh r1, [r0, #6]
|
|
strh r1, [r4, #6]
|
|
strh r1, [r4, #8]
|
|
ldr r1, [r4, #0x18]
|
|
ldrh r0, [r1, #0x38]
|
|
cmp r0, #0
|
|
ldrh r0, [r1, #0x4a]
|
|
bne _0201CAB8
|
|
add r1, r0, #3
|
|
mov r0, r1, asr #1
|
|
add r0, r1, r0, lsr #30
|
|
mov r0, r0, asr #2
|
|
strh r0, [r4, #0xc]
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #0xa
|
|
movlo r0, #0xa
|
|
strloh r0, [r4, #0xc]
|
|
b _0201CABC
|
|
_0201CAB8:
|
|
strh r0, [r4, #0xc]
|
|
_0201CABC:
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
_0201CAC8:
|
|
ldr r1, [r4, #0x18]
|
|
ldrh r0, [r4, #6]
|
|
add r1, r1, #0x3a
|
|
add r0, r1, r0
|
|
bl sub_0201A540
|
|
movs r5, r0
|
|
moveq r0, #0x15
|
|
streqh r0, [r4]
|
|
moveq r6, #1
|
|
beq _0201CBD0
|
|
ldrh r1, [r4, #6]
|
|
mov r0, #0
|
|
add r1, r1, #1
|
|
strh r1, [r4, #6]
|
|
strh r0, [r4, #0xa]
|
|
bl sub_0202451C
|
|
cmp r0, #0
|
|
beq _0201CB2C
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #0xe
|
|
strh r1, [r0, #4]
|
|
mov r0, #0x15
|
|
strh r0, [r4]
|
|
mov r6, #1
|
|
b _0201CBD0
|
|
_0201CB2C:
|
|
ldrh r0, [r4]
|
|
mov r1, #0
|
|
cmp r0, #0x10
|
|
mov r0, r5
|
|
bne _0201CB4C
|
|
bl sub_020190F0
|
|
bl sub_030285D0
|
|
b _0201CB50
|
|
_0201CB4C:
|
|
bl sub_020190F0
|
|
_0201CB50:
|
|
mov r0, #0x12
|
|
strh r0, [r4]
|
|
_0201CB58:
|
|
mov r0, #0x13
|
|
strh r0, [r4]
|
|
ldr r1, [r4, #0x18]
|
|
ldrh r0, [r1, #0x38]
|
|
cmp r0, #0
|
|
bne _0201CBA0
|
|
add r0, r1, #0x10
|
|
bl sub_02021340
|
|
cmp r0, #0
|
|
bne _0201CB9C
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #8
|
|
strh r1, [r0, #4]
|
|
mov r0, #0x15
|
|
strh r0, [r4]
|
|
mov r6, #1
|
|
b _0201CBD0
|
|
_0201CB9C:
|
|
bl sub_0202086C
|
|
_0201CBA0:
|
|
ldrh r0, [r4, #0xc]
|
|
ldr r1, _0201CBF0 ; =0x027ED404
|
|
bl sub_0201A2DC
|
|
b _0201CBD0
|
|
_0201CBB0:
|
|
strh r6, [r4]
|
|
bl sub_03028988
|
|
ldr r0, _0201CBEC ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x2e]
|
|
strh r0, [r5, #0xc]
|
|
bl sub_0201D304
|
|
_0201CBD0:
|
|
cmp r6, #0
|
|
beq _0201CBE4
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl sub_03027D88
|
|
_0201CBE4:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201CBEC: .word 0x0380FFF4
|
|
_0201CBF0: .word 0x027ED404
|
|
arm_func_end sub_0201CA04
|
|
|
|
arm_func_start sub_0201CBF4
|
|
sub_0201CBF4: ; 0x0201CBF4
|
|
ldr r0, _0201CC50 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #4
|
|
add r2, r0, #0x400
|
|
ldrh r1, [r2, #0xa]
|
|
ldrh r0, [r2, #0xc]
|
|
add r0, r1, r0
|
|
strh r0, [r2, #0xa]
|
|
ldr r0, [r2, #0x18]
|
|
ldrh r1, [r2, #0xa]
|
|
ldrh r0, [r0, #0x4a]
|
|
cmp r1, r0
|
|
blo _0201CC40
|
|
ldrh r0, [r2, #6]
|
|
cmp r0, #0x10
|
|
movlo r0, #0x11
|
|
strloh r0, [r2]
|
|
movhs r0, #0x15
|
|
strhsh r0, [r2]
|
|
_0201CC40:
|
|
ldr ip, _0201CC54 ; =sub_037F8598
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_0201CC50: .word 0x0380FFF4
|
|
_0201CC54: .word sub_037F8598
|
|
arm_func_end sub_0201CBF4
|
|
|
|
arm_func_start sub_0201CC58
|
|
sub_0201CC58: ; 0x0201CC58
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0201CCF0 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x400
|
|
ldrh r1, [r0, #4]
|
|
add r0, r2, #4
|
|
cmp r1, #0x20
|
|
add r4, r0, #0x400
|
|
beq _0201CC88
|
|
cmp r1, #0x25
|
|
beq _0201CCB4
|
|
b _0201CCE8
|
|
_0201CC88:
|
|
bl sub_030285D0
|
|
mov r0, #0
|
|
strh r0, [r4, #4]
|
|
strh r0, [r4, #6]
|
|
mov r0, #0x21
|
|
strh r0, [r4]
|
|
ldr r0, [r4, #0x18]
|
|
ldr r1, _0201CCF4 ; =0x027ED508
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_0201A2DC
|
|
b _0201CCE8
|
|
_0201CCB4:
|
|
ldrh r1, [r4, #4]
|
|
ldr r0, [r4, #0x1c]
|
|
strh r1, [r0, #4]
|
|
ldrh r1, [r4, #6]
|
|
ldr r0, [r4, #0x1c]
|
|
strh r1, [r0, #6]
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _0201CCDC
|
|
bl sub_03028988
|
|
_0201CCDC:
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
bl sub_0201D304
|
|
_0201CCE8:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201CCF0: .word 0x0380FFF4
|
|
_0201CCF4: .word 0x027ED508
|
|
arm_func_end sub_0201CC58
|
|
|
|
arm_func_start sub_0201CCF8
|
|
sub_0201CCF8: ; 0x0201CCF8
|
|
ldr r0, _0201CD2C ; =0x0380FFF4
|
|
ldr ip, _0201CD30 ; =sub_037F8598
|
|
ldr r2, [r0]
|
|
mov r1, #7
|
|
add r0, r2, #4
|
|
add r0, r0, #0x400
|
|
strh r1, [r0, #4]
|
|
mov r3, #0x25
|
|
add r2, r2, #0x400
|
|
mov r0, #2
|
|
mov r1, #1
|
|
strh r3, [r2, #4]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201CD2C: .word 0x0380FFF4
|
|
_0201CD30: .word sub_037F8598
|
|
arm_func_end sub_0201CCF8
|
|
|
|
arm_func_start sub_0201CD34
|
|
sub_0201CD34: ; 0x0201CD34
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0201CE10 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x400
|
|
ldrh r1, [r0, #4]
|
|
add r0, r2, #4
|
|
cmp r1, #0x30
|
|
add r4, r0, #0x400
|
|
beq _0201CD64
|
|
cmp r1, #0x35
|
|
beq _0201CDE0
|
|
b _0201CE08
|
|
_0201CD64:
|
|
ldr r0, [r4, #0x18]
|
|
mov r1, #0
|
|
mov r2, r1
|
|
add r0, r0, #0x10
|
|
bl sub_020215EC
|
|
cmp r0, #0
|
|
bne _0201CDA4
|
|
ldr r1, [r4, #0x1c]
|
|
mov r2, #8
|
|
mov r0, #2
|
|
strh r2, [r1, #4]
|
|
mov r2, #0x35
|
|
mov r1, r0
|
|
strh r2, [r4]
|
|
bl sub_03027D88
|
|
b _0201CE08
|
|
_0201CDA4:
|
|
ldr r1, [r4, #0x18]
|
|
mov r2, #1
|
|
ldrh r3, [r1, #0x16]
|
|
mov r1, #0
|
|
strh r3, [r0, #0x2c]
|
|
strh r2, [r0, #0x2e]
|
|
strh r1, [r0, #0x30]
|
|
mov r1, #0x31
|
|
strh r1, [r4]
|
|
bl sub_0202086C
|
|
ldr r0, [r4, #0x18]
|
|
ldr r1, _0201CE14 ; =0x027ED628
|
|
ldrh r0, [r0, #0x18]
|
|
bl sub_0201A2DC
|
|
b _0201CE08
|
|
_0201CDE0:
|
|
mov r0, #1
|
|
bl sub_020204C4
|
|
mov r0, #1
|
|
bl sub_02020460
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_020207E0
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
bl sub_0201D304
|
|
_0201CE08:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201CE10: .word 0x0380FFF4
|
|
_0201CE14: .word 0x027ED628
|
|
arm_func_end sub_0201CD34
|
|
|
|
arm_func_start sub_0201CE18
|
|
sub_0201CE18: ; 0x0201CE18
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, _0201CE54 ; =0x0380FFF4
|
|
mov r0, #2
|
|
ldr ip, [r1]
|
|
mov r3, #7
|
|
add r1, ip, #4
|
|
ldr r2, [r1, #0x41c]
|
|
mov r1, r0
|
|
strh r3, [r2, #4]
|
|
add r2, ip, #0x400
|
|
mov r3, #0x35
|
|
strh r3, [r2, #4]
|
|
bl sub_03027D88
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201CE54: .word 0x0380FFF4
|
|
arm_func_end sub_0201CE18
|
|
|
|
arm_func_start sub_0201CE58
|
|
sub_0201CE58: ; 0x0201CE58
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0201CF10 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x400
|
|
ldrh r1, [r0, #4]
|
|
add r0, r2, #4
|
|
cmp r1, #0x50
|
|
add r4, r0, #0x400
|
|
beq _0201CE88
|
|
cmp r1, #0x53
|
|
beq _0201CEE0
|
|
b _0201CF08
|
|
_0201CE88:
|
|
ldr r0, [r4, #0x18]
|
|
add r0, r0, #0x10
|
|
bl sub_02020F10
|
|
cmp r0, #0
|
|
bne _0201CEC0
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #8
|
|
strh r1, [r0, #4]
|
|
mov r2, #0x53
|
|
mov r0, #2
|
|
mov r1, #3
|
|
strh r2, [r4]
|
|
bl sub_03027D88
|
|
b _0201CF08
|
|
_0201CEC0:
|
|
mov r1, #0x51
|
|
strh r1, [r4]
|
|
bl sub_0202086C
|
|
ldr r0, [r4, #0x18]
|
|
ldr r1, _0201CF14 ; =0x027ED728
|
|
ldrh r0, [r0, #0x18]
|
|
bl sub_0201A2DC
|
|
b _0201CF08
|
|
_0201CEE0:
|
|
mov r0, #1
|
|
bl sub_020204C4
|
|
mov r0, #1
|
|
bl sub_02020460
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_020207E0
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
bl sub_0201D304
|
|
_0201CF08:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201CF10: .word 0x0380FFF4
|
|
_0201CF14: .word 0x027ED728
|
|
arm_func_end sub_0201CE58
|
|
|
|
arm_func_start sub_0201CF18
|
|
sub_0201CF18: ; 0x0201CF18
|
|
ldr r0, _0201CF4C ; =0x0380FFF4
|
|
ldr ip, _0201CF50 ; =sub_037F8598
|
|
ldr r2, [r0]
|
|
mov r1, #7
|
|
add r0, r2, #4
|
|
ldr r0, [r0, #0x41c]
|
|
mov r3, #0x53
|
|
strh r1, [r0, #4]
|
|
add r2, r2, #0x400
|
|
mov r0, #2
|
|
mov r1, #3
|
|
strh r3, [r2, #4]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201CF4C: .word 0x0380FFF4
|
|
_0201CF50: .word sub_037F8598
|
|
arm_func_end sub_0201CF18
|
|
|
|
arm_func_start sub_0201CF54
|
|
sub_0201CF54: ; 0x0201CF54
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0201D004 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x400
|
|
ldrh r1, [r0, #4]
|
|
add r0, r2, #4
|
|
cmp r1, #0x60
|
|
add r4, r0, #0x400
|
|
beq _0201CF84
|
|
cmp r1, #0x63
|
|
beq _0201CFDC
|
|
b _0201CFFC
|
|
_0201CF84:
|
|
ldr r0, [r4, #0x18]
|
|
add r0, r0, #0x10
|
|
bl sub_02020FB8
|
|
cmp r0, #0
|
|
bne _0201CFBC
|
|
ldr r0, [r4, #0x1c]
|
|
mov r1, #8
|
|
strh r1, [r0, #4]
|
|
mov r2, #0x63
|
|
mov r0, #2
|
|
mov r1, #4
|
|
strh r2, [r4]
|
|
bl sub_03027D88
|
|
b _0201CFFC
|
|
_0201CFBC:
|
|
mov r1, #0x61
|
|
strh r1, [r4]
|
|
bl sub_0202086C
|
|
ldr r0, [r4, #0x18]
|
|
ldr r1, _0201D008 ; =0x027ED81C
|
|
ldrh r0, [r0, #0x18]
|
|
bl sub_0201A2DC
|
|
b _0201CFFC
|
|
_0201CFDC:
|
|
mov r0, #1
|
|
bl sub_02020460
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_020207E0
|
|
mov r0, #0
|
|
strh r0, [r4]
|
|
bl sub_0201D304
|
|
_0201CFFC:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201D004: .word 0x0380FFF4
|
|
_0201D008: .word 0x027ED81C
|
|
arm_func_end sub_0201CF54
|
|
|
|
arm_func_start sub_0201D00C
|
|
sub_0201D00C: ; 0x0201D00C
|
|
ldr r0, _0201D040 ; =0x0380FFF4
|
|
ldr ip, _0201D044 ; =sub_037F8598
|
|
ldr r2, [r0]
|
|
mov r1, #7
|
|
add r0, r2, #4
|
|
ldr r0, [r0, #0x41c]
|
|
mov r3, #0x63
|
|
strh r1, [r0, #4]
|
|
add r2, r2, #0x400
|
|
mov r0, #2
|
|
mov r1, #4
|
|
strh r3, [r2, #4]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201D040: .word 0x0380FFF4
|
|
_0201D044: .word sub_037F8598
|
|
arm_func_end sub_0201D00C
|
|
|
|
arm_func_start sub_0201D048
|
|
sub_0201D048: ; 0x0201D048
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _0201D2A8 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x400
|
|
ldrh r1, [r0, #4]
|
|
add r0, r2, #4
|
|
sub r1, r1, #0x80
|
|
cmp r1, #4
|
|
add r4, r2, #0x344
|
|
add r5, r0, #0x400
|
|
addls pc, pc, r1, lsl #2
|
|
b _0201D288
|
|
_0201D078: ; jump table
|
|
b _0201D08C ; case 0
|
|
b _0201D0CC ; case 1
|
|
b _0201D180 ; case 2
|
|
b _0201D1A8 ; case 3
|
|
b _0201D214 ; case 4
|
|
_0201D08C:
|
|
mov r0, #0
|
|
strh r0, [r5, #0x14]
|
|
mov r0, #0x13
|
|
bl sub_02019DB4
|
|
strh r0, [r5, #0xe]
|
|
mov r0, #0x35
|
|
bl sub_02019DB4
|
|
strh r0, [r5, #0x10]
|
|
ldr r1, [r5, #0x18]
|
|
ldrh r0, [r1, #0x12]
|
|
ldrh r1, [r1, #0x14]
|
|
bl sub_02018B4C
|
|
mov r0, #4
|
|
strh r0, [r4, #0xc]
|
|
mov r0, #0
|
|
strh r0, [r5, #0x16]
|
|
_0201D0CC:
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
str r0, [r5, #8]
|
|
ldr r1, [r5, #0x18]
|
|
ldrh r0, [r5, #0x14]
|
|
add r1, r1, #0x18
|
|
add r0, r1, r0
|
|
bl sub_0201A540
|
|
movs r4, r0
|
|
beq _0201D100
|
|
ldrh r0, [r5, #0x14]
|
|
cmp r0, #0x10
|
|
blo _0201D10C
|
|
_0201D100:
|
|
mov r0, #0x84
|
|
strh r0, [r5]
|
|
b _0201D288
|
|
_0201D10C:
|
|
mov r0, #0
|
|
bl sub_0202451C
|
|
cmp r0, #0
|
|
movne r0, #0xe
|
|
strneh r0, [r5, #0x16]
|
|
movne r0, #0x84
|
|
strneh r0, [r5]
|
|
bne _0201D288
|
|
ldrh r0, [r5]
|
|
mov r1, #0
|
|
cmp r0, #0x80
|
|
mov r0, r4, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bne _0201D164
|
|
bl sub_020190F0
|
|
bl sub_030285D0
|
|
ldr r1, _0201D2AC ; =0x04808040
|
|
mov r0, #0x8000
|
|
ldrh r1, [r1]
|
|
strh r1, [r5, #0xc]
|
|
bl sub_020194D0
|
|
b _0201D168
|
|
_0201D164:
|
|
bl sub_020190F0
|
|
_0201D168:
|
|
mov r0, #0x82
|
|
strh r0, [r5]
|
|
ldr r0, [r5, #0x18]
|
|
ldr r1, _0201D2B0 ; =0x027EDAC8
|
|
ldrh r0, [r0, #0x16]
|
|
bl sub_0201A2DC
|
|
_0201D180:
|
|
ldr r1, [r5, #4]
|
|
ldr r0, _0201D2B4 ; =0x0480819C
|
|
add r1, r1, #1
|
|
str r1, [r5, #4]
|
|
ldrh r0, [r0]
|
|
tst r0, #1
|
|
ldrne r0, [r5, #8]
|
|
addne r0, r0, #0x64
|
|
strne r0, [r5, #8]
|
|
b _0201D288
|
|
_0201D1A8:
|
|
ldr r1, [r5, #0x18]
|
|
ldrh r0, [r5, #0x14]
|
|
add r1, r1, #0x18
|
|
add r0, r1, r0
|
|
bl sub_0201A540
|
|
ldr r1, [r5, #4]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
ldrne r0, [r5, #8]
|
|
mov r2, #0
|
|
cmpne r0, #0
|
|
beq _0201D1E8
|
|
bl sub_030365C4
|
|
add r2, r0, #1
|
|
cmp r2, #0x64
|
|
movhi r2, #0x64
|
|
_0201D1E8:
|
|
ldr r1, [r5, #0x1c]
|
|
ldrh r0, [r5, #0x14]
|
|
orr r2, r4, r2, lsl #8
|
|
add r0, r1, r0, lsl #1
|
|
strh r2, [r0, #8]
|
|
ldrh r1, [r5, #0x14]
|
|
mov r0, #0x81
|
|
add r1, r1, #1
|
|
strh r1, [r5, #0x14]
|
|
strh r0, [r5]
|
|
b _0201D288
|
|
_0201D214:
|
|
bl sub_03028988
|
|
ldr r1, _0201D2A8 ; =0x0380FFF4
|
|
mov r0, #0x13
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x2e]
|
|
strh r1, [r4, #0xc]
|
|
ldrh r1, [r5, #0xe]
|
|
bl sub_02019DE0
|
|
ldrh r1, [r5, #0x10]
|
|
mov r0, #0x35
|
|
bl sub_02019DE0
|
|
ldrh r0, [r5, #0xc]
|
|
bl sub_020194D0
|
|
ldrh r2, [r5, #0x16]
|
|
ldr r1, [r5, #0x1c]
|
|
mov r0, #0
|
|
strh r2, [r1, #4]
|
|
strh r0, [r5]
|
|
ldrh r2, [r5, #0x14]
|
|
mov r1, r0
|
|
b _0201D27C
|
|
_0201D26C:
|
|
ldr r0, [r5, #0x1c]
|
|
add r0, r0, r2, lsl #1
|
|
strh r1, [r0, #8]
|
|
add r2, r2, #1
|
|
_0201D27C:
|
|
cmp r2, #0x10
|
|
blo _0201D26C
|
|
bl sub_0201D304
|
|
_0201D288:
|
|
ldrh r0, [r5]
|
|
cmp r0, #0
|
|
beq _0201D2A0
|
|
mov r0, #2
|
|
mov r1, #5
|
|
bl sub_03027D88
|
|
_0201D2A0:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201D2A8: .word 0x0380FFF4
|
|
_0201D2AC: .word 0x04808040
|
|
_0201D2B0: .word 0x027EDAC8
|
|
_0201D2B4: .word 0x0480819C
|
|
arm_func_end sub_0201D048
|
|
|
|
arm_func_start sub_0201D2B8
|
|
sub_0201D2B8: ; 0x0201D2B8
|
|
ldr r0, _0201D2DC ; =0x0380FFF4
|
|
ldr ip, _0201D2E0 ; =sub_037F8598
|
|
ldr r1, [r0]
|
|
mov r3, #0x83
|
|
add r2, r1, #0x400
|
|
mov r0, #2
|
|
mov r1, #5
|
|
strh r3, [r2, #4]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201D2DC: .word 0x0380FFF4
|
|
_0201D2E0: .word sub_037F8598
|
|
arm_func_end sub_0201D2B8
|
|
|
|
arm_func_start sub_0201D2E4
|
|
sub_0201D2E4: ; 0x0201D2E4
|
|
ldr r0, _0201D2FC ; =0x0380FFF4
|
|
ldr ip, _0201D300 ; =sub_027EDEC0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0xc6
|
|
add r0, r0, #0x300
|
|
bx ip
|
|
.align 2, 0
|
|
_0201D2FC: .word 0x0380FFF4
|
|
_0201D300: .word sub_027EDEC0
|
|
arm_func_end sub_0201D2E4
|
|
|
|
arm_func_start sub_0201D304
|
|
sub_0201D304: ; 0x0201D304
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0201D354 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x24
|
|
add r1, r0, #0x400
|
|
ldrh r0, [r1, #4]
|
|
add r4, r2, #0x17c
|
|
bic r0, r0, #1
|
|
strh r0, [r1, #4]
|
|
ldr r1, [r2, #0x424]
|
|
add r0, r4, #0x84
|
|
bl sub_03028548
|
|
ldrh r0, [r4, #0x8c]
|
|
cmp r0, #0
|
|
beq _0201D34C
|
|
mov r0, #2
|
|
mov r1, #0xb
|
|
bl sub_03027D88
|
|
_0201D34C:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201D354: .word 0x0380FFF4
|
|
arm_func_end sub_0201D304
|
|
|
|
arm_func_start sub_0201D358
|
|
sub_0201D358: ; 0x0201D358
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _0201D3D0 ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r1, [r2]
|
|
mov r6, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x18
|
|
bl sub_0302805C
|
|
movs r4, r0
|
|
bne _0201D390
|
|
mov r0, #1
|
|
bl sub_0201A85C
|
|
mov r0, #0
|
|
b _0201D3C8
|
|
_0201D390:
|
|
mov r0, #0x84
|
|
strh r0, [r4, #0xc]
|
|
mov r2, #4
|
|
mov r1, r6
|
|
add r0, r4, #0x10
|
|
strh r2, [r4, #0xe]
|
|
bl sub_020198D0
|
|
ldr r0, _0201D3D0 ; =0x0380FFF4
|
|
strh r5, [r4, #0x16]
|
|
ldr r0, [r0]
|
|
mov r1, r4
|
|
add r0, r0, #0x188
|
|
bl sub_03028548
|
|
mov r0, #1
|
|
_0201D3C8:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201D3D0: .word 0x0380FFF4
|
|
arm_func_end sub_0201D358
|
|
|
|
arm_func_start sub_0201D3D4
|
|
sub_0201D3D4: ; 0x0201D3D4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _0201D44C ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r1, [r2]
|
|
mov r6, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x18
|
|
bl sub_0302805C
|
|
movs r4, r0
|
|
bne _0201D40C
|
|
mov r0, #1
|
|
bl sub_0201A85C
|
|
mov r0, #0
|
|
b _0201D444
|
|
_0201D40C:
|
|
mov r0, #0x85
|
|
strh r0, [r4, #0xc]
|
|
mov r2, #4
|
|
mov r1, r6
|
|
add r0, r4, #0x10
|
|
strh r2, [r4, #0xe]
|
|
bl sub_020198D0
|
|
ldr r0, _0201D44C ; =0x0380FFF4
|
|
strh r5, [r4, #0x16]
|
|
ldr r0, [r0]
|
|
mov r1, r4
|
|
add r0, r0, #0x188
|
|
bl sub_03028548
|
|
mov r0, #1
|
|
_0201D444:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201D44C: .word 0x0380FFF4
|
|
arm_func_end sub_0201D3D4
|
|
|
|
arm_func_start sub_0201D450
|
|
sub_0201D450: ; 0x0201D450
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r3, _0201D540 ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r1, [r3]
|
|
mov r7, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x3a
|
|
mov r6, r2
|
|
bl sub_0302805C
|
|
movs r4, r0
|
|
bne _0201D48C
|
|
mov r0, #1
|
|
bl sub_0201A85C
|
|
mov r0, #0
|
|
b _0201D538
|
|
_0201D48C:
|
|
mov r0, #0x86
|
|
strh r0, [r4, #0xc]
|
|
mov r2, #0x15
|
|
mov r1, r7
|
|
add r0, r4, #0x10
|
|
strh r2, [r4, #0xe]
|
|
bl sub_020198D0
|
|
ldr r1, _0201D544 ; =0x00000FFF
|
|
add r0, r6, #1
|
|
and r1, r5, r1
|
|
strh r1, [r4, #0x16]
|
|
bl sub_0201A540
|
|
add r7, r6, #2
|
|
strh r0, [r4, #0x18]
|
|
mov r5, #0
|
|
add r6, r4, #0x1a
|
|
b _0201D4F0
|
|
_0201D4D0:
|
|
cmp r5, #0x20
|
|
bhs _0201D4FC
|
|
add r0, r7, r5
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
add r0, r6, r5
|
|
bl sub_0201A514
|
|
add r5, r5, #1
|
|
_0201D4F0:
|
|
ldrh r0, [r4, #0x18]
|
|
cmp r5, r0
|
|
blo _0201D4D0
|
|
_0201D4FC:
|
|
add r7, r4, #0x1a
|
|
mov r6, #0
|
|
b _0201D518
|
|
_0201D508:
|
|
mov r1, r6
|
|
add r0, r7, r5
|
|
bl sub_0201A514
|
|
add r5, r5, #1
|
|
_0201D518:
|
|
cmp r5, #0x20
|
|
blo _0201D508
|
|
ldr r0, _0201D540 ; =0x0380FFF4
|
|
mov r1, r4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_03028548
|
|
mov r0, #1
|
|
_0201D538:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201D540: .word 0x0380FFF4
|
|
_0201D544: .word 0x00000FFF
|
|
arm_func_end sub_0201D450
|
|
|
|
arm_func_start sub_0201D548
|
|
sub_0201D548: ; 0x0201D548
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r3, _0201D630 ; =0x0380FFF4
|
|
mov r6, r1
|
|
ldr r1, [r3]
|
|
mov r7, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x3a
|
|
mov r5, r2
|
|
bl sub_0302805C
|
|
movs r4, r0
|
|
bne _0201D584
|
|
mov r0, #1
|
|
bl sub_0201A85C
|
|
mov r0, #0
|
|
b _0201D628
|
|
_0201D584:
|
|
mov r0, #0x87
|
|
strh r0, [r4, #0xc]
|
|
mov r0, #0x15
|
|
strh r0, [r4, #0xe]
|
|
mov r1, r7
|
|
add r0, r4, #0x10
|
|
bl sub_020198D0
|
|
strh r6, [r4, #0x16]
|
|
add r0, r5, #1
|
|
bl sub_0201A540
|
|
add r6, r5, #2
|
|
strh r0, [r4, #0x18]
|
|
mov r7, #0
|
|
add r5, r4, #0x1a
|
|
b _0201D5E0
|
|
_0201D5C0:
|
|
cmp r7, #0x20
|
|
bhs _0201D5EC
|
|
add r0, r6, r7
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
add r0, r5, r7
|
|
bl sub_0201A514
|
|
add r7, r7, #1
|
|
_0201D5E0:
|
|
ldrh r0, [r4, #0x18]
|
|
cmp r7, r0
|
|
blo _0201D5C0
|
|
_0201D5EC:
|
|
add r6, r4, #0x1a
|
|
mov r5, #0
|
|
b _0201D608
|
|
_0201D5F8:
|
|
mov r1, r5
|
|
add r0, r6, r7
|
|
bl sub_0201A514
|
|
add r7, r7, #1
|
|
_0201D608:
|
|
cmp r7, #0x20
|
|
blo _0201D5F8
|
|
ldr r0, _0201D630 ; =0x0380FFF4
|
|
mov r1, r4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_03028548
|
|
mov r0, #1
|
|
_0201D628:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201D630: .word 0x0380FFF4
|
|
arm_func_end sub_0201D548
|
|
|
|
arm_func_start sub_0201D634
|
|
sub_0201D634: ; 0x0201D634
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _0201D6AC ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r1, [r2]
|
|
mov r6, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x18
|
|
bl sub_0302805C
|
|
movs r4, r0
|
|
bne _0201D66C
|
|
mov r0, #1
|
|
bl sub_0201A85C
|
|
mov r0, #0
|
|
b _0201D6A4
|
|
_0201D66C:
|
|
mov r0, #0x88
|
|
strh r0, [r4, #0xc]
|
|
mov r2, #4
|
|
mov r1, r6
|
|
add r0, r4, #0x10
|
|
strh r2, [r4, #0xe]
|
|
bl sub_020198D0
|
|
ldr r0, _0201D6AC ; =0x0380FFF4
|
|
strh r5, [r4, #0x16]
|
|
ldr r0, [r0]
|
|
mov r1, r4
|
|
add r0, r0, #0x188
|
|
bl sub_03028548
|
|
mov r0, #1
|
|
_0201D6A4:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201D6AC: .word 0x0380FFF4
|
|
arm_func_end sub_0201D634
|
|
|
|
arm_func_start sub_0201D6B0
|
|
sub_0201D6B0: ; 0x0201D6B0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _0201D720 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
mov r1, #0x16
|
|
add r0, r0, #0x188
|
|
bl sub_0302805C
|
|
movs r4, r0
|
|
bne _0201D6E4
|
|
mov r0, #1
|
|
bl sub_0201A85C
|
|
mov r0, #0
|
|
b _0201D718
|
|
_0201D6E4:
|
|
mov r0, #0x8b
|
|
strh r0, [r4, #0xc]
|
|
mov r2, #3
|
|
mov r1, r5
|
|
add r0, r4, #0x10
|
|
strh r2, [r4, #0xe]
|
|
bl sub_020198D0
|
|
ldr r0, _0201D720 ; =0x0380FFF4
|
|
mov r1, r4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_03028548
|
|
mov r0, #1
|
|
_0201D718:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201D720: .word 0x0380FFF4
|
|
arm_func_end sub_0201D6B0
|
|
|
|
arm_func_start sub_0201D724
|
|
sub_0201D724: ; 0x0201D724
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0201D780 ; =0x0380FFF4
|
|
mov r1, #0x10
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_0302805C
|
|
movs r1, r0
|
|
bne _0201D754
|
|
mov r0, #1
|
|
bl sub_0201A85C
|
|
mov r0, #0
|
|
b _0201D778
|
|
_0201D754:
|
|
mov r0, #0x8c
|
|
strh r0, [r1, #0xc]
|
|
mov r2, #0
|
|
ldr r0, _0201D780 ; =0x0380FFF4
|
|
strh r2, [r1, #0xe]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_03028548
|
|
mov r0, #1
|
|
_0201D778:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201D780: .word 0x0380FFF4
|
|
arm_func_end sub_0201D724
|
|
|
|
arm_func_start sub_0201D784
|
|
sub_0201D784: ; 0x0201D784
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _0201D89C ; =0x0380FFF4
|
|
mov r6, r0
|
|
ldr r2, [r1]
|
|
add r0, r2, #0x300
|
|
ldrh r1, [r0, #0xe4]
|
|
add r0, r2, #0x188
|
|
add r1, r1, #0x3e
|
|
add r4, r2, #0x344
|
|
bl sub_0302805C
|
|
movs r5, r0
|
|
bne _0201D7C4
|
|
mov r0, #1
|
|
bl sub_0201A85C
|
|
mov r0, #0
|
|
b _0201D894
|
|
_0201D7C4:
|
|
mov r0, #0x8d
|
|
strh r0, [r5, #0xc]
|
|
ldrh r1, [r4, #0xa0]
|
|
add r0, r5, #0x1f
|
|
add r1, r1, #1
|
|
add r1, r1, r1, lsr #31
|
|
mov r1, r1, asr #1
|
|
add r1, r1, #0x16
|
|
strh r1, [r5, #0xe]
|
|
ldrh r1, [r6, #0x12]
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
ldrh r1, [r6, #0xe]
|
|
add r0, r5, #0x1e
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
add r0, r5, #0x2e
|
|
add r1, r6, #0x1e
|
|
bl sub_020198D0
|
|
ldrh r2, [r4, #0xa0]
|
|
strh r2, [r5, #0x16]
|
|
cmp r2, #0
|
|
beq _0201D87C
|
|
ldrh r0, [r4, #0xa2]
|
|
tst r0, #1
|
|
ldr r0, [r4, #0x9c]
|
|
beq _0201D870
|
|
add r7, r5, #0x3c
|
|
add r6, r0, #1
|
|
mov r4, #0
|
|
b _0201D860
|
|
_0201D840:
|
|
mov r0, r6
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
mov r0, r7
|
|
bl sub_0201A514
|
|
add r6, r6, #1
|
|
add r7, r7, #1
|
|
add r4, r4, #1
|
|
_0201D860:
|
|
ldrh r0, [r5, #0x16]
|
|
cmp r4, r0
|
|
blo _0201D840
|
|
b _0201D87C
|
|
_0201D870:
|
|
add r1, r5, #0x3c
|
|
add r2, r2, #1
|
|
bl sub_0302D78C
|
|
_0201D87C:
|
|
ldr r0, _0201D89C ; =0x0380FFF4
|
|
mov r1, r5
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_03028548
|
|
mov r0, #1
|
|
_0201D894:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201D89C: .word 0x0380FFF4
|
|
arm_func_end sub_0201D784
|
|
|
|
arm_func_start sub_0201D8A0
|
|
sub_0201D8A0: ; 0x0201D8A0
|
|
ldr r1, _0201D8C0 ; =0x0380FFF4
|
|
ldr ip, _0201D8C4 ; =sub_037FDF74
|
|
ldr r1, [r1]
|
|
mov r0, #0
|
|
add r1, r1, #4
|
|
mov r2, #0x20
|
|
add r1, r1, #0x400
|
|
bx ip
|
|
.align 2, 0
|
|
_0201D8C0: .word 0x0380FFF4
|
|
_0201D8C4: .word sub_037FDF74
|
|
arm_func_end sub_0201D8A0
|
|
|
|
arm_func_start sub_0201D8C8
|
|
sub_0201D8C8: ; 0x0201D8C8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _0201D9B0 ; =0x0380FFF4
|
|
mov r5, r0
|
|
mov r0, #1
|
|
strh r0, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x10
|
|
bne _0201D9A8
|
|
add r0, r5, #0x10
|
|
bl sub_0201864C
|
|
mov r4, r0
|
|
ldrh r0, [r5, #0x16]
|
|
bl sub_020186AC
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x18]
|
|
bl sub_020186E0
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x1c]
|
|
bl sub_02018720
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x1e]
|
|
bl sub_020187A0
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x20]
|
|
bl sub_020187D4
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x22]
|
|
bl sub_02018874
|
|
orr r4, r4, r0
|
|
add r0, r5, #0x24
|
|
bl sub_02018898
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x74]
|
|
bl sub_020188F8
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x76]
|
|
bl sub_02018930
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x78]
|
|
bl sub_02018968
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x7a]
|
|
mov r1, #0
|
|
bl sub_020189A0
|
|
orr r4, r4, r0
|
|
add r0, r5, #0x7c
|
|
bl sub_02018A50
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x9c]
|
|
bl sub_02018A80
|
|
orr r4, r4, r0
|
|
ldrh r0, [r5, #0x9e]
|
|
bl sub_02018B28
|
|
orr r0, r4, r0
|
|
_0201D9A8:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201D9B0: .word 0x0380FFF4
|
|
arm_func_end sub_0201D8C8
|
|
|
|
arm_func_start sub_0201D9B4
|
|
sub_0201D9B4: ; 0x0201D9B4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0201D9F0 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x10
|
|
bne _0201D9E4
|
|
add r0, r0, #0x10
|
|
bl sub_0201864C
|
|
mov r3, r0
|
|
_0201D9E4:
|
|
mov r0, r3
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201D9F0: .word 0x0380FFF4
|
|
arm_func_end sub_0201D9B4
|
|
|
|
arm_func_start sub_0201D9F4
|
|
sub_0201D9F4: ; 0x0201D9F4
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _0201DA08 ; =sub_027E8EBC
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201DA08: .word sub_027E8EBC
|
|
arm_func_end sub_0201D9F4
|
|
|
|
arm_func_start sub_0201DA0C
|
|
sub_0201DA0C: ; 0x0201DA0C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0201DA48 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x10
|
|
bne _0201DA3C
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_020186E0
|
|
mov r3, r0
|
|
_0201DA3C:
|
|
mov r0, r3
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201DA48: .word 0x0380FFF4
|
|
arm_func_end sub_0201DA0C
|
|
|
|
arm_func_start sub_0201DA4C
|
|
sub_0201DA4C: ; 0x0201DA4C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0201DA98 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r2, [r1, #0x4c]
|
|
cmp r2, #0x20
|
|
movhi r0, r3
|
|
bhi _0201DA90
|
|
bne _0201DA88
|
|
ldrh r1, [r1, #0x56]
|
|
cmp r1, #0
|
|
movne r0, r3
|
|
bne _0201DA90
|
|
_0201DA88:
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_02018720
|
|
_0201DA90:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201DA98: .word 0x0380FFF4
|
|
arm_func_end sub_0201DA4C
|
|
|
|
arm_func_start sub_0201DA9C
|
|
sub_0201DA9C: ; 0x0201DA9C
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _0201DAB0 ; =sub_027E8FB0
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201DAB0: .word sub_027E8FB0
|
|
arm_func_end sub_0201DA9C
|
|
|
|
arm_func_start sub_0201DAB4
|
|
sub_0201DAB4: ; 0x0201DAB4
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _0201DAC8 ; =sub_027E8FE4
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201DAC8: .word sub_027E8FE4
|
|
arm_func_end sub_0201DAB4
|
|
|
|
arm_func_start sub_0201DACC
|
|
sub_0201DACC: ; 0x0201DACC
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _0201DAE0 ; =sub_027E9084
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201DAE0: .word sub_027E9084
|
|
arm_func_end sub_0201DACC
|
|
|
|
arm_func_start sub_0201DAE4
|
|
sub_0201DAE4: ; 0x0201DAE4
|
|
ldr ip, _0201DAF8 ; =sub_027E90A8
|
|
mov r2, #1
|
|
add r0, r0, #0x10
|
|
strh r2, [r1, #2]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201DAF8: .word sub_027E90A8
|
|
arm_func_end sub_0201DAE4
|
|
|
|
arm_func_start sub_0201DAFC
|
|
sub_0201DAFC: ; 0x0201DAFC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0201DB38 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x20
|
|
bhi _0201DB2C
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_020188F8
|
|
mov r3, r0
|
|
_0201DB2C:
|
|
mov r0, r3
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201DB38: .word 0x0380FFF4
|
|
arm_func_end sub_0201DAFC
|
|
|
|
arm_func_start sub_0201DB3C
|
|
sub_0201DB3C: ; 0x0201DB3C
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _0201DB50 ; =sub_027E9140
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201DB50: .word sub_027E9140
|
|
arm_func_end sub_0201DB3C
|
|
|
|
arm_func_start sub_0201DB54
|
|
sub_0201DB54: ; 0x0201DB54
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _0201DB68 ; =sub_027E9178
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201DB68: .word sub_027E9178
|
|
arm_func_end sub_0201DB54
|
|
|
|
arm_func_start sub_0201DB6C
|
|
sub_0201DB6C: ; 0x0201DB6C
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _0201DB84 ; =sub_027E91B0
|
|
ldrh r0, [r0, #0x10]
|
|
mov r1, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_0201DB84: .word sub_027E91B0
|
|
arm_func_end sub_0201DB6C
|
|
|
|
arm_func_start sub_0201DB88
|
|
sub_0201DB88: ; 0x0201DB88
|
|
ldr ip, _0201DB9C ; =sub_027E9260
|
|
mov r2, #1
|
|
add r0, r0, #0x10
|
|
strh r2, [r1, #2]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201DB9C: .word sub_027E9260
|
|
arm_func_end sub_0201DB88
|
|
|
|
arm_func_start sub_0201DBA0
|
|
sub_0201DBA0: ; 0x0201DBA0
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _0201DBB4 ; =sub_027E9290
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201DBB4: .word sub_027E9290
|
|
arm_func_end sub_0201DBA0
|
|
|
|
arm_func_start sub_0201DBB8
|
|
sub_0201DBB8: ; 0x0201DBB8
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr ip, _0201DBCC ; =sub_027E9338
|
|
ldrh r0, [r0, #0x10]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201DBCC: .word sub_027E9338
|
|
arm_func_end sub_0201DBB8
|
|
|
|
arm_func_start sub_0201DBD0
|
|
sub_0201DBD0: ; 0x0201DBD0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
mov r5, r0
|
|
ldrh r0, [r5, #0x14]
|
|
cmp r0, #0x3f
|
|
movhi r0, #5
|
|
bhi _0201DC14
|
|
ldrh r0, [r5, #0x10]
|
|
ldrh r1, [r5, #0x12]
|
|
bl sub_02018B4C
|
|
movs r4, r0
|
|
bne _0201DC10
|
|
ldrh r1, [r5, #0x14]
|
|
mov r0, #0x2e
|
|
bl sub_02019DE0
|
|
_0201DC10:
|
|
mov r0, r4
|
|
_0201DC14:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_0201DBD0
|
|
|
|
arm_func_start sub_0201DC1C
|
|
sub_0201DC1C: ; 0x0201DC1C
|
|
stmdb sp!, {r4, lr}
|
|
ldr ip, _0201DD1C ; =0x0380FFF4
|
|
mov r3, #1
|
|
ldr r2, [ip]
|
|
ldr r2, [r2, #0x31c]
|
|
strh r3, [r1, #2]
|
|
ldr r1, [ip]
|
|
ldrh r4, [r0, #0x10]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x22]
|
|
cmp r4, r1
|
|
blo _0201DC5C
|
|
rsb r1, r3, #0x10000
|
|
cmp r4, r1
|
|
movne r0, #5
|
|
bne _0201DD14
|
|
_0201DC5C:
|
|
ldrh r3, [r0, #0x14]
|
|
cmp r3, #0x3f
|
|
bls _0201DC78
|
|
ldr r1, _0201DD20 ; =0x0000FFFF
|
|
cmp r3, r1
|
|
movne r0, #5
|
|
bne _0201DD14
|
|
_0201DC78:
|
|
ldr r1, _0201DD20 ; =0x0000FFFF
|
|
cmp r4, r1
|
|
bne _0201DCCC
|
|
ldr ip, _0201DD1C ; =0x0380FFF4
|
|
mov r4, #1
|
|
mov r3, #0x1c
|
|
b _0201DCB4
|
|
_0201DC94:
|
|
mla lr, r4, r3, r2
|
|
ldrh r1, [r0, #0x12]
|
|
add r4, r4, #1
|
|
strh r1, [lr, #0x1a]
|
|
ldrh r1, [lr, #0x18]
|
|
cmp r1, #0
|
|
ldrneh r1, [r0, #0x12]
|
|
strneh r1, [lr, #0x18]
|
|
_0201DCB4:
|
|
ldr r1, [ip]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x22]
|
|
cmp r4, r1
|
|
blo _0201DC94
|
|
b _0201DD00
|
|
_0201DCCC:
|
|
cmp r4, #0
|
|
beq _0201DD00
|
|
mov r1, #0x1c
|
|
mla r3, r4, r1, r2
|
|
ldrh lr, [r0, #0x12]
|
|
add ip, r2, #0x18
|
|
strh lr, [r3, #0x1a]
|
|
ldrh r2, [r0, #0x10]
|
|
mul r3, r2, r1
|
|
ldrh r1, [ip, r3]
|
|
cmp r1, #0
|
|
ldrneh r1, [r0, #0x12]
|
|
strneh r1, [ip, r3]
|
|
_0201DD00:
|
|
ldrh r0, [r0, #0x14]
|
|
cmp r0, #0
|
|
beq _0201DD10
|
|
bl sub_02019620
|
|
_0201DD10:
|
|
mov r0, #0
|
|
_0201DD14:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201DD1C: .word 0x0380FFF4
|
|
_0201DD20: .word 0x0000FFFF
|
|
arm_func_end sub_0201DC1C
|
|
|
|
arm_func_start sub_0201DD24
|
|
sub_0201DD24: ; 0x0201DD24
|
|
ldr r2, _0201DD78 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x20
|
|
movhi r0, r3
|
|
bxhi lr
|
|
ldrh r1, [r0, #0x10]
|
|
add r1, r1, #1
|
|
strh r1, [r0, #0x10]
|
|
ldr r1, [r2]
|
|
ldrh r2, [r0, #0x10]
|
|
add r0, r1, #0x300
|
|
ldrh r1, [r0, #0x20]
|
|
cmp r2, r1
|
|
movhi r0, #5
|
|
strlsh r2, [r0, #0x22]
|
|
movls r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0201DD78: .word 0x0380FFF4
|
|
arm_func_end sub_0201DD24
|
|
|
|
arm_func_start sub_0201DD7C
|
|
sub_0201DD7C: ; 0x0201DD7C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0201DDB8 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x10
|
|
blo _0201DDAC
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_02018B90
|
|
mov r3, r0
|
|
_0201DDAC:
|
|
mov r0, r3
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201DDB8: .word 0x0380FFF4
|
|
arm_func_end sub_0201DD7C
|
|
|
|
arm_func_start sub_0201DDBC
|
|
sub_0201DDBC: ; 0x0201DDBC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0201DDF8 ; =0x0380FFF4
|
|
mov r3, r0
|
|
mov r0, #1
|
|
strh r0, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x10
|
|
blo _0201DDF0
|
|
ldrh r0, [r3, #0x10]
|
|
ldrh r1, [r3, #0x12]
|
|
bl sub_02018BF8
|
|
_0201DDF0:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201DDF8: .word 0x0380FFF4
|
|
arm_func_end sub_0201DDBC
|
|
|
|
arm_func_start sub_0201DDFC
|
|
sub_0201DDFC: ; 0x0201DDFC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0201DE38 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x10
|
|
blo _0201DE2C
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_02018CCC
|
|
mov r3, r0
|
|
_0201DE2C:
|
|
mov r0, r3
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201DE38: .word 0x0380FFF4
|
|
arm_func_end sub_0201DDFC
|
|
|
|
arm_func_start sub_0201DE3C
|
|
sub_0201DE3C: ; 0x0201DE3C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0201DE78 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0x10
|
|
blo _0201DE6C
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_02018D0C
|
|
mov r3, r0
|
|
_0201DE6C:
|
|
mov r0, r3
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201DE78: .word 0x0380FFF4
|
|
arm_func_end sub_0201DE3C
|
|
|
|
arm_func_start sub_0201DE7C
|
|
sub_0201DE7C: ; 0x0201DE7C
|
|
ldr ip, _0201DE90 ; =sub_027E956C
|
|
mov r2, #1
|
|
add r0, r0, #0x10
|
|
strh r2, [r1, #2]
|
|
bx ip
|
|
.align 2, 0
|
|
_0201DE90: .word sub_027E956C
|
|
arm_func_end sub_0201DE7C
|
|
|
|
arm_func_start sub_0201DE94
|
|
sub_0201DE94: ; 0x0201DE94
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
mov r1, r0
|
|
ldrh r0, [r1, #0x10]
|
|
ldr ip, _0201DEB0 ; =sub_027E95D0
|
|
add r1, r1, #0x12
|
|
bx ip
|
|
.align 2, 0
|
|
_0201DEB0: .word sub_027E95D0
|
|
arm_func_end sub_0201DE94
|
|
|
|
arm_func_start sub_0201DEB4
|
|
sub_0201DEB4: ; 0x0201DEB4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0201DEEC ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x2e]
|
|
cmp r1, #1
|
|
movne r0, #0xb
|
|
bne _0201DEE4
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_02018ED0
|
|
_0201DEE4:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201DEEC: .word 0x0380FFF4
|
|
arm_func_end sub_0201DEB4
|
|
|
|
arm_func_start sub_0201DEF0
|
|
sub_0201DEF0: ; 0x0201DEF0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0201DF28 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x2e]
|
|
cmp r1, #1
|
|
movne r0, #0xb
|
|
bne _0201DF20
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_02018F28
|
|
_0201DF20:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201DF28: .word 0x0380FFF4
|
|
arm_func_end sub_0201DEF0
|
|
|
|
arm_func_start sub_0201DF2C
|
|
sub_0201DF2C: ; 0x0201DF2C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0201DF68 ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x2e]
|
|
cmp r1, #2
|
|
cmpne r1, #3
|
|
movne r0, #0xb
|
|
bne _0201DF60
|
|
ldrh r0, [r0, #0x10]
|
|
bl sub_02018F6C
|
|
_0201DF60:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201DF68: .word 0x0380FFF4
|
|
arm_func_end sub_0201DF2C
|
|
|
|
arm_func_start sub_0201DF6C
|
|
sub_0201DF6C: ; 0x0201DF6C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0201DFCC ; =0x0380FFF4
|
|
mov r3, #1
|
|
strh r3, [r1, #2]
|
|
ldr r1, [r2]
|
|
mov r3, r0
|
|
add r0, r1, #0x300
|
|
ldrh r0, [r0, #0x2e]
|
|
cmp r0, #1
|
|
movne r0, #0xb
|
|
bne _0201DFC4
|
|
ldrh r0, [r3, #0x10]
|
|
ldrh r2, [r3, #0xe]
|
|
add r1, r0, #1
|
|
add r1, r1, r1, lsr #31
|
|
mov r1, r1, asr #1
|
|
add r1, r1, #1
|
|
cmp r2, r1
|
|
movlt r0, #4
|
|
blt _0201DFC4
|
|
add r1, r3, #0x12
|
|
bl sub_02019744
|
|
_0201DFC4:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201DFCC: .word 0x0380FFF4
|
|
arm_func_end sub_0201DF6C
|
|
|
|
arm_func_start sub_0201DFD0
|
|
sub_0201DFD0: ; 0x0201DFD0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0201E104 ; =0x0380FFF4
|
|
mov r4, r1
|
|
mov r1, #0x21
|
|
strh r1, [r4, #2]
|
|
ldr r1, [r0]
|
|
add r0, r4, #6
|
|
add r1, r1, #0x324
|
|
bl sub_020198D0
|
|
ldr r0, _0201E104 ; =0x0380FFF4
|
|
add r1, r4, #0x22
|
|
ldr r3, [r0]
|
|
mov r2, #0x20
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x2a]
|
|
strh r3, [r4, #0xc]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x2c]
|
|
strh r3, [r4, #0xe]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0xbe]
|
|
strh r3, [r4, #0x10]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x2e]
|
|
strh r3, [r4, #0x12]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x30]
|
|
strh r3, [r4, #0x14]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x34]
|
|
strh r3, [r4, #0x16]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x36]
|
|
strh r3, [r4, #0x18]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x3a]
|
|
mov r3, r3, lsl #0x1f
|
|
mov r3, r3, lsr #0x1f
|
|
strh r3, [r4, #0x1a]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x3a]
|
|
mov r3, r3, lsl #0x1e
|
|
mov r3, r3, lsr #0x1f
|
|
strh r3, [r4, #0x1c]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0xc2]
|
|
strh r3, [r4, #0x1e]
|
|
ldr r3, [r0]
|
|
add r3, r3, #0x300
|
|
ldrh r3, [r3, #0x3c]
|
|
strh r3, [r4, #0x20]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x384
|
|
bl sub_0302D78C
|
|
ldr r2, _0201E104 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x3a]
|
|
mov r1, r1, lsl #0x1d
|
|
mov r1, r1, lsr #0x1f
|
|
strh r1, [r4, #0x42]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x32]
|
|
strh r1, [r4, #0x44]
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E104: .word 0x0380FFF4
|
|
arm_func_end sub_0201DFD0
|
|
|
|
arm_func_start sub_0201E108
|
|
sub_0201E108: ; 0x0201E108
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0201E134 ; =0x0380FFF4
|
|
mov r2, #4
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
add r0, r1, #6
|
|
add r1, r2, #0x324
|
|
bl sub_020198D0
|
|
mov r0, #0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E134: .word 0x0380FFF4
|
|
arm_func_end sub_0201E108
|
|
|
|
arm_func_start sub_0201E138
|
|
sub_0201E138: ; 0x0201E138
|
|
ldr r0, _0201E15C ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x2a]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E15C: .word 0x0380FFF4
|
|
arm_func_end sub_0201E138
|
|
|
|
arm_func_start sub_0201E160
|
|
sub_0201E160: ; 0x0201E160
|
|
ldr r3, _0201E194 ; =0x0380FFF4
|
|
mov r0, #3
|
|
strh r0, [r1, #2]
|
|
ldr r2, [r3]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x2c]
|
|
strh r2, [r1, #6]
|
|
ldr r2, [r3]
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0xbe]
|
|
strh r2, [r1, #8]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E194: .word 0x0380FFF4
|
|
arm_func_end sub_0201E160
|
|
|
|
arm_func_start sub_0201E198
|
|
sub_0201E198: ; 0x0201E198
|
|
ldr r0, _0201E1BC ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x2e]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E1BC: .word 0x0380FFF4
|
|
arm_func_end sub_0201E198
|
|
|
|
arm_func_start sub_0201E1C0
|
|
sub_0201E1C0: ; 0x0201E1C0
|
|
ldr r0, _0201E1E4 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x30]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E1E4: .word 0x0380FFF4
|
|
arm_func_end sub_0201E1C0
|
|
|
|
arm_func_start sub_0201E1E8
|
|
sub_0201E1E8: ; 0x0201E1E8
|
|
ldr r0, _0201E20C ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x34]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E20C: .word 0x0380FFF4
|
|
arm_func_end sub_0201E1E8
|
|
|
|
arm_func_start sub_0201E210
|
|
sub_0201E210: ; 0x0201E210
|
|
ldr r0, _0201E234 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x36]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E234: .word 0x0380FFF4
|
|
arm_func_end sub_0201E210
|
|
|
|
arm_func_start sub_0201E238
|
|
sub_0201E238: ; 0x0201E238
|
|
ldr r0, _0201E264 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x3a]
|
|
mov r2, r2, lsl #0x1f
|
|
mov r2, r2, lsr #0x1f
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E264: .word 0x0380FFF4
|
|
arm_func_end sub_0201E238
|
|
|
|
arm_func_start sub_0201E268
|
|
sub_0201E268: ; 0x0201E268
|
|
ldr r0, _0201E294 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x3a]
|
|
mov r2, r2, lsl #0x1e
|
|
mov r2, r2, lsr #0x1f
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E294: .word 0x0380FFF4
|
|
arm_func_end sub_0201E268
|
|
|
|
arm_func_start sub_0201E298
|
|
sub_0201E298: ; 0x0201E298
|
|
ldr r0, _0201E2BC ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0xc2]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E2BC: .word 0x0380FFF4
|
|
arm_func_end sub_0201E298
|
|
|
|
arm_func_start sub_0201E2C0
|
|
sub_0201E2C0: ; 0x0201E2C0
|
|
ldr r0, _0201E2E4 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x3c]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E2E4: .word 0x0380FFF4
|
|
arm_func_end sub_0201E2C0
|
|
|
|
arm_func_start sub_0201E2E8
|
|
sub_0201E2E8: ; 0x0201E2E8
|
|
ldr r0, _0201E320 ; =0x0380FFF4
|
|
mov r2, #0x11
|
|
strh r2, [r1, #2]
|
|
ldr r0, [r0]
|
|
add r3, r1, #6
|
|
add r2, r0, #0x384
|
|
mov r1, #0
|
|
_0201E304:
|
|
ldrh r0, [r2], #2
|
|
add r1, r1, #1
|
|
cmp r1, #0x10
|
|
strh r0, [r3], #2
|
|
blo _0201E304
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E320: .word 0x0380FFF4
|
|
arm_func_end sub_0201E2E8
|
|
|
|
arm_func_start sub_0201E324
|
|
sub_0201E324: ; 0x0201E324
|
|
ldr r0, _0201E350 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x3a]
|
|
mov r2, r2, lsl #0x1d
|
|
mov r2, r2, lsr #0x1f
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E350: .word 0x0380FFF4
|
|
arm_func_end sub_0201E324
|
|
|
|
arm_func_start sub_0201E354
|
|
sub_0201E354: ; 0x0201E354
|
|
ldr r0, _0201E378 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x32]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E378: .word 0x0380FFF4
|
|
arm_func_end sub_0201E354
|
|
|
|
arm_func_start sub_0201E37C
|
|
sub_0201E37C: ; 0x0201E37C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r1
|
|
mov r0, #4
|
|
strh r0, [r4, #2]
|
|
mov r0, #0x13
|
|
bl sub_02019DB4
|
|
strh r0, [r4, #6]
|
|
mov r0, #0x35
|
|
bl sub_02019DB4
|
|
strh r0, [r4, #8]
|
|
mov r0, #0x2e
|
|
bl sub_02019DB4
|
|
strh r0, [r4, #0xa]
|
|
mov r0, #0
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_0201E37C
|
|
|
|
arm_func_start sub_0201E3BC
|
|
sub_0201E3BC: ; 0x0201E3BC
|
|
ldr r0, _0201E3E4 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x22]
|
|
sub r2, r2, #1
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E3E4: .word 0x0380FFF4
|
|
arm_func_end sub_0201E3BC
|
|
|
|
arm_func_start sub_0201E3E8
|
|
sub_0201E3E8: ; 0x0201E3E8
|
|
ldr r0, _0201E420 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r2, [r0, #0x4c]
|
|
cmp r2, #0x10
|
|
movlo r0, #1
|
|
ldrhsh r2, [r0, #0x3a]
|
|
movhs r0, #0
|
|
movhs r2, r2, lsl #0x1c
|
|
movhs r2, r2, lsr #0x1f
|
|
strhsh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E420: .word 0x0380FFF4
|
|
arm_func_end sub_0201E3E8
|
|
|
|
arm_func_start sub_0201E424
|
|
sub_0201E424: ; 0x0201E424
|
|
ldr r3, _0201E480 ; =0x0380FFF4
|
|
mov r0, #3
|
|
strh r0, [r1, #2]
|
|
ldr r0, [r3]
|
|
add r0, r0, #0x300
|
|
ldrh r2, [r0, #0x4c]
|
|
cmp r2, #0x10
|
|
movlo r0, #1
|
|
bxlo lr
|
|
ldrh r2, [r0, #0x3a]
|
|
mov r0, #0
|
|
mov r2, r2, lsl #0x1b
|
|
mov r2, r2, lsr #0x1f
|
|
strh r2, [r1, #6]
|
|
ldr r2, [r3]
|
|
add r2, r2, #0x300
|
|
ldrh r3, [r2, #0x3a]
|
|
mov r2, r3, lsl #0x1c
|
|
mov r3, r3, lsl #0x1a
|
|
mov r2, r2, lsr #0x1f
|
|
eor r2, r2, r3, lsr #31
|
|
strh r2, [r1, #8]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E480: .word 0x0380FFF4
|
|
arm_func_end sub_0201E424
|
|
|
|
arm_func_start sub_0201E484
|
|
sub_0201E484: ; 0x0201E484
|
|
ldr r0, _0201E4BC ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r2, [r0, #0x4c]
|
|
cmp r2, #0x10
|
|
movlo r0, #1
|
|
ldrhsh r2, [r0, #0x3a]
|
|
movhs r0, #0
|
|
movhs r2, r2, lsl #0x19
|
|
movhs r2, r2, lsr #0x1f
|
|
strhsh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E4BC: .word 0x0380FFF4
|
|
arm_func_end sub_0201E484
|
|
|
|
arm_func_start sub_0201E4C0
|
|
sub_0201E4C0: ; 0x0201E4C0
|
|
ldr r0, _0201E4F8 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r2, [r0, #0x4c]
|
|
cmp r2, #0x10
|
|
movlo r0, #1
|
|
ldrhsh r2, [r0, #0x3a]
|
|
movhs r0, #0
|
|
movhs r2, r2, lsl #0x18
|
|
movhs r2, r2, lsr #0x1f
|
|
strhsh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E4F8: .word 0x0380FFF4
|
|
arm_func_end sub_0201E4C0
|
|
|
|
arm_func_start sub_0201E4FC
|
|
sub_0201E4FC: ; 0x0201E4FC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0201E528 ; =0x0380FFF4
|
|
mov r2, #4
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
add r0, r1, #6
|
|
add r1, r2, #0x3a8
|
|
bl sub_020198D0
|
|
mov r0, #0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E528: .word 0x0380FFF4
|
|
arm_func_end sub_0201E4FC
|
|
|
|
arm_func_start sub_0201E52C
|
|
sub_0201E52C: ; 0x0201E52C
|
|
ldr r2, _0201E574 ; =0x0380FFF4
|
|
mov r0, #0x12
|
|
strh r0, [r1, #2]
|
|
ldr r0, [r2]
|
|
add ip, r1, #8
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x62]
|
|
mov r3, #0
|
|
strh r0, [r1, #6]
|
|
ldr r0, [r2]
|
|
add r1, r0, #0x364
|
|
_0201E558:
|
|
ldrh r0, [r1], #2
|
|
add r3, r3, #2
|
|
cmp r3, #0x20
|
|
strh r0, [ip], #2
|
|
blo _0201E558
|
|
mov r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E574: .word 0x0380FFF4
|
|
arm_func_end sub_0201E52C
|
|
|
|
arm_func_start sub_0201E578
|
|
sub_0201E578: ; 0x0201E578
|
|
ldr r0, _0201E59C ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0xb2]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E59C: .word 0x0380FFF4
|
|
arm_func_end sub_0201E578
|
|
|
|
arm_func_start sub_0201E5A0
|
|
sub_0201E5A0: ; 0x0201E5A0
|
|
ldr r0, _0201E5C4 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0xb8]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E5C4: .word 0x0380FFF4
|
|
arm_func_end sub_0201E5A0
|
|
|
|
arm_func_start sub_0201E5C8
|
|
sub_0201E5C8: ; 0x0201E5C8
|
|
ldr r0, _0201E5EC ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0xb4]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E5EC: .word 0x0380FFF4
|
|
arm_func_end sub_0201E5C8
|
|
|
|
arm_func_start sub_0201E5F0
|
|
sub_0201E5F0: ; 0x0201E5F0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r4, r1
|
|
ldrh r0, [r4, #2]
|
|
ldr r1, _0201E6C4 ; =0x0380FFF4
|
|
cmp r0, #1
|
|
ldrhi r0, _0201E6C4 ; =0x0380FFF4
|
|
ldrhi r0, [r0]
|
|
addhi r0, r0, #0x300
|
|
ldrhih r0, [r0, #0xe4]
|
|
strhih r0, [r4, #6]
|
|
ldrh r0, [r4, #2]
|
|
ldr r3, [r1]
|
|
sub r1, r0, #2
|
|
add r0, r3, #0x300
|
|
ldrh r2, [r0, #0xe4]
|
|
cmp r2, r1, lsl #1
|
|
movgt r0, #4
|
|
bgt _0201E6BC
|
|
ldrh r2, [r4, #6]
|
|
cmp r2, #0
|
|
beq _0201E6A0
|
|
ldrh r0, [r0, #0xe6]
|
|
tst r0, #1
|
|
ldr r0, [r3, #0x3e0]
|
|
beq _0201E694
|
|
add r6, r4, #8
|
|
add r5, r0, #1
|
|
mov r7, #0
|
|
b _0201E684
|
|
_0201E664:
|
|
mov r0, r5
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
mov r0, r6
|
|
bl sub_0201A514
|
|
add r6, r6, #1
|
|
add r5, r5, #1
|
|
add r7, r7, #1
|
|
_0201E684:
|
|
ldrh r0, [r4, #6]
|
|
cmp r7, r0
|
|
blo _0201E664
|
|
b _0201E6A0
|
|
_0201E694:
|
|
add r1, r4, #8
|
|
add r2, r2, #1
|
|
bl sub_0302D78C
|
|
_0201E6A0:
|
|
ldrh r1, [r4, #6]
|
|
mov r0, #0
|
|
add r1, r1, #1
|
|
add r1, r1, r1, lsr #31
|
|
mov r1, r1, asr #1
|
|
add r1, r1, #2
|
|
strh r1, [r4, #2]
|
|
_0201E6BC:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E6C4: .word 0x0380FFF4
|
|
arm_func_end sub_0201E5F0
|
|
|
|
arm_func_start sub_0201E6C8
|
|
sub_0201E6C8: ; 0x0201E6C8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0201E704 ; =0x0380FFF4
|
|
mov r0, #1
|
|
strh r0, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0x4c]
|
|
cmp r1, #0
|
|
cmpne r1, #0x10
|
|
bne _0201E6FC
|
|
mov r0, #0
|
|
bl sub_03028A28
|
|
mov r0, #0
|
|
_0201E6FC:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E704: .word 0x0380FFF4
|
|
arm_func_end sub_0201E6C8
|
|
|
|
arm_func_start sub_0201E708
|
|
sub_0201E708: ; 0x0201E708
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0201E760 ; =0x0380FFF4
|
|
mov r0, #1
|
|
strh r0, [r1, #2]
|
|
ldr r1, [r2]
|
|
add r1, r1, #0x300
|
|
ldrh r2, [r1, #0x4c]
|
|
cmp r2, #0x20
|
|
bhi _0201E758
|
|
ldrh r1, [r1, #0x56]
|
|
cmp r1, #0
|
|
bne _0201E758
|
|
mov r0, #0
|
|
bl sub_0202451C
|
|
cmp r0, #0
|
|
movne r0, #0xe
|
|
bne _0201E758
|
|
mov r0, #0x10
|
|
bl sub_03028A28
|
|
mov r0, #0
|
|
_0201E758:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E760: .word 0x0380FFF4
|
|
arm_func_end sub_0201E708
|
|
|
|
arm_func_start sub_0201E764
|
|
sub_0201E764: ; 0x0201E764
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0201E7B4 ; =0x0380FFF4
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r1, [r0, #0x4c]
|
|
cmp r1, #0x10
|
|
beq _0201E798
|
|
cmp r1, #0x20
|
|
ldreqh r0, [r0, #0x56]
|
|
cmpeq r0, #0
|
|
bne _0201E7A8
|
|
_0201E798:
|
|
mov r0, #0x20
|
|
bl sub_03028A28
|
|
mov r0, #0
|
|
b _0201E7AC
|
|
_0201E7A8:
|
|
mov r0, #1
|
|
_0201E7AC:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E7B4: .word 0x0380FFF4
|
|
arm_func_end sub_0201E764
|
|
|
|
arm_func_start sub_0201E7B8
|
|
sub_0201E7B8: ; 0x0201E7B8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0201E7F0 ; =0x0380FFF4
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0x20
|
|
blo _0201E7E0
|
|
bl sub_03028988
|
|
_0201E7E0:
|
|
bl sub_02018184
|
|
mov r0, #0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E7F0: .word 0x0380FFF4
|
|
arm_func_end sub_0201E7B8
|
|
|
|
arm_func_start sub_0201E7F4
|
|
sub_0201E7F4: ; 0x0201E7F4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0201E828 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0
|
|
mov r0, #1
|
|
beq _0201E820
|
|
strh r0, [r1, #2]
|
|
bl sub_0201996C
|
|
mov r0, #0
|
|
_0201E820:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E828: .word 0x0380FFF4
|
|
arm_func_end sub_0201E7F4
|
|
|
|
arm_func_start sub_0201E82C
|
|
sub_0201E82C: ; 0x0201E82C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0201E8C0 ; =0x027F7868
|
|
mov r4, r1
|
|
mov r3, #9
|
|
add r1, r4, #6
|
|
mov r2, #8
|
|
strh r3, [r4, #2]
|
|
bl sub_0302D78C
|
|
ldr r1, _0201E8C4 ; =0x04808000
|
|
ldr r0, _0201E8C8 ; =0x0380FFF4
|
|
ldrh r1, [r1]
|
|
strh r1, [r4, #0xe]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #0x8000
|
|
moveq r1, #0x6d
|
|
ldreq r0, _0201E8CC ; =0x0000933D
|
|
streqh r1, [r4, #0x10]
|
|
beq _0201E88C
|
|
mov r0, #0
|
|
bl sub_02019DB4
|
|
strh r0, [r4, #0x10]
|
|
bl sub_02019E30
|
|
_0201E88C:
|
|
strh r0, [r4, #0x12]
|
|
ldr r0, _0201E8C8 ; =0x0380FFF4
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #0x4000
|
|
addne r0, r1, #0x500
|
|
ldrneh r0, [r0, #0xf8]
|
|
moveq r0, #2
|
|
strh r0, [r4, #0x14]
|
|
mov r0, #0
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E8C0: .word 0x027F7868
|
|
_0201E8C4: .word 0x04808000
|
|
_0201E8C8: .word 0x0380FFF4
|
|
_0201E8CC: .word 0x0000933D
|
|
arm_func_end sub_0201E82C
|
|
|
|
arm_func_start sub_0201E8D0
|
|
sub_0201E8D0: ; 0x0201E8D0
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0201E928 ; =0x0380FFF4
|
|
mov r4, r1
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
beq _0201E920
|
|
mov r0, #0x5c
|
|
strh r0, [r4, #2]
|
|
bl sub_0201999C
|
|
ldr r0, _0201E928 ; =0x0380FFF4
|
|
add r1, r4, #8
|
|
ldr r0, [r0]
|
|
mov r2, #0xb4
|
|
add r0, r0, #0x13c
|
|
add r0, r0, #0x400
|
|
bl sub_0302D7DC
|
|
mov r0, #0
|
|
_0201E920:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E928: .word 0x0380FFF4
|
|
arm_func_end sub_0201E8D0
|
|
|
|
arm_func_start sub_0201E92C
|
|
sub_0201E92C: ; 0x0201E92C
|
|
ldr r0, _0201E950 ; =0x0380FFF4
|
|
mov r2, #2
|
|
strh r2, [r1, #2]
|
|
ldr r2, [r0]
|
|
mov r0, #0
|
|
add r2, r2, #0x300
|
|
ldrh r2, [r2, #0x4c]
|
|
strh r2, [r1, #6]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201E950: .word 0x0380FFF4
|
|
arm_func_end sub_0201E92C
|
|
|
|
arm_func_start sub_0201E954
|
|
sub_0201E954: ; 0x0201E954
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #4
|
|
ldr r2, _0201EC7C ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r2, [r2]
|
|
mov r0, #1
|
|
strh r0, [r1, #2]
|
|
add r4, r2, #0x344
|
|
ldrh r1, [r4, #8]
|
|
and r1, r1, #0xf0
|
|
cmp r1, #0x10
|
|
bne _0201EC70
|
|
ldrh r0, [r5, #0x10]
|
|
cmp r0, #1
|
|
movhi r0, #5
|
|
bhi _0201EC70
|
|
ldrh r0, [r5, #0x14]
|
|
cmp r0, #0xa
|
|
cmpne r0, #0x14
|
|
movne r0, #5
|
|
bne _0201EC70
|
|
ldrh r0, [r5, #0x12]
|
|
cmp r0, #4
|
|
movhi r0, #5
|
|
bhi _0201EC70
|
|
mov r0, #0
|
|
bl sub_0202451C
|
|
cmp r0, #0
|
|
movne r0, #0xe
|
|
bne _0201EC70
|
|
ldrh r0, [r5, #0x10]
|
|
cmp r0, #0
|
|
beq _0201EBE4
|
|
cmp r0, #1
|
|
bne _0201EC6C
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x10
|
|
movne r0, #1
|
|
bne _0201EC70
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
add r2, sp, #0
|
|
mov r0, #0x65
|
|
mov r1, #1
|
|
bl sub_02024660
|
|
ldr r6, [sp]
|
|
mov r0, #1
|
|
bl sub_02019DB4
|
|
cmp r6, r0
|
|
beq _0201EA30
|
|
mov r1, r6
|
|
mov r0, #1
|
|
bl sub_02019DE0
|
|
ldr r0, _0201EC80 ; =0x00001388
|
|
bl sub_0201A198
|
|
_0201EA30:
|
|
ldrh r0, [r5, #0x12]
|
|
cmp r0, #4
|
|
addls pc, pc, r0, lsl #2
|
|
b _0201EC6C
|
|
_0201EA40: ; jump table
|
|
b _0201EA54 ; case 0
|
|
b _0201EA54 ; case 1
|
|
b _0201EA54 ; case 2
|
|
b _0201EAEC ; case 3
|
|
b _0201EAEC ; case 4
|
|
_0201EA54:
|
|
mov r0, #0x11
|
|
strh r0, [r4, #8]
|
|
ldrh r0, [r5, #0x16]
|
|
mov r1, #1
|
|
bl sub_020190F0
|
|
ldr r1, _0201EC84 ; =0x04808040
|
|
mov r2, #0x8000
|
|
ldr r0, _0201EC88 ; =0x000005DC
|
|
strh r2, [r1]
|
|
bl sub_0201A198
|
|
ldrh r1, [r5, #0x14]
|
|
mov r0, #2
|
|
strh r1, [r4, #0x16]
|
|
bl sub_02019DB4
|
|
str r0, [sp]
|
|
ldrh r1, [r5, #0x12]
|
|
ldr r2, _0201EC8C ; =0x048081A4
|
|
cmp r1, #1
|
|
orrls r0, r0, #0x10
|
|
strls r0, [sp]
|
|
ldrh r0, [r5, #0x14]
|
|
strh r0, [r2]
|
|
ldrh r0, [r5, #0x12]
|
|
cmp r0, #1
|
|
strneh r0, [r2, #-2]
|
|
bne _0201EAD0
|
|
ldr r1, [sp]
|
|
mov r0, #3
|
|
orr r1, r1, #0x20
|
|
str r1, [sp]
|
|
strh r0, [r2, #-2]
|
|
_0201EAD0:
|
|
ldr r1, [sp]
|
|
mov r0, #2
|
|
bl sub_02019DE0
|
|
ldr r1, _0201EC90 ; =0x00000823
|
|
ldr r0, _0201EC94 ; =0x048081A0
|
|
strh r1, [r0]
|
|
b _0201EC6C
|
|
_0201EAEC:
|
|
ldr r0, _0201EC7C ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r4, r0, #0x344
|
|
bl sub_030285D0
|
|
bl sub_03028988
|
|
mov r0, #6
|
|
bl sub_02019DB4
|
|
strh r0, [r4, #0xac]
|
|
ldrh r0, [r5, #0x12]
|
|
cmp r0, #4
|
|
bne _0201EB24
|
|
mov r0, #6
|
|
mov r1, #0
|
|
bl sub_02019DE0
|
|
_0201EB24:
|
|
ldr r1, _0201EC98 ; =0x04804000
|
|
mov r0, #0
|
|
mov r2, #0xc
|
|
bl sub_0302D764
|
|
ldr r1, _0201EC98 ; =0x04804000
|
|
mov r0, #0x14
|
|
strh r0, [r1, #8]
|
|
mov r0, #0x7d0
|
|
strh r0, [r1, #0xa]
|
|
add r3, r1, #0xc
|
|
ldr r1, _0201EC9C ; =0x00005555
|
|
ldr r0, _0201ECA0 ; =0x000007EC
|
|
mov r2, #0
|
|
_0201EB58:
|
|
add r2, r2, #2
|
|
cmp r2, r0
|
|
strh r1, [r3], #2
|
|
blo _0201EB58
|
|
ldr r1, _0201EC98 ; =0x04804000
|
|
mov r2, #8
|
|
ldr r0, _0201ECA4 ; =0x04808194
|
|
strh r2, [r1, #0xc]
|
|
mov r1, #6
|
|
strh r1, [r0]
|
|
mov r0, #0x12
|
|
strh r0, [r4, #8]
|
|
mov r1, #1
|
|
strh r1, [r4, #0x18]
|
|
ldrh r0, [r5, #0x16]
|
|
bl sub_020190F0
|
|
ldr r1, _0201EC84 ; =0x04808040
|
|
mov r2, #0x8000
|
|
ldr r0, _0201EC88 ; =0x000005DC
|
|
strh r2, [r1]
|
|
bl sub_0201A198
|
|
mov r2, #1
|
|
ldr r3, _0201ECA8 ; =0x04808012
|
|
mov r0, #2
|
|
strh r0, [r3]
|
|
strh r2, [r3, #-0xe]
|
|
ldr r1, _0201EC98 ; =0x04804000
|
|
rsb r0, r2, #0x4000
|
|
and r0, r1, r0
|
|
mov r0, r0, lsl #0xf
|
|
mov r0, r0, lsr #0x10
|
|
strh r2, [r3, #0x9c]
|
|
orr r0, r0, #0x8000
|
|
strh r0, [r3, #0x8e]
|
|
b _0201EC6C
|
|
_0201EBE4:
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x11
|
|
bne _0201EC2C
|
|
bl sub_0201A23C
|
|
ldr r1, _0201EC94 ; =0x048081A0
|
|
mov r2, #0
|
|
strh r2, [r1]
|
|
mov r0, #1
|
|
strh r0, [r1, #2]
|
|
sub r0, r1, #0x160
|
|
strh r2, [r0]
|
|
mov r0, #2
|
|
bl sub_02019DB4
|
|
bic r1, r0, #0x30
|
|
mov r0, #2
|
|
str r1, [sp]
|
|
bl sub_02019DE0
|
|
b _0201EC64
|
|
_0201EC2C:
|
|
cmp r0, #0x12
|
|
bne _0201EC5C
|
|
ldr r1, _0201ECAC ; =0x04808004
|
|
mov r0, #0
|
|
strh r0, [r4, #0x18]
|
|
_0201EC40:
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _0201EC40
|
|
ldrh r1, [r4, #0xac]
|
|
mov r0, #6
|
|
bl sub_02019DE0
|
|
b _0201EC64
|
|
_0201EC5C:
|
|
mov r0, #1
|
|
b _0201EC70
|
|
_0201EC64:
|
|
mov r0, #0x10
|
|
strh r0, [r4, #8]
|
|
_0201EC6C:
|
|
mov r0, #0
|
|
_0201EC70:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201EC7C: .word 0x0380FFF4
|
|
_0201EC80: .word 0x00001388
|
|
_0201EC84: .word 0x04808040
|
|
_0201EC88: .word 0x000005DC
|
|
_0201EC8C: .word 0x048081A4
|
|
_0201EC90: .word 0x00000823
|
|
_0201EC94: .word 0x048081A0
|
|
_0201EC98: .word 0x04804000
|
|
_0201EC9C: .word 0x00005555
|
|
_0201ECA0: .word 0x000007EC
|
|
_0201ECA4: .word 0x04808194
|
|
_0201ECA8: .word 0x04808012
|
|
_0201ECAC: .word 0x04808004
|
|
arm_func_end sub_0201E954
|
|
|
|
arm_func_start sub_0201ECB0
|
|
sub_0201ECB0: ; 0x0201ECB0
|
|
ldr r0, _0201ED1C ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x5c]
|
|
cmp r0, #0
|
|
beq _0201ECEC
|
|
ldr r0, _0201ED20 ; =0x04804000
|
|
mov r2, #0
|
|
strh r2, [r0]
|
|
ldr r1, _0201ED24 ; =0x048080A0
|
|
strh r2, [r0, #4]
|
|
ldrh r0, [r1]
|
|
orr r0, r0, #0x8000
|
|
strh r0, [r1]
|
|
bx lr
|
|
_0201ECEC:
|
|
ldr r2, _0201ED28 ; =0x048080AC
|
|
mov r3, #1
|
|
strh r3, [r2]
|
|
mov r1, #0
|
|
strh r1, [r2, #-0xa8]
|
|
mov r0, #2
|
|
strh r0, [r2, #-0x9a]
|
|
rsb r0, r3, #0x10000
|
|
strh r0, [r2, #-0x9c]
|
|
strh r1, [r2, #0xe8]
|
|
strh r1, [r2, #-0x6c]
|
|
bx lr
|
|
.align 2, 0
|
|
_0201ED1C: .word 0x0380FFF4
|
|
_0201ED20: .word 0x04804000
|
|
_0201ED24: .word 0x048080A0
|
|
_0201ED28: .word 0x048080AC
|
|
arm_func_end sub_0201ECB0
|
|
|
|
arm_func_start sub_0201ED2C
|
|
sub_0201ED2C: ; 0x0201ED2C
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _0201EDD8 ; =0x0380FFF4
|
|
mov r3, #1
|
|
ldr r2, [r2]
|
|
strh r3, [r1, #2]
|
|
add r4, r2, #0x344
|
|
ldrh r2, [r4, #8]
|
|
and r1, r2, #0xf0
|
|
cmp r1, #0x10
|
|
movne r0, r3
|
|
bne _0201EDD0
|
|
ldrh r1, [r0, #0x10]
|
|
cmp r1, #0
|
|
beq _0201EDA4
|
|
cmp r1, #1
|
|
bne _0201EDCC
|
|
cmp r2, #0x10
|
|
movne r0, r3
|
|
bne _0201EDD0
|
|
ldrh r0, [r0, #0x12]
|
|
mov r1, r3
|
|
bl sub_020190F0
|
|
mov r0, #0
|
|
strh r0, [r4, #0xc]
|
|
bl sub_030285D0
|
|
mov r0, #0x8000
|
|
bl sub_020194D0
|
|
mov r0, #0x11
|
|
strh r0, [r4, #8]
|
|
b _0201EDCC
|
|
_0201EDA4:
|
|
cmp r2, #0x11
|
|
bne _0201EDBC
|
|
mov r0, #0
|
|
bl sub_020194D0
|
|
bl sub_03028988
|
|
b _0201EDC4
|
|
_0201EDBC:
|
|
mov r0, r3
|
|
b _0201EDD0
|
|
_0201EDC4:
|
|
mov r0, #0x10
|
|
strh r0, [r4, #8]
|
|
_0201EDCC:
|
|
mov r0, #0
|
|
_0201EDD0:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201EDD8: .word 0x0380FFF4
|
|
arm_func_end sub_0201ED2C
|
|
|
|
arm_func_start sub_0201EDDC
|
|
sub_0201EDDC: ; 0x0201EDDC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r1, _0201EFA0 ; =0x0380FFF4
|
|
mov r8, r0
|
|
ldr r4, [r1]
|
|
ldrh r1, [r8, #0x16]
|
|
ldr r0, _0201EFA4 ; =0x000005E4
|
|
add r5, r4, #0x344
|
|
cmp r1, r0
|
|
add r6, r4, #0x31c
|
|
movhi r0, #5
|
|
bhi _0201EF98
|
|
ldrh r0, [r6, #0x12]
|
|
cmp r0, #1
|
|
bne _0201EE3C
|
|
add r0, r8, #0x28
|
|
bl sub_0201B0F0
|
|
mov r7, r0
|
|
cmp r7, #0xff
|
|
beq _0201EE34
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x40
|
|
beq _0201EE40
|
|
_0201EE34:
|
|
mov r0, #0xa
|
|
b _0201EF98
|
|
_0201EE3C:
|
|
ldrh r7, [r5, #0x88]
|
|
_0201EE40:
|
|
ldr r0, _0201EFA0 ; =0x0380FFF4
|
|
strh r7, [r8, #0x12]
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x3ec]
|
|
strh r0, [r8, #0x14]
|
|
ldrh r0, [r8, #0x1e]
|
|
tst r0, #0xff
|
|
strneh r0, [r8, #0x20]
|
|
movne r0, #0
|
|
strneh r0, [r8, #0x1e]
|
|
bne _0201EE78
|
|
mov r0, r7
|
|
bl sub_0201B890
|
|
strh r0, [r8, #0x20]
|
|
_0201EE78:
|
|
ldrh r0, [r8, #0x16]
|
|
cmp r0, #0
|
|
bne _0201EEA0
|
|
ldrh r1, [r5, #0x8a]
|
|
mov r0, #0x1c
|
|
orr r1, r1, #0x40
|
|
bic r1, r1, #0x4000
|
|
strh r1, [r8, #0x24]
|
|
strh r0, [r8, #0x22]
|
|
b _0201EEC4
|
|
_0201EEA0:
|
|
ldrh r0, [r5, #0x8a]
|
|
strh r0, [r8, #0x24]
|
|
ldrh r0, [r6, #0x18]
|
|
cmp r0, #0
|
|
ldrh r0, [r8, #0x16]
|
|
addeq r0, r0, #0x1c
|
|
streqh r0, [r8, #0x22]
|
|
addne r0, r0, #0x24
|
|
strneh r0, [r8, #0x22]
|
|
_0201EEC4:
|
|
ldrh r0, [r6, #0x12]
|
|
cmp r0, #1
|
|
beq _0201EEE0
|
|
cmp r0, #2
|
|
cmpne r0, #3
|
|
beq _0201EF5C
|
|
b _0201EF94
|
|
_0201EEE0:
|
|
add r0, r8, #0x34
|
|
add r1, r8, #0x2e
|
|
bl sub_020198D0
|
|
add r0, r8, #0x2e
|
|
add r1, r5, #0x64
|
|
bl sub_020198D0
|
|
cmp r7, #0
|
|
bne _0201EF38
|
|
mov r1, r8
|
|
add r0, r4, #0x200
|
|
bl sub_0201B2D8
|
|
ldr r0, _0201EFA0 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x500
|
|
ldrh r1, [r0, #0x32]
|
|
ldrh r2, [r0, #0x2e]
|
|
mvn r0, r1
|
|
tst r2, r0
|
|
bne _0201EF94
|
|
mov r0, #2
|
|
bl sub_0201F6E4
|
|
b _0201EF94
|
|
_0201EF38:
|
|
add r0, r8, #0x10
|
|
bl sub_0201B334
|
|
mov r2, r8
|
|
add r0, r4, #0x200
|
|
add r1, r4, #0x194
|
|
bl sub_03028178
|
|
mov r0, #0
|
|
bl sub_0201F6E4
|
|
b _0201EF94
|
|
_0201EF5C:
|
|
add r0, r8, #0x34
|
|
add r1, r8, #0x28
|
|
bl sub_020198D0
|
|
add r0, r8, #0x28
|
|
add r1, r5, #0x64
|
|
bl sub_020198D0
|
|
add r0, r8, #0x10
|
|
bl sub_0201B334
|
|
mov r2, r8
|
|
add r0, r4, #0x200
|
|
add r1, r4, #0x194
|
|
bl sub_03028178
|
|
mov r0, #0
|
|
bl sub_0201F6E4
|
|
_0201EF94:
|
|
mov r0, #0x81
|
|
_0201EF98:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201EFA0: .word 0x0380FFF4
|
|
_0201EFA4: .word 0x000005E4
|
|
arm_func_end sub_0201EDDC
|
|
|
|
arm_func_start sub_0201EFA8
|
|
sub_0201EFA8: ; 0x0201EFA8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r2, _0201F134 ; =0x0380FFF4
|
|
mov sl, r0
|
|
ldr r2, [r2]
|
|
mov sb, #1
|
|
add r0, r2, #0x600
|
|
ldrh r6, [r0, #0x90]
|
|
add r4, r2, #0x31c
|
|
strh sb, [r1, #2]
|
|
ldrh r1, [r4, #0x12]
|
|
add r0, r2, #0x2c
|
|
add r5, r0, #0x400
|
|
cmp r1, #2
|
|
movne r0, #0xb
|
|
bne _0201F12C
|
|
ldrh r0, [sl, #0x10]
|
|
cmp r0, #0x204
|
|
movhi r0, #5
|
|
bhi _0201F12C
|
|
ldrh r0, [r5, #0x50]
|
|
add fp, r5, #0x50
|
|
cmp r0, #0
|
|
moveq sb, #0
|
|
mov r0, #0x14
|
|
mul r8, sb, r0
|
|
ldrh r1, [fp, r8]
|
|
cmp r1, #0
|
|
movne r0, #8
|
|
bne _0201F12C
|
|
ldr r1, _0201F138 ; =0x04808094
|
|
ldrh r1, [r1]
|
|
tst r1, #0x8000
|
|
movne r0, #8
|
|
bne _0201F12C
|
|
add r1, r5, r8
|
|
ldr r7, [r1, #0x58]
|
|
mov r1, #0
|
|
strh r1, [r7]
|
|
strh r1, [r7, #4]
|
|
strh r0, [r7, #8]
|
|
ldrh r0, [sl, #0x10]
|
|
ldr r3, _0201F13C ; =0x027F74AC
|
|
add r0, r0, #0x1e
|
|
strh r0, [r7, #0xa]
|
|
mov r0, #0x118
|
|
strh r0, [r7, #0xc]
|
|
add r0, r7, #0x10
|
|
add r1, r2, #0x3a8
|
|
add r2, r4, #8
|
|
bl sub_02019920
|
|
ldrh r0, [sl, #0x12]
|
|
strh r0, [r7, #0x24]
|
|
ldrh r0, [sl, #0x10]
|
|
cmp r0, #0
|
|
beq _0201F0A0
|
|
cmp sb, #0
|
|
bne _0201F090
|
|
bl sub_0201999C
|
|
_0201F090:
|
|
ldr r1, [sl, #0x14]
|
|
ldrh r2, [sl, #0x10]
|
|
add r0, r7, #0x26
|
|
bl sub_0201A46C
|
|
_0201F0A0:
|
|
tst r6, #4
|
|
beq _0201F0D0
|
|
ldrh r0, [sl, #0x10]
|
|
add r1, r7, #0x24
|
|
add r0, r0, #2
|
|
add r0, r1, r0
|
|
add r0, r0, #3
|
|
ldr r1, _0201F140 ; =0x0000B6B8
|
|
bic r2, r0, #3
|
|
ldr r0, _0201F144 ; =0x00001D46
|
|
strh r1, [r2]
|
|
strh r0, [r2, #2]
|
|
_0201F0D0:
|
|
mov r0, #0x1000000
|
|
bl sub_0302B118
|
|
mov r2, #2
|
|
ldr r1, _0201F148 ; =0x00003FFF
|
|
strh r2, [fp, r8]
|
|
add r5, r5, #0x52
|
|
ldrh r2, [r5, r8]
|
|
and r1, r7, r1
|
|
add r3, r2, #1
|
|
mov r2, r1, lsr #1
|
|
ldr r1, _0201F138 ; =0x04808094
|
|
strh r3, [r5, r8]
|
|
orr r2, r2, #0x8000
|
|
strh r2, [r1]
|
|
ldrh r1, [r4, #0x1e]
|
|
mov r4, r0
|
|
mov r0, r1, lsl #0x18
|
|
movs r0, r0, lsr #0x1f
|
|
bne _0201F120
|
|
bl sub_02019888
|
|
_0201F120:
|
|
mov r0, r4
|
|
bl sub_0302B0E0
|
|
mov r0, #0
|
|
_0201F12C:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201F134: .word 0x0380FFF4
|
|
_0201F138: .word 0x04808094
|
|
_0201F13C: .word 0x027F74AC
|
|
_0201F140: .word 0x0000B6B8
|
|
_0201F144: .word 0x00001D46
|
|
_0201F148: .word 0x00003FFF
|
|
arm_func_end sub_0201EFA8
|
|
|
|
arm_func_start sub_0201F14C
|
|
sub_0201F14C: ; 0x0201F14C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #8
|
|
ldr r2, _0201F5D8 ; =0x0380FFF4
|
|
mov sl, r0
|
|
ldr r4, [r2]
|
|
mov sb, #1
|
|
add r0, r4, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
add r7, r4, #0x31c
|
|
strh sb, [r1, #2]
|
|
ldrh r1, [r7, #0x12]
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0x2c
|
|
add r6, r0, #0x400
|
|
cmp r1, #1
|
|
movne r0, #0xb
|
|
bne _0201F5CC
|
|
ldrh r0, [r6, #0x3c]
|
|
cmp r0, #0
|
|
movne r0, #8
|
|
bne _0201F5CC
|
|
ldrh r0, [sl, #0x10]
|
|
ldr r5, [r6, #0x44]
|
|
tst r0, #0x8000
|
|
beq _0201F1F0
|
|
tst r0, #2
|
|
ldreqh r0, [r6, #0x94]
|
|
streqh r0, [sl, #0x14]
|
|
ldrh r0, [sl, #0x10]
|
|
tst r0, #4
|
|
ldreqh r0, [r6, #0xa0]
|
|
streqh r0, [sl, #0x16]
|
|
ldrh r0, [sl, #0x10]
|
|
tst r0, #8
|
|
ldreqh r0, [r6, #0x96]
|
|
streqh r0, [sl, #0x18]
|
|
ldrh r0, [sl, #0x10]
|
|
tst r0, #0x10
|
|
ldreqh r0, [r6, #0x9c]
|
|
moveq sb, #0
|
|
streqh r0, [sl, #0x1c]
|
|
_0201F1F0:
|
|
ldrh r0, [sl, #0x1c]
|
|
cmp r0, #0x204
|
|
movhi r0, #5
|
|
bhi _0201F5CC
|
|
mov r1, #2
|
|
mov r8, #0
|
|
b _0201F220
|
|
_0201F20C:
|
|
ldrh r0, [sl, #0x16]
|
|
tst r0, r1
|
|
mov r0, r1, lsl #0x11
|
|
addne r8, r8, #1
|
|
mov r1, r0, lsr #0x10
|
|
_0201F220:
|
|
cmp r1, #0
|
|
bne _0201F20C
|
|
ldrh r0, [sl, #0x14]
|
|
strh r0, [r6, #0x94]
|
|
ldrh r0, [sl, #0x14]
|
|
tst r0, #0x8000
|
|
beq _0201F26C
|
|
ldr r1, _0201F5DC ; =0x00007FFF
|
|
mov r2, #0xea
|
|
and r0, r0, r1
|
|
strh r0, [sl, #0x14]
|
|
ldrh r0, [sl, #0x14]
|
|
sub r0, r0, #0xd0
|
|
mov r0, r0, lsr #2
|
|
strh r2, [r5, #0xe]
|
|
cmp r0, #0x10000
|
|
bls _0201F2BC
|
|
mov r0, #5
|
|
b _0201F5CC
|
|
_0201F26C:
|
|
ldr r1, [sp, #4]
|
|
tst r1, #2
|
|
movne fp, #1
|
|
moveq fp, #0
|
|
add r3, fp, #6
|
|
movne r1, #2
|
|
movne r2, #6
|
|
add r0, r0, fp
|
|
add r3, r3, #0x200
|
|
moveq r1, fp
|
|
moveq r2, fp
|
|
cmp r0, r3
|
|
movhi r0, #5
|
|
bhi _0201F5CC
|
|
mov r3, r0, lsl #2
|
|
add r3, r3, #0xd0
|
|
add r1, r1, r3
|
|
strh r1, [sl, #0x14]
|
|
add r1, r2, #0xea
|
|
strh r1, [r5, #0xe]
|
|
_0201F2BC:
|
|
add r0, r0, #9
|
|
bic fp, r0, #1
|
|
mul r0, fp, r8
|
|
str r0, [sp]
|
|
ldr r1, [sp]
|
|
add r0, r4, #0x188
|
|
add r1, r1, #0x1a
|
|
bl sub_0302805C
|
|
str r0, [r6, #0x90]
|
|
cmp r0, #0
|
|
moveq r0, #8
|
|
beq _0201F5CC
|
|
mov r0, #1
|
|
strh r0, [r6, #0x3c]
|
|
ldrh r0, [r6, #0x3e]
|
|
mov r2, #0
|
|
add r0, r0, #1
|
|
strh r0, [r6, #0x3e]
|
|
ldrh r0, [sl, #0x18]
|
|
add r3, r7, #8
|
|
strh r0, [r6, #0x96]
|
|
ldrh r0, [sl, #0x16]
|
|
mov ip, #0x14
|
|
strh r0, [r6, #0x98]
|
|
strh r2, [r6, #0x9a]
|
|
ldrh r0, [sl, #0x1c]
|
|
mov lr, #0x228
|
|
strh r0, [r6, #0x9c]
|
|
ldrh r1, [sl, #0x12]
|
|
add r0, r5, #0x10
|
|
strh r1, [r6, #0x9e]
|
|
strh r2, [r5]
|
|
ldrh r7, [sl, #0x16]
|
|
ldr r1, _0201F5E0 ; =0x027F74BC
|
|
strh r7, [r5, #2]
|
|
strh r2, [r5, #4]
|
|
strh ip, [r5, #8]
|
|
ldrh r7, [sl, #0x1c]
|
|
add r2, r4, #0x3a8
|
|
add r7, r7, #0x22
|
|
strh r7, [r5, #0xa]
|
|
strh lr, [r5, #0xc]
|
|
ldrh ip, [sl, #0x14]
|
|
ldrh r7, [r5, #0xe]
|
|
add ip, ip, #0xa
|
|
mla r7, ip, r8, r7
|
|
strh r7, [r5, #0xe]
|
|
bl sub_02019920
|
|
ldrh r0, [sl, #0x10]
|
|
tst r0, #0x8000
|
|
ldrneh r1, [r5, #0x22]
|
|
ldrne r0, _0201F5E4 ; =0x0000FFFF
|
|
cmpne r1, r0
|
|
ldreq r0, _0201F5E4 ; =0x0000FFFF
|
|
movne r7, #0x4000
|
|
streqh r0, [r5, #0x22]
|
|
ldrh r0, [sl, #0x14]
|
|
moveq r7, #0
|
|
strh r0, [r5, #0x24]
|
|
ldrh r0, [sl, #0x16]
|
|
cmp sb, #0
|
|
strh r0, [r5, #0x26]
|
|
ldrh r0, [sl, #0x1e]
|
|
strh r0, [r5, #0x28]
|
|
ldrneh r0, [sl, #0x1c]
|
|
cmpne r0, #0
|
|
beq _0201F3DC
|
|
bl sub_0201999C
|
|
ldr r1, [sl, #0x20]
|
|
ldrh r2, [sl, #0x1c]
|
|
add r0, r5, #0x2a
|
|
bl sub_0201A46C
|
|
_0201F3DC:
|
|
ldr r0, [sp, #4]
|
|
tst r0, #4
|
|
beq _0201F410
|
|
ldrh r0, [sl, #0x1c]
|
|
add r1, r5, #0x28
|
|
add r0, r0, #2
|
|
add r0, r1, r0
|
|
add r0, r0, #3
|
|
ldr r1, _0201F5E8 ; =0x0000B6B8
|
|
bic r2, r0, #3
|
|
ldr r0, _0201F5EC ; =0x00001D46
|
|
strh r1, [r2]
|
|
strh r0, [r2, #2]
|
|
_0201F410:
|
|
ldr r0, [r6, #0x90]
|
|
mov r1, #0x184
|
|
strh r1, [r0, #0xc]
|
|
ldr r0, [sp]
|
|
ldr r1, [r6, #0x90]
|
|
add r0, r0, #0xb
|
|
mov r0, r0, lsr #1
|
|
strh r0, [r1, #0xe]
|
|
ldrh r1, [sl, #0x16]
|
|
ldr r0, [r6, #0x90]
|
|
mov r3, #0
|
|
strh r1, [r0, #0x10]
|
|
ldr r0, [r6, #0x90]
|
|
ldr sb, _0201F5E4 ; =0x0000FFFF
|
|
strh r8, [r0, #0x14]
|
|
ldr r0, [r6, #0x90]
|
|
mov r1, #1
|
|
strh fp, [r0, #0x16]
|
|
ldr r0, [r6, #0x90]
|
|
mov r2, #2
|
|
strh r3, [r0, #0x18]
|
|
ldr r0, [r6, #0x90]
|
|
add r0, r0, #0x1a
|
|
b _0201F498
|
|
_0201F470:
|
|
ldrh ip, [sl, #0x16]
|
|
tst ip, r2
|
|
strneh sb, [r0]
|
|
strneh r3, [r0, #2]
|
|
strneh r3, [r0, #6]
|
|
strneh r1, [r0, #4]
|
|
mov r2, r2, lsl #0x11
|
|
addne r0, r0, fp
|
|
mov r2, r2, lsr #0x10
|
|
add r1, r1, #1
|
|
_0201F498:
|
|
cmp r2, #0
|
|
bne _0201F470
|
|
ldrh r0, [sl, #0x14]
|
|
ldr r2, _0201F5F0 ; =0x048080C4
|
|
strh r0, [r2]
|
|
ldrh r0, [r5, #0xe]
|
|
strh r0, [r2, #-4]
|
|
ldrh r1, [sl, #0x1a]
|
|
ldrh r0, [sl, #0x18]
|
|
rsb sb, r1, #0x10000
|
|
cmp r0, #0
|
|
bne _0201F530
|
|
ldrh r0, [r2, #-0xc4]
|
|
ldrh r1, [sl, #0x1c]
|
|
cmp r0, #0x1440
|
|
ldrh r0, [sl, #0x14]
|
|
add r1, r1, #0x22
|
|
mul r2, r0, r8
|
|
mov r1, r1, lsl #2
|
|
add r3, r1, #0x60
|
|
addne r3, r3, #0x3e8
|
|
add r0, r2, #0x388
|
|
add r0, r3, r0
|
|
mov r1, #0xa
|
|
add r0, r0, #0x32
|
|
bl sub_030365C4
|
|
mov r4, r0
|
|
bl sub_0302D4F0
|
|
ldr r1, _0201F5F4 ; =0x00003FFF
|
|
ldr r2, _0201F5F8 ; =0x04808118
|
|
and r1, r5, r1
|
|
mov r1, r1, lsr #1
|
|
orr r1, r1, #0x8000
|
|
strh r4, [r2]
|
|
orr r1, r1, r7
|
|
strh r1, [r2, #-0x88]
|
|
bl sub_0302D504
|
|
b _0201F5C8
|
|
_0201F530:
|
|
bl sub_0302D4F0
|
|
ldr r1, _0201F5FC ; =0x048080F8
|
|
mov r8, r0
|
|
ldrh r0, [r1]
|
|
mov r1, #0xa
|
|
add r0, sb, r0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_030365C4
|
|
ldrh r3, [sl, #0x18]
|
|
add r1, r0, #3
|
|
cmp r1, r3
|
|
bhs _0201F598
|
|
ldr r1, _0201F5F4 ; =0x00003FFF
|
|
ldr r2, _0201F5F8 ; =0x04808118
|
|
sub r3, r3, r0
|
|
and r0, r5, r1
|
|
sub r1, r3, #1
|
|
mov r0, r0, lsr #1
|
|
orr r0, r0, #0x8000
|
|
strh r1, [r2]
|
|
orr r1, r0, r7
|
|
mov r0, r8
|
|
strh r1, [r2, #-0x88]
|
|
bl sub_0302D504
|
|
b _0201F5C8
|
|
_0201F598:
|
|
mov r0, r8
|
|
bl sub_0302D504
|
|
ldr r1, [r6, #0x90]
|
|
add r0, r4, #0x188
|
|
bl sub_030280F8
|
|
mov r0, #0
|
|
strh r0, [r6, #0x3c]
|
|
ldrh r1, [r6, #0x3e]
|
|
mov r0, #5
|
|
sub r1, r1, #1
|
|
strh r1, [r6, #0x3e]
|
|
b _0201F5CC
|
|
_0201F5C8:
|
|
mov r0, #0
|
|
_0201F5CC:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201F5D8: .word 0x0380FFF4
|
|
_0201F5DC: .word 0x00007FFF
|
|
_0201F5E0: .word 0x027F74BC
|
|
_0201F5E4: .word 0x0000FFFF
|
|
_0201F5E8: .word 0x0000B6B8
|
|
_0201F5EC: .word 0x00001D46
|
|
_0201F5F0: .word 0x048080C4
|
|
_0201F5F4: .word 0x00003FFF
|
|
_0201F5F8: .word 0x04808118
|
|
_0201F5FC: .word 0x048080F8
|
|
arm_func_end sub_0201F14C
|
|
|
|
arm_func_start sub_0201F600
|
|
sub_0201F600: ; 0x0201F600
|
|
stmdb sp!, {r4, lr}
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
mov r4, r0
|
|
rsb r0, r2, #0x10000
|
|
strh r0, [r4, #0xc]
|
|
mov r0, #0
|
|
strh r0, [r4, #0x12]
|
|
ldrh r1, [r4, #0x16]
|
|
add r0, r4, #0x10
|
|
strh r1, [r4, #0x22]
|
|
bl sub_0201B334
|
|
ldr r0, _0201F65C ; =0x0380FFF4
|
|
mov r2, r4
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x200
|
|
add r1, r1, #0x194
|
|
bl sub_03028178
|
|
mov r0, #0
|
|
bl sub_0201F6E4
|
|
mov r0, #0
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201F65C: .word 0x0380FFF4
|
|
arm_func_end sub_0201F600
|
|
|
|
arm_func_start sub_0201F660
|
|
sub_0201F660: ; 0x0201F660
|
|
stmdb sp!, {r4, lr}
|
|
mov r2, #1
|
|
strh r2, [r1, #2]
|
|
mov r4, r0
|
|
ldrh r0, [r4, #0x10]
|
|
tst r0, #1
|
|
beq _0201F680
|
|
bl sub_020202F0
|
|
_0201F680:
|
|
ldrh r0, [r4, #0x10]
|
|
tst r0, #2
|
|
beq _0201F690
|
|
bl sub_02020364
|
|
_0201F690:
|
|
ldrh r0, [r4, #0x10]
|
|
tst r0, #4
|
|
beq _0201F6A0
|
|
bl sub_020203B8
|
|
_0201F6A0:
|
|
mov r0, #0
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_0201F660
|
|
|
|
arm_func_start sub_0201F6AC
|
|
sub_0201F6AC: ; 0x0201F6AC
|
|
stmdb sp!, {r3, lr}
|
|
ldrh r2, [r1, #0xe]
|
|
mov r3, #2
|
|
add lr, r1, r2, lsl #1
|
|
ldrh ip, [lr, #0x10]
|
|
mov r2, #0
|
|
strh ip, [r1, #0xc]
|
|
strh r3, [lr, #0x12]
|
|
strh r2, [lr, #0x14]
|
|
ldrh r2, [r1, #0x18]
|
|
strh r2, [lr, #0x16]
|
|
bl sub_03028548
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_0201F6AC
|
|
|
|
arm_func_start sub_0201F6E4
|
|
sub_0201F6E4: ; 0x0201F6E4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0xc
|
|
ldr r1, _0201F8F8 ; =0x0380FFF4
|
|
mov sl, r0
|
|
ldr r2, [r1]
|
|
mov r0, #0xc
|
|
add r1, r2, #0x194
|
|
mla fp, sl, r0, r1
|
|
add r0, r2, #0x2c
|
|
ldrh r1, [fp, #8]
|
|
add r5, r0, #0x400
|
|
mov r0, #0x14
|
|
mla r6, sl, r0, r5
|
|
cmp r1, #0
|
|
add r4, r2, #0x344
|
|
beq _0201F8EC
|
|
mov r0, #0x1000000
|
|
bl sub_0302B118
|
|
ldrh r1, [r6]
|
|
str r0, [sp]
|
|
cmp r1, #0
|
|
beq _0201F744
|
|
bl sub_0302B0E0
|
|
b _0201F8EC
|
|
_0201F744:
|
|
ldr r7, [fp]
|
|
mvn r0, #0
|
|
str r0, [sp, #8]
|
|
_0201F750:
|
|
ldr r0, [sp, #8]
|
|
cmp r7, r0
|
|
bne _0201F768
|
|
ldr r0, [sp]
|
|
bl sub_0302B0E0
|
|
b _0201F8EC
|
|
_0201F768:
|
|
mov r0, r7
|
|
str r7, [sp, #4]
|
|
bl sub_03028270
|
|
mov r1, r7
|
|
add r8, r1, #0x10
|
|
mov r7, r0
|
|
ldrh sb, [r8, #2]
|
|
mov r0, r8
|
|
bl sub_0201FA6C
|
|
cmp r0, #0
|
|
beq _0201F7CC
|
|
ldrh r1, [r5, #0xae]
|
|
mov r0, r8
|
|
add r1, r1, #1
|
|
strh r1, [r5, #0xae]
|
|
mov r1, #2
|
|
strh r1, [r8, #8]
|
|
ldrh r2, [r6, #4]
|
|
mov r1, #0
|
|
add r2, r2, #1
|
|
strh r2, [r6, #4]
|
|
ldr r2, [r6, #0x10]
|
|
mov lr, pc
|
|
bx r2
|
|
_0201F7C8:
|
|
b _0201F750
|
|
_0201F7CC:
|
|
cmp sl, #0
|
|
beq _0201F7EC
|
|
cmp sl, #1
|
|
bne _0201F82C
|
|
mov r0, sb
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x40
|
|
bne _0201F82C
|
|
_0201F7EC:
|
|
mov r0, sb
|
|
bl sub_0201B7F0
|
|
cmp r0, #0
|
|
beq _0201F750
|
|
mov r0, sb
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x40
|
|
beq _0201F82C
|
|
mov r2, #2
|
|
mov r0, fp
|
|
sub r1, r8, #0x10
|
|
strh r2, [r8, #8]
|
|
bl sub_0201F6AC
|
|
mov r0, r8
|
|
bl sub_0201B3C4
|
|
b _0201F750
|
|
_0201F82C:
|
|
mov r0, #1
|
|
strh r0, [r6]
|
|
ldrh r0, [r6, #2]
|
|
add r0, r0, #1
|
|
strh r0, [r6, #2]
|
|
str r8, [r6, #0xc]
|
|
ldrh r0, [r4, #0x10]
|
|
ldr r5, [r6, #8]
|
|
cmp r0, #0
|
|
bne _0201F85C
|
|
mov r0, #2
|
|
bl sub_020194A4
|
|
_0201F85C:
|
|
ldr r1, [sp, #4]
|
|
mov r0, r5
|
|
bl sub_0201F904
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
bne _0201F88C
|
|
mov r0, sb
|
|
bl sub_0201B8DC
|
|
cmp r0, #1
|
|
ldrhih r0, [r5, #0xc]
|
|
orrhi r0, r0, #0x2000
|
|
strhih r0, [r5, #0xc]
|
|
_0201F88C:
|
|
ldr r1, _0201F8FC ; =0x00003FFF
|
|
ldr r0, _0201F900 ; =0x048080A0
|
|
ldrh r4, [r8, #0x14]
|
|
and r2, r5, r1
|
|
and r1, r4, #0xc
|
|
cmp r1, #4
|
|
mov r1, r2, lsr #1
|
|
add r3, r0, sl, lsl #2
|
|
moveq r0, r1, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
orreq r0, r0, #0xa000
|
|
streqh r0, [r3]
|
|
beq _0201F8E4
|
|
and r0, r4, #0xfc
|
|
cmp r0, #0x50
|
|
mov r0, r1, lsl #0x10
|
|
moveq r0, r0, lsr #0x10
|
|
orreq r0, r0, #0x9000
|
|
streqh r0, [r3]
|
|
movne r0, r0, lsr #0x10
|
|
orrne r0, r0, #0x8000
|
|
strneh r0, [r3]
|
|
_0201F8E4:
|
|
ldr r0, [sp]
|
|
bl sub_0302B0E0
|
|
_0201F8EC:
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201F8F8: .word 0x0380FFF4
|
|
_0201F8FC: .word 0x00003FFF
|
|
_0201F900: .word 0x048080A0
|
|
arm_func_end sub_0201F6E4
|
|
|
|
arm_func_start sub_0201F904
|
|
sub_0201F904: ; 0x0201F904
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r1
|
|
ldrh r1, [r4, #0x24]
|
|
mov r5, r0
|
|
tst r1, #0x4000
|
|
beq _0201F9E0
|
|
ldr r0, _0201FA58 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #3
|
|
bne _0201F938
|
|
bl sub_0201999C
|
|
_0201F938:
|
|
ldrh r1, [r4, #0xc]
|
|
ldr r0, _0201FA5C ; =0x0000FFFF
|
|
cmp r1, r0
|
|
bne _0201F960
|
|
ldrh r3, [r4, #0x16]
|
|
mov r0, r5
|
|
add r1, r4, #0x18
|
|
add r2, r4, #0x3c
|
|
bl sub_0201A4D0
|
|
b _0201F974
|
|
_0201F960:
|
|
ldr r2, [r4, #0x3c]
|
|
ldrh r3, [r4, #0x16]
|
|
mov r0, r5
|
|
add r1, r4, #0x18
|
|
bl sub_0201A4D0
|
|
_0201F974:
|
|
ldr r3, _0201FA60 ; =0x04808044
|
|
ldr r1, _0201FA58 ; =0x0380FFF4
|
|
ldrh r2, [r3]
|
|
ldrh r0, [r3]
|
|
add r0, r2, r0, lsl #8
|
|
strh r0, [r5, #0x24]
|
|
ldr r0, [r1]
|
|
ldrh r2, [r3]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x36]
|
|
and r2, r2, #0xff
|
|
orr r0, r2, r0, lsl #14
|
|
strh r0, [r5, #0x26]
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #8
|
|
beq _0201FA14
|
|
ldrh r0, [r4, #0x22]
|
|
add r1, r5, #0xc
|
|
add r0, r1, r0
|
|
sub r0, r0, #7
|
|
bic r1, r0, #1
|
|
mov r0, #0
|
|
strh r0, [r1]
|
|
strh r0, [r1, #2]
|
|
b _0201FA14
|
|
_0201F9E0:
|
|
ldrh r2, [r4, #0xc]
|
|
ldr r1, _0201FA5C ; =0x0000FFFF
|
|
cmp r2, r1
|
|
bne _0201FA04
|
|
ldrh r2, [r4, #0x16]
|
|
add r1, r4, #0x18
|
|
add r2, r2, #0x24
|
|
bl sub_0201A46C
|
|
b _0201FA14
|
|
_0201FA04:
|
|
ldr r2, [r4, #0x3c]
|
|
ldrh r3, [r4, #0x16]
|
|
add r1, r4, #0x18
|
|
bl sub_0201A48C
|
|
_0201FA14:
|
|
ldr r0, _0201FA58 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #4
|
|
beq _0201FA50
|
|
ldrh r0, [r4, #0x22]
|
|
add r1, r5, #0xc
|
|
add r0, r1, r0
|
|
sub r0, r0, #1
|
|
ldr r1, _0201FA64 ; =0x0000B6B8
|
|
bic r2, r0, #3
|
|
ldr r0, _0201FA68 ; =0x00001D46
|
|
strh r1, [r2]
|
|
strh r0, [r2, #2]
|
|
_0201FA50:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201FA58: .word 0x0380FFF4
|
|
_0201FA5C: .word 0x0000FFFF
|
|
_0201FA60: .word 0x04808044
|
|
_0201FA64: .word 0x0000B6B8
|
|
_0201FA68: .word 0x00001D46
|
|
arm_func_end sub_0201F904
|
|
|
|
arm_func_start sub_0201FA6C
|
|
sub_0201FA6C: ; 0x0201FA6C
|
|
ldr r1, _0201FAE8 ; =0x0380FFF4
|
|
ldrh r2, [r0, #0x14]
|
|
ldr r3, [r1]
|
|
mov r1, r2, lsl #0x1c
|
|
add ip, r3, #0x344
|
|
ldrh r3, [ip, #0x8c]
|
|
movs r1, r1, lsr #0x1e
|
|
mov r1, r3, lsl #0x13
|
|
mov r3, r1, lsr #0x10
|
|
bne _0201FAC0
|
|
ldrh r1, [ip, #0xc]
|
|
cmp r1, #1
|
|
bne _0201FAC8
|
|
mov r1, r2, lsl #0x18
|
|
mov r1, r1, lsr #0x1c
|
|
cmp r1, #1
|
|
cmpne r1, #3
|
|
cmpne r1, #0xb
|
|
moveq r1, r3, lsl #0xd
|
|
moveq r3, r1, lsr #0x10
|
|
b _0201FAC8
|
|
_0201FAC0:
|
|
mov r1, r3, lsl #0xd
|
|
mov r3, r1, lsr #0x10
|
|
_0201FAC8:
|
|
ldr r1, [ip, #0xa8]
|
|
ldrh r0, [r0, #4]
|
|
sub r0, r1, r0
|
|
mov r0, r0, lsl #0x10
|
|
cmp r3, r0, lsr #16
|
|
movlo r0, #1
|
|
movhs r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0201FAE8: .word 0x0380FFF4
|
|
arm_func_end sub_0201FA6C
|
|
|
|
arm_func_start sub_0201FAEC
|
|
sub_0201FAEC: ; 0x0201FAEC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r2, _0201FC64 ; =0x0380FFF4
|
|
mov sb, r0
|
|
ldr r4, [r2]
|
|
mov r8, r1
|
|
add r5, r4, #0x194
|
|
add r6, r4, #0x344
|
|
sub r7, sb, #0x10
|
|
bl sub_0201B3C4
|
|
ldrh r0, [sb, #8]
|
|
tst r0, #2
|
|
bne _0201FB80
|
|
ldr r0, [r4, #0x53c]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x53c]
|
|
ldrh r0, [sb, #0x14]
|
|
mov r0, r0, lsl #0x17
|
|
movs r0, r0, lsr #0x1f
|
|
beq _0201FB5C
|
|
ldrh r0, [sb, #0x24]
|
|
tst r0, #1
|
|
ldrne r0, [r4, #0x550]
|
|
addne r0, r0, #1
|
|
strne r0, [r4, #0x550]
|
|
ldreq r0, [r4, #0x54c]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x54c]
|
|
b _0201FB8C
|
|
_0201FB5C:
|
|
ldrh r0, [sb, #0x18]
|
|
tst r0, #1
|
|
ldrne r0, [r4, #0x550]
|
|
addne r0, r0, #1
|
|
strne r0, [r4, #0x550]
|
|
ldreq r0, [r4, #0x54c]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x54c]
|
|
b _0201FB8C
|
|
_0201FB80:
|
|
ldr r0, [r4, #0x540]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x540]
|
|
_0201FB8C:
|
|
ldrh r0, [sb, #0x14]
|
|
mov r1, r7
|
|
mov r0, r0, lsl #0x11
|
|
movs r0, r0, lsr #0x1f
|
|
ldrne r0, [r4, #0x554]
|
|
addne r0, r0, #1
|
|
strne r0, [r4, #0x554]
|
|
mov r0, r5
|
|
bl sub_0201F6AC
|
|
ldr r0, _0201FC64 ; =0x0380FFF4
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
strh r1, [r0, #0x2c]
|
|
ldrh r0, [sb, #2]
|
|
bl sub_0201B810
|
|
cmp r0, #0
|
|
beq _0201FBE8
|
|
ldrh r0, [sb, #0x14]
|
|
tst r0, #0x2000
|
|
bne _0201FBE8
|
|
ldrh r0, [sb, #2]
|
|
bl sub_0201B598
|
|
_0201FBE8:
|
|
cmp r8, #0
|
|
beq _0201FC5C
|
|
ldrh r0, [r5, #8]
|
|
cmp r0, #0
|
|
beq _0201FC08
|
|
mov r0, #0
|
|
bl sub_0201F6E4
|
|
b _0201FC5C
|
|
_0201FC08:
|
|
ldrh r0, [r6, #0xc]
|
|
add r0, r0, #0xfe
|
|
add r0, r0, #0xff00
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
cmp r0, #1
|
|
bhi _0201FC5C
|
|
ldrh r0, [r6, #8]
|
|
cmp r0, #0x40
|
|
bne _0201FC5C
|
|
ldrh r0, [r6, #0xe]
|
|
cmp r0, #0
|
|
beq _0201FC5C
|
|
ldrh r0, [r6, #0x88]
|
|
bl sub_0201B8DC
|
|
cmp r0, #0
|
|
ldreqh r0, [r6, #0x8e]
|
|
cmpeq r0, #0
|
|
bne _0201FC5C
|
|
mov r0, #1
|
|
bl sub_020194A4
|
|
_0201FC5C:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0201FC64: .word 0x0380FFF4
|
|
arm_func_end sub_0201FAEC
|
|
|
|
arm_func_start sub_0201FC68
|
|
sub_0201FC68: ; 0x0201FC68
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r2, _02020130 ; =0x0380FFF4
|
|
mov sl, r0
|
|
ldr r4, [r2]
|
|
ldrh r2, [sl, #8]
|
|
add r0, r4, #4
|
|
ldrh r7, [sl, #2]
|
|
mov sb, r1
|
|
tst r2, #2
|
|
add r8, r4, #0x344
|
|
add r5, r0, #0x400
|
|
add r6, r4, #0x1a0
|
|
bne _0201FCF0
|
|
ldr r0, [r4, #0x53c]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x53c]
|
|
ldrh r0, [sl, #0x18]
|
|
tst r0, #1
|
|
ldrne r0, [r4, #0x550]
|
|
addne r0, r0, #1
|
|
strne r0, [r4, #0x550]
|
|
ldreq r0, [r4, #0x54c]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x54c]
|
|
mov r0, r7
|
|
bl sub_0201B810
|
|
cmp r0, #0
|
|
beq _0201FCFC
|
|
ldrh r0, [sl, #0x14]
|
|
tst r0, #0x2000
|
|
bne _0201FCFC
|
|
mov r0, r7
|
|
bl sub_0201B598
|
|
b _0201FCFC
|
|
_0201FCF0:
|
|
ldr r0, [r4, #0x540]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x540]
|
|
_0201FCFC:
|
|
ldrh r0, [sl, #0x14]
|
|
mov r0, r0, lsl #0x11
|
|
movs r0, r0, lsr #0x1f
|
|
ldrne r0, [r4, #0x554]
|
|
addne r0, r0, #1
|
|
strne r0, [r4, #0x554]
|
|
ldrh r0, [sl, #0xc]
|
|
ldr r1, [r4, #0x544]
|
|
and r0, r0, #0xff
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x544]
|
|
ldrh r0, [sl, #0x14]
|
|
and r4, r0, #0xfc
|
|
cmp r4, #0xa0
|
|
bhi _0201FD58
|
|
bhs _0201FEC0
|
|
cmp r4, #0x10
|
|
bhi _0201FD4C
|
|
beq _0201FDFC
|
|
b _020200E8
|
|
_0201FD4C:
|
|
cmp r4, #0x30
|
|
beq _0201FDFC
|
|
b _020200E8
|
|
_0201FD58:
|
|
cmp r4, #0xb0
|
|
bhi _0201FD68
|
|
beq _0201FD74
|
|
b _020200E8
|
|
_0201FD68:
|
|
cmp r4, #0xc0
|
|
beq _0201FFA4
|
|
b _020200E8
|
|
_0201FD74:
|
|
cmp r7, #0
|
|
beq _020200E8
|
|
ldrh r0, [sl, #8]
|
|
tst r0, #2
|
|
bne _020200E8
|
|
ldrh r1, [sl, #0x2c]
|
|
cmp r1, #0
|
|
ldreqh r0, [sl, #0x2e]
|
|
cmpeq r0, #2
|
|
ldreqh r0, [sl, #0x30]
|
|
cmpeq r0, #0
|
|
bne _0201FDC4
|
|
mov r0, r7, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x30
|
|
bl sub_0201B434
|
|
ldrh r1, [sl, #0x2c]
|
|
add r0, sl, #0x18
|
|
bl sub_0201D358
|
|
b _020200E8
|
|
_0201FDC4:
|
|
cmp r1, #1
|
|
ldreqh r0, [sl, #0x2e]
|
|
cmpeq r0, #4
|
|
ldreqh r0, [sl, #0x30]
|
|
cmpeq r0, #0
|
|
bne _020200E8
|
|
mov r0, r7, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x30
|
|
bl sub_0201B434
|
|
ldrh r1, [sl, #0x2c]
|
|
add r0, sl, #0x18
|
|
bl sub_0201D358
|
|
b _020200E8
|
|
_0201FDFC:
|
|
cmp r7, #0
|
|
beq _020200E8
|
|
ldrh r0, [sl, #8]
|
|
tst r0, #2
|
|
bne _0201FE74
|
|
ldrh r0, [sl, #0x2e]
|
|
cmp r0, #0
|
|
bne _020200E8
|
|
mov r0, r7
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x30
|
|
bne _020200E8
|
|
mov r0, r7, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x40
|
|
bl sub_0201B434
|
|
ldrh r2, [sl, #0x12]
|
|
cmp r4, #0x10
|
|
add r3, sl, #0x14
|
|
bne _0201FE60
|
|
ldrh r1, [sl, #0x30]
|
|
add r0, sl, #0x18
|
|
add r2, r3, r2
|
|
bl sub_0201D450
|
|
b _020200E8
|
|
_0201FE60:
|
|
ldrh r1, [sl, #0x30]
|
|
add r0, sl, #0x18
|
|
add r2, r3, r2
|
|
bl sub_0201D548
|
|
b _020200E8
|
|
_0201FE74:
|
|
mov r0, r7, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0201B750
|
|
add r0, sl, #0x18
|
|
mov r1, #1
|
|
mov r2, #0
|
|
bl sub_020216AC
|
|
cmp r0, #0
|
|
beq _020200E8
|
|
mov r1, #2
|
|
strh r1, [r0]
|
|
cmp sb, #0
|
|
beq _0201FEB8
|
|
bl sub_02020884
|
|
mov r0, #1
|
|
bl sub_0201F6E4
|
|
b _020200E8
|
|
_0201FEB8:
|
|
bl sub_02020884
|
|
b _020200E8
|
|
_0201FEC0:
|
|
ldrh r0, [r8, #0xc]
|
|
cmp r0, #1
|
|
bne _0201FF50
|
|
cmp r7, #0
|
|
beq _0201FEF8
|
|
mov r0, r7
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x30
|
|
bls _0201FF68
|
|
mov r0, r7, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x30
|
|
bl sub_0201B434
|
|
b _0201FF68
|
|
_0201FEF8:
|
|
ldrh r0, [sl, #0x18]
|
|
tst r0, #1
|
|
beq _0201FF68
|
|
ldr r4, _02020130 ; =0x0380FFF4
|
|
mov r8, #1
|
|
mov r7, #0x30
|
|
b _0201FF38
|
|
_0201FF14:
|
|
mov r0, r8
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x30
|
|
bls _0201FF34
|
|
mov r0, r8, lsl #0x10
|
|
mov r1, r7
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0201B434
|
|
_0201FF34:
|
|
add r8, r8, #1
|
|
_0201FF38:
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x22]
|
|
cmp r8, r0
|
|
blo _0201FF14
|
|
b _0201FF68
|
|
_0201FF50:
|
|
ldrh r0, [r8, #8]
|
|
cmp r0, #0x30
|
|
bls _0201FF68
|
|
mov r0, #0x30
|
|
bl sub_03028A28
|
|
bl sub_0201982C
|
|
_0201FF68:
|
|
ldrh r0, [r5]
|
|
cmp r0, #0x71
|
|
ldreq r0, [r5, #4]
|
|
cmpeq sl, r0
|
|
bne _020200E8
|
|
ldrh r0, [sl, #8]
|
|
tst r0, #2
|
|
ldr r0, [r5, #0x1c]
|
|
moveq r1, #0
|
|
movne r1, #0xc
|
|
strh r1, [r0, #4]
|
|
mov r0, #0
|
|
strh r0, [r5]
|
|
bl sub_0201D304
|
|
b _020200E8
|
|
_0201FFA4:
|
|
ldrh r0, [r8, #0xc]
|
|
cmp r0, #1
|
|
bne _02020034
|
|
cmp r7, #0
|
|
beq _0201FFDC
|
|
mov r0, r7
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x20
|
|
bls _0202004C
|
|
mov r0, r7, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x20
|
|
bl sub_0201B434
|
|
b _0202004C
|
|
_0201FFDC:
|
|
ldrh r0, [sl, #0x18]
|
|
tst r0, #1
|
|
beq _0202004C
|
|
ldr r4, _02020130 ; =0x0380FFF4
|
|
mov r8, #1
|
|
mov fp, #0x20
|
|
b _0202001C
|
|
_0201FFF8:
|
|
mov r0, r8
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x20
|
|
bls _02020018
|
|
mov r0, r8, lsl #0x10
|
|
mov r1, fp
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0201B434
|
|
_02020018:
|
|
add r8, r8, #1
|
|
_0202001C:
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x22]
|
|
cmp r8, r0
|
|
blo _0201FFF8
|
|
b _0202004C
|
|
_02020034:
|
|
ldrh r0, [r8, #8]
|
|
cmp r0, #0x20
|
|
bls _0202004C
|
|
mov r0, #0x20
|
|
bl sub_03028A28
|
|
bl sub_0201982C
|
|
_0202004C:
|
|
ldrh r0, [r5]
|
|
cmp r0, #0x41
|
|
ldreq r0, [r5, #4]
|
|
cmpeq sl, r0
|
|
bne _02020084
|
|
ldrh r0, [sl, #8]
|
|
tst r0, #2
|
|
ldr r0, [r5, #0x1c]
|
|
moveq r1, #0
|
|
movne r1, #0xc
|
|
strh r1, [r0, #4]
|
|
mov r0, #0
|
|
strh r0, [r5]
|
|
bl sub_0201D304
|
|
_02020084:
|
|
ldrh r0, [sl]
|
|
cmp r0, #1
|
|
bne _020200D4
|
|
cmp r7, #0
|
|
beq _020200C4
|
|
ldr r0, _02020130 ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, r7, lsl #0x10
|
|
add r1, r1, #0x500
|
|
ldrh r3, [r1, #0x34]
|
|
mvn r2, r2, lsl r7
|
|
and r2, r3, r2
|
|
mov r0, r0, lsr #0x10
|
|
strh r2, [r1, #0x34]
|
|
bl sub_0201BC1C
|
|
_020200C4:
|
|
add r0, sl, #0x18
|
|
mov r1, #1
|
|
bl sub_0201D3D4
|
|
b _020200E8
|
|
_020200D4:
|
|
cmp r0, #2
|
|
bne _020200E8
|
|
ldrh r1, [sl, #0x2c]
|
|
add r0, sl, #0x18
|
|
bl sub_0201D3D4
|
|
_020200E8:
|
|
mov r0, sl
|
|
bl sub_0201B3C4
|
|
mov r0, r6
|
|
sub r1, sl, #0x10
|
|
bl sub_030280F8
|
|
ldr r0, _02020130 ; =0x0380FFF4
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
cmp sb, #0
|
|
add r0, r0, #0x400
|
|
strh r1, [r0, #0x40]
|
|
ldrneh r0, [r6, #8]
|
|
cmpne r0, #0
|
|
beq _02020128
|
|
mov r0, #1
|
|
bl sub_0201F6E4
|
|
_02020128:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02020130: .word 0x0380FFF4
|
|
arm_func_end sub_0201FC68
|
|
|
|
arm_func_start sub_02020134
|
|
sub_02020134: ; 0x02020134
|
|
ldr r2, _02020198 ; =0x0380FFF4
|
|
ldrh r1, [r0, #4]
|
|
ldr r3, [r2]
|
|
and r1, r1, #0xff
|
|
ldr r2, [r3, #0x544]
|
|
add r1, r2, r1
|
|
str r1, [r3, #0x544]
|
|
ldrh r0, [r0]
|
|
tst r0, #2
|
|
ldrne r0, [r3, #0x540]
|
|
addne r0, r0, #1
|
|
strne r0, [r3, #0x540]
|
|
bne _02020180
|
|
ldr r0, [r3, #0x53c]
|
|
add r0, r0, #1
|
|
str r0, [r3, #0x53c]
|
|
ldr r0, [r3, #0x54c]
|
|
add r0, r0, #1
|
|
str r0, [r3, #0x54c]
|
|
_02020180:
|
|
ldr r0, _02020198 ; =0x0380FFF4
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
strh r1, [r0, #0x54]
|
|
bx lr
|
|
.align 2, 0
|
|
_02020198: .word 0x0380FFF4
|
|
arm_func_end sub_02020134
|
|
|
|
arm_func_start sub_0202019C
|
|
sub_0202019C: ; 0x0202019C
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _020202A0 ; =0x0380FFF4
|
|
mov r6, r0
|
|
ldr r2, [r2]
|
|
mov r5, r1
|
|
ldr r1, [r2, #0x550]
|
|
add r4, r2, #0x17c
|
|
add r1, r1, #1
|
|
str r1, [r2, #0x550]
|
|
ldrh r1, [r6, #0x14]
|
|
mov r1, r1, lsl #0x1c
|
|
movs r1, r1, lsr #0x1e
|
|
bne _020201F4
|
|
bl sub_0201B334
|
|
add r0, r4, #0x30
|
|
add r1, r4, #0x24
|
|
sub r2, r6, #0x10
|
|
bl sub_03028178
|
|
mov r0, r6
|
|
mov r1, #0
|
|
bl sub_0201FC68
|
|
b _02020200
|
|
_020201F4:
|
|
add r0, r4, #0x30
|
|
sub r1, r6, #0x10
|
|
bl sub_0201F6AC
|
|
_02020200:
|
|
ldr r1, _020202A0 ; =0x0380FFF4
|
|
mov r2, #0
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x400
|
|
strh r2, [r0, #0x54]
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, #0x45c]
|
|
ldrh r0, [r0, #0xc]
|
|
mov r0, r0, lsl #0x12
|
|
movs r0, r0, lsr #0x1f
|
|
bne _02020270
|
|
ldr r1, _020202A4 ; =0x048080AC
|
|
mov r0, #8
|
|
strh r0, [r1]
|
|
mov r0, #5
|
|
strh r0, [r1, #2]
|
|
cmp r5, #0
|
|
beq _02020270
|
|
ldrh r0, [r4, #0x2c]
|
|
cmp r0, #0
|
|
beq _0202025C
|
|
mov r0, #1
|
|
bl sub_0201F6E4
|
|
_0202025C:
|
|
ldrh r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
beq _02020270
|
|
mov r0, #0
|
|
bl sub_0201F6E4
|
|
_02020270:
|
|
ldrh r0, [r4, #0x38]
|
|
cmp r0, #0
|
|
beq _02020290
|
|
cmp r5, #0
|
|
beq _02020298
|
|
mov r0, #2
|
|
bl sub_0201F6E4
|
|
b _02020298
|
|
_02020290:
|
|
mov r0, #0
|
|
bl sub_0201B9B8
|
|
_02020298:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020202A0: .word 0x0380FFF4
|
|
_020202A4: .word 0x048080AC
|
|
arm_func_end sub_0202019C
|
|
|
|
arm_func_start sub_020202A8
|
|
sub_020202A8: ; 0x020202A8
|
|
ldr r2, [r0, #8]
|
|
ldr r1, _020202EC ; =0x0380FFF4
|
|
ldrh r3, [r2, #4]
|
|
ldr r2, [r1]
|
|
ands r3, r3, #0xff
|
|
ldreq r1, [r2, #0x5a8]
|
|
addeq r1, r1, #1
|
|
streq r1, [r2, #0x5a8]
|
|
ldrne r1, [r2, #0x5a4]
|
|
addne r1, r1, r3
|
|
strne r1, [r2, #0x5a4]
|
|
ldrh r2, [r0, #4]
|
|
mov r1, #0
|
|
add r2, r2, #1
|
|
strh r2, [r0, #4]
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_020202EC: .word 0x0380FFF4
|
|
arm_func_end sub_020202A8
|
|
|
|
arm_func_start sub_020202F0
|
|
sub_020202F0: ; 0x020202F0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _0202035C ; =0x0380FFF4
|
|
mov r0, #0x1000000
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x2c
|
|
add r4, r1, #0x400
|
|
bl sub_0302B118
|
|
ldr r1, _0202035C ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x3a]
|
|
mov r0, r0, lsl #0x18
|
|
movs r0, r0, lsr #0x1f
|
|
bne _02020334
|
|
mov r0, #0
|
|
bl sub_020198AC
|
|
_02020334:
|
|
ldr r0, _02020360 ; =0x048080B4
|
|
mov r1, #0xc0
|
|
strh r1, [r0]
|
|
mov r1, #0
|
|
strh r1, [r4, #0x50]
|
|
mov r0, r5
|
|
strh r1, [r4, #0x64]
|
|
bl sub_0302B0E0
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0202035C: .word 0x0380FFF4
|
|
_02020360: .word 0x048080B4
|
|
arm_func_end sub_020202F0
|
|
|
|
arm_func_start sub_02020364
|
|
sub_02020364: ; 0x02020364
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _020203B0 ; =0x0380FFF4
|
|
mov r0, #0x1000000
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x2c
|
|
add r4, r1, #0x400
|
|
bl sub_0302B118
|
|
ldr r1, _020203B4 ; =0x048080B4
|
|
mov r2, #2
|
|
strh r2, [r1]
|
|
ldrh r1, [r4, #0x3c]
|
|
mov r4, r0
|
|
cmp r1, #0
|
|
beq _020203A0
|
|
bl sub_0302A4A4
|
|
_020203A0:
|
|
mov r0, r4
|
|
bl sub_0302B0E0
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020203B0: .word 0x0380FFF4
|
|
_020203B4: .word 0x048080B4
|
|
arm_func_end sub_02020364
|
|
|
|
arm_func_start sub_020203B8
|
|
sub_020203B8: ; 0x020203B8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _02020458 ; =0x0380FFF4
|
|
mov r0, #0x1000000
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x2c
|
|
add r4, r1, #0x400
|
|
bl sub_0302B118
|
|
ldr r1, _02020458 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #1
|
|
ldr r0, _0202045C ; =0x048080B4
|
|
bne _02020420
|
|
mov r1, #9
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, #0x28]
|
|
cmp r0, #0
|
|
beq _02020410
|
|
mov r0, #2
|
|
bl sub_02020460
|
|
_02020410:
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl sub_020207E0
|
|
b _02020428
|
|
_02020420:
|
|
mov r1, #1
|
|
strh r1, [r0]
|
|
_02020428:
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
beq _0202043C
|
|
mov r0, #0
|
|
bl sub_02020460
|
|
_0202043C:
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl sub_020207E0
|
|
mov r0, r5
|
|
bl sub_0302B0E0
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02020458: .word 0x0380FFF4
|
|
_0202045C: .word 0x048080B4
|
|
arm_func_end sub_020203B8
|
|
|
|
arm_func_start sub_02020460
|
|
sub_02020460: ; 0x02020460
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _020204C0 ; =0x0380FFF4
|
|
mov r1, #0x14
|
|
ldr r2, [r2]
|
|
mul r1, r0, r1
|
|
add r0, r2, #0x2c
|
|
add r2, r0, #0x400
|
|
ldrh r0, [r2, r1]
|
|
add r2, r2, r1
|
|
cmp r0, #0
|
|
beq _020204B8
|
|
ldr r0, [r2, #8]
|
|
ldrh r1, [r0]
|
|
ldr r0, [r2, #0xc]
|
|
cmp r1, #0
|
|
moveq r1, #2
|
|
strh r1, [r0, #8]
|
|
ldr r0, [r2, #0xc]
|
|
ldr r2, [r2, #0x10]
|
|
mov r1, #0
|
|
mov lr, pc
|
|
bx r2
|
|
_020204B8:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020204C0: .word 0x0380FFF4
|
|
arm_func_end sub_02020460
|
|
|
|
arm_func_start sub_020204C4
|
|
sub_020204C4: ; 0x020204C4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _02020544 ; =0x0380FFF4
|
|
mov r7, r0
|
|
mov r0, #0x14
|
|
ldr r1, [r1]
|
|
mul r4, r7, r0
|
|
add r0, r1, #0x2c
|
|
add r5, r0, #0x400
|
|
mov r0, #0x1000000
|
|
add r6, r5, r4
|
|
bl sub_0302B118
|
|
ldr r1, _02020548 ; =0x027F7870
|
|
mov r2, r7, lsl #1
|
|
ldrh r2, [r1, r2]
|
|
ldr r1, _0202054C ; =0x048080B4
|
|
strh r2, [r1]
|
|
ldrh r1, [r5, r4]
|
|
cmp r1, #0
|
|
beq _02020538
|
|
ldr r2, [r6, #0xc]
|
|
ldrh r1, [r2, #0x14]
|
|
tst r1, #0x4000
|
|
ldreq r1, [r6, #8]
|
|
ldreqh r1, [r1, #4]
|
|
streqh r1, [r2, #0xc]
|
|
ldr r2, [r6, #8]
|
|
ldr r1, [r6, #0xc]
|
|
ldrh r2, [r2, #0x22]
|
|
strh r2, [r1, #0x2a]
|
|
_02020538:
|
|
bl sub_0302B0E0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02020544: .word 0x0380FFF4
|
|
_02020548: .word 0x027F7870
|
|
_0202054C: .word 0x048080B4
|
|
arm_func_end sub_020204C4
|
|
|
|
arm_func_start sub_02020550
|
|
sub_02020550: ; 0x02020550
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mov fp, r0
|
|
mov r7, #0
|
|
bl sub_0201B8DC
|
|
cmp r0, #0
|
|
beq _0202063C
|
|
mov r8, r7
|
|
_0202056C:
|
|
ldr r0, _02020644 ; =0x0380FFF4
|
|
mov r1, #0xc
|
|
ldr r2, [r0]
|
|
mul sl, r8, r1
|
|
sub r0, r1, #0xd
|
|
add r1, r2, sl
|
|
ldr r5, [r1, #0x194]
|
|
cmp r5, r0
|
|
beq _02020630
|
|
mov r0, #0x14
|
|
mul sb, r8, r0
|
|
mvn r4, #0
|
|
_0202059C:
|
|
mov r0, r5
|
|
bl sub_03028270
|
|
add r6, r5, #0x10
|
|
ldrh r1, [r6, #2]
|
|
str r0, [sp]
|
|
cmp r1, fp
|
|
bne _02020620
|
|
cmp r8, #1
|
|
ldrne r0, _02020644 ; =0x0380FFF4
|
|
ldrne r0, [r0]
|
|
addne r0, sb, r0
|
|
ldrne r0, [r0, #0x438]
|
|
cmpne r6, r0
|
|
bne _020205F0
|
|
mov r0, r6
|
|
bl sub_0201B3C4
|
|
mov r1, #0
|
|
mov r0, r6
|
|
strh r1, [r6, #2]
|
|
bl sub_0201B334
|
|
b _02020620
|
|
_020205F0:
|
|
mov r0, #2
|
|
strh r0, [r6, #8]
|
|
mov r0, r6
|
|
bl sub_0201B3C4
|
|
ldr r0, _02020644 ; =0x0380FFF4
|
|
mov r1, r5
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x194
|
|
add r0, r0, sl
|
|
bl sub_0201F6AC
|
|
cmp r7, #0
|
|
moveq r7, #1
|
|
_02020620:
|
|
ldr r5, [sp]
|
|
mov r0, r5
|
|
cmp r0, r4
|
|
bne _0202059C
|
|
_02020630:
|
|
add r8, r8, #1
|
|
cmp r8, #3
|
|
blo _0202056C
|
|
_0202063C:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02020644: .word 0x0380FFF4
|
|
arm_func_end sub_02020550
|
|
|
|
arm_func_start sub_02020648
|
|
sub_02020648: ; 0x02020648
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r4, _020206F4 ; =0x0380FFF4
|
|
ldrh r1, [r0]
|
|
ldr r2, [r4]
|
|
tst r1, #1
|
|
beq _0202069C
|
|
add r0, r2, #0x300
|
|
ldrh r0, [r0, #0x22]
|
|
mov r5, #1
|
|
cmp r0, #1
|
|
bls _020206EC
|
|
b _02020684
|
|
_02020678:
|
|
mov r0, r5
|
|
bl sub_02020550
|
|
add r5, r5, #1
|
|
_02020684:
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x22]
|
|
cmp r5, r0
|
|
blo _02020678
|
|
b _020206EC
|
|
_0202069C:
|
|
bl sub_0201B0F0
|
|
mov r4, r0
|
|
cmp r4, #0xff
|
|
beq _020206B0
|
|
bl sub_02020550
|
|
_020206B0:
|
|
ldr r0, _020206F4 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x2e]
|
|
cmp r0, #1
|
|
bne _020206EC
|
|
mov r0, r4
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x40
|
|
bne _020206EC
|
|
mov r0, r4, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x20
|
|
bl sub_0201B434
|
|
bl sub_020202F0
|
|
_020206EC:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020206F4: .word 0x0380FFF4
|
|
arm_func_end sub_02020648
|
|
|
|
arm_func_start sub_020206F8
|
|
sub_020206F8: ; 0x020206F8
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _020207DC ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x300
|
|
ldrh r1, [r0, #0x50]
|
|
add r0, r2, #0x2c
|
|
cmp r1, #1
|
|
add r4, r0, #0x400
|
|
beq _0202072C
|
|
cmp r1, #2
|
|
cmpne r1, #3
|
|
beq _02020788
|
|
b _020207B0
|
|
_0202072C:
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl sub_020207E0
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_020207E0
|
|
mov r0, #2
|
|
mov r1, #1
|
|
bl sub_020207E0
|
|
ldrh r0, [r4, #0x3c]
|
|
cmp r0, #0
|
|
beq _020207D4
|
|
mov r0, #0
|
|
strh r0, [r4, #0x3c]
|
|
ldrh r1, [r4, #0x3e]
|
|
ldr r0, _020207DC ; =0x0380FFF4
|
|
sub r1, r1, #1
|
|
strh r1, [r4, #0x3e]
|
|
ldr r0, [r0]
|
|
ldr r1, [r4, #0x90]
|
|
add r0, r0, #0x188
|
|
bl sub_030280F8
|
|
b _020207D4
|
|
_02020788:
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl sub_020207E0
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_020207E0
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl sub_020207E0
|
|
b _020207D4
|
|
_020207B0:
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl sub_020207E0
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_020207E0
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl sub_020207E0
|
|
_020207D4:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020207DC: .word 0x0380FFF4
|
|
arm_func_end sub_020206F8
|
|
|
|
arm_func_start sub_020207E0
|
|
sub_020207E0: ; 0x020207E0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r5, _02020868 ; =0x0380FFF4
|
|
mov r2, #0xc
|
|
mov sl, r0
|
|
mul r8, sl, r2
|
|
ldr r3, [r5]
|
|
sub r0, r2, #0xd
|
|
add r2, r3, r8
|
|
ldr r6, [r2, #0x194]
|
|
mov sb, r1
|
|
cmp r6, r0
|
|
beq _02020860
|
|
mov fp, #2
|
|
mvn r4, #0
|
|
_02020818:
|
|
mov r0, r6
|
|
bl sub_03028270
|
|
mov r7, r0
|
|
cmp sl, #2
|
|
beq _02020834
|
|
add r0, r6, #0x10
|
|
bl sub_0201B3C4
|
|
_02020834:
|
|
strh fp, [r6, #0x18]
|
|
cmp sb, #0
|
|
beq _02020854
|
|
ldr r0, [r5]
|
|
mov r1, r6
|
|
add r0, r0, #0x194
|
|
add r0, r0, r8
|
|
bl sub_0201F6AC
|
|
_02020854:
|
|
mov r6, r7
|
|
cmp r7, r4
|
|
bne _02020818
|
|
_02020860:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02020868: .word 0x0380FFF4
|
|
arm_func_end sub_020207E0
|
|
|
|
arm_func_start sub_0202086C
|
|
sub_0202086C: ; 0x0202086C
|
|
stmdb sp!, {r3, lr}
|
|
bl sub_02020884
|
|
mov r0, #1
|
|
bl sub_0201F6E4
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_0202086C
|
|
|
|
arm_func_start sub_02020884
|
|
sub_02020884: ; 0x02020884
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
add r0, r4, #0x18
|
|
bl sub_0201B0F0
|
|
strh r0, [r4, #2]
|
|
ldrh r0, [r4, #2]
|
|
cmp r0, #0xff
|
|
moveq r0, #0
|
|
streqh r0, [r4, #2]
|
|
ldr r0, _020208F4 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x3ec]
|
|
strh r0, [r4, #4]
|
|
ldrh r0, [r4, #0x14]
|
|
tst r0, #0x4000
|
|
ldrneh r0, [r4, #0x12]
|
|
addne r0, r0, #8
|
|
strneh r0, [r4, #0x12]
|
|
mov r0, r4
|
|
bl sub_0201B334
|
|
ldr r0, _020208F4 ; =0x0380FFF4
|
|
sub r2, r4, #0x10
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x188
|
|
add r1, r1, #0x1a0
|
|
bl sub_03028178
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020208F4: .word 0x0380FFF4
|
|
arm_func_end sub_02020884
|
|
|
|
arm_func_start sub_020208F8
|
|
sub_020208F8: ; 0x020208F8
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _02020980 ; =0x0380FFF4
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x54
|
|
add r4, r0, #0x400
|
|
ldrh r1, [r4, #2]
|
|
add r0, r2, #0x400
|
|
add r1, r1, #1
|
|
strh r1, [r4, #2]
|
|
ldrh r0, [r0, #0x54]
|
|
mov r1, #0
|
|
cmp r0, #0
|
|
ldrne r0, [r4, #8]
|
|
strneh r1, [r0, #4]
|
|
bne _02020978
|
|
mov r0, #1
|
|
strh r0, [r4]
|
|
ldr r0, [r4, #8]
|
|
strh r1, [r0]
|
|
ldr r0, [r4, #8]
|
|
strh r1, [r0, #4]
|
|
bl sub_02019D68
|
|
ldr r2, [r4, #8]
|
|
ldr r1, _02020984 ; =0x00003FFF
|
|
strh r0, [r2, #8]
|
|
ldr r0, [r4, #8]
|
|
ldr r2, _02020988 ; =0x048080A8
|
|
and r0, r0, r1
|
|
mov r0, r0, lsl #0xf
|
|
mov r0, r0, lsr #0x10
|
|
orr r0, r0, #0x8000
|
|
strh r0, [r2]
|
|
_02020978:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02020980: .word 0x0380FFF4
|
|
_02020984: .word 0x00003FFF
|
|
_02020988: .word 0x048080A8
|
|
arm_func_end sub_020208F8
|
|
|
|
arm_func_start sub_0202098C
|
|
sub_0202098C: ; 0x0202098C
|
|
ldr r0, _020209C4 ; =0x0380FFF4
|
|
mov r2, #1
|
|
ldr r3, [r0]
|
|
rsb r1, r2, #0x4000
|
|
add r0, r3, #0x400
|
|
strh r2, [r0, #0xa4]
|
|
add r0, r3, #0xa4
|
|
ldr r2, [r0, #0x408]
|
|
ldr r0, _020209C8 ; =0x04808080
|
|
and r1, r2, r1
|
|
mov r1, r1, lsr #1
|
|
orr r1, r1, #0x8000
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_020209C4: .word 0x0380FFF4
|
|
_020209C8: .word 0x04808080
|
|
arm_func_end sub_0202098C
|
|
|
|
arm_func_start sub_020209CC
|
|
sub_020209CC: ; 0x020209CC
|
|
ldr r1, _020209EC ; =0x0380FFF4
|
|
ldr r0, _020209F0 ; =0x04808080
|
|
ldr r2, [r1]
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
add r0, r2, #0x400
|
|
strh r1, [r0, #0xa4]
|
|
bx lr
|
|
.align 2, 0
|
|
_020209EC: .word 0x0380FFF4
|
|
_020209F0: .word 0x04808080
|
|
arm_func_end sub_020209CC
|
|
|
|
arm_func_start sub_020209F4
|
|
sub_020209F4: ; 0x020209F4
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r1, _02020D50 ; =0x0380FFF4
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
ldr r8, [r1, #0x4ac]
|
|
add r5, r1, #0x31c
|
|
strh r0, [r8]
|
|
strh r0, [r8, #2]
|
|
strh r0, [r8, #4]
|
|
strh r0, [r8, #6]
|
|
add r6, r1, #0x344
|
|
bl sub_02019D68
|
|
strh r0, [r8, #8]
|
|
mov r0, #0x80
|
|
strh r0, [r8, #0xc]
|
|
mov r0, #0
|
|
add r2, r5, #8
|
|
strh r0, [r8, #0xe]
|
|
ldr r1, _02020D54 ; =0x027F74A4
|
|
add r0, r8, #0x10
|
|
mov r3, r2
|
|
bl sub_02019920
|
|
mov r1, #0
|
|
strh r1, [r8, #0x22]
|
|
add sl, r8, #0x24
|
|
str r1, [r8, #0x24]
|
|
str r1, [sl, #4]
|
|
ldrh r0, [r6, #0x6e]
|
|
add sb, sl, #0xc
|
|
strh r0, [sl, #8]
|
|
ldrh r0, [r6, #0x7c]
|
|
strh r0, [sl, #0xa]
|
|
ldrh r0, [r5, #0x1e]
|
|
mov r0, r0, lsl #0x1f
|
|
movs r0, r0, lsr #0x1f
|
|
bne _02020AF4
|
|
sub r0, sb, sl
|
|
strh r0, [r6, #0x92]
|
|
mov r0, sb
|
|
bl sub_0201A514
|
|
ldrh r1, [r6, #0x1e]
|
|
add r0, sb, #1
|
|
and r1, r1, #0xff
|
|
add sb, sb, #2
|
|
bl sub_0201A514
|
|
mov r7, #0
|
|
add r4, r6, #0x20
|
|
b _02020AD0
|
|
_02020AB4:
|
|
add r0, r4, r7
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
mov r0, sb
|
|
bl sub_0201A514
|
|
add sb, sb, #1
|
|
add r7, r7, #1
|
|
_02020AD0:
|
|
ldrh r0, [r6, #0x1e]
|
|
cmp r7, r0
|
|
blo _02020AB4
|
|
mvn r0, #0
|
|
sub r0, r0, r7
|
|
add r0, sb, r0
|
|
and r1, r7, #0xff
|
|
bl sub_0201A514
|
|
b _02020AF8
|
|
_02020AF4:
|
|
strh r1, [r6, #0x92]
|
|
_02020AF8:
|
|
mov r0, sb
|
|
bl sub_020218C0
|
|
add sb, sb, r0
|
|
mov r0, sb
|
|
mov r1, #3
|
|
bl sub_0201A514
|
|
add r0, sb, #1
|
|
mov r1, #1
|
|
bl sub_0201A514
|
|
ldrh r1, [r6, #0x7a]
|
|
add r0, sb, #2
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
add r0, sb, #3
|
|
sub r1, r0, sl
|
|
strh r1, [r6, #0x94]
|
|
ldrh r2, [r6, #0x94]
|
|
ldr r1, _02020D58 ; =0x04808084
|
|
add r2, r2, #2
|
|
strh r2, [r1]
|
|
mov r1, #5
|
|
bl sub_0201A514
|
|
add r0, sb, #4
|
|
mov r1, #5
|
|
bl sub_0201A514
|
|
add r0, sb, #5
|
|
mov r1, #0
|
|
bl sub_0201A514
|
|
add r0, sb, #6
|
|
ldrh r1, [r6, #0x74]
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
add r0, sb, #7
|
|
mov r1, #0
|
|
bl sub_0201A514
|
|
add r0, sb, #8
|
|
mov r1, #0
|
|
bl sub_0201A514
|
|
add r0, sb, #9
|
|
mov r1, #0
|
|
bl sub_0201A514
|
|
add r0, sb, #0xa
|
|
sub r1, r0, sl
|
|
strh r1, [r6, #0x96]
|
|
ldrh r2, [r6, #0x96]
|
|
mov r1, #0xdd
|
|
and r2, r2, #1
|
|
strh r2, [r6, #0xa2]
|
|
bl sub_0201A514
|
|
add r0, sb, #0xb
|
|
ldrh r1, [r6, #0xa0]
|
|
add r1, r1, #8
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
add r0, sb, #0xc
|
|
mov r1, #0
|
|
bl sub_0201A514
|
|
add r0, sb, #0xd
|
|
mov r1, #9
|
|
bl sub_0201A514
|
|
add r0, sb, #0xe
|
|
mov r1, #0xbf
|
|
bl sub_0201A514
|
|
add r0, sb, #0xf
|
|
mov r1, #0
|
|
bl sub_0201A514
|
|
ldrh r0, [r6, #0xe]
|
|
cmp r0, #1
|
|
bne _02020C38
|
|
ldrh r1, [r5, #0x20]
|
|
add r0, sb, #0x10
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
ldrh r1, [r5, #0x20]
|
|
add r0, sb, #0x11
|
|
mov r1, r1, asr #8
|
|
and r1, r1, #0xff
|
|
add sb, sb, #0x12
|
|
bl sub_0201A514
|
|
b _02020C54
|
|
_02020C38:
|
|
add r0, sb, #0x10
|
|
mov r1, #0xff
|
|
bl sub_0201A514
|
|
add r0, sb, #0x11
|
|
mov r1, #0xff
|
|
add sb, sb, #0x12
|
|
bl sub_0201A514
|
|
_02020C54:
|
|
ldr r1, _02020D5C ; =0x0380FFF0
|
|
mov r0, sb
|
|
ldrh r4, [r1]
|
|
and r1, r4, #0xff
|
|
bl sub_0201A514
|
|
mov r1, r4, lsr #8
|
|
add r0, sb, #1
|
|
and r1, r1, #0xff
|
|
add sb, sb, #2
|
|
bl sub_0201A514
|
|
ldr r4, [r6, #0x9c]
|
|
mov r5, #0
|
|
b _02020CA8
|
|
_02020C88:
|
|
mov r0, r4
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
mov r0, sb
|
|
bl sub_0201A514
|
|
add sb, sb, #1
|
|
add r4, r4, #1
|
|
add r5, r5, #1
|
|
_02020CA8:
|
|
ldrh r1, [r6, #0xa0]
|
|
cmp r5, r1
|
|
blo _02020C88
|
|
ldrh r0, [r6, #0xa2]
|
|
cmp r0, #0
|
|
beq _02020D04
|
|
ldr r0, [r6, #0x9c]
|
|
cmp r1, #0
|
|
add r0, r0, r1
|
|
sub r5, r0, #1
|
|
mov r4, #0
|
|
bls _02020D04
|
|
b _02020CF8
|
|
_02020CDC:
|
|
mov r0, r5
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
add r0, r5, #1
|
|
bl sub_0201A514
|
|
add r4, r4, #1
|
|
sub r5, r5, #1
|
|
_02020CF8:
|
|
ldrh r0, [r6, #0xa0]
|
|
cmp r4, r0
|
|
blo _02020CDC
|
|
_02020D04:
|
|
ldr r0, _02020D50 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #4
|
|
beq _02020D34
|
|
ldr r1, _02020D60 ; =0x0000B6B8
|
|
add r0, sb, #3
|
|
bic r2, r0, #3
|
|
ldr r0, _02020D64 ; =0x00001D46
|
|
strh r1, [r2]
|
|
strh r0, [r2, #2]
|
|
_02020D34:
|
|
mov r1, #0
|
|
add r0, sb, #0x1c
|
|
strh r1, [r6, #0xa4]
|
|
sub r0, r0, sl
|
|
strh r0, [r8, #0xa]
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02020D50: .word 0x0380FFF4
|
|
_02020D54: .word 0x027F74A4
|
|
_02020D58: .word 0x04808084
|
|
_02020D5C: .word 0x0380FFF0
|
|
_02020D60: .word 0x0000B6B8
|
|
_02020D64: .word 0x00001D46
|
|
arm_func_end sub_020209F4
|
|
|
|
arm_func_start sub_02020D68
|
|
sub_02020D68: ; 0x02020D68
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r0, _02020E54 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r4, r0, #0x344
|
|
ldr r1, [r0, #0x4ac]
|
|
ldrh r2, [r4, #0xa0]
|
|
ldrh r0, [r4, #0x96]
|
|
add r1, r1, #0x24
|
|
cmp r2, #0
|
|
add r5, r1, r0
|
|
beq _02020DD8
|
|
ldrh r0, [r4, #0xa2]
|
|
ldr r1, [r4, #0x9c]
|
|
tst r0, #1
|
|
add r0, r5, #0xa
|
|
beq _02020DD0
|
|
sub r0, r0, #1
|
|
add r2, r2, #2
|
|
bl sub_0201A46C
|
|
ldr r1, _02020E58 ; =0x0380FFF0
|
|
add r0, r5, #9
|
|
ldrh r1, [r1]
|
|
mov r1, r1, asr #8
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
b _02020DD8
|
|
_02020DD0:
|
|
add r2, r2, #1
|
|
bl sub_0201A46C
|
|
_02020DD8:
|
|
ldr r0, _02020E54 ; =0x0380FFF4
|
|
ldrh r2, [r4, #0x96]
|
|
ldr r0, [r0]
|
|
ldrh r1, [r4, #0xa0]
|
|
add r2, r2, #0x26
|
|
ldr r0, [r0, #0x4ac]
|
|
add r1, r2, r1
|
|
strh r1, [r0, #0xa]
|
|
ldrh r1, [r4, #0xa0]
|
|
add r0, r5, #1
|
|
add r1, r1, #8
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
ldr r0, _02020E54 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x600
|
|
ldrh r0, [r0, #0x90]
|
|
tst r0, #4
|
|
beq _02020E44
|
|
ldrh r0, [r4, #0xa0]
|
|
add r1, r5, #0xd
|
|
add r0, r1, r0
|
|
ldr r1, _02020E5C ; =0x0000B6B8
|
|
bic r2, r0, #3
|
|
ldr r0, _02020E60 ; =0x00001D46
|
|
strh r1, [r2]
|
|
strh r0, [r2, #2]
|
|
_02020E44:
|
|
mov r0, #0
|
|
strh r0, [r4, #0xa4]
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02020E54: .word 0x0380FFF4
|
|
_02020E58: .word 0x0380FFF0
|
|
_02020E5C: .word 0x0000B6B8
|
|
_02020E60: .word 0x00001D46
|
|
arm_func_end sub_02020D68
|
|
|
|
arm_func_start sub_02020E64
|
|
sub_02020E64: ; 0x02020E64
|
|
ldr r0, _02020E90 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r1, r0, #0x500
|
|
add r0, r0, #0x100
|
|
ldrh r1, [r1, #0x38]
|
|
ldrh r2, [r0, #0xa8]
|
|
rsb r0, r1, #0x18
|
|
cmp r2, r0
|
|
movlt r0, #1
|
|
movge r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_02020E90: .word 0x0380FFF4
|
|
arm_func_end sub_02020E64
|
|
|
|
arm_func_start sub_02020E94
|
|
sub_02020E94: ; 0x02020E94
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r2, _02020F08 ; =0x0380FFF4
|
|
mov r5, r1
|
|
ldr r1, [r2]
|
|
mov r6, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x36
|
|
bl sub_0302805C
|
|
movs r4, r0
|
|
bne _02020ECC
|
|
mov r0, #2
|
|
bl sub_0201A85C
|
|
mov r0, r4
|
|
b _02020F00
|
|
_02020ECC:
|
|
ldr r0, _02020F0C ; =0x0000FFFF
|
|
mov r1, r6
|
|
strh r0, [r4, #0xc]
|
|
add r0, r4, #0x10
|
|
bl sub_02021798
|
|
strh r5, [r4, #0x3c]
|
|
mov r0, #2
|
|
strh r0, [r4, #0x16]
|
|
add r0, r0, #0x1c
|
|
strh r0, [r4, #0x22]
|
|
mov r0, #0xa0
|
|
strh r0, [r4, #0x24]
|
|
add r0, r4, #0x10
|
|
_02020F00:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02020F08: .word 0x0380FFF4
|
|
_02020F0C: .word 0x0000FFFF
|
|
arm_func_end sub_02020E94
|
|
|
|
arm_func_start sub_02020F10
|
|
sub_02020F10: ; 0x02020F10
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _02020FB0 ; =0x0380FFF4
|
|
mov r6, r0
|
|
ldr r2, [r1]
|
|
mov r1, #0x5e
|
|
add r0, r2, #0x188
|
|
add r5, r2, #0x344
|
|
bl sub_0302805C
|
|
movs r4, r0
|
|
bne _02020F48
|
|
mov r0, #2
|
|
bl sub_0201A85C
|
|
mov r0, r4
|
|
b _02020FA8
|
|
_02020F48:
|
|
ldr r0, _02020FB4 ; =0x0000FFFF
|
|
mov r1, r6
|
|
strh r0, [r4, #0xc]
|
|
add r0, r4, #0x10
|
|
bl sub_02021798
|
|
ldrh r1, [r5, #0x7c]
|
|
add r0, r4, #0x40
|
|
strh r1, [r4, #0x3c]
|
|
ldrh r1, [r5, #0x70]
|
|
strh r1, [r4, #0x3e]
|
|
bl sub_0202184C
|
|
mov r5, r0
|
|
add r0, r4, #0x40
|
|
add r0, r0, r5
|
|
bl sub_020218C0
|
|
add r0, r5, r0
|
|
add r0, r0, #4
|
|
strh r0, [r4, #0x16]
|
|
ldrh r1, [r4, #0x16]
|
|
mov r0, #0
|
|
add r1, r1, #0x1c
|
|
strh r1, [r4, #0x22]
|
|
strh r0, [r4, #0x24]
|
|
add r0, r4, #0x10
|
|
_02020FA8:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02020FB0: .word 0x0380FFF4
|
|
_02020FB4: .word 0x0000FFFF
|
|
arm_func_end sub_02020F10
|
|
|
|
arm_func_start sub_02020FB8
|
|
sub_02020FB8: ; 0x02020FB8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _02021064 ; =0x0380FFF4
|
|
mov r6, r0
|
|
ldr r2, [r1]
|
|
mov r1, #0x64
|
|
add r0, r2, #0x188
|
|
add r5, r2, #0x344
|
|
bl sub_0302805C
|
|
movs r4, r0
|
|
bne _02020FF0
|
|
mov r0, #2
|
|
bl sub_0201A85C
|
|
mov r0, r4
|
|
b _0202105C
|
|
_02020FF0:
|
|
ldr r0, _02021068 ; =0x0000FFFF
|
|
mov r1, r6
|
|
strh r0, [r4, #0xc]
|
|
add r0, r4, #0x10
|
|
bl sub_02021798
|
|
ldrh r1, [r5, #0x7c]
|
|
add r0, r4, #0x40
|
|
strh r1, [r4, #0x3c]
|
|
ldrh r2, [r5, #0x70]
|
|
add r1, r5, #0x82
|
|
strh r2, [r4, #0x3e]
|
|
bl sub_020198D0
|
|
add r0, r4, #0x46
|
|
bl sub_0202184C
|
|
mov r5, r0
|
|
add r0, r4, #0x46
|
|
add r0, r0, r5
|
|
bl sub_020218C0
|
|
add r0, r5, r0
|
|
add r0, r0, #0xa
|
|
strh r0, [r4, #0x16]
|
|
ldrh r1, [r4, #0x16]
|
|
mov r0, #0x20
|
|
add r1, r1, #0x1c
|
|
strh r1, [r4, #0x22]
|
|
strh r0, [r4, #0x24]
|
|
add r0, r4, #0x10
|
|
_0202105C:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02021064: .word 0x0380FFF4
|
|
_02021068: .word 0x0000FFFF
|
|
arm_func_end sub_02020FB8
|
|
|
|
arm_func_start sub_0202106C
|
|
sub_0202106C: ; 0x0202106C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r3, _020211D8 ; =0x0380FFF4
|
|
mov r7, r1
|
|
ldr r1, [r3]
|
|
mov r8, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x60
|
|
mov r6, r2
|
|
bl sub_0302805C
|
|
movs r4, r0
|
|
bne _020210A8
|
|
mov r0, #2
|
|
bl sub_0201A85C
|
|
mov r0, r4
|
|
b _020211D0
|
|
_020210A8:
|
|
ldr r0, _020211DC ; =0x0000FFFF
|
|
cmp r7, #0
|
|
strh r0, [r4, #0xc]
|
|
bne _020210CC
|
|
mov r0, r8
|
|
bl sub_0201B6A0
|
|
movs r5, r0
|
|
moveq r7, #0x13
|
|
b _020210D0
|
|
_020210CC:
|
|
mov r5, #0
|
|
_020210D0:
|
|
mov r0, r8
|
|
bl sub_0201B830
|
|
mov r1, r0
|
|
add r0, r4, #0x10
|
|
bl sub_02021798
|
|
ldr r0, _020211D8 ; =0x0380FFF4
|
|
cmp r5, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0xc0]
|
|
strh r0, [r4, #0x3c]
|
|
strh r7, [r4, #0x3e]
|
|
strh r5, [r4, #0x40]
|
|
ldrneh r0, [r4, #0x40]
|
|
orrne r0, r0, #0xc000
|
|
strneh r0, [r4, #0x40]
|
|
add r0, r4, #0x42
|
|
bl sub_020218C0
|
|
add r0, r0, #6
|
|
strh r0, [r4, #0x16]
|
|
ldrh r1, [r4, #0x16]
|
|
mov r0, #0x10
|
|
add r1, r1, #0x1c
|
|
strh r1, [r4, #0x22]
|
|
strh r0, [r4, #0x24]
|
|
ldrh r0, [r4, #0x22]
|
|
add r1, r4, #0x24
|
|
cmp r6, #0
|
|
add r8, r1, r0
|
|
beq _020211B4
|
|
add r0, r6, #1
|
|
bl sub_0201A540
|
|
mov sb, r0
|
|
mov r0, r6
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
mov r0, r8
|
|
bl sub_0201A514
|
|
add r0, r8, #1
|
|
and r1, sb, #0xff
|
|
add r8, r8, #2
|
|
bl sub_0201A514
|
|
cmp sb, #0
|
|
mov r7, #0
|
|
bls _020211CC
|
|
add r5, r6, #2
|
|
b _020211A8
|
|
_0202118C:
|
|
add r0, r5, r7
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
mov r0, r8
|
|
bl sub_0201A514
|
|
add r7, r7, #1
|
|
add r8, r8, #1
|
|
_020211A8:
|
|
cmp r7, sb
|
|
blo _0202118C
|
|
b _020211CC
|
|
_020211B4:
|
|
mov r0, r8
|
|
mov r1, #0
|
|
bl sub_0201A514
|
|
add r0, r8, #1
|
|
mov r1, #0
|
|
bl sub_0201A514
|
|
_020211CC:
|
|
add r0, r4, #0x10
|
|
_020211D0:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020211D8: .word 0x0380FFF4
|
|
_020211DC: .word 0x0000FFFF
|
|
arm_func_end sub_0202106C
|
|
|
|
arm_func_start sub_020211E0
|
|
sub_020211E0: ; 0x020211E0
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r3, _02021338 ; =0x0380FFF4
|
|
mov r6, r1
|
|
ldr r1, [r3]
|
|
mov r8, r0
|
|
add r0, r1, #0x188
|
|
mov r1, #0x60
|
|
mov r5, r2
|
|
bl sub_0302805C
|
|
movs r4, r0
|
|
bne _0202121C
|
|
mov r0, #2
|
|
bl sub_0201A85C
|
|
mov r0, r4
|
|
b _02021330
|
|
_0202121C:
|
|
ldr r0, _0202133C ; =0x0000FFFF
|
|
cmp r6, #0
|
|
strh r0, [r4, #0xc]
|
|
bne _02021240
|
|
mov r0, r8
|
|
bl sub_0201B6A0
|
|
movs r7, r0
|
|
moveq r6, #0x13
|
|
b _02021244
|
|
_02021240:
|
|
mov r7, #0
|
|
_02021244:
|
|
mov r0, r8
|
|
bl sub_0201B830
|
|
mov r1, r0
|
|
add r0, r4, #0x10
|
|
bl sub_02021798
|
|
ldr r0, _02021338 ; =0x0380FFF4
|
|
orr r2, r7, #0xc000
|
|
ldr r1, [r0]
|
|
add r0, r4, #0x42
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0xc0]
|
|
strh r1, [r4, #0x3c]
|
|
strh r6, [r4, #0x3e]
|
|
strh r2, [r4, #0x40]
|
|
bl sub_020218C0
|
|
add r0, r0, #6
|
|
strh r0, [r4, #0x16]
|
|
ldrh r1, [r4, #0x16]
|
|
mov r0, #0x30
|
|
add r1, r1, #0x1c
|
|
strh r1, [r4, #0x22]
|
|
strh r0, [r4, #0x24]
|
|
ldrh r0, [r4, #0x22]
|
|
add r1, r4, #0x24
|
|
cmp r5, #0
|
|
add r7, r1, r0
|
|
beq _02021314
|
|
add r0, r5, #1
|
|
bl sub_0201A540
|
|
mov r8, r0
|
|
mov r0, r5
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
mov r0, r7
|
|
bl sub_0201A514
|
|
add r0, r7, #1
|
|
and r1, r8, #0xff
|
|
bl sub_0201A514
|
|
add r7, r7, #2
|
|
mov r6, #0
|
|
add r5, r5, #2
|
|
b _02021308
|
|
_020212EC:
|
|
add r0, r5, r6
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
mov r0, r7
|
|
bl sub_0201A514
|
|
add r7, r7, #1
|
|
add r6, r6, #1
|
|
_02021308:
|
|
cmp r6, r8
|
|
blo _020212EC
|
|
b _0202132C
|
|
_02021314:
|
|
mov r0, r7
|
|
mov r1, #0
|
|
bl sub_0201A514
|
|
add r0, r7, #1
|
|
mov r1, #0
|
|
bl sub_0201A514
|
|
_0202132C:
|
|
add r0, r4, #0x10
|
|
_02021330:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02021338: .word 0x0380FFF4
|
|
_0202133C: .word 0x0000FFFF
|
|
arm_func_end sub_020211E0
|
|
|
|
arm_func_start sub_02021340
|
|
sub_02021340: ; 0x02021340
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _020213C4 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
mov r1, #0x5a
|
|
add r0, r0, #0x188
|
|
bl sub_0302805C
|
|
movs r5, r0
|
|
bne _02021374
|
|
mov r0, #2
|
|
bl sub_0201A85C
|
|
mov r0, r5
|
|
b _020213BC
|
|
_02021374:
|
|
ldr r2, _020213C8 ; =0x0000FFFF
|
|
mov r1, r4
|
|
add r0, r5, #0x10
|
|
strh r2, [r5, #0xc]
|
|
bl sub_02021798
|
|
add r0, r5, #0x3c
|
|
bl sub_0202184C
|
|
mov r4, r0
|
|
add r0, r5, #0x3c
|
|
add r0, r0, r4
|
|
bl sub_020218C0
|
|
add r0, r4, r0
|
|
strh r0, [r5, #0x16]
|
|
add r0, r0, #0x1c
|
|
strh r0, [r5, #0x22]
|
|
mov r0, #0x40
|
|
strh r0, [r5, #0x24]
|
|
add r0, r5, #0x10
|
|
_020213BC:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020213C4: .word 0x0380FFF4
|
|
_020213C8: .word 0x0000FFFF
|
|
arm_func_end sub_02021340
|
|
|
|
arm_func_start sub_020213CC
|
|
sub_020213CC: ; 0x020213CC
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r1, _020215E0 ; =0x0380FFF4
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
add r4, r0, #0x344
|
|
bl sub_02020E64
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
beq _020215D8
|
|
ldr r1, _020215E0 ; =0x0380FFF4
|
|
ldrh r0, [r4, #0xa0]
|
|
ldr r2, [r1]
|
|
add r1, r0, #0x78
|
|
add r0, r2, #0x188
|
|
bl sub_0302805C
|
|
movs r6, r0
|
|
bne _02021420
|
|
mov r0, #2
|
|
bl sub_0201A85C
|
|
mov r0, r6
|
|
b _020215D8
|
|
_02021420:
|
|
ldr r0, _020215E4 ; =0x0000FFFF
|
|
mov r1, r5
|
|
strh r0, [r6, #0xc]
|
|
add r0, r6, #0x10
|
|
bl sub_02021798
|
|
ldrh r1, [r4, #0x6e]
|
|
add r0, r6, #0x48
|
|
strh r1, [r6, #0x44]
|
|
ldrh r1, [r4, #0x7c]
|
|
strh r1, [r6, #0x46]
|
|
bl sub_0202184C
|
|
mov r4, r0
|
|
add r0, r6, #0x48
|
|
add r0, r0, r4
|
|
bl sub_020218C0
|
|
add r7, r4, r0
|
|
add r0, r6, #0x48
|
|
add r4, r0, r7
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_0201A514
|
|
add r0, r4, #1
|
|
mov r1, #1
|
|
bl sub_0201A514
|
|
ldr r1, _020215E0 ; =0x0380FFF4
|
|
add r0, r4, #2
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0xbe]
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
ldr r0, _020215E0 ; =0x0380FFF4
|
|
add r7, r7, #3
|
|
ldr r1, [r0]
|
|
add r0, r6, #0x48
|
|
add r5, r0, r7
|
|
add r4, r1, #0x344
|
|
add r8, r1, #0x31c
|
|
mov r0, r5
|
|
mov r1, #0xdd
|
|
mov sl, #0
|
|
bl sub_0201A514
|
|
ldr r1, _020215E0 ; =0x0380FFF4
|
|
add r0, r5, #1
|
|
ldr r1, [r1]
|
|
add r1, r1, #0x300
|
|
ldrh r1, [r1, #0xe4]
|
|
add r1, r1, #8
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
add r0, r5, #2
|
|
mov r1, sl
|
|
bl sub_0201A514
|
|
add r0, r5, #3
|
|
mov r1, #9
|
|
bl sub_0201A514
|
|
add r0, r5, #4
|
|
mov r1, #0xbf
|
|
bl sub_0201A514
|
|
add r0, r5, #5
|
|
mov r1, sl
|
|
bl sub_0201A514
|
|
ldrh r1, [r8, #0x20]
|
|
add r0, r5, #6
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
ldrh r1, [r8, #0x20]
|
|
add r0, r5, #7
|
|
mov r1, r1, asr #8
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
ldr r1, _020215E8 ; =0x0380FFF0
|
|
add r0, r5, #8
|
|
ldrh r8, [r1]
|
|
and r1, r8, #0xff
|
|
bl sub_0201A514
|
|
mov r1, r8, lsr #8
|
|
add r0, r5, #9
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
ldrh r0, [r4, #0xa0]
|
|
add sl, sl, #0xa
|
|
cmp r0, #0
|
|
beq _020215B4
|
|
ldrh r0, [r4, #0xa2]
|
|
ldr r8, [r4, #0x9c]
|
|
tst r0, #1
|
|
addne r8, r8, #1
|
|
mov sb, #0
|
|
b _020215A8
|
|
_02021588:
|
|
mov r0, r8
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
add r0, r5, sl
|
|
bl sub_0201A514
|
|
add sl, sl, #1
|
|
add r8, r8, #1
|
|
add sb, sb, #1
|
|
_020215A8:
|
|
ldrh r0, [r4, #0xa0]
|
|
cmp sb, r0
|
|
blo _02021588
|
|
_020215B4:
|
|
add r0, r7, sl
|
|
add r0, r0, #0xc
|
|
strh r0, [r6, #0x16]
|
|
ldrh r1, [r6, #0x16]
|
|
mov r0, #0x50
|
|
add r1, r1, #0x1c
|
|
strh r1, [r6, #0x22]
|
|
strh r0, [r6, #0x24]
|
|
add r0, r6, #0x10
|
|
_020215D8:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020215E0: .word 0x0380FFF4
|
|
_020215E4: .word 0x0000FFFF
|
|
_020215E8: .word 0x0380FFF0
|
|
arm_func_end sub_020213CC
|
|
|
|
arm_func_start sub_020215EC
|
|
sub_020215EC: ; 0x020215EC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, r1
|
|
cmp r2, #0
|
|
beq _02021610
|
|
bl sub_02020E64
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
beq _0202169C
|
|
_02021610:
|
|
ldr r0, _020216A4 ; =0x0380FFF4
|
|
add r1, r5, #0x3d
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_0302805C
|
|
movs r4, r0
|
|
bne _0202163C
|
|
mov r0, #2
|
|
bl sub_0201A85C
|
|
mov r0, r4
|
|
b _0202169C
|
|
_0202163C:
|
|
ldr r2, _020216A8 ; =0x0000FFFF
|
|
mov r1, r6
|
|
add r0, r4, #0x10
|
|
strh r2, [r4, #0xc]
|
|
bl sub_02021798
|
|
cmp r5, #0
|
|
beq _0202167C
|
|
add r0, r4, #0x42
|
|
mov r1, #0x10
|
|
bl sub_0201A514
|
|
add r0, r4, #0x43
|
|
and r1, r5, #0xff
|
|
bl sub_0201A514
|
|
add r0, r5, #2
|
|
mov r0, r0, lsl #0x10
|
|
mov r5, r0, lsr #0x10
|
|
_0202167C:
|
|
add r0, r5, #6
|
|
strh r0, [r4, #0x16]
|
|
ldrh r1, [r4, #0x16]
|
|
mov r0, #0xb0
|
|
add r1, r1, #0x1c
|
|
strh r1, [r4, #0x22]
|
|
strh r0, [r4, #0x24]
|
|
add r0, r4, #0x10
|
|
_0202169C:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020216A4: .word 0x0380FFF4
|
|
_020216A8: .word 0x0000FFFF
|
|
arm_func_end sub_020215EC
|
|
|
|
arm_func_start sub_020216AC
|
|
sub_020216AC: ; 0x020216AC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r5, r1
|
|
cmp r2, #0
|
|
beq _020216D0
|
|
bl sub_02020E64
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
beq _02021730
|
|
_020216D0:
|
|
ldr r0, _02021738 ; =0x0380FFF4
|
|
mov r1, #0x36
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_0302805C
|
|
movs r4, r0
|
|
bne _020216FC
|
|
mov r0, #2
|
|
bl sub_0201A85C
|
|
mov r0, r4
|
|
b _02021730
|
|
_020216FC:
|
|
ldr r0, _0202173C ; =0x0000FFFF
|
|
mov r1, r6
|
|
strh r0, [r4, #0xc]
|
|
add r0, r4, #0x10
|
|
bl sub_02021798
|
|
strh r5, [r4, #0x3c]
|
|
mov r0, #2
|
|
strh r0, [r4, #0x16]
|
|
add r0, r0, #0x1c
|
|
strh r0, [r4, #0x22]
|
|
mov r0, #0xc0
|
|
strh r0, [r4, #0x24]
|
|
add r0, r4, #0x10
|
|
_02021730:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02021738: .word 0x0380FFF4
|
|
_0202173C: .word 0x0000FFFF
|
|
arm_func_end sub_020216AC
|
|
|
|
arm_func_start sub_02021740
|
|
sub_02021740: ; 0x02021740
|
|
stmdb sp!, {r3, lr}
|
|
ldr ip, _02021794 ; =0x0380FFF4
|
|
mov r2, #0
|
|
ldr r3, [ip]
|
|
mov r1, #0x14
|
|
ldr r3, [r3, #0x45c]
|
|
orr r0, r0, #0xc000
|
|
strh r2, [r3]
|
|
strh r2, [r3, #2]
|
|
strh r2, [r3, #4]
|
|
strh r1, [r3, #0xa]
|
|
mov r1, #0xa4
|
|
strh r1, [r3, #0xc]
|
|
strh r0, [r3, #0xe]
|
|
ldr r2, [ip]
|
|
add r0, r3, #0x10
|
|
add r1, r2, #0x3a8
|
|
add r2, r2, #0x324
|
|
bl sub_020198EC
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02021794: .word 0x0380FFF4
|
|
arm_func_end sub_02021740
|
|
|
|
arm_func_start sub_02021798
|
|
sub_02021798: ; 0x02021798
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r4, r1
|
|
mov r1, r5
|
|
mov r0, #0
|
|
mov r2, #0x2c
|
|
bl sub_0302D764
|
|
bl sub_02019D68
|
|
strh r0, [r5, #0x10]
|
|
ldr r0, _020217E0 ; =0x0380FFF4
|
|
mov r1, r4
|
|
ldr r3, [r0]
|
|
add r0, r5, #0x18
|
|
add r2, r3, #0x324
|
|
add r3, r3, #0x3a8
|
|
bl sub_02019920
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020217E0: .word 0x0380FFF4
|
|
arm_func_end sub_02021798
|
|
|
|
arm_func_start sub_020217E4
|
|
sub_020217E4: ; 0x020217E4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r2, _02021848 ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r0, [r2]
|
|
mov r6, r1
|
|
ldr r5, [r0, #0x1a0]
|
|
mvn r4, #0
|
|
b _02021834
|
|
_02021804:
|
|
ldrh r0, [r5, #0x24]
|
|
cmp r0, r6
|
|
bne _02021828
|
|
mov r1, r7
|
|
add r0, r5, #0x28
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
bne _02021840
|
|
_02021828:
|
|
mov r0, r5
|
|
bl sub_03028270
|
|
mov r5, r0
|
|
_02021834:
|
|
cmp r5, r4
|
|
bne _02021804
|
|
mov r0, #0
|
|
_02021840:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02021848: .word 0x0380FFF4
|
|
arm_func_end sub_020217E4
|
|
|
|
arm_func_start sub_0202184C
|
|
sub_0202184C: ; 0x0202184C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
|
ldr r1, _020218BC ; =0x0380FFF4
|
|
mov r5, #0
|
|
ldr r1, [r1]
|
|
mov r8, r0
|
|
add r4, r1, #0x344
|
|
ldrh r6, [r4, #0x1e]
|
|
mov r1, r5
|
|
bl sub_0201A514
|
|
add r0, r8, #1
|
|
and r1, r6, #0xff
|
|
bl sub_0201A514
|
|
add r5, r5, #2
|
|
mov r7, #0
|
|
add r4, r4, #0x20
|
|
b _020218A8
|
|
_0202188C:
|
|
add r0, r4, r7
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
add r0, r8, r5
|
|
bl sub_0201A514
|
|
add r5, r5, #1
|
|
add r7, r7, #1
|
|
_020218A8:
|
|
cmp r7, r6
|
|
blo _0202188C
|
|
mov r0, r5
|
|
ldmia sp!, {r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020218BC: .word 0x0380FFF4
|
|
arm_func_end sub_0202184C
|
|
|
|
arm_func_start sub_020218C0
|
|
sub_020218C0: ; 0x020218C0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r2, _0202195C ; =0x0380FFF4
|
|
mov r1, #1
|
|
ldr r2, [r2]
|
|
mov sb, r0
|
|
add r6, r2, #0x344
|
|
mov r7, #0
|
|
bl sub_0201A514
|
|
ldr r4, _02021960 ; =0x027F74C4
|
|
add r7, r7, #2
|
|
mov r8, #0
|
|
mov r5, #1
|
|
_020218F0:
|
|
ldrh r0, [r6, #0x62]
|
|
tst r0, r5, lsl r8
|
|
beq _02021934
|
|
ldrh r0, [r6, #0x60]
|
|
tst r0, r5, lsl r8
|
|
mov r0, r8, lsl #1
|
|
ldrh r1, [r4, r0]
|
|
beq _02021924
|
|
orr r1, r1, #0x80
|
|
add r0, sb, r7
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
b _02021930
|
|
_02021924:
|
|
add r0, sb, r7
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
_02021930:
|
|
add r7, r7, #1
|
|
_02021934:
|
|
add r8, r8, #1
|
|
cmp r8, #0x10
|
|
blo _020218F0
|
|
sub r1, r7, #2
|
|
add r0, sb, #1
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
mov r0, r7
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0202195C: .word 0x0380FFF4
|
|
_02021960: .word 0x027F74C4
|
|
arm_func_end sub_020218C0
|
|
|
|
arm_func_start sub_02021964
|
|
sub_02021964: ; 0x02021964
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r1, _02021C30 ; =0x0380FFF4
|
|
mvn r0, #0
|
|
ldr r4, [r1]
|
|
add r7, r4, #0x17c
|
|
ldr r5, [r7, #0x48]
|
|
add r6, r4, #0x344
|
|
cmp r5, r0
|
|
beq _02021C28
|
|
ldrh r0, [r6, #8]
|
|
cmp r0, #0x40
|
|
beq _020219A4
|
|
mov r1, r5
|
|
add r0, r7, #0x48
|
|
bl sub_030280F8
|
|
b _02021C28
|
|
_020219A4:
|
|
ldrh r0, [r5, #0x24]
|
|
mov r0, r0, lsl #0x17
|
|
movs r0, r0, lsr #0x1f
|
|
beq _020219BC
|
|
ldrh r0, [r5, #0x34]
|
|
b _020219C0
|
|
_020219BC:
|
|
ldrh r0, [r5, #0x28]
|
|
_020219C0:
|
|
tst r0, #1
|
|
ldrne r0, [r4, #0x568]
|
|
mov sb, #1
|
|
addne r0, r0, #1
|
|
strne r0, [r4, #0x568]
|
|
ldreq r0, [r4, #0x564]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x564]
|
|
ldrh r0, [r5, #0x18]
|
|
ldr r2, [r4, #0x560]
|
|
and r1, r0, #0xf0
|
|
mov r0, r1, asr #3
|
|
add r0, r1, r0, lsr #28
|
|
mov r0, r0, asr #4
|
|
sub r0, r0, #1
|
|
add r0, r2, r0
|
|
str r0, [r4, #0x560]
|
|
ldrh r2, [r6, #0xc]
|
|
cmp r2, #1
|
|
beq _02021A20
|
|
cmp r2, #2
|
|
cmpne r2, #3
|
|
beq _02021AFC
|
|
b _02021B9C
|
|
_02021A20:
|
|
ldrh r0, [r5, #0x24]
|
|
tst r0, #1
|
|
bne _02021B9C
|
|
add r0, r5, #0x2e
|
|
bl sub_0201B0F0
|
|
mov r8, r0
|
|
cmp r8, #0xff
|
|
beq _02021A4C
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x40
|
|
beq _02021AB0
|
|
_02021A4C:
|
|
mov r0, r8
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x30
|
|
add r0, r5, #0x2e
|
|
bne _02021A80
|
|
mov r1, #0xa0
|
|
bl sub_020217E4
|
|
cmp r0, #0
|
|
bne _02021B9C
|
|
add r0, r5, #0x2e
|
|
mov r1, #7
|
|
bl sub_02020E94
|
|
b _02021AA0
|
|
_02021A80:
|
|
mov r1, #0xc0
|
|
bl sub_020217E4
|
|
cmp r0, #0
|
|
bne _02021B9C
|
|
add r0, r5, #0x2e
|
|
mov r1, #7
|
|
mov r2, #1
|
|
bl sub_020216AC
|
|
_02021AA0:
|
|
cmp r0, #0
|
|
beq _02021B9C
|
|
bl sub_0202086C
|
|
b _02021B9C
|
|
_02021AB0:
|
|
ldrh r1, [r5, #0x24]
|
|
mov r0, r8, lsl #0x10
|
|
mov r1, r1, lsl #0x13
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, r1, lsr #0x1f
|
|
bl sub_0201B53C
|
|
mov r0, r8
|
|
bl sub_0201B870
|
|
ldrh r1, [r5, #0x3a]
|
|
cmp r1, r0
|
|
ldreq r0, [r4, #0x578]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x578]
|
|
beq _02021B9C
|
|
add r0, r5, #0x28
|
|
add r1, r5, #0x34
|
|
bl sub_020198D0
|
|
mov sb, #0
|
|
b _02021B9C
|
|
_02021AFC:
|
|
ldrh r1, [r5, #0x24]
|
|
tst r1, #1
|
|
bne _02021B9C
|
|
ldrh r0, [r6, #0xe]
|
|
cmp r0, #0
|
|
beq _02021B68
|
|
tst r1, #0x2000
|
|
bne _02021B68
|
|
ldrh r0, [r5, #0x28]
|
|
tst r0, #1
|
|
ldrneh r0, [r6, #0x8e]
|
|
bicne r0, r0, #1
|
|
strneh r0, [r6, #0x8e]
|
|
bne _02021B44
|
|
cmp r2, #3
|
|
ldrneh r0, [r6, #0x8e]
|
|
bicne r0, r0, #2
|
|
strneh r0, [r6, #0x8e]
|
|
_02021B44:
|
|
ldrh r0, [r6, #0x8e]
|
|
cmp r0, #0
|
|
ldreqh r0, [r7, #0x20]
|
|
cmpeq r0, #0
|
|
ldreqh r0, [r7, #0x2c]
|
|
cmpeq r0, #0
|
|
bne _02021B68
|
|
mov r0, #1
|
|
bl sub_020194A4
|
|
_02021B68:
|
|
ldrh r8, [r6, #0x88]
|
|
mov r0, r8
|
|
bl sub_0201B870
|
|
ldrh r1, [r5, #0x3a]
|
|
cmp r1, r0
|
|
ldreq r0, [r4, #0x578]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x578]
|
|
beq _02021B9C
|
|
add r0, r5, #0x2e
|
|
add r1, r5, #0x34
|
|
bl sub_020198D0
|
|
mov sb, #0
|
|
_02021B9C:
|
|
cmp sb, #0
|
|
bne _02021C04
|
|
mov r0, r8, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
strh r0, [r5, #0x12]
|
|
ldrh r1, [r5, #0x22]
|
|
and r1, r1, #0xff
|
|
bl sub_0201B51C
|
|
ldrh r1, [r5, #0x3a]
|
|
mov r0, r8
|
|
bl sub_0201B63C
|
|
mov r0, r8
|
|
bl sub_0201B67C
|
|
ldrh r1, [r5, #0x20]
|
|
mov r0, #0x180
|
|
sub r1, r1, #0x18
|
|
strh r1, [r5, #0x16]
|
|
strh r0, [r5, #0xc]
|
|
ldrh r0, [r5, #0x16]
|
|
mov r1, r5
|
|
add r0, r0, #0x2d
|
|
mov r2, r0, lsr #1
|
|
add r0, r7, #0x48
|
|
strh r2, [r5, #0xe]
|
|
bl sub_03028548
|
|
b _02021C10
|
|
_02021C04:
|
|
mov r1, r5
|
|
add r0, r7, #0x48
|
|
bl sub_030280F8
|
|
_02021C10:
|
|
ldrh r0, [r7, #0x50]
|
|
cmp r0, #0
|
|
beq _02021C28
|
|
mov r0, #2
|
|
mov r1, #6
|
|
bl sub_03027D88
|
|
_02021C28:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02021C30: .word 0x0380FFF4
|
|
arm_func_end sub_02021964
|
|
|
|
arm_func_start sub_02021C34
|
|
sub_02021C34: ; 0x02021C34
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r1, _02021DA0 ; =0x0380FFF4
|
|
mov r6, r0
|
|
ldr r0, [r1]
|
|
add r4, r0, #0x344
|
|
ldrh r1, [r4, #8]
|
|
add r0, r0, #0xdc
|
|
cmp r1, #0x40
|
|
add r5, r0, #0x400
|
|
movne r0, #1
|
|
bne _02021D98
|
|
add r0, r6, #0x1e
|
|
add r1, r4, #0x64
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
beq _02021C88
|
|
add r0, r6, #0x24
|
|
add r1, r4, #0x82
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
bne _02021C90
|
|
_02021C88:
|
|
mov r0, #1
|
|
b _02021D98
|
|
_02021C90:
|
|
ldrh r0, [r4, #0x6a]
|
|
mov r1, #1
|
|
mov r0, r1, lsl r0
|
|
ldrh r1, [r6, #0x2e]
|
|
mov r0, r0, lsl #0x10
|
|
tst r1, r0, lsr #16
|
|
moveq r0, #0
|
|
movne r0, #0x2000
|
|
strh r0, [r5, #6]
|
|
ldr r0, _02021DA4 ; =0x04808098
|
|
ldrh r0, [r0]
|
|
tst r0, #0x8000
|
|
beq _02021CE8
|
|
mov r0, r0, lsl #0x11
|
|
mov r0, r0, lsr #0x10
|
|
add r0, r0, #0x4800000
|
|
add r0, r0, #0x4000
|
|
ldrh r0, [r0, #4]
|
|
cmp r0, #0
|
|
ldrneh r0, [r5, #6]
|
|
orrne r0, r0, #0x4000
|
|
strneh r0, [r5, #6]
|
|
_02021CE8:
|
|
ldrh r0, [r4, #0x88]
|
|
bl sub_0201B67C
|
|
ldrh r1, [r6, #0x10]
|
|
ldr r0, _02021DA8 ; =0x00000182
|
|
sub r1, r1, #0x1c
|
|
strh r1, [r6, #6]
|
|
sub r1, r6, #0x10
|
|
strh r0, [r1, #0xc]
|
|
ldrh r2, [r6, #6]
|
|
mov r0, #0
|
|
add r2, r2, #0x31
|
|
mov r2, r2, lsr #1
|
|
strh r2, [r1, #0xe]
|
|
ldrh r2, [r1, #0x3e]
|
|
b _02021D34
|
|
_02021D24:
|
|
tst r2, #1
|
|
mov r2, r2, lsl #0xf
|
|
addne r0, r0, #1
|
|
mov r2, r2, lsr #0x10
|
|
_02021D34:
|
|
cmp r2, #0
|
|
bne _02021D24
|
|
ldr r2, _02021DAC ; =0x04808094
|
|
ldrh r3, [r5, #6]
|
|
ldrh r4, [r2]
|
|
ldrh r2, [r2, #4]
|
|
ldrh r5, [r1, #0x18]
|
|
and r2, r2, #0x8000
|
|
and r4, r4, #0x8000
|
|
orr r2, r3, r2, asr #4
|
|
orr r2, r2, r4, asr #3
|
|
orr r2, r5, r2
|
|
strh r2, [r1, #0x18]
|
|
ldrh r2, [r1, #0x3c]
|
|
ldrh r3, [r1, #0x1c]
|
|
add r2, r2, #0xa
|
|
mul r2, r0, r2
|
|
add r0, r2, #0xfc
|
|
add r2, r3, r0, lsr #4
|
|
ldr r0, _02021DA0 ; =0x0380FFF4
|
|
strh r2, [r1, #0x1a]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_03028548
|
|
mov r0, #0
|
|
_02021D98:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02021DA0: .word 0x0380FFF4
|
|
_02021DA4: .word 0x04808098
|
|
_02021DA8: .word 0x00000182
|
|
_02021DAC: .word 0x04808094
|
|
arm_func_end sub_02021C34
|
|
|
|
arm_func_start sub_02021DB0
|
|
sub_02021DB0: ; 0x02021DB0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _02021F58 ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r1, [r1]
|
|
add r0, r1, #0x2c
|
|
add r5, r0, #0x400
|
|
ldrh r0, [r5, #0x3c]
|
|
ldr r4, [r5, #0x90]
|
|
cmp r0, #0
|
|
beq _02021F50
|
|
add r0, r7, #0x18
|
|
add r1, r1, #0x3a8
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
beq _02021F50
|
|
ldrh r1, [r7, #0x10]
|
|
ldrh r0, [r4, #0x16]
|
|
sub r1, r1, #0x18
|
|
sub r0, r0, #8
|
|
cmp r1, r0
|
|
bgt _02021F50
|
|
add r0, r7, #0x1e
|
|
bl sub_0201B0F0
|
|
mov r6, r0
|
|
cmp r6, #0xff
|
|
beq _02021E2C
|
|
cmp r6, #0
|
|
beq _02021E68
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x40
|
|
beq _02021E68
|
|
_02021E2C:
|
|
add r0, r7, #0x1e
|
|
mov r1, #0xc0
|
|
bl sub_020217E4
|
|
cmp r0, #0
|
|
bne _02021F50
|
|
add r0, r7, #0x1e
|
|
mov r1, #7
|
|
mov r2, #0
|
|
bl sub_020216AC
|
|
cmp r0, #0
|
|
beq _02021F50
|
|
mov r1, #2
|
|
strh r1, [r0]
|
|
bl sub_0202086C
|
|
b _02021F50
|
|
_02021E68:
|
|
cmp r6, #0
|
|
beq _02021F50
|
|
ldrh r1, [r7, #0x14]
|
|
mov r0, r6, lsl #0x10
|
|
mov r1, r1, lsl #0x13
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, r1, lsr #0x1f
|
|
bl sub_0201B53C
|
|
mov r0, r6
|
|
bl sub_0201B67C
|
|
mov r0, r6
|
|
bl sub_0201B8BC
|
|
mov r1, #1
|
|
mov r0, r1, lsl r0
|
|
mov r0, r0, lsl #0x10
|
|
ldrh r1, [r5, #0x9a]
|
|
mov r2, r0, lsr #0x10
|
|
tst r2, r1
|
|
bne _02021F50
|
|
ldrh r0, [r5, #0x98]
|
|
tst r2, r0
|
|
beq _02021F50
|
|
orr r0, r1, r2
|
|
strh r0, [r5, #0x9a]
|
|
ldrh r1, [r4, #0x10]
|
|
mvn r0, r2
|
|
and r1, r1, r0
|
|
mov r0, r2, lsl #0xf
|
|
strh r1, [r4, #0x10]
|
|
add r6, r4, #0x1a
|
|
mov r1, r0, lsr #0x10
|
|
b _02021F00
|
|
_02021EE8:
|
|
ldrh r0, [r5, #0x98]
|
|
tst r1, r0
|
|
ldrneh r0, [r4, #0x16]
|
|
addne r6, r6, r0
|
|
mov r0, r1, lsl #0xf
|
|
mov r1, r0, lsr #0x10
|
|
_02021F00:
|
|
cmp r1, #1
|
|
bne _02021EE8
|
|
ldrh r1, [r7, #0x10]
|
|
add r0, r6, #3
|
|
sub r1, r1, #0x18
|
|
strh r1, [r6]
|
|
ldrh r1, [r7, #0x12]
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
ldrh r1, [r7, #0xe]
|
|
add r0, r6, #2
|
|
and r1, r1, #0xff
|
|
bl sub_0201A514
|
|
ldrh r2, [r6]
|
|
cmp r2, #0
|
|
beq _02021F50
|
|
add r0, r7, #0x2c
|
|
add r1, r6, #8
|
|
add r2, r2, #1
|
|
bl sub_0302D78C
|
|
_02021F50:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02021F58: .word 0x0380FFF4
|
|
arm_func_end sub_02021DB0
|
|
|
|
arm_func_start sub_02021F5C
|
|
sub_02021F5C: ; 0x02021F5C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _02022024 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r1, [r1]
|
|
add r0, r1, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
add r5, r1, #0x344
|
|
cmp r0, #0x40
|
|
movne r0, #1
|
|
bne _0202201C
|
|
add r0, r4, #0x1e
|
|
add r1, r5, #0x64
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
beq _02021FAC
|
|
add r0, r4, #0x24
|
|
add r1, r5, #0x82
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
bne _02021FB4
|
|
_02021FAC:
|
|
mov r0, #1
|
|
b _0202201C
|
|
_02021FB4:
|
|
ldrh r1, [r4, #0x10]
|
|
ldr r0, _02022028 ; =0x00000185
|
|
sub r1, r1, #0x1c
|
|
strh r1, [r4, #6]
|
|
sub r1, r4, #0x10
|
|
strh r0, [r1, #0xc]
|
|
mov r0, #0x18
|
|
strh r0, [r1, #0xe]
|
|
ldr r4, _02022024 ; =0x0380FFF4
|
|
ldr r2, _0202202C ; =0x04808094
|
|
ldr r0, [r4]
|
|
ldrh ip, [r2]
|
|
add r0, r0, #0x400
|
|
ldrh r2, [r2, #4]
|
|
ldrh r3, [r0, #0xe2]
|
|
and r0, r2, #0x8000
|
|
ldrh lr, [r1, #0x18]
|
|
and r2, ip, #0x8000
|
|
orr r0, r3, r0, asr #4
|
|
orr r0, r0, r2, asr #3
|
|
orr r0, lr, r0
|
|
strh r0, [r1, #0x18]
|
|
ldr r0, [r4]
|
|
add r0, r0, #0x188
|
|
bl sub_03028548
|
|
mov r0, #0
|
|
_0202201C:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02022024: .word 0x0380FFF4
|
|
_02022028: .word 0x00000185
|
|
_0202202C: .word 0x04808094
|
|
arm_func_end sub_02021F5C
|
|
|
|
arm_func_start sub_02022030
|
|
sub_02022030: ; 0x02022030
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x44
|
|
ldr r1, _02022658 ; =0x0380FFF4
|
|
mov sl, r0
|
|
ldr r3, [r1]
|
|
add r0, sl, #0x1e
|
|
ldr r2, [r3, #0x570]
|
|
add r1, r3, #4
|
|
add r2, r2, #1
|
|
str r2, [r3, #0x570]
|
|
add r4, r3, #0x344
|
|
add r5, r1, #0x400
|
|
add r6, r3, #0x31c
|
|
add r7, r3, #0x17c
|
|
bl sub_0201B198
|
|
mov r8, r0
|
|
mov r0, r8, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
strh r0, [sl, #2]
|
|
cmp r8, #0xff
|
|
beq _0202264C
|
|
ldrh r1, [sl, #0x12]
|
|
bl sub_0201B51C
|
|
ldrh sb, [sl, #6]
|
|
cmp sb, #0xc
|
|
bls _0202264C
|
|
add r1, sp, #0x18
|
|
mov r0, #0
|
|
mov r2, #0x2c
|
|
bl sub_0302D7C0
|
|
add r2, sl, #0x38
|
|
sub r1, sb, #0xc
|
|
mov r0, #2
|
|
str r2, [sp, #0x18]
|
|
strh r1, [sp, #0x20]
|
|
strh r0, [sp, #0x22]
|
|
ldrh r0, [r4, #0x1e]
|
|
cmp r0, #0
|
|
ldreqh r0, [sp, #0x22]
|
|
orreq r0, r0, #1
|
|
streqh r0, [sp, #0x22]
|
|
mov r0, #0x38
|
|
strh r0, [sp, #0x24]
|
|
ldrh r1, [sl, #8]
|
|
add r0, sp, #0x18
|
|
strh r1, [sp, #0x1c]
|
|
ldrh r1, [sl, #0x36]
|
|
strh r1, [sp, #0x1e]
|
|
bl sub_02023400
|
|
ldr sb, [sp, #0x38]
|
|
cmp sb, #0
|
|
beq _0202212C
|
|
ldrh r0, [sl, #0x16]
|
|
tst r0, #0x8000
|
|
beq _0202212C
|
|
add r0, sb, #6
|
|
bl sub_0201A540
|
|
mov fp, r0
|
|
add r0, sb, #7
|
|
bl sub_0201A540
|
|
ldr r1, _0202265C ; =0x0480810C
|
|
add r0, fp, r0, lsl #8
|
|
strh r0, [r1]
|
|
_0202212C:
|
|
ldrh r1, [r5]
|
|
cmp r1, #0x13
|
|
ldreq r0, [r5, #0x18]
|
|
ldreqh r0, [r0, #0x38]
|
|
cmpeq r0, #1
|
|
bne _02022164
|
|
ldrh r0, [sp, #0x22]
|
|
and r0, r0, #9
|
|
cmp r0, #9
|
|
bne _02022634
|
|
add r1, sp, #0x18
|
|
mov r0, sl
|
|
bl sub_020229E0
|
|
b _02022634
|
|
_02022164:
|
|
ldrh r0, [sp, #0x22]
|
|
tst r0, #8
|
|
beq _02022634
|
|
cmp r1, #0x21
|
|
bne _020222EC
|
|
bl sub_0201A3D0
|
|
ldrh r0, [sp, #0x22]
|
|
and r0, r0, #0x30
|
|
cmp r0, #0x30
|
|
movne r0, #0xc
|
|
strneh r0, [r5, #4]
|
|
movne r0, #0xa
|
|
strneh r0, [r5, #6]
|
|
bne _020222C8
|
|
ldrh r0, [sl, #0x34]
|
|
cmp r0, #0x3e8
|
|
movhi r0, #0xc
|
|
strhih r0, [r5, #4]
|
|
movhi r0, #1
|
|
strhih r0, [r5, #6]
|
|
bhi _020222C8
|
|
mov r1, #0
|
|
strh r1, [r5, #4]
|
|
ldrh r0, [sp, #0x24]
|
|
tst r0, #2
|
|
beq _020221E0
|
|
ldrh r0, [sp, #0x22]
|
|
tst r0, #2
|
|
bne _020221E0
|
|
ldrh r0, [sp, #0x2a]
|
|
bl sub_020190F0
|
|
_020221E0:
|
|
ldrh r1, [sp, #0x2e]
|
|
mov r0, r8
|
|
bl sub_0201B61C
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #2
|
|
bne _02022270
|
|
ldr sb, [sp, #0x40]
|
|
cmp sb, #0
|
|
beq _02022258
|
|
add r0, sb, #6
|
|
bl sub_0201A540
|
|
mov fp, r0
|
|
add r0, sb, #7
|
|
bl sub_0201A540
|
|
add r0, fp, r0, lsl #8
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #1
|
|
bl sub_020189A0
|
|
ldr r0, [sp, #0x40]
|
|
add r0, r0, #8
|
|
bl sub_0201A540
|
|
ldr r1, [sp, #0x40]
|
|
mov sb, r0
|
|
add r0, r1, #9
|
|
bl sub_0201A540
|
|
add r1, sb, r0, lsl #8
|
|
ldr r0, _02022660 ; =0x0380FFF0
|
|
strh r1, [r0]
|
|
b _02022270
|
|
_02022258:
|
|
ldr r0, _02022664 ; =0x0000FFFF
|
|
mov r1, #1
|
|
bl sub_020189A0
|
|
ldr r0, _02022660 ; =0x0380FFF0
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
_02022270:
|
|
ldr r0, [sp, #0x3c]
|
|
add r0, r0, #3
|
|
bl sub_0201A540
|
|
bl sub_02018F28
|
|
ldr r0, [sp, #0x3c]
|
|
add r0, r0, #2
|
|
bl sub_0201A540
|
|
strh r0, [r4, #0x76]
|
|
ldrh r0, [sl, #0x34]
|
|
bl sub_02018ED0
|
|
mov r0, #1
|
|
strh r0, [r4, #0x12]
|
|
strh r0, [r4, #0x1a]
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #2
|
|
ldreq r0, _02022668 ; =0x04808048
|
|
moveq r1, #3
|
|
streqh r1, [r0]
|
|
ldr r1, _0202266C ; =0x04808038
|
|
ldrh r0, [r1]
|
|
orr r0, r0, #1
|
|
strh r0, [r1]
|
|
_020222C8:
|
|
ldr r0, [r5, #0x1c]
|
|
add r1, sl, #0x1e
|
|
add r0, r0, #8
|
|
bl sub_020198D0
|
|
mov r2, #0x25
|
|
mov r0, #2
|
|
mov r1, #1
|
|
strh r2, [r5]
|
|
bl sub_03027D88
|
|
_020222EC:
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #2
|
|
beq _02022304
|
|
cmp r0, #3
|
|
beq _020223BC
|
|
b _0202261C
|
|
_02022304:
|
|
ldr sb, [sp, #0x40]
|
|
cmp sb, #0
|
|
beq _020223BC
|
|
add r0, sb, #6
|
|
bl sub_0201A540
|
|
mov r5, r0
|
|
add r0, sb, #7
|
|
bl sub_0201A540
|
|
add r0, r5, r0, lsl #8
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0
|
|
bl sub_020189A0
|
|
ldr r0, [sp, #0x40]
|
|
add r0, r0, #8
|
|
bl sub_0201A540
|
|
ldr r1, [sp, #0x40]
|
|
mov r5, r0
|
|
add r0, r1, #9
|
|
bl sub_0201A540
|
|
ldr r1, _02022660 ; =0x0380FFF0
|
|
add r0, r5, r0, lsl #8
|
|
strh r0, [r1]
|
|
ldr r0, [sp, #0x40]
|
|
add r0, r0, #1
|
|
bl sub_0201A540
|
|
sub r0, r0, #8
|
|
strh r0, [r4, #0xa0]
|
|
ldrh r2, [r4, #0xa0]
|
|
cmp r2, #0
|
|
beq _020223BC
|
|
ldr r0, [sp, #0x40]
|
|
ldr r1, [r4, #0x9c]
|
|
tst r0, #1
|
|
beq _020223A8
|
|
add r0, r0, #9
|
|
add r2, r2, #2
|
|
bl sub_0302D78C
|
|
mov r0, #1
|
|
strh r0, [r4, #0xa2]
|
|
b _020223BC
|
|
_020223A8:
|
|
add r0, r0, #0xa
|
|
add r2, r2, #1
|
|
bl sub_0302D78C
|
|
mov r0, #0
|
|
strh r0, [r4, #0xa2]
|
|
_020223BC:
|
|
mov r1, #0
|
|
mov r0, r8
|
|
strh r1, [r4, #0x80]
|
|
bl sub_0201B67C
|
|
add r1, sl, #0x2c
|
|
add r0, sp, #0x10
|
|
ldmia r1, {r2, r3}
|
|
stmia r0, {r2, r3}
|
|
ldrh r0, [r4, #0x6e]
|
|
mov r5, #0
|
|
mov r8, r0, lsl #0xa
|
|
ldr r0, [sp, #0x10]
|
|
ldr r1, [sp, #0x14]
|
|
mov r2, r8
|
|
mov r3, r5
|
|
bl sub_03036370
|
|
adds fp, r0, #1
|
|
umull r3, r0, fp, r8
|
|
adc sb, r1, #0
|
|
mla r0, fp, r5, r0
|
|
mla r0, sb, r8, r0
|
|
add r2, sp, #0x10
|
|
str r0, [sp, #0x14]
|
|
ldr r1, _02022670 ; =0x048080F6
|
|
ldrh r0, [r2, #6]
|
|
str r3, [sp, #0x10]
|
|
strh r0, [r1]
|
|
ldrh r0, [r2, #4]
|
|
strh r0, [r1, #-2]
|
|
ldrh r0, [r2, #2]
|
|
strh r0, [r1, #-4]
|
|
ldrh r0, [r2]
|
|
orr r0, r0, #1
|
|
strh r0, [r1, #-6]
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #2
|
|
bne _02022524
|
|
ldrh r0, [r4, #0x1a]
|
|
cmp r0, #0
|
|
beq _02022524
|
|
ldr r1, [sp, #0x10]
|
|
ldr r0, [sp, #0x14]
|
|
subs r1, r1, r8
|
|
sbc r0, r0, r5
|
|
str r1, [sp, #0x10]
|
|
str r0, [sp, #0x14]
|
|
bl sub_0302D4F0
|
|
ldr r1, _02022674 ; =0x048080F8
|
|
ldrh ip, [r1]
|
|
ldrh fp, [r1, #2]
|
|
ldrh sb, [r1, #4]
|
|
ldrh r8, [r1, #6]
|
|
ldrh r5, [r1]
|
|
ldrh r3, [r1, #2]
|
|
ldrh r2, [r1, #4]
|
|
ldrh r1, [r1, #6]
|
|
strh ip, [sp, #8]
|
|
strh r5, [sp]
|
|
strh fp, [sp, #0xa]
|
|
strh sb, [sp, #0xc]
|
|
strh r8, [sp, #0xe]
|
|
strh r3, [sp, #2]
|
|
strh r2, [sp, #4]
|
|
strh r1, [sp, #6]
|
|
bl sub_0302D504
|
|
ldrh r1, [sp, #8]
|
|
ldrh r0, [sp]
|
|
cmp r1, r0
|
|
bhs _020224E8
|
|
ldr r2, [sp, #8]
|
|
ldr r0, [sp, #0x10]
|
|
ldr r1, [sp, #0xc]
|
|
subs r2, r2, r0
|
|
ldr r0, [sp, #0x14]
|
|
b _020224FC
|
|
_020224E8:
|
|
ldr r2, [sp]
|
|
ldr r0, [sp, #0x10]
|
|
ldr r1, [sp, #4]
|
|
subs r2, r2, r0
|
|
ldr r0, [sp, #0x14]
|
|
_020224FC:
|
|
sbc r0, r1, r0
|
|
mov r2, r2, lsr #0xa
|
|
orr r2, r2, r0, lsl #22
|
|
ldrh r1, [r6, #0x20]
|
|
ldr r0, _02022678 ; =0x04808134
|
|
cmp r2, r1
|
|
sublo r1, r1, r2
|
|
strloh r1, [r0]
|
|
movhs r1, #0
|
|
strhsh r1, [r0]
|
|
_02022524:
|
|
ldrh r0, [r4, #8]
|
|
cmp r0, #0x40
|
|
bne _0202261C
|
|
ldr r1, [sp, #0x3c]
|
|
cmp r1, #0
|
|
beq _0202261C
|
|
ldrh r0, [r4, #0xe]
|
|
cmp r0, #1
|
|
bne _0202261C
|
|
add r0, r1, #2
|
|
bl sub_0201A540
|
|
ldrh r1, [r4, #0x76]
|
|
cmp r1, r0
|
|
strneh r0, [r4, #0x76]
|
|
mov r1, #0
|
|
strh r1, [r4, #0x8e]
|
|
cmp r0, #0
|
|
bne _02022588
|
|
ldr r0, [sp, #0x3c]
|
|
add r0, r0, #4
|
|
bl sub_0201A540
|
|
tst r0, #1
|
|
ldrneh r0, [r4, #0x8e]
|
|
orrne r0, r0, #1
|
|
strneh r0, [r4, #0x8e]
|
|
_02022588:
|
|
ldr r0, [sp, #0x3c]
|
|
add r0, r0, #4
|
|
bl sub_0201A540
|
|
ldr r1, [sp, #0x3c]
|
|
and r8, r0, #0xfe
|
|
add r0, r1, #1
|
|
mov r5, r8, lsl #3
|
|
bl sub_0201A540
|
|
ldrh r1, [r4, #0x6a]
|
|
add r0, r8, r0
|
|
cmp r1, r8, lsl #3
|
|
sub r0, r0, #3
|
|
blo _020225F8
|
|
cmp r1, r0, lsl #3
|
|
bhi _020225F8
|
|
ldr r0, [sp, #0x3c]
|
|
sub r5, r1, r5
|
|
add r0, r0, #5
|
|
add r0, r0, r5, lsr #3
|
|
bl sub_0201A540
|
|
and r1, r5, #7
|
|
mov r2, #1
|
|
tst r0, r2, lsl r1
|
|
beq _020225F8
|
|
ldrh r0, [r4, #0x8e]
|
|
orr r0, r0, #2
|
|
strh r0, [r4, #0x8e]
|
|
bl sub_020208F8
|
|
_020225F8:
|
|
ldrh r0, [r7, #0x20]
|
|
cmp r0, #0
|
|
ldreqh r0, [r7, #0x2c]
|
|
cmpeq r0, #0
|
|
ldreqh r0, [r4, #0x8e]
|
|
cmpeq r0, #0
|
|
bne _0202261C
|
|
mov r0, #1
|
|
bl sub_020194A4
|
|
_0202261C:
|
|
ldrh r0, [r6, #0x1e]
|
|
mov r0, r0, lsl #0x19
|
|
movs r0, r0, lsr #0x1f
|
|
beq _02022634
|
|
mov r0, sl
|
|
bl sub_0201D784
|
|
_02022634:
|
|
ldr r2, [sp, #0x34]
|
|
cmp r2, #0
|
|
beq _0202264C
|
|
ldrh r0, [sp, #0x2a]
|
|
mov r1, sl
|
|
bl sub_0202436C
|
|
_0202264C:
|
|
add sp, sp, #0x44
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02022658: .word 0x0380FFF4
|
|
_0202265C: .word 0x0480810C
|
|
_02022660: .word 0x0380FFF0
|
|
_02022664: .word 0x0000FFFF
|
|
_02022668: .word 0x04808048
|
|
_0202266C: .word 0x04808038
|
|
_02022670: .word 0x048080F6
|
|
_02022674: .word 0x048080F8
|
|
_02022678: .word 0x04808134
|
|
arm_func_end sub_02022030
|
|
|
|
arm_func_start sub_0202267C
|
|
sub_0202267C: ; 0x0202267C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _02022758 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
ldrh r5, [r4, #2]
|
|
add r1, r0, #0x344
|
|
ldrh r0, [r1, #0xc]
|
|
cmp r0, #1
|
|
beq _020226B0
|
|
cmp r0, #2
|
|
cmpne r0, #3
|
|
beq _02022718
|
|
b _02022750
|
|
_020226B0:
|
|
mov r0, r5
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x40
|
|
bne _020226E8
|
|
mov r0, r5, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x30
|
|
bl sub_0201B434
|
|
ldrh r1, [r4, #0x2c]
|
|
add r0, r4, #0x1e
|
|
bl sub_0201D634
|
|
mov r0, r5
|
|
bl sub_02020550
|
|
b _02022750
|
|
_020226E8:
|
|
cmp r0, #0x30
|
|
add r0, r4, #0x1e
|
|
mov r1, #7
|
|
bne _02022700
|
|
bl sub_02020E94
|
|
b _02022708
|
|
_02022700:
|
|
mov r2, #1
|
|
bl sub_020216AC
|
|
_02022708:
|
|
cmp r0, #0
|
|
beq _02022750
|
|
bl sub_0202086C
|
|
b _02022750
|
|
_02022718:
|
|
ldrh r0, [r1, #8]
|
|
cmp r0, #0x40
|
|
bne _02022750
|
|
add r0, r4, #0x1e
|
|
add r1, r1, #0x82
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
beq _02022750
|
|
mov r0, #0x30
|
|
bl sub_03028A28
|
|
bl sub_0201982C
|
|
ldrh r1, [r4, #0x2c]
|
|
add r0, r4, #0x1e
|
|
bl sub_0201D634
|
|
_02022750:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02022758: .word 0x0380FFF4
|
|
arm_func_end sub_0202267C
|
|
|
|
arm_func_start sub_0202275C
|
|
sub_0202275C: ; 0x0202275C
|
|
stmdb sp!, {r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x2c
|
|
ldr r1, _02022924 ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r0, [r1]
|
|
ldrh r5, [r7, #6]
|
|
add r4, r0, #0x31c
|
|
cmp r5, #4
|
|
bls _02022918
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #1
|
|
bne _02022918
|
|
add r0, r7, #0x1e
|
|
mov r1, #0x10
|
|
bl sub_020217E4
|
|
cmp r0, #0
|
|
bne _02022918
|
|
ldrh r6, [r7, #2]
|
|
cmp r6, #0
|
|
beq _020227C0
|
|
mov r0, r6
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x30
|
|
bhs _020227F4
|
|
_020227C0:
|
|
add r0, r7, #0x1e
|
|
mov r1, #0xc0
|
|
bl sub_020217E4
|
|
cmp r0, #0
|
|
bne _02022918
|
|
add r0, r7, #0x1e
|
|
mov r1, #6
|
|
mov r2, #1
|
|
bl sub_020216AC
|
|
cmp r0, #0
|
|
beq _02022918
|
|
bl sub_0202086C
|
|
b _02022918
|
|
_020227F4:
|
|
mov r0, r6
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x40
|
|
mov r0, r6
|
|
bne _02022820
|
|
mov r1, #0x30
|
|
bl sub_0201B434
|
|
add r0, r7, #0x1e
|
|
mov r1, #1
|
|
bl sub_0201D634
|
|
b _0202282C
|
|
_02022820:
|
|
bl sub_0201B8BC
|
|
cmp r0, #0
|
|
bne _02022918
|
|
_0202282C:
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
mov r2, #0x2c
|
|
bl sub_0302D7C0
|
|
add r2, r7, #0x30
|
|
sub r1, r5, #4
|
|
str r2, [sp]
|
|
strh r1, [sp, #8]
|
|
add r0, sp, #0
|
|
bl sub_02023400
|
|
ldrh r1, [r7, #0x2c]
|
|
ldr r0, _02022928 ; =0x0000FFC2
|
|
tst r1, r0
|
|
bne _020228C4
|
|
mov r0, r1, lsl #0x1f
|
|
movs r0, r0, lsr #0x1f
|
|
beq _020228C4
|
|
ldrh r2, [r4, #0x18]
|
|
cmp r2, #0
|
|
moveq r0, r1, lsl #0x1b
|
|
moveq r0, r0, lsr #0x1f
|
|
cmpeq r0, #1
|
|
beq _020228C4
|
|
cmp r2, #0
|
|
beq _020228A0
|
|
ldrh r0, [r7, #0x2c]
|
|
mov r0, r0, lsl #0x1b
|
|
movs r0, r0, lsr #0x1f
|
|
beq _020228C4
|
|
_020228A0:
|
|
ldrh r0, [r4, #0x1e]
|
|
mov r0, r0, lsl #0x1d
|
|
mov r0, r0, lsr #0x1f
|
|
cmp r0, #1
|
|
bne _020228CC
|
|
ldrh r0, [r7, #0x2c]
|
|
mov r0, r0, lsl #0x1a
|
|
movs r0, r0, lsr #0x1f
|
|
bne _020228CC
|
|
_020228C4:
|
|
mov r1, #0xa
|
|
b _02022900
|
|
_020228CC:
|
|
mov r0, r6
|
|
bl sub_0201B5FC
|
|
ldrh r0, [sp, #0xa]
|
|
tst r0, #1
|
|
moveq r1, #1
|
|
beq _02022900
|
|
tst r0, #4
|
|
moveq r1, #0x12
|
|
beq _02022900
|
|
ldrh r1, [sp, #0x16]
|
|
mov r0, r6
|
|
bl sub_0201B61C
|
|
mov r1, #0
|
|
_02022900:
|
|
ldr r2, [sp, #0x1c]
|
|
mov r0, r6
|
|
bl sub_0202106C
|
|
cmp r0, #0
|
|
beq _02022918
|
|
bl sub_0202086C
|
|
_02022918:
|
|
add sp, sp, #0x2c
|
|
ldmia sp!, {r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02022924: .word 0x0380FFF4
|
|
_02022928: .word 0x0000FFC2
|
|
arm_func_end sub_0202275C
|
|
|
|
arm_func_start sub_0202292C
|
|
sub_0202292C: ; 0x0202292C
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #0x2c
|
|
mov r4, r0
|
|
add r0, r4, #0x1e
|
|
mov r1, #0x50
|
|
bl sub_020217E4
|
|
cmp r0, #0
|
|
bne _020229D0
|
|
ldrh r0, [r4, #0x24]
|
|
tst r0, #1
|
|
bne _02022964
|
|
ldrh r0, [r4, #8]
|
|
tst r0, #0x8000
|
|
beq _020229D0
|
|
_02022964:
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
mov r2, #0x2c
|
|
bl sub_0302D7C0
|
|
add r0, r4, #0x2c
|
|
str r0, [sp]
|
|
ldrh r1, [r4, #6]
|
|
ldr r0, _020229DC ; =0x0380FFF4
|
|
strh r1, [sp, #8]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x300
|
|
ldrh r0, [r0, #0x3a]
|
|
mov r0, r0, lsl #0x1e
|
|
movs r0, r0, lsr #0x1f
|
|
moveq r0, #0x800
|
|
streqh r0, [sp, #0xc]
|
|
add r0, sp, #0
|
|
bl sub_02023400
|
|
ldrh r0, [sp, #0xa]
|
|
and r0, r0, #1
|
|
cmp r0, #1
|
|
bne _020229D0
|
|
add r0, r4, #0x1e
|
|
bl sub_020213CC
|
|
cmp r0, #0
|
|
beq _020229D0
|
|
bl sub_0202086C
|
|
_020229D0:
|
|
add sp, sp, #0x2c
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020229DC: .word 0x0380FFF4
|
|
arm_func_end sub_0202292C
|
|
|
|
arm_func_start sub_020229E0
|
|
sub_020229E0: ; 0x020229E0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x30
|
|
ldr r2, _02022DA8 ; =0x0380FFF4
|
|
mov r7, r0
|
|
ldr r2, [r2]
|
|
mov sl, r1
|
|
add r0, r2, #0x400
|
|
ldrh r1, [r0, #4]
|
|
add r0, r2, #4
|
|
cmp r1, #0x13
|
|
add r4, r0, #0x400
|
|
bne _02022D9C
|
|
ldr r0, [r4, #0x18]
|
|
ldr r5, [r4, #0x1c]
|
|
add r8, r0, #0x4e
|
|
mov r6, #0
|
|
b _02022A50
|
|
_02022A24:
|
|
mov r0, r8
|
|
add r1, r7, #0x24
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
ldrneh r1, [r5, #6]
|
|
movne r0, #1
|
|
orrne r0, r1, r0, lsl r6
|
|
strneh r0, [r5, #6]
|
|
bne _02022D9C
|
|
add r8, r8, #6
|
|
add r6, r6, #1
|
|
_02022A50:
|
|
ldr r0, [r4, #0x18]
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r6, r0
|
|
blo _02022A24
|
|
add r6, r5, #0xa
|
|
mov r8, #0
|
|
b _02022A8C
|
|
_02022A6C:
|
|
add r0, r7, #0x24
|
|
add r1, r6, #4
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
bne _02022D9C
|
|
ldrh r0, [r6]
|
|
add r8, r8, #1
|
|
add r6, r6, r0, lsl #1
|
|
_02022A8C:
|
|
ldrh r0, [r5, #8]
|
|
cmp r8, r0
|
|
blo _02022A6C
|
|
mov r1, r6
|
|
mov r0, #0
|
|
mov r2, #0x40
|
|
bl sub_0302D764
|
|
ldrh r8, [r7, #6]
|
|
cmp r8, #0xc
|
|
bls _02022D9C
|
|
cmp sl, #0
|
|
bne _02022B08
|
|
add r1, sp, #4
|
|
mov r0, #0
|
|
mov r2, #0x2c
|
|
bl sub_0302D7C0
|
|
add r3, r7, #0x38
|
|
sub r2, r8, #0xc
|
|
mov r0, #0x38
|
|
strh r0, [sp, #0x10]
|
|
mov r1, #3
|
|
str r3, [sp, #4]
|
|
strh r2, [sp, #0xc]
|
|
strh r1, [sp, #0xe]
|
|
ldrh r1, [r7, #8]
|
|
add r0, sp, #4
|
|
strh r1, [sp, #8]
|
|
ldrh r1, [r7, #0x36]
|
|
strh r1, [sp, #0xa]
|
|
bl sub_02023400
|
|
add sl, sp, #4
|
|
_02022B08:
|
|
ldr r0, [sl, #0x28]
|
|
cmp r0, #0
|
|
ldreqh r0, [sl, #0x1a]
|
|
beq _02022B2C
|
|
add r0, r0, #1
|
|
bl sub_0201A540
|
|
sub r0, r0, #8
|
|
strh r0, [r6, #0x3c]
|
|
ldrh r0, [r6, #0x3c]
|
|
_02022B2C:
|
|
add r0, r0, #0x41
|
|
mov r0, r0, lsr #1
|
|
strh r0, [r6]
|
|
ldrh r0, [sl, #0xa]
|
|
and r0, r0, #1
|
|
cmp r0, #1
|
|
bne _02022D90
|
|
ldr r0, _02022DA8 ; =0x0380FFF4
|
|
ldrh r1, [r6]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
ldrh r0, [r0, #8]
|
|
cmp r0, r1
|
|
blo _02022D90
|
|
ldrh r1, [r7, #0x36]
|
|
add r0, r6, #4
|
|
strh r1, [r6, #0x2c]
|
|
add r1, r7, #0x24
|
|
bl sub_020198D0
|
|
ldrh r0, [r7, #0x34]
|
|
strh r0, [r6, #0x32]
|
|
ldrh r0, [r7, #0x12]
|
|
and r0, r0, #0xff
|
|
strh r0, [r6, #2]
|
|
ldr r0, [sl, #0x28]
|
|
cmp r0, #0
|
|
beq _02022BD4
|
|
mov r7, #0
|
|
add r8, r6, #0x40
|
|
b _02022BC4
|
|
_02022BA4:
|
|
ldr r0, [sl, #0x28]
|
|
add r0, r0, #0xa
|
|
add r0, r0, r7
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
add r0, r8, r7
|
|
bl sub_0201A514
|
|
add r7, r7, #1
|
|
_02022BC4:
|
|
ldrh r0, [r6, #0x3c]
|
|
cmp r7, r0
|
|
blo _02022BA4
|
|
b _02022C78
|
|
_02022BD4:
|
|
ldrh r0, [sl, #0x18]
|
|
strh r0, [r6, #0x3e]
|
|
ldrh r0, [sl, #0x18]
|
|
cmp r0, #0
|
|
beq _02022C78
|
|
add r7, r7, #0x38
|
|
add fp, r6, #0x40
|
|
mov r8, #0
|
|
b _02022C6C
|
|
_02022BF8:
|
|
mov r0, r7
|
|
bl sub_0201A540
|
|
mov sb, r0
|
|
add r0, r7, #1
|
|
bl sub_0201A540
|
|
cmp sb, #6
|
|
bls _02022C64
|
|
ldr r1, [sl, #0x28]
|
|
cmp r7, r1
|
|
beq _02022C64
|
|
add r0, r0, #2
|
|
mov sb, #0
|
|
str r0, [sp]
|
|
b _02022C50
|
|
_02022C30:
|
|
mov r0, r7
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
mov r0, fp
|
|
bl sub_0201A514
|
|
add fp, fp, #1
|
|
add r7, r7, #1
|
|
add sb, sb, #1
|
|
_02022C50:
|
|
ldr r0, [sp]
|
|
cmp sb, r0
|
|
blo _02022C30
|
|
add r8, r8, #1
|
|
b _02022C6C
|
|
_02022C64:
|
|
add r0, r0, #2
|
|
add r7, r7, r0
|
|
_02022C6C:
|
|
ldrh r0, [sl, #0x18]
|
|
cmp r8, r0
|
|
blo _02022BF8
|
|
_02022C78:
|
|
ldr r0, [sl, #0x1c]
|
|
cmp r0, #0
|
|
beq _02022CCC
|
|
add r0, r0, #1
|
|
bl sub_0201A540
|
|
strh r0, [r6, #0xa]
|
|
mov r7, #0
|
|
add r8, r6, #0xc
|
|
b _02022CBC
|
|
_02022C9C:
|
|
ldr r0, [sl, #0x1c]
|
|
add r0, r0, #2
|
|
add r0, r0, r7
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
add r0, r8, r7
|
|
bl sub_0201A514
|
|
add r7, r7, #1
|
|
_02022CBC:
|
|
ldrh r0, [r6, #0xa]
|
|
cmp r7, r0
|
|
blo _02022C9C
|
|
b _02022CF4
|
|
_02022CCC:
|
|
mov sb, #0
|
|
strh sb, [r6, #0xa]
|
|
add r8, r6, #0xc
|
|
mov r7, sb
|
|
_02022CDC:
|
|
mov r1, r7
|
|
add r0, r8, sb
|
|
bl sub_0201A514
|
|
add sb, sb, #1
|
|
cmp sb, #0x20
|
|
blo _02022CDC
|
|
_02022CF4:
|
|
ldrh r0, [sl, #0x14]
|
|
strh r0, [r6, #0x2e]
|
|
ldrh r0, [sl, #0x16]
|
|
strh r0, [r6, #0x30]
|
|
ldrh r0, [sl, #0x12]
|
|
strh r0, [r6, #0x36]
|
|
ldr r0, [sl, #0x20]
|
|
cmp r0, #0
|
|
beq _02022D24
|
|
add r0, r0, #3
|
|
bl sub_0201A540
|
|
strh r0, [r6, #0x38]
|
|
_02022D24:
|
|
ldr r0, [sl, #0x24]
|
|
cmp r0, #0
|
|
beq _02022D3C
|
|
add r0, r0, #3
|
|
bl sub_0201A540
|
|
strh r0, [r6, #0x34]
|
|
_02022D3C:
|
|
ldrh r1, [r5, #2]
|
|
ldrh r0, [r6]
|
|
add r0, r1, r0
|
|
strh r0, [r5, #2]
|
|
ldrh r0, [r5, #8]
|
|
add r0, r0, #1
|
|
strh r0, [r5, #8]
|
|
ldrh r1, [r4, #4]
|
|
ldrh r0, [r6]
|
|
sub r0, r1, r0
|
|
strh r0, [r4, #4]
|
|
ldrh r0, [r4, #4]
|
|
cmp r0, #0x20
|
|
bhs _02022D9C
|
|
bl sub_0201A3D0
|
|
mov r2, #0x15
|
|
mov r0, #2
|
|
mov r1, #0
|
|
strh r2, [r4]
|
|
bl sub_03027D88
|
|
b _02022D9C
|
|
_02022D90:
|
|
ldr r1, _02022DAC ; =0x027F74B4
|
|
add r0, r6, #4
|
|
bl sub_020198D0
|
|
_02022D9C:
|
|
add sp, sp, #0x30
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02022DA8: .word 0x0380FFF4
|
|
_02022DAC: .word 0x027F74B4
|
|
arm_func_end sub_020229E0
|
|
|
|
arm_func_start sub_02022DB0
|
|
sub_02022DB0: ; 0x02022DB0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r1, _0202333C ; =0x0380FFF4
|
|
mov sl, r0
|
|
ldr r2, [r1]
|
|
add r0, r2, #0x600
|
|
ldrh r1, [r0, #0x90]
|
|
add r0, r2, #4
|
|
tst r1, #8
|
|
add r4, r2, #0x344
|
|
add sb, r0, #0x400
|
|
beq _02022E50
|
|
ldr r1, _02023340 ; =0x048080B0
|
|
add r0, r2, #0x2c
|
|
ldrh r2, [r1]
|
|
add r1, r0, #0x400
|
|
tst r2, #1
|
|
ldrneh r0, [r1]
|
|
cmpne r0, #0
|
|
bne _02022E50
|
|
tst r2, #4
|
|
ldrneh r0, [r1, #0x14]
|
|
cmpne r0, #0
|
|
bne _02022E50
|
|
tst r2, #8
|
|
ldrneh r0, [r1, #0x28]
|
|
cmpne r0, #0
|
|
bne _02022E50
|
|
ldr r0, _02023344 ; =0x0480819C
|
|
ldrh r0, [r0]
|
|
tst r0, #1
|
|
bne _02022E50
|
|
ldr r2, _02023348 ; =0x04808032
|
|
mov r3, #0
|
|
strh r3, [r2]
|
|
mov r1, #0x8000
|
|
ldr r0, _0202333C ; =0x0380FFF4
|
|
strh r1, [r2]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
strh r3, [r0, #0xde]
|
|
_02022E50:
|
|
add r0, sl, #0x1e
|
|
mov r1, #0xb0
|
|
bl sub_020217E4
|
|
cmp r0, #0
|
|
bne _02023334
|
|
ldrh r0, [sl, #0x2e]
|
|
ldrh r8, [sl, #2]
|
|
add r0, r0, #1
|
|
mov r0, r0, lsl #0x10
|
|
cmp r8, #0
|
|
mov r5, #0
|
|
mov r6, r0, lsr #0x10
|
|
moveq r7, #0x13
|
|
moveq r5, #1
|
|
beq _020232F8
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
bne _02022F00
|
|
mov r0, r8
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x20
|
|
bls _02022EC4
|
|
mov r0, r8, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x20
|
|
bl sub_0201B434
|
|
add r0, sl, #0x1e
|
|
mov r1, #1
|
|
bl sub_0201D3D4
|
|
_02022EC4:
|
|
ldrh r0, [sl, #8]
|
|
tst r0, #0x400
|
|
beq _02022F00
|
|
mov r0, r8
|
|
bl sub_0201B850
|
|
cmp r0, #0
|
|
beq _02022F00
|
|
mov r5, #1
|
|
mov r0, r8
|
|
mov r1, #0
|
|
strh r5, [sl, #0x2c]
|
|
mov r7, #0xf
|
|
mov r6, #4
|
|
bl sub_0201B65C
|
|
b _020232F8
|
|
_02022F00:
|
|
ldrh r0, [sl, #0x2c]
|
|
cmp r0, #0
|
|
beq _02022F18
|
|
cmp r0, #1
|
|
beq _02022FF4
|
|
b _020232E8
|
|
_02022F18:
|
|
ldrh r1, [r4, #0xc]
|
|
cmp r1, #1
|
|
ldreq r0, _0202333C ; =0x0380FFF4
|
|
ldreq r0, [r0]
|
|
addeq r0, r0, #0x300
|
|
ldreqh r0, [r0, #0x32]
|
|
cmpeq r0, #1
|
|
moveq r7, #0xd
|
|
moveq r5, #1
|
|
beq _020232F8
|
|
cmp r1, #1
|
|
bne _02022F64
|
|
ldrh r0, [sl, #0x2e]
|
|
mov r5, #1
|
|
cmp r0, #1
|
|
moveq r7, #0
|
|
movne r7, #0xe
|
|
movne r6, #2
|
|
b _020232F8
|
|
_02022F64:
|
|
beq _020232F8
|
|
ldrh r0, [sl, #0x2e]
|
|
cmp r0, #2
|
|
ldreq r1, [sb, #0x18]
|
|
ldreqh r0, [r1, #0x16]
|
|
cmpeq r0, #0
|
|
bne _020232F8
|
|
add r0, r1, #0x10
|
|
add r1, sl, #0x1e
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
beq _020232F8
|
|
ldrh r0, [sb]
|
|
cmp r0, #0x31
|
|
bne _020232F8
|
|
bl sub_0201A3D0
|
|
ldrh r0, [sl, #0x30]
|
|
cmp r0, #0
|
|
ldrne r0, [sb, #0x1c]
|
|
movne r1, #0xc
|
|
strneh r1, [r0, #4]
|
|
ldrneh r1, [sl, #0x30]
|
|
bne _02022FD4
|
|
mov r0, #0x30
|
|
bl sub_03028A28
|
|
ldr r0, [sb, #0x1c]
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
_02022FD4:
|
|
ldr r0, [sb, #0x1c]
|
|
mov r2, #0x35
|
|
strh r1, [r0, #6]
|
|
mov r0, #2
|
|
mov r1, r0
|
|
strh r2, [sb]
|
|
bl sub_03027D88
|
|
b _020232F8
|
|
_02022FF4:
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
bne _02023194
|
|
mov r0, r8, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x20
|
|
bl sub_0201B434
|
|
ldrh r0, [sl, #0x2e]
|
|
cmp r0, #1
|
|
bne _020230B0
|
|
add r0, sl, #0x1e
|
|
mov r1, #0x80
|
|
mov r2, #1
|
|
bl sub_020215EC
|
|
movs r4, r0
|
|
beq _020232F8
|
|
ldrh r1, [sl, #0x2c]
|
|
ldr r0, _0202334C ; =0x04808044
|
|
strh r1, [r4, #0x2c]
|
|
strh r6, [r4, #0x2e]
|
|
mov r1, #0
|
|
strh r1, [r4, #0x30]
|
|
ldrh r1, [r0]
|
|
ldrh r0, [r0]
|
|
add r0, r1, r0, lsl #8
|
|
mov r0, r0, lsl #0x10
|
|
movs sb, r0, lsr #0x10
|
|
moveq sb, #1
|
|
mov r0, sb
|
|
bl sub_0201A590
|
|
mov r0, r8
|
|
mov r1, sb
|
|
bl sub_0201B65C
|
|
add r0, r4, #0x33
|
|
add sb, r4, #0x34
|
|
bl sub_0201A540
|
|
mov fp, r0
|
|
mov r8, #0
|
|
b _0202309C
|
|
_02023090:
|
|
bl sub_0201A5A8
|
|
strh r0, [sb], #2
|
|
add r8, r8, #2
|
|
_0202309C:
|
|
cmp r8, fp
|
|
blo _02023090
|
|
mov r0, r4
|
|
bl sub_0202086C
|
|
b _020232F8
|
|
_020230B0:
|
|
cmp r0, #3
|
|
mov r0, r8
|
|
bne _0202317C
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x20
|
|
bne _020230D8
|
|
mov r0, r8
|
|
bl sub_0201B850
|
|
cmp r0, #0
|
|
bne _020230E4
|
|
_020230D8:
|
|
mov r7, #1
|
|
mov r5, r7
|
|
b _020232F8
|
|
_020230E4:
|
|
ldrh r0, [sl, #2]
|
|
bl sub_0201B850
|
|
bl sub_0201A590
|
|
add r0, sl, #0x33
|
|
add r7, sl, #0x34
|
|
bl sub_0201A540
|
|
mov r4, r0
|
|
mov r5, #0
|
|
b _02023120
|
|
_02023108:
|
|
bl sub_0201A5A8
|
|
ldrh r1, [r7], #2
|
|
cmp r1, r0
|
|
movne r0, #0
|
|
bne _02023150
|
|
add r5, r5, #1
|
|
_02023120:
|
|
cmp r5, r4, lsr #1
|
|
blo _02023108
|
|
tst r4, #1
|
|
beq _0202314C
|
|
bl sub_0201A5A8
|
|
ldrh r1, [r7]
|
|
and r0, r0, #0xff
|
|
and r1, r1, #0xff
|
|
cmp r1, r0
|
|
movne r0, #0
|
|
bne _02023150
|
|
_0202314C:
|
|
mov r0, #1
|
|
_02023150:
|
|
cmp r0, #0
|
|
mov r0, r8
|
|
mov r1, #0
|
|
mov r5, #1
|
|
bne _02023170
|
|
mov r7, #0xf
|
|
bl sub_0201B65C
|
|
b _020232F8
|
|
_02023170:
|
|
bl sub_0201B65C
|
|
mov r7, #0
|
|
b _020232F8
|
|
_0202317C:
|
|
mov r1, #0
|
|
bl sub_0201B65C
|
|
mov r7, #0xe
|
|
mov r6, #2
|
|
mov r5, #1
|
|
b _020232F8
|
|
_02023194:
|
|
ldr r1, [sb, #0x18]
|
|
ldrh r0, [r1, #0x16]
|
|
cmp r0, #1
|
|
bne _020232F8
|
|
add r0, r1, #0x10
|
|
add r1, sl, #0x1e
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
beq _020232F8
|
|
ldrh r0, [sl, #0x2e]
|
|
cmp r0, #2
|
|
bne _02023284
|
|
ldrh r0, [sb]
|
|
cmp r0, #0x31
|
|
bne _020232F8
|
|
ldrh r0, [sl, #0x30]
|
|
cmp r0, #0
|
|
beq _02023218
|
|
bl sub_0201A3D0
|
|
mov r0, #0x35
|
|
strh r0, [sb]
|
|
ldr r0, [sb, #0x1c]
|
|
mov r1, #0xc
|
|
strh r1, [r0, #4]
|
|
mov r0, #2
|
|
ldrh r3, [sl, #0x30]
|
|
ldr r2, [sb, #0x1c]
|
|
mov r1, r0
|
|
strh r3, [r2, #6]
|
|
bl sub_03027D88
|
|
mov r0, #0x20
|
|
bl sub_03028A28
|
|
b _020232F8
|
|
_02023218:
|
|
mov r1, #0x33
|
|
add r0, sl, #0x33
|
|
strh r1, [sb]
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
add r0, sl, #0x1e
|
|
mov r2, #1
|
|
bl sub_020215EC
|
|
movs r4, r0
|
|
beq _020232F8
|
|
ldrh r1, [r4, #0x14]
|
|
add r0, sl, #0x2c
|
|
orr r1, r1, #0x4000
|
|
strh r1, [r4, #0x14]
|
|
ldrh r2, [sl, #6]
|
|
add r1, r4, #0x2c
|
|
add r2, r2, #1
|
|
bl sub_0302D78C
|
|
ldrh r1, [sl, #0x2c]
|
|
mov r0, #3
|
|
strh r1, [r4, #0x2c]
|
|
strh r0, [r4, #0x2e]
|
|
mov r1, #0
|
|
mov r0, r4
|
|
strh r1, [r4, #0x30]
|
|
bl sub_0202086C
|
|
b _020232F8
|
|
_02023284:
|
|
cmp r0, #4
|
|
ldreqh r0, [sb]
|
|
cmpeq r0, #0x33
|
|
bne _020232F8
|
|
bl sub_0201A3D0
|
|
ldrh r0, [sl, #0x30]
|
|
cmp r0, #0
|
|
ldrne r0, [sb, #0x1c]
|
|
movne r1, #0xc
|
|
strneh r1, [r0, #4]
|
|
ldrneh r1, [sl, #0x30]
|
|
bne _020232C8
|
|
mov r0, #0x30
|
|
bl sub_03028A28
|
|
ldr r0, [sb, #0x1c]
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
_020232C8:
|
|
ldr r0, [sb, #0x1c]
|
|
mov r2, #0x35
|
|
strh r1, [r0, #6]
|
|
mov r0, #2
|
|
mov r1, r0
|
|
strh r2, [sb]
|
|
bl sub_03027D88
|
|
b _020232F8
|
|
_020232E8:
|
|
ldrh r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
moveq r7, #0xd
|
|
moveq r5, #1
|
|
_020232F8:
|
|
cmp r5, #0
|
|
beq _02023334
|
|
cmp r7, #0
|
|
movne r2, #1
|
|
moveq r2, #0
|
|
add r0, sl, #0x1e
|
|
mov r1, #0
|
|
bl sub_020215EC
|
|
cmp r0, #0
|
|
beq _02023334
|
|
ldrh r1, [sl, #0x2c]
|
|
strh r1, [r0, #0x2c]
|
|
strh r6, [r0, #0x2e]
|
|
strh r7, [r0, #0x30]
|
|
bl sub_0202086C
|
|
_02023334:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0202333C: .word 0x0380FFF4
|
|
_02023340: .word 0x048080B0
|
|
_02023344: .word 0x0480819C
|
|
_02023348: .word 0x04808032
|
|
_0202334C: .word 0x04808044
|
|
arm_func_end sub_02022DB0
|
|
|
|
arm_func_start sub_02023350
|
|
sub_02023350: ; 0x02023350
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r1, _020233FC ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
ldrh r5, [r4, #2]
|
|
add r1, r0, #0x344
|
|
ldrh r0, [r1, #0xc]
|
|
cmp r0, #1
|
|
beq _02023384
|
|
cmp r0, #2
|
|
cmpne r0, #3
|
|
beq _020233BC
|
|
b _020233F4
|
|
_02023384:
|
|
mov r0, r5
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x20
|
|
bls _020233F4
|
|
mov r0, r5, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, #0x20
|
|
bl sub_0201B434
|
|
ldrh r1, [r4, #0x2c]
|
|
add r0, r4, #0x1e
|
|
bl sub_0201D3D4
|
|
mov r0, r5
|
|
bl sub_02020550
|
|
b _020233F4
|
|
_020233BC:
|
|
ldrh r0, [r1, #8]
|
|
cmp r0, #0x20
|
|
bls _020233F4
|
|
add r0, r4, #0x1e
|
|
add r1, r1, #0x82
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
beq _020233F4
|
|
mov r0, #0x20
|
|
bl sub_03028A28
|
|
bl sub_0201982C
|
|
ldrh r1, [r4, #0x2c]
|
|
add r0, r4, #0x1e
|
|
bl sub_0201D3D4
|
|
_020233F4:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020233FC: .word 0x0380FFF4
|
|
arm_func_end sub_02023350
|
|
|
|
arm_func_start sub_02023400
|
|
sub_02023400: ; 0x02023400
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
ldr r1, _02023720 ; =0x0380FFF4
|
|
mov sb, r0
|
|
ldr r0, [r1]
|
|
ldr r5, [sb]
|
|
add r4, r0, #0x344
|
|
ldrh r0, [r4, #0x7a]
|
|
ldr sl, _02023720 ; =0x0380FFF4
|
|
strh r0, [sb, #0x12]
|
|
ldrh r0, [sb, #0xc]
|
|
tst r0, #0x800
|
|
ldrneh r0, [sb, #0xa]
|
|
orrne r0, r0, #1
|
|
strneh r0, [sb, #0xa]
|
|
ldrh r6, [sb, #8]
|
|
b _02023694
|
|
_02023440:
|
|
mov r0, r5
|
|
bl sub_0201A540
|
|
mov r8, r0
|
|
add r0, r5, #1
|
|
add r5, r5, #2
|
|
bl sub_0201A540
|
|
mov r7, r0
|
|
cmp r8, #6
|
|
addls pc, pc, r8, lsl #2
|
|
b _02023484
|
|
_02023468: ; jump table
|
|
b _02023490 ; case 0
|
|
b _020234FC ; case 1
|
|
b _02023688 ; case 2
|
|
b _02023560 ; case 3
|
|
b _020235CC ; case 4
|
|
b _020235AC ; case 5
|
|
b _02023688 ; case 6
|
|
_02023484:
|
|
cmp r8, #0xdd
|
|
beq _020235EC
|
|
b _0202366C
|
|
_02023490:
|
|
cmp r7, #0x20
|
|
bhi _02023688
|
|
ldrh r1, [sb, #0xc]
|
|
sub r0, r5, #2
|
|
orr r1, r1, #1
|
|
strh r1, [sb, #0xc]
|
|
str r0, [sb, #0x1c]
|
|
cmp r7, #0
|
|
bne _020234CC
|
|
ldrh r0, [sb, #0xc]
|
|
tst r0, #0x800
|
|
ldrneh r0, [sb, #0xa]
|
|
orrne r0, r0, #1
|
|
strneh r0, [sb, #0xa]
|
|
bne _02023688
|
|
_020234CC:
|
|
ldrh r1, [sb, #0xa]
|
|
mov r0, r7, lsl #0x10
|
|
bic r2, r1, #1
|
|
strh r2, [sb, #0xa]
|
|
mov r1, r5
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_02019B94
|
|
cmp r0, #0
|
|
ldrneh r0, [sb, #0xa]
|
|
orrne r0, r0, #1
|
|
strneh r0, [sb, #0xa]
|
|
b _02023688
|
|
_020234FC:
|
|
cmp r7, #1
|
|
blo _02023688
|
|
ldrh r1, [sb, #0xc]
|
|
sub r0, r5, #2
|
|
orr r1, r1, #4
|
|
strh r1, [sb, #0xc]
|
|
add r1, sb, #0x14
|
|
bl sub_02019CB4
|
|
ldrh r0, [r4, #0x60]
|
|
ldrh r1, [r4, #0x62]
|
|
ldrh r2, [sb, #0x14]
|
|
orr r1, r0, r1
|
|
mvn r1, r1
|
|
tst r2, r1
|
|
ldreqh r1, [sb, #0x16]
|
|
orreq r1, r2, r1
|
|
andeq r1, r0, r1
|
|
cmpeq r0, r1
|
|
ldreqh r0, [sb, #0xa]
|
|
orreq r0, r0, #4
|
|
streqh r0, [sb, #0xa]
|
|
ldrneh r0, [sb, #0xa]
|
|
bicne r0, r0, #4
|
|
strneh r0, [sb, #0xa]
|
|
b _02023688
|
|
_02023560:
|
|
cmp r7, #1
|
|
blo _02023688
|
|
ldrh r1, [sb, #0xc]
|
|
mov r0, r5
|
|
orr r1, r1, #2
|
|
strh r1, [sb, #0xc]
|
|
bl sub_0201A540
|
|
strh r0, [sb, #0x12]
|
|
ldr r0, [sl]
|
|
ldrh r1, [sb, #0x12]
|
|
ldr r0, [r0, #0x41c]
|
|
ldrh r0, [r0, #0x4a]
|
|
cmp r1, r0
|
|
ldrh r0, [sb, #0xa]
|
|
orreq r0, r0, #2
|
|
streqh r0, [sb, #0xa]
|
|
bicne r0, r0, #2
|
|
strneh r0, [sb, #0xa]
|
|
b _02023688
|
|
_020235AC:
|
|
cmp r7, #3
|
|
blo _02023688
|
|
ldrh r1, [sb, #0xc]
|
|
sub r0, r5, #2
|
|
orr r1, r1, #0x100
|
|
strh r1, [sb, #0xc]
|
|
str r0, [sb, #0x24]
|
|
b _02023688
|
|
_020235CC:
|
|
cmp r7, #6
|
|
blo _02023688
|
|
ldrh r1, [sb, #0xc]
|
|
sub r0, r5, #2
|
|
orr r1, r1, #0x200
|
|
strh r1, [sb, #0xc]
|
|
str r0, [sb, #0x20]
|
|
b _02023688
|
|
_020235EC:
|
|
cmp r7, #8
|
|
blo _02023634
|
|
mov r0, r5
|
|
bl sub_0201A540
|
|
cmp r0, #0
|
|
bne _02023634
|
|
add r0, r5, #1
|
|
bl sub_0201A540
|
|
cmp r0, #9
|
|
bne _02023634
|
|
add r0, r5, #2
|
|
bl sub_0201A540
|
|
cmp r0, #0xbf
|
|
bne _02023634
|
|
add r0, r5, #3
|
|
bl sub_0201A540
|
|
cmp r0, #0
|
|
beq _02023654
|
|
_02023634:
|
|
ldrh r1, [sb, #0x18]
|
|
add r0, r7, #2
|
|
add r1, r1, #1
|
|
strh r1, [sb, #0x18]
|
|
ldrh r1, [sb, #0x1a]
|
|
add r0, r1, r0
|
|
strh r0, [sb, #0x1a]
|
|
b _02023688
|
|
_02023654:
|
|
ldrh r1, [sb, #0xc]
|
|
sub r0, r5, #2
|
|
orr r1, r1, #0x400
|
|
strh r1, [sb, #0xc]
|
|
str r0, [sb, #0x28]
|
|
b _02023688
|
|
_0202366C:
|
|
ldrh r1, [sb, #0x18]
|
|
add r0, r7, #2
|
|
add r1, r1, #1
|
|
strh r1, [sb, #0x18]
|
|
ldrh r1, [sb, #0x1a]
|
|
add r0, r1, r0
|
|
strh r0, [sb, #0x1a]
|
|
_02023688:
|
|
add r0, r7, #2
|
|
add r5, r5, r7
|
|
sub r6, r6, r0
|
|
_02023694:
|
|
cmp r6, #0
|
|
bgt _02023440
|
|
ldrh r0, [sb, #0xc]
|
|
tst r0, #8
|
|
beq _020236CC
|
|
ldrh r0, [r4, #0x64]
|
|
tst r0, #1
|
|
bne _020236C0
|
|
ldrh r0, [sb, #4]
|
|
tst r0, #0x8000
|
|
beq _020236CC
|
|
_020236C0:
|
|
ldrh r0, [sb, #0xa]
|
|
orr r0, r0, #8
|
|
strh r0, [sb, #0xa]
|
|
_020236CC:
|
|
ldrh r0, [sb, #0xc]
|
|
tst r0, #0x30
|
|
beq _02023718
|
|
ldrh r1, [sb, #6]
|
|
ldrh r0, [r4, #0x7c]
|
|
and r1, r1, #3
|
|
and r0, r0, #3
|
|
cmp r1, r0
|
|
ldreqh r0, [sb, #0xa]
|
|
orreq r0, r0, #0x10
|
|
streqh r0, [sb, #0xa]
|
|
ldrh r1, [sb, #6]
|
|
ldrh r0, [r4, #0x7c]
|
|
and r1, r1, #0x10
|
|
and r0, r0, #0x10
|
|
cmp r1, r0
|
|
ldreqh r0, [sb, #0xa]
|
|
orreq r0, r0, #0x20
|
|
streqh r0, [sb, #0xa]
|
|
_02023718:
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02023720: .word 0x0380FFF4
|
|
arm_func_end sub_02023400
|
|
|
|
arm_func_start sub_02023724
|
|
sub_02023724: ; 0x02023724
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x2c
|
|
ldr r0, _02023DCC ; =0x0380FFF4
|
|
mvn r1, #0
|
|
ldr r4, [r0]
|
|
add sl, r4, #0x17c
|
|
ldr r6, [sl, #0x60]
|
|
add r0, r4, #0x300
|
|
ldrh r5, [r0, #0x50]
|
|
cmp r6, r1
|
|
beq _02023DC0
|
|
ldrh r0, [r6, #0x28]
|
|
tst r0, #1
|
|
ldrne r0, [r4, #0x568]
|
|
addne r0, r0, #1
|
|
strne r0, [r4, #0x568]
|
|
ldreq r0, [r4, #0x564]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x564]
|
|
ldrh r0, [r6, #0x18]
|
|
ldr r2, [r4, #0x560]
|
|
and r1, r0, #0xf0
|
|
mov r0, r1, asr #3
|
|
add r0, r1, r0, lsr #28
|
|
mov r0, r0, asr #4
|
|
sub r0, r0, #1
|
|
add r0, r2, r0
|
|
str r0, [r4, #0x560]
|
|
ldrh r1, [r6, #0x24]
|
|
add r0, r6, #0x2e
|
|
mov r2, r1, lsl #0x1c
|
|
mov r1, r1, lsl #0x18
|
|
mov r8, r2, lsr #0x1e
|
|
mov sb, r1, lsr #0x1c
|
|
bl sub_0201B198
|
|
mov r7, r0
|
|
strh r7, [r6, #0x12]
|
|
cmp r7, #0xff
|
|
bne _02023814
|
|
mov r0, #0
|
|
strh r0, [r6, #0x12]
|
|
cmp r5, #1
|
|
bne _02023D9C
|
|
cmp r8, #0
|
|
bne _02023D9C
|
|
cmp sb, #0
|
|
beq _02023808
|
|
cmp sb, #4
|
|
beq _020237FC
|
|
cmp sb, #0xb
|
|
bne _02023D9C
|
|
add r0, r6, #0x10
|
|
bl sub_02022DB0
|
|
b _02023D9C
|
|
_020237FC:
|
|
add r0, r6, #0x10
|
|
bl sub_0202292C
|
|
b _02023D9C
|
|
_02023808:
|
|
add r0, r6, #0x10
|
|
bl sub_0202275C
|
|
b _02023D9C
|
|
_02023814:
|
|
bl sub_0201B67C
|
|
ldrh r1, [r6, #0x22]
|
|
mov r0, r7, lsl #0x10
|
|
and r1, r1, #0xff
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_0201B51C
|
|
cmp r8, #0
|
|
bne _02023860
|
|
ldrh fp, [r6, #0x3a]
|
|
mov r0, r7
|
|
bl sub_0201B870
|
|
cmp fp, r0
|
|
ldreq r0, [r4, #0x578]
|
|
addeq r0, r0, #1
|
|
streq r0, [r4, #0x578]
|
|
beq _02023D9C
|
|
mov r0, r7
|
|
mov r1, fp
|
|
bl sub_0201B63C
|
|
_02023860:
|
|
cmp r5, #1
|
|
beq _02023878
|
|
cmp r5, #2
|
|
cmpne r5, #3
|
|
beq _02023B18
|
|
b _02023D9C
|
|
_02023878:
|
|
ldrh r1, [r6, #0x24]
|
|
mov r0, r7, lsl #0x10
|
|
mov r1, r1, lsl #0x13
|
|
mov r0, r0, lsr #0x10
|
|
mov r1, r1, lsr #0x1f
|
|
bl sub_0201B53C
|
|
cmp r8, #0
|
|
bne _02023AB4
|
|
cmp sb, #0xc
|
|
addls pc, pc, sb, lsl #2
|
|
b _02023D9C
|
|
_020238A4: ; jump table
|
|
b _020238E4 ; case 0
|
|
b _02023D9C ; case 1
|
|
b _020238F0 ; case 2
|
|
b _02023D9C ; case 3
|
|
b _02023A74 ; case 4
|
|
b _02023A80 ; case 5
|
|
b _02023D9C ; case 6
|
|
b _02023D9C ; case 7
|
|
b _020238D8 ; case 8
|
|
b _02023D9C ; case 9
|
|
b _02023A90 ; case 10
|
|
b _02023A9C ; case 11
|
|
b _02023AA8 ; case 12
|
|
_020238D8:
|
|
add r0, r6, #0x10
|
|
bl sub_02022030
|
|
b _02023D9C
|
|
_020238E4:
|
|
add r0, r6, #0x10
|
|
bl sub_0202275C
|
|
b _02023D9C
|
|
_020238F0:
|
|
ldr r0, _02023DCC ; =0x0380FFF4
|
|
ldrh r4, [r6, #0x16]
|
|
ldr r5, [r0]
|
|
cmp r4, #0xa
|
|
bls _02023D9C
|
|
add r0, r5, #0x300
|
|
ldrh r0, [r0, #0x50]
|
|
cmp r0, #1
|
|
bne _02023D9C
|
|
add r0, r6, #0x2e
|
|
mov r1, #0x30
|
|
bl sub_020217E4
|
|
cmp r0, #0
|
|
bne _02023D9C
|
|
ldrh r7, [r6, #0x12]
|
|
mov r0, r7
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x30
|
|
bhs _02023970
|
|
add r0, r6, #0x2e
|
|
mov r1, #0xc0
|
|
bl sub_020217E4
|
|
cmp r0, #0
|
|
bne _02023D9C
|
|
add r0, r6, #0x2e
|
|
mov r1, #6
|
|
mov r2, #1
|
|
bl sub_020216AC
|
|
cmp r0, #0
|
|
beq _02023D9C
|
|
bl sub_0202086C
|
|
b _02023D9C
|
|
_02023970:
|
|
mov r0, r7
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x40
|
|
mov r0, r7
|
|
bne _0202399C
|
|
mov r1, #0x30
|
|
bl sub_0201B434
|
|
add r0, r6, #0x2e
|
|
mov r1, #1
|
|
bl sub_0201D634
|
|
b _020239A8
|
|
_0202399C:
|
|
bl sub_0201B8BC
|
|
cmp r0, #0
|
|
bne _02023D9C
|
|
_020239A8:
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
mov r2, #0x2c
|
|
bl sub_0302D7C0
|
|
add r3, r6, #0x46
|
|
sub r2, r4, #0xa
|
|
mov r1, #0x800
|
|
str r3, [sp]
|
|
strh r2, [sp, #8]
|
|
strh r1, [sp, #0xc]
|
|
add r0, sp, #0
|
|
bl sub_02023400
|
|
ldrh r1, [r6, #0x3c]
|
|
ldr r0, _02023DD0 ; =0x0000FFC2
|
|
tst r1, r0
|
|
bne _02023A1C
|
|
add r0, r5, #0x300
|
|
ldrh r2, [r0, #0x34]
|
|
cmp r2, #0
|
|
moveq r0, r1, lsl #0x1b
|
|
moveq r0, r0, lsr #0x1f
|
|
cmpeq r0, #1
|
|
beq _02023A1C
|
|
cmp r2, #0
|
|
beq _02023A24
|
|
ldrh r0, [r6, #0x3c]
|
|
mov r0, r0, lsl #0x1b
|
|
movs r0, r0, lsr #0x1f
|
|
bne _02023A24
|
|
_02023A1C:
|
|
mov r1, #0xa
|
|
b _02023A58
|
|
_02023A24:
|
|
mov r0, r7
|
|
bl sub_0201B5FC
|
|
ldrh r0, [sp, #0xa]
|
|
tst r0, #1
|
|
moveq r1, #1
|
|
beq _02023A58
|
|
tst r0, #4
|
|
moveq r1, #0x12
|
|
beq _02023A58
|
|
ldrh r1, [sp, #0x16]
|
|
mov r0, r7
|
|
bl sub_0201B61C
|
|
mov r1, #0
|
|
_02023A58:
|
|
ldr r2, [sp, #0x1c]
|
|
mov r0, r7
|
|
bl sub_020211E0
|
|
cmp r0, #0
|
|
beq _02023D9C
|
|
bl sub_0202086C
|
|
b _02023D9C
|
|
_02023A74:
|
|
add r0, r6, #0x10
|
|
bl sub_0202292C
|
|
b _02023D9C
|
|
_02023A80:
|
|
add r0, r6, #0x10
|
|
mov r1, #0
|
|
bl sub_020229E0
|
|
b _02023D9C
|
|
_02023A90:
|
|
add r0, r6, #0x10
|
|
bl sub_0202267C
|
|
b _02023D9C
|
|
_02023A9C:
|
|
add r0, r6, #0x10
|
|
bl sub_02022DB0
|
|
b _02023D9C
|
|
_02023AA8:
|
|
add r0, r6, #0x10
|
|
bl sub_02023350
|
|
b _02023D9C
|
|
_02023AB4:
|
|
cmp r8, #1
|
|
bne _02023D9C
|
|
cmp sb, #0xa
|
|
bne _02023D9C
|
|
ldr r0, _02023DCC ; =0x0380FFF4
|
|
ldrh r4, [r6, #0x12]
|
|
ldr r1, [r0]
|
|
mov r0, r4
|
|
add r5, r1, #0x17c
|
|
bl sub_0201B7D0
|
|
cmp r0, #0x40
|
|
bne _02023D9C
|
|
mov r0, r4
|
|
bl sub_0201B5D8
|
|
ldrh r0, [r5, #0x2c]
|
|
cmp r0, #0
|
|
beq _02023B00
|
|
mov r0, #1
|
|
bl sub_0201F6E4
|
|
_02023B00:
|
|
ldrh r0, [r5, #0x20]
|
|
cmp r0, #0
|
|
beq _02023D9C
|
|
mov r0, #0
|
|
bl sub_0201F6E4
|
|
b _02023D9C
|
|
_02023B18:
|
|
cmp r8, #0
|
|
bne _02023D9C
|
|
cmp sb, #0xc
|
|
addls pc, pc, sb, lsl #2
|
|
b _02023D9C
|
|
_02023B2C: ; jump table
|
|
b _02023D9C ; case 0
|
|
b _02023B6C ; case 1
|
|
b _02023D9C ; case 2
|
|
b _02023C68 ; case 3
|
|
b _02023D9C ; case 4
|
|
b _02023D6C ; case 5
|
|
b _02023D9C ; case 6
|
|
b _02023D9C ; case 7
|
|
b _02023B60 ; case 8
|
|
b _02023D9C ; case 9
|
|
b _02023D7C ; case 10
|
|
b _02023D88 ; case 11
|
|
b _02023D94 ; case 12
|
|
_02023B60:
|
|
add r0, r6, #0x10
|
|
bl sub_02022030
|
|
b _02023D9C
|
|
_02023B6C:
|
|
ldr r0, _02023DCC ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r5, r0, #0x344
|
|
ldrh r1, [r5, #0xc]
|
|
add r0, r0, #4
|
|
cmp r1, #2
|
|
add r4, r0, #0x400
|
|
cmpne r1, #3
|
|
bne _02023D9C
|
|
ldrh r0, [r4]
|
|
cmp r0, #0x51
|
|
bne _02023D9C
|
|
ldr r0, [r4, #0x18]
|
|
add r1, r6, #0x2e
|
|
add r0, r0, #0x10
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
beq _02023D9C
|
|
bl sub_0201A3D0
|
|
ldrh r0, [r6, #0x3e]
|
|
cmp r0, #0
|
|
bne _02023C08
|
|
ldrh r1, [r6, #0x40]
|
|
ldr r0, _02023DD4 ; =0x00000FFF
|
|
and r0, r1, r0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_020197F0
|
|
ldrh r0, [r5, #0x6a]
|
|
bl sub_02021740
|
|
add r0, r5, #0x82
|
|
add r1, r6, #0x2e
|
|
bl sub_020198D0
|
|
add r0, r6, #0x2e
|
|
bl sub_0201B0F0
|
|
strh r0, [r5, #0x88]
|
|
ldrh r0, [r5, #0x88]
|
|
mov r1, #0x40
|
|
bl sub_0201B434
|
|
_02023C08:
|
|
ldrh r0, [r6, #0x3e]
|
|
cmp r0, #0
|
|
ldr r0, [r4, #0x1c]
|
|
movne r1, #0xc
|
|
strneh r1, [r0, #4]
|
|
ldrneh r1, [r6, #0x3e]
|
|
ldrne r0, [r4, #0x1c]
|
|
strneh r1, [r0, #6]
|
|
bne _02023C44
|
|
mov r2, #0
|
|
strh r2, [r0, #4]
|
|
ldr r1, [r4, #0x1c]
|
|
mov r0, #0x40
|
|
strh r2, [r1, #6]
|
|
bl sub_03028A28
|
|
_02023C44:
|
|
ldrh r1, [r5, #0x6a]
|
|
ldr r0, [r4, #0x1c]
|
|
mov r2, #0x53
|
|
strh r1, [r0, #8]
|
|
mov r0, #2
|
|
mov r1, #3
|
|
strh r2, [r4]
|
|
bl sub_03027D88
|
|
b _02023D9C
|
|
_02023C68:
|
|
ldr r0, _02023DCC ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
add r5, r0, #0x344
|
|
ldrh r1, [r5, #0xc]
|
|
add r0, r0, #4
|
|
cmp r1, #2
|
|
add r4, r0, #0x400
|
|
cmpne r1, #3
|
|
bne _02023D9C
|
|
ldrh r0, [r4]
|
|
cmp r0, #0x61
|
|
bne _02023D9C
|
|
ldr r0, [r4, #0x18]
|
|
add r1, r6, #0x2e
|
|
add r0, r0, #0x10
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
beq _02023D9C
|
|
bl sub_0201A3D0
|
|
ldrh r0, [r6, #0x3e]
|
|
cmp r0, #0
|
|
bne _02023D0C
|
|
ldrh r1, [r6, #0x40]
|
|
ldr r0, _02023DD4 ; =0x00000FFF
|
|
and r0, r1, r0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_020197F0
|
|
ldrh r0, [r5, #0x6a]
|
|
bl sub_02021740
|
|
add r0, r5, #0x82
|
|
add r1, r6, #0x2e
|
|
bl sub_020198D0
|
|
add r0, r6, #0x2e
|
|
bl sub_0201B0F0
|
|
strh r0, [r5, #0x88]
|
|
ldrh r0, [r5, #0x88]
|
|
mov r1, #0x40
|
|
bl sub_0201B434
|
|
mov r0, #0x40
|
|
bl sub_03028A28
|
|
_02023D0C:
|
|
ldrh r0, [r6, #0x3e]
|
|
cmp r0, #0
|
|
ldr r0, [r4, #0x1c]
|
|
movne r1, #0xc
|
|
strneh r1, [r0, #4]
|
|
ldrneh r1, [r6, #0x3e]
|
|
ldrne r0, [r4, #0x1c]
|
|
strneh r1, [r0, #6]
|
|
bne _02023D48
|
|
mov r2, #0
|
|
strh r2, [r0, #4]
|
|
ldr r1, [r4, #0x1c]
|
|
mov r0, #0x40
|
|
strh r2, [r1, #6]
|
|
bl sub_03028A28
|
|
_02023D48:
|
|
ldrh r1, [r5, #0x6a]
|
|
ldr r0, [r4, #0x1c]
|
|
mov r2, #0x63
|
|
strh r1, [r0, #8]
|
|
mov r0, #2
|
|
mov r1, #4
|
|
strh r2, [r4]
|
|
bl sub_03027D88
|
|
b _02023D9C
|
|
_02023D6C:
|
|
add r0, r6, #0x10
|
|
mov r1, #0
|
|
bl sub_020229E0
|
|
b _02023D9C
|
|
_02023D7C:
|
|
add r0, r6, #0x10
|
|
bl sub_0202267C
|
|
b _02023D9C
|
|
_02023D88:
|
|
add r0, r6, #0x10
|
|
bl sub_02022DB0
|
|
b _02023D9C
|
|
_02023D94:
|
|
add r0, r6, #0x10
|
|
bl sub_02023350
|
|
_02023D9C:
|
|
mov r1, r6
|
|
add r0, sl, #0x60
|
|
bl sub_030280F8
|
|
ldrh r0, [sl, #0x68]
|
|
cmp r0, #0
|
|
beq _02023DC0
|
|
mov r0, #1
|
|
mov r1, #7
|
|
bl sub_03027D88
|
|
_02023DC0:
|
|
add sp, sp, #0x2c
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02023DCC: .word 0x0380FFF4
|
|
_02023DD0: .word 0x0000FFC2
|
|
_02023DD4: .word 0x00000FFF
|
|
arm_func_end sub_02023724
|
|
|
|
arm_func_start sub_02023DD8
|
|
sub_02023DD8: ; 0x02023DD8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x18
|
|
ldr r0, _020242F0 ; =0x0380FFF4
|
|
mvn r1, #0
|
|
ldr r2, [r0]
|
|
add r0, r2, #0x17c
|
|
ldr r5, [r0, #0x6c]
|
|
str r0, [sp, #4]
|
|
cmp r5, r1
|
|
beq _020242E4
|
|
add r0, r2, #0x300
|
|
ldrh r0, [r0, #0x4c]
|
|
cmp r0, #0x40
|
|
bne _020242B8
|
|
ldrh r1, [r5, #0x20]
|
|
ldr r0, _020242F4 ; =0x000005FC
|
|
cmp r1, r0
|
|
bhi _020242B8
|
|
ldrh r4, [r5, #0x24]
|
|
add r0, sp, #8
|
|
tst r4, #0x100
|
|
beq _02023E50
|
|
add r1, r5, #0x34
|
|
bl sub_020198D0
|
|
tst r4, #0x200
|
|
bne _020242B8
|
|
add r0, sp, #0xe
|
|
add r1, r5, #0x2e
|
|
bl sub_020198D0
|
|
b _02023E78
|
|
_02023E50:
|
|
add r1, r5, #0x28
|
|
bl sub_020198D0
|
|
tst r4, #0x200
|
|
add r0, sp, #0xe
|
|
beq _02023E70
|
|
add r1, r5, #0x34
|
|
bl sub_020198D0
|
|
b _02023E78
|
|
_02023E70:
|
|
add r1, r5, #0x2e
|
|
bl sub_020198D0
|
|
_02023E78:
|
|
ldrh r0, [r5, #0x3a]
|
|
tst r4, #0x400
|
|
strh r0, [sp, #0x14]
|
|
beq _020240B0
|
|
ldrh r0, [r5, #0x3a]
|
|
mov r0, r0, lsl #0x1c
|
|
movs r0, r0, lsr #0x1c
|
|
bne _020240B0
|
|
ldr r0, _020242F0 ; =0x0380FFF4
|
|
mvn r6, #0
|
|
ldr r0, [r0]
|
|
mov r7, #0
|
|
add r0, r0, #0xe4
|
|
add r8, r0, #0x400
|
|
add fp, sp, #8
|
|
mov r4, #0x18
|
|
b _02023FC0
|
|
_02023EBC:
|
|
mul sb, r7, r4
|
|
ldrh r0, [r8, sb]
|
|
add sl, r8, sb
|
|
cmp r0, #0
|
|
beq _02023FB8
|
|
mov r1, fp
|
|
add r0, sl, #4
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
beq _02023FBC
|
|
add r1, sp, #0xe
|
|
add r0, sl, #0xa
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
beq _02023FBC
|
|
ldrh r0, [sp, #0x14]
|
|
ldrh r1, [sl, #0x10]
|
|
mov r0, r0, lsl #0x10
|
|
mov r2, r0, lsr #0x14
|
|
mov r0, r1, lsl #0x10
|
|
cmp r2, r0, lsr #20
|
|
bne _02023FBC
|
|
ldrh r0, [r5, #0x18]
|
|
mov r1, r1, lsl #0x1c
|
|
and r2, r0, #0xf0
|
|
mov r0, r2, asr #3
|
|
add r0, r2, r0, lsr #28
|
|
mov r7, r0, asr #4
|
|
subs r0, r7, r1, lsr #28
|
|
beq _020242B8
|
|
tst r0, #0x80000000
|
|
bne _020242B8
|
|
mov r0, sl
|
|
ldr r4, [r0, #0x14]
|
|
ldrh r0, [r5, #0x20]
|
|
ldrh r3, [r4, #0x20]
|
|
sub r0, r0, r3
|
|
subs r6, r0, #0x18
|
|
beq _020242B8
|
|
tst r6, #0x80000000
|
|
bne _020242B8
|
|
add r0, r5, #0x3c
|
|
add r1, r4, #0x3c
|
|
mov r2, r6
|
|
add r0, r0, r3
|
|
add r1, r1, r3
|
|
bl sub_0302D78C
|
|
ldrh r1, [r4, #0x20]
|
|
mov r0, r7, lsl #0x10
|
|
add r1, r1, r6
|
|
strh r1, [r4, #0x20]
|
|
ldrh r1, [sl, #0x10]
|
|
mov r0, r0, lsr #0x10
|
|
bic r1, r1, #0xf
|
|
and r0, r0, #0xf
|
|
orr r1, r1, r0
|
|
ldr r0, _020242F0 ; =0x0380FFF4
|
|
strh r1, [sl, #0x10]
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, #0x560]
|
|
add r0, r0, r7
|
|
str r0, [r1, #0x560]
|
|
b _020242B8
|
|
_02023FB8:
|
|
mov r6, r7
|
|
_02023FBC:
|
|
add r7, r7, #1
|
|
_02023FC0:
|
|
cmp r7, #3
|
|
blo _02023EBC
|
|
mvn r0, #0
|
|
cmp r6, r0
|
|
beq _020242B8
|
|
ldr r0, _020242F0 ; =0x0380FFF4
|
|
ldr r1, _020242F8 ; =0x00000622
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_0302805C
|
|
movs r4, r0
|
|
beq _020240A4
|
|
mov r0, #0x18
|
|
mul r7, r6, r0
|
|
add r6, r8, r7
|
|
add r0, sp, #8
|
|
add r1, r6, #4
|
|
mov r2, #0x10
|
|
bl sub_0302D78C
|
|
mov r0, #5
|
|
strh r0, [r8, r7]
|
|
mov r0, r6
|
|
str r4, [r0, #0x14]
|
|
ldrh r2, [r5, #0x20]
|
|
add r0, r5, #0x18
|
|
add r1, r4, #0x18
|
|
add r2, r2, #0xc
|
|
bl sub_0302D78C
|
|
ldr r0, _020242F0 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x30c]
|
|
bl sub_0302D678
|
|
ldrh r1, [r4, #0x18]
|
|
ldrh r0, [r6, #0x10]
|
|
and r1, r1, #0xf0
|
|
bic r3, r0, #0xf
|
|
mov r0, r1, asr #3
|
|
add r0, r1, r0, lsr #28
|
|
mov r1, r0, asr #4
|
|
mov r2, r1, lsl #0x10
|
|
mov r2, r2, lsr #0x10
|
|
and r2, r2, #0xf
|
|
orr r2, r3, r2
|
|
strh r2, [r6, #0x10]
|
|
ldr r2, _020242F0 ; =0x0380FFF4
|
|
ldr r3, [r2]
|
|
ldr r2, [r3, #0x560]
|
|
add r0, r2, r0, asr #4
|
|
str r0, [r3, #0x560]
|
|
ldrh r0, [r5, #0x20]
|
|
sub r0, r0, #0x18
|
|
strh r0, [r4, #0x20]
|
|
ldrh r0, [r4, #0x20]
|
|
bl sub_030365C4
|
|
mov r1, r6
|
|
strh r0, [r1, #2]
|
|
b _020242B8
|
|
_020240A4:
|
|
mov r0, #4
|
|
bl sub_0201A85C
|
|
b _020242B8
|
|
_020240B0:
|
|
ldr r1, _020242F0 ; =0x0380FFF4
|
|
ldrh r0, [r5, #0x20]
|
|
ldr r4, [r1]
|
|
sub r1, r0, #0x18
|
|
add r0, r4, #0xe4
|
|
strh r1, [r5, #0x20]
|
|
add r8, r0, #0x400
|
|
mov r7, #0
|
|
b _0202416C
|
|
_020240D4:
|
|
mov r0, #0x18
|
|
mul sb, r7, r0
|
|
ldrh r0, [r8, sb]
|
|
add sl, r8, sb
|
|
cmp r0, #0
|
|
beq _02024168
|
|
add r1, sp, #8
|
|
add r0, sl, #4
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
beq _02024168
|
|
add r1, sp, #0xe
|
|
add r0, sl, #0xa
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
beq _02024168
|
|
ldrh r2, [sp, #0x14]
|
|
ldrh r0, [sl, #0x10]
|
|
mov r1, r2, lsl #0x10
|
|
mov r1, r1, lsr #0x14
|
|
mov r0, r0, lsl #0x10
|
|
cmp r1, r0, lsr #20
|
|
bne _02024168
|
|
mov r1, sl
|
|
ldrh r0, [r1, #0x10]
|
|
sub fp, r0, r2
|
|
tst fp, #0x80000000
|
|
bne _020242B8
|
|
ldrh r0, [r1, #2]
|
|
ldrh r1, [r5, #0x20]
|
|
mul r0, fp, r0
|
|
str r0, [sp]
|
|
subs r6, r1, r0
|
|
beq _020242B8
|
|
tst r6, #0x80000000
|
|
beq _02024174
|
|
b _020242B8
|
|
_02024168:
|
|
add r7, r7, #1
|
|
_0202416C:
|
|
cmp r7, #3
|
|
blo _020240D4
|
|
_02024174:
|
|
cmp r7, #3
|
|
beq _020242B8
|
|
mov r0, #0x18
|
|
mul sb, r7, r0
|
|
add r0, r8, sb
|
|
ldr r1, [r0, #0x14]
|
|
ldr r0, _020242FC ; =0x000005E4
|
|
add r7, r1, #0x10
|
|
ldrh r1, [r7, #0x10]
|
|
add sl, r1, r6
|
|
cmp sl, r0
|
|
bls _020241BC
|
|
add r0, r4, #0x188
|
|
sub r1, r7, #0x10
|
|
bl sub_030280F8
|
|
mov r0, #0
|
|
strh r0, [r8, sb]
|
|
b _020242B8
|
|
_020241BC:
|
|
ldr r0, [sp]
|
|
add r3, r5, #0x3c
|
|
add r2, r7, #0x2c
|
|
add r1, r2, r1
|
|
add r0, r3, r0
|
|
add r2, r6, #1
|
|
bl sub_0302D78C
|
|
strh sl, [r7, #0x10]
|
|
ldrh r1, [r5, #0x18]
|
|
add r0, r8, sb
|
|
ldrh r6, [r0, #0x10]
|
|
and r2, r1, #0xf0
|
|
mov r1, r2, asr #3
|
|
add r1, r2, r1, lsr #28
|
|
mov r3, r6, lsl #0x1c
|
|
rsb r2, fp, r1, asr #4
|
|
add r2, r2, r3, lsr #28
|
|
mov r2, r2, lsl #0x10
|
|
mov r2, r2, lsr #0x10
|
|
bic r3, r6, #0xf
|
|
and r2, r2, #0xf
|
|
orr r3, r3, r2
|
|
ldr r2, _020242F0 ; =0x0380FFF4
|
|
strh r3, [r0, #0x10]
|
|
ldr r3, [r2]
|
|
ldr r2, [r3, #0x560]
|
|
add r1, r2, r1, asr #4
|
|
str r1, [r3, #0x560]
|
|
ldrh r1, [r5, #0x18]
|
|
tst r1, #0x100
|
|
bne _020242B8
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
ldrh r0, [r7, #8]
|
|
bic r0, r0, #0xf0
|
|
add r0, r0, #0x10
|
|
strh r0, [r7, #8]
|
|
ldrh r0, [r7, #0x10]
|
|
add r0, r0, #0x18
|
|
strh r0, [r7, #0x10]
|
|
ldrh r0, [r7, #8]
|
|
ands r0, r0, #0xf
|
|
beq _02024290
|
|
cmp r0, #8
|
|
add r0, r4, #0x188
|
|
bne _020242B0
|
|
add r1, r4, #0x1c4
|
|
sub r2, r7, #0x10
|
|
bl sub_03028178
|
|
mov r0, #2
|
|
mov r1, #6
|
|
bl sub_03027D88
|
|
b _020242B8
|
|
_02024290:
|
|
add r0, r4, #0x188
|
|
add r1, r4, #0x1dc
|
|
sub r2, r7, #0x10
|
|
bl sub_03028178
|
|
mov r0, #1
|
|
mov r1, #7
|
|
bl sub_03027D88
|
|
b _020242B8
|
|
_020242B0:
|
|
sub r1, r7, #0x10
|
|
bl sub_030280F8
|
|
_020242B8:
|
|
ldr r0, [sp, #4]
|
|
mov r1, r5
|
|
add r0, r0, #0x6c
|
|
bl sub_030280F8
|
|
ldr r0, [sp, #4]
|
|
ldrh r0, [r0, #0x74]
|
|
cmp r0, #0
|
|
beq _020242E4
|
|
mov r0, #2
|
|
mov r1, #9
|
|
bl sub_03027D88
|
|
_020242E4:
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020242F0: .word 0x0380FFF4
|
|
_020242F4: .word 0x000005FC
|
|
_020242F8: .word 0x00000622
|
|
_020242FC: .word 0x000005E4
|
|
arm_func_end sub_02023DD8
|
|
|
|
arm_func_start sub_02024300
|
|
sub_02024300: ; 0x02024300
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r4, _02024368 ; =0x0380FFF4
|
|
mov r6, #0
|
|
ldr r0, [r4]
|
|
mov r7, #0x18
|
|
add r0, r0, #0xe4
|
|
add r5, r0, #0x400
|
|
_0202431C:
|
|
mul r1, r6, r7
|
|
ldrh r0, [r5, r1]
|
|
add r1, r5, r1
|
|
cmp r0, #0
|
|
beq _02024354
|
|
sub r0, r0, #1
|
|
strh r0, [r1]
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _02024354
|
|
ldr r0, [r4]
|
|
ldr r1, [r1, #0x14]
|
|
add r0, r0, #0x188
|
|
bl sub_030280F8
|
|
_02024354:
|
|
add r6, r6, #1
|
|
cmp r6, #3
|
|
blo _0202431C
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02024368: .word 0x0380FFF4
|
|
arm_func_end sub_02024300
|
|
|
|
arm_func_start sub_0202436C
|
|
sub_0202436C: ; 0x0202436C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr r3, _020244AC ; =0x0380FFF4
|
|
mov sb, r2
|
|
ldr r2, [r3]
|
|
mov fp, r0
|
|
add r0, sb, #1
|
|
mov sl, r1
|
|
add r4, r2, #0x23c
|
|
bl sub_0201A540
|
|
cmp r0, #0x20
|
|
bhi _020244A4
|
|
mov r6, #4
|
|
mov r7, r6
|
|
mov r8, #0x400
|
|
mov r5, #0
|
|
b _020243EC
|
|
_020243AC:
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
beq _020243E0
|
|
add r0, r4, #6
|
|
add r1, sl, #0x24
|
|
bl sub_02019C64
|
|
cmp r0, #0
|
|
bne _0202440C
|
|
ldrh r0, [r4, #0x30]
|
|
cmp r0, r8
|
|
movlo r8, r0
|
|
movlo r7, r5
|
|
b _020243E4
|
|
_020243E0:
|
|
mov r6, r5
|
|
_020243E4:
|
|
add r5, r5, #1
|
|
add r4, r4, #0x32
|
|
_020243EC:
|
|
cmp r5, #4
|
|
blo _020243AC
|
|
cmp r6, #4
|
|
movne r5, r6
|
|
bne _0202440C
|
|
cmp r7, #4
|
|
movne r5, r7
|
|
beq _020244A4
|
|
_0202440C:
|
|
ldr r0, _020244AC ; =0x0380FFF4
|
|
mov r2, #0x32
|
|
mul r4, r5, r2
|
|
ldr r0, [r0]
|
|
add r5, r0, #0x23c
|
|
add r6, r5, r4
|
|
mov r1, r6
|
|
mov r0, #0
|
|
bl sub_0302D764
|
|
mov r0, #0x400
|
|
strh r0, [r6, #0x30]
|
|
ldrh r1, [sl, #0x12]
|
|
add r0, r6, #6
|
|
and r1, r1, #0xff
|
|
strh r1, [r5, r4]
|
|
strh fp, [r6, #2]
|
|
add r1, sl, #0x24
|
|
bl sub_020198D0
|
|
add r0, sb, #1
|
|
bl sub_0201A540
|
|
strh r0, [r6, #0xc]
|
|
mov r7, #0
|
|
add r5, sb, #2
|
|
add r4, r6, #0xe
|
|
b _02024488
|
|
_02024470:
|
|
add r0, r5, r7
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
add r0, r4, r7
|
|
bl sub_0201A514
|
|
add r7, r7, #1
|
|
_02024488:
|
|
ldrh r0, [r6, #0xc]
|
|
cmp r7, r0
|
|
blo _02024470
|
|
ldrh r0, [sl, #0x34]
|
|
strh r0, [r6, #0x2e]
|
|
ldrh r0, [sl, #0x36]
|
|
strh r0, [r6, #4]
|
|
_020244A4:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020244AC: .word 0x0380FFF4
|
|
arm_func_end sub_0202436C
|
|
|
|
arm_func_start sub_020244B0
|
|
sub_020244B0: ; 0x020244B0
|
|
ldr r1, _020244CC ; =0x0380FFF4
|
|
ldr ip, _020244D0 ; =sub_037FDF74
|
|
ldr r1, [r1]
|
|
mov r0, #0
|
|
mov r2, #0xc8
|
|
add r1, r1, #0x23c
|
|
bx ip
|
|
.align 2, 0
|
|
_020244CC: .word 0x0380FFF4
|
|
_020244D0: .word sub_037FDF74
|
|
arm_func_end sub_020244B0
|
|
|
|
arm_func_start sub_020244D4
|
|
sub_020244D4: ; 0x020244D4
|
|
ldr r0, _02024518 ; =0x0380FFF4
|
|
mov r3, #0
|
|
ldr r0, [r0]
|
|
add r2, r0, #0x23c
|
|
mov r0, r3
|
|
_020244E8:
|
|
ldrh r1, [r2, #0x30]
|
|
cmp r1, #0
|
|
beq _02024508
|
|
sub r1, r1, #1
|
|
strh r1, [r2, #0x30]
|
|
ldrh r1, [r2, #0x30]
|
|
cmp r1, #0
|
|
streqh r0, [r2]
|
|
_02024508:
|
|
add r3, r3, #1
|
|
cmp r3, #4
|
|
blo _020244E8
|
|
bx lr
|
|
.align 2, 0
|
|
_02024518: .word 0x0380FFF4
|
|
arm_func_end sub_020244D4
|
|
|
|
arm_func_start sub_0202451C
|
|
sub_0202451C: ; 0x0202451C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r1, _020245B8 ; =0x0380FFF4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
ldr r1, [r0, #0x318]
|
|
ldrh r6, [r1, #2]
|
|
cmp r6, #0xa4
|
|
blo _02024548
|
|
ldr r0, _020245BC ; =0x000001D6
|
|
cmp r6, r0
|
|
bls _02024550
|
|
_02024548:
|
|
mov r0, #2
|
|
b _020245B0
|
|
_02024550:
|
|
add r7, r1, #2
|
|
mov r5, #0
|
|
b _02024580
|
|
_0202455C:
|
|
mov r0, r7
|
|
bl sub_0201A540
|
|
mov r1, r5, lsl #0x10
|
|
and r0, r0, #0xff
|
|
mov r1, r1, lsr #0x10
|
|
add r7, r7, #1
|
|
bl sub_0201A5D8
|
|
mov r5, r0
|
|
sub r6, r6, #1
|
|
_02024580:
|
|
cmp r6, #0
|
|
bne _0202455C
|
|
ldr r0, _020245B8 ; =0x0380FFF4
|
|
cmp r4, #0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x318]
|
|
ldrh r1, [r0]
|
|
orrne r0, r1, r5, lsl #16
|
|
strne r0, [r4]
|
|
cmp r5, r1
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
_020245B0:
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020245B8: .word 0x0380FFF4
|
|
_020245BC: .word 0x000001D6
|
|
arm_func_end sub_0202451C
|
|
|
|
arm_func_start sub_020245C0
|
|
sub_020245C0: ; 0x020245C0
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
add r4, sp, #0
|
|
_020245CC:
|
|
mov r0, r4
|
|
bl sub_02024D38
|
|
ldr r0, [sp]
|
|
tst r0, #0x20
|
|
beq _020245E8
|
|
bl sub_02025474
|
|
b _020245CC
|
|
_020245E8:
|
|
ldr r0, [sp]
|
|
tst r0, #1
|
|
bne _020245CC
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_020245C0
|
|
|
|
arm_func_start sub_02024600
|
|
sub_02024600: ; 0x02024600
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r3, _0202465C ; =0x0380FFF4
|
|
mov r6, r1
|
|
ldr r1, [r3]
|
|
mov r5, r2
|
|
ldr r1, [r1, #0x318]
|
|
cmp r1, #0
|
|
beq _02024654
|
|
add r0, r1, r0
|
|
sub r4, r0, #0x2a
|
|
b _0202464C
|
|
_0202462C:
|
|
mov r0, r4
|
|
bl sub_0201A540
|
|
mov r1, r0
|
|
mov r0, r5
|
|
add r4, r4, #1
|
|
bl sub_0201A514
|
|
add r5, r5, #1
|
|
sub r6, r6, #1
|
|
_0202464C:
|
|
cmp r6, #0
|
|
bne _0202462C
|
|
_02024654:
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0202465C: .word 0x0380FFF4
|
|
arm_func_end sub_02024600
|
|
|
|
arm_func_start sub_02024660
|
|
sub_02024660: ; 0x02024660
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r3, _020246AC ; =0x0380FFF4
|
|
mov r6, r0
|
|
ldr r0, [r3]
|
|
mov r5, r1
|
|
ldr r0, [r0, #0x314]
|
|
mov r4, r2
|
|
bl sub_0303317C
|
|
bl sub_020245C0
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, r4
|
|
bl sub_02024DA8
|
|
ldr r0, _020246AC ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x314]
|
|
bl sub_030331D8
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020246AC: .word 0x0380FFF4
|
|
arm_func_end sub_02024660
|
|
|
|
arm_func_start sub_020246B0
|
|
sub_020246B0: ; 0x020246B0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _02024794 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x314]
|
|
bl sub_0303317C
|
|
bl sub_020245C0
|
|
mov r3, #0
|
|
add r2, sp, #0
|
|
mov r0, #0x2c
|
|
mov r1, #2
|
|
str r3, [sp]
|
|
bl sub_02024DA8
|
|
ldr r0, _02024794 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x314]
|
|
bl sub_030331D8
|
|
ldr r1, [sp]
|
|
cmp r1, #0xa4
|
|
blo _02024708
|
|
ldr r0, _02024798 ; =0x000001D6
|
|
cmp r1, r0
|
|
bls _02024710
|
|
_02024708:
|
|
mov r0, #0
|
|
b _0202478C
|
|
_02024710:
|
|
ldr r0, _02024794 ; =0x0380FFF4
|
|
add r1, r1, #2
|
|
str r1, [sp]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x188
|
|
bl sub_0302805C
|
|
ldr r2, _02024794 ; =0x0380FFF4
|
|
ldr r1, [r2]
|
|
str r0, [r1, #0x318]
|
|
ldr r1, [r2]
|
|
ldr r0, [r1, #0x318]
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
beq _0202478C
|
|
add r0, r0, #0xc
|
|
str r0, [r1, #0x318]
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, #0x314]
|
|
bl sub_0303317C
|
|
bl sub_020245C0
|
|
ldr r0, _02024794 ; =0x0380FFF4
|
|
ldr r1, [sp]
|
|
ldr r2, [r0]
|
|
mov r0, #0x2a
|
|
ldr r2, [r2, #0x318]
|
|
bl sub_02024DA8
|
|
ldr r0, _02024794 ; =0x0380FFF4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x314]
|
|
bl sub_030331D8
|
|
mov r0, #1
|
|
_0202478C:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02024794: .word 0x0380FFF4
|
|
_02024798: .word 0x000001D6
|
|
arm_func_end sub_020246B0
|
|
|
|
arm_func_start sub_0202479C
|
|
sub_0202479C: ; 0x0202479C
|
|
ldr r0, _020247C0 ; =0x027F8E08
|
|
mov r3, #0
|
|
mov r2, r3
|
|
_020247A8:
|
|
mov r1, r3, lsl #1
|
|
add r3, r3, #1
|
|
strh r2, [r0, r1]
|
|
cmp r3, #0x10
|
|
blt _020247A8
|
|
bx lr
|
|
.align 2, 0
|
|
_020247C0: .word 0x027F8E08
|
|
arm_func_end sub_0202479C
|
|
|
|
arm_func_start sub_020247C4
|
|
sub_020247C4: ; 0x020247C4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #8
|
|
tst r0, #0x2000000
|
|
beq _020247F4
|
|
ldr r2, _02024964 ; =0x027F8E08
|
|
mov r5, #0
|
|
mov lr, r5
|
|
_020247E0:
|
|
mov r4, r5, lsl #1
|
|
add r5, r5, #1
|
|
strh lr, [r2, r4]
|
|
cmp r5, #0x10
|
|
blt _020247E0
|
|
_020247F4:
|
|
ldr r2, _02024964 ; =0x027F8E08
|
|
and r4, r0, #0xf0000
|
|
mov r4, r4, lsr #0x10
|
|
mov r4, r4, lsl #1
|
|
strh r0, [r2, r4]
|
|
tst r0, #0x1000000
|
|
beq _02024958
|
|
ldr lr, _02024968 ; =0x027F8E08
|
|
ldrh r0, [lr]
|
|
and r2, r0, #0xff00
|
|
mov r2, r2, lsl #8
|
|
mov r4, r2, lsr #0x10
|
|
sub r2, r4, #0x22
|
|
cmp r2, #0xa
|
|
addls pc, pc, r2, lsl #2
|
|
b _0202492C
|
|
_02024834: ; jump table
|
|
b _02024860 ; case 0
|
|
b _02024898 ; case 1
|
|
b _02024898 ; case 2
|
|
b _020248E0 ; case 3
|
|
b _020248E0 ; case 4
|
|
b _02024920 ; case 5
|
|
b _02024920 ; case 6
|
|
b _0202492C ; case 7
|
|
b _0202492C ; case 8
|
|
b _0202492C ; case 9
|
|
b _02024860 ; case 10
|
|
_02024860:
|
|
ldrh ip, [lr, #4]
|
|
ldrh r2, [lr, #2]
|
|
mov r0, r0, lsl #0x18
|
|
and ip, ip, #0xff00
|
|
orr r0, r0, r2, lsl #8
|
|
orr ip, r0, ip, lsr #8
|
|
cmp ip, #0x2000000
|
|
blo _02024888
|
|
cmp ip, #0x2800000
|
|
blo _0202492C
|
|
_02024888:
|
|
mov r0, r4
|
|
mov r1, #2
|
|
bl sub_03033238
|
|
b _02024958
|
|
_02024898:
|
|
ldrh r2, [lr, #8]
|
|
ldrh r1, [lr, #0xa]
|
|
orr ip, r1, r2, lsl #16
|
|
cmp ip, #0x2000000
|
|
blo _020248B4
|
|
cmp ip, #0x2800000
|
|
blo _020248C4
|
|
_020248B4:
|
|
mov r0, r4
|
|
mov r1, #2
|
|
bl sub_03033238
|
|
b _02024958
|
|
_020248C4:
|
|
ldrh r2, [lr, #2]
|
|
mov r3, r0, lsl #0x18
|
|
ldrh r1, [lr, #4]
|
|
ldrh r0, [lr, #6]
|
|
orr r3, r2, r3, lsr #8
|
|
orr r1, r0, r1, lsl #16
|
|
b _0202492C
|
|
_020248E0:
|
|
ldrh r2, [lr, #6]
|
|
ldrh r1, [lr, #8]
|
|
orr ip, r1, r2, lsl #16
|
|
cmp ip, #0x2000000
|
|
blo _020248FC
|
|
cmp ip, #0x2800000
|
|
blo _0202490C
|
|
_020248FC:
|
|
mov r0, r4
|
|
mov r1, #2
|
|
bl sub_03033238
|
|
b _02024958
|
|
_0202490C:
|
|
ldrh r2, [lr, #2]
|
|
mov r0, r0, lsl #0x18
|
|
ldrh r1, [lr, #4]
|
|
orr r3, r2, r0, lsr #8
|
|
b _0202492C
|
|
_02024920:
|
|
ldrh r2, [lr, #2]
|
|
mov r0, r0, lsl #0x18
|
|
orr r3, r2, r0, lsr #8
|
|
_0202492C:
|
|
str r1, [sp]
|
|
mov r1, r4
|
|
mov r0, #1
|
|
mov r2, #3
|
|
str ip, [sp, #4]
|
|
bl sub_0303336C
|
|
cmp r0, #0
|
|
bne _02024958
|
|
mov r0, r4
|
|
mov r1, #4
|
|
bl sub_03033238
|
|
_02024958:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02024964: .word 0x027F8E08
|
|
_02024968: .word 0x027F8E08
|
|
arm_func_end sub_020247C4
|
|
|
|
arm_func_start sub_0202496C
|
|
sub_0202496C: ; 0x0202496C
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
bl sub_0302D4F0
|
|
mov r5, r0
|
|
mov r0, #1
|
|
bl sub_030332FC
|
|
cmp r0, #0
|
|
bne _020249AC
|
|
mov r0, r5
|
|
bl sub_0302D504
|
|
ldr r0, [r4, #4]
|
|
mov r1, #4
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03033238
|
|
b _02024C38
|
|
_020249AC:
|
|
mov r0, #1
|
|
bl sub_03033318
|
|
mov r0, r5
|
|
bl sub_0302D504
|
|
ldr r0, [r4, #4]
|
|
sub r0, r0, #0x20
|
|
cmp r0, #0xd
|
|
addls pc, pc, r0, lsl #2
|
|
b _02024BFC
|
|
_020249D0: ; jump table
|
|
b _02024A08 ; case 0
|
|
b _02024A10 ; case 1
|
|
b _02024A18 ; case 2
|
|
b _02024A24 ; case 3
|
|
b _02024A64 ; case 4
|
|
b _02024AA4 ; case 5
|
|
b _02024AEC ; case 6
|
|
b _02024B34 ; case 7
|
|
b _02024B6C ; case 8
|
|
b _02024BA4 ; case 9
|
|
b _02024BAC ; case 10
|
|
b _02024BB4 ; case 11
|
|
b _02024BE8 ; case 12
|
|
b _02024BF4 ; case 13
|
|
_02024A08:
|
|
bl sub_02024C94
|
|
b _02024C1C
|
|
_02024A10:
|
|
bl sub_02024CF8
|
|
b _02024C1C
|
|
_02024A18:
|
|
ldr r0, [r4, #0x10]
|
|
bl sub_02024D38
|
|
b _02024C1C
|
|
_02024A24:
|
|
bl sub_02024C40
|
|
cmp r0, #0
|
|
bne _02024A50
|
|
ldr r0, [r4, #4]
|
|
mov r1, #3
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03033238
|
|
mov r0, #1
|
|
bl sub_03033330
|
|
b _02024C38
|
|
_02024A50:
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0xc]
|
|
ldr r2, [r4, #0x10]
|
|
bl sub_02024DA8
|
|
b _02024C1C
|
|
_02024A64:
|
|
bl sub_02024C40
|
|
cmp r0, #0
|
|
bne _02024A90
|
|
ldr r0, [r4, #4]
|
|
mov r1, #3
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03033238
|
|
mov r0, #1
|
|
bl sub_03033330
|
|
b _02024C38
|
|
_02024A90:
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #0xc]
|
|
ldr r2, [r4, #0x10]
|
|
bl sub_02024ED0
|
|
b _02024C1C
|
|
_02024AA4:
|
|
bl sub_02024C64
|
|
cmp r0, #0
|
|
bne _02024AD0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #3
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03033238
|
|
mov r0, #1
|
|
bl sub_03033330
|
|
b _02024C38
|
|
_02024AD0:
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4, #8]
|
|
mov r1, r1, lsl #0x10
|
|
ldr r2, [r4, #0x10]
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_02024FF0
|
|
b _02024C1C
|
|
_02024AEC:
|
|
bl sub_02024C64
|
|
cmp r0, #0
|
|
bne _02024B18
|
|
ldr r0, [r4, #4]
|
|
mov r1, #3
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03033238
|
|
mov r0, #1
|
|
bl sub_03033330
|
|
b _02024C38
|
|
_02024B18:
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4, #8]
|
|
mov r1, r1, lsl #0x10
|
|
ldr r2, [r4, #0x10]
|
|
mov r1, r1, lsr #0x10
|
|
bl sub_020250FC
|
|
b _02024C1C
|
|
_02024B34:
|
|
bl sub_02024C64
|
|
cmp r0, #0
|
|
bne _02024B60
|
|
ldr r0, [r4, #4]
|
|
mov r1, #3
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03033238
|
|
mov r0, #1
|
|
bl sub_03033330
|
|
b _02024C38
|
|
_02024B60:
|
|
ldr r0, [r4, #8]
|
|
bl sub_02025208
|
|
b _02024C1C
|
|
_02024B6C:
|
|
bl sub_02024C64
|
|
cmp r0, #0
|
|
bne _02024B98
|
|
ldr r0, [r4, #4]
|
|
mov r1, #3
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03033238
|
|
mov r0, #1
|
|
bl sub_03033330
|
|
b _02024C38
|
|
_02024B98:
|
|
ldr r0, [r4, #8]
|
|
bl sub_02025290
|
|
b _02024C1C
|
|
_02024BA4:
|
|
bl sub_02025318
|
|
b _02024C1C
|
|
_02024BAC:
|
|
bl sub_02025358
|
|
b _02024C1C
|
|
_02024BB4:
|
|
bl sub_02024C64
|
|
cmp r0, #0
|
|
bne _02024BE0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #3
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03033238
|
|
mov r0, #1
|
|
bl sub_03033330
|
|
b _02024C38
|
|
_02024BE0:
|
|
bl sub_02025398
|
|
b _02024C1C
|
|
_02024BE8:
|
|
ldr r0, [r4, #0x10]
|
|
bl sub_020253D8
|
|
b _02024C1C
|
|
_02024BF4:
|
|
bl sub_02025474
|
|
b _02024C1C
|
|
_02024BFC:
|
|
mov r0, #1
|
|
bl sub_03033330
|
|
ldr r0, [r4, #4]
|
|
mov r1, #1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03033238
|
|
b _02024C38
|
|
_02024C1C:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
bl sub_03033238
|
|
mov r0, #1
|
|
bl sub_03033330
|
|
_02024C38:
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
arm_func_end sub_0202496C
|
|
|
|
arm_func_start sub_02024C40
|
|
sub_02024C40: ; 0x02024C40
|
|
stmdb sp!, {r3, lr}
|
|
add r0, sp, #0
|
|
bl sub_02024D38
|
|
ldrh r0, [sp]
|
|
tst r0, #1
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_02024C40
|
|
|
|
arm_func_start sub_02024C64
|
|
sub_02024C64: ; 0x02024C64
|
|
stmdb sp!, {r3, lr}
|
|
add r0, sp, #0
|
|
bl sub_02024D38
|
|
ldrh r0, [sp]
|
|
tst r0, #1
|
|
movne r0, #0
|
|
bne _02024C8C
|
|
tst r0, #2
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
_02024C8C:
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_02024C64
|
|
|
|
arm_func_start sub_02024C94
|
|
sub_02024C94: ; 0x02024C94
|
|
ldr r2, _02024CCC ; =0x040001C0
|
|
_02024C98:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _02024C98
|
|
ldr r0, _02024CD0 ; =0x040001C2
|
|
mov r1, #0x8100
|
|
strh r1, [r2]
|
|
mov r1, #6
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_02024CBC:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _02024CBC
|
|
bx lr
|
|
.align 2, 0
|
|
_02024CCC: .word 0x040001C0
|
|
_02024CD0: .word 0x040001C2
|
|
arm_func_end sub_02024C94
|
|
|
|
arm_func_start sub_02024CD4
|
|
sub_02024CD4: ; 0x02024CD4
|
|
ldr r1, _02024CF4 ; =0x040001C2
|
|
and r0, r0, #0xff
|
|
strh r0, [r1]
|
|
sub r1, r1, #2
|
|
_02024CE4:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _02024CE4
|
|
bx lr
|
|
.align 2, 0
|
|
_02024CF4: .word 0x040001C2
|
|
arm_func_end sub_02024CD4
|
|
|
|
arm_func_start sub_02024CF8
|
|
sub_02024CF8: ; 0x02024CF8
|
|
ldr r2, _02024D30 ; =0x040001C0
|
|
_02024CFC:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _02024CFC
|
|
ldr r0, _02024D34 ; =0x040001C2
|
|
mov r1, #0x8100
|
|
strh r1, [r2]
|
|
mov r1, #4
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_02024D20:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _02024D20
|
|
bx lr
|
|
.align 2, 0
|
|
_02024D30: .word 0x040001C0
|
|
_02024D34: .word 0x040001C2
|
|
arm_func_end sub_02024CF8
|
|
|
|
arm_func_start sub_02024D38
|
|
sub_02024D38: ; 0x02024D38
|
|
ldr r3, _02024DA0 ; =0x040001C0
|
|
_02024D3C:
|
|
ldrh r1, [r3]
|
|
tst r1, #0x80
|
|
bne _02024D3C
|
|
ldr r1, _02024DA4 ; =0x040001C2
|
|
mov r2, #0x8900
|
|
strh r2, [r3]
|
|
mov r2, #5
|
|
strh r2, [r1]
|
|
sub r3, r1, #2
|
|
_02024D60:
|
|
ldrh r1, [r3]
|
|
tst r1, #0x80
|
|
bne _02024D60
|
|
ldr r1, _02024DA4 ; =0x040001C2
|
|
mov r2, #0x8100
|
|
strh r2, [r3]
|
|
mov r2, #0
|
|
strh r2, [r1]
|
|
sub r2, r1, #2
|
|
_02024D84:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _02024D84
|
|
ldr r1, _02024DA4 ; =0x040001C2
|
|
ldrh r1, [r1]
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_02024DA0: .word 0x040001C0
|
|
_02024DA4: .word 0x040001C2
|
|
arm_func_end sub_02024D38
|
|
|
|
arm_func_start sub_02024DA8
|
|
sub_02024DA8: ; 0x02024DA8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #8
|
|
mov r5, r2
|
|
cmp r1, #1
|
|
blo _02024E98
|
|
and r2, r0, #0xff00
|
|
mov r2, r2, lsr #8
|
|
and r3, r0, #0xff0000
|
|
strh r2, [sp, #2]
|
|
mov r3, r3, lsr #0x10
|
|
and r0, r0, #0xff
|
|
ldr r2, _02024EA4 ; =0x040001C0
|
|
strh r3, [sp]
|
|
strh r0, [sp, #4]
|
|
_02024DE0:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _02024DE0
|
|
ldr r4, _02024EA8 ; =0x040001C2
|
|
mov r0, #0x8900
|
|
strh r0, [r2]
|
|
mov r0, #3
|
|
strh r0, [r4]
|
|
mov ip, #0
|
|
add r2, sp, #0
|
|
sub r3, r4, #2
|
|
_02024E0C:
|
|
ldrh r0, [r3]
|
|
tst r0, #0x80
|
|
bne _02024E0C
|
|
mov r0, ip, lsl #1
|
|
ldrh r0, [r2, r0]
|
|
add ip, ip, #1
|
|
and r0, r0, #0xff
|
|
strh r0, [r4]
|
|
cmp ip, #3
|
|
blt _02024E0C
|
|
ldr r2, _02024EA4 ; =0x040001C0
|
|
_02024E38:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _02024E38
|
|
mov r4, #0
|
|
ldr r2, _02024EA4 ; =0x040001C0
|
|
sub r0, r1, #1
|
|
mov r3, r4
|
|
b _02024E74
|
|
_02024E58:
|
|
strh r3, [r2, #2]
|
|
_02024E5C:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _02024E5C
|
|
ldrh r1, [r2, #2]
|
|
strb r1, [r5, r4]
|
|
add r4, r4, #1
|
|
_02024E74:
|
|
cmp r4, r0
|
|
blo _02024E58
|
|
ldr r0, _02024EA4 ; =0x040001C0
|
|
mov r1, #0x8100
|
|
strh r1, [r0]
|
|
bl sub_02024EAC
|
|
ldr r0, _02024EA8 ; =0x040001C2
|
|
ldrh r0, [r0]
|
|
strb r0, [r5, r4]
|
|
_02024E98:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02024EA4: .word 0x040001C0
|
|
_02024EA8: .word 0x040001C2
|
|
arm_func_end sub_02024DA8
|
|
|
|
arm_func_start sub_02024EAC
|
|
sub_02024EAC: ; 0x02024EAC
|
|
ldr r0, _02024ECC ; =0x040001C2
|
|
mov r1, #0
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_02024EBC:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _02024EBC
|
|
bx lr
|
|
.align 2, 0
|
|
_02024ECC: .word 0x040001C2
|
|
arm_func_end sub_02024EAC
|
|
|
|
arm_func_start sub_02024ED0
|
|
sub_02024ED0: ; 0x02024ED0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #8
|
|
mov r5, r2
|
|
cmp r1, #1
|
|
blo _02024FDC
|
|
and r2, r0, #0xff00
|
|
mov r2, r2, lsr #8
|
|
and r3, r0, #0xff0000
|
|
strh r2, [sp, #2]
|
|
mov r3, r3, lsr #0x10
|
|
and r0, r0, #0xff
|
|
ldr r2, _02024FE8 ; =0x040001C0
|
|
strh r3, [sp]
|
|
strh r0, [sp, #4]
|
|
_02024F08:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _02024F08
|
|
ldr r4, _02024FEC ; =0x040001C2
|
|
mov r0, #0x8900
|
|
strh r0, [r2]
|
|
mov r0, #0xb
|
|
strh r0, [r4]
|
|
mov ip, #0
|
|
add r2, sp, #0
|
|
sub r3, r4, #2
|
|
_02024F34:
|
|
ldrh r0, [r3]
|
|
tst r0, #0x80
|
|
bne _02024F34
|
|
mov r0, ip, lsl #1
|
|
ldrh r0, [r2, r0]
|
|
add ip, ip, #1
|
|
and r0, r0, #0xff
|
|
strh r0, [r4]
|
|
cmp ip, #3
|
|
blt _02024F34
|
|
ldr r2, _02024FE8 ; =0x040001C0
|
|
_02024F60:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _02024F60
|
|
ldr r0, _02024FEC ; =0x040001C2
|
|
mov r2, #0
|
|
strh r2, [r0]
|
|
sub r2, r0, #2
|
|
_02024F7C:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _02024F7C
|
|
mov r4, #0
|
|
ldr r2, _02024FE8 ; =0x040001C0
|
|
sub r0, r1, #1
|
|
mov r3, r4
|
|
b _02024FB8
|
|
_02024F9C:
|
|
strh r3, [r2, #2]
|
|
_02024FA0:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _02024FA0
|
|
ldrh r1, [r2, #2]
|
|
strb r1, [r5, r4]
|
|
add r4, r4, #1
|
|
_02024FB8:
|
|
cmp r4, r0
|
|
blo _02024F9C
|
|
ldr r0, _02024FE8 ; =0x040001C0
|
|
mov r1, #0x8100
|
|
strh r1, [r0]
|
|
bl sub_02024EAC
|
|
ldr r0, _02024FEC ; =0x040001C2
|
|
ldrh r0, [r0]
|
|
strb r0, [r5, r4]
|
|
_02024FDC:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02024FE8: .word 0x040001C0
|
|
_02024FEC: .word 0x040001C2
|
|
arm_func_end sub_02024ED0
|
|
|
|
arm_func_start sub_02024FF0
|
|
sub_02024FF0: ; 0x02024FF0
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
cmp r1, #1
|
|
blo _020250E8
|
|
add r3, r0, r1
|
|
sub r3, r3, #1
|
|
mov r3, r3, lsr #8
|
|
cmp r3, r0, lsr #8
|
|
and r3, r0, #0xff00
|
|
mov r3, r3, lsr #8
|
|
andhi r1, r0, #0xff
|
|
and ip, r0, #0xff0000
|
|
strh r3, [sp, #2]
|
|
rsbhi r1, r1, #0x100
|
|
mov ip, ip, lsr #0x10
|
|
and r0, r0, #0xff
|
|
movhi r1, r1, lsl #0x10
|
|
ldr r3, _020250F4 ; =0x040001C0
|
|
strh ip, [sp]
|
|
strh r0, [sp, #4]
|
|
movhi r1, r1, lsr #0x10
|
|
_02025044:
|
|
ldrh r0, [r3]
|
|
tst r0, #0x80
|
|
bne _02025044
|
|
ldr lr, _020250F8 ; =0x040001C2
|
|
mov r0, #0x8900
|
|
strh r0, [r3]
|
|
mov r0, #0xa
|
|
strh r0, [lr]
|
|
mov r4, #0
|
|
add r3, sp, #0
|
|
sub ip, lr, #2
|
|
_02025070:
|
|
ldrh r0, [ip]
|
|
tst r0, #0x80
|
|
bne _02025070
|
|
mov r0, r4, lsl #1
|
|
ldrh r0, [r3, r0]
|
|
add r4, r4, #1
|
|
and r0, r0, #0xff
|
|
strh r0, [lr]
|
|
cmp r4, #3
|
|
blt _02025070
|
|
sub r3, r1, #1
|
|
ldr r1, _020250F4 ; =0x040001C0
|
|
mov r4, #0
|
|
b _020250C0
|
|
_020250A8:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _020250A8
|
|
ldrb r0, [r2, r4]
|
|
add r4, r4, #1
|
|
strh r0, [r1, #2]
|
|
_020250C0:
|
|
cmp r4, r3
|
|
blt _020250A8
|
|
ldr r1, _020250F4 ; =0x040001C0
|
|
_020250CC:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _020250CC
|
|
mov r0, #0x8100
|
|
strh r0, [r1]
|
|
ldrb r0, [r2, r4]
|
|
bl sub_02024CD4
|
|
_020250E8:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020250F4: .word 0x040001C0
|
|
_020250F8: .word 0x040001C2
|
|
arm_func_end sub_02024FF0
|
|
|
|
arm_func_start sub_020250FC
|
|
sub_020250FC: ; 0x020250FC
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
cmp r1, #1
|
|
blo _020251F4
|
|
add r3, r0, r1
|
|
sub r3, r3, #1
|
|
mov r3, r3, lsr #8
|
|
cmp r3, r0, lsr #8
|
|
and r3, r0, #0xff00
|
|
mov r3, r3, lsr #8
|
|
andhi r1, r0, #0xff
|
|
and ip, r0, #0xff0000
|
|
strh r3, [sp, #2]
|
|
rsbhi r1, r1, #0x100
|
|
mov ip, ip, lsr #0x10
|
|
and r0, r0, #0xff
|
|
movhi r1, r1, lsl #0x10
|
|
ldr r3, _02025200 ; =0x040001C0
|
|
strh ip, [sp]
|
|
strh r0, [sp, #4]
|
|
movhi r1, r1, lsr #0x10
|
|
_02025150:
|
|
ldrh r0, [r3]
|
|
tst r0, #0x80
|
|
bne _02025150
|
|
ldr lr, _02025204 ; =0x040001C2
|
|
mov r0, #0x8900
|
|
strh r0, [r3]
|
|
mov r0, #2
|
|
strh r0, [lr]
|
|
mov r4, #0
|
|
add r3, sp, #0
|
|
sub ip, lr, #2
|
|
_0202517C:
|
|
ldrh r0, [ip]
|
|
tst r0, #0x80
|
|
bne _0202517C
|
|
mov r0, r4, lsl #1
|
|
ldrh r0, [r3, r0]
|
|
add r4, r4, #1
|
|
and r0, r0, #0xff
|
|
strh r0, [lr]
|
|
cmp r4, #3
|
|
blt _0202517C
|
|
sub r3, r1, #1
|
|
ldr r1, _02025200 ; =0x040001C0
|
|
mov r4, #0
|
|
b _020251CC
|
|
_020251B4:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _020251B4
|
|
ldrb r0, [r2, r4]
|
|
add r4, r4, #1
|
|
strh r0, [r1, #2]
|
|
_020251CC:
|
|
cmp r4, r3
|
|
blt _020251B4
|
|
ldr r1, _02025200 ; =0x040001C0
|
|
_020251D8:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _020251D8
|
|
mov r0, #0x8100
|
|
strh r0, [r1]
|
|
ldrb r0, [r2, r4]
|
|
bl sub_02024CD4
|
|
_020251F4:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02025200: .word 0x040001C0
|
|
_02025204: .word 0x040001C2
|
|
arm_func_end sub_020250FC
|
|
|
|
arm_func_start sub_02025208
|
|
sub_02025208: ; 0x02025208
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
and r1, r0, #0xff0000
|
|
mov r1, r1, lsr #0x10
|
|
and r2, r0, #0xff00
|
|
mov r2, r2, lsl #8
|
|
ldr r3, _02025288 ; =0x040001C0
|
|
mov r1, r1, lsl #0x10
|
|
and r5, r0, #0xff
|
|
mov r0, r1, lsr #0x10
|
|
mov r4, r2, lsr #0x10
|
|
_02025230:
|
|
ldrh r1, [r3]
|
|
tst r1, #0x80
|
|
bne _02025230
|
|
ldr r1, _0202528C ; =0x040001C2
|
|
mov r2, #0x8900
|
|
strh r2, [r3]
|
|
mov r2, #0xdb
|
|
strh r2, [r1]
|
|
sub r2, r1, #2
|
|
_02025254:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _02025254
|
|
bl sub_02024CD4
|
|
mov r0, r4
|
|
bl sub_02024CD4
|
|
ldr r1, _02025288 ; =0x040001C0
|
|
mov r2, #0x8100
|
|
mov r0, r5
|
|
strh r2, [r1]
|
|
bl sub_02024CD4
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02025288: .word 0x040001C0
|
|
_0202528C: .word 0x040001C2
|
|
arm_func_end sub_02025208
|
|
|
|
arm_func_start sub_02025290
|
|
sub_02025290: ; 0x02025290
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
and r1, r0, #0xff0000
|
|
mov r1, r1, lsr #0x10
|
|
and r2, r0, #0xff00
|
|
mov r2, r2, lsl #8
|
|
ldr r3, _02025310 ; =0x040001C0
|
|
mov r1, r1, lsl #0x10
|
|
and r5, r0, #0xff
|
|
mov r0, r1, lsr #0x10
|
|
mov r4, r2, lsr #0x10
|
|
_020252B8:
|
|
ldrh r1, [r3]
|
|
tst r1, #0x80
|
|
bne _020252B8
|
|
ldr r1, _02025314 ; =0x040001C2
|
|
mov r2, #0x8900
|
|
strh r2, [r3]
|
|
mov r2, #0xd8
|
|
strh r2, [r1]
|
|
sub r2, r1, #2
|
|
_020252DC:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _020252DC
|
|
bl sub_02024CD4
|
|
mov r0, r4
|
|
bl sub_02024CD4
|
|
ldr r1, _02025310 ; =0x040001C0
|
|
mov r2, #0x8100
|
|
mov r0, r5
|
|
strh r2, [r1]
|
|
bl sub_02024CD4
|
|
ldmia sp!, {r3, r4, r5, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_02025310: .word 0x040001C0
|
|
_02025314: .word 0x040001C2
|
|
arm_func_end sub_02025290
|
|
|
|
arm_func_start sub_02025318
|
|
sub_02025318: ; 0x02025318
|
|
ldr r2, _02025350 ; =0x040001C0
|
|
_0202531C:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _0202531C
|
|
ldr r0, _02025354 ; =0x040001C2
|
|
mov r1, #0x8100
|
|
strh r1, [r2]
|
|
mov r1, #0xb9
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_02025340:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _02025340
|
|
bx lr
|
|
.align 2, 0
|
|
_02025350: .word 0x040001C0
|
|
_02025354: .word 0x040001C2
|
|
arm_func_end sub_02025318
|
|
|
|
arm_func_start sub_02025358
|
|
sub_02025358: ; 0x02025358
|
|
ldr r2, _02025390 ; =0x040001C0
|
|
_0202535C:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _0202535C
|
|
ldr r0, _02025394 ; =0x040001C2
|
|
mov r1, #0x8100
|
|
strh r1, [r2]
|
|
mov r1, #0xab
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_02025380:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _02025380
|
|
bx lr
|
|
.align 2, 0
|
|
_02025390: .word 0x040001C0
|
|
_02025394: .word 0x040001C2
|
|
arm_func_end sub_02025358
|
|
|
|
arm_func_start sub_02025398
|
|
sub_02025398: ; 0x02025398
|
|
ldr r2, _020253D0 ; =0x040001C0
|
|
_0202539C:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _0202539C
|
|
ldr r0, _020253D4 ; =0x040001C2
|
|
mov r1, #0x8100
|
|
strh r1, [r2]
|
|
mov r1, #0xc7
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_020253C0:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _020253C0
|
|
bx lr
|
|
.align 2, 0
|
|
_020253D0: .word 0x040001C0
|
|
_020253D4: .word 0x040001C2
|
|
arm_func_end sub_02025398
|
|
|
|
arm_func_start sub_020253D8
|
|
sub_020253D8: ; 0x020253D8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, _0202546C ; =0x040001C0
|
|
_020253E0:
|
|
ldrh r1, [r3]
|
|
tst r1, #0x80
|
|
bne _020253E0
|
|
ldr r1, _02025470 ; =0x040001C2
|
|
mov r2, #0x8900
|
|
strh r2, [r3]
|
|
mov r2, #0x9f
|
|
strh r2, [r1]
|
|
sub r2, r1, #2
|
|
_02025404:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _02025404
|
|
ldr r1, _02025470 ; =0x040001C2
|
|
mov r2, #0
|
|
strh r2, [r1]
|
|
sub lr, r1, #2
|
|
_02025420:
|
|
ldrh r1, [lr]
|
|
tst r1, #0x80
|
|
bne _02025420
|
|
ldr ip, _02025470 ; =0x040001C2
|
|
mov r2, #0x8100
|
|
ldrh r3, [ip]
|
|
mov r1, #0
|
|
strb r3, [r0]
|
|
strh r2, [lr]
|
|
strh r1, [ip]
|
|
sub r2, ip, #2
|
|
_0202544C:
|
|
ldrh r1, [r2]
|
|
tst r1, #0x80
|
|
bne _0202544C
|
|
ldr r1, _02025470 ; =0x040001C2
|
|
ldrh r1, [r1]
|
|
strb r1, [r0, #1]
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0202546C: .word 0x040001C0
|
|
_02025470: .word 0x040001C2
|
|
arm_func_end sub_020253D8
|
|
|
|
arm_func_start sub_02025474
|
|
sub_02025474: ; 0x02025474
|
|
ldr r2, _020254AC ; =0x040001C0
|
|
_02025478:
|
|
ldrh r0, [r2]
|
|
tst r0, #0x80
|
|
bne _02025478
|
|
ldr r0, _020254B0 ; =0x040001C2
|
|
mov r1, #0x8100
|
|
strh r1, [r2]
|
|
mov r1, #0xff
|
|
strh r1, [r0]
|
|
sub r1, r0, #2
|
|
_0202549C:
|
|
ldrh r0, [r1]
|
|
tst r0, #0x80
|
|
bne _0202549C
|
|
bx lr
|
|
.align 2, 0
|
|
_020254AC: .word 0x040001C0
|
|
_020254B0: .word 0x040001C2
|
|
arm_func_end sub_02025474
|
|
|
|
arm_func_start sub_020254B4
|
|
sub_020254B4: ; 0x020254B4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
sub sp, sp, #0xc
|
|
ldr r1, _020256F0 ; =0x027F8E28
|
|
mov r8, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _020256E4
|
|
mov r2, #1
|
|
strh r2, [r1]
|
|
add r0, sp, #8
|
|
str r2, [r1, #0x1d8]
|
|
bl sub_020262F4
|
|
add r0, sp, #0xa
|
|
bl sub_02026358
|
|
ldrh r0, [sp, #8]
|
|
mov r1, r0, lsl #0x18
|
|
movs r1, r1, lsr #0x1f
|
|
bne _02025518
|
|
mov r0, r0, lsl #0x19
|
|
movs r0, r0, lsr #0x1f
|
|
bne _02025518
|
|
ldrh r0, [sp, #0xa]
|
|
mov r0, r0, lsl #0x18
|
|
movs r0, r0, lsr #0x1f
|
|
beq _02025530
|
|
_02025518:
|
|
ldrh r1, [sp, #8]
|
|
add r0, sp, #8
|
|
bic r1, r1, #1
|
|
orr r1, r1, #1
|
|
strh r1, [sp, #8]
|
|
bl sub_02026320
|
|
_02025530:
|
|
ldrh r0, [sp, #8]
|
|
mov r1, r0, lsl #0x1b
|
|
movs r1, r1, lsr #0x1f
|
|
bne _0202554C
|
|
mov r0, r0, lsl #0x1a
|
|
movs r0, r0, lsr #0x1f
|
|
beq _0202556C
|
|
_0202554C:
|
|
ldrh r1, [sp, #0xa]
|
|
add r0, sp, #0xa
|
|
bic r1, r1, #0xf
|
|
strh r1, [sp, #0xa]
|
|
ldrh r1, [sp, #0xa]
|
|
bic r1, r1, #0x40
|
|
strh r1, [sp, #0xa]
|
|
bl sub_02026384
|
|
_0202556C:
|
|
ldr r0, _020256F4 ; =0x027FFDE8
|
|
bl sub_02025F84
|
|
ldr r0, _020256F4 ; =0x027FFDE8
|
|
ldr r0, [r0]
|
|
mov r0, r0, lsl #0xa
|
|
mov r0, r0, lsr #0x1a
|
|
bl sub_02025DAC
|
|
ldr r1, _020256F4 ; =0x027FFDE8
|
|
mov r5, r0
|
|
ldr r0, [r1]
|
|
mov r0, r0, lsl #0x13
|
|
mov r0, r0, lsr #0x1b
|
|
bl sub_02025DAC
|
|
ldr r1, _020256F4 ; =0x027FFDE8
|
|
mov r6, r0
|
|
ldr r0, [r1]
|
|
mov r0, r0, lsl #0x18
|
|
mov r0, r0, lsr #0x18
|
|
bl sub_02025DAC
|
|
sub r1, r6, #1
|
|
cmp r1, #1
|
|
add r7, r0, #0x7d0
|
|
subls r7, r7, #1
|
|
mov r0, r7
|
|
mov r1, #0x190
|
|
addls r6, r6, #0xc
|
|
bl sub_030365C4
|
|
mov r4, r0
|
|
mov r0, r7
|
|
mov r1, #0x64
|
|
bl sub_030365C4
|
|
mov r1, #0xd
|
|
mul r1, r6, r1
|
|
mov r6, r0
|
|
add r0, r1, #8
|
|
mov r1, #5
|
|
bl sub_030365C4
|
|
add r1, r7, r7, lsr #2
|
|
sub r1, r1, r6
|
|
add r1, r4, r1
|
|
add r0, r1, r0
|
|
add r0, r5, r0
|
|
mov r1, #7
|
|
bl sub_030365C4
|
|
ldr r0, _020256F4 ; =0x027FFDE8
|
|
ldr r2, [r0]
|
|
mov r3, r2, lsl #5
|
|
mov r3, r3, lsr #0x1d
|
|
cmp r3, r1
|
|
beq _02025648
|
|
bic r2, r2, #0x7000000
|
|
mov r1, r1, lsl #0x1d
|
|
orr r1, r2, r1, lsr #5
|
|
str r1, [r0]
|
|
bl sub_02025FB0
|
|
_02025648:
|
|
mov r0, #1
|
|
bl sub_02025E60
|
|
ldr r0, _020256F0 ; =0x027F8E28
|
|
mov r1, #0
|
|
str r1, [r0, #0x1d8]
|
|
bl sub_0302DAA4
|
|
ldr r1, _020256F8 ; =0x027F5F24
|
|
mov r0, #5
|
|
bl sub_0302DB8C
|
|
ldr r0, _020256FC ; =0x027F8E2C
|
|
ldr r1, _02025700 ; =0x027F8E4C
|
|
mov r2, #4
|
|
bl sub_0302BE9C
|
|
mov r0, #0x100
|
|
stmia sp, {r0, r8}
|
|
ldr r0, _02025704 ; =0x027F8E5C
|
|
ldr r1, _02025708 ; =0x027F60A8
|
|
ldr r3, _0202570C ; =0x027F9000
|
|
mov r2, #0
|
|
bl sub_0302B844
|
|
ldr r0, _02025704 ; =0x027F8E5C
|
|
bl sub_0302BB5C
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
mov r0, #0x40
|
|
mov r1, #0
|
|
bl sub_0302DD78
|
|
mov r0, #0x100
|
|
mov r1, r0
|
|
bl sub_0302DD78
|
|
bl sub_0302D4F0
|
|
mov r4, r0
|
|
ldr r1, _02025710 ; =0x027F652C
|
|
mov r0, #0x80
|
|
bl sub_0302AFAC
|
|
mov r0, #0x80
|
|
bl sub_0302B0E0
|
|
mov r0, r4
|
|
bl sub_0302D504
|
|
_020256E4:
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_020256F0: .word 0x027F8E28
|
|
_020256F4: .word 0x027FFDE8
|
|
_020256F8: .word 0x027F5F24
|
|
_020256FC: .word 0x027F8E2C
|
|
_02025700: .word 0x027F8E4C
|
|
_02025704: .word 0x027F8E5C
|
|
_02025708: .word 0x027F60A8
|
|
_0202570C: .word 0x027F9000
|
|
_02025710: .word 0x027F652C
|
|
arm_func_end sub_020254B4
|
|
|
|
arm_func_start sub_02025714
|
|
sub_02025714: ; 0x02025714
|
|
stmdb sp!, {r4, lr}
|
|
cmp r2, #0
|
|
bne _02025844
|
|
and r0, r1, #0x7f00
|
|
mov r0, r0, lsl #8
|
|
mov r4, r0, lsr #0x10
|
|
cmp r4, #0x29
|
|
addls pc, pc, r4, lsl #2
|
|
b _02025838
|
|
_02025738: ; jump table
|
|
b _020257E0 ; case 0
|
|
b _020257E0 ; case 1
|
|
b _02025838 ; case 2
|
|
b _02025838 ; case 3
|
|
b _02025838 ; case 4
|
|
b _02025838 ; case 5
|
|
b _02025838 ; case 6
|
|
b _02025838 ; case 7
|
|
b _02025838 ; case 8
|
|
b _02025838 ; case 9
|
|
b _02025838 ; case 10
|
|
b _02025838 ; case 11
|
|
b _02025838 ; case 12
|
|
b _02025838 ; case 13
|
|
b _02025838 ; case 14
|
|
b _02025838 ; case 15
|
|
b _020257E0 ; case 16
|
|
b _020257E0 ; case 17
|
|
b _020257E0 ; case 18
|
|
b _020257E0 ; case 19
|
|
b _020257E0 ; case 20
|
|
b _020257E0 ; case 21
|
|
b _020257E0 ; case 22
|
|
b _020257E0 ; case 23
|
|
b _020257E0 ; case 24
|
|
b _020257E0 ; case 25
|
|
b _02025838 ; case 26
|
|
b _02025838 ; case 27
|
|
b _02025838 ; case 28
|
|
b _02025838 ; case 29
|
|
b _02025838 ; case 30
|
|
b _02025838 ; case 31
|
|
b _02025838 ; case 32
|
|
b _02025838 ; case 33
|
|
b _02025838 ; case 34
|
|
b _020257E0 ; case 35
|
|
b _020257E0 ; case 36
|
|
b _020257E0 ; case 37
|
|
b _020257E0 ; case 38
|
|
b _020257E0 ; case 39
|
|
b _020257E0 ; case 40
|
|
b _020257E0 ; case 41
|
|
_020257E0:
|
|
ldr r0, _0202584C ; =0x027F8E28
|
|
ldr r1, [r0, #0x1d8]
|
|
cmp r1, #0
|
|
beq _02025800
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_02025858
|
|
b _02025844
|
|
_02025800:
|
|
ldr r3, _02025850 ; =0x027F8F28
|
|
mov r1, #1
|
|
str r1, [r0, #0x1d8]
|
|
mov r1, #0
|
|
ldr r0, _02025854 ; =0x027F8E2C
|
|
mov r2, r1
|
|
strh r4, [r3, #0xdc]
|
|
bl sub_0302BEC4
|
|
cmp r0, #0
|
|
bne _02025844
|
|
mov r0, r4
|
|
mov r1, #4
|
|
bl sub_02025858
|
|
b _02025844
|
|
_02025838:
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_02025858
|
|
_02025844:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
.align 2, 0
|
|
_0202584C: .word 0x027F8E28
|
|
_02025850: .word 0x027F8F28
|
|
_02025854: .word 0x027F8E2C
|
|
arm_func_end sub_02025714
|
|
|
|
arm_func_start sub_02025858
|
|
sub_02025858: ; 0x02025858
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r0, r0, lsl #8
|
|
and r0, r0, #0x7f00
|
|
orr r2, r0, #0x8000
|
|
and r0, r1, #0xff
|
|
orr r6, r2, r0
|
|
mov r5, #5
|
|
mov r4, #0
|
|
_02025878:
|
|
mov r0, r5
|
|
mov r1, r6
|
|
mov r2, r4
|
|
bl sub_0302DC00
|
|
cmp r0, #0
|
|
blt _02025878
|
|
ldmia sp!, {r4, r5, r6, lr}
|
|
bx lr
|
|
arm_func_end sub_02025858
|
|
|
|
arm_func_start sub_02025898
|
|
sub_02025898: ; 0x02025898
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
ldr sb, _02025D0C ; =0x027FFDE8
|
|
mov r8, #0
|
|
ldr r4, _02025D10 ; =0x027F8E28
|
|
mov r7, r8
|
|
mov r6, r8
|
|
mov r5, r8
|
|
mov sl, r8
|
|
mov fp, r8
|
|
_020258BC:
|
|
ldr r0, _02025D14 ; =0x027F8E2C
|
|
add r1, sp, #0
|
|
mov r2, #1
|
|
bl sub_0302BF50
|
|
ldr r0, _02025D18 ; =0x027F8F28
|
|
ldrh r0, [r0, #0xdc]
|
|
cmp r0, #0x29
|
|
addls pc, pc, r0, lsl #2
|
|
b _02025CF8
|
|
_020258E0: ; jump table
|
|
b _02025988 ; case 0
|
|
b _020259A0 ; case 1
|
|
b _02025CF8 ; case 2
|
|
b _02025CF8 ; case 3
|
|
b _02025CF8 ; case 4
|
|
b _02025CF8 ; case 5
|
|
b _02025CF8 ; case 6
|
|
b _02025CF8 ; case 7
|
|
b _02025CF8 ; case 8
|
|
b _02025CF8 ; case 9
|
|
b _02025CF8 ; case 10
|
|
b _02025CF8 ; case 11
|
|
b _02025CF8 ; case 12
|
|
b _02025CF8 ; case 13
|
|
b _02025CF8 ; case 14
|
|
b _02025CF8 ; case 15
|
|
b _020259C8 ; case 16
|
|
b _020259E8 ; case 17
|
|
b _02025A08 ; case 18
|
|
b _02025A28 ; case 19
|
|
b _02025A64 ; case 20
|
|
b _02025AA0 ; case 21
|
|
b _02025ADC ; case 22
|
|
b _02025AFC ; case 23
|
|
b _02025B1C ; case 24
|
|
b _02025B3C ; case 25
|
|
b _02025CF8 ; case 26
|
|
b _02025CF8 ; case 27
|
|
b _02025CF8 ; case 28
|
|
b _02025CF8 ; case 29
|
|
b _02025CF8 ; case 30
|
|
b _02025CF8 ; case 31
|
|
b _02025B5C ; case 32
|
|
b _02025B7C ; case 33
|
|
b _02025BA4 ; case 34
|
|
b _02025BC4 ; case 35
|
|
b _02025C00 ; case 36
|
|
b _02025C3C ; case 37
|
|
b _02025C78 ; case 38
|
|
b _02025C98 ; case 39
|
|
b _02025CB8 ; case 40
|
|
b _02025CD8 ; case 41
|
|
_02025988:
|
|
bl sub_02025E1C
|
|
mov r0, #0
|
|
mov r1, r0
|
|
str r0, [r4, #0x1d8]
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_020259A0:
|
|
ldrh r0, [sb]
|
|
mov r0, r0, lsl #0x1e
|
|
mov r0, r0, lsr #0x1f
|
|
bl sub_02025E60
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_020259C8:
|
|
mov r0, sb
|
|
bl sub_02025F84
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x10
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_020259E8:
|
|
mov r0, sb
|
|
bl sub_02025FE8
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x11
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025A08:
|
|
add r0, sb, #4
|
|
bl sub_02026014
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x12
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025A28:
|
|
add r0, sb, #4
|
|
bl sub_02026078
|
|
cmp r0, #0
|
|
bne _02025A4C
|
|
mov r0, #0x13
|
|
mov r1, #2
|
|
str r8, [r4, #0x1d8]
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025A4C:
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x13
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025A64:
|
|
add r0, sb, #4
|
|
bl sub_02026154
|
|
cmp r0, #0
|
|
bne _02025A88
|
|
mov r0, #0x14
|
|
mov r1, #2
|
|
str r7, [r4, #0x1d8]
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025A88:
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x14
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025AA0:
|
|
add r0, sb, #4
|
|
bl sub_02026228
|
|
cmp r0, #0
|
|
bne _02025AC4
|
|
mov r0, #0x15
|
|
mov r1, #2
|
|
str r6, [r4, #0x1d8]
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025AC4:
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x15
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025ADC:
|
|
mov r0, sb
|
|
bl sub_020262F4
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x16
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025AFC:
|
|
add r0, sb, #2
|
|
bl sub_02026358
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x17
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025B1C:
|
|
add r0, sb, #4
|
|
bl sub_020263BC
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x18
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025B3C:
|
|
add r0, sb, #4
|
|
bl sub_02026420
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x19
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025B5C:
|
|
mov r0, sb
|
|
bl sub_02025FB0
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x20
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025B7C:
|
|
add r0, sb, #4
|
|
bl sub_02026014
|
|
mov r0, sb
|
|
bl sub_02025FB0
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x21
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025BA4:
|
|
add r0, sb, #4
|
|
bl sub_02026040
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x22
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025BC4:
|
|
add r0, sb, #4
|
|
bl sub_020260E0
|
|
cmp r0, #0
|
|
bne _02025BE8
|
|
mov r0, #0x23
|
|
mov r1, #2
|
|
str r5, [r4, #0x1d8]
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025BE8:
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x23
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025C00:
|
|
add r0, sb, #4
|
|
bl sub_020261B8
|
|
cmp r0, #0
|
|
bne _02025C24
|
|
mov r0, #0x24
|
|
mov r1, #2
|
|
str sl, [r4, #0x1d8]
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025C24:
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x24
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025C3C:
|
|
add r0, sb, #4
|
|
bl sub_02026288
|
|
cmp r0, #0
|
|
bne _02025C60
|
|
mov r0, #0x25
|
|
mov r1, #2
|
|
str fp, [r4, #0x1d8]
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025C60:
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x25
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025C78:
|
|
mov r0, sb
|
|
bl sub_02026320
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x26
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025C98:
|
|
add r0, sb, #2
|
|
bl sub_02026384
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x27
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025CB8:
|
|
add r0, sb, #4
|
|
bl sub_020263E8
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x28
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025CD8:
|
|
add r0, sb, #4
|
|
bl sub_0202644C
|
|
mov r0, #0
|
|
str r0, [r4, #0x1d8]
|
|
mov r0, #0x29
|
|
mov r1, #0
|
|
bl sub_02025858
|
|
b _020258BC
|
|
_02025CF8:
|
|
mov r1, #0
|
|
str r1, [r4, #0x1d8]
|
|
mov r1, #1
|
|
bl sub_02025858
|
|
b _020258BC
|
|
.align 2, 0
|
|
_02025D0C: .word 0x027FFDE8
|
|
_02025D10: .word 0x027F8E28
|
|
_02025D14: .word 0x027F8E2C
|
|
_02025D18: .word 0x027F8F28
|
|
arm_func_end sub_02025898
|
|
|
|
arm_func_start sub_02025D1C
|
|
sub_02025D1C: ; 0x02025D1C
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
add r0, sp, #2
|
|
bl sub_020262F4
|
|
ldrh r0, [sp, #2]
|
|
mov r1, r0, lsl #0x1b
|
|
movs r1, r1, lsr #0x1f
|
|
bne _02025D48
|
|
mov r0, r0, lsl #0x1a
|
|
movs r0, r0, lsr #0x1f
|
|
beq _02025DA0
|
|
_02025D48:
|
|
add r0, sp, #0
|
|
bl sub_02026358
|
|
ldrh r0, [sp, #2]
|
|
mov r4, #0
|
|
mov r0, r0, lsl #0x1b
|
|
movs r0, r0, lsr #0x1f
|
|
ldrneh r0, [sp]
|
|
orrne r4, r4, #1
|
|
bicne r0, r0, #0xf
|
|
strneh r0, [sp]
|
|
ldrh r0, [sp, #2]
|
|
mov r0, r0, lsl #0x1a
|
|
movs r0, r0, lsr #0x1f
|
|
ldrneh r0, [sp]
|
|
orrne r4, r4, #2
|
|
bicne r0, r0, #0x40
|
|
strneh r0, [sp]
|
|
add r0, sp, #0
|
|
bl sub_02026384
|
|
mov r1, r4
|
|
mov r0, #0x30
|
|
bl sub_02025858
|
|
_02025DA0:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02025D1C
|
|
|
|
arm_func_start sub_02025DAC
|
|
sub_02025DAC: ; 0x02025DAC
|
|
stmdb sp!, {r4, lr}
|
|
mov ip, #0
|
|
mov r2, ip
|
|
b _02025DD8
|
|
_02025DBC:
|
|
mov r1, r2, lsl #2
|
|
mov r1, r0, lsr r1
|
|
and r1, r1, #0xf
|
|
cmp r1, #0xa
|
|
movhs r0, #0
|
|
bhs _02025E14
|
|
add r2, r2, #1
|
|
_02025DD8:
|
|
cmp r2, #8
|
|
blt _02025DBC
|
|
mov r4, #0
|
|
mov lr, #1
|
|
mov r2, #0xa
|
|
_02025DEC:
|
|
mov r1, r4, lsl #2
|
|
mov r1, r0, lsr r1
|
|
and r3, r1, #0xf
|
|
mul r1, lr, r2
|
|
mla ip, lr, r3, ip
|
|
add r4, r4, #1
|
|
mov lr, r1
|
|
cmp r4, #8
|
|
blt _02025DEC
|
|
mov r0, ip
|
|
_02025E14:
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02025DAC
|
|
|
|
arm_func_start sub_02025E1C
|
|
sub_02025E1C: ; 0x02025E1C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
ldrh r0, [sp]
|
|
bic r0, r0, #1
|
|
orr r0, r0, #1
|
|
strh r0, [sp]
|
|
bl sub_02026700
|
|
mov r0, #6
|
|
mov r1, #0
|
|
bl sub_02026774
|
|
add r0, sp, #0
|
|
mov r1, #1
|
|
bl sub_020267F4
|
|
bl sub_02026740
|
|
ldmia sp!, {r3, lr}
|
|
bx lr
|
|
arm_func_end sub_02025E1C
|
|
|
|
arm_func_start sub_02025E60
|
|
sub_02025E60: ; 0x02025E60
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #8
|
|
mov r4, r0
|
|
and r4, r4, #1
|
|
cmp r4, #1
|
|
bne _02025F78
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
add r2, sp, #0
|
|
mov r0, #0x86
|
|
mov r1, #0
|
|
mov r3, #1
|
|
bl sub_020266A4
|
|
ldrh r0, [sp]
|
|
mov r1, r0, lsl #0x1e
|
|
mov r1, r1, lsr #0x1f
|
|
cmp r1, r4
|
|
beq _02025F78
|
|
bic r1, r0, #2
|
|
mov r0, r4, lsl #0x1f
|
|
orr r1, r1, r0, lsr #30
|
|
mov r0, #0x8000
|
|
strh r1, [sp]
|
|
bl sub_0302DD98
|
|
bl sub_02026700
|
|
mov r0, #6
|
|
mov r1, #0
|
|
bl sub_02026774
|
|
add r0, sp, #0
|
|
mov r1, #1
|
|
bl sub_020267F4
|
|
bl sub_02026740
|
|
mov r0, #0x86
|
|
mov r1, #0x10
|
|
add r2, sp, #4
|
|
mov r3, #3
|
|
bl sub_020266A4
|
|
cmp r4, #0
|
|
add r0, sp, #4
|
|
bne _02025F08
|
|
bl sub_02026484
|
|
b _02025F0C
|
|
_02025F08:
|
|
bl sub_02026594
|
|
_02025F0C:
|
|
bl sub_02026700
|
|
mov r0, #6
|
|
mov r1, #0x10
|
|
bl sub_02026774
|
|
add r0, sp, #4
|
|
mov r1, #3
|
|
bl sub_020267F4
|
|
bl sub_02026740
|
|
mov r0, #0x86
|
|
mov r1, #0x50
|
|
add r2, sp, #4
|
|
mov r3, #3
|
|
bl sub_020266A4
|
|
cmp r4, #0
|
|
add r0, sp, #4
|
|
bne _02025F54
|
|
bl sub_02026484
|
|
b _02025F58
|
|
_02025F54:
|
|
bl sub_02026594
|
|
_02025F58:
|
|
bl sub_02026700
|
|
mov r0, #6
|
|
mov r1, #0x50
|
|
bl sub_02026774
|
|
add r0, sp, #4
|
|
mov r1, #3
|
|
bl sub_020267F4
|
|
bl sub_02026740
|
|
_02025F78:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02025E60
|
|
|
|
arm_func_start sub_02025F84
|
|
sub_02025F84: ; 0x02025F84
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x20
|
|
mov r3, #7
|
|
bl sub_020266A4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02025F84
|
|
|
|
arm_func_start sub_02025FB0
|
|
sub_02025FB0: ; 0x02025FB0
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
bl sub_02026700
|
|
mov r0, #6
|
|
mov r1, #0x20
|
|
bl sub_02026774
|
|
mov r0, r4
|
|
mov r1, #7
|
|
bl sub_020267F4
|
|
bl sub_02026740
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02025FB0
|
|
|
|
arm_func_start sub_02025FE8
|
|
sub_02025FE8: ; 0x02025FE8
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x20
|
|
mov r3, #4
|
|
bl sub_020266A4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02025FE8
|
|
|
|
arm_func_start sub_02026014
|
|
sub_02026014: ; 0x02026014
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x60
|
|
mov r3, #3
|
|
bl sub_020266A4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02026014
|
|
|
|
arm_func_start sub_02026040
|
|
sub_02026040: ; 0x02026040
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
bl sub_02026700
|
|
mov r0, #6
|
|
mov r1, #0x60
|
|
bl sub_02026774
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_020267F4
|
|
bl sub_02026740
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02026040
|
|
|
|
arm_func_start sub_02026078
|
|
sub_02026078: ; 0x02026078
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
add r2, sp, #0
|
|
mov r0, #0x86
|
|
mov r1, #0x40
|
|
mov r3, #1
|
|
bl sub_020266A4
|
|
ldrh r0, [sp]
|
|
mov r0, r0, lsl #0x1c
|
|
mov r0, r0, lsr #0x1c
|
|
and r0, r0, #0xb
|
|
cmp r0, #1
|
|
movne r0, #0
|
|
bne _020260D4
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x10
|
|
mov r3, #1
|
|
bl sub_020266A4
|
|
mov r0, #1
|
|
_020260D4:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02026078
|
|
|
|
arm_func_start sub_020260E0
|
|
sub_020260E0: ; 0x020260E0
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
add r2, sp, #0
|
|
mov r0, #0x86
|
|
mov r1, #0x40
|
|
mov r3, #1
|
|
bl sub_020266A4
|
|
ldrh r0, [sp]
|
|
mov r0, r0, lsl #0x1c
|
|
mov r0, r0, lsr #0x1c
|
|
and r0, r0, #0xb
|
|
cmp r0, #1
|
|
movne r0, #0
|
|
bne _02026148
|
|
bl sub_02026700
|
|
mov r0, #6
|
|
mov r1, #0x10
|
|
bl sub_02026774
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_020267F4
|
|
bl sub_02026740
|
|
mov r0, #1
|
|
_02026148:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_020260E0
|
|
|
|
arm_func_start sub_02026154
|
|
sub_02026154: ; 0x02026154
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
add r2, sp, #0
|
|
mov r0, #0x86
|
|
mov r1, #0x40
|
|
mov r3, #1
|
|
bl sub_020266A4
|
|
ldrh r0, [sp]
|
|
mov r0, r0, lsl #0x1c
|
|
mov r0, r0, lsr #0x1c
|
|
cmp r0, #4
|
|
movne r0, #0
|
|
bne _020261AC
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x10
|
|
mov r3, #3
|
|
bl sub_020266A4
|
|
mov r0, #1
|
|
_020261AC:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02026154
|
|
|
|
arm_func_start sub_020261B8
|
|
sub_020261B8: ; 0x020261B8
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
add r2, sp, #0
|
|
mov r0, #0x86
|
|
mov r1, #0x40
|
|
mov r3, #1
|
|
bl sub_020266A4
|
|
ldrh r0, [sp]
|
|
mov r0, r0, lsl #0x1c
|
|
mov r0, r0, lsr #0x1c
|
|
cmp r0, #4
|
|
movne r0, #0
|
|
bne _0202621C
|
|
bl sub_02026700
|
|
mov r0, #6
|
|
mov r1, #0x10
|
|
bl sub_02026774
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_020267F4
|
|
bl sub_02026740
|
|
mov r0, #1
|
|
_0202621C:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_020261B8
|
|
|
|
arm_func_start sub_02026228
|
|
sub_02026228: ; 0x02026228
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
add r2, sp, #0
|
|
mov r0, #0x86
|
|
mov r1, #0x40
|
|
mov r3, #1
|
|
bl sub_020266A4
|
|
ldrh r0, [sp]
|
|
mov r0, r0, lsl #0x19
|
|
movs r0, r0, lsr #0x1f
|
|
moveq r0, #0
|
|
beq _0202627C
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x50
|
|
mov r3, #3
|
|
bl sub_020266A4
|
|
mov r0, #1
|
|
_0202627C:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02026228
|
|
|
|
arm_func_start sub_02026288
|
|
sub_02026288: ; 0x02026288
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #4
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
add r2, sp, #0
|
|
mov r0, #0x86
|
|
mov r1, #0x40
|
|
mov r3, #1
|
|
bl sub_020266A4
|
|
ldrh r0, [sp]
|
|
mov r0, r0, lsl #0x19
|
|
movs r0, r0, lsr #0x1f
|
|
moveq r0, #0
|
|
beq _020262E8
|
|
bl sub_02026700
|
|
mov r0, #6
|
|
mov r1, #0x50
|
|
bl sub_02026774
|
|
mov r0, r4
|
|
mov r1, #3
|
|
bl sub_020267F4
|
|
bl sub_02026740
|
|
mov r0, #1
|
|
_020262E8:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02026288
|
|
|
|
arm_func_start sub_020262F4
|
|
sub_020262F4: ; 0x020262F4
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0
|
|
mov r3, #1
|
|
bl sub_020266A4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_020262F4
|
|
|
|
arm_func_start sub_02026320
|
|
sub_02026320: ; 0x02026320
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
bl sub_02026700
|
|
mov r0, #6
|
|
mov r1, #0
|
|
bl sub_02026774
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_020267F4
|
|
bl sub_02026740
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02026320
|
|
|
|
arm_func_start sub_02026358
|
|
sub_02026358: ; 0x02026358
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x40
|
|
mov r3, #1
|
|
bl sub_020266A4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02026358
|
|
|
|
arm_func_start sub_02026384
|
|
sub_02026384: ; 0x02026384
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
bl sub_02026700
|
|
mov r0, #6
|
|
mov r1, #0x40
|
|
bl sub_02026774
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_020267F4
|
|
bl sub_02026740
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02026384
|
|
|
|
arm_func_start sub_020263BC
|
|
sub_020263BC: ; 0x020263BC
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x30
|
|
mov r3, #1
|
|
bl sub_020266A4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_020263BC
|
|
|
|
arm_func_start sub_020263E8
|
|
sub_020263E8: ; 0x020263E8
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
bl sub_02026700
|
|
mov r0, #6
|
|
mov r1, #0x30
|
|
bl sub_02026774
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_020267F4
|
|
bl sub_02026740
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_020263E8
|
|
|
|
arm_func_start sub_02026420
|
|
sub_02026420: ; 0x02026420
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
mov r2, r4
|
|
mov r0, #0x86
|
|
mov r1, #0x70
|
|
mov r3, #1
|
|
bl sub_020266A4
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_02026420
|
|
|
|
arm_func_start sub_0202644C
|
|
sub_0202644C: ; 0x0202644C
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
mov r0, #0x8000
|
|
bl sub_0302DD98
|
|
bl sub_02026700
|
|
mov r0, #6
|
|
mov r1, #0x70
|
|
bl sub_02026774
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl sub_020267F4
|
|
bl sub_02026740
|
|
ldmia sp!, {r4, lr}
|
|
bx lr
|
|
arm_func_end sub_0202644C
|
|
|
|
arm_func_start sub_02026484
|
|
sub_02026484: ; 0x02026484
|
|
ldr r1, [r0]
|
|
mov r2, r1, lsl #0x12
|
|
mov r2, r2, lsr #0x1a
|
|
cmp r2, #0x23
|
|
addls pc, pc, r2, lsl #2
|
|
b _02026580
|
|
_0202649C: ; jump table
|
|
b _0202652C ; case 0
|
|
b _0202652C ; case 1
|
|
b _0202652C ; case 2
|
|
b _0202652C ; case 3
|
|
b _0202652C ; case 4
|
|
b _0202652C ; case 5
|
|
b _0202652C ; case 6
|
|
b _0202652C ; case 7
|
|
b _0202652C ; case 8
|
|
b _0202652C ; case 9
|
|
b _02026580 ; case 10
|
|
b _02026580 ; case 11
|
|
b _02026580 ; case 12
|
|
b _02026580 ; case 13
|
|
b _02026580 ; case 14
|
|
b _02026580 ; case 15
|
|
b _0202652C ; case 16
|
|
b _0202652C ; case 17
|
|
b _02026538 ; case 18
|
|
b _02026538 ; case 19
|
|
b _02026538 ; case 20
|
|
b _02026538 ; case 21
|
|
b _02026538 ; case 22
|
|
b _02026538 ; case 23
|
|
b _02026538 ; case 24
|
|
b _02026538 ; case 25
|
|
b _02026580 ; case 26
|
|
b _02026580 ; case 27
|
|
b _02026580 ; case 28
|
|
b _02026580 ; case 29
|
|
b _02026580 ; case 30
|
|
b _02026580 ; case 31
|
|
b _0202655C ; case 32
|
|
b _0202655C ; case 33
|
|
b _02026538 ; case 34
|
|
b _02026538 ; case 35
|
|
_0202652C:
|
|
bic r1, r1, #0x4000
|
|
str r1, [r0]
|
|
bx lr
|
|
_02026538:
|
|
orr r2, r1, #0x4000
|
|
mov r1, r2, lsl #0x12
|
|
mov r1, r1, lsr #0x1a
|
|
sub r1, r1, #0x12
|
|
bic r2, r2, #0x3f00
|
|
mov r1, r1, lsl #0x1a
|
|
orr r1, r2, r1, lsr #18
|
|
str r1, [r0]
|
|
bx lr
|
|
_0202655C:
|
|
orr r2, r1, #0x4000
|
|
mov r1, r2, lsl #0x12
|
|
mov r1, r1, lsr #0x1a
|
|
sub r1, r1, #0x18
|
|
bic r2, r2, #0x3f00
|
|
mov r1, r1, lsl #0x1a
|
|
orr r1, r2, r1, lsr #18
|
|
str r1, [r0]
|
|
bx lr
|
|
_02026580:
|
|
ldr r1, [r0]
|
|
bic r1, r1, #0x4000
|
|
bic r1, r1, #0x3f00
|
|
str r1, [r0]
|
|
bx lr
|
|
arm_func_end sub_02026484
|
|
|
|
arm_func_start sub_02026594
|
|
sub_02026594: ; 0x02026594
|
|
ldr r2, [r0]
|
|
mov r1, r2, lsl #0x12
|
|
mov r3, r1, lsr #0x1a
|
|
cmp r3, #0x23
|
|
addls pc, pc, r3, lsl #2
|
|
b _02026690
|
|
_020265AC: ; jump table
|
|
b _0202663C ; case 0
|
|
b _0202663C ; case 1
|
|
b _0202663C ; case 2
|
|
b _0202663C ; case 3
|
|
b _0202663C ; case 4
|
|
b _0202663C ; case 5
|
|
b _0202663C ; case 6
|
|
b _0202663C ; case 7
|
|
b _02026660 ; case 8
|
|
b _02026660 ; case 9
|
|
b _02026690 ; case 10
|
|
b _02026690 ; case 11
|
|
b _02026690 ; case 12
|
|
b _02026690 ; case 13
|
|
b _02026690 ; case 14
|
|
b _02026690 ; case 15
|
|
b _0202663C ; case 16
|
|
b _0202663C ; case 17
|
|
b _02026684 ; case 18
|
|
b _02026684 ; case 19
|
|
b _02026684 ; case 20
|
|
b _02026684 ; case 21
|
|
b _02026684 ; case 22
|
|
b _02026684 ; case 23
|
|
b _02026684 ; case 24
|
|
b _02026684 ; case 25
|
|
b _02026690 ; case 26
|
|
b _02026690 ; case 27
|
|
b _02026690 ; case 28
|
|
b _02026690 ; case 29
|
|
b _02026690 ; case 30
|
|
b _02026690 ; case 31
|
|
b _02026684 ; case 32
|
|
b _02026684 ; case 33
|
|
b _02026684 ; case 34
|
|
b _02026684 ; case 35
|
|
_0202663C:
|
|
mov r1, r2, lsl #0x11
|
|
movs r1, r1, lsr #0x1f
|
|
bxeq lr
|
|
add r1, r3, #0x12
|
|
bic r2, r2, #0x3f00
|
|
mov r1, r1, lsl #0x1a
|
|
orr r1, r2, r1, lsr #18
|
|
str r1, [r0]
|
|
bx lr
|
|
_02026660:
|
|
mov r1, r2, lsl #0x11
|
|
movs r1, r1, lsr #0x1f
|
|
bxeq lr
|
|
add r1, r3, #0x18
|
|
bic r2, r2, #0x3f00
|
|
mov r1, r1, lsl #0x1a
|
|
orr r1, r2, r1, lsr #18
|
|
str r1, [r0]
|
|
bx lr
|
|
_02026684:
|
|
orr r1, r2, #0x4000
|
|
str r1, [r0]
|
|
bx lr
|
|
_02026690:
|
|
ldr r1, [r0]
|
|
bic r1, r1, #0x4000
|
|
bic r1, r1, #0x3f00
|
|
str r1, [r0]
|
|
bx lr
|
|
arm_func_end sub_02026594
|
|
|
|
arm_func_start sub_020266A4
|
|
sub_020266A4: ; 0x020266A4
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl sub_02026700
|
|
mov r0, r7
|
|
mov r1, r6
|
|
bl sub_02026774
|
|
cmp r7, #6
|
|
beq _020266E8
|
|
cmp r7, #0x86
|
|
bne _020266F4
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_020268AC
|
|
b _020266F4
|
|
_020266E8:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl sub_020267F4
|
|
_020266F4:
|
|
bl sub_02026740
|
|
ldmia sp!, {r3, r4, r5, r6, r7, lr}
|
|
bx lr
|
|
arm_func_end sub_020266A4
|
|
|
|
arm_func_start sub_02026700
|
|
sub_02026700: ; 0x02026700
|
|
mov ip, #0x4000000
|
|
add ip, ip, #0x138
|
|
ldrh r0, [ip]
|
|
bic r0, r0, #0x77
|
|
orr r0, r0, #0x72
|
|
strh r0, [ip]
|
|
mov r3, #2
|
|
_0202671C:
|
|
subs r3, r3, #1
|
|
bne _0202671C
|
|
bic r0, r0, #4
|
|
orr r0, r0, #4
|
|
strh r0, [ip]
|
|
mov r3, #2
|
|
_02026734:
|
|
subs r3, r3, #1
|
|
bne _02026734
|
|
bx lr
|
|
arm_func_end sub_02026700
|
|
|
|
arm_func_start sub_02026740
|
|
sub_02026740: ; 0x02026740
|
|
mov ip, #0x4000000
|
|
add ip, ip, #0x138
|
|
mov r3, #2
|
|
_0202674C:
|
|
subs r3, r3, #1
|
|
bne _0202674C
|
|
ldrh r0, [ip]
|
|
bic r0, r0, #4
|
|
orr r0, r0, #0
|
|
strh r0, [ip]
|
|
mov r3, #2
|
|
_02026768:
|
|
subs r3, r3, #1
|
|
bne _02026768
|
|
bx lr
|
|
arm_func_end sub_02026740
|
|
|
|
arm_func_start sub_02026774
|
|
sub_02026774: ; 0x02026774
|
|
mov ip, #0x4000000
|
|
add ip, ip, #0x138
|
|
orr r1, r0, r1
|
|
ldrh r0, [ip]
|
|
bic r0, r0, #0x77
|
|
orr r0, r0, #0x74
|
|
mov r2, #0
|
|
_02026790:
|
|
bic r0, r0, #3
|
|
orr r0, r0, #0
|
|
mov r3, #1
|
|
tst r3, r1, lsr r2
|
|
bne _020267A8
|
|
b _020267AC
|
|
_020267A8:
|
|
mov r3, #1
|
|
_020267AC:
|
|
beq _020267B4
|
|
b _020267B8
|
|
_020267B4:
|
|
mov r3, #0
|
|
_020267B8:
|
|
orr r0, r0, r3
|
|
strh r0, [ip]
|
|
mov r3, #9
|
|
_020267C4:
|
|
subs r3, r3, #1
|
|
bne _020267C4
|
|
bic r0, r0, #2
|
|
orr r0, r0, #2
|
|
strh r0, [ip]
|
|
mov r3, #9
|
|
_020267DC:
|
|
subs r3, r3, #1
|
|
bne _020267DC
|
|
add r2, r2, #1
|
|
cmp r2, #8
|
|
bne _02026790
|
|
bx lr
|
|
arm_func_end sub_02026774
|
|
|
|
arm_func_start sub_020267F4
|
|
sub_020267F4: ; 0x020267F4
|
|
mov ip, #0x4000000
|
|
add ip, ip, #0x138
|
|
_020267FC:
|
|
stmdb sp!, {r0, r1}
|
|
tst r0, #1
|
|
beq _0202680C
|
|
b _02026810
|
|
_0202680C:
|
|
ldrh r1, [r0]
|
|
_02026810:
|
|
bne _02026818
|
|
b _0202681C
|
|
_02026818:
|
|
ldrh r1, [r0, #-1]
|
|
_0202681C:
|
|
bne _02026824
|
|
b _02026828
|
|
_02026824:
|
|
mov r1, r1, lsr #8
|
|
_02026828:
|
|
ldrh r0, [ip]
|
|
bic r0, r0, #0x77
|
|
orr r0, r0, #0x74
|
|
mov r2, #0
|
|
_02026838:
|
|
bic r0, r0, #3
|
|
orr r0, r0, #0
|
|
mov r3, #1
|
|
tst r3, r1, lsr r2
|
|
bne _02026850
|
|
b _02026854
|
|
_02026850:
|
|
mov r3, #1
|
|
_02026854:
|
|
beq _0202685C
|
|
b _02026860
|
|
_0202685C:
|
|
mov r3, #0
|
|
_02026860:
|
|
orr r0, r0, r3
|
|
strh r0, [ip]
|
|
mov r3, #9
|
|
_0202686C:
|
|
subs r3, r3, #1
|
|
bne _0202686C
|
|
bic r0, r0, #2
|
|
orr r0, r0, #2
|
|
strh r0, [ip]
|
|
mov r3, #9
|
|
_02026884:
|
|
subs r3, r3, #1
|
|
bne _02026884
|
|
add r2, r2, #1
|
|
cmp r2, #8
|
|
bne _02026838
|
|
ldmia sp!, {r0, r1}
|
|
add r0, r0, #1
|
|
subs r1, r1, #1
|
|
bne _020267FC
|
|
bx lr
|
|
arm_func_end sub_020267F4
|
|
|
|
arm_func_start sub_020268AC
|
|
sub_020268AC: ; 0x020268AC
|
|
mov ip, #0x4000000
|
|
add ip, ip, #0x138
|
|
_020268B4:
|
|
stmdb sp!, {r0, r1}
|
|
ldrh r0, [ip]
|
|
bic r0, r0, #0x77
|
|
orr r0, r0, #0x64
|
|
mov r2, #0
|
|
mov r1, #0
|
|
_020268CC:
|
|
bic r0, r0, #3
|
|
orr r0, r0, #0
|
|
strh r0, [ip]
|
|
mov r3, #9
|
|
_020268DC:
|
|
subs r3, r3, #1
|
|
bne _020268DC
|
|
ldrh r0, [ip]
|
|
and r3, r0, #1
|
|
cmp r3, #1
|
|
beq _020268F8
|
|
b _020268FC
|
|
_020268F8:
|
|
mov r3, #0x80
|
|
_020268FC:
|
|
bne _02026904
|
|
b _02026908
|
|
_02026904:
|
|
mov r3, #0
|
|
_02026908:
|
|
orr r2, r3, r2, lsr #1
|
|
bic r0, r0, #2
|
|
orr r0, r0, #2
|
|
strh r0, [ip]
|
|
mov r3, #9
|
|
_0202691C:
|
|
subs r3, r3, #1
|
|
bne _0202691C
|
|
add r1, r1, #1
|
|
cmp r1, #8
|
|
bne _020268CC
|
|
ldmia sp!, {r0, r1}
|
|
tst r0, #1
|
|
beq _02026954
|
|
ldrh r3, [r0, #-1]
|
|
bic r3, r3, #0xff00
|
|
mov r2, r2, lsl #8
|
|
orr r3, r2, r3
|
|
strh r3, [r0, #-1]
|
|
b _02026964
|
|
_02026954:
|
|
ldrh r3, [r0]
|
|
bic r3, r3, #0xff
|
|
orr r3, r3, r2
|
|
strh r3, [r0]
|
|
_02026964:
|
|
add r0, r0, #1
|
|
subs r1, r1, #1
|
|
bne _020268B4
|
|
bx lr
|
|
arm_func_end sub_020268AC
|
|
; 0x02026974
|