mirror of
https://github.com/pret/pokeheartgold.git
synced 2024-11-24 21:59:54 +00:00
16129 lines
285 KiB
ArmAsm
16129 lines
285 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start ov45_02229EE0
|
|
ov45_02229EE0: ; 0x02229EE0
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _02229F68 ; =SDK_OVERLAY_OVY_42_ID
|
|
mov r1, #2
|
|
bl HandleLoadOverlay
|
|
bl LoadDwcOverlay
|
|
bl LoadOVY38
|
|
mov r0, #3
|
|
bl sub_02039FD8
|
|
mov r2, #5
|
|
mov r0, #3
|
|
mov r1, #0x6f
|
|
lsl r2, r2, #0xc
|
|
bl sub_0201A910
|
|
add r0, r4, #0
|
|
mov r1, #0x10
|
|
mov r2, #0x6f
|
|
bl sub_02007280
|
|
add r5, r0, #0
|
|
add r2, r5, #0
|
|
mov r1, #0x10
|
|
mov r0, #0
|
|
_02229F18:
|
|
strb r0, [r2]
|
|
add r2, r2, #1
|
|
sub r1, r1, #1
|
|
bne _02229F18
|
|
add r0, r4, #0
|
|
bl sub_020072A4
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #0x6f
|
|
str r0, [r5]
|
|
bl ov45_02229FF4
|
|
str r0, [r5, #4]
|
|
mov r0, #0x6f
|
|
str r0, [sp]
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r4, #4]
|
|
ldr r2, [r4]
|
|
ldr r3, [r5, #4]
|
|
bl ov45_0222CD1C
|
|
str r0, [r5, #8]
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl sub_0201A0FC
|
|
bl sub_0201A108
|
|
ldr r0, _02229F6C ; =ov45_02229FE0
|
|
add r1, r5, #0
|
|
mov r2, #0
|
|
bl sub_0200E374
|
|
str r0, [r5, #0xc]
|
|
ldr r0, [r5, #8]
|
|
bl ov45_0222CD84
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_02229F68: .word SDK_OVERLAY_OVY_42_ID
|
|
_02229F6C: .word ov45_02229FE0
|
|
thumb_func_end ov45_02229EE0
|
|
|
|
thumb_func_start ov45_02229F70
|
|
ov45_02229F70: ; 0x02229F70
|
|
push {r3, r4, r5, lr}
|
|
bl sub_02007290
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #8]
|
|
bl ov45_0222CD90
|
|
add r4, r0, #0
|
|
ldr r0, [r5, #4]
|
|
bl ov45_0222A15C
|
|
cmp r4, #1
|
|
bne _02229F8E
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_02229F8E:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02229F70
|
|
|
|
thumb_func_start ov45_02229F94
|
|
ov45_02229F94: ; 0x02229F94
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl sub_02007290
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0xc]
|
|
bl sub_0200E390
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl sub_0201A0FC
|
|
bl sub_0201A108
|
|
ldr r0, [r4, #8]
|
|
bl ov45_0222CD68
|
|
ldr r0, [r4, #4]
|
|
bl ov45_0222A0F0
|
|
add r0, r5, #0
|
|
bl sub_02007294
|
|
mov r0, #0x6f
|
|
bl sub_0201A9C4
|
|
ldr r0, _02229FDC ; =SDK_OVERLAY_OVY_42_ID
|
|
bl UnloadOverlayByID
|
|
bl UnloadOVY38
|
|
bl UnloadDwcOverlay
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_02229FDC: .word SDK_OVERLAY_OVY_42_ID
|
|
thumb_func_end ov45_02229F94
|
|
|
|
thumb_func_start ov45_02229FE0
|
|
ov45_02229FE0: ; 0x02229FE0
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
ldr r0, [r4, #8]
|
|
bl ov45_0222CDC0
|
|
ldr r0, [r4, #4]
|
|
bl ov45_0222A1F8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02229FE0
|
|
|
|
thumb_func_start ov45_02229FF4
|
|
ov45_02229FF4: ; 0x02229FF4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r7, r1, #0
|
|
mov r1, #0x53
|
|
add r5, r0, #0
|
|
add r0, r7, #0
|
|
lsl r1, r1, #4
|
|
bl AllocFromHeap
|
|
mov r2, #0x53
|
|
mov r1, #0
|
|
lsl r2, r2, #4
|
|
add r4, r0, #0
|
|
bl memset
|
|
ldr r0, _0222A0CC ; =0x00000528
|
|
str r5, [r4]
|
|
str r7, [r4, r0]
|
|
ldr r0, _0222A0D0 ; =ov45_0222B2B4
|
|
mov r2, #0x94
|
|
str r0, [sp, #4]
|
|
ldr r0, _0222A0D4 ; =ov45_0222B470
|
|
add r3, sp, #4
|
|
str r0, [sp, #8]
|
|
ldr r0, _0222A0D8 ; =ov45_0222B530
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _0222A0DC ; =ov45_0222B5A0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, _0222A0E0 ; =ov45_0222B75C
|
|
str r0, [sp, #0x14]
|
|
str r4, [sp]
|
|
ldr r1, [r4]
|
|
add r0, r7, #0
|
|
bl ov45_0222E5D4
|
|
add r0, r7, #0
|
|
bl ov45_0222D860
|
|
str r0, [r4, #4]
|
|
mov r6, #0
|
|
add r5, r4, #0
|
|
_0222A046:
|
|
add r0, r7, #0
|
|
bl sub_02028ED0
|
|
add r1, r5, #0
|
|
add r1, #0xe8
|
|
add r6, r6, #1
|
|
add r5, r5, #4
|
|
str r0, [r1]
|
|
cmp r6, #4
|
|
blt _0222A046
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4]
|
|
add r0, r4, r0
|
|
add r2, r7, #0
|
|
bl ov45_0222B8A0
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
add r0, r4, r0
|
|
bl ov45_0222BD40
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov45_0222BD30
|
|
ldr r0, _0222A0E4 ; =0x02254AC4
|
|
mov r1, #8
|
|
add r2, r4, #0
|
|
bl ov45_0222EE20
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov45_0222BC3C
|
|
mov r0, #0x83
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov45_0222C388
|
|
mov r0, #0xeb
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov45_0222C8AC
|
|
mov r0, #0xf9
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
add r1, r7, #0
|
|
bl ov45_0222C978
|
|
ldr r0, _0222A0E8 ; =0x000004BC
|
|
ldr r1, [r4]
|
|
add r0, r4, r0
|
|
bl ov45_0222CB44
|
|
ldr r0, _0222A0EC ; =0x00000508
|
|
add r1, r7, #0
|
|
add r0, r4, r0
|
|
bl ov45_0222BCC8
|
|
add r0, r4, #0
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222A0CC: .word 0x00000528
|
|
_0222A0D0: .word ov45_0222B2B4
|
|
_0222A0D4: .word ov45_0222B470
|
|
_0222A0D8: .word ov45_0222B530
|
|
_0222A0DC: .word ov45_0222B5A0
|
|
_0222A0E0: .word ov45_0222B75C
|
|
_0222A0E4: .word 0x02254AC4
|
|
_0222A0E8: .word 0x000004BC
|
|
_0222A0EC: .word 0x00000508
|
|
thumb_func_end ov45_02229FF4
|
|
|
|
thumb_func_start ov45_0222A0F0
|
|
ov45_0222A0F0: ; 0x0222A0F0
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r6, r0, #0
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
add r0, r6, r0
|
|
add r1, sp, #0
|
|
bl ov45_0222AB0C
|
|
ldr r0, [r6]
|
|
bl sub_020318E8
|
|
ldr r1, [sp]
|
|
add r4, r0, #0
|
|
bl sub_020318FC
|
|
ldr r1, [sp, #4]
|
|
add r0, r4, #0
|
|
bl sub_02031900
|
|
ldr r0, _0222A158 ; =0x00000508
|
|
add r0, r6, r0
|
|
bl ov45_0222BCD8
|
|
mov r0, #0xf9
|
|
lsl r0, r0, #2
|
|
add r0, r6, r0
|
|
bl ov45_0222C994
|
|
bl ov45_0222EE80
|
|
ldr r0, [r6, #4]
|
|
bl ov45_0222D890
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_0222A138:
|
|
add r0, r5, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
bl FreeToHeap
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _0222A138
|
|
bl ov45_0222E688
|
|
add r0, r6, #0
|
|
bl FreeToHeap
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0222A158: .word 0x00000508
|
|
thumb_func_end ov45_0222A0F0
|
|
|
|
thumb_func_start ov45_0222A15C
|
|
ov45_0222A15C: ; 0x0222A15C
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
bl ov45_0222D8A4
|
|
add r0, sp, #0
|
|
bl ov45_0222ECB8
|
|
add r1, sp, #0
|
|
add r0, r1, #0
|
|
ldmia r0!, {r2, r3}
|
|
add r0, r4, #0
|
|
add r0, #0xd8
|
|
stmia r0!, {r2, r3}
|
|
add r0, r4, #0
|
|
add r0, #0xd4
|
|
bl ov45_0222D500
|
|
add r0, r4, #0
|
|
bl ov45_0222B840
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
add r0, r4, r0
|
|
bl ov45_0222BE5C
|
|
mov r0, #0x7a
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov45_0222BD30
|
|
add r0, r4, #0
|
|
add r0, #0xf8
|
|
bl ov45_0222BB58
|
|
mov r2, #0x7f
|
|
lsl r2, r2, #2
|
|
ldr r3, _0222A1EC ; =0x0000049C
|
|
add r0, r4, r2
|
|
add r1, r4, #0
|
|
add r2, #0x10
|
|
add r1, #0xf8
|
|
add r2, r4, r2
|
|
add r3, r4, r3
|
|
bl ov45_0222BB60
|
|
mov r0, #0x3a
|
|
lsl r0, r0, #4
|
|
add r0, r4, r0
|
|
bl ov45_0222BCB8
|
|
mov r0, #0x83
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov45_0222C3B0
|
|
ldr r0, _0222A1EC ; =0x0000049C
|
|
add r0, r4, r0
|
|
bl ov45_0222CAA0
|
|
ldr r0, _0222A1F0 ; =0x000004BC
|
|
add r0, r4, r0
|
|
bl ov45_0222CCDC
|
|
cmp r0, #1
|
|
bne _0222A1E8
|
|
ldr r0, _0222A1F4 ; =0x0000052C
|
|
mov r1, #1
|
|
str r1, [r4, r0]
|
|
_0222A1E8:
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222A1EC: .word 0x0000049C
|
|
_0222A1F0: .word 0x000004BC
|
|
_0222A1F4: .word 0x0000052C
|
|
thumb_func_end ov45_0222A15C
|
|
|
|
thumb_func_start ov45_0222A1F8
|
|
ov45_0222A1F8: ; 0x0222A1F8
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222A1F8
|
|
|
|
thumb_func_start ov45_0222A1FC
|
|
ov45_0222A1FC: ; 0x0222A1FC
|
|
ldr r1, _0222A204 ; =0x0000052C
|
|
ldr r0, [r0, r1]
|
|
bx lr
|
|
nop
|
|
_0222A204: .word 0x0000052C
|
|
thumb_func_end ov45_0222A1FC
|
|
|
|
thumb_func_start ov45_0222A208
|
|
ov45_0222A208: ; 0x0222A208
|
|
ldr r3, _0222A20C ; =ov45_0222E9BC
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222A20C: .word ov45_0222E9BC
|
|
thumb_func_end ov45_0222A208
|
|
|
|
thumb_func_start ov45_0222A210
|
|
ov45_0222A210: ; 0x0222A210
|
|
ldr r0, [r0, #4]
|
|
bx lr
|
|
thumb_func_end ov45_0222A210
|
|
|
|
thumb_func_start ov45_0222A214
|
|
ov45_0222A214: ; 0x0222A214
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
add r1, r4, #0
|
|
add r0, r4, r0
|
|
add r1, #0xc
|
|
bl ov45_0222B79C
|
|
add r4, #0xc
|
|
add r0, r4, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_0222A214
|
|
|
|
thumb_func_start ov45_0222A22C
|
|
ov45_0222A22C: ; 0x0222A22C
|
|
add r0, #0xd4
|
|
bx lr
|
|
thumb_func_end ov45_0222A22C
|
|
|
|
thumb_func_start ov45_0222A230
|
|
ov45_0222A230: ; 0x0222A230
|
|
push {r3, r4}
|
|
mov r2, #1
|
|
add r3, r2, #0
|
|
lsl r3, r1
|
|
add r1, r0, #0
|
|
add r1, #0xf8
|
|
ldr r1, [r1]
|
|
tst r1, r3
|
|
beq _0222A256
|
|
add r1, r0, #0
|
|
add r1, #0xf8
|
|
ldr r4, [r1]
|
|
mvn r1, r3
|
|
and r1, r4
|
|
add r0, #0xf8
|
|
str r1, [r0]
|
|
add r0, r2, #0
|
|
pop {r3, r4}
|
|
bx lr
|
|
_0222A256:
|
|
mov r0, #0
|
|
pop {r3, r4}
|
|
bx lr
|
|
thumb_func_end ov45_0222A230
|
|
|
|
thumb_func_start ov45_0222A25C
|
|
ov45_0222A25C: ; 0x0222A25C
|
|
push {r3, r4}
|
|
mov r2, #1
|
|
add r3, r2, #0
|
|
lsl r3, r1
|
|
add r1, r0, #0
|
|
add r1, #0xfc
|
|
ldr r1, [r1]
|
|
tst r1, r3
|
|
beq _0222A282
|
|
add r1, r0, #0
|
|
add r1, #0xfc
|
|
ldr r4, [r1]
|
|
mvn r1, r3
|
|
and r1, r4
|
|
add r0, #0xfc
|
|
str r1, [r0]
|
|
add r0, r2, #0
|
|
pop {r3, r4}
|
|
bx lr
|
|
_0222A282:
|
|
mov r0, #0
|
|
pop {r3, r4}
|
|
bx lr
|
|
thumb_func_end ov45_0222A25C
|
|
|
|
thumb_func_start ov45_0222A288
|
|
ov45_0222A288: ; 0x0222A288
|
|
mov r2, #1
|
|
lsl r2, r2, #8
|
|
ldr r3, [r0, r2]
|
|
mov r0, #1
|
|
add r2, r0, #0
|
|
lsl r2, r1
|
|
add r1, r3, #0
|
|
tst r1, r2
|
|
bne _0222A29C
|
|
mov r0, #0
|
|
_0222A29C:
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222A288
|
|
|
|
thumb_func_start ov45_0222A2A0
|
|
ov45_0222A2A0: ; 0x0222A2A0
|
|
push {r4, r5}
|
|
mov r4, #1
|
|
add r5, r4, #0
|
|
lsl r5, r1
|
|
mov r1, #0x41
|
|
lsl r1, r1, #2
|
|
ldr r3, [r0, r1]
|
|
add r2, r3, #0
|
|
tst r2, r5
|
|
beq _0222A2C0
|
|
mvn r2, r5
|
|
and r2, r3
|
|
str r2, [r0, r1]
|
|
add r0, r4, #0
|
|
pop {r4, r5}
|
|
bx lr
|
|
_0222A2C0:
|
|
mov r0, #0
|
|
pop {r4, r5}
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222A2A0
|
|
|
|
thumb_func_start ov45_0222A2C8
|
|
ov45_0222A2C8: ; 0x0222A2C8
|
|
ldr r0, [r0]
|
|
bx lr
|
|
thumb_func_end ov45_0222A2C8
|
|
|
|
thumb_func_start ov45_0222A2CC
|
|
ov45_0222A2CC: ; 0x0222A2CC
|
|
push {r3, lr}
|
|
cmp r0, #0
|
|
bne _0222A2D6
|
|
bl GF_AssertFail
|
|
_0222A2D6:
|
|
mov r0, #4
|
|
bl ov45_0222ECDC
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222A2CC
|
|
|
|
thumb_func_start ov45_0222A2E0
|
|
ov45_0222A2E0: ; 0x0222A2E0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bne _0222A2EA
|
|
bl GF_AssertFail
|
|
_0222A2EA:
|
|
ldr r0, _0222A2F4 ; =0x0000020B
|
|
ldrb r0, [r4, r0]
|
|
lsl r0, r0, #0x1c
|
|
lsr r0, r0, #0x1c
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222A2F4: .word 0x0000020B
|
|
thumb_func_end ov45_0222A2E0
|
|
|
|
thumb_func_start ov45_0222A2F8
|
|
ov45_0222A2F8: ; 0x0222A2F8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bne _0222A302
|
|
bl GF_AssertFail
|
|
_0222A302:
|
|
ldr r0, _0222A30C ; =0x0000020B
|
|
ldrb r0, [r4, r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1c
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222A30C: .word 0x0000020B
|
|
thumb_func_end ov45_0222A2F8
|
|
|
|
thumb_func_start ov45_0222A310
|
|
ov45_0222A310: ; 0x0222A310
|
|
ldr r2, _0222A320 ; =0x0000020B
|
|
mov r1, #0xf0
|
|
ldrb r3, [r0, r2]
|
|
bic r3, r1
|
|
mov r1, #0x10
|
|
orr r1, r3
|
|
strb r1, [r0, r2]
|
|
bx lr
|
|
.balign 4, 0
|
|
_0222A320: .word 0x0000020B
|
|
thumb_func_end ov45_0222A310
|
|
|
|
thumb_func_start ov45_0222A324
|
|
ov45_0222A324: ; 0x0222A324
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #2
|
|
ldrb r0, [r0, r1]
|
|
lsl r0, r0, #0x1f
|
|
lsr r0, r0, #0x1f
|
|
bx lr
|
|
thumb_func_end ov45_0222A324
|
|
|
|
thumb_func_start ov45_0222A330
|
|
ov45_0222A330: ; 0x0222A330
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #2
|
|
ldrb r0, [r0, r1]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1f
|
|
bx lr
|
|
thumb_func_end ov45_0222A330
|
|
|
|
thumb_func_start ov45_0222A33C
|
|
ov45_0222A33C: ; 0x0222A33C
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #2
|
|
ldrb r2, [r0, r1]
|
|
lsl r2, r2, #0x1e
|
|
lsr r2, r2, #0x1f
|
|
cmp r2, #1
|
|
bne _0222A356
|
|
add r1, r1, #4
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, #0
|
|
bgt _0222A356
|
|
mov r0, #1
|
|
bx lr
|
|
_0222A356:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222A33C
|
|
|
|
thumb_func_start ov45_0222A35C
|
|
ov45_0222A35C: ; 0x0222A35C
|
|
mov r1, #0x81
|
|
lsl r1, r1, #2
|
|
ldrsh r2, [r0, r1]
|
|
cmp r2, #0
|
|
bgt _0222A370
|
|
sub r1, #8
|
|
ldrb r0, [r0, r1]
|
|
lsl r0, r0, #0x1c
|
|
lsr r0, r0, #0x1e
|
|
bx lr
|
|
_0222A370:
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov45_0222A35C
|
|
|
|
thumb_func_start ov45_0222A374
|
|
ov45_0222A374: ; 0x0222A374
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #2
|
|
ldrb r2, [r0, r1]
|
|
lsl r2, r2, #0x1b
|
|
lsr r2, r2, #0x1f
|
|
cmp r2, #1
|
|
bne _0222A38E
|
|
add r1, #0xa
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, #0
|
|
bgt _0222A38E
|
|
mov r0, #1
|
|
bx lr
|
|
_0222A38E:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222A374
|
|
|
|
thumb_func_start ov45_0222A394
|
|
ov45_0222A394: ; 0x0222A394
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #2
|
|
ldrb r0, [r0, r1]
|
|
lsl r0, r0, #0x19
|
|
lsr r0, r0, #0x1e
|
|
bx lr
|
|
thumb_func_end ov45_0222A394
|
|
|
|
thumb_func_start ov45_0222A3A0
|
|
ov45_0222A3A0: ; 0x0222A3A0
|
|
ldr r1, [r0, #8]
|
|
cmp r1, #1
|
|
bne _0222A3B2
|
|
ldr r1, _0222A3B8 ; =0x00000202
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, #0
|
|
bgt _0222A3B2
|
|
mov r0, #1
|
|
bx lr
|
|
_0222A3B2:
|
|
mov r0, #0
|
|
bx lr
|
|
nop
|
|
_0222A3B8: .word 0x00000202
|
|
thumb_func_end ov45_0222A3A0
|
|
|
|
thumb_func_start ov45_0222A3BC
|
|
ov45_0222A3BC: ; 0x0222A3BC
|
|
ldr r1, _0222A3D0 ; =0x00000202
|
|
ldrsh r2, [r0, r1]
|
|
cmp r2, #0
|
|
bgt _0222A3CA
|
|
sub r1, r1, #5
|
|
ldrb r0, [r0, r1]
|
|
bx lr
|
|
_0222A3CA:
|
|
mov r0, #1
|
|
bx lr
|
|
nop
|
|
_0222A3D0: .word 0x00000202
|
|
thumb_func_end ov45_0222A3BC
|
|
|
|
thumb_func_start ov45_0222A3D4
|
|
ov45_0222A3D4: ; 0x0222A3D4
|
|
ldr r1, _0222A3E8 ; =0x00000202
|
|
ldrsh r2, [r0, r1]
|
|
cmp r2, #0
|
|
bgt _0222A3E2
|
|
sub r1, r1, #4
|
|
ldrb r0, [r0, r1]
|
|
bx lr
|
|
_0222A3E2:
|
|
mov r0, #7
|
|
bx lr
|
|
nop
|
|
_0222A3E8: .word 0x00000202
|
|
thumb_func_end ov45_0222A3D4
|
|
|
|
thumb_func_start ov45_0222A3EC
|
|
ov45_0222A3EC: ; 0x0222A3EC
|
|
ldr r1, _0222A400 ; =0x00000202
|
|
ldrsh r2, [r0, r1]
|
|
cmp r2, #0
|
|
bgt _0222A3FA
|
|
sub r1, r1, #3
|
|
ldrb r0, [r0, r1]
|
|
bx lr
|
|
_0222A3FA:
|
|
mov r0, #0xb
|
|
bx lr
|
|
nop
|
|
_0222A400: .word 0x00000202
|
|
thumb_func_end ov45_0222A3EC
|
|
|
|
thumb_func_start ov45_0222A404
|
|
ov45_0222A404: ; 0x0222A404
|
|
mov r1, #0x3a
|
|
lsl r1, r1, #4
|
|
ldr r3, _0222A410 ; =ov45_0222BCA0
|
|
add r0, r0, r1
|
|
bx r3
|
|
nop
|
|
_0222A410: .word ov45_0222BCA0
|
|
thumb_func_end ov45_0222A404
|
|
|
|
thumb_func_start ov45_0222A414
|
|
ov45_0222A414: ; 0x0222A414
|
|
mov r1, #0x3a
|
|
lsl r1, r1, #4
|
|
ldr r3, _0222A420 ; =ov45_0222BCA8
|
|
add r0, r0, r1
|
|
bx r3
|
|
nop
|
|
_0222A420: .word ov45_0222BCA8
|
|
thumb_func_end ov45_0222A414
|
|
|
|
thumb_func_start ov45_0222A424
|
|
ov45_0222A424: ; 0x0222A424
|
|
ldr r1, _0222A42C ; =0x0000050C
|
|
ldr r0, [r0, r1]
|
|
bx lr
|
|
nop
|
|
_0222A42C: .word 0x0000050C
|
|
thumb_func_end ov45_0222A424
|
|
|
|
thumb_func_start ov45_0222A430
|
|
ov45_0222A430: ; 0x0222A430
|
|
ldr r2, _0222A438 ; =0x0000050C
|
|
str r1, [r0, r2]
|
|
bx lr
|
|
nop
|
|
_0222A438: .word 0x0000050C
|
|
thumb_func_end ov45_0222A430
|
|
|
|
thumb_func_start ov45_0222A43C
|
|
ov45_0222A43C: ; 0x0222A43C
|
|
mov r1, #0x3e
|
|
add r2, r0, #0
|
|
lsl r1, r1, #4
|
|
add r1, r2, r1
|
|
ldr r3, _0222A44C ; =sub_020D47EC
|
|
mov r0, #0
|
|
mov r2, #4
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222A44C: .word sub_020D47EC
|
|
thumb_func_end ov45_0222A43C
|
|
|
|
thumb_func_start ov45_0222A450
|
|
ov45_0222A450: ; 0x0222A450
|
|
push {r4, r5, r6, lr}
|
|
add r4, r2, #0
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
cmp r4, #4
|
|
blo _0222A460
|
|
bl GF_AssertFail
|
|
_0222A460:
|
|
add r0, r6, #0
|
|
bl ov45_0222EC68
|
|
add r6, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r6, r0
|
|
bne _0222A474
|
|
bl GF_AssertFail
|
|
_0222A474:
|
|
mov r0, #0x3e
|
|
add r1, r5, r4
|
|
lsl r0, r0, #4
|
|
strb r6, [r1, r0]
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222A450
|
|
|
|
thumb_func_start ov45_0222A480
|
|
ov45_0222A480: ; 0x0222A480
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl ov45_0222E9E0
|
|
add r1, r0, #0
|
|
add r0, r5, #0
|
|
add r2, r4, #0
|
|
bl ov45_0222A450
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222A480
|
|
|
|
thumb_func_start ov45_0222A498
|
|
ov45_0222A498: ; 0x0222A498
|
|
mov r2, #0x3e
|
|
lsl r2, r2, #4
|
|
add r0, r0, r2
|
|
ldr r3, _0222A4A4 ; =MIi_CpuCopy8
|
|
mov r2, #4
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222A4A4: .word MIi_CpuCopy8
|
|
thumb_func_end ov45_0222A498
|
|
|
|
thumb_func_start ov45_0222A4A8
|
|
ov45_0222A4A8: ; 0x0222A4A8
|
|
mov r1, #0x3a
|
|
lsl r1, r1, #4
|
|
ldr r3, _0222A4B4 ; =ov45_0222BD24
|
|
add r0, r0, r1
|
|
bx r3
|
|
nop
|
|
_0222A4B4: .word ov45_0222BD24
|
|
thumb_func_end ov45_0222A4A8
|
|
|
|
thumb_func_start ov45_0222A4B8
|
|
ov45_0222A4B8: ; 0x0222A4B8
|
|
mov r1, #0x3a
|
|
lsl r1, r1, #4
|
|
ldr r3, _0222A4C4 ; =ov45_0222BD2C
|
|
add r0, r0, r1
|
|
bx r3
|
|
nop
|
|
_0222A4C4: .word ov45_0222BD2C
|
|
thumb_func_end ov45_0222A4B8
|
|
|
|
thumb_func_start ov45_0222A4C8
|
|
ov45_0222A4C8: ; 0x0222A4C8
|
|
mov r2, #0x82
|
|
lsl r2, r2, #2
|
|
strb r1, [r0, r2]
|
|
bx lr
|
|
thumb_func_end ov45_0222A4C8
|
|
|
|
thumb_func_start ov45_0222A4D0
|
|
ov45_0222A4D0: ; 0x0222A4D0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #2
|
|
ldrb r1, [r4, r0]
|
|
lsl r1, r1, #0x1b
|
|
lsr r1, r1, #0x1f
|
|
cmp r1, #1
|
|
bne _0222A500
|
|
add r0, #0xa
|
|
ldrsh r0, [r4, r0]
|
|
cmp r0, #0
|
|
bgt _0222A500
|
|
ldr r1, _0222A518 ; =0x00000481
|
|
mov r0, #0x15
|
|
mov r2, #0
|
|
bl sub_02004EC4
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov45_0222BC84
|
|
pop {r4, pc}
|
|
_0222A500:
|
|
ldr r1, _0222A51C ; =0x0000047F
|
|
mov r0, #0x15
|
|
mov r2, #0
|
|
bl sub_02004EC4
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov45_0222BC84
|
|
pop {r4, pc}
|
|
nop
|
|
_0222A518: .word 0x00000481
|
|
_0222A51C: .word 0x0000047F
|
|
thumb_func_end ov45_0222A4D0
|
|
|
|
thumb_func_start ov45_0222A520
|
|
ov45_0222A520: ; 0x0222A520
|
|
push {r3, lr}
|
|
ldr r2, _0222A538 ; =0x00000209
|
|
ldrb r3, [r0, r2]
|
|
cmp r1, r3
|
|
beq _0222A534
|
|
strb r1, [r0, r2]
|
|
sub r2, #0xd
|
|
add r0, r0, r2
|
|
bl ov45_0222BC84
|
|
_0222A534:
|
|
pop {r3, pc}
|
|
nop
|
|
_0222A538: .word 0x00000209
|
|
thumb_func_end ov45_0222A520
|
|
|
|
thumb_func_start ov45_0222A53C
|
|
ov45_0222A53C: ; 0x0222A53C
|
|
push {r3, lr}
|
|
bl ov45_0222E9E0
|
|
bl ov45_0222EC68
|
|
pop {r3, pc}
|
|
thumb_func_end ov45_0222A53C
|
|
|
|
thumb_func_start ov45_0222A548
|
|
ov45_0222A548: ; 0x0222A548
|
|
ldr r3, _0222A54C ; =ov45_0222E9E0
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222A54C: .word ov45_0222E9E0
|
|
thumb_func_end ov45_0222A548
|
|
|
|
thumb_func_start ov45_0222A550
|
|
ov45_0222A550: ; 0x0222A550
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
add r0, sp, #0
|
|
add r4, r1, #0
|
|
bl ov45_0222EC10
|
|
ldr r1, [sp, #4]
|
|
lsl r0, r4, #2
|
|
ldr r1, [r1, r0]
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _0222A570
|
|
add sp, #8
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_0222A570:
|
|
mov r0, #0
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222A550
|
|
|
|
thumb_func_start ov45_0222A578
|
|
ov45_0222A578: ; 0x0222A578
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
cmp r5, #0x14
|
|
blo _0222A588
|
|
bl GF_AssertFail
|
|
_0222A588:
|
|
add r0, sp, #0
|
|
bl ov45_0222EC10
|
|
ldr r1, [sp, #4]
|
|
lsl r0, r5, #2
|
|
ldr r5, [r1, r0]
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r5, r0
|
|
bne _0222A5A2
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0222A5A2:
|
|
bl ov45_0222E9E0
|
|
cmp r5, r0
|
|
bne _0222A5B4
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
add sp, #8
|
|
add r0, r4, r0
|
|
pop {r3, r4, r5, pc}
|
|
_0222A5B4:
|
|
add r0, r5, #0
|
|
bl ov45_0222EA2C
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222A578
|
|
|
|
thumb_func_start ov45_0222A5C0
|
|
ov45_0222A5C0: ; 0x0222A5C0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4]
|
|
add r0, r4, r0
|
|
bl ov45_0222BADC
|
|
cmp r0, #0
|
|
bne _0222A5DA
|
|
ldr r0, _0222A5E4 ; =0x0000052C
|
|
mov r1, #1
|
|
str r1, [r4, r0]
|
|
_0222A5DA:
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
pop {r4, pc}
|
|
nop
|
|
_0222A5E4: .word 0x0000052C
|
|
thumb_func_end ov45_0222A5C0
|
|
|
|
thumb_func_start ov45_0222A5E8
|
|
ov45_0222A5E8: ; 0x0222A5E8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
cmp r5, #0xf
|
|
blt _0222A5F6
|
|
bl GF_AssertFail
|
|
_0222A5F6:
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4]
|
|
add r0, r4, r0
|
|
bl ov45_0222BADC
|
|
cmp r0, #0
|
|
bne _0222A60E
|
|
ldr r0, _0222A6F8 ; =0x0000052C
|
|
mov r1, #1
|
|
str r1, [r4, r0]
|
|
pop {r3, r4, r5, pc}
|
|
_0222A60E:
|
|
ldr r0, _0222A6FC ; =0x0000016B
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, r5
|
|
beq _0222A6F6
|
|
cmp r5, #9
|
|
beq _0222A64E
|
|
add r0, r4, #0
|
|
bl ov45_0222AFF8
|
|
cmp r0, #1
|
|
bne _0222A64E
|
|
add r0, r4, #0
|
|
bl ov45_0222B00C
|
|
cmp r0, #0
|
|
bne _0222A644
|
|
mov r0, #0x71
|
|
lsl r0, r0, #2
|
|
ldrh r0, [r4, r0]
|
|
bl ov45_0222EC90
|
|
mov r1, #0x71
|
|
lsl r1, r1, #2
|
|
ldrh r1, [r4, r1]
|
|
add r0, r4, #0
|
|
bl ov45_0222BE28
|
|
_0222A644:
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
add r0, r4, r0
|
|
bl ov45_0222BD5C
|
|
_0222A64E:
|
|
ldr r0, _0222A6FC ; =0x0000016B
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #8
|
|
bhi _0222A6E2
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222A662: ; jump table
|
|
.short _0222A6E2 - _0222A662 - 2 ; case 0
|
|
.short _0222A6E2 - _0222A662 - 2 ; case 1
|
|
.short _0222A674 - _0222A662 - 2 ; case 2
|
|
.short _0222A684 - _0222A662 - 2 ; case 3
|
|
.short _0222A694 - _0222A662 - 2 ; case 4
|
|
.short _0222A6A4 - _0222A662 - 2 ; case 5
|
|
.short _0222A6B4 - _0222A662 - 2 ; case 6
|
|
.short _0222A6C4 - _0222A662 - 2 ; case 7
|
|
.short _0222A6D4 - _0222A662 - 2 ; case 8
|
|
_0222A674:
|
|
ldr r0, _0222A700 ; =0x000004BC
|
|
mov r1, #0x10
|
|
add r2, r1, #0
|
|
add r0, r4, r0
|
|
sub r2, #0x11
|
|
bl ov45_0222CB74
|
|
b _0222A6E2
|
|
_0222A684:
|
|
ldr r0, _0222A700 ; =0x000004BC
|
|
mov r1, #0x11
|
|
add r2, r1, #0
|
|
add r0, r4, r0
|
|
sub r2, #0x12
|
|
bl ov45_0222CB74
|
|
b _0222A6E2
|
|
_0222A694:
|
|
ldr r0, _0222A700 ; =0x000004BC
|
|
mov r1, #0x12
|
|
add r2, r1, #0
|
|
add r0, r4, r0
|
|
sub r2, #0x13
|
|
bl ov45_0222CB74
|
|
b _0222A6E2
|
|
_0222A6A4:
|
|
ldr r0, _0222A700 ; =0x000004BC
|
|
mov r1, #0x13
|
|
add r2, r1, #0
|
|
add r0, r4, r0
|
|
sub r2, #0x14
|
|
bl ov45_0222CB74
|
|
b _0222A6E2
|
|
_0222A6B4:
|
|
ldr r0, _0222A700 ; =0x000004BC
|
|
mov r1, #0x14
|
|
add r2, r1, #0
|
|
add r0, r4, r0
|
|
sub r2, #0x15
|
|
bl ov45_0222CB74
|
|
b _0222A6E2
|
|
_0222A6C4:
|
|
ldr r0, _0222A700 ; =0x000004BC
|
|
mov r1, #0x15
|
|
add r2, r1, #0
|
|
add r0, r4, r0
|
|
sub r2, #0x16
|
|
bl ov45_0222CB74
|
|
b _0222A6E2
|
|
_0222A6D4:
|
|
ldr r0, _0222A700 ; =0x000004BC
|
|
mov r1, #0x16
|
|
add r2, r1, #0
|
|
add r0, r4, r0
|
|
sub r2, #0x17
|
|
bl ov45_0222CB74
|
|
_0222A6E2:
|
|
ldr r0, _0222A6FC ; =0x0000016B
|
|
strb r5, [r4, r0]
|
|
sub r0, #0x63
|
|
ldr r1, [r4]
|
|
add r0, r4, r0
|
|
bl ov45_0222BAC4
|
|
add r0, r4, #0
|
|
bl ov45_0222BA3C
|
|
_0222A6F6:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0222A6F8: .word 0x0000052C
|
|
_0222A6FC: .word 0x0000016B
|
|
_0222A700: .word 0x000004BC
|
|
thumb_func_end ov45_0222A5E8
|
|
|
|
thumb_func_start ov45_0222A704
|
|
ov45_0222A704: ; 0x0222A704
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
cmp r4, #0x18
|
|
blt _0222A714
|
|
bl GF_AssertFail
|
|
_0222A714:
|
|
ldr r0, _0222A728 ; =0x000004BC
|
|
add r1, r4, #0
|
|
add r0, r5, r0
|
|
add r2, r6, #0
|
|
bl ov45_0222CB74
|
|
add r0, r5, #0
|
|
bl ov45_0222BA3C
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0222A728: .word 0x000004BC
|
|
thumb_func_end ov45_0222A704
|
|
|
|
thumb_func_start ov45_0222A72C
|
|
ov45_0222A72C: ; 0x0222A72C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x1b
|
|
blo _0222A73A
|
|
bl GF_AssertFail
|
|
_0222A73A:
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5]
|
|
add r0, r5, r0
|
|
bl ov45_0222BADC
|
|
cmp r0, #0
|
|
bne _0222A752
|
|
ldr r0, _0222A768 ; =0x0000052C
|
|
mov r1, #1
|
|
str r1, [r5, r0]
|
|
pop {r3, r4, r5, pc}
|
|
_0222A752:
|
|
ldr r0, _0222A76C ; =0x00000169
|
|
strb r4, [r5, r0]
|
|
sub r0, #0x61
|
|
ldr r1, [r5]
|
|
add r0, r5, r0
|
|
bl ov45_0222BAC4
|
|
add r0, r5, #0
|
|
bl ov45_0222BA3C
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0222A768: .word 0x0000052C
|
|
_0222A76C: .word 0x00000169
|
|
thumb_func_end ov45_0222A72C
|
|
|
|
thumb_func_start ov45_0222A770
|
|
ov45_0222A770: ; 0x0222A770
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
cmp r4, #0x12
|
|
blt _0222A780
|
|
bl GF_AssertFail
|
|
_0222A780:
|
|
cmp r6, #0x12
|
|
blt _0222A788
|
|
bl GF_AssertFail
|
|
_0222A788:
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5]
|
|
add r0, r5, r0
|
|
bl ov45_0222BADC
|
|
cmp r0, #0
|
|
bne _0222A7A0
|
|
ldr r0, _0222A7D8 ; =0x0000052C
|
|
mov r1, #1
|
|
str r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_0222A7A0:
|
|
cmp r4, #0x12
|
|
bge _0222A7D6
|
|
cmp r6, #0x12
|
|
bge _0222A7D6
|
|
cmp r4, #0
|
|
bne _0222A7BA
|
|
mov r0, #0x1b
|
|
lsl r0, r0, #4
|
|
strh r6, [r5, r0]
|
|
mov r1, #0
|
|
add r0, r0, #2
|
|
strh r1, [r5, r0]
|
|
b _0222A7C4
|
|
_0222A7BA:
|
|
mov r0, #0x1b
|
|
lsl r0, r0, #4
|
|
strh r4, [r5, r0]
|
|
add r0, r0, #2
|
|
strh r6, [r5, r0]
|
|
_0222A7C4:
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5]
|
|
add r0, r5, r0
|
|
bl ov45_0222BAC4
|
|
add r0, r5, #0
|
|
bl ov45_0222BA3C
|
|
_0222A7D6:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0222A7D8: .word 0x0000052C
|
|
thumb_func_end ov45_0222A770
|
|
|
|
thumb_func_start ov45_0222A7DC
|
|
ov45_0222A7DC: ; 0x0222A7DC
|
|
push {r4, r5, r6, lr}
|
|
add r4, r2, #0
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
cmp r4, #3
|
|
blo _0222A7EC
|
|
bl GF_AssertFail
|
|
_0222A7EC:
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5]
|
|
add r0, r5, r0
|
|
bl ov45_0222BADC
|
|
cmp r0, #0
|
|
bne _0222A804
|
|
ldr r0, _0222A840 ; =0x0000052C
|
|
mov r1, #1
|
|
str r1, [r5, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_0222A804:
|
|
cmp r4, #3
|
|
bhs _0222A83E
|
|
mov r0, #0x6d
|
|
lsl r0, r0, #2
|
|
str r6, [r5, r0]
|
|
add r1, r0, #4
|
|
str r4, [r5, r1]
|
|
add r1, r0, #0
|
|
add r1, #0x57
|
|
ldrb r2, [r5, r1]
|
|
mov r1, #0xf
|
|
add r0, #0x57
|
|
bic r2, r1
|
|
mov r1, #1
|
|
orr r1, r2
|
|
strb r1, [r5, r0]
|
|
add r0, r5, #0
|
|
mov r1, #6
|
|
bl ov45_0222B118
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5]
|
|
add r0, r5, r0
|
|
bl ov45_0222BAC4
|
|
add r0, r5, #0
|
|
bl ov45_0222BA3C
|
|
_0222A83E:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0222A840: .word 0x0000052C
|
|
thumb_func_end ov45_0222A7DC
|
|
|
|
thumb_func_start ov45_0222A844
|
|
ov45_0222A844: ; 0x0222A844
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, #8
|
|
mov r1, #8
|
|
add r7, r2, #0
|
|
bl ov45_0222B28C
|
|
mov r6, #0
|
|
cmp r0, #1
|
|
bne _0222A8A0
|
|
add r1, r5, #0
|
|
add r0, r4, #0
|
|
add r1, #8
|
|
bl sub_02028F24
|
|
mov r0, #0x20
|
|
add r1, r7, #0
|
|
bl String_ctor
|
|
str r0, [sp]
|
|
mov r0, #0x20
|
|
add r1, r7, #0
|
|
bl String_ctor
|
|
str r0, [sp, #4]
|
|
ldr r1, [sp, #4]
|
|
add r0, r4, #0
|
|
bl sub_02028F58
|
|
ldr r1, [sp, #4]
|
|
ldr r2, [sp]
|
|
add r0, r6, #0
|
|
bl sub_02002F68
|
|
cmp r0, #0
|
|
bne _0222A892
|
|
mov r6, #1
|
|
_0222A892:
|
|
ldr r0, [sp]
|
|
bl String_dtor
|
|
ldr r0, [sp, #4]
|
|
bl String_dtor
|
|
b _0222A8A2
|
|
_0222A8A0:
|
|
mov r6, #1
|
|
_0222A8A2:
|
|
cmp r6, #0
|
|
beq _0222A8D0
|
|
ldr r2, _0222A91C ; =0x00000309
|
|
mov r0, #1
|
|
mov r1, #0x1b
|
|
add r3, r7, #0
|
|
bl NewMsgDataFromNarc
|
|
mov r1, #0x40
|
|
add r6, r0, #0
|
|
bl NewString_ReadMsgData
|
|
add r7, r0, #0
|
|
add r0, r4, #0
|
|
add r1, r7, #0
|
|
bl sub_02028F44
|
|
add r0, r7, #0
|
|
bl String_dtor
|
|
add r0, r6, #0
|
|
bl DestroyMsgData
|
|
_0222A8D0:
|
|
add r0, r5, #0
|
|
bl ov45_0222A9A0
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl sub_02028F80
|
|
add r0, r5, #0
|
|
bl ov45_0222A9CC
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl sub_02028F90
|
|
add r0, r5, #0
|
|
bl ov45_0222AA5C
|
|
add r1, r0, #0
|
|
lsl r1, r1, #0x18
|
|
add r0, r4, #0
|
|
lsr r1, r1, #0x18
|
|
bl sub_02029040
|
|
add r0, r5, #0
|
|
bl ov45_0222AA10
|
|
add r1, r0, #0
|
|
lsl r1, r1, #0x18
|
|
add r0, r4, #0
|
|
lsr r1, r1, #0x18
|
|
bl sub_0202908C
|
|
add r0, r4, #0
|
|
bl sub_02029090
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222A91C: .word 0x00000309
|
|
thumb_func_end ov45_0222A844
|
|
|
|
thumb_func_start ov45_0222A920
|
|
ov45_0222A920: ; 0x0222A920
|
|
add r0, #0x43
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xe
|
|
blo _0222A92A
|
|
mov r0, #0xe
|
|
_0222A92A:
|
|
bx lr
|
|
thumb_func_end ov45_0222A920
|
|
|
|
thumb_func_start ov45_0222A92C
|
|
ov45_0222A92C: ; 0x0222A92C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0xc
|
|
blo _0222A93A
|
|
bl GF_AssertFail
|
|
_0222A93A:
|
|
mov r1, #0
|
|
add r2, r1, #0
|
|
_0222A93E:
|
|
add r0, r5, r2
|
|
add r0, #0x4c
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x18
|
|
bhs _0222A94A
|
|
add r1, r1, #1
|
|
_0222A94A:
|
|
sub r0, r1, #1
|
|
cmp r0, r4
|
|
bne _0222A958
|
|
add r0, r5, r2
|
|
add r0, #0x4c
|
|
ldrb r0, [r0]
|
|
pop {r3, r4, r5, pc}
|
|
_0222A958:
|
|
add r2, r2, #1
|
|
cmp r2, #0xc
|
|
blt _0222A93E
|
|
mov r0, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222A92C
|
|
|
|
thumb_func_start ov45_0222A964
|
|
ov45_0222A964: ; 0x0222A964
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0xc
|
|
blo _0222A972
|
|
bl GF_AssertFail
|
|
_0222A972:
|
|
mov r1, #0
|
|
add r2, r1, #0
|
|
_0222A976:
|
|
add r0, r5, r2
|
|
add r0, #0x4c
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x18
|
|
bhs _0222A982
|
|
add r1, r1, #1
|
|
_0222A982:
|
|
sub r0, r1, #1
|
|
cmp r0, r4
|
|
bne _0222A990
|
|
lsl r0, r2, #2
|
|
add r0, r5, r0
|
|
ldr r0, [r0, #0x58]
|
|
pop {r3, r4, r5, pc}
|
|
_0222A990:
|
|
add r2, r2, #1
|
|
cmp r2, #0xc
|
|
blt _0222A976
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222A964
|
|
|
|
thumb_func_start ov45_0222A99C
|
|
ov45_0222A99C: ; 0x0222A99C
|
|
ldr r0, [r0]
|
|
bx lr
|
|
thumb_func_end ov45_0222A99C
|
|
|
|
thumb_func_start ov45_0222A9A0
|
|
ov45_0222A9A0: ; 0x0222A9A0
|
|
ldr r0, [r0, #4]
|
|
bx lr
|
|
thumb_func_end ov45_0222A9A0
|
|
|
|
thumb_func_start ov45_0222A9A4
|
|
ov45_0222A9A4: ; 0x0222A9A4
|
|
push {r3, lr}
|
|
bl ov45_0222AA5C
|
|
ldr r3, _0222A9C4 ; =0x02254A84
|
|
mov r2, #0
|
|
_0222A9AE:
|
|
ldrh r1, [r3]
|
|
cmp r0, r1
|
|
bne _0222A9B8
|
|
add r0, r2, #0
|
|
pop {r3, pc}
|
|
_0222A9B8:
|
|
add r2, r2, #1
|
|
add r3, r3, #4
|
|
cmp r2, #0x10
|
|
blt _0222A9AE
|
|
mov r0, #0x18
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222A9C4: .word 0x02254A84
|
|
thumb_func_end ov45_0222A9A4
|
|
|
|
thumb_func_start ov45_0222A9C8
|
|
ov45_0222A9C8: ; 0x0222A9C8
|
|
ldr r0, [r0, #0x1c]
|
|
bx lr
|
|
thumb_func_end ov45_0222A9C8
|
|
|
|
thumb_func_start ov45_0222A9CC
|
|
ov45_0222A9CC: ; 0x0222A9CC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r0, #0x38
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
blo _0222AA00
|
|
ldrh r0, [r5, #0x3a]
|
|
bl ov45_0222CD04
|
|
ldr r1, _0222AA08 ; =0x0000FFFF
|
|
cmp r0, r1
|
|
beq _0222A9FC
|
|
ldrh r3, [r5, #0x3a]
|
|
ldr r2, _0222AA0C ; =0x02254A84
|
|
mov r1, #0
|
|
_0222A9EA:
|
|
ldrh r0, [r2]
|
|
cmp r3, r0
|
|
bne _0222A9F2
|
|
add r4, r0, #0
|
|
_0222A9F2:
|
|
add r1, r1, #1
|
|
add r2, r2, #4
|
|
cmp r1, #0x10
|
|
blo _0222A9EA
|
|
b _0222AA02
|
|
_0222A9FC:
|
|
mov r4, #1
|
|
b _0222AA02
|
|
_0222AA00:
|
|
add r4, r0, #0
|
|
_0222AA02:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222AA08: .word 0x0000FFFF
|
|
_0222AA0C: .word 0x02254A84
|
|
thumb_func_end ov45_0222A9CC
|
|
|
|
thumb_func_start ov45_0222AA10
|
|
ov45_0222AA10: ; 0x0222AA10
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov45_0222AA28
|
|
cmp r0, #1
|
|
bne _0222AA22
|
|
add r4, #0x39
|
|
ldrb r0, [r4]
|
|
pop {r4, pc}
|
|
_0222AA22:
|
|
mov r0, #2
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222AA10
|
|
|
|
thumb_func_start ov45_0222AA28
|
|
ov45_0222AA28: ; 0x0222AA28
|
|
add r0, #0x39
|
|
ldrb r0, [r0]
|
|
cmp r0, #7
|
|
bhi _0222AA50
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222AA3C: ; jump table
|
|
.short _0222AA50 - _0222AA3C - 2 ; case 0
|
|
.short _0222AA4C - _0222AA3C - 2 ; case 1
|
|
.short _0222AA4C - _0222AA3C - 2 ; case 2
|
|
.short _0222AA4C - _0222AA3C - 2 ; case 3
|
|
.short _0222AA4C - _0222AA3C - 2 ; case 4
|
|
.short _0222AA4C - _0222AA3C - 2 ; case 5
|
|
.short _0222AA50 - _0222AA3C - 2 ; case 6
|
|
.short _0222AA4C - _0222AA3C - 2 ; case 7
|
|
_0222AA4C:
|
|
mov r0, #1
|
|
bx lr
|
|
_0222AA50:
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov45_0222AA28
|
|
|
|
thumb_func_start ov45_0222AA54
|
|
ov45_0222AA54: ; 0x0222AA54
|
|
add r0, #0x39
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222AA54
|
|
|
|
thumb_func_start ov45_0222AA5C
|
|
ov45_0222AA5C: ; 0x0222AA5C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrh r0, [r4, #0x3a]
|
|
bl ov45_0222CD04
|
|
ldr r1, _0222AA80 ; =0x0000FFFF
|
|
cmp r0, r1
|
|
bne _0222AA7C
|
|
add r0, r4, #0
|
|
bl ov45_0222A9CC
|
|
cmp r0, #0
|
|
bne _0222AA7A
|
|
mov r0, #3
|
|
pop {r4, pc}
|
|
_0222AA7A:
|
|
mov r0, #6
|
|
_0222AA7C:
|
|
pop {r4, pc}
|
|
nop
|
|
_0222AA80: .word 0x0000FFFF
|
|
thumb_func_end ov45_0222AA5C
|
|
|
|
thumb_func_start ov45_0222AA84
|
|
ov45_0222AA84: ; 0x0222AA84
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrh r0, [r4, #0x3c]
|
|
cmp r0, #0xea
|
|
blo _0222AA92
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0222AA92:
|
|
add r1, r4, #0
|
|
add r1, #0x3e
|
|
ldrb r1, [r1]
|
|
bl ov45_0222D79C
|
|
cmp r0, #0
|
|
bne _0222AAA4
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0222AAA4:
|
|
ldrh r0, [r4, #0x3c]
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_0222AA84
|
|
|
|
thumb_func_start ov45_0222AAA8
|
|
ov45_0222AAA8: ; 0x0222AAA8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r1, r4, #0
|
|
add r1, #0x3e
|
|
ldrh r0, [r4, #0x3c]
|
|
ldrb r1, [r1]
|
|
bl ov45_0222D79C
|
|
cmp r0, #0
|
|
bne _0222AAC0
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0222AAC0:
|
|
add r4, #0x3e
|
|
ldrb r0, [r4]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222AAA8
|
|
|
|
thumb_func_start ov45_0222AAC8
|
|
ov45_0222AAC8: ; 0x0222AAC8
|
|
add r0, #0x41
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xff
|
|
bne _0222AAD4
|
|
mov r0, #0
|
|
bx lr
|
|
_0222AAD4:
|
|
cmp r0, #0x1b
|
|
blo _0222AADA
|
|
mov r0, #0
|
|
_0222AADA:
|
|
bx lr
|
|
thumb_func_end ov45_0222AAC8
|
|
|
|
thumb_func_start ov45_0222AADC
|
|
ov45_0222AADC: ; 0x0222AADC
|
|
add r0, #0x41
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xff
|
|
beq _0222AAE8
|
|
mov r0, #1
|
|
bx lr
|
|
_0222AAE8:
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov45_0222AADC
|
|
|
|
thumb_func_start ov45_0222AAEC
|
|
ov45_0222AAEC: ; 0x0222AAEC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
cmp r5, #2
|
|
blo _0222AAFA
|
|
bl GF_AssertFail
|
|
_0222AAFA:
|
|
lsl r0, r5, #1
|
|
add r0, r4, r0
|
|
add r0, #0x88
|
|
ldrh r0, [r0]
|
|
cmp r0, #0x12
|
|
blo _0222AB08
|
|
mov r0, #0
|
|
_0222AB08:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222AAEC
|
|
|
|
thumb_func_start ov45_0222AB0C
|
|
ov45_0222AB0C: ; 0x0222AB0C
|
|
add r2, r0, #0
|
|
add r2, #0x8c
|
|
add r0, #0x90
|
|
ldr r2, [r2]
|
|
ldr r0, [r0]
|
|
str r2, [r1]
|
|
str r0, [r1, #4]
|
|
bx lr
|
|
thumb_func_end ov45_0222AB0C
|
|
|
|
thumb_func_start ov45_0222AB1C
|
|
ov45_0222AB1C: ; 0x0222AB1C
|
|
ldr r1, _0222AB24 ; =0x00000508
|
|
ldr r0, [r0, r1]
|
|
bx lr
|
|
nop
|
|
_0222AB24: .word 0x00000508
|
|
thumb_func_end ov45_0222AB1C
|
|
|
|
thumb_func_start ov45_0222AB28
|
|
ov45_0222AB28: ; 0x0222AB28
|
|
mov r2, #0xf3
|
|
lsl r2, r2, #2
|
|
ldr r3, _0222AB34 ; =ov45_0222C95C
|
|
add r0, r0, r2
|
|
bx r3
|
|
nop
|
|
_0222AB34: .word ov45_0222C95C
|
|
thumb_func_end ov45_0222AB28
|
|
|
|
thumb_func_start ov45_0222AB38
|
|
ov45_0222AB38: ; 0x0222AB38
|
|
mov r2, #0xf3
|
|
lsl r2, r2, #2
|
|
add r0, r0, r2
|
|
ldr r3, _0222AB44 ; =MIi_CpuCopy8
|
|
mov r2, #0x14
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222AB44: .word MIi_CpuCopy8
|
|
thumb_func_end ov45_0222AB38
|
|
|
|
thumb_func_start ov45_0222AB48
|
|
ov45_0222AB48: ; 0x0222AB48
|
|
mov r2, #0xf9
|
|
lsl r2, r2, #2
|
|
ldr r3, _0222AB54 ; =ov45_0222C9D0
|
|
add r0, r0, r2
|
|
bx r3
|
|
nop
|
|
_0222AB54: .word ov45_0222C9D0
|
|
thumb_func_end ov45_0222AB48
|
|
|
|
thumb_func_start ov45_0222AB58
|
|
ov45_0222AB58: ; 0x0222AB58
|
|
mov r2, #0xf9
|
|
lsl r2, r2, #2
|
|
ldr r3, _0222AB64 ; =ov45_0222C9EC
|
|
add r0, r0, r2
|
|
bx r3
|
|
nop
|
|
_0222AB64: .word ov45_0222C9EC
|
|
thumb_func_end ov45_0222AB58
|
|
|
|
thumb_func_start ov45_0222AB68
|
|
ov45_0222AB68: ; 0x0222AB68
|
|
push {r3, lr}
|
|
sub sp, #8
|
|
add r0, sp, #0
|
|
bl ov45_0222EC3C
|
|
ldr r0, [sp]
|
|
add sp, #8
|
|
pop {r3, pc}
|
|
thumb_func_end ov45_0222AB68
|
|
|
|
thumb_func_start ov45_0222AB78
|
|
ov45_0222AB78: ; 0x0222AB78
|
|
push {r3, lr}
|
|
add r0, r1, #0
|
|
bl ov45_0222ECA4
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _0222AB8E
|
|
bl ov45_0222EC68
|
|
add r1, r0, #0
|
|
_0222AB8E:
|
|
add r0, r1, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222AB78
|
|
|
|
thumb_func_start ov45_0222AB94
|
|
ov45_0222AB94: ; 0x0222AB94
|
|
push {r3, r4, lr}
|
|
sub sp, #0x14
|
|
add r4, r2, #0
|
|
add r0, sp, #0
|
|
mov r2, #0
|
|
str r2, [r0]
|
|
str r2, [r0, #4]
|
|
str r2, [r0, #8]
|
|
str r2, [r0, #0xc]
|
|
str r2, [r0, #0x10]
|
|
add r0, sp, #0
|
|
strb r2, [r0, #0x11]
|
|
add r0, r1, #0
|
|
bl ov45_0222EC90
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
bl ov45_0222EC90
|
|
str r0, [sp, #4]
|
|
mov r1, #2
|
|
add r0, sp, #0
|
|
strb r1, [r0, #0x10]
|
|
mov r0, #4
|
|
add r1, sp, #0
|
|
mov r2, #0x14
|
|
bl ov45_0222EEF0
|
|
add sp, #0x14
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov45_0222AB94
|
|
|
|
thumb_func_start ov45_0222ABD0
|
|
ov45_0222ABD0: ; 0x0222ABD0
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
add r5, r1, #0
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
str r0, [r1, #8]
|
|
str r0, [r1, #0xc]
|
|
str r0, [r1, #0x10]
|
|
mov r1, #1
|
|
add r0, sp, #0
|
|
strb r1, [r0, #0x11]
|
|
add r0, r2, #0
|
|
add r4, r3, #0
|
|
bl ov45_0222EC90
|
|
str r0, [sp]
|
|
add r0, r5, #0
|
|
bl ov45_0222EC90
|
|
str r0, [sp, #4]
|
|
mov r1, #2
|
|
add r0, sp, #0
|
|
strb r1, [r0, #0x10]
|
|
strb r4, [r0, #0x12]
|
|
mov r0, #4
|
|
add r1, sp, #0
|
|
mov r2, #0x14
|
|
bl ov45_0222EEF0
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222ABD0
|
|
|
|
thumb_func_start ov45_0222AC14
|
|
ov45_0222AC14: ; 0x0222AC14
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
add r4, r1, #0
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
str r0, [r1, #8]
|
|
str r0, [r1, #0xc]
|
|
add r5, r2, #0
|
|
str r0, [r1, #0x10]
|
|
cmp r4, #6
|
|
bhi _0222ACB4
|
|
add r0, r4, r4
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222AC3A: ; jump table
|
|
.short _0222AC48 - _0222AC3A - 2 ; case 0
|
|
.short _0222AC48 - _0222AC3A - 2 ; case 1
|
|
.short _0222AC48 - _0222AC3A - 2 ; case 2
|
|
.short _0222AC4C - _0222AC3A - 2 ; case 3
|
|
.short _0222AC4C - _0222AC3A - 2 ; case 4
|
|
.short _0222AC50 - _0222AC3A - 2 ; case 5
|
|
.short _0222AC54 - _0222AC3A - 2 ; case 6
|
|
_0222AC48:
|
|
mov r1, #2
|
|
b _0222AC5C
|
|
_0222AC4C:
|
|
mov r1, #3
|
|
b _0222AC5C
|
|
_0222AC50:
|
|
mov r1, #4
|
|
b _0222AC5C
|
|
_0222AC54:
|
|
mov r1, #5
|
|
b _0222AC5C
|
|
thumb_func_end ov45_0222AC14
|
|
|
|
thumb_func_start ov45_0222AC58
|
|
ov45_0222AC58: ; 0x0222AC58
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
_0222AC5C:
|
|
add r0, sp, #0
|
|
strb r1, [r0, #0x11]
|
|
add r0, r3, #0
|
|
bl ov45_0222EC90
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x20]
|
|
bl ov45_0222EC90
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x24]
|
|
bl ov45_0222EC90
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0x28]
|
|
bl ov45_0222EC90
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0
|
|
strb r5, [r0, #0x10]
|
|
ldrb r1, [r0, #0x13]
|
|
mov r2, #0x7f
|
|
bic r1, r2
|
|
lsl r2, r4, #0x18
|
|
lsr r3, r2, #0x18
|
|
mov r2, #0x7f
|
|
and r2, r3
|
|
orr r1, r2
|
|
strb r1, [r0, #0x13]
|
|
ldrb r1, [r0, #0x13]
|
|
mov r2, #0x80
|
|
bic r1, r2
|
|
ldr r2, [sp, #0x2c]
|
|
lsl r2, r2, #0x18
|
|
lsr r2, r2, #0x18
|
|
lsl r2, r2, #0x1f
|
|
lsr r2, r2, #0x18
|
|
orr r1, r2
|
|
strb r1, [r0, #0x13]
|
|
mov r0, #4
|
|
add r1, sp, #0
|
|
mov r2, #0x14
|
|
bl ov45_0222EEF0
|
|
_0222ACB4:
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
thumb_func_end ov45_0222AC58
|
|
|
|
thumb_func_start ov45_0222ACB8
|
|
ov45_0222ACB8: ; 0x0222ACB8
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
add r5, r1, #0
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
str r0, [r1, #8]
|
|
str r0, [r1, #0xc]
|
|
add r4, r2, #0
|
|
str r0, [r1, #0x10]
|
|
cmp r5, #0
|
|
beq _0222ACDA
|
|
cmp r5, #1
|
|
beq _0222ACDA
|
|
cmp r5, #2
|
|
bne _0222AD28
|
|
_0222ACDA:
|
|
mov r1, #8
|
|
add r0, sp, #0
|
|
strb r1, [r0, #0x11]
|
|
add r0, r3, #0
|
|
bl ov45_0222EC90
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0x20]
|
|
bl ov45_0222EC90
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #0x24]
|
|
bl ov45_0222EC90
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0x28]
|
|
bl ov45_0222EC90
|
|
str r0, [sp, #0xc]
|
|
add r0, sp, #0
|
|
strb r4, [r0, #0x10]
|
|
ldrb r1, [r0, #0x13]
|
|
mov r2, #0x7f
|
|
bic r1, r2
|
|
lsl r2, r5, #0x18
|
|
lsr r3, r2, #0x18
|
|
mov r2, #0x7f
|
|
and r2, r3
|
|
orr r1, r2
|
|
strb r1, [r0, #0x13]
|
|
ldrb r2, [r0, #0x13]
|
|
mov r1, #0x80
|
|
bic r2, r1
|
|
strb r2, [r0, #0x13]
|
|
mov r0, #4
|
|
add r1, sp, #0
|
|
mov r2, #0x14
|
|
bl ov45_0222EEF0
|
|
_0222AD28:
|
|
add sp, #0x14
|
|
pop {r4, r5, pc}
|
|
thumb_func_end ov45_0222ACB8
|
|
|
|
thumb_func_start ov45_0222AD2C
|
|
ov45_0222AD2C: ; 0x0222AD2C
|
|
push {r3, lr}
|
|
mov r0, #3
|
|
bl ov45_0222ECDC
|
|
cmp r0, #5
|
|
blo _0222AD3A
|
|
mov r0, #0
|
|
_0222AD3A:
|
|
pop {r3, pc}
|
|
thumb_func_end ov45_0222AD2C
|
|
|
|
thumb_func_start ov45_0222AD3C
|
|
ov45_0222AD3C: ; 0x0222AD3C
|
|
push {r3, lr}
|
|
mov r0, #2
|
|
bl ov45_0222ECDC
|
|
cmp r0, #5
|
|
blo _0222AD4A
|
|
mov r0, #0
|
|
_0222AD4A:
|
|
pop {r3, pc}
|
|
thumb_func_end ov45_0222AD3C
|
|
|
|
thumb_func_start ov45_0222AD4C
|
|
ov45_0222AD4C: ; 0x0222AD4C
|
|
push {r3, lr}
|
|
mov r0, #5
|
|
bl ov45_0222ECDC
|
|
add r0, #0x1e
|
|
pop {r3, pc}
|
|
thumb_func_end ov45_0222AD4C
|
|
|
|
thumb_func_start ov45_0222AD58
|
|
ov45_0222AD58: ; 0x0222AD58
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x14
|
|
blo _0222AD66
|
|
bl GF_AssertFail
|
|
_0222AD66:
|
|
mov r0, #0x7a
|
|
add r1, r5, r4
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r1, r0]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222AD58
|
|
|
|
thumb_func_start ov45_0222AD70
|
|
ov45_0222AD70: ; 0x0222AD70
|
|
push {r3, lr}
|
|
str r1, [sp]
|
|
mov r0, #5
|
|
add r1, sp, #0
|
|
mov r2, #4
|
|
bl ov45_0222EEF0
|
|
pop {r3, pc}
|
|
thumb_func_end ov45_0222AD70
|
|
|
|
thumb_func_start ov45_0222AD80
|
|
ov45_0222AD80: ; 0x0222AD80
|
|
mov r2, #0x83
|
|
lsl r2, r2, #2
|
|
ldr r3, _0222AD8C ; =ov45_0222C4E4
|
|
add r0, r0, r2
|
|
bx r3
|
|
nop
|
|
_0222AD8C: .word ov45_0222C4E4
|
|
thumb_func_end ov45_0222AD80
|
|
|
|
thumb_func_start ov45_0222AD90
|
|
ov45_0222AD90: ; 0x0222AD90
|
|
mov r2, #0x83
|
|
lsl r2, r2, #2
|
|
ldr r3, _0222AD9C ; =ov45_0222C4FC
|
|
add r0, r0, r2
|
|
bx r3
|
|
nop
|
|
_0222AD9C: .word ov45_0222C4FC
|
|
thumb_func_end ov45_0222AD90
|
|
|
|
thumb_func_start ov45_0222ADA0
|
|
ov45_0222ADA0: ; 0x0222ADA0
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #4
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222ADA0
|
|
|
|
thumb_func_start ov45_0222ADA8
|
|
ov45_0222ADA8: ; 0x0222ADA8
|
|
mov r2, #0x83
|
|
lsl r2, r2, #2
|
|
ldr r3, _0222ADB4 ; =ov45_0222C5B4
|
|
add r0, r0, r2
|
|
bx r3
|
|
nop
|
|
_0222ADB4: .word ov45_0222C5B4
|
|
thumb_func_end ov45_0222ADA8
|
|
|
|
thumb_func_start ov45_0222ADB8
|
|
ov45_0222ADB8: ; 0x0222ADB8
|
|
mov r3, #0x83
|
|
lsl r3, r3, #2
|
|
add r0, r0, r3
|
|
ldr r3, _0222ADC4 ; =ov45_0222C408
|
|
bx r3
|
|
nop
|
|
_0222ADC4: .word ov45_0222C408
|
|
thumb_func_end ov45_0222ADB8
|
|
|
|
thumb_func_start ov45_0222ADC8
|
|
ov45_0222ADC8: ; 0x0222ADC8
|
|
mov r2, #0x83
|
|
lsl r2, r2, #2
|
|
ldr r3, _0222ADD4 ; =ov45_0222C480
|
|
add r0, r0, r2
|
|
bx r3
|
|
nop
|
|
_0222ADD4: .word ov45_0222C480
|
|
thumb_func_end ov45_0222ADC8
|
|
|
|
thumb_func_start ov45_0222ADD8
|
|
ov45_0222ADD8: ; 0x0222ADD8
|
|
mov r2, #0x83
|
|
lsl r2, r2, #2
|
|
ldr r3, _0222ADE4 ; =ov45_0222C514
|
|
add r0, r0, r2
|
|
bx r3
|
|
nop
|
|
_0222ADE4: .word ov45_0222C514
|
|
thumb_func_end ov45_0222ADD8
|
|
|
|
thumb_func_start ov45_0222ADE8
|
|
ov45_0222ADE8: ; 0x0222ADE8
|
|
mov r2, #0x83
|
|
lsl r2, r2, #2
|
|
ldr r3, _0222ADF4 ; =ov45_0222C54C
|
|
add r0, r0, r2
|
|
bx r3
|
|
nop
|
|
_0222ADF4: .word ov45_0222C54C
|
|
thumb_func_end ov45_0222ADE8
|
|
|
|
thumb_func_start ov45_0222ADF8
|
|
ov45_0222ADF8: ; 0x0222ADF8
|
|
mov r2, #0x83
|
|
lsl r2, r2, #2
|
|
ldr r3, _0222AE04 ; =ov45_0222C580
|
|
add r0, r0, r2
|
|
bx r3
|
|
nop
|
|
_0222AE04: .word ov45_0222C580
|
|
thumb_func_end ov45_0222ADF8
|
|
|
|
thumb_func_start ov45_0222AE08
|
|
ov45_0222AE08: ; 0x0222AE08
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
add r6, r0, #0
|
|
mov r1, #3
|
|
add r4, r2, #0
|
|
bl _u32_div_f
|
|
str r0, [r5]
|
|
add r0, r6, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
str r1, [r4]
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222AE08
|
|
|
|
thumb_func_start ov45_0222AE24
|
|
ov45_0222AE24: ; 0x0222AE24
|
|
mov r3, #0x83
|
|
lsl r3, r3, #2
|
|
add r0, r0, r3
|
|
ldr r3, _0222AE30 ; =ov45_0222C5E8
|
|
bx r3
|
|
nop
|
|
_0222AE30: .word ov45_0222C5E8
|
|
thumb_func_end ov45_0222AE24
|
|
|
|
thumb_func_start ov45_0222AE34
|
|
ov45_0222AE34: ; 0x0222AE34
|
|
mov r2, #0x83
|
|
lsl r2, r2, #2
|
|
ldr r3, _0222AE40 ; =ov45_0222C658
|
|
add r0, r0, r2
|
|
bx r3
|
|
nop
|
|
_0222AE40: .word ov45_0222C658
|
|
thumb_func_end ov45_0222AE34
|
|
|
|
thumb_func_start ov45_0222AE44
|
|
ov45_0222AE44: ; 0x0222AE44
|
|
push {r3, lr}
|
|
mov r0, #6
|
|
add r1, sp, #0
|
|
mov r2, #4
|
|
bl ov45_0222EEF0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222AE44
|
|
|
|
thumb_func_start ov45_0222AE54
|
|
ov45_0222AE54: ; 0x0222AE54
|
|
push {r3, lr}
|
|
mov r0, #7
|
|
add r1, sp, #0
|
|
mov r2, #4
|
|
bl ov45_0222EEF0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222AE54
|
|
|
|
thumb_func_start ov45_0222AE64
|
|
ov45_0222AE64: ; 0x0222AE64
|
|
mov r1, #7
|
|
lsl r1, r1, #6
|
|
ldr r3, _0222AE70 ; =ov45_0222BD4C
|
|
add r0, r0, r1
|
|
bx r3
|
|
nop
|
|
_0222AE70: .word ov45_0222BD4C
|
|
thumb_func_end ov45_0222AE64
|
|
|
|
thumb_func_start ov45_0222AE74
|
|
ov45_0222AE74: ; 0x0222AE74
|
|
push {r3, r4, r5, lr}
|
|
ldr r2, _0222AED4 ; =0x000001CA
|
|
add r5, r0, #0
|
|
ldrb r2, [r5, r2]
|
|
add r4, r1, #0
|
|
cmp r2, #0
|
|
beq _0222AE86
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0222AE86:
|
|
bl ov45_0222A578
|
|
bl ov45_0222A920
|
|
cmp r0, #1
|
|
beq _0222AE96
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0222AE96:
|
|
mov r0, #0x71
|
|
lsl r0, r0, #2
|
|
strh r4, [r5, r0]
|
|
mov r2, #1
|
|
add r1, r0, #2
|
|
strb r2, [r5, r1]
|
|
add r1, r0, #6
|
|
sub r0, r0, #4
|
|
strb r2, [r5, r1]
|
|
add r0, r5, r0
|
|
mov r1, #0
|
|
bl ov45_0222BE00
|
|
add r0, r4, #0
|
|
bl ov45_0222EC90
|
|
mov r2, #0x1e
|
|
lsl r2, r2, #4
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
add r2, r5, r2
|
|
mov r3, #4
|
|
bl ov45_0222EF4C
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
add r0, r5, r0
|
|
bl ov45_0222BE48
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0222AED4: .word 0x000001CA
|
|
thumb_func_end ov45_0222AE74
|
|
|
|
thumb_func_start ov45_0222AED8
|
|
ov45_0222AED8: ; 0x0222AED8
|
|
push {r4, lr}
|
|
ldr r3, _0222AF78 ; =0x000001CA
|
|
add r4, r0, #0
|
|
ldrb r2, [r4, r3]
|
|
mov r0, #0
|
|
cmp r2, #1
|
|
bne _0222AEF2
|
|
sub r3, r3, #4
|
|
ldrb r3, [r4, r3]
|
|
cmp r3, #2
|
|
beq _0222AF00
|
|
mov r0, #1
|
|
b _0222AF00
|
|
_0222AEF2:
|
|
cmp r2, #2
|
|
bne _0222AF00
|
|
sub r3, r3, #4
|
|
ldrb r3, [r4, r3]
|
|
cmp r3, #3
|
|
beq _0222AF00
|
|
mov r0, #1
|
|
_0222AF00:
|
|
cmp r0, #0
|
|
beq _0222AF18
|
|
mov r0, #0x71
|
|
lsl r0, r0, #2
|
|
ldrh r0, [r4, r0]
|
|
bl ov45_0222EC90
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl ov45_0222BE28
|
|
pop {r4, pc}
|
|
_0222AF18:
|
|
cmp r2, #1
|
|
beq _0222AF22
|
|
cmp r2, #2
|
|
beq _0222AF2A
|
|
b _0222AF32
|
|
_0222AF22:
|
|
ldr r0, _0222AF7C ; =0x000001C6
|
|
mov r2, #3
|
|
strb r2, [r4, r0]
|
|
b _0222AF46
|
|
_0222AF2A:
|
|
ldr r0, _0222AF7C ; =0x000001C6
|
|
mov r2, #2
|
|
strb r2, [r4, r0]
|
|
b _0222AF46
|
|
_0222AF32:
|
|
mov r0, #0x71
|
|
lsl r0, r0, #2
|
|
ldrh r0, [r4, r0]
|
|
bl ov45_0222EC90
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl ov45_0222BE28
|
|
pop {r4, pc}
|
|
_0222AF46:
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
add r0, r4, r0
|
|
bl ov45_0222BE00
|
|
mov r0, #0x71
|
|
lsl r0, r0, #2
|
|
ldrh r0, [r4, r0]
|
|
bl ov45_0222EC90
|
|
mov r2, #0x1e
|
|
lsl r2, r2, #4
|
|
add r1, r0, #0
|
|
mov r0, #2
|
|
add r2, r4, r2
|
|
mov r3, #4
|
|
bl ov45_0222EF4C
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
add r0, r4, r0
|
|
bl ov45_0222BE48
|
|
pop {r4, pc}
|
|
nop
|
|
_0222AF78: .word 0x000001CA
|
|
_0222AF7C: .word 0x000001C6
|
|
thumb_func_end ov45_0222AED8
|
|
|
|
thumb_func_start ov45_0222AF80
|
|
ov45_0222AF80: ; 0x0222AF80
|
|
push {r4, lr}
|
|
ldr r1, _0222AFC0 ; =0x000001C6
|
|
add r4, r0, #0
|
|
ldrb r0, [r4, r1]
|
|
cmp r0, #0
|
|
beq _0222AFBE
|
|
add r0, r1, #4
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #1
|
|
bne _0222AFBE
|
|
add r0, r1, #0
|
|
mov r2, #0
|
|
add r0, #0x1c
|
|
strh r2, [r4, r0]
|
|
sub r0, r1, #2
|
|
ldrh r0, [r4, r0]
|
|
bl ov45_0222EC90
|
|
mov r2, #0x1e
|
|
lsl r2, r2, #4
|
|
add r1, r0, #0
|
|
mov r0, #3
|
|
add r2, r4, r2
|
|
mov r3, #4
|
|
bl ov45_0222EF4C
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
add r0, r4, r0
|
|
bl ov45_0222BD4C
|
|
_0222AFBE:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222AFC0: .word 0x000001C6
|
|
thumb_func_end ov45_0222AF80
|
|
|
|
thumb_func_start ov45_0222AFC4
|
|
ov45_0222AFC4: ; 0x0222AFC4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222AFF4 ; =0x000001C6
|
|
ldrb r1, [r4, r0]
|
|
cmp r1, #0
|
|
beq _0222AFF0
|
|
sub r0, r0, #2
|
|
ldrh r0, [r4, r0]
|
|
bl ov45_0222EC90
|
|
ldr r2, _0222AFF4 ; =0x000001C6
|
|
add r1, r0, #0
|
|
mov r3, #4
|
|
add r0, r2, #0
|
|
strb r3, [r4, r2]
|
|
add r0, #0x1c
|
|
add r2, #0x1a
|
|
strh r3, [r4, r0]
|
|
mov r0, #2
|
|
add r2, r4, r2
|
|
bl ov45_0222EF4C
|
|
_0222AFF0:
|
|
pop {r4, pc}
|
|
nop
|
|
_0222AFF4: .word 0x000001C6
|
|
thumb_func_end ov45_0222AFC4
|
|
|
|
thumb_func_start ov45_0222AFF8
|
|
ov45_0222AFF8: ; 0x0222AFF8
|
|
ldr r1, _0222B008 ; =0x000001CA
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #0
|
|
beq _0222B004
|
|
mov r0, #1
|
|
bx lr
|
|
_0222B004:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
_0222B008: .word 0x000001CA
|
|
thumb_func_end ov45_0222AFF8
|
|
|
|
thumb_func_start ov45_0222B00C
|
|
ov45_0222B00C: ; 0x0222B00C
|
|
ldr r1, _0222B01C ; =0x000001CA
|
|
ldrb r0, [r0, r1]
|
|
cmp r0, #2
|
|
bne _0222B018
|
|
mov r0, #1
|
|
bx lr
|
|
_0222B018:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
_0222B01C: .word 0x000001CA
|
|
thumb_func_end ov45_0222B00C
|
|
|
|
thumb_func_start ov45_0222B020
|
|
ov45_0222B020: ; 0x0222B020
|
|
mov r1, #0x71
|
|
lsl r1, r1, #2
|
|
ldrh r0, [r0, r1]
|
|
bx lr
|
|
thumb_func_end ov45_0222B020
|
|
|
|
thumb_func_start ov45_0222B028
|
|
ov45_0222B028: ; 0x0222B028
|
|
ldr r1, _0222B030 ; =0x000001CB
|
|
ldrb r0, [r0, r1]
|
|
bx lr
|
|
nop
|
|
_0222B030: .word 0x000001CB
|
|
thumb_func_end ov45_0222B028
|
|
|
|
thumb_func_start ov45_0222B034
|
|
ov45_0222B034: ; 0x0222B034
|
|
ldr r1, _0222B03C ; =0x000001C6
|
|
ldrb r0, [r0, r1]
|
|
bx lr
|
|
nop
|
|
_0222B03C: .word 0x000001C6
|
|
thumb_func_end ov45_0222B034
|
|
|
|
thumb_func_start ov45_0222B040
|
|
ov45_0222B040: ; 0x0222B040
|
|
mov r1, #0x72
|
|
lsl r1, r1, #2
|
|
ldrh r0, [r0, r1]
|
|
bx lr
|
|
thumb_func_end ov45_0222B040
|
|
|
|
thumb_func_start ov45_0222B048
|
|
ov45_0222B048: ; 0x0222B048
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x14
|
|
blo _0222B056
|
|
bl GF_AssertFail
|
|
_0222B056:
|
|
mov r0, #0x73
|
|
add r1, r5, r4
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #6
|
|
blo _0222B066
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0222B066:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222B048
|
|
|
|
thumb_func_start ov45_0222B06C
|
|
ov45_0222B06C: ; 0x0222B06C
|
|
push {r3, lr}
|
|
ldr r1, _0222B090 ; =0x000001C6
|
|
ldrb r2, [r0, r1]
|
|
cmp r2, #4
|
|
bne _0222B07A
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0222B07A:
|
|
sub r1, r1, #6
|
|
add r0, r0, r1
|
|
bl ov45_0222BE74
|
|
cmp r0, #0
|
|
bne _0222B08A
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0222B08A:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
nop
|
|
_0222B090: .word 0x000001C6
|
|
thumb_func_end ov45_0222B06C
|
|
|
|
thumb_func_start ov45_0222B094
|
|
ov45_0222B094: ; 0x0222B094
|
|
mov r1, #7
|
|
lsl r1, r1, #6
|
|
ldr r3, _0222B0A0 ; =ov45_0222BE94
|
|
add r0, r0, r1
|
|
bx r3
|
|
nop
|
|
_0222B0A0: .word ov45_0222BE94
|
|
thumb_func_end ov45_0222B094
|
|
|
|
thumb_func_start ov45_0222B0A4
|
|
ov45_0222B0A4: ; 0x0222B0A4
|
|
ldr r1, _0222B0AC ; =0x000001C7
|
|
mov r2, #1
|
|
strb r2, [r0, r1]
|
|
bx lr
|
|
.balign 4, 0
|
|
_0222B0AC: .word 0x000001C7
|
|
thumb_func_end ov45_0222B0A4
|
|
|
|
thumb_func_start ov45_0222B0B0
|
|
ov45_0222B0B0: ; 0x0222B0B0
|
|
ldr r1, _0222B0B8 ; =0x000001C7
|
|
ldrb r0, [r0, r1]
|
|
bx lr
|
|
nop
|
|
_0222B0B8: .word 0x000001C7
|
|
thumb_func_end ov45_0222B0B0
|
|
|
|
thumb_func_start ov45_0222B0BC
|
|
ov45_0222B0BC: ; 0x0222B0BC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov45_0222AFF8
|
|
cmp r0, #1
|
|
bne _0222B0D6
|
|
mov r1, #7
|
|
lsl r1, r1, #6
|
|
add r0, r4, r1
|
|
add r1, r1, #4
|
|
ldrh r1, [r4, r1]
|
|
bl ov45_0222BDCC
|
|
_0222B0D6:
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_0222B0BC
|
|
|
|
thumb_func_start ov45_0222B0D8
|
|
ov45_0222B0D8: ; 0x0222B0D8
|
|
mov r2, #7
|
|
lsl r2, r2, #6
|
|
ldr r3, _0222B0E4 ; =ov45_0222BDCC
|
|
add r0, r0, r2
|
|
bx r3
|
|
nop
|
|
_0222B0E4: .word ov45_0222BDCC
|
|
thumb_func_end ov45_0222B0D8
|
|
|
|
thumb_func_start ov45_0222B0E8
|
|
ov45_0222B0E8: ; 0x0222B0E8
|
|
mov r2, #7
|
|
lsl r2, r2, #6
|
|
ldr r3, _0222B0F4 ; =ov45_0222BD94
|
|
add r0, r0, r2
|
|
bx r3
|
|
nop
|
|
_0222B0F4: .word ov45_0222BD94
|
|
thumb_func_end ov45_0222B0E8
|
|
|
|
thumb_func_start ov45_0222B0F8
|
|
ov45_0222B0F8: ; 0x0222B0F8
|
|
push {r3, lr}
|
|
ldr r0, [r0]
|
|
bl sub_0202CF54
|
|
mov r1, #0x2f
|
|
bl sub_0202D0FC
|
|
pop {r3, pc}
|
|
thumb_func_end ov45_0222B0F8
|
|
|
|
thumb_func_start ov45_0222B108
|
|
ov45_0222B108: ; 0x0222B108
|
|
push {r3, lr}
|
|
ldr r0, [r0]
|
|
bl sub_0202CF54
|
|
mov r1, #0x77
|
|
bl sub_0202D0FC
|
|
pop {r3, pc}
|
|
thumb_func_end ov45_0222B108
|
|
|
|
thumb_func_start ov45_0222B118
|
|
ov45_0222B118: ; 0x0222B118
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #8
|
|
blt _0222B126
|
|
bl GF_AssertFail
|
|
_0222B126:
|
|
mov r0, #0xe9
|
|
mov r2, #1
|
|
add r1, r5, r4
|
|
lsl r0, r0, #2
|
|
strb r2, [r1, r0]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222B118
|
|
|
|
thumb_func_start ov45_0222B134
|
|
ov45_0222B134: ; 0x0222B134
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r4, #0
|
|
mov r6, #0xe9
|
|
add r5, r0, #0
|
|
add r7, r4, #0
|
|
lsl r6, r6, #2
|
|
_0222B140:
|
|
add r0, r5, r4
|
|
ldrb r0, [r0, r6]
|
|
cmp r0, #0
|
|
bne _0222B1A8
|
|
cmp r4, #7
|
|
bhi _0222B19E
|
|
add r0, r4, r4
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222B158: ; jump table
|
|
.short _0222B168 - _0222B158 - 2 ; case 0
|
|
.short _0222B168 - _0222B158 - 2 ; case 1
|
|
.short _0222B168 - _0222B158 - 2 ; case 2
|
|
.short _0222B17A - _0222B158 - 2 ; case 3
|
|
.short _0222B17A - _0222B158 - 2 ; case 4
|
|
.short _0222B17A - _0222B158 - 2 ; case 5
|
|
.short _0222B18C - _0222B158 - 2 ; case 6
|
|
.short _0222B19E - _0222B158 - 2 ; case 7
|
|
_0222B168:
|
|
add r0, r5, #0
|
|
bl ov45_0222A394
|
|
cmp r0, #1
|
|
bne _0222B176
|
|
add r0, r7, #0
|
|
b _0222B1A0
|
|
_0222B176:
|
|
mov r0, #1
|
|
b _0222B1A0
|
|
_0222B17A:
|
|
add r0, r5, #0
|
|
bl ov45_0222A330
|
|
cmp r0, #1
|
|
bne _0222B188
|
|
mov r0, #0
|
|
b _0222B1A0
|
|
_0222B188:
|
|
mov r0, #1
|
|
b _0222B1A0
|
|
_0222B18C:
|
|
add r0, r5, #0
|
|
bl ov45_0222A3A0
|
|
cmp r0, #1
|
|
bne _0222B19A
|
|
mov r0, #0
|
|
b _0222B1A0
|
|
_0222B19A:
|
|
mov r0, #1
|
|
b _0222B1A0
|
|
_0222B19E:
|
|
mov r0, #1
|
|
_0222B1A0:
|
|
cmp r0, #1
|
|
bne _0222B1A8
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222B1A8:
|
|
add r4, r4, #1
|
|
cmp r4, #8
|
|
blt _0222B140
|
|
mov r0, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222B134
|
|
|
|
thumb_func_start ov45_0222B1B4
|
|
ov45_0222B1B4: ; 0x0222B1B4
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0xeb
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov45_0222C900
|
|
add r5, r0, #0
|
|
add r0, r4, #0
|
|
bl ov45_0222A53C
|
|
add r1, r0, #0
|
|
add r0, r4, #0
|
|
bl ov45_0222AB28
|
|
cmp r0, #1
|
|
bne _0222B1D8
|
|
add r5, r5, #2
|
|
_0222B1D8:
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222B1B4
|
|
|
|
thumb_func_start ov45_0222B1DC
|
|
ov45_0222B1DC: ; 0x0222B1DC
|
|
ldr r1, _0222B1E4 ; =0x0000049C
|
|
ldr r3, _0222B1E8 ; =ov45_0222CB40
|
|
add r0, r0, r1
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222B1E4: .word 0x0000049C
|
|
_0222B1E8: .word ov45_0222CB40
|
|
thumb_func_end ov45_0222B1DC
|
|
|
|
thumb_func_start ov45_0222B1EC
|
|
ov45_0222B1EC: ; 0x0222B1EC
|
|
ldr r1, _0222B1F4 ; =0x0000049C
|
|
ldr r3, _0222B1F8 ; =ov45_0222CB3C
|
|
add r0, r0, r1
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222B1F4: .word 0x0000049C
|
|
_0222B1F8: .word ov45_0222CB3C
|
|
thumb_func_end ov45_0222B1EC
|
|
|
|
thumb_func_start ov45_0222B1FC
|
|
ov45_0222B1FC: ; 0x0222B1FC
|
|
add r3, r1, #0
|
|
ldr r1, _0222B218 ; =0x00000524
|
|
mov r2, #1
|
|
str r2, [r0, r1]
|
|
sub r1, #0x14
|
|
add r2, r0, r1
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldmia r3!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
bx lr
|
|
nop
|
|
_0222B218: .word 0x00000524
|
|
thumb_func_end ov45_0222B1FC
|
|
|
|
thumb_func_start ov45_0222B21C
|
|
ov45_0222B21C: ; 0x0222B21C
|
|
add r3, r1, #0
|
|
ldr r1, _0222B240 ; =0x00000524
|
|
ldr r2, [r0, r1]
|
|
cmp r2, #1
|
|
bne _0222B23A
|
|
sub r1, #0x14
|
|
add r2, r0, r1
|
|
ldmia r2!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldmia r2!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
ldr r0, [r2]
|
|
str r0, [r3]
|
|
mov r0, #1
|
|
bx lr
|
|
_0222B23A:
|
|
mov r0, #0
|
|
bx lr
|
|
nop
|
|
_0222B240: .word 0x00000524
|
|
thumb_func_end ov45_0222B21C
|
|
|
|
thumb_func_start ov45_0222B244
|
|
ov45_0222B244: ; 0x0222B244
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222B268 ; =0x000004B8
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _0222B254
|
|
bl GF_AssertFail
|
|
_0222B254:
|
|
ldr r0, [r4]
|
|
bl Sav2_PlayerData_GetProfileAddr
|
|
ldr r1, _0222B26C ; =0x00000528
|
|
ldr r1, [r4, r1]
|
|
bl sub_02078DD8
|
|
ldr r1, _0222B268 ; =0x000004B8
|
|
str r0, [r4, r1]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222B268: .word 0x000004B8
|
|
_0222B26C: .word 0x00000528
|
|
thumb_func_end ov45_0222B244
|
|
|
|
thumb_func_start ov45_0222B270
|
|
ov45_0222B270: ; 0x0222B270
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222B288 ; =0x000004B8
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0
|
|
beq _0222B286
|
|
bl sub_02078E28
|
|
ldr r0, _0222B288 ; =0x000004B8
|
|
mov r1, #0
|
|
str r1, [r4, r0]
|
|
_0222B286:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222B288: .word 0x000004B8
|
|
thumb_func_end ov45_0222B270
|
|
|
|
thumb_func_start ov45_0222B28C
|
|
ov45_0222B28C: ; 0x0222B28C
|
|
push {r3, r4}
|
|
mov r4, #0
|
|
cmp r1, #0
|
|
bls _0222B2AA
|
|
ldr r2, _0222B2B0 ; =0x0000FFFF
|
|
_0222B296:
|
|
ldrh r3, [r0]
|
|
cmp r3, r2
|
|
bne _0222B2A2
|
|
mov r0, #1
|
|
pop {r3, r4}
|
|
bx lr
|
|
_0222B2A2:
|
|
add r4, r4, #1
|
|
add r0, r0, #2
|
|
cmp r4, r1
|
|
blo _0222B296
|
|
_0222B2AA:
|
|
mov r0, #0
|
|
pop {r3, r4}
|
|
bx lr
|
|
.balign 4, 0
|
|
_0222B2B0: .word 0x0000FFFF
|
|
thumb_func_end ov45_0222B28C
|
|
|
|
thumb_func_start ov45_0222B2B4
|
|
ov45_0222B2B4: ; 0x0222B2B4
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r5, r0, #0
|
|
add r4, r2, #0
|
|
str r1, [sp]
|
|
cmp r3, #0
|
|
beq _0222B38A
|
|
ldr r2, _0222B460 ; =0x00000508
|
|
mov r1, #0x42
|
|
add r0, r4, r2
|
|
add r2, #0x20
|
|
lsl r1, r1, #2
|
|
ldr r2, [r4, r2]
|
|
add r1, r4, r1
|
|
bl ov45_0222BCE4
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4]
|
|
add r0, r4, r0
|
|
bl ov45_0222BADC
|
|
cmp r0, #0
|
|
bne _0222B2EA
|
|
ldr r0, _0222B464 ; =0x0000052C
|
|
mov r1, #1
|
|
str r1, [r4, r0]
|
|
_0222B2EA:
|
|
add r0, r5, #0
|
|
bl ov45_0222EC68
|
|
mov r2, #0x16
|
|
lsl r2, r2, #4
|
|
add r1, r0, #0
|
|
ldrb r2, [r4, r2]
|
|
ldr r0, [r4, #4]
|
|
mov r3, #3
|
|
bl ov45_0222D8C8
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
str r5, [r4, r0]
|
|
add r0, r5, #0
|
|
add r1, sp, #0xc
|
|
bl ov45_0222EA4C
|
|
mov r0, #5
|
|
lsl r0, r0, #6
|
|
add r0, r4, r0
|
|
add r1, sp, #0xc
|
|
bl ov45_0222D500
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov45_0222AA84
|
|
add r6, r0, #0
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov45_0222AAA8
|
|
add r7, r0, #0
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov45_0222AA28
|
|
cmp r6, #0
|
|
beq _0222B364
|
|
cmp r0, #1
|
|
bne _0222B364
|
|
mov r2, #5
|
|
ldr r3, _0222B468 ; =0x00000528
|
|
lsl r2, r2, #6
|
|
lsl r0, r6, #0x10
|
|
lsl r1, r7, #0x18
|
|
ldr r2, [r4, r2]
|
|
ldr r3, [r4, r3]
|
|
lsr r0, r0, #0x10
|
|
lsr r1, r1, #0x18
|
|
bl ov45_02230F94
|
|
mov r1, #0x51
|
|
lsl r1, r1, #2
|
|
str r0, [sp, #4]
|
|
str r0, [r4, r1]
|
|
b _0222B376
|
|
_0222B364:
|
|
mov r0, #0x51
|
|
mov r1, #0xc
|
|
lsl r0, r0, #2
|
|
strb r1, [r4, r0]
|
|
add r1, r0, #1
|
|
mov r2, #0
|
|
strb r2, [r4, r1]
|
|
add r0, r0, #2
|
|
strb r2, [r4, r0]
|
|
_0222B376:
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4]
|
|
add r0, r4, r0
|
|
bl ov45_0222BAC4
|
|
add r0, r4, #0
|
|
bl ov45_0222BA3C
|
|
b _0222B3CE
|
|
_0222B38A:
|
|
bl ov45_0222EA78
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
bl ov45_0222EC68
|
|
add r7, r0, #0
|
|
ldr r0, [sp]
|
|
bl ov45_0222A9CC
|
|
add r2, r0, #0
|
|
ldr r0, [r4, #4]
|
|
add r1, r7, #0
|
|
mov r3, #0
|
|
bl ov45_0222D8C8
|
|
cmp r6, r5
|
|
bne _0222B3B6
|
|
ldr r0, [r4, #4]
|
|
add r1, r7, #0
|
|
bl ov45_0222D8F0
|
|
_0222B3B6:
|
|
ldr r0, _0222B46C ; =0x000004BC
|
|
mov r2, #0
|
|
add r0, r4, r0
|
|
add r1, r5, #0
|
|
mvn r2, r2
|
|
bl ov45_0222CBD0
|
|
cmp r0, #0
|
|
beq _0222B3CE
|
|
add r0, r4, #0
|
|
bl ov45_0222BA3C
|
|
_0222B3CE:
|
|
add r0, r5, #0
|
|
bl ov45_0222EC68
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0xf8
|
|
ldr r1, [r0]
|
|
mov r0, #1
|
|
lsl r0, r6
|
|
orr r1, r0
|
|
add r0, r4, #0
|
|
add r0, #0xf8
|
|
str r1, [r0]
|
|
add r0, r5, #0
|
|
bl ov45_0222F484
|
|
cmp r0, #1
|
|
bne _0222B43E
|
|
mov r0, #0xf3
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
add r1, r6, #0
|
|
mov r2, #1
|
|
bl ov45_0222C944
|
|
str r6, [sp, #8]
|
|
mov r2, #0xf3
|
|
lsl r2, r2, #2
|
|
ldr r0, [r4, #4]
|
|
add r1, sp, #8
|
|
add r2, r4, r2
|
|
bl ov45_0222DC08
|
|
add r0, r5, #0
|
|
bl ov45_0222F4AC
|
|
add r3, r0, #0
|
|
beq _0222B42C
|
|
mov r0, #0xf9
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
add r1, r6, #0
|
|
mov r2, #1
|
|
bl ov45_0222C9A0
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0222B42C:
|
|
mov r0, #0xf9
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
add r1, r6, #0
|
|
mov r2, #0
|
|
bl ov45_0222C9A0
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
_0222B43E:
|
|
mov r0, #0xf3
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
add r1, r6, #0
|
|
mov r2, #0
|
|
bl ov45_0222C944
|
|
mov r0, #0xf9
|
|
lsl r0, r0, #2
|
|
mov r2, #0
|
|
add r0, r4, r0
|
|
add r1, r6, #0
|
|
add r3, r2, #0
|
|
bl ov45_0222C9A0
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0222B460: .word 0x00000508
|
|
_0222B464: .word 0x0000052C
|
|
_0222B468: .word 0x00000528
|
|
_0222B46C: .word 0x000004BC
|
|
thumb_func_end ov45_0222B2B4
|
|
|
|
thumb_func_start ov45_0222B470
|
|
ov45_0222B470: ; 0x0222B470
|
|
push {r4, r5, r6, lr}
|
|
add r6, r0, #0
|
|
add r5, r1, #0
|
|
bl ov45_0222E9E0
|
|
cmp r6, r0
|
|
beq _0222B528
|
|
add r0, r6, #0
|
|
bl ov45_0222EC68
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
bl ov45_0222AFF8
|
|
cmp r0, #1
|
|
bne _0222B4A4
|
|
add r0, r5, #0
|
|
bl ov45_0222B020
|
|
cmp r4, r0
|
|
bne _0222B4A4
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
add r0, r5, r0
|
|
bl ov45_0222BD5C
|
|
_0222B4A4:
|
|
ldr r0, [r5, #4]
|
|
add r1, r4, #0
|
|
bl ov45_0222D8D4
|
|
cmp r0, #0
|
|
beq _0222B4C2
|
|
add r0, r6, #0
|
|
bl ov45_0222EAD4
|
|
bl ov45_0222EC68
|
|
add r1, r0, #0
|
|
ldr r0, [r5, #4]
|
|
bl ov45_0222D8F0
|
|
_0222B4C2:
|
|
mov r0, #0xf3
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl ov45_0222C944
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
add r0, r5, r0
|
|
add r1, r4, #0
|
|
bl ov45_0222BDE8
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
add r0, r5, r0
|
|
add r1, r4, #0
|
|
bl ov45_0222BDB0
|
|
ldr r0, _0222B52C ; =0x000004BC
|
|
mov r2, #0
|
|
add r0, r5, r0
|
|
add r1, r6, #0
|
|
mvn r2, r2
|
|
bl ov45_0222CBD0
|
|
cmp r0, #0
|
|
beq _0222B500
|
|
add r0, r5, #0
|
|
bl ov45_0222BA3C
|
|
_0222B500:
|
|
mov r0, #0xf9
|
|
lsl r0, r0, #2
|
|
mov r2, #0
|
|
add r0, r5, r0
|
|
add r1, r4, #0
|
|
add r3, r2, #0
|
|
bl ov45_0222C9A0
|
|
add r0, r6, #0
|
|
bl ov45_0222EC68
|
|
add r1, r5, #0
|
|
add r1, #0xfc
|
|
ldr r2, [r1]
|
|
mov r1, #1
|
|
lsl r1, r0
|
|
add r0, r2, #0
|
|
orr r0, r1
|
|
add r5, #0xfc
|
|
str r0, [r5]
|
|
_0222B528:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0222B52C: .word 0x000004BC
|
|
thumb_func_end ov45_0222B470
|
|
|
|
thumb_func_start ov45_0222B530
|
|
ov45_0222B530: ; 0x0222B530
|
|
push {r4, r5, r6, lr}
|
|
add r5, r1, #0
|
|
add r4, r2, #0
|
|
bl ov45_0222EC68
|
|
mov r1, #0x41
|
|
add r6, r0, #0
|
|
lsl r1, r1, #2
|
|
mov r2, #1
|
|
ldr r0, [r4, r1]
|
|
lsl r2, r6
|
|
orr r0, r2
|
|
str r0, [r4, r1]
|
|
add r0, r5, #0
|
|
bl ov45_0222A920
|
|
cmp r0, #8
|
|
bhi _0222B57E
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222B560: ; jump table
|
|
.short _0222B57E - _0222B560 - 2 ; case 0
|
|
.short _0222B57E - _0222B560 - 2 ; case 1
|
|
.short _0222B572 - _0222B560 - 2 ; case 2
|
|
.short _0222B572 - _0222B560 - 2 ; case 3
|
|
.short _0222B572 - _0222B560 - 2 ; case 4
|
|
.short _0222B572 - _0222B560 - 2 ; case 5
|
|
.short _0222B572 - _0222B560 - 2 ; case 6
|
|
.short _0222B572 - _0222B560 - 2 ; case 7
|
|
.short _0222B572 - _0222B560 - 2 ; case 8
|
|
_0222B572:
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
add r0, r4, r0
|
|
add r1, r6, #0
|
|
bl ov45_0222BDE8
|
|
_0222B57E:
|
|
add r0, r5, #0
|
|
bl ov45_0222AADC
|
|
cmp r0, #1
|
|
bne _0222B59C
|
|
add r0, r5, #0
|
|
bl ov45_0222AAC8
|
|
add r1, r0, #0
|
|
mov r0, #0xeb
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
add r2, r6, #0
|
|
bl ov45_0222C8C8
|
|
_0222B59C:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222B530
|
|
|
|
thumb_func_start ov45_0222B5A0
|
|
ov45_0222B5A0: ; 0x0222B5A0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x18
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, sp, #0
|
|
mov r6, #0
|
|
bl ov45_022320C4
|
|
add r0, r4, #0
|
|
add r0, #0xd4
|
|
add r1, sp, #0
|
|
bl ov45_0222D500
|
|
add r0, sp, #0
|
|
ldmia r0!, {r2, r3}
|
|
add r0, r4, #0
|
|
add r0, #0xd8
|
|
stmia r0!, {r2, r3}
|
|
cmp r5, #0x13
|
|
bls _0222B5CA
|
|
b _0222B73A
|
|
_0222B5CA:
|
|
add r0, r5, r5
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222B5D6: ; jump table
|
|
.short _0222B5FE - _0222B5D6 - 2 ; case 0
|
|
.short _0222B64A - _0222B5D6 - 2 ; case 1
|
|
.short _0222B634 - _0222B5D6 - 2 ; case 2
|
|
.short _0222B634 - _0222B5D6 - 2 ; case 3
|
|
.short _0222B634 - _0222B5D6 - 2 ; case 4
|
|
.short _0222B634 - _0222B5D6 - 2 ; case 5
|
|
.short _0222B634 - _0222B5D6 - 2 ; case 6
|
|
.short _0222B672 - _0222B5D6 - 2 ; case 7
|
|
.short _0222B65C - _0222B5D6 - 2 ; case 8
|
|
.short _0222B65C - _0222B5D6 - 2 ; case 9
|
|
.short _0222B65C - _0222B5D6 - 2 ; case 10
|
|
.short _0222B69A - _0222B5D6 - 2 ; case 11
|
|
.short _0222B684 - _0222B5D6 - 2 ; case 12
|
|
.short _0222B684 - _0222B5D6 - 2 ; case 13
|
|
.short _0222B684 - _0222B5D6 - 2 ; case 14
|
|
.short _0222B71E - _0222B5D6 - 2 ; case 15
|
|
.short _0222B6AC - _0222B5D6 - 2 ; case 16
|
|
.short _0222B6D6 - _0222B5D6 - 2 ; case 17
|
|
.short _0222B6F4 - _0222B5D6 - 2 ; case 18
|
|
.short _0222B704 - _0222B5D6 - 2 ; case 19
|
|
_0222B5FE:
|
|
add r1, r4, #0
|
|
ldr r0, [r4, #4]
|
|
add r1, #0xd4
|
|
bl ov45_0222D8BC
|
|
add r0, r4, #0
|
|
add r0, #0xd8
|
|
ldmia r0!, {r2, r3}
|
|
add r0, r4, #0
|
|
mov r1, #0x7f
|
|
add r0, #0xe0
|
|
stmia r0!, {r2, r3}
|
|
lsl r1, r1, #2
|
|
ldrb r3, [r4, r1]
|
|
mov r0, #1
|
|
mov r2, #1
|
|
bic r3, r0
|
|
add r0, r3, #0
|
|
orr r0, r2
|
|
strb r0, [r4, r1]
|
|
add r0, r2, #0
|
|
add r0, #0xff
|
|
ldr r0, [r4, r0]
|
|
orr r0, r2
|
|
add r2, #0xff
|
|
str r0, [r4, r2]
|
|
b _0222B73A
|
|
_0222B634:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
bne _0222B64A
|
|
mov r1, #0x4b
|
|
lsl r1, r1, #2
|
|
mov r6, #1
|
|
add r0, r1, #0
|
|
str r6, [r4, #8]
|
|
add r0, #0xd6
|
|
mov r7, #0
|
|
strh r1, [r4, r0]
|
|
_0222B64A:
|
|
ldr r0, _0222B74C ; =0x000001FD
|
|
strb r5, [r4, r0]
|
|
sub r0, #0xfd
|
|
ldr r1, [r4, r0]
|
|
mov r0, #2
|
|
orr r1, r0
|
|
add r0, #0xfe
|
|
str r1, [r4, r0]
|
|
b _0222B73A
|
|
_0222B65C:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
bne _0222B672
|
|
mov r1, #0x4b
|
|
lsl r1, r1, #2
|
|
mov r6, #1
|
|
add r0, r1, #0
|
|
str r6, [r4, #8]
|
|
add r0, #0xd6
|
|
mov r7, #0
|
|
strh r1, [r4, r0]
|
|
_0222B672:
|
|
ldr r0, _0222B750 ; =0x000001FE
|
|
strb r5, [r4, r0]
|
|
sub r0, #0xfe
|
|
ldr r1, [r4, r0]
|
|
mov r0, #4
|
|
orr r1, r0
|
|
add r0, #0xfc
|
|
str r1, [r4, r0]
|
|
b _0222B73A
|
|
_0222B684:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
bne _0222B69A
|
|
mov r1, #0x4b
|
|
lsl r1, r1, #2
|
|
mov r6, #1
|
|
add r0, r1, #0
|
|
str r6, [r4, #8]
|
|
add r0, #0xd6
|
|
mov r7, #0
|
|
strh r1, [r4, r0]
|
|
_0222B69A:
|
|
ldr r0, _0222B754 ; =0x000001FF
|
|
strb r5, [r4, r0]
|
|
sub r0, #0xff
|
|
ldr r1, [r4, r0]
|
|
mov r0, #8
|
|
orr r1, r0
|
|
add r0, #0xf8
|
|
str r1, [r4, r0]
|
|
b _0222B73A
|
|
_0222B6AC:
|
|
mov r6, #1
|
|
mov r0, #6
|
|
add r7, r6, #0
|
|
bl ov45_0222ECDC
|
|
add r5, r0, #0
|
|
mov r0, #7
|
|
bl ov45_0222ECDC
|
|
add r2, r0, #0
|
|
ldr r0, _0222B758 ; =0x0000049C
|
|
add r1, r5, #0
|
|
add r0, r4, r0
|
|
bl ov45_0222CA7C
|
|
mov r1, #0x4b
|
|
lsl r1, r1, #2
|
|
add r0, r1, #0
|
|
add r0, #0xd8
|
|
strh r1, [r4, r0]
|
|
b _0222B73A
|
|
_0222B6D6:
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #2
|
|
ldrb r2, [r4, r1]
|
|
mov r0, #0xc
|
|
bic r2, r0
|
|
mov r0, #8
|
|
orr r2, r0
|
|
add r0, #0xf8
|
|
strb r2, [r4, r1]
|
|
ldr r1, [r4, r0]
|
|
mov r0, #0x20
|
|
orr r1, r0
|
|
add r0, #0xe0
|
|
str r1, [r4, r0]
|
|
b _0222B73A
|
|
_0222B6F4:
|
|
mov r1, #0x4b
|
|
lsl r1, r1, #2
|
|
add r0, r1, #0
|
|
add r0, #0xda
|
|
mov r6, #1
|
|
mov r7, #2
|
|
strh r1, [r4, r0]
|
|
b _0222B73A
|
|
_0222B704:
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #2
|
|
ldrb r2, [r4, r1]
|
|
mov r0, #0x80
|
|
mov r6, #1
|
|
orr r2, r0
|
|
strb r2, [r4, r1]
|
|
mov r1, #0xe1
|
|
lsl r1, r1, #2
|
|
lsl r0, r0, #2
|
|
mov r7, #4
|
|
strh r1, [r4, r0]
|
|
b _0222B73A
|
|
_0222B71E:
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #2
|
|
ldrb r2, [r4, r1]
|
|
mov r0, #0x60
|
|
bic r2, r0
|
|
mov r0, #0x20
|
|
orr r2, r0
|
|
add r0, #0xe0
|
|
strb r2, [r4, r1]
|
|
ldr r1, [r4, r0]
|
|
mov r0, #0x10
|
|
orr r1, r0
|
|
add r0, #0xf0
|
|
str r1, [r4, r0]
|
|
_0222B73A:
|
|
cmp r6, #0
|
|
beq _0222B746
|
|
add r0, r4, #0
|
|
add r1, r7, #0
|
|
bl ov45_0222C370
|
|
_0222B746:
|
|
add sp, #0x18
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222B74C: .word 0x000001FD
|
|
_0222B750: .word 0x000001FE
|
|
_0222B754: .word 0x000001FF
|
|
_0222B758: .word 0x0000049C
|
|
thumb_func_end ov45_0222B5A0
|
|
|
|
thumb_func_start ov45_0222B75C
|
|
ov45_0222B75C: ; 0x0222B75C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x42
|
|
add r4, r2, #0
|
|
add r6, r1, #0
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4]
|
|
add r0, r4, r0
|
|
bl ov45_0222BADC
|
|
cmp r0, #0
|
|
bne _0222B77C
|
|
ldr r0, _0222B798 ; =0x0000052C
|
|
mov r1, #1
|
|
str r1, [r4, r0]
|
|
pop {r4, r5, r6, pc}
|
|
_0222B77C:
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
bl ov45_0222BB00
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r1, [r4]
|
|
add r0, r4, r0
|
|
bl ov45_0222BAC4
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0222B798: .word 0x0000052C
|
|
thumb_func_end ov45_0222B75C
|
|
|
|
thumb_func_start ov45_0222B79C
|
|
ov45_0222B79C: ; 0x0222B79C
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
mov r1, #0
|
|
mov r2, #0xc8
|
|
bl memset
|
|
add r0, sp, #4
|
|
bl ov45_0222EC10
|
|
add r4, #0x20
|
|
add r0, r4, #0
|
|
bl ov45_0222AA84
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
bl ov45_0222AAA8
|
|
add r2, r0, #0
|
|
lsl r1, r6, #0x10
|
|
lsl r2, r2, #0x18
|
|
add r0, r5, #0
|
|
lsr r1, r1, #0x10
|
|
lsr r2, r2, #0x18
|
|
mov r3, #0
|
|
bl ov45_0222D638
|
|
mov r6, #0
|
|
add r4, r6, #0
|
|
_0222B7DA:
|
|
ldr r0, [sp, #8]
|
|
mov r1, #0
|
|
ldr r0, [r0, r4]
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _0222B80A
|
|
bl ov45_0222EA2C
|
|
str r0, [sp]
|
|
bl ov45_0222AA84
|
|
add r7, r0, #0
|
|
ldr r0, [sp]
|
|
bl ov45_0222AAA8
|
|
add r2, r0, #0
|
|
lsl r1, r7, #0x10
|
|
lsl r2, r2, #0x18
|
|
add r0, r5, #0
|
|
lsr r1, r1, #0x10
|
|
lsr r2, r2, #0x18
|
|
mov r3, #0
|
|
bl ov45_0222D638
|
|
_0222B80A:
|
|
add r6, r6, #1
|
|
add r4, r4, #4
|
|
cmp r6, #0x14
|
|
blt _0222B7DA
|
|
mov r4, #0
|
|
mov r7, #1
|
|
_0222B816:
|
|
lsl r0, r4, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl ov45_0222EDC4
|
|
lsl r0, r0, #0x18
|
|
lsr r6, r0, #0x18
|
|
lsl r0, r4, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl ov45_0222EDF0
|
|
add r2, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
add r3, r7, #0
|
|
bl ov45_0222D638
|
|
add r4, r4, #1
|
|
cmp r4, #0x14
|
|
blt _0222B816
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov45_0222B79C
|
|
|
|
thumb_func_start ov45_0222B840
|
|
ov45_0222B840: ; 0x0222B840
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
mov r0, #0x7f
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r4, r0]
|
|
lsl r1, r0, #0x1f
|
|
lsr r1, r1, #0x1f
|
|
cmp r1, #1
|
|
bne _0222B89E
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1f
|
|
bne _0222B89E
|
|
bl ov45_0222E96C
|
|
cmp r0, #2
|
|
bne _0222B89E
|
|
add r0, r4, #0
|
|
bl ov45_0222AD4C
|
|
add r2, r4, #0
|
|
add r2, #0xe0
|
|
ldr r3, [r2]
|
|
add r2, r4, #0
|
|
add r2, #0xe4
|
|
mov r1, #0
|
|
ldr r2, [r2]
|
|
add r5, r0, r3
|
|
adc r1, r2
|
|
add r0, r4, #0
|
|
add r0, #0xd8
|
|
ldr r3, [r0]
|
|
add r0, r4, #0
|
|
add r0, #0xdc
|
|
ldr r2, [r0]
|
|
sub r0, r5, r3
|
|
sbc r1, r2
|
|
bge _0222B89E
|
|
mov r1, #0x7f
|
|
lsl r1, r1, #2
|
|
ldrb r2, [r4, r1]
|
|
mov r0, #0x80
|
|
orr r2, r0
|
|
strb r2, [r4, r1]
|
|
mov r1, #0xe1
|
|
lsl r1, r1, #2
|
|
lsl r0, r0, #2
|
|
strh r1, [r4, r0]
|
|
_0222B89E:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222B840
|
|
|
|
thumb_func_start ov45_0222B8A0
|
|
ov45_0222B8A0: ; 0x0222B8A0
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
add r5, r0, #0
|
|
str r1, [sp]
|
|
add r0, r1, #0
|
|
add r4, r2, #0
|
|
bl Sav2_PlayerData_GetProfileAddr
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp]
|
|
bl SavArray_PlayerParty_get
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp]
|
|
bl sub_0202A634
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp]
|
|
bl sub_0202CA44
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp]
|
|
bl Sav2_SysInfo_RTC_get
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0x18]
|
|
add r1, r4, #0
|
|
bl sub_02028F68
|
|
add r1, r5, #0
|
|
add r4, r0, #0
|
|
add r1, #0x28
|
|
mov r2, #8
|
|
bl CopyStringToU16Array
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
mov r2, #8
|
|
bl CopyStringToU16Array
|
|
add r0, r4, #0
|
|
bl String_dtor
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
str r0, [r5, #0x20]
|
|
ldr r0, [sp, #0x18]
|
|
bl PlayerProfile_GetTrainerID
|
|
str r0, [r5, #0x24]
|
|
ldr r0, [sp, #0x14]
|
|
bl GetPartyCount
|
|
str r0, [sp, #4]
|
|
mov r4, #0
|
|
add r6, r5, #0
|
|
_0222B910:
|
|
ldr r0, [sp, #4]
|
|
cmp r4, r0
|
|
bge _0222B950
|
|
ldr r0, [sp, #0x14]
|
|
add r1, r4, #0
|
|
bl GetPartyMonByIndex
|
|
mov r1, #5
|
|
mov r2, #0
|
|
add r7, r0, #0
|
|
bl GetMonData
|
|
add r1, r6, #0
|
|
add r1, #0x40
|
|
strh r0, [r1]
|
|
add r0, r7, #0
|
|
mov r1, #0x70
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r1, r5, r4
|
|
add r1, #0x4c
|
|
strb r0, [r1]
|
|
add r0, r7, #0
|
|
mov r1, #0x4c
|
|
mov r2, #0
|
|
bl GetMonData
|
|
add r1, r5, r4
|
|
add r1, #0x52
|
|
strb r0, [r1]
|
|
b _0222B958
|
|
_0222B950:
|
|
add r1, r6, #0
|
|
ldr r0, _0222BA38 ; =0x000001EF
|
|
add r1, #0x40
|
|
strh r0, [r1]
|
|
_0222B958:
|
|
add r4, r4, #1
|
|
add r6, r6, #2
|
|
cmp r4, #6
|
|
blt _0222B910
|
|
ldr r0, [sp, #0x18]
|
|
bl PlayerProfile_GetTrainerGender
|
|
add r1, r5, #0
|
|
add r1, #0x58
|
|
strb r0, [r1]
|
|
ldr r0, [sp, #0x18]
|
|
bl sub_02029088
|
|
add r1, r5, #0
|
|
add r1, #0x59
|
|
strb r0, [r1]
|
|
ldr r0, [sp, #0x18]
|
|
bl sub_0202903C
|
|
add r1, r5, #0
|
|
add r1, #0x5a
|
|
strh r0, [r1]
|
|
add r0, r5, #0
|
|
add r0, #0x5a
|
|
ldrh r0, [r0]
|
|
bl ov45_0222CCE4
|
|
add r1, r5, #0
|
|
add r1, #0x5a
|
|
strh r0, [r1]
|
|
ldr r0, [sp, #0x10]
|
|
bl sub_0202CA8C
|
|
add r1, r5, #0
|
|
add r1, #0x5c
|
|
strh r0, [r1]
|
|
ldr r0, [sp, #0x10]
|
|
bl sub_0202CA90
|
|
add r1, r5, #0
|
|
add r1, #0x5e
|
|
strb r0, [r1]
|
|
ldr r0, [sp, #0xc]
|
|
bl sub_0202A55C
|
|
add r1, r5, #0
|
|
add r1, #0x5f
|
|
strb r0, [r1]
|
|
ldr r0, [sp, #0x18]
|
|
bl sub_020290A0
|
|
add r1, r5, #0
|
|
add r1, #0x60
|
|
strb r0, [r1]
|
|
add r0, r5, #0
|
|
mov r1, #0xff
|
|
add r0, #0x61
|
|
strb r1, [r0]
|
|
add r1, r5, #0
|
|
mov r0, #0
|
|
add r1, #0x63
|
|
strb r0, [r1]
|
|
add r1, r5, #0
|
|
mov r2, #GAME_VERSION
|
|
add r1, #0x62
|
|
strb r2, [r1]
|
|
ldr r1, [sp, #8]
|
|
add r4, r5, #0
|
|
add r1, #0x24
|
|
str r1, [sp, #8]
|
|
ldmia r1!, {r2, r3}
|
|
str r1, [sp, #8]
|
|
add r1, r5, #0
|
|
add r1, #0x64
|
|
stmia r1!, {r2, r3}
|
|
mov r3, #0x18
|
|
add r2, r3, #0
|
|
sub r2, #0x19
|
|
_0222B9F4:
|
|
add r1, r5, r0
|
|
add r1, #0x6c
|
|
strb r3, [r1]
|
|
str r2, [r4, #0x78]
|
|
add r0, r0, #1
|
|
add r4, r4, #4
|
|
cmp r0, #0xc
|
|
blt _0222B9F4
|
|
mov r2, #0
|
|
add r3, r5, #0
|
|
add r1, r2, #0
|
|
_0222BA0A:
|
|
add r0, r3, #0
|
|
add r0, #0xa8
|
|
add r2, r2, #1
|
|
add r3, r3, #2
|
|
strh r1, [r0]
|
|
cmp r2, #2
|
|
blt _0222BA0A
|
|
mov r1, #0
|
|
add r0, r5, #0
|
|
mvn r1, r1
|
|
add r0, #0xac
|
|
str r1, [r0]
|
|
add r0, r5, #0
|
|
mov r1, #3
|
|
add r0, #0xb0
|
|
str r1, [r0]
|
|
ldr r1, [sp]
|
|
add r0, r5, #0
|
|
bl ov45_0222BAC4
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222BA38: .word 0x000001EF
|
|
thumb_func_end ov45_0222B8A0
|
|
|
|
thumb_func_start ov45_0222BA3C
|
|
ov45_0222BA3C: ; 0x0222BA3C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5]
|
|
add r0, r5, r0
|
|
bl ov45_0222BADC
|
|
cmp r0, #0
|
|
bne _0222BA58
|
|
ldr r0, _0222BABC ; =0x0000052C
|
|
mov r1, #1
|
|
str r1, [r5, r0]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222BA58:
|
|
ldr r7, _0222BAC0 ; =0x000004BC
|
|
mov r4, #0
|
|
add r6, r5, #0
|
|
_0222BA5E:
|
|
add r0, r5, r7
|
|
add r1, r4, #0
|
|
bl ov45_0222CC50
|
|
mov r1, #0x5d
|
|
add r2, r5, r4
|
|
lsl r1, r1, #2
|
|
strb r0, [r2, r1]
|
|
add r0, r5, r7
|
|
add r1, r4, #0
|
|
bl ov45_0222CC7C
|
|
mov r1, #6
|
|
lsl r1, r1, #6
|
|
str r0, [r6, r1]
|
|
add r4, r4, #1
|
|
add r6, r6, #4
|
|
cmp r4, #0xc
|
|
blt _0222BA5E
|
|
sub r1, #0x68
|
|
add r0, r5, r1
|
|
add r1, #0x18
|
|
add r1, r5, r1
|
|
mov r2, #0x10
|
|
bl MIi_CpuCopy8
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
bl ov45_0222E9F8
|
|
mov r1, #0x42
|
|
lsl r1, r1, #2
|
|
add r0, r5, r1
|
|
add r1, #0x28
|
|
add r1, r5, r1
|
|
mov r2, #0x10
|
|
bl MIi_CpuCopy8
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5]
|
|
add r0, r5, r0
|
|
bl ov45_0222BAC4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222BABC: .word 0x0000052C
|
|
_0222BAC0: .word 0x000004BC
|
|
thumb_func_end ov45_0222BA3C
|
|
|
|
thumb_func_start ov45_0222BAC4
|
|
ov45_0222BAC4: ; 0x0222BAC4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, r1, #0
|
|
add r1, r4, #0
|
|
add r1, #0x20
|
|
mov r2, #0x94
|
|
bl sub_020275C4
|
|
add r4, #0xb4
|
|
str r0, [r4]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BAC4
|
|
|
|
thumb_func_start ov45_0222BADC
|
|
ov45_0222BADC: ; 0x0222BADC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, r1, #0
|
|
add r1, r4, #0
|
|
add r1, #0x20
|
|
mov r2, #0x94
|
|
bl sub_020275C4
|
|
add r4, #0xb4
|
|
ldr r1, [r4]
|
|
cmp r0, r1
|
|
beq _0222BAFC
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0222BAFC:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_0222BADC
|
|
|
|
thumb_func_start ov45_0222BB00
|
|
ov45_0222BB00: ; 0x0222BB00
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r3, r5, #0
|
|
add r7, r2, #0
|
|
add r6, r4, #0
|
|
add r3, #0x20
|
|
mov r2, #0x12
|
|
_0222BB10:
|
|
ldmia r6!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _0222BB10
|
|
ldr r0, [r6]
|
|
cmp r7, #0x94
|
|
str r0, [r3]
|
|
bhi _0222BB2E
|
|
add r1, r5, #0
|
|
add r0, r4, #0
|
|
add r1, #0x20
|
|
add r2, r7, #0
|
|
bl MIi_CpuCopy8
|
|
b _0222BB3A
|
|
_0222BB2E:
|
|
add r1, r5, #0
|
|
add r0, r4, #0
|
|
add r1, #0x20
|
|
mov r2, #0x94
|
|
bl MIi_CpuCopy8
|
|
_0222BB3A:
|
|
add r4, #8
|
|
add r1, r5, #0
|
|
add r0, r4, #0
|
|
add r1, #0x10
|
|
mov r2, #0x10
|
|
bl MIi_CpuCopy8
|
|
add r0, r5, #0
|
|
add r5, #0x28
|
|
add r1, r5, #0
|
|
mov r2, #0x10
|
|
bl MIi_CpuCopy8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BB00
|
|
|
|
thumb_func_start ov45_0222BB58
|
|
ov45_0222BB58: ; 0x0222BB58
|
|
mov r1, #0
|
|
str r1, [r0, #8]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BB58
|
|
|
|
thumb_func_start ov45_0222BB60
|
|
ov45_0222BB60: ; 0x0222BB60
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
mov r1, #4
|
|
add r6, r2, #0
|
|
ldrsh r2, [r5, r1]
|
|
add r7, r3, #0
|
|
sub r0, r2, #1
|
|
bmi _0222BB8C
|
|
strh r0, [r5, #4]
|
|
ldrsh r1, [r5, r1]
|
|
mov r0, #0xd2
|
|
lsl r0, r0, #2
|
|
cmp r1, r0
|
|
bne _0222BBA6
|
|
mov r0, #0
|
|
mov r1, #0x7f
|
|
bl sub_02005F50
|
|
mov r0, #1
|
|
strb r0, [r5, #0xe]
|
|
b _0222BBA6
|
|
_0222BB8C:
|
|
cmp r2, #0
|
|
bne _0222BBA6
|
|
ldrb r2, [r5]
|
|
mov r0, #2
|
|
orr r0, r2
|
|
strb r0, [r5]
|
|
ldr r2, [r4, #8]
|
|
mov r0, #0x80
|
|
orr r0, r2
|
|
str r0, [r4, #8]
|
|
ldrsh r0, [r5, r1]
|
|
sub r0, r0, #1
|
|
strh r0, [r5, #4]
|
|
_0222BBA6:
|
|
mov r0, #6
|
|
ldrsh r2, [r5, r0]
|
|
sub r1, r2, #1
|
|
bmi _0222BBB2
|
|
strh r1, [r5, #6]
|
|
b _0222BBCC
|
|
_0222BBB2:
|
|
cmp r2, #0
|
|
bne _0222BBCC
|
|
ldr r2, [r4, #8]
|
|
mov r1, #4
|
|
orr r2, r1
|
|
mov r1, #8
|
|
orr r2, r1
|
|
mov r1, #2
|
|
orr r1, r2
|
|
str r1, [r4, #8]
|
|
ldrsh r0, [r5, r0]
|
|
sub r0, r0, #1
|
|
strh r0, [r5, #6]
|
|
_0222BBCC:
|
|
mov r0, #8
|
|
ldrsh r2, [r5, r0]
|
|
sub r1, r2, #1
|
|
bmi _0222BBD8
|
|
strh r1, [r5, #8]
|
|
b _0222BBFC
|
|
_0222BBD8:
|
|
cmp r2, #0
|
|
bne _0222BBFC
|
|
ldrb r1, [r5]
|
|
mov r2, #0xc
|
|
bic r1, r2
|
|
mov r2, #4
|
|
orr r1, r2
|
|
strb r1, [r5]
|
|
ldr r2, [r4, #8]
|
|
mov r1, #0x20
|
|
orr r1, r2
|
|
str r1, [r4, #8]
|
|
ldrsh r0, [r5, r0]
|
|
sub r0, r0, #1
|
|
strh r0, [r5, #8]
|
|
add r0, r7, #0
|
|
bl ov45_0222CA8C
|
|
_0222BBFC:
|
|
mov r0, #0xa
|
|
ldrsh r1, [r5, r0]
|
|
sub r0, r1, #1
|
|
bmi _0222BC08
|
|
strh r0, [r5, #0xa]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222BC08:
|
|
cmp r1, #0
|
|
bne _0222BC36
|
|
add r0, r6, #0
|
|
bl ov45_0222C3A8
|
|
ldrb r0, [r5, #0xc]
|
|
cmp r0, #0
|
|
bne _0222BC1E
|
|
ldr r0, _0222BC38 ; =0x00000481
|
|
bl sub_02005D48
|
|
_0222BC1E:
|
|
ldrb r1, [r5]
|
|
mov r0, #0x10
|
|
orr r0, r1
|
|
strb r0, [r5]
|
|
ldr r1, [r4, #8]
|
|
mov r0, #0x40
|
|
orr r0, r1
|
|
str r0, [r4, #8]
|
|
mov r0, #0xa
|
|
ldrsh r0, [r5, r0]
|
|
sub r0, r0, #1
|
|
strh r0, [r5, #0xa]
|
|
_0222BC36:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0222BC38: .word 0x00000481
|
|
thumb_func_end ov45_0222BB60
|
|
|
|
thumb_func_start ov45_0222BC3C
|
|
ov45_0222BC3C: ; 0x0222BC3C
|
|
ldrb r2, [r0]
|
|
mov r1, #1
|
|
bic r2, r1
|
|
strb r2, [r0]
|
|
ldrb r2, [r0]
|
|
mov r1, #2
|
|
bic r2, r1
|
|
strb r2, [r0]
|
|
ldrb r2, [r0]
|
|
mov r1, #0xc
|
|
bic r2, r1
|
|
strb r2, [r0]
|
|
ldrb r2, [r0]
|
|
mov r1, #0x10
|
|
bic r2, r1
|
|
strb r2, [r0]
|
|
ldrb r2, [r0]
|
|
mov r1, #0x60
|
|
bic r2, r1
|
|
strb r2, [r0]
|
|
ldrb r2, [r0]
|
|
mov r1, #0x80
|
|
bic r2, r1
|
|
strb r2, [r0]
|
|
mov r1, #1
|
|
strb r1, [r0, #1]
|
|
mov r1, #7
|
|
strb r1, [r0, #2]
|
|
mov r1, #0xb
|
|
strb r1, [r0, #3]
|
|
sub r1, #0xc
|
|
strh r1, [r0, #4]
|
|
strh r1, [r0, #6]
|
|
strh r1, [r0, #8]
|
|
strh r1, [r0, #0xa]
|
|
bx lr
|
|
thumb_func_end ov45_0222BC3C
|
|
|
|
thumb_func_start ov45_0222BC84
|
|
ov45_0222BC84: ; 0x0222BC84
|
|
push {r3, lr}
|
|
ldrb r0, [r0, #0xd]
|
|
cmp r0, #1
|
|
bne _0222BC96
|
|
mov r0, #7
|
|
mov r1, #0x2a
|
|
bl sub_02005B50
|
|
pop {r3, pc}
|
|
_0222BC96:
|
|
mov r0, #7
|
|
mov r1, #0x7f
|
|
bl sub_02005B50
|
|
pop {r3, pc}
|
|
thumb_func_end ov45_0222BC84
|
|
|
|
thumb_func_start ov45_0222BCA0
|
|
ov45_0222BCA0: ; 0x0222BCA0
|
|
mov r1, #0xe1
|
|
lsl r1, r1, #2
|
|
strh r1, [r0]
|
|
bx lr
|
|
thumb_func_end ov45_0222BCA0
|
|
|
|
thumb_func_start ov45_0222BCA8
|
|
ov45_0222BCA8: ; 0x0222BCA8
|
|
mov r1, #0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, #0
|
|
ble _0222BCB2
|
|
mov r1, #1
|
|
_0222BCB2:
|
|
add r0, r1, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BCA8
|
|
|
|
thumb_func_start ov45_0222BCB8
|
|
ov45_0222BCB8: ; 0x0222BCB8
|
|
mov r1, #0
|
|
ldrsh r1, [r0, r1]
|
|
cmp r1, #0
|
|
ble _0222BCC4
|
|
sub r1, r1, #1
|
|
strh r1, [r0]
|
|
_0222BCC4:
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BCB8
|
|
|
|
thumb_func_start ov45_0222BCC8
|
|
ov45_0222BCC8: ; 0x0222BCC8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, r1, #0
|
|
bl sub_02028ED0
|
|
str r0, [r4]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BCC8
|
|
|
|
thumb_func_start ov45_0222BCD8
|
|
ov45_0222BCD8: ; 0x0222BCD8
|
|
ldr r3, _0222BCE0 ; =FreeToHeap
|
|
ldr r0, [r0]
|
|
bx r3
|
|
nop
|
|
_0222BCE0: .word FreeToHeap
|
|
thumb_func_end ov45_0222BCD8
|
|
|
|
thumb_func_start ov45_0222BCE4
|
|
ov45_0222BCE4: ; 0x0222BCE4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r2, #0
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, r7, #0
|
|
mov r1, #0x94
|
|
bl AllocFromHeap
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
add r0, #0x20
|
|
add r1, r6, #0
|
|
mov r2, #0x94
|
|
bl sub_020D48B4
|
|
add r4, #0x10
|
|
add r1, r6, #0
|
|
add r0, r4, #0
|
|
add r1, #8
|
|
mov r2, #0x10
|
|
bl MIi_CpuCopy8
|
|
ldr r1, [r5]
|
|
add r0, r6, #0
|
|
add r2, r7, #0
|
|
bl ov45_0222A844
|
|
add r0, r6, #0
|
|
bl FreeToHeap
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BCE4
|
|
|
|
thumb_func_start ov45_0222BD24
|
|
ov45_0222BD24: ; 0x0222BD24
|
|
mov r1, #1
|
|
strb r1, [r0, #2]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BD24
|
|
|
|
thumb_func_start ov45_0222BD2C
|
|
ov45_0222BD2C: ; 0x0222BD2C
|
|
ldrb r0, [r0, #2]
|
|
bx lr
|
|
thumb_func_end ov45_0222BD2C
|
|
|
|
thumb_func_start ov45_0222BD30
|
|
ov45_0222BD30: ; 0x0222BD30
|
|
mov r2, #0x14
|
|
mov r1, #0
|
|
_0222BD34:
|
|
strb r1, [r0]
|
|
add r0, r0, #1
|
|
sub r2, r2, #1
|
|
bne _0222BD34
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BD30
|
|
|
|
thumb_func_start ov45_0222BD40
|
|
ov45_0222BD40: ; 0x0222BD40
|
|
ldr r3, _0222BD48 ; =memset
|
|
mov r1, #0
|
|
mov r2, #0x28
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222BD48: .word memset
|
|
thumb_func_end ov45_0222BD40
|
|
|
|
thumb_func_start ov45_0222BD4C
|
|
ov45_0222BD4C: ; 0x0222BD4C
|
|
mov r1, #0
|
|
strh r1, [r0, #4]
|
|
strb r1, [r0, #6]
|
|
ldr r3, _0222BD58 ; =ov45_0222BE54
|
|
strb r1, [r0, #0xa]
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222BD58: .word ov45_0222BE54
|
|
thumb_func_end ov45_0222BD4C
|
|
|
|
thumb_func_start ov45_0222BD5C
|
|
ov45_0222BD5C: ; 0x0222BD5C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
strh r1, [r4, #4]
|
|
mov r1, #4
|
|
strb r1, [r4, #6]
|
|
bl ov45_0222BE54
|
|
mov r0, #0
|
|
strb r0, [r4, #0xa]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BD5C
|
|
|
|
thumb_func_start ov45_0222BD74
|
|
ov45_0222BD74: ; 0x0222BD74
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x14
|
|
blo _0222BD82
|
|
bl GF_AssertFail
|
|
_0222BD82:
|
|
mov r0, #1
|
|
add r1, r0, #0
|
|
ldr r2, [r5]
|
|
lsl r1, r4
|
|
tst r1, r2
|
|
bne _0222BD90
|
|
mov r0, #0
|
|
_0222BD90:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BD74
|
|
|
|
thumb_func_start ov45_0222BD94
|
|
ov45_0222BD94: ; 0x0222BD94
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x14
|
|
blo _0222BDA2
|
|
bl GF_AssertFail
|
|
_0222BDA2:
|
|
mov r0, #1
|
|
ldr r1, [r5]
|
|
lsl r0, r4
|
|
orr r0, r1
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BD94
|
|
|
|
thumb_func_start ov45_0222BDB0
|
|
ov45_0222BDB0: ; 0x0222BDB0
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x14
|
|
blo _0222BDBE
|
|
bl GF_AssertFail
|
|
_0222BDBE:
|
|
mov r0, #1
|
|
lsl r0, r4
|
|
ldr r1, [r5]
|
|
mvn r0, r0
|
|
and r0, r1
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222BDB0
|
|
|
|
thumb_func_start ov45_0222BDCC
|
|
ov45_0222BDCC: ; 0x0222BDCC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x14
|
|
blo _0222BDDA
|
|
bl GF_AssertFail
|
|
_0222BDDA:
|
|
add r5, #0xc
|
|
ldrb r0, [r5, r4]
|
|
add r0, r0, #1
|
|
cmp r0, #6
|
|
bgt _0222BDE6
|
|
strb r0, [r5, r4]
|
|
_0222BDE6:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222BDCC
|
|
|
|
thumb_func_start ov45_0222BDE8
|
|
ov45_0222BDE8: ; 0x0222BDE8
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x14
|
|
blo _0222BDF6
|
|
bl GF_AssertFail
|
|
_0222BDF6:
|
|
mov r1, #0
|
|
add r0, r5, r4
|
|
strb r1, [r0, #0xc]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BDE8
|
|
|
|
thumb_func_start ov45_0222BE00
|
|
ov45_0222BE00: ; 0x0222BE00
|
|
ldrb r2, [r0, #6]
|
|
strh r2, [r0, #0x22]
|
|
strh r1, [r0, #0x20]
|
|
bx lr
|
|
thumb_func_end ov45_0222BE00
|
|
|
|
thumb_func_start ov45_0222BE08
|
|
ov45_0222BE08: ; 0x0222BE08
|
|
push {r4, lr}
|
|
ldr r4, _0222BE24 ; =0x000001E2
|
|
add r3, r0, #0
|
|
mov r0, #2
|
|
strh r0, [r3, r4]
|
|
sub r0, r4, #2
|
|
strh r2, [r3, r0]
|
|
sub r2, r4, #2
|
|
add r2, r3, r2
|
|
mov r0, #1
|
|
mov r3, #4
|
|
bl ov45_0222EF4C
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222BE24: .word 0x000001E2
|
|
thumb_func_end ov45_0222BE08
|
|
|
|
thumb_func_start ov45_0222BE28
|
|
ov45_0222BE28: ; 0x0222BE28
|
|
push {r4, lr}
|
|
ldr r2, _0222BE44 ; =0x000001C6
|
|
add r4, r0, #0
|
|
mov r3, #4
|
|
add r0, r2, #0
|
|
strb r3, [r4, r2]
|
|
add r0, #0x1c
|
|
add r2, #0x1a
|
|
strh r3, [r4, r0]
|
|
mov r0, #2
|
|
add r2, r4, r2
|
|
bl ov45_0222EF4C
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222BE44: .word 0x000001C6
|
|
thumb_func_end ov45_0222BE28
|
|
|
|
thumb_func_start ov45_0222BE48
|
|
ov45_0222BE48: ; 0x0222BE48
|
|
mov r1, #1
|
|
strh r1, [r0, #0x24]
|
|
mov r1, #0
|
|
strh r1, [r0, #0x26]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BE48
|
|
|
|
thumb_func_start ov45_0222BE54
|
|
ov45_0222BE54: ; 0x0222BE54
|
|
mov r1, #0
|
|
strh r1, [r0, #0x24]
|
|
strh r1, [r0, #0x26]
|
|
bx lr
|
|
thumb_func_end ov45_0222BE54
|
|
|
|
thumb_func_start ov45_0222BE5C
|
|
ov45_0222BE5C: ; 0x0222BE5C
|
|
ldrh r1, [r0, #0x24]
|
|
cmp r1, #1
|
|
bne _0222BE72
|
|
mov r1, #0x26
|
|
ldrsh r1, [r0, r1]
|
|
add r2, r1, #1
|
|
mov r1, #0xe1
|
|
lsl r1, r1, #2
|
|
cmp r2, r1
|
|
bgt _0222BE72
|
|
strh r2, [r0, #0x26]
|
|
_0222BE72:
|
|
bx lr
|
|
thumb_func_end ov45_0222BE5C
|
|
|
|
thumb_func_start ov45_0222BE74
|
|
ov45_0222BE74: ; 0x0222BE74
|
|
ldrh r1, [r0, #0x24]
|
|
cmp r1, #0
|
|
bne _0222BE7E
|
|
mov r0, #1
|
|
bx lr
|
|
_0222BE7E:
|
|
mov r1, #0x26
|
|
ldrsh r1, [r0, r1]
|
|
mov r0, #0xe1
|
|
lsl r0, r0, #2
|
|
cmp r1, r0
|
|
bge _0222BE8E
|
|
mov r0, #1
|
|
bx lr
|
|
_0222BE8E:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BE74
|
|
|
|
thumb_func_start ov45_0222BE94
|
|
ov45_0222BE94: ; 0x0222BE94
|
|
mov r1, #0x26
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222BE94
|
|
|
|
thumb_func_start ov45_0222BE9C
|
|
ov45_0222BE9C: ; 0x0222BE9C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r6, r0, #0
|
|
ldrb r0, [r1, #0x10]
|
|
str r1, [sp]
|
|
cmp r0, #2
|
|
bne _0222BF0E
|
|
mov r7, #0
|
|
add r4, r1, #0
|
|
add r5, r6, #0
|
|
_0222BEB0:
|
|
ldr r0, [r4]
|
|
bl ov45_0222EC68
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _0222BF0E
|
|
add r0, r6, #0
|
|
bl ov45_0222A578
|
|
add r1, r5, #0
|
|
ldr r2, _0222BF14 ; =0x00000528
|
|
add r1, #0xe8
|
|
ldr r1, [r1]
|
|
ldr r2, [r6, r2]
|
|
bl ov45_0222A844
|
|
add r7, r7, #1
|
|
add r4, r4, #4
|
|
add r5, r5, #4
|
|
cmp r7, #2
|
|
blt _0222BEB0
|
|
add r0, r6, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
str r0, [sp, #4]
|
|
add r0, r6, #0
|
|
add r0, #0xec
|
|
ldr r0, [r0]
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #4
|
|
strh r0, [r1, #8]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #4]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #4
|
|
strh r0, [r1, #0xa]
|
|
ldr r0, [r6, #4]
|
|
add r1, sp, #4
|
|
bl ov45_0222D940
|
|
_0222BF0E:
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222BF14: .word 0x00000528
|
|
thumb_func_end ov45_0222BE9C
|
|
|
|
thumb_func_start ov45_0222BF18
|
|
ov45_0222BF18: ; 0x0222BF18
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x14
|
|
add r6, r0, #0
|
|
ldrb r0, [r1, #0x10]
|
|
str r1, [sp]
|
|
cmp r0, #2
|
|
bne _0222BF90
|
|
mov r7, #0
|
|
add r4, r1, #0
|
|
add r5, r6, #0
|
|
_0222BF2C:
|
|
ldr r0, [r4]
|
|
bl ov45_0222EC68
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _0222BF90
|
|
add r0, r6, #0
|
|
bl ov45_0222A578
|
|
add r1, r5, #0
|
|
ldr r2, _0222BF94 ; =0x00000528
|
|
add r1, #0xe8
|
|
ldr r1, [r1]
|
|
ldr r2, [r6, r2]
|
|
bl ov45_0222A844
|
|
add r7, r7, #1
|
|
add r4, r4, #4
|
|
add r5, r5, #4
|
|
cmp r7, #2
|
|
blt _0222BF2C
|
|
add r0, r6, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
str r0, [sp, #4]
|
|
add r0, r6, #0
|
|
add r0, #0xec
|
|
ldr r0, [r0]
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #4
|
|
strh r0, [r1, #8]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #4]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #4
|
|
strh r0, [r1, #0xa]
|
|
ldr r0, [sp]
|
|
add r1, sp, #4
|
|
ldrb r0, [r0, #0x12]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r6, #4]
|
|
bl ov45_0222D990
|
|
_0222BF90:
|
|
add sp, #0x14
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0222BF94: .word 0x00000528
|
|
thumb_func_end ov45_0222BF18
|
|
|
|
thumb_func_start ov45_0222BF98
|
|
ov45_0222BF98: ; 0x0222BF98
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x40
|
|
add r6, r0, #0
|
|
ldrb r0, [r1, #0x10]
|
|
str r1, [sp]
|
|
cmp r0, #4
|
|
bhi _0222BFAA
|
|
cmp r0, #0
|
|
bne _0222BFAC
|
|
_0222BFAA:
|
|
b _0222C0C2
|
|
_0222BFAC:
|
|
add r0, r1, #0
|
|
ldrb r0, [r0, #0x13]
|
|
add r5, sp, #0x30
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1f
|
|
cmp r0, #1
|
|
bne _0222C010
|
|
add r0, r1, #0
|
|
mov r7, #0
|
|
str r0, [sp, #4]
|
|
add r4, r6, #0
|
|
_0222BFC2:
|
|
ldr r0, [sp]
|
|
ldrb r0, [r0, #0x10]
|
|
cmp r7, r0
|
|
bge _0222BFFA
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0]
|
|
bl ov45_0222EC68
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _0222C0C2
|
|
add r0, r6, #0
|
|
bl ov45_0222A578
|
|
add r1, r4, #0
|
|
ldr r2, _0222C0C8 ; =0x00000528
|
|
add r1, #0xe8
|
|
ldr r1, [r1]
|
|
ldr r2, [r6, r2]
|
|
bl ov45_0222A844
|
|
add r0, r4, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
str r0, [r5]
|
|
b _0222BFFE
|
|
_0222BFFA:
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
_0222BFFE:
|
|
ldr r0, [sp, #4]
|
|
add r7, r7, #1
|
|
add r0, r0, #4
|
|
str r0, [sp, #4]
|
|
add r4, r4, #4
|
|
add r5, r5, #4
|
|
cmp r7, #4
|
|
blt _0222BFC2
|
|
b _0222C060
|
|
_0222C010:
|
|
add r0, r1, #0
|
|
mov r7, #0
|
|
str r0, [sp, #8]
|
|
add r4, r6, #0
|
|
_0222C018:
|
|
cmp r7, #0
|
|
bne _0222C04C
|
|
ldr r0, [sp, #8]
|
|
ldr r0, [r0]
|
|
bl ov45_0222EC68
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _0222C0C2
|
|
add r0, r6, #0
|
|
bl ov45_0222A578
|
|
add r1, r4, #0
|
|
ldr r2, _0222C0C8 ; =0x00000528
|
|
add r1, #0xe8
|
|
ldr r1, [r1]
|
|
ldr r2, [r6, r2]
|
|
bl ov45_0222A844
|
|
add r0, r4, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
str r0, [r5]
|
|
b _0222C050
|
|
_0222C04C:
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
_0222C050:
|
|
ldr r0, [sp, #8]
|
|
add r7, r7, #1
|
|
add r0, r0, #4
|
|
str r0, [sp, #8]
|
|
add r4, r4, #4
|
|
add r5, r5, #4
|
|
cmp r7, #4
|
|
blt _0222C018
|
|
_0222C060:
|
|
ldr r0, [sp]
|
|
ldrb r0, [r0, #0x13]
|
|
lsl r0, r0, #0x19
|
|
lsr r0, r0, #0x19
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp]
|
|
ldrb r0, [r0, #0x10]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x30]
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x34]
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x38]
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #0x3c]
|
|
str r0, [sp, #0x20]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #0xc
|
|
strh r0, [r1, #0x18]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #4]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #0xc
|
|
strh r0, [r1, #0x1a]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #8]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #0xc
|
|
strh r0, [r1, #0x1c]
|
|
ldr r0, [sp]
|
|
ldr r0, [r0, #0xc]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #0xc
|
|
strh r0, [r1, #0x1e]
|
|
ldr r0, [sp]
|
|
add r1, sp, #0xc
|
|
ldrb r0, [r0, #0x13]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1f
|
|
str r0, [sp, #0x2c]
|
|
ldr r0, [r6, #4]
|
|
bl ov45_0222D9EC
|
|
_0222C0C2:
|
|
add sp, #0x40
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222C0C8: .word 0x00000528
|
|
thumb_func_end ov45_0222BF98
|
|
|
|
thumb_func_start ov45_0222C0CC
|
|
ov45_0222C0CC: ; 0x0222C0CC
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldrb r0, [r4, #0x10]
|
|
cmp r0, #8
|
|
bhi _0222C128
|
|
cmp r0, #0
|
|
beq _0222C128
|
|
ldr r0, [r4]
|
|
bl ov45_0222EC68
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _0222C128
|
|
add r0, r5, #0
|
|
bl ov45_0222A578
|
|
add r1, r5, #0
|
|
ldr r2, _0222C12C ; =0x00000528
|
|
add r1, #0xe8
|
|
ldr r1, [r1]
|
|
ldr r2, [r5, r2]
|
|
bl ov45_0222A844
|
|
ldrb r0, [r4, #0x13]
|
|
lsl r0, r0, #0x19
|
|
lsr r0, r0, #0x19
|
|
str r0, [sp]
|
|
ldrb r0, [r4, #0x10]
|
|
str r0, [sp, #4]
|
|
add r0, r5, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
str r0, [sp, #8]
|
|
ldr r0, [r4]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #0
|
|
strh r0, [r1, #0xc]
|
|
ldr r0, [r5, #4]
|
|
add r1, sp, #0
|
|
bl ov45_0222DA80
|
|
_0222C128:
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0222C12C: .word 0x00000528
|
|
thumb_func_end ov45_0222C0CC
|
|
|
|
thumb_func_start ov45_0222C130
|
|
ov45_0222C130: ; 0x0222C130
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x34
|
|
str r0, [sp]
|
|
ldrb r0, [r1, #0x10]
|
|
str r1, [sp, #4]
|
|
cmp r0, #4
|
|
bhi _0222C1E2
|
|
cmp r0, #0
|
|
beq _0222C1E2
|
|
ldr r4, [sp]
|
|
mov r7, #0
|
|
add r6, r1, #0
|
|
add r5, sp, #0x24
|
|
_0222C14A:
|
|
ldr r0, [sp, #4]
|
|
ldrb r0, [r0, #0x10]
|
|
cmp r7, r0
|
|
bge _0222C182
|
|
ldr r0, [r6]
|
|
bl ov45_0222EC68
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _0222C1E2
|
|
ldr r0, [sp]
|
|
bl ov45_0222A578
|
|
add r1, r4, #0
|
|
add r1, #0xe8
|
|
ldr r3, [sp]
|
|
ldr r2, _0222C1E8 ; =0x00000528
|
|
ldr r1, [r1]
|
|
ldr r2, [r3, r2]
|
|
bl ov45_0222A844
|
|
add r0, r4, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
str r0, [r5]
|
|
b _0222C186
|
|
_0222C182:
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
_0222C186:
|
|
add r7, r7, #1
|
|
add r6, r6, #4
|
|
add r4, r4, #4
|
|
add r5, r5, #4
|
|
cmp r7, #4
|
|
blt _0222C14A
|
|
ldr r0, [sp, #4]
|
|
ldrb r0, [r0, #0x10]
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0x24]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x28]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x2c]
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x30]
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #8
|
|
strh r0, [r1, #0x14]
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0, #4]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #8
|
|
strh r0, [r1, #0x16]
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0, #8]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #8
|
|
strh r0, [r1, #0x18]
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0, #0xc]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #8
|
|
strh r0, [r1, #0x1a]
|
|
ldr r0, [sp]
|
|
add r1, sp, #8
|
|
ldr r0, [r0, #4]
|
|
bl ov45_0222DAE0
|
|
_0222C1E2:
|
|
add sp, #0x34
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222C1E8: .word 0x00000528
|
|
thumb_func_end ov45_0222C130
|
|
|
|
thumb_func_start ov45_0222C1EC
|
|
ov45_0222C1EC: ; 0x0222C1EC
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x34
|
|
str r0, [sp]
|
|
ldrb r0, [r1, #0x10]
|
|
str r1, [sp, #4]
|
|
cmp r0, #4
|
|
bhi _0222C29E
|
|
cmp r0, #0
|
|
beq _0222C29E
|
|
ldr r4, [sp]
|
|
mov r7, #0
|
|
add r6, r1, #0
|
|
add r5, sp, #0x24
|
|
_0222C206:
|
|
ldr r0, [sp, #4]
|
|
ldrb r0, [r0, #0x10]
|
|
cmp r7, r0
|
|
bge _0222C23E
|
|
ldr r0, [r6]
|
|
bl ov45_0222EC68
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _0222C29E
|
|
ldr r0, [sp]
|
|
bl ov45_0222A578
|
|
add r1, r4, #0
|
|
add r1, #0xe8
|
|
ldr r3, [sp]
|
|
ldr r2, _0222C2A4 ; =0x00000528
|
|
ldr r1, [r1]
|
|
ldr r2, [r3, r2]
|
|
bl ov45_0222A844
|
|
add r0, r4, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
str r0, [r5]
|
|
b _0222C242
|
|
_0222C23E:
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
_0222C242:
|
|
add r7, r7, #1
|
|
add r6, r6, #4
|
|
add r4, r4, #4
|
|
add r5, r5, #4
|
|
cmp r7, #4
|
|
blt _0222C206
|
|
ldr r0, [sp, #4]
|
|
ldrb r0, [r0, #0x10]
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #0x24]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x28]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x2c]
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x30]
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #8
|
|
strh r0, [r1, #0x14]
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0, #4]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #8
|
|
strh r0, [r1, #0x16]
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0, #8]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #8
|
|
strh r0, [r1, #0x18]
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0, #0xc]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #8
|
|
strh r0, [r1, #0x1a]
|
|
ldr r0, [sp]
|
|
add r1, sp, #8
|
|
ldr r0, [r0, #4]
|
|
bl ov45_0222DB3C
|
|
_0222C29E:
|
|
add sp, #0x34
|
|
pop {r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222C2A4: .word 0x00000528
|
|
thumb_func_end ov45_0222C1EC
|
|
|
|
thumb_func_start ov45_0222C2A8
|
|
ov45_0222C2A8: ; 0x0222C2A8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x38
|
|
str r0, [sp]
|
|
ldrb r0, [r1, #0x10]
|
|
str r1, [sp, #4]
|
|
cmp r0, #4
|
|
bhi _0222C364
|
|
cmp r0, #0
|
|
beq _0222C364
|
|
ldr r4, [sp]
|
|
mov r7, #0
|
|
add r6, r1, #0
|
|
add r5, sp, #0x28
|
|
_0222C2C2:
|
|
ldr r0, [sp, #4]
|
|
ldrb r0, [r0, #0x10]
|
|
cmp r7, r0
|
|
bge _0222C2FA
|
|
ldr r0, [r6]
|
|
bl ov45_0222EC68
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _0222C364
|
|
ldr r0, [sp]
|
|
bl ov45_0222A578
|
|
add r1, r4, #0
|
|
add r1, #0xe8
|
|
ldr r3, [sp]
|
|
ldr r2, _0222C368 ; =0x00000528
|
|
ldr r1, [r1]
|
|
ldr r2, [r3, r2]
|
|
bl ov45_0222A844
|
|
add r0, r4, #0
|
|
add r0, #0xe8
|
|
ldr r0, [r0]
|
|
str r0, [r5]
|
|
b _0222C2FE
|
|
_0222C2FA:
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
_0222C2FE:
|
|
add r7, r7, #1
|
|
add r6, r6, #4
|
|
add r4, r4, #4
|
|
add r5, r5, #4
|
|
cmp r7, #4
|
|
blt _0222C2C2
|
|
ldr r0, [sp, #4]
|
|
ldrb r0, [r0, #0x13]
|
|
lsl r0, r0, #0x19
|
|
lsr r0, r0, #0x19
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp, #4]
|
|
ldrb r0, [r0, #0x10]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [sp, #0x28]
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [sp, #0x2c]
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [sp, #0x30]
|
|
str r0, [sp, #0x18]
|
|
ldr r0, [sp, #0x34]
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #8
|
|
strh r0, [r1, #0x18]
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0, #4]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #8
|
|
strh r0, [r1, #0x1a]
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0, #8]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #8
|
|
strh r0, [r1, #0x1c]
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0, #0xc]
|
|
bl ov45_0222EC68
|
|
add r1, sp, #8
|
|
strh r0, [r1, #0x1e]
|
|
ldr r0, [sp]
|
|
add r1, sp, #8
|
|
ldr r0, [r0, #4]
|
|
bl ov45_0222DC64
|
|
_0222C364:
|
|
add sp, #0x38
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0222C368: .word 0x00000528
|
|
thumb_func_end ov45_0222C2A8
|
|
|
|
thumb_func_start ov45_0222C36C
|
|
ov45_0222C36C: ; 0x0222C36C
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C36C
|
|
|
|
thumb_func_start ov45_0222C370
|
|
ov45_0222C370: ; 0x0222C370
|
|
push {r3, lr}
|
|
sub sp, #8
|
|
add r2, r0, #0
|
|
add r2, #0xd4
|
|
str r1, [sp, #4]
|
|
str r2, [sp]
|
|
ldr r0, [r0, #4]
|
|
add r1, sp, #0
|
|
bl ov45_0222DB98
|
|
add sp, #8
|
|
pop {r3, pc}
|
|
thumb_func_end ov45_0222C370
|
|
|
|
thumb_func_start ov45_0222C388
|
|
ov45_0222C388: ; 0x0222C388
|
|
push {r4, lr}
|
|
mov r2, #0x65
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
bl memset
|
|
mov r0, #0
|
|
add r4, #0x50
|
|
mvn r0, r0
|
|
add r1, r4, #0
|
|
mov r2, #0x6c
|
|
bl sub_020D47EC
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C388
|
|
|
|
thumb_func_start ov45_0222C3A8
|
|
ov45_0222C3A8: ; 0x0222C3A8
|
|
mov r1, #1
|
|
str r1, [r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C3A8
|
|
|
|
thumb_func_start ov45_0222C3B0
|
|
ov45_0222C3B0: ; 0x0222C3B0
|
|
push {r4, r5, r6, r7}
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
beq _0222C3FA
|
|
ldr r3, _0222C400 ; =0x02254A3C
|
|
mov r2, #0
|
|
add r4, r0, #0
|
|
mov r1, #1
|
|
mov r6, #2
|
|
_0222C3C2:
|
|
ldr r7, [r0, #4]
|
|
ldr r5, [r3]
|
|
cmp r7, r5
|
|
bne _0222C3CC
|
|
str r1, [r4, #0x2c]
|
|
_0222C3CC:
|
|
ldr r5, [r4, #0x2c]
|
|
cmp r5, #1
|
|
bne _0222C3E4
|
|
ldr r5, [r4, #8]
|
|
add r7, r5, #1
|
|
mov r5, #0x4b
|
|
lsl r5, r5, #4
|
|
cmp r7, r5
|
|
bgt _0222C3E2
|
|
str r7, [r4, #8]
|
|
b _0222C3E4
|
|
_0222C3E2:
|
|
str r6, [r4, #0x2c]
|
|
_0222C3E4:
|
|
add r2, r2, #1
|
|
add r3, r3, #4
|
|
add r4, r4, #4
|
|
cmp r2, #9
|
|
blt _0222C3C2
|
|
ldr r1, [r0, #4]
|
|
add r2, r1, #1
|
|
ldr r1, _0222C404 ; =0x000010E0
|
|
cmp r2, r1
|
|
bgt _0222C3FA
|
|
str r2, [r0, #4]
|
|
_0222C3FA:
|
|
pop {r4, r5, r6, r7}
|
|
bx lr
|
|
nop
|
|
_0222C400: .word 0x02254A3C
|
|
_0222C404: .word 0x000010E0
|
|
thumb_func_end ov45_0222C3B0
|
|
|
|
thumb_func_start ov45_0222C408
|
|
ov45_0222C408: ; 0x0222C408
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r6, r0, #0
|
|
str r1, [sp]
|
|
add r7, r2, #0
|
|
bl ov45_0222C5B4
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0222C476
|
|
mov r5, #0
|
|
str r5, [sp, #4]
|
|
_0222C422:
|
|
ldr r1, [sp, #4]
|
|
add r0, r6, #0
|
|
bl ov45_0222C4E4
|
|
cmp r0, #2
|
|
beq _0222C46A
|
|
mov r4, #0
|
|
_0222C430:
|
|
add r0, r6, #0
|
|
add r1, r4, r5
|
|
add r2, r7, #0
|
|
bl ov45_0222C61C
|
|
cmp r0, #0
|
|
bne _0222C464
|
|
add r0, r6, #0
|
|
add r1, r4, r5
|
|
bl ov45_0222C4B4
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0222C464
|
|
ldr r0, [sp, #4]
|
|
mov r1, #0xc
|
|
mul r1, r0
|
|
add r1, r6, r1
|
|
lsl r0, r4, #2
|
|
add r1, r1, r0
|
|
ldr r0, [sp]
|
|
add sp, #8
|
|
str r0, [r1, #0x50]
|
|
add r0, r4, r5
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222C464:
|
|
add r4, r4, #1
|
|
cmp r4, #3
|
|
blt _0222C430
|
|
_0222C46A:
|
|
ldr r0, [sp, #4]
|
|
add r5, r5, #3
|
|
add r0, r0, #1
|
|
str r0, [sp, #4]
|
|
cmp r0, #9
|
|
blt _0222C422
|
|
_0222C476:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C408
|
|
|
|
thumb_func_start ov45_0222C480
|
|
ov45_0222C480: ; 0x0222C480
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
bl ov45_0222C5B4
|
|
mov r1, #0
|
|
add r6, r0, #0
|
|
mvn r1, r1
|
|
cmp r6, r1
|
|
beq _0222C4B2
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
mov r2, #0xc
|
|
mul r2, r4
|
|
mov r0, #0
|
|
add r2, r5, r2
|
|
lsl r1, r1, #2
|
|
mvn r0, r0
|
|
add r1, r2, r1
|
|
str r0, [r1, #0x50]
|
|
_0222C4B2:
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222C480
|
|
|
|
thumb_func_start ov45_0222C4B4
|
|
ov45_0222C4B4: ; 0x0222C4B4
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x1b
|
|
blo _0222C4C2
|
|
bl GF_AssertFail
|
|
_0222C4C2:
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
mov r0, #0xc
|
|
mul r0, r6
|
|
add r2, r5, r0
|
|
lsl r0, r1, #2
|
|
add r0, r2, r0
|
|
ldr r0, [r0, #0x50]
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C4B4
|
|
|
|
thumb_func_start ov45_0222C4E4
|
|
ov45_0222C4E4: ; 0x0222C4E4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
cmp r5, #9
|
|
blo _0222C4F2
|
|
bl GF_AssertFail
|
|
_0222C4F2:
|
|
lsl r0, r5, #2
|
|
add r0, r4, r0
|
|
ldr r0, [r0, #0x2c]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C4E4
|
|
|
|
thumb_func_start ov45_0222C4FC
|
|
ov45_0222C4FC: ; 0x0222C4FC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
cmp r5, #9
|
|
blo _0222C50A
|
|
bl GF_AssertFail
|
|
_0222C50A:
|
|
lsl r0, r5, #2
|
|
add r0, r4, r0
|
|
ldr r0, [r0, #8]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C4FC
|
|
|
|
thumb_func_start ov45_0222C514
|
|
ov45_0222C514: ; 0x0222C514
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
bl ov45_0222C5B4
|
|
mov r1, #0
|
|
add r6, r0, #0
|
|
mvn r1, r1
|
|
cmp r6, r1
|
|
beq _0222C548
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
add r4, r0, #0
|
|
add r0, r6, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
mov r2, #0xc
|
|
mul r2, r4
|
|
add r2, r5, r2
|
|
lsl r1, r1, #2
|
|
add r2, r2, r1
|
|
mov r1, #0x4a
|
|
mov r0, #1
|
|
lsl r1, r1, #2
|
|
str r0, [r2, r1]
|
|
_0222C548:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C514
|
|
|
|
thumb_func_start ov45_0222C54C
|
|
ov45_0222C54C: ; 0x0222C54C
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x1b
|
|
blo _0222C55A
|
|
bl GF_AssertFail
|
|
_0222C55A:
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
mov r0, #0xc
|
|
mul r0, r6
|
|
add r2, r5, r0
|
|
lsl r0, r1, #2
|
|
add r1, r2, r0
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C54C
|
|
|
|
thumb_func_start ov45_0222C580
|
|
ov45_0222C580: ; 0x0222C580
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x1b
|
|
blo _0222C58E
|
|
bl GF_AssertFail
|
|
_0222C58E:
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
mov r2, #0xc
|
|
mul r2, r6
|
|
add r2, r5, r2
|
|
lsl r1, r1, #2
|
|
add r2, r2, r1
|
|
mov r1, #0x4a
|
|
mov r0, #0
|
|
lsl r1, r1, #2
|
|
str r0, [r2, r1]
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222C580
|
|
|
|
thumb_func_start ov45_0222C5B4
|
|
ov45_0222C5B4: ; 0x0222C5B4
|
|
push {r3, r4, r5, r6}
|
|
mov r4, #0
|
|
add r3, r4, #0
|
|
_0222C5BA:
|
|
add r5, r3, #0
|
|
add r6, r0, #0
|
|
_0222C5BE:
|
|
ldr r2, [r6, #0x50]
|
|
cmp r1, r2
|
|
bne _0222C5CE
|
|
lsl r0, r4, #1
|
|
add r0, r4, r0
|
|
add r0, r5, r0
|
|
pop {r3, r4, r5, r6}
|
|
bx lr
|
|
_0222C5CE:
|
|
add r5, r5, #1
|
|
add r6, r6, #4
|
|
cmp r5, #3
|
|
blt _0222C5BE
|
|
add r4, r4, #1
|
|
add r0, #0xc
|
|
cmp r4, #9
|
|
blt _0222C5BA
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, r4, r5, r6}
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C5B4
|
|
|
|
thumb_func_start ov45_0222C5E8
|
|
ov45_0222C5E8: ; 0x0222C5E8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
cmp r4, #0x1b
|
|
blo _0222C5F8
|
|
bl GF_AssertFail
|
|
_0222C5F8:
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
add r7, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
mov r2, #0xc
|
|
mul r2, r7
|
|
add r2, r5, r2
|
|
lsl r1, r1, #2
|
|
add r1, r2, r1
|
|
add r0, r6, #1
|
|
add r1, #0xbc
|
|
str r0, [r1]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov45_0222C5E8
|
|
|
|
thumb_func_start ov45_0222C61C
|
|
ov45_0222C61C: ; 0x0222C61C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
cmp r4, #0x1b
|
|
blo _0222C62C
|
|
bl GF_AssertFail
|
|
_0222C62C:
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
add r7, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
mov r0, #0xc
|
|
mul r0, r7
|
|
add r2, r5, r0
|
|
lsl r0, r1, #2
|
|
add r0, r2, r0
|
|
add r0, #0xbc
|
|
ldr r0, [r0]
|
|
cmp r0, r6
|
|
bhi _0222C654
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222C654:
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov45_0222C61C
|
|
|
|
thumb_func_start ov45_0222C658
|
|
ov45_0222C658: ; 0x0222C658
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x1b
|
|
blo _0222C666
|
|
bl GF_AssertFail
|
|
_0222C666:
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
add r6, r0, #0
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
mov r0, #0xc
|
|
mul r0, r6
|
|
add r2, r5, r0
|
|
lsl r0, r1, #2
|
|
add r0, r2, r0
|
|
add r0, #0xbc
|
|
ldr r0, [r0]
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222C658
|
|
|
|
thumb_func_start ov45_0222C688
|
|
ov45_0222C688: ; 0x0222C688
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
str r1, [sp]
|
|
add r5, r3, #0
|
|
bl ov45_0222EC68
|
|
add r6, r0, #0
|
|
mov r0, #0x42
|
|
lsl r0, r0, #2
|
|
ldr r1, [r5]
|
|
add r0, r5, r0
|
|
bl ov45_0222BADC
|
|
cmp r0, #0
|
|
bne _0222C6AC
|
|
ldr r0, _0222C734 ; =0x0000052C
|
|
mov r1, #1
|
|
str r1, [r5, r0]
|
|
_0222C6AC:
|
|
mov r0, #0x4a
|
|
lsl r0, r0, #2
|
|
add r0, r5, r0
|
|
bl ov45_0222A920
|
|
add r4, r0, #0
|
|
add r0, r5, #0
|
|
bl ov45_0222AFF8
|
|
cmp r4, #1
|
|
bne _0222C6E2
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r6, r1
|
|
beq _0222C6E2
|
|
ldr r1, [sp]
|
|
ldrh r1, [r1, #2]
|
|
cmp r1, #1
|
|
bne _0222C6E2
|
|
cmp r0, #1
|
|
beq _0222C6E2
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov45_0222B048
|
|
cmp r0, #0
|
|
bne _0222C6EE
|
|
_0222C6E2:
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
mov r2, #0
|
|
bl ov45_0222BE08
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222C6EE:
|
|
add r0, r5, #0
|
|
add r1, r7, #0
|
|
mov r2, #1
|
|
bl ov45_0222BE08
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
add r0, r5, r0
|
|
add r1, r6, #0
|
|
bl ov45_0222BD74
|
|
cmp r0, #0
|
|
bne _0222C70C
|
|
mov r1, #1
|
|
b _0222C70E
|
|
_0222C70C:
|
|
mov r1, #0
|
|
_0222C70E:
|
|
ldr r0, _0222C738 ; =0x000001CB
|
|
mov r2, #2
|
|
strb r1, [r5, r0]
|
|
mov r0, #0x71
|
|
lsl r0, r0, #2
|
|
strh r6, [r5, r0]
|
|
add r1, r0, #2
|
|
strb r2, [r5, r1]
|
|
add r1, r0, #6
|
|
strb r2, [r5, r1]
|
|
add r1, r0, #3
|
|
sub r0, r0, #4
|
|
mov r2, #0
|
|
add r0, r5, r0
|
|
strb r2, [r5, r1]
|
|
bl ov45_0222BE48
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222C734: .word 0x0000052C
|
|
_0222C738: .word 0x000001CB
|
|
thumb_func_end ov45_0222C688
|
|
|
|
thumb_func_start ov45_0222C73C
|
|
ov45_0222C73C: ; 0x0222C73C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r3, #0
|
|
bl ov45_0222EC68
|
|
ldr r2, _0222C790 ; =0x000001CA
|
|
add r1, r0, #0
|
|
ldrb r0, [r4, r2]
|
|
cmp r0, #0
|
|
beq _0222C78E
|
|
sub r0, r2, #6
|
|
ldrh r0, [r4, r0]
|
|
cmp r0, r1
|
|
bne _0222C78E
|
|
ldrh r0, [r5]
|
|
cmp r0, #1
|
|
bne _0222C77C
|
|
sub r2, #0xa
|
|
add r0, r4, r2
|
|
bl ov45_0222BD74
|
|
cmp r0, #0
|
|
bne _0222C76E
|
|
mov r1, #1
|
|
b _0222C770
|
|
_0222C76E:
|
|
mov r1, #0
|
|
_0222C770:
|
|
ldr r0, _0222C794 ; =0x000001CB
|
|
strb r1, [r4, r0]
|
|
ldr r0, _0222C798 ; =0x000001C6
|
|
mov r1, #2
|
|
strb r1, [r4, r0]
|
|
b _0222C784
|
|
_0222C77C:
|
|
sub r2, #0xa
|
|
add r0, r4, r2
|
|
bl ov45_0222BD4C
|
|
_0222C784:
|
|
mov r0, #7
|
|
lsl r0, r0, #6
|
|
add r0, r4, r0
|
|
bl ov45_0222BE54
|
|
_0222C78E:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0222C790: .word 0x000001CA
|
|
_0222C794: .word 0x000001CB
|
|
_0222C798: .word 0x000001C6
|
|
thumb_func_end ov45_0222C73C
|
|
|
|
thumb_func_start ov45_0222C79C
|
|
ov45_0222C79C: ; 0x0222C79C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
ldr r1, _0222C7F8 ; =0x000001CA
|
|
add r4, r3, #0
|
|
ldrb r1, [r4, r1]
|
|
cmp r1, #0
|
|
beq _0222C7F4
|
|
bl ov45_0222EC68
|
|
mov r1, #0x71
|
|
lsl r1, r1, #2
|
|
ldrh r2, [r4, r1]
|
|
cmp r2, r0
|
|
bne _0222C7E4
|
|
ldrh r0, [r5, #2]
|
|
ldr r2, _0222C7FC ; =0x0000FFFE
|
|
add r2, r0, r2
|
|
lsl r2, r2, #0x10
|
|
lsr r2, r2, #0x10
|
|
cmp r2, #1
|
|
bhi _0222C7DA
|
|
add r2, r1, #2
|
|
strb r0, [r4, r2]
|
|
ldrh r2, [r5]
|
|
add r0, r1, #4
|
|
strh r2, [r4, r0]
|
|
sub r0, r1, #4
|
|
add r0, r4, r0
|
|
bl ov45_0222BE54
|
|
pop {r3, r4, r5, pc}
|
|
_0222C7DA:
|
|
sub r0, r1, #4
|
|
add r0, r4, r0
|
|
bl ov45_0222BD5C
|
|
pop {r3, r4, r5, pc}
|
|
_0222C7E4:
|
|
mov r2, #0
|
|
mvn r2, r2
|
|
cmp r0, r2
|
|
bne _0222C7F4
|
|
sub r0, r1, #4
|
|
add r0, r4, r0
|
|
bl ov45_0222BD5C
|
|
_0222C7F4:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222C7F8: .word 0x000001CA
|
|
_0222C7FC: .word 0x0000FFFE
|
|
thumb_func_end ov45_0222C79C
|
|
|
|
thumb_func_start ov45_0222C800
|
|
ov45_0222C800: ; 0x0222C800
|
|
push {r4, lr}
|
|
ldr r1, _0222C824 ; =0x000001C6
|
|
add r4, r3, #0
|
|
ldrb r1, [r4, r1]
|
|
cmp r1, #0
|
|
beq _0222C822
|
|
bl ov45_0222EC68
|
|
mov r1, #0x71
|
|
lsl r1, r1, #2
|
|
ldrh r2, [r4, r1]
|
|
cmp r2, r0
|
|
bne _0222C822
|
|
sub r0, r1, #4
|
|
add r0, r4, r0
|
|
bl ov45_0222BD4C
|
|
_0222C822:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222C824: .word 0x000001C6
|
|
thumb_func_end ov45_0222C800
|
|
|
|
thumb_func_start ov45_0222C828
|
|
ov45_0222C828: ; 0x0222C828
|
|
push {r3, lr}
|
|
ldrb r2, [r1, #0x11]
|
|
add r0, r3, #0
|
|
lsl r3, r2, #2
|
|
ldr r2, _0222C838 ; =0x02254A60
|
|
ldr r2, [r2, r3]
|
|
blx r2
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222C838: .word 0x02254A60
|
|
thumb_func_end ov45_0222C828
|
|
|
|
thumb_func_start ov45_0222C83C
|
|
ov45_0222C83C: ; 0x0222C83C
|
|
push {r4, lr}
|
|
add r4, r3, #0
|
|
bl ov45_0222EC68
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _0222C856
|
|
add r1, r4, r0
|
|
mov r0, #0x7a
|
|
mov r2, #1
|
|
lsl r0, r0, #2
|
|
strb r2, [r1, r0]
|
|
_0222C856:
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_0222C83C
|
|
|
|
thumb_func_start ov45_0222C858
|
|
ov45_0222C858: ; 0x0222C858
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r3, #0
|
|
bl ov45_0222EC68
|
|
add r6, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r6, r0
|
|
beq _0222C888
|
|
mov r7, #0x83
|
|
mov r4, #0
|
|
lsl r7, r7, #2
|
|
_0222C870:
|
|
add r0, r5, r7
|
|
add r1, r6, #0
|
|
add r2, r4, #0
|
|
bl ov45_0222C408
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0222C888
|
|
add r4, r4, #1
|
|
cmp r4, #3
|
|
blt _0222C870
|
|
_0222C888:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C858
|
|
|
|
thumb_func_start ov45_0222C88C
|
|
ov45_0222C88C: ; 0x0222C88C
|
|
push {r4, lr}
|
|
add r4, r3, #0
|
|
bl ov45_0222EC68
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _0222C8A8
|
|
mov r0, #0x83
|
|
lsl r0, r0, #2
|
|
add r0, r4, r0
|
|
bl ov45_0222C514
|
|
_0222C8A8:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C88C
|
|
|
|
thumb_func_start ov45_0222C8AC
|
|
ov45_0222C8AC: ; 0x0222C8AC
|
|
push {r4, lr}
|
|
mov r1, #0
|
|
mov r2, #0x20
|
|
add r4, r0, #0
|
|
bl memset
|
|
mov r1, #0
|
|
mov r0, #0x64
|
|
_0222C8BC:
|
|
strb r0, [r4, r1]
|
|
add r1, r1, #1
|
|
cmp r1, #9
|
|
blt _0222C8BC
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C8AC
|
|
|
|
thumb_func_start ov45_0222C8C8
|
|
ov45_0222C8C8: ; 0x0222C8C8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r2, #0
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
cmp r4, #0x14
|
|
blo _0222C8D8
|
|
bl GF_AssertFail
|
|
_0222C8D8:
|
|
cmp r6, #0x1b
|
|
blo _0222C8E0
|
|
bl GF_AssertFail
|
|
_0222C8E0:
|
|
add r7, r5, #0
|
|
add r7, #0xc
|
|
ldrb r0, [r7, r4]
|
|
cmp r0, #0
|
|
bne _0222C8FC
|
|
add r0, r6, #0
|
|
mov r1, #3
|
|
bl _u32_div_f
|
|
ldrb r1, [r5, r0]
|
|
asr r1, r1, #1
|
|
strb r1, [r5, r0]
|
|
mov r0, #1
|
|
strb r0, [r7, r4]
|
|
_0222C8FC:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C8C8
|
|
|
|
thumb_func_start ov45_0222C900
|
|
ov45_0222C900: ; 0x0222C900
|
|
push {r3, r4, r5, lr}
|
|
mov r5, #0
|
|
add r4, r0, #0
|
|
add r1, r5, #0
|
|
_0222C908:
|
|
ldrb r0, [r4, r1]
|
|
add r1, r1, #1
|
|
add r5, r5, r0
|
|
cmp r1, #9
|
|
blt _0222C908
|
|
bl MTRandom
|
|
add r1, r5, #0
|
|
bl _u32_div_f
|
|
mov r3, #0
|
|
add r0, r3, #0
|
|
_0222C920:
|
|
cmp r3, r1
|
|
bhi _0222C932
|
|
ldrb r2, [r4, r0]
|
|
add r2, r3, r2
|
|
cmp r2, r1
|
|
bls _0222C932
|
|
lsl r1, r0, #1
|
|
add r0, r0, r1
|
|
pop {r3, r4, r5, pc}
|
|
_0222C932:
|
|
ldrb r2, [r4, r0]
|
|
add r0, r0, #1
|
|
add r3, r3, r2
|
|
cmp r0, #9
|
|
blt _0222C920
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222C900
|
|
|
|
thumb_func_start ov45_0222C944
|
|
ov45_0222C944: ; 0x0222C944
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
cmp r4, #0x14
|
|
blo _0222C954
|
|
bl GF_AssertFail
|
|
_0222C954:
|
|
cmp r4, #0x14
|
|
bhs _0222C95A
|
|
strb r6, [r5, r4]
|
|
_0222C95A:
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222C944
|
|
|
|
thumb_func_start ov45_0222C95C
|
|
ov45_0222C95C: ; 0x0222C95C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x14
|
|
blo _0222C96A
|
|
bl GF_AssertFail
|
|
_0222C96A:
|
|
cmp r4, #0x14
|
|
bhs _0222C972
|
|
ldrb r0, [r5, r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0222C972:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C95C
|
|
|
|
thumb_func_start ov45_0222C978
|
|
ov45_0222C978: ; 0x0222C978
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
mov r1, #0
|
|
mov r2, #0xb8
|
|
add r5, r0, #0
|
|
bl MIi_CpuFill8
|
|
add r0, r4, #0
|
|
bl sub_02015D14
|
|
add r5, #0xb4
|
|
str r0, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C978
|
|
|
|
thumb_func_start ov45_0222C994
|
|
ov45_0222C994: ; 0x0222C994
|
|
ldr r3, _0222C99C ; =sub_02015D54
|
|
add r0, #0xb4
|
|
ldr r0, [r0]
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222C99C: .word sub_02015D54
|
|
thumb_func_end ov45_0222C994
|
|
|
|
thumb_func_start ov45_0222C9A0
|
|
ov45_0222C9A0: ; 0x0222C9A0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
cmp r4, #0x14
|
|
blo _0222C9B2
|
|
bl GF_AssertFail
|
|
_0222C9B2:
|
|
cmp r4, #0x14
|
|
bhs _0222C9CE
|
|
strb r6, [r5, r4]
|
|
cmp r6, #1
|
|
bne _0222C9CE
|
|
add r0, r5, #0
|
|
add r0, #0xb4
|
|
ldr r0, [r0]
|
|
add r5, #0x14
|
|
lsl r2, r4, #3
|
|
add r1, r7, #0
|
|
add r2, r5, r2
|
|
bl ov45_0222CA10
|
|
_0222C9CE:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov45_0222C9A0
|
|
|
|
thumb_func_start ov45_0222C9D0
|
|
ov45_0222C9D0: ; 0x0222C9D0
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x14
|
|
blo _0222C9DE
|
|
bl GF_AssertFail
|
|
_0222C9DE:
|
|
cmp r4, #0x14
|
|
bhs _0222C9E6
|
|
ldrb r0, [r5, r4]
|
|
pop {r3, r4, r5, pc}
|
|
_0222C9E6:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222C9D0
|
|
|
|
thumb_func_start ov45_0222C9EC
|
|
ov45_0222C9EC: ; 0x0222C9EC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x14
|
|
blo _0222C9FA
|
|
bl GF_AssertFail
|
|
_0222C9FA:
|
|
cmp r4, #0x14
|
|
bhs _0222CA0C
|
|
ldrb r0, [r5, r4]
|
|
cmp r0, #0
|
|
beq _0222CA0C
|
|
add r5, #0x14
|
|
lsl r0, r4, #3
|
|
add r0, r5, r0
|
|
pop {r3, r4, r5, pc}
|
|
_0222CA0C:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222C9EC
|
|
|
|
thumb_func_start ov45_0222CA10
|
|
ov45_0222CA10: ; 0x0222CA10
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r4, r1, #0
|
|
add r6, r0, #0
|
|
add r5, r2, #0
|
|
bl sub_02015D68
|
|
add r7, r0, #0
|
|
str r4, [sp, #8]
|
|
add r0, sp, #8
|
|
ldrb r4, [r0]
|
|
ldrb r0, [r0, #3]
|
|
add r1, r7, #0
|
|
str r0, [sp]
|
|
add r0, r0, r4
|
|
bl _u32_div_f
|
|
add r0, r6, #0
|
|
bl sub_02015D6C
|
|
strh r0, [r5]
|
|
add r0, sp, #8
|
|
ldrb r0, [r0, #1]
|
|
add r1, r7, #0
|
|
str r0, [sp, #4]
|
|
add r0, r4, r0
|
|
bl _u32_div_f
|
|
add r0, r6, #0
|
|
bl sub_02015D6C
|
|
strh r0, [r5, #2]
|
|
add r0, sp, #8
|
|
ldrb r4, [r0, #2]
|
|
ldr r0, [sp, #4]
|
|
add r1, r7, #0
|
|
add r0, r0, r4
|
|
bl _u32_div_f
|
|
add r0, r6, #0
|
|
bl sub_02015D6C
|
|
strh r0, [r5, #4]
|
|
ldr r0, [sp]
|
|
add r1, r7, #0
|
|
add r0, r4, r0
|
|
bl _u32_div_f
|
|
add r0, r6, #0
|
|
bl sub_02015D6C
|
|
strh r0, [r5, #6]
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov45_0222CA10
|
|
|
|
thumb_func_start ov45_0222CA7C
|
|
ov45_0222CA7C: ; 0x0222CA7C
|
|
mov r3, #0
|
|
str r3, [r0]
|
|
sub r2, r2, r1
|
|
mov r1, #0x1e
|
|
str r3, [r0, #0xc]
|
|
mul r1, r2
|
|
str r1, [r0, #0x10]
|
|
bx lr
|
|
thumb_func_end ov45_0222CA7C
|
|
|
|
thumb_func_start ov45_0222CA8C
|
|
ov45_0222CA8C: ; 0x0222CA8C
|
|
mov r1, #1
|
|
str r1, [r0]
|
|
mov r1, #0
|
|
str r1, [r0, #0xc]
|
|
ldr r3, _0222CA9C ; =ov45_0222ECB8
|
|
add r0, r0, #4
|
|
bx r3
|
|
nop
|
|
_0222CA9C: .word ov45_0222ECB8
|
|
thumb_func_end ov45_0222CA8C
|
|
|
|
thumb_func_start ov45_0222CAA0
|
|
ov45_0222CAA0: ; 0x0222CAA0
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _0222CB32
|
|
add r0, sp, #0
|
|
bl ov45_0222ECB8
|
|
ldr r3, [sp]
|
|
ldr r0, [r4, #4]
|
|
ldr r1, [sp, #4]
|
|
ldr r2, [r4, #8]
|
|
sub r0, r3, r0
|
|
sbc r1, r2
|
|
mov r2, #0x1e
|
|
mov r3, #0
|
|
bl _ll_mul
|
|
ldr r2, [r4, #0xc]
|
|
asr r3, r2, #0x1f
|
|
sub r2, r2, r0
|
|
sbc r3, r1
|
|
bge _0222CAD2
|
|
str r0, [r4, #0xc]
|
|
_0222CAD2:
|
|
ldr r1, [r4, #0xc]
|
|
ldr r0, [r4, #0x10]
|
|
cmp r1, r0
|
|
bge _0222CB12
|
|
add r0, r1, #1
|
|
str r0, [r4, #0xc]
|
|
ldr r1, [r4, #0x10]
|
|
lsl r0, r0, #8
|
|
bl _s32_div_f
|
|
mov r2, #0
|
|
ldr r5, _0222CB38 ; =_02254A28
|
|
add r3, r2, #0
|
|
_0222CAEC:
|
|
ldrh r1, [r5, #2]
|
|
add r2, r2, r1
|
|
cmp r2, r0
|
|
blo _0222CB08
|
|
ldr r0, _0222CB38 ; =_02254A28
|
|
lsl r1, r3, #2
|
|
ldrh r1, [r0, r1]
|
|
ldr r0, [r4, #0x14]
|
|
cmp r0, r1
|
|
beq _0222CB2C
|
|
str r1, [r4, #0x14]
|
|
mov r0, #0
|
|
str r0, [r4, #0x18]
|
|
b _0222CB2C
|
|
_0222CB08:
|
|
add r3, r3, #1
|
|
add r5, r5, #4
|
|
cmp r3, #5
|
|
blo _0222CAEC
|
|
b _0222CB2C
|
|
_0222CB12:
|
|
ldr r0, [r4, #0x14]
|
|
cmp r0, #5
|
|
beq _0222CB20
|
|
mov r0, #5
|
|
str r0, [r4, #0x14]
|
|
mov r0, #0
|
|
str r0, [r4, #0x18]
|
|
_0222CB20:
|
|
ldr r0, [r4, #0x18]
|
|
cmp r0, #0x78
|
|
blo _0222CB2C
|
|
mov r0, #0
|
|
str r0, [r4, #0x14]
|
|
str r0, [r4]
|
|
_0222CB2C:
|
|
ldr r0, [r4, #0x18]
|
|
add r0, r0, #1
|
|
str r0, [r4, #0x18]
|
|
_0222CB32:
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222CB38: .word _02254A28
|
|
thumb_func_end ov45_0222CAA0
|
|
|
|
thumb_func_start ov45_0222CB3C
|
|
ov45_0222CB3C: ; 0x0222CB3C
|
|
ldr r0, [r0, #0x18]
|
|
bx lr
|
|
thumb_func_end ov45_0222CB3C
|
|
|
|
thumb_func_start ov45_0222CB40
|
|
ov45_0222CB40: ; 0x0222CB40
|
|
ldr r0, [r0, #0x14]
|
|
bx lr
|
|
thumb_func_end ov45_0222CB40
|
|
|
|
thumb_func_start ov45_0222CB44
|
|
ov45_0222CB44: ; 0x0222CB44
|
|
push {r4, r5, r6, lr}
|
|
mov r4, #0x18
|
|
add r3, r4, #0
|
|
mov r5, #0
|
|
add r6, r0, #0
|
|
sub r3, #0x19
|
|
_0222CB50:
|
|
add r2, r0, r5
|
|
add r2, #0x34
|
|
strb r4, [r2]
|
|
add r5, r5, #1
|
|
stmia r6!, {r3}
|
|
cmp r5, #0xd
|
|
blt _0222CB50
|
|
add r2, r0, #0
|
|
mov r3, #0
|
|
add r2, #0x41
|
|
strb r3, [r2]
|
|
add r2, r0, #0
|
|
add r2, #0x42
|
|
strb r3, [r2]
|
|
str r1, [r0, #0x44]
|
|
bl ov45_0222CCA4
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222CB44
|
|
|
|
thumb_func_start ov45_0222CB74
|
|
ov45_0222CB74: ; 0x0222CB74
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
bl ov45_0222CCB8
|
|
add r0, r5, #0
|
|
add r0, #0x42
|
|
ldrb r0, [r0]
|
|
mov r1, #0xd
|
|
add r0, r0, #1
|
|
bl _s32_div_f
|
|
add r0, r5, #0
|
|
add r0, #0x41
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _0222CB9E
|
|
add r0, r5, #0
|
|
bl ov45_0222CC00
|
|
_0222CB9E:
|
|
add r0, r5, #0
|
|
add r0, #0x42
|
|
ldrb r0, [r0]
|
|
mov r1, #0xd
|
|
add r0, r5, r0
|
|
add r0, #0x34
|
|
strb r4, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0x42
|
|
ldrb r0, [r0]
|
|
lsl r0, r0, #2
|
|
str r6, [r5, r0]
|
|
add r0, r5, #0
|
|
add r0, #0x42
|
|
ldrb r0, [r0]
|
|
add r0, r0, #1
|
|
bl _s32_div_f
|
|
add r0, r5, #0
|
|
add r0, #0x42
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
bl ov45_0222CCA4
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222CB74
|
|
|
|
thumb_func_start ov45_0222CBD0
|
|
ov45_0222CBD0: ; 0x0222CBD0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
add r5, r1, #0
|
|
add r4, r2, #0
|
|
mov r6, #0
|
|
bl ov45_0222CCB8
|
|
add r2, r6, #0
|
|
add r3, r7, #0
|
|
mov r0, #1
|
|
_0222CBE4:
|
|
ldr r1, [r3]
|
|
cmp r5, r1
|
|
bne _0222CBEE
|
|
str r4, [r3]
|
|
add r6, r0, #0
|
|
_0222CBEE:
|
|
add r2, r2, #1
|
|
add r3, r3, #4
|
|
cmp r2, #0xd
|
|
blt _0222CBE4
|
|
add r0, r7, #0
|
|
bl ov45_0222CCA4
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov45_0222CBD0
|
|
|
|
thumb_func_start ov45_0222CC00
|
|
ov45_0222CC00: ; 0x0222CC00
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
bl ov45_0222CCB8
|
|
add r0, r5, #0
|
|
add r0, #0x41
|
|
ldrb r2, [r0]
|
|
add r0, r5, #0
|
|
add r0, #0x42
|
|
ldrb r0, [r0]
|
|
cmp r0, r2
|
|
bne _0222CC1C
|
|
mov r0, #0x18
|
|
pop {r3, r4, r5, pc}
|
|
_0222CC1C:
|
|
add r0, r5, #0
|
|
add r0, #0x34
|
|
ldrb r4, [r0, r2]
|
|
mov r1, #0x18
|
|
strb r1, [r0, r2]
|
|
add r0, r5, #0
|
|
add r0, #0x42
|
|
ldrb r0, [r0]
|
|
sub r1, #0x19
|
|
lsl r0, r0, #2
|
|
str r1, [r5, r0]
|
|
add r0, r5, #0
|
|
add r0, #0x41
|
|
ldrb r0, [r0]
|
|
mov r1, #0xd
|
|
add r0, r0, #1
|
|
bl _s32_div_f
|
|
add r0, r5, #0
|
|
add r0, #0x41
|
|
strb r1, [r0]
|
|
add r0, r5, #0
|
|
bl ov45_0222CCA4
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222CC00
|
|
|
|
thumb_func_start ov45_0222CC50
|
|
ov45_0222CC50: ; 0x0222CC50
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0xc
|
|
blo _0222CC5E
|
|
bl GF_AssertFail
|
|
_0222CC5E:
|
|
add r0, r5, #0
|
|
bl ov45_0222CCB8
|
|
add r0, r5, #0
|
|
add r0, #0x42
|
|
ldrb r1, [r0]
|
|
add r0, r4, #1
|
|
sub r0, r1, r0
|
|
bpl _0222CC72
|
|
add r0, #0xd
|
|
_0222CC72:
|
|
add r0, r5, r0
|
|
add r0, #0x34
|
|
ldrb r0, [r0]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222CC50
|
|
|
|
thumb_func_start ov45_0222CC7C
|
|
ov45_0222CC7C: ; 0x0222CC7C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0xc
|
|
blo _0222CC8A
|
|
bl GF_AssertFail
|
|
_0222CC8A:
|
|
add r0, r5, #0
|
|
bl ov45_0222CCB8
|
|
add r0, r5, #0
|
|
add r0, #0x42
|
|
ldrb r1, [r0]
|
|
add r0, r4, #1
|
|
sub r0, r1, r0
|
|
bpl _0222CC9E
|
|
add r0, #0xd
|
|
_0222CC9E:
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222CC7C
|
|
|
|
thumb_func_start ov45_0222CCA4
|
|
ov45_0222CCA4: ; 0x0222CCA4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x44]
|
|
add r1, r4, #0
|
|
mov r2, #0x44
|
|
bl sub_020275C4
|
|
add r4, #0x48
|
|
strh r0, [r4]
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_0222CCA4
|
|
|
|
thumb_func_start ov45_0222CCB8
|
|
ov45_0222CCB8: ; 0x0222CCB8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x44]
|
|
add r1, r4, #0
|
|
mov r2, #0x44
|
|
bl sub_020275C4
|
|
add r1, r4, #0
|
|
add r1, #0x48
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
beq _0222CCDA
|
|
bl GF_AssertFail
|
|
mov r0, #1
|
|
add r4, #0x4a
|
|
strh r0, [r4]
|
|
_0222CCDA:
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_0222CCB8
|
|
|
|
thumb_func_start ov45_0222CCDC
|
|
ov45_0222CCDC: ; 0x0222CCDC
|
|
add r0, #0x4a
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222CCDC
|
|
|
|
thumb_func_start ov45_0222CCE4
|
|
ov45_0222CCE4: ; 0x0222CCE4
|
|
ldr r3, _0222CD00 ; =0x02254A84
|
|
mov r2, #0
|
|
_0222CCE8:
|
|
ldrh r1, [r3]
|
|
cmp r0, r1
|
|
bne _0222CCF2
|
|
add r0, r2, #0
|
|
bx lr
|
|
_0222CCF2:
|
|
add r2, r2, #1
|
|
add r3, r3, #4
|
|
cmp r2, #0x10
|
|
blt _0222CCE8
|
|
mov r0, #0x10
|
|
bx lr
|
|
nop
|
|
_0222CD00: .word 0x02254A84
|
|
thumb_func_end ov45_0222CCE4
|
|
|
|
thumb_func_start ov45_0222CD04
|
|
ov45_0222CD04: ; 0x0222CD04
|
|
cmp r0, #0x10
|
|
bhs _0222CD10
|
|
lsl r1, r0, #2
|
|
ldr r0, _0222CD14 ; =0x02254A84
|
|
ldrh r0, [r0, r1]
|
|
bx lr
|
|
_0222CD10:
|
|
ldr r0, _0222CD18 ; =0x0000FFFF
|
|
bx lr
|
|
.balign 4, 0
|
|
_0222CD14: .word 0x02254A84
|
|
_0222CD18: .word 0x0000FFFF
|
|
thumb_func_end ov45_0222CD04
|
|
|
|
thumb_func_start ov45_0222CD1C
|
|
ov45_0222CD1C: ; 0x0222CD1C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
ldr r6, [sp, #0x20]
|
|
add r5, r0, #0
|
|
add r7, r1, #0
|
|
add r0, r6, #0
|
|
mov r1, #0x48
|
|
str r2, [sp]
|
|
str r3, [sp, #4]
|
|
bl AllocFromHeap
|
|
mov r1, #0
|
|
mov r2, #0x48
|
|
add r4, r0, #0
|
|
bl memset
|
|
ldr r0, [sp, #4]
|
|
str r0, [r4, #0x3c]
|
|
ldr r0, [sp]
|
|
str r7, [r4, #0x40]
|
|
str r0, [r4, #0x44]
|
|
add r0, r4, #0
|
|
add r0, #0x39
|
|
strb r5, [r0]
|
|
strh r6, [r4, #0x3a]
|
|
mov r5, #0
|
|
_0222CD50:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
bl ov45_0222CDE4
|
|
add r5, r5, #1
|
|
cmp r5, #0xd
|
|
blt _0222CD50
|
|
add r0, r4, #0
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222CD1C
|
|
|
|
thumb_func_start ov45_0222CD68
|
|
ov45_0222CD68: ; 0x0222CD68
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
mov r4, #0
|
|
_0222CD6E:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov45_0222CE0C
|
|
add r4, r4, #1
|
|
cmp r4, #0xd
|
|
blt _0222CD6E
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222CD68
|
|
|
|
thumb_func_start ov45_0222CD84
|
|
ov45_0222CD84: ; 0x0222CD84
|
|
ldr r3, _0222CD8C ; =ov45_0222CE2C
|
|
mov r1, #5
|
|
bx r3
|
|
nop
|
|
_0222CD8C: .word ov45_0222CE2C
|
|
thumb_func_end ov45_0222CD84
|
|
|
|
thumb_func_start ov45_0222CD90
|
|
ov45_0222CD90: ; 0x0222CD90
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
mov r5, #0
|
|
cmp r0, #0
|
|
beq _0222CDBA
|
|
bl OverlayManager_run
|
|
cmp r0, #0
|
|
beq _0222CDBA
|
|
ldr r0, [r4]
|
|
bl OverlayManager_delete
|
|
add r0, r5, #0
|
|
str r0, [r4]
|
|
add r0, r4, #0
|
|
add r4, #0x38
|
|
ldrb r1, [r4]
|
|
bl ov45_0222CE54
|
|
add r5, r0, #0
|
|
_0222CDBA:
|
|
add r0, r5, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222CD90
|
|
|
|
thumb_func_start ov45_0222CDC0
|
|
ov45_0222CDC0: ; 0x0222CDC0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222CDC0
|
|
|
|
thumb_func_start ov45_0222CDC4
|
|
ov45_0222CDC4: ; 0x0222CDC4
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5]
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
cmp r0, #0
|
|
beq _0222CDD6
|
|
bl GF_AssertFail
|
|
_0222CDD6:
|
|
ldrh r2, [r5, #0x3a]
|
|
ldr r1, [r4]
|
|
add r0, r6, #0
|
|
bl OverlayManager_new
|
|
str r0, [r5]
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222CDC4
|
|
|
|
thumb_func_start ov45_0222CDE4
|
|
ov45_0222CDE4: ; 0x0222CDE4
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
cmp r4, #0xd
|
|
blo _0222CDF4
|
|
bl GF_AssertFail
|
|
_0222CDF4:
|
|
lsl r3, r4, #2
|
|
add r1, r5, #4
|
|
ldr r4, _0222CE08 ; =0x02254E88
|
|
add r1, r1, r3
|
|
ldr r3, [r4, r3]
|
|
add r0, r5, #0
|
|
add r2, r6, #0
|
|
blx r3
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0222CE08: .word 0x02254E88
|
|
thumb_func_end ov45_0222CDE4
|
|
|
|
thumb_func_start ov45_0222CE0C
|
|
ov45_0222CE0C: ; 0x0222CE0C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
cmp r5, #0xd
|
|
blo _0222CE1A
|
|
bl GF_AssertFail
|
|
_0222CE1A:
|
|
ldr r1, _0222CE28 ; =0x02254E20
|
|
lsl r2, r5, #2
|
|
add r0, r4, #4
|
|
ldr r1, [r1, r2]
|
|
add r0, r0, r2
|
|
blx r1
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0222CE28: .word 0x02254E20
|
|
thumb_func_end ov45_0222CE0C
|
|
|
|
thumb_func_start ov45_0222CE2C
|
|
ov45_0222CE2C: ; 0x0222CE2C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0xd
|
|
blo _0222CE3A
|
|
bl GF_AssertFail
|
|
_0222CE3A:
|
|
ldr r2, _0222CE50 ; =0x02254E54
|
|
lsl r3, r4, #2
|
|
add r1, r5, #4
|
|
ldr r2, [r2, r3]
|
|
add r0, r5, #0
|
|
add r1, r1, r3
|
|
blx r2
|
|
add r5, #0x38
|
|
strb r4, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222CE50: .word 0x02254E54
|
|
thumb_func_end ov45_0222CE2C
|
|
|
|
thumb_func_start ov45_0222CE54
|
|
ov45_0222CE54: ; 0x0222CE54
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
cmp r5, #0xd
|
|
blo _0222CE62
|
|
bl GF_AssertFail
|
|
_0222CE62:
|
|
ldr r2, _0222CE74 ; =0x02254EBC
|
|
lsl r3, r5, #2
|
|
add r1, r4, #4
|
|
ldr r2, [r2, r3]
|
|
add r0, r4, #0
|
|
add r1, r1, r3
|
|
blx r2
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222CE74: .word 0x02254EBC
|
|
thumb_func_end ov45_0222CE54
|
|
|
|
thumb_func_start ov45_0222CE78
|
|
ov45_0222CE78: ; 0x0222CE78
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r4, #0
|
|
_0222CE80:
|
|
add r0, r6, #0
|
|
bl sub_02028ED0
|
|
str r0, [r5, #0x20]
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _0222CE80
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222CE78
|
|
|
|
thumb_func_start ov45_0222CE94
|
|
ov45_0222CE94: ; 0x0222CE94
|
|
push {r4, r5, r6, lr}
|
|
mov r4, #0
|
|
add r5, r0, #0
|
|
add r6, r4, #0
|
|
_0222CE9C:
|
|
ldr r0, [r5, #0x20]
|
|
bl FreeToHeap
|
|
str r6, [r5, #0x20]
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _0222CE9C
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222CE94
|
|
|
|
thumb_func_start ov45_0222CEB0
|
|
ov45_0222CEB0: ; 0x0222CEB0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r1, #0
|
|
add r6, r0, #0
|
|
add r0, r7, #0
|
|
str r2, [sp]
|
|
bl ov45_0222A5C0
|
|
bl ov45_0222AAC8
|
|
add r1, r6, #0
|
|
str r0, [r6]
|
|
add r0, r7, #0
|
|
add r1, #8
|
|
bl ov45_0222AB38
|
|
add r0, r7, #0
|
|
add r1, r6, #4
|
|
bl ov45_0222A498
|
|
str r7, [r6, #0x30]
|
|
mov r4, #0
|
|
str r4, [r6, #0x1c]
|
|
add r5, r6, #0
|
|
_0222CEDE:
|
|
add r1, r6, r4
|
|
ldrb r1, [r1, #4]
|
|
add r0, r7, #0
|
|
bl ov45_0222A578
|
|
cmp r0, #0
|
|
beq _0222CEF4
|
|
ldr r1, [r5, #0x20]
|
|
ldr r2, [sp]
|
|
bl ov45_0222A844
|
|
_0222CEF4:
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _0222CEDE
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222CEB0
|
|
|
|
thumb_func_start ov45_0222CF00
|
|
ov45_0222CF00: ; 0x0222CF00
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
add r5, r1, #0
|
|
add r0, r2, #0
|
|
mov r1, #0x20
|
|
bl AllocFromHeap
|
|
str r0, [r5]
|
|
mov r1, #0
|
|
mov r2, #0x20
|
|
bl memset
|
|
ldr r1, [r5]
|
|
ldr r0, [r4, #0x40]
|
|
str r0, [r1]
|
|
ldr r0, [r4, #0x3c]
|
|
str r0, [r1, #0x1c]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222CF00
|
|
|
|
thumb_func_start ov45_0222CF24
|
|
ov45_0222CF24: ; 0x0222CF24
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
bne _0222CF32
|
|
bl GF_AssertFail
|
|
_0222CF32:
|
|
ldr r0, [r4]
|
|
bl FreeToHeap
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222CF24
|
|
|
|
thumb_func_start ov45_0222CF40
|
|
ov45_0222CF40: ; 0x0222CF40
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
ldr r4, [r6]
|
|
ldr r0, [r5, #0x3c]
|
|
bl ov45_0222AD2C
|
|
str r0, [r4, #4]
|
|
ldr r0, [r5, #0x3c]
|
|
bl ov45_0222AD3C
|
|
str r0, [r4, #8]
|
|
ldr r2, _0222CF64 ; =0x02254B94
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov45_0222CDC4
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0222CF64: .word 0x02254B94
|
|
thumb_func_end ov45_0222CF40
|
|
|
|
thumb_func_start ov45_0222CF68
|
|
ov45_0222CF68: ; 0x0222CF68
|
|
push {r3, lr}
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x18]
|
|
cmp r1, #0xa
|
|
bhi _0222CFEC
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0222CF7E: ; jump table
|
|
.short _0222CF94 - _0222CF7E - 2 ; case 0
|
|
.short _0222CF9C - _0222CF7E - 2 ; case 1
|
|
.short _0222CFA4 - _0222CF7E - 2 ; case 2
|
|
.short _0222CFBC - _0222CF7E - 2 ; case 3
|
|
.short _0222CFC4 - _0222CF7E - 2 ; case 4
|
|
.short _0222CFCC - _0222CF7E - 2 ; case 5
|
|
.short _0222CFAC - _0222CF7E - 2 ; case 6
|
|
.short _0222CFB4 - _0222CF7E - 2 ; case 7
|
|
.short _0222CFD4 - _0222CF7E - 2 ; case 8
|
|
.short _0222CFDC - _0222CF7E - 2 ; case 9
|
|
.short _0222CFE4 - _0222CF7E - 2 ; case 10
|
|
_0222CF94:
|
|
mov r1, #9
|
|
bl ov45_0222CE2C
|
|
b _0222CFF0
|
|
_0222CF9C:
|
|
mov r1, #1
|
|
bl ov45_0222CE2C
|
|
b _0222CFF0
|
|
_0222CFA4:
|
|
mov r1, #2
|
|
bl ov45_0222CE2C
|
|
b _0222CFF0
|
|
_0222CFAC:
|
|
mov r1, #3
|
|
bl ov45_0222CE2C
|
|
b _0222CFF0
|
|
_0222CFB4:
|
|
mov r1, #4
|
|
bl ov45_0222CE2C
|
|
b _0222CFF0
|
|
_0222CFBC:
|
|
mov r1, #6
|
|
bl ov45_0222CE2C
|
|
b _0222CFF0
|
|
_0222CFC4:
|
|
mov r1, #7
|
|
bl ov45_0222CE2C
|
|
b _0222CFF0
|
|
_0222CFCC:
|
|
mov r1, #8
|
|
bl ov45_0222CE2C
|
|
b _0222CFF0
|
|
_0222CFD4:
|
|
mov r1, #0xa
|
|
bl ov45_0222CE2C
|
|
b _0222CFF0
|
|
_0222CFDC:
|
|
mov r1, #0xb
|
|
bl ov45_0222CE2C
|
|
b _0222CFF0
|
|
_0222CFE4:
|
|
mov r1, #0xc
|
|
bl ov45_0222CE2C
|
|
b _0222CFF0
|
|
_0222CFEC:
|
|
bl GF_AssertFail
|
|
_0222CFF0:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end ov45_0222CF68
|
|
|
|
thumb_func_start ov45_0222CFF4
|
|
ov45_0222CFF4: ; 0x0222CFF4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, r2, #0
|
|
mov r1, #0x10
|
|
bl AllocFromHeap
|
|
str r0, [r4]
|
|
mov r2, #0x10
|
|
mov r1, #0
|
|
_0222D008:
|
|
strb r1, [r0]
|
|
add r0, r0, #1
|
|
sub r2, r2, #1
|
|
bne _0222D008
|
|
ldr r1, [r4]
|
|
ldr r0, [r5, #0x40]
|
|
str r0, [r1, #4]
|
|
ldr r0, [r5, #0x3c]
|
|
str r0, [r1, #0xc]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222CFF4
|
|
|
|
thumb_func_start ov45_0222D01C
|
|
ov45_0222D01C: ; 0x0222D01C
|
|
ldr r3, _0222D024 ; =FreeToHeap
|
|
ldr r0, [r0]
|
|
bx r3
|
|
nop
|
|
_0222D024: .word FreeToHeap
|
|
thumb_func_end ov45_0222D01C
|
|
|
|
thumb_func_start ov45_0222D028
|
|
ov45_0222D028: ; 0x0222D028
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
ldr r4, [r6]
|
|
ldr r0, [r5, #0x3c]
|
|
bl ov45_0222A214
|
|
str r0, [r4]
|
|
ldr r0, [r5, #0x3c]
|
|
bl ov45_0222A22C
|
|
ldr r0, [r0]
|
|
ldr r2, _0222D050 ; =0x02254B84
|
|
str r0, [r4, #8]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov45_0222CDC4
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0222D050: .word 0x02254B84
|
|
thumb_func_end ov45_0222D028
|
|
|
|
thumb_func_start ov45_0222D054
|
|
ov45_0222D054: ; 0x0222D054
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x3c]
|
|
bl ov45_0222A33C
|
|
cmp r0, #0
|
|
beq _0222D06C
|
|
add r0, r4, #0
|
|
mov r1, #0xa
|
|
bl ov45_0222CE2C
|
|
b _0222D074
|
|
_0222D06C:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov45_0222CE2C
|
|
_0222D074:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_0222D054
|
|
|
|
thumb_func_start ov45_0222D078
|
|
ov45_0222D078: ; 0x0222D078
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
add r5, r1, #0
|
|
add r0, r2, #0
|
|
mov r1, #0xc
|
|
bl AllocFromHeap
|
|
str r0, [r5]
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
strb r1, [r0, #1]
|
|
strb r1, [r0, #2]
|
|
strb r1, [r0, #3]
|
|
strb r1, [r0, #4]
|
|
strb r1, [r0, #5]
|
|
strb r1, [r0, #6]
|
|
strb r1, [r0, #7]
|
|
strb r1, [r0, #8]
|
|
strb r1, [r0, #9]
|
|
strb r1, [r0, #0xa]
|
|
strb r1, [r0, #0xb]
|
|
ldr r5, [r5]
|
|
ldr r0, [r4, #0x3c]
|
|
bl ov45_0222A210
|
|
str r0, [r5]
|
|
ldr r0, [r4, #0x3c]
|
|
bl ov45_0222A22C
|
|
str r0, [r5, #4]
|
|
ldr r0, [r4, #0x3c]
|
|
str r0, [r5, #8]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D078
|
|
|
|
thumb_func_start ov45_0222D0BC
|
|
ov45_0222D0BC: ; 0x0222D0BC
|
|
ldr r3, _0222D0C4 ; =FreeToHeap
|
|
ldr r0, [r0]
|
|
bx r3
|
|
nop
|
|
_0222D0C4: .word FreeToHeap
|
|
thumb_func_end ov45_0222D0BC
|
|
|
|
thumb_func_start ov45_0222D0C8
|
|
ov45_0222D0C8: ; 0x0222D0C8
|
|
ldr r3, _0222D0D0 ; =ov45_0222CDC4
|
|
ldr r2, _0222D0D4 ; =0x02254B74
|
|
bx r3
|
|
nop
|
|
_0222D0D0: .word ov45_0222CDC4
|
|
_0222D0D4: .word 0x02254B74
|
|
thumb_func_end ov45_0222D0C8
|
|
|
|
thumb_func_start ov45_0222D0D8
|
|
ov45_0222D0D8: ; 0x0222D0D8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x3c]
|
|
bl ov45_0222A33C
|
|
cmp r0, #0
|
|
beq _0222D0F0
|
|
add r0, r4, #0
|
|
mov r1, #0xa
|
|
bl ov45_0222CE2C
|
|
b _0222D0F8
|
|
_0222D0F0:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov45_0222CE2C
|
|
_0222D0F8:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_0222D0D8
|
|
|
|
thumb_func_start ov45_0222D0FC
|
|
ov45_0222D0FC: ; 0x0222D0FC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, r2, #0
|
|
mov r1, #0x14
|
|
bl AllocFromHeap
|
|
str r0, [r4]
|
|
mov r2, #0x14
|
|
mov r1, #0
|
|
_0222D110:
|
|
strb r1, [r0]
|
|
add r0, r0, #1
|
|
sub r2, r2, #1
|
|
bne _0222D110
|
|
ldr r1, [r4]
|
|
ldr r0, [r5, #0x40]
|
|
str r0, [r1]
|
|
ldr r0, [r5, #0x3c]
|
|
str r0, [r1, #4]
|
|
add r0, r5, #0
|
|
add r0, #0x39
|
|
ldrb r0, [r0]
|
|
str r0, [r1, #8]
|
|
ldr r0, [r5, #0x44]
|
|
str r0, [r1, #0xc]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222D0FC
|
|
|
|
thumb_func_start ov45_0222D130
|
|
ov45_0222D130: ; 0x0222D130
|
|
ldr r3, _0222D138 ; =FreeToHeap
|
|
ldr r0, [r0]
|
|
bx r3
|
|
nop
|
|
_0222D138: .word FreeToHeap
|
|
thumb_func_end ov45_0222D130
|
|
|
|
thumb_func_start ov45_0222D13C
|
|
ov45_0222D13C: ; 0x0222D13C
|
|
ldr r3, _0222D144 ; =ov45_0222CDC4
|
|
ldr r2, _0222D148 ; =0x02254B64
|
|
bx r3
|
|
nop
|
|
_0222D144: .word ov45_0222CDC4
|
|
_0222D148: .word 0x02254B64
|
|
thumb_func_end ov45_0222D13C
|
|
|
|
thumb_func_start ov45_0222D14C
|
|
ov45_0222D14C: ; 0x0222D14C
|
|
push {r3, lr}
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x10]
|
|
cmp r1, #0
|
|
bne _0222D15A
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0222D15A:
|
|
mov r1, #0
|
|
bl ov45_0222CE2C
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
thumb_func_end ov45_0222D14C
|
|
|
|
thumb_func_start ov45_0222D164
|
|
ov45_0222D164: ; 0x0222D164
|
|
push {r4, r5, r6, lr}
|
|
add r6, r2, #0
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, r6, #0
|
|
mov r1, #0x3c
|
|
bl AllocFromHeap
|
|
str r0, [r4]
|
|
mov r1, #0
|
|
mov r2, #0x3c
|
|
bl memset
|
|
ldr r0, [r4]
|
|
mov r2, #0
|
|
add r1, r0, #0
|
|
add r1, #0x38
|
|
strb r2, [r1]
|
|
add r1, r0, #0
|
|
mov r2, #1
|
|
add r1, #0x39
|
|
strb r2, [r1]
|
|
ldr r1, [r5, #0x40]
|
|
str r1, [r0, #0x34]
|
|
add r1, r6, #0
|
|
bl ov45_0222CE78
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222D164
|
|
|
|
thumb_func_start ov45_0222D19C
|
|
ov45_0222D19C: ; 0x0222D19C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov45_0222CE94
|
|
ldr r0, [r4]
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D19C
|
|
|
|
thumb_func_start ov45_0222D1B0
|
|
ov45_0222D1B0: ; 0x0222D1B0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
ldr r0, _0222D1D4 ; =SDK_OVERLAY_OVY_90_ID
|
|
mov r1, #2
|
|
bl HandleLoadOverlay
|
|
ldrh r2, [r5, #0x3a]
|
|
ldr r0, [r4]
|
|
ldr r1, [r5, #0x3c]
|
|
bl ov45_0222CEB0
|
|
ldr r2, _0222D1D8 ; =0x02254B54
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov45_0222CDC4
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0222D1D4: .word SDK_OVERLAY_OVY_90_ID
|
|
_0222D1D8: .word 0x02254B54
|
|
thumb_func_end ov45_0222D1B0
|
|
|
|
thumb_func_start ov45_0222D1DC
|
|
ov45_0222D1DC: ; 0x0222D1DC
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222D208 ; =SDK_OVERLAY_OVY_90_ID
|
|
add r5, r1, #0
|
|
bl UnloadOverlayByID
|
|
ldr r5, [r5]
|
|
ldr r0, [r4, #0x3c]
|
|
ldr r1, [r5, #0x1c]
|
|
bl ov45_0222A430
|
|
ldr r0, [r4, #0x3c]
|
|
ldr r1, [r5]
|
|
bl ov45_0222A72C
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov45_0222CE2C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222D208: .word SDK_OVERLAY_OVY_90_ID
|
|
thumb_func_end ov45_0222D1DC
|
|
|
|
thumb_func_start ov45_0222D20C
|
|
ov45_0222D20C: ; 0x0222D20C
|
|
push {r4, r5, r6, lr}
|
|
add r6, r2, #0
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, r6, #0
|
|
mov r1, #0x40
|
|
bl AllocFromHeap
|
|
str r0, [r4]
|
|
mov r1, #0
|
|
mov r2, #0x40
|
|
bl memset
|
|
ldr r0, [r4]
|
|
mov r1, #0
|
|
str r1, [r0, #0x3c]
|
|
mov r1, #1
|
|
str r1, [r0, #0x38]
|
|
ldr r1, [r5, #0x40]
|
|
str r1, [r0, #0x34]
|
|
add r1, r6, #0
|
|
bl ov45_0222CE78
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222D20C
|
|
|
|
thumb_func_start ov45_0222D23C
|
|
ov45_0222D23C: ; 0x0222D23C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov45_0222CE94
|
|
ldr r0, [r4]
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D23C
|
|
|
|
thumb_func_start ov45_0222D250
|
|
ov45_0222D250: ; 0x0222D250
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
ldr r0, _0222D274 ; =SDK_OVERLAY_OVY_90_ID
|
|
mov r1, #2
|
|
bl HandleLoadOverlay
|
|
ldrh r2, [r5, #0x3a]
|
|
ldr r0, [r4]
|
|
ldr r1, [r5, #0x3c]
|
|
bl ov45_0222CEB0
|
|
ldr r2, _0222D278 ; =0x02254BA4
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov45_0222CDC4
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0222D274: .word SDK_OVERLAY_OVY_90_ID
|
|
_0222D278: .word 0x02254BA4
|
|
thumb_func_end ov45_0222D250
|
|
|
|
thumb_func_start ov45_0222D27C
|
|
ov45_0222D27C: ; 0x0222D27C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222D2A8 ; =SDK_OVERLAY_OVY_90_ID
|
|
add r5, r1, #0
|
|
bl UnloadOverlayByID
|
|
ldr r5, [r5]
|
|
ldr r0, [r4, #0x3c]
|
|
ldr r1, [r5, #0x1c]
|
|
bl ov45_0222A430
|
|
ldr r0, [r4, #0x3c]
|
|
ldr r1, [r5]
|
|
bl ov45_0222A72C
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov45_0222CE2C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222D2A8: .word SDK_OVERLAY_OVY_90_ID
|
|
thumb_func_end ov45_0222D27C
|
|
|
|
thumb_func_start ov45_0222D2AC
|
|
ov45_0222D2AC: ; 0x0222D2AC
|
|
push {r4, r5, r6, lr}
|
|
add r6, r2, #0
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, r6, #0
|
|
mov r1, #0x3c
|
|
bl AllocFromHeap
|
|
str r0, [r4]
|
|
mov r1, #0
|
|
mov r2, #0x3c
|
|
bl memset
|
|
ldr r0, [r4]
|
|
mov r2, #0
|
|
add r1, r0, #0
|
|
add r1, #0x38
|
|
strb r2, [r1]
|
|
add r1, r0, #0
|
|
mov r2, #1
|
|
add r1, #0x39
|
|
strb r2, [r1]
|
|
ldr r1, [r5, #0x40]
|
|
str r1, [r0, #0x34]
|
|
add r1, r6, #0
|
|
bl ov45_0222CE78
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222D2AC
|
|
|
|
thumb_func_start ov45_0222D2E4
|
|
ov45_0222D2E4: ; 0x0222D2E4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
bl ov45_0222CE94
|
|
ldr r0, [r4]
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D2E4
|
|
|
|
thumb_func_start ov45_0222D2F8
|
|
ov45_0222D2F8: ; 0x0222D2F8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
ldr r0, _0222D31C ; =SDK_OVERLAY_OVY_90_ID
|
|
mov r1, #2
|
|
bl HandleLoadOverlay
|
|
ldrh r2, [r5, #0x3a]
|
|
ldr r0, [r4]
|
|
ldr r1, [r5, #0x3c]
|
|
bl ov45_0222CEB0
|
|
ldr r2, _0222D320 ; =0x02254B34
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov45_0222CDC4
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0222D31C: .word SDK_OVERLAY_OVY_90_ID
|
|
_0222D320: .word 0x02254B34
|
|
thumb_func_end ov45_0222D2F8
|
|
|
|
thumb_func_start ov45_0222D324
|
|
ov45_0222D324: ; 0x0222D324
|
|
push {r3, r4, r5, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222D350 ; =SDK_OVERLAY_OVY_90_ID
|
|
add r5, r1, #0
|
|
bl UnloadOverlayByID
|
|
ldr r5, [r5]
|
|
ldr r0, [r4, #0x3c]
|
|
ldr r1, [r5, #0x1c]
|
|
bl ov45_0222A430
|
|
ldr r0, [r4, #0x3c]
|
|
ldr r1, [r5]
|
|
bl ov45_0222A72C
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov45_0222CE2C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222D350: .word SDK_OVERLAY_OVY_90_ID
|
|
thumb_func_end ov45_0222D324
|
|
|
|
thumb_func_start ov45_0222D354
|
|
ov45_0222D354: ; 0x0222D354
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, r2, #0
|
|
mov r1, #8
|
|
bl AllocFromHeap
|
|
str r0, [r4]
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
strb r1, [r0, #1]
|
|
strb r1, [r0, #2]
|
|
strb r1, [r0, #3]
|
|
strb r1, [r0, #4]
|
|
strb r1, [r0, #5]
|
|
strb r1, [r0, #6]
|
|
strb r1, [r0, #7]
|
|
ldr r1, [r5, #0x3c]
|
|
ldr r0, [r4]
|
|
str r1, [r0]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D354
|
|
|
|
thumb_func_start ov45_0222D380
|
|
ov45_0222D380: ; 0x0222D380
|
|
ldr r3, _0222D388 ; =FreeToHeap
|
|
ldr r0, [r0]
|
|
bx r3
|
|
nop
|
|
_0222D388: .word FreeToHeap
|
|
thumb_func_end ov45_0222D380
|
|
|
|
thumb_func_start ov45_0222D38C
|
|
ov45_0222D38C: ; 0x0222D38C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x3c]
|
|
bl ov45_0222A33C
|
|
cmp r0, #0
|
|
beq _0222D3A4
|
|
add r0, r4, #0
|
|
mov r1, #0xa
|
|
bl ov45_0222CE2C
|
|
b _0222D3AC
|
|
_0222D3A4:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov45_0222CE2C
|
|
_0222D3AC:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_0222D38C
|
|
|
|
thumb_func_start ov45_0222D3B0
|
|
ov45_0222D3B0: ; 0x0222D3B0
|
|
ldr r2, [r1]
|
|
mov r3, #0
|
|
strb r3, [r2, #4]
|
|
ldr r3, _0222D3BC ; =ov45_0222CDC4
|
|
ldr r2, _0222D3C0 ; =0x02254B24
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222D3BC: .word ov45_0222CDC4
|
|
_0222D3C0: .word 0x02254B24
|
|
thumb_func_end ov45_0222D3B0
|
|
|
|
thumb_func_start ov45_0222D3C4
|
|
ov45_0222D3C4: ; 0x0222D3C4
|
|
ldr r2, [r1]
|
|
mov r3, #1
|
|
strb r3, [r2, #4]
|
|
ldr r3, _0222D3D0 ; =ov45_0222CDC4
|
|
ldr r2, _0222D3D4 ; =0x02254B14
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222D3D0: .word ov45_0222CDC4
|
|
_0222D3D4: .word 0x02254B14
|
|
thumb_func_end ov45_0222D3C4
|
|
|
|
thumb_func_start ov45_0222D3D8
|
|
ov45_0222D3D8: ; 0x0222D3D8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, r2, #0
|
|
mov r1, #0xc
|
|
bl AllocFromHeap
|
|
str r0, [r4]
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
strb r1, [r0, #1]
|
|
strb r1, [r0, #2]
|
|
strb r1, [r0, #3]
|
|
strb r1, [r0, #4]
|
|
strb r1, [r0, #5]
|
|
strb r1, [r0, #6]
|
|
strb r1, [r0, #7]
|
|
strb r1, [r0, #8]
|
|
strb r1, [r0, #9]
|
|
strb r1, [r0, #0xa]
|
|
strb r1, [r0, #0xb]
|
|
ldr r1, [r4]
|
|
ldr r0, [r5, #0x40]
|
|
str r0, [r1]
|
|
ldr r0, [r5, #0x3c]
|
|
str r0, [r1, #4]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D3D8
|
|
|
|
thumb_func_start ov45_0222D410
|
|
ov45_0222D410: ; 0x0222D410
|
|
ldr r3, _0222D418 ; =FreeToHeap
|
|
ldr r0, [r0]
|
|
bx r3
|
|
nop
|
|
_0222D418: .word FreeToHeap
|
|
thumb_func_end ov45_0222D410
|
|
|
|
thumb_func_start ov45_0222D41C
|
|
ov45_0222D41C: ; 0x0222D41C
|
|
ldr r3, _0222D424 ; =ov45_0222D434
|
|
mov r2, #0
|
|
bx r3
|
|
nop
|
|
_0222D424: .word ov45_0222D434
|
|
thumb_func_end ov45_0222D41C
|
|
|
|
thumb_func_start ov45_0222D428
|
|
ov45_0222D428: ; 0x0222D428
|
|
ldr r3, _0222D430 ; =ov45_0222D434
|
|
mov r2, #1
|
|
bx r3
|
|
nop
|
|
_0222D430: .word ov45_0222D434
|
|
thumb_func_end ov45_0222D428
|
|
|
|
thumb_func_start ov45_0222D434
|
|
ov45_0222D434: ; 0x0222D434
|
|
ldr r3, [r1]
|
|
str r2, [r3, #8]
|
|
ldr r3, _0222D440 ; =ov45_0222CDC4
|
|
ldr r2, _0222D444 ; =0x02254B04
|
|
bx r3
|
|
nop
|
|
_0222D440: .word ov45_0222CDC4
|
|
_0222D444: .word 0x02254B04
|
|
thumb_func_end ov45_0222D434
|
|
|
|
thumb_func_start ov45_0222D448
|
|
ov45_0222D448: ; 0x0222D448
|
|
mov r0, #1
|
|
bx lr
|
|
thumb_func_end ov45_0222D448
|
|
|
|
thumb_func_start ov45_0222D44C
|
|
ov45_0222D44C: ; 0x0222D44C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, r2, #0
|
|
mov r1, #0xc
|
|
bl AllocFromHeap
|
|
str r0, [r4]
|
|
mov r2, #0
|
|
strb r2, [r0]
|
|
strb r2, [r0, #1]
|
|
strb r2, [r0, #2]
|
|
strb r2, [r0, #3]
|
|
strb r2, [r0, #4]
|
|
strb r2, [r0, #5]
|
|
strb r2, [r0, #6]
|
|
strb r2, [r0, #7]
|
|
strb r2, [r0, #8]
|
|
strb r2, [r0, #9]
|
|
strb r2, [r0, #0xa]
|
|
strb r2, [r0, #0xb]
|
|
ldr r1, [r4]
|
|
ldr r0, [r5, #0x40]
|
|
str r0, [r1]
|
|
ldr r0, [r5, #0x3c]
|
|
str r0, [r1, #4]
|
|
str r2, [r1, #8]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222D44C
|
|
|
|
thumb_func_start ov45_0222D484
|
|
ov45_0222D484: ; 0x0222D484
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, r2, #0
|
|
mov r1, #0xc
|
|
bl AllocFromHeap
|
|
str r0, [r4]
|
|
mov r1, #0
|
|
strb r1, [r0]
|
|
strb r1, [r0, #1]
|
|
strb r1, [r0, #2]
|
|
strb r1, [r0, #3]
|
|
strb r1, [r0, #4]
|
|
strb r1, [r0, #5]
|
|
strb r1, [r0, #6]
|
|
strb r1, [r0, #7]
|
|
strb r1, [r0, #8]
|
|
strb r1, [r0, #9]
|
|
strb r1, [r0, #0xa]
|
|
strb r1, [r0, #0xb]
|
|
ldr r1, [r4]
|
|
ldr r0, [r5, #0x40]
|
|
str r0, [r1]
|
|
ldr r0, [r5, #0x3c]
|
|
str r0, [r1, #4]
|
|
mov r0, #1
|
|
str r0, [r1, #8]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D484
|
|
|
|
thumb_func_start ov45_0222D4C0
|
|
ov45_0222D4C0: ; 0x0222D4C0
|
|
ldr r3, _0222D4C8 ; =FreeToHeap
|
|
ldr r0, [r0]
|
|
bx r3
|
|
nop
|
|
_0222D4C8: .word FreeToHeap
|
|
thumb_func_end ov45_0222D4C0
|
|
|
|
thumb_func_start ov45_0222D4CC
|
|
ov45_0222D4CC: ; 0x0222D4CC
|
|
ldr r3, _0222D4D4 ; =ov45_0222CDC4
|
|
ldr r2, _0222D4D8 ; =0x02254B44
|
|
bx r3
|
|
nop
|
|
_0222D4D4: .word ov45_0222CDC4
|
|
_0222D4D8: .word 0x02254B44
|
|
thumb_func_end ov45_0222D4CC
|
|
|
|
thumb_func_start ov45_0222D4DC
|
|
ov45_0222D4DC: ; 0x0222D4DC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #0x3c]
|
|
bl ov45_0222A33C
|
|
cmp r0, #0
|
|
beq _0222D4F4
|
|
add r0, r4, #0
|
|
mov r1, #0xa
|
|
bl ov45_0222CE2C
|
|
b _0222D4FC
|
|
_0222D4F4:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov45_0222CE2C
|
|
_0222D4FC:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_0222D4DC
|
|
|
|
thumb_func_start ov45_0222D500
|
|
ov45_0222D500: ; 0x0222D500
|
|
push {r3, r4, lr}
|
|
sub sp, #0x1c
|
|
add r3, r1, #0
|
|
ldmia r3!, {r2, r3}
|
|
add r4, r0, #0
|
|
add r0, sp, #0xc
|
|
add r1, sp, #0
|
|
bl sub_020DC514
|
|
ldr r0, [sp]
|
|
strb r0, [r4]
|
|
ldr r0, [sp, #4]
|
|
strb r0, [r4, #1]
|
|
ldr r0, [sp, #8]
|
|
strb r0, [r4, #2]
|
|
add sp, #0x1c
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D500
|
|
|
|
thumb_func_start ov45_0222D524
|
|
ov45_0222D524: ; 0x0222D524
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
ldr r0, [r0]
|
|
add r4, r2, #0
|
|
str r0, [sp, #4]
|
|
ldr r0, [r1]
|
|
str r0, [sp]
|
|
add r0, sp, #0
|
|
ldrb r2, [r0, #6]
|
|
ldrb r1, [r0, #2]
|
|
add r1, r2, r1
|
|
strb r1, [r0, #6]
|
|
ldrb r0, [r0, #6]
|
|
mov r1, #0x3c
|
|
bl _s32_div_f
|
|
add r1, sp, #0
|
|
ldrb r2, [r1, #5]
|
|
add r0, r2, r0
|
|
strb r0, [r1, #5]
|
|
ldrb r0, [r1, #6]
|
|
mov r1, #0x3c
|
|
bl _s32_div_f
|
|
strb r1, [r4, #2]
|
|
add r0, sp, #0
|
|
ldrb r2, [r0, #5]
|
|
ldrb r1, [r0, #1]
|
|
add r1, r2, r1
|
|
strb r1, [r0, #5]
|
|
ldrb r0, [r0, #5]
|
|
mov r1, #0x3c
|
|
bl _s32_div_f
|
|
add r1, sp, #0
|
|
ldrb r2, [r1, #4]
|
|
add r0, r2, r0
|
|
strb r0, [r1, #4]
|
|
ldrb r0, [r1, #5]
|
|
mov r1, #0x3c
|
|
bl _s32_div_f
|
|
strb r1, [r4, #1]
|
|
add r0, sp, #0
|
|
ldrb r2, [r0, #4]
|
|
ldrb r1, [r0]
|
|
add r1, r2, r1
|
|
strb r1, [r0, #4]
|
|
ldrb r0, [r0, #4]
|
|
mov r1, #0x18
|
|
bl _s32_div_f
|
|
strb r1, [r4]
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D524
|
|
|
|
thumb_func_start ov45_0222D594
|
|
ov45_0222D594: ; 0x0222D594
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
ldr r0, [r0]
|
|
add r4, r2, #0
|
|
str r0, [sp, #4]
|
|
ldr r0, [r1]
|
|
add r1, sp, #0
|
|
str r0, [sp]
|
|
ldrb r5, [r1, #2]
|
|
mov r0, #6
|
|
ldrsb r1, [r1, r0]
|
|
lsl r0, r5, #0x18
|
|
asr r0, r0, #0x18
|
|
sub r0, r1, r0
|
|
bpl _0222D5CE
|
|
neg r0, r0
|
|
mov r1, #0x3c
|
|
bl _s32_div_f
|
|
add r2, sp, #0
|
|
ldrb r3, [r2, #6]
|
|
add r0, r0, #1
|
|
mov r1, #0x3c
|
|
mul r1, r0
|
|
add r1, r3, r1
|
|
strb r1, [r2, #6]
|
|
ldrb r1, [r2, #5]
|
|
sub r0, r1, r0
|
|
strb r0, [r2, #5]
|
|
_0222D5CE:
|
|
add r1, sp, #0
|
|
ldrb r0, [r1, #6]
|
|
sub r0, r0, r5
|
|
strb r0, [r4, #2]
|
|
ldrb r5, [r1, #1]
|
|
mov r0, #5
|
|
ldrsb r1, [r1, r0]
|
|
lsl r0, r5, #0x18
|
|
asr r0, r0, #0x18
|
|
sub r0, r1, r0
|
|
bpl _0222D600
|
|
neg r0, r0
|
|
mov r1, #0x3c
|
|
bl _s32_div_f
|
|
add r2, sp, #0
|
|
ldrb r3, [r2, #5]
|
|
add r0, r0, #1
|
|
mov r1, #0x3c
|
|
mul r1, r0
|
|
add r1, r3, r1
|
|
strb r1, [r2, #5]
|
|
ldrb r1, [r2, #4]
|
|
sub r0, r1, r0
|
|
strb r0, [r2, #4]
|
|
_0222D600:
|
|
add r1, sp, #0
|
|
ldrb r0, [r1, #5]
|
|
sub r0, r0, r5
|
|
strb r0, [r4, #1]
|
|
mov r0, #4
|
|
ldrsb r2, [r1, r0]
|
|
mov r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
sub r0, r2, r0
|
|
bpl _0222D62A
|
|
neg r0, r0
|
|
mov r1, #0x18
|
|
bl _s32_div_f
|
|
add r1, sp, #0
|
|
add r2, r0, #1
|
|
mov r0, #0x18
|
|
ldrb r3, [r1, #4]
|
|
mul r0, r2
|
|
add r0, r3, r0
|
|
strb r0, [r1, #4]
|
|
_0222D62A:
|
|
add r0, sp, #0
|
|
ldrb r1, [r0, #4]
|
|
ldrb r0, [r0]
|
|
sub r0, r1, r0
|
|
strb r0, [r4]
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222D594
|
|
|
|
thumb_func_start ov45_0222D638
|
|
ov45_0222D638: ; 0x0222D638
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r1, #0
|
|
str r0, [sp]
|
|
add r4, r2, #0
|
|
add r6, r3, #0
|
|
cmp r5, #0
|
|
beq _0222D6AE
|
|
add r0, r5, #0
|
|
bl sub_02091688
|
|
cmp r4, r0
|
|
bhi _0222D6AE
|
|
mov r1, #0
|
|
ldr r2, [sp]
|
|
add r0, r1, #0
|
|
mov r7, #1
|
|
_0222D658:
|
|
ldrb r3, [r2, #3]
|
|
lsl r3, r3, #0x18
|
|
lsr r3, r3, #0x1c
|
|
bne _0222D664
|
|
add r1, r7, #0
|
|
b _0222D676
|
|
_0222D664:
|
|
ldrh r3, [r2]
|
|
cmp r5, r3
|
|
bne _0222D676
|
|
ldrb r3, [r2, #2]
|
|
cmp r4, r3
|
|
bne _0222D676
|
|
cmp r6, #1
|
|
beq _0222D6AE
|
|
mov r1, #1
|
|
_0222D676:
|
|
cmp r1, #0
|
|
beq _0222D6A6
|
|
lsl r2, r0, #2
|
|
ldr r0, [sp]
|
|
ldr r1, [sp]
|
|
add r0, r0, r2
|
|
strh r5, [r1, r2]
|
|
strb r4, [r0, #2]
|
|
ldrb r3, [r0, #3]
|
|
mov r1, #0xf
|
|
bic r3, r1
|
|
lsl r1, r6, #0x18
|
|
lsr r2, r1, #0x18
|
|
mov r1, #0xf
|
|
and r1, r2
|
|
orr r1, r3
|
|
strb r1, [r0, #3]
|
|
ldrb r2, [r0, #3]
|
|
mov r1, #0xf0
|
|
bic r2, r1
|
|
mov r1, #0x10
|
|
orr r1, r2
|
|
strb r1, [r0, #3]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222D6A6:
|
|
add r0, r0, #1
|
|
add r2, r2, #4
|
|
cmp r0, #0x32
|
|
blt _0222D658
|
|
_0222D6AE:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov45_0222D638
|
|
|
|
thumb_func_start ov45_0222D6B0
|
|
ov45_0222D6B0: ; 0x0222D6B0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
cmp r5, #0x32
|
|
blo _0222D6BE
|
|
bl GF_AssertFail
|
|
_0222D6BE:
|
|
lsl r0, r5, #2
|
|
add r4, r4, r0
|
|
ldrb r0, [r4, #3]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1c
|
|
cmp r0, #1
|
|
beq _0222D6D0
|
|
bl GF_AssertFail
|
|
_0222D6D0:
|
|
ldrh r0, [r4]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222D6B0
|
|
|
|
thumb_func_start ov45_0222D6D4
|
|
ov45_0222D6D4: ; 0x0222D6D4
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x32
|
|
blo _0222D6E2
|
|
bl GF_AssertFail
|
|
_0222D6E2:
|
|
lsl r4, r4, #2
|
|
add r0, r5, r4
|
|
ldrb r0, [r0, #3]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1c
|
|
cmp r0, #1
|
|
beq _0222D6F4
|
|
bl GF_AssertFail
|
|
_0222D6F4:
|
|
add r0, r5, r4
|
|
ldrb r0, [r0, #2]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D6D4
|
|
|
|
thumb_func_start ov45_0222D6FC
|
|
ov45_0222D6FC: ; 0x0222D6FC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
cmp r5, #0x32
|
|
blo _0222D70A
|
|
bl GF_AssertFail
|
|
_0222D70A:
|
|
lsl r0, r5, #2
|
|
add r4, r4, r0
|
|
ldrb r0, [r4, #3]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1c
|
|
cmp r0, #1
|
|
beq _0222D71C
|
|
bl GF_AssertFail
|
|
_0222D71C:
|
|
ldrb r0, [r4, #3]
|
|
lsl r0, r0, #0x1c
|
|
lsr r0, r0, #0x1c
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222D6FC
|
|
|
|
thumb_func_start ov45_0222D724
|
|
ov45_0222D724: ; 0x0222D724
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
cmp r5, #0x32
|
|
blo _0222D732
|
|
bl GF_AssertFail
|
|
_0222D732:
|
|
lsl r0, r5, #2
|
|
add r0, r4, r0
|
|
ldrb r0, [r0, #3]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1c
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D724
|
|
|
|
thumb_func_start ov45_0222D740
|
|
ov45_0222D740: ; 0x0222D740
|
|
push {r4, lr}
|
|
bl NNS_G3dGetMdlSet
|
|
cmp r0, #0
|
|
beq _0222D76A
|
|
add r2, r0, #0
|
|
add r2, #8
|
|
beq _0222D75E
|
|
ldrb r1, [r0, #9]
|
|
cmp r1, #0
|
|
bls _0222D75E
|
|
ldrh r1, [r0, #0xe]
|
|
add r1, r2, r1
|
|
add r1, r1, #4
|
|
b _0222D760
|
|
_0222D75E:
|
|
mov r1, #0
|
|
_0222D760:
|
|
cmp r1, #0
|
|
beq _0222D76A
|
|
ldr r1, [r1]
|
|
add r4, r0, r1
|
|
b _0222D76C
|
|
_0222D76A:
|
|
mov r4, #0
|
|
_0222D76C:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #0x40
|
|
bl sub_020C2BAC
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #0x80
|
|
bl sub_020C2BAC
|
|
mov r2, #2
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #8
|
|
bl sub_020C2BAC
|
|
mov r2, #1
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #0xa
|
|
bl sub_020C2BAC
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D740
|
|
|
|
thumb_func_start ov45_0222D79C
|
|
ov45_0222D79C: ; 0x0222D79C
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl sub_02091688
|
|
cmp r0, #0
|
|
bne _0222D7B0
|
|
cmp r4, #0
|
|
bne _0222D7B0
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_0222D7B0:
|
|
cmp r4, #1
|
|
blo _0222D7BC
|
|
cmp r4, r0
|
|
bhi _0222D7BC
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_0222D7BC:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_0222D79C
|
|
|
|
thumb_func_start ov45_0222D7C0
|
|
ov45_0222D7C0: ; 0x0222D7C0
|
|
ldr r1, _0222D7C8 ; =0x02254BB4
|
|
ldrb r0, [r1, r0]
|
|
bx lr
|
|
nop
|
|
_0222D7C8: .word 0x02254BB4
|
|
thumb_func_end ov45_0222D7C0
|
|
|
|
thumb_func_start ov45_0222D7CC
|
|
ov45_0222D7CC: ; 0x0222D7CC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl ov00_021E6A70
|
|
cmp r0, #0xb
|
|
beq _0222D7DE
|
|
cmp r5, #0x19
|
|
bne _0222D7EA
|
|
_0222D7DE:
|
|
cmp r4, #2
|
|
beq _0222D7E6
|
|
mov r0, #0xe
|
|
pop {r3, r4, r5, pc}
|
|
_0222D7E6:
|
|
mov r0, #0xb
|
|
pop {r3, r4, r5, pc}
|
|
_0222D7EA:
|
|
cmp r5, #0x1a
|
|
bne _0222D7F2
|
|
mov r0, #0xd
|
|
pop {r3, r4, r5, pc}
|
|
_0222D7F2:
|
|
cmp r0, #0
|
|
bge _0222D7F8
|
|
mov r0, #0xb
|
|
_0222D7F8:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D7CC
|
|
|
|
thumb_func_start ov45_0222D7FC
|
|
ov45_0222D7FC: ; 0x0222D7FC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov00_021E6A70
|
|
cmp r4, #0x19
|
|
bne _0222D80C
|
|
mov r0, #0xb
|
|
b _0222D812
|
|
_0222D80C:
|
|
cmp r4, #0x1a
|
|
bne _0222D812
|
|
mov r0, #0xc
|
|
_0222D812:
|
|
cmp r0, #0xb
|
|
bhi _0222D83E
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222D822: ; jump table
|
|
.short _0222D83E - _0222D822 - 2 ; case 0
|
|
.short _0222D83A - _0222D822 - 2 ; case 1
|
|
.short _0222D83E - _0222D822 - 2 ; case 2
|
|
.short _0222D83E - _0222D822 - 2 ; case 3
|
|
.short _0222D83A - _0222D822 - 2 ; case 4
|
|
.short _0222D83A - _0222D822 - 2 ; case 5
|
|
.short _0222D83A - _0222D822 - 2 ; case 6
|
|
.short _0222D83A - _0222D822 - 2 ; case 7
|
|
.short _0222D83A - _0222D822 - 2 ; case 8
|
|
.short _0222D83A - _0222D822 - 2 ; case 9
|
|
.short _0222D83A - _0222D822 - 2 ; case 10
|
|
.short _0222D83A - _0222D822 - 2 ; case 11
|
|
_0222D83A:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0222D83E:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D7FC
|
|
|
|
thumb_func_start ov45_0222D844
|
|
ov45_0222D844: ; 0x0222D844
|
|
push {r3, lr}
|
|
bl sub_020393C8
|
|
cmp r0, #0
|
|
bne _0222D856
|
|
bl sub_020397FC
|
|
cmp r0, #0
|
|
beq _0222D85A
|
|
_0222D856:
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0222D85A:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D844
|
|
|
|
thumb_func_start ov45_0222D860
|
|
ov45_0222D860: ; 0x0222D860
|
|
push {r3, r4, r5, lr}
|
|
mov r1, #0x23
|
|
lsl r1, r1, #4
|
|
add r5, r0, #0
|
|
bl AllocFromHeap
|
|
mov r2, #0x23
|
|
add r4, r0, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #4
|
|
bl memset
|
|
add r0, r4, #0
|
|
add r0, #8
|
|
bl ov45_0222DE1C
|
|
add r0, r4, #0
|
|
add r0, #0x5c
|
|
add r1, r5, #0
|
|
bl ov45_0222DF78
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D860
|
|
|
|
thumb_func_start ov45_0222D890
|
|
ov45_0222D890: ; 0x0222D890
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x5c
|
|
bl ov45_0222DFD0
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D890
|
|
|
|
thumb_func_start ov45_0222D8A4
|
|
ov45_0222D8A4: ; 0x0222D8A4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x5c
|
|
bl ov45_0222E000
|
|
add r4, #8
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl ov45_0222DEA4
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D8A4
|
|
|
|
thumb_func_start ov45_0222D8BC
|
|
ov45_0222D8BC: ; 0x0222D8BC
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
mov r1, #1
|
|
str r1, [r0, #4]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D8BC
|
|
|
|
thumb_func_start ov45_0222D8C8
|
|
ov45_0222D8C8: ; 0x0222D8C8
|
|
push {r3, lr}
|
|
add r0, #8
|
|
bl ov45_0222DE58
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D8C8
|
|
|
|
thumb_func_start ov45_0222D8D4
|
|
ov45_0222D8D4: ; 0x0222D8D4
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
add r0, #8
|
|
add r4, r1, #0
|
|
bl ov45_0222DF14
|
|
add r5, #8
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov45_0222DE74
|
|
add r0, r6, #0
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222D8D4
|
|
|
|
thumb_func_start ov45_0222D8F0
|
|
ov45_0222D8F0: ; 0x0222D8F0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
str r0, [sp]
|
|
str r1, [sp, #4]
|
|
mov r5, #0
|
|
add r4, #8
|
|
mov r6, #2
|
|
mov r7, #2
|
|
_0222D902:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl ov45_0222DF38
|
|
add r2, r0, #0
|
|
tst r0, r7
|
|
beq _0222D91A
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bic r2, r6
|
|
bl ov45_0222DE8C
|
|
_0222D91A:
|
|
add r5, r5, #1
|
|
cmp r5, #0x14
|
|
blt _0222D902
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, #4]
|
|
add r0, #8
|
|
bl ov45_0222DF38
|
|
add r3, r0, #0
|
|
ldr r0, [sp]
|
|
mov r2, #2
|
|
add r0, #8
|
|
ldr r1, [sp, #4]
|
|
orr r2, r3
|
|
str r0, [sp]
|
|
bl ov45_0222DE8C
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov45_0222D8F0
|
|
|
|
thumb_func_start ov45_0222D940
|
|
ov45_0222D940: ; 0x0222D940
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x2c
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, #0x5c
|
|
mov r1, #8
|
|
bl ov45_0222E04C
|
|
add r6, r0, #0
|
|
beq _0222D98C
|
|
ldr r1, [r4]
|
|
str r1, [sp]
|
|
ldr r1, [r4, #4]
|
|
str r1, [sp, #4]
|
|
mov r1, #0
|
|
str r1, [sp, #8]
|
|
str r1, [sp, #0xc]
|
|
ldrh r2, [r4, #8]
|
|
add r3, r1, #0
|
|
str r2, [sp, #0x10]
|
|
ldrh r2, [r4, #0xa]
|
|
str r2, [sp, #0x14]
|
|
str r1, [sp, #0x18]
|
|
mov r2, #0x96
|
|
str r1, [sp, #0x1c]
|
|
lsl r2, r2, #2
|
|
str r2, [sp, #0x20]
|
|
mov r2, #8
|
|
str r2, [sp, #0x24]
|
|
add r2, r1, #0
|
|
str r1, [sp, #0x28]
|
|
bl ov45_0222E0E0
|
|
add r5, #0x5c
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov45_0222E0A4
|
|
_0222D98C:
|
|
add sp, #0x2c
|
|
pop {r3, r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222D940
|
|
|
|
thumb_func_start ov45_0222D990
|
|
ov45_0222D990: ; 0x0222D990
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x2c
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #0xc]
|
|
cmp r0, #0x1b
|
|
bhs _0222D9E6
|
|
add r0, r5, #0
|
|
add r0, #0x5c
|
|
mov r1, #7
|
|
bl ov45_0222E04C
|
|
add r6, r0, #0
|
|
beq _0222D9E6
|
|
ldr r1, [r4]
|
|
mov r2, #0
|
|
str r1, [sp]
|
|
ldr r1, [r4, #4]
|
|
add r3, r2, #0
|
|
str r1, [sp, #4]
|
|
str r2, [sp, #8]
|
|
str r2, [sp, #0xc]
|
|
ldrh r1, [r4, #8]
|
|
str r1, [sp, #0x10]
|
|
ldrh r1, [r4, #0xa]
|
|
str r1, [sp, #0x14]
|
|
str r2, [sp, #0x18]
|
|
mov r1, #0x96
|
|
str r2, [sp, #0x1c]
|
|
lsl r1, r1, #2
|
|
str r1, [sp, #0x20]
|
|
mov r1, #7
|
|
str r1, [sp, #0x24]
|
|
mov r1, #1
|
|
str r1, [sp, #0x28]
|
|
ldr r1, [r4, #0xc]
|
|
bl ov45_0222E0E0
|
|
add r5, #0x5c
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov45_0222E0A4
|
|
_0222D9E6:
|
|
add sp, #0x2c
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222D990
|
|
|
|
thumb_func_start ov45_0222D9EC
|
|
ov45_0222D9EC: ; 0x0222D9EC
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x30
|
|
add r5, r1, #0
|
|
ldr r4, [r5]
|
|
add r6, r0, #0
|
|
cmp r4, #0
|
|
beq _0222DA02
|
|
cmp r4, #1
|
|
beq _0222DA02
|
|
cmp r4, #2
|
|
bne _0222DA76
|
|
_0222DA02:
|
|
ldr r0, [r5, #0x20]
|
|
cmp r0, #1
|
|
ldr r0, [r5, #4]
|
|
bne _0222DA16
|
|
cmp r0, #2
|
|
blo _0222DA76
|
|
cmp r0, #4
|
|
bls _0222DA1E
|
|
add sp, #0x30
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222DA16:
|
|
cmp r0, #1
|
|
blo _0222DA76
|
|
cmp r0, #4
|
|
bhi _0222DA76
|
|
_0222DA1E:
|
|
ldr r0, _0222DA7C ; =0x02254BDC
|
|
lsl r1, r4, #2
|
|
ldr r7, [r0, r1]
|
|
add r0, r6, #0
|
|
lsl r1, r7, #0x10
|
|
add r0, #0x5c
|
|
lsr r1, r1, #0x10
|
|
bl ov45_0222E04C
|
|
str r0, [sp, #0x2c]
|
|
cmp r0, #0
|
|
beq _0222DA76
|
|
ldr r1, [r5, #8]
|
|
str r1, [sp]
|
|
ldr r1, [r5, #0xc]
|
|
str r1, [sp, #4]
|
|
ldr r1, [r5, #0x10]
|
|
str r1, [sp, #8]
|
|
ldr r1, [r5, #0x14]
|
|
str r1, [sp, #0xc]
|
|
ldrh r1, [r5, #0x18]
|
|
str r1, [sp, #0x10]
|
|
ldrh r1, [r5, #0x1a]
|
|
str r1, [sp, #0x14]
|
|
ldrh r1, [r5, #0x1c]
|
|
str r1, [sp, #0x18]
|
|
ldrh r1, [r5, #0x1e]
|
|
str r1, [sp, #0x1c]
|
|
mov r1, #0xe1
|
|
lsl r1, r1, #2
|
|
str r1, [sp, #0x20]
|
|
str r7, [sp, #0x24]
|
|
mov r1, #2
|
|
str r1, [sp, #0x28]
|
|
ldr r2, [r5, #4]
|
|
ldr r3, [r5, #0x20]
|
|
add r1, r4, #0
|
|
bl ov45_0222E0E0
|
|
add r6, #0x5c
|
|
ldr r1, [sp, #0x2c]
|
|
add r0, r6, #0
|
|
bl ov45_0222E0A4
|
|
_0222DA76:
|
|
add sp, #0x30
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222DA7C: .word 0x02254BDC
|
|
thumb_func_end ov45_0222D9EC
|
|
|
|
thumb_func_start ov45_0222DA80
|
|
ov45_0222DA80: ; 0x0222DA80
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x2c
|
|
add r4, r1, #0
|
|
ldr r1, [r4]
|
|
add r5, r0, #0
|
|
cmp r1, #3
|
|
beq _0222DA92
|
|
cmp r1, #4
|
|
bne _0222DADA
|
|
_0222DA92:
|
|
add r1, r1, #5
|
|
add r0, r5, #0
|
|
lsl r1, r1, #0x10
|
|
add r0, #0x5c
|
|
lsr r1, r1, #0x10
|
|
bl ov45_0222E04C
|
|
add r6, r0, #0
|
|
beq _0222DADA
|
|
ldr r1, [r4]
|
|
ldr r2, [r4, #8]
|
|
mov r3, #0
|
|
str r2, [sp]
|
|
str r3, [sp, #4]
|
|
str r3, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
ldrh r2, [r4, #0xc]
|
|
str r2, [sp, #0x10]
|
|
str r3, [sp, #0x14]
|
|
str r3, [sp, #0x18]
|
|
mov r2, #0xe1
|
|
str r3, [sp, #0x1c]
|
|
lsl r2, r2, #2
|
|
str r2, [sp, #0x20]
|
|
add r2, r1, #5
|
|
str r2, [sp, #0x24]
|
|
mov r2, #3
|
|
str r2, [sp, #0x28]
|
|
ldr r2, [r4, #4]
|
|
bl ov45_0222E0E0
|
|
add r5, #0x5c
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov45_0222E0A4
|
|
_0222DADA:
|
|
add sp, #0x2c
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222DA80
|
|
|
|
thumb_func_start ov45_0222DAE0
|
|
ov45_0222DAE0: ; 0x0222DAE0
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x2c
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, #0x5c
|
|
mov r1, #0xc
|
|
bl ov45_0222E04C
|
|
add r6, r0, #0
|
|
beq _0222DB34
|
|
ldr r1, [r4, #4]
|
|
mov r2, #0
|
|
str r1, [sp]
|
|
ldr r1, [r4, #8]
|
|
add r3, r2, #0
|
|
str r1, [sp, #4]
|
|
ldr r1, [r4, #0xc]
|
|
str r1, [sp, #8]
|
|
ldr r1, [r4, #0x10]
|
|
str r1, [sp, #0xc]
|
|
ldrh r1, [r4, #0x14]
|
|
str r1, [sp, #0x10]
|
|
ldrh r1, [r4, #0x16]
|
|
str r1, [sp, #0x14]
|
|
ldrh r1, [r4, #0x18]
|
|
str r1, [sp, #0x18]
|
|
ldrh r1, [r4, #0x1a]
|
|
str r1, [sp, #0x1c]
|
|
ldr r1, _0222DB38 ; =0x000001C2
|
|
str r1, [sp, #0x20]
|
|
mov r1, #0xc
|
|
str r1, [sp, #0x24]
|
|
mov r1, #4
|
|
str r1, [sp, #0x28]
|
|
ldr r1, [r4]
|
|
bl ov45_0222E0E0
|
|
add r5, #0x5c
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov45_0222E0A4
|
|
_0222DB34:
|
|
add sp, #0x2c
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0222DB38: .word 0x000001C2
|
|
thumb_func_end ov45_0222DAE0
|
|
|
|
thumb_func_start ov45_0222DB3C
|
|
ov45_0222DB3C: ; 0x0222DB3C
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x2c
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
add r0, #0x5c
|
|
mov r1, #0xd
|
|
bl ov45_0222E04C
|
|
add r6, r0, #0
|
|
beq _0222DB90
|
|
ldr r1, [r4, #4]
|
|
mov r2, #0
|
|
str r1, [sp]
|
|
ldr r1, [r4, #8]
|
|
add r3, r2, #0
|
|
str r1, [sp, #4]
|
|
ldr r1, [r4, #0xc]
|
|
str r1, [sp, #8]
|
|
ldr r1, [r4, #0x10]
|
|
str r1, [sp, #0xc]
|
|
ldrh r1, [r4, #0x14]
|
|
str r1, [sp, #0x10]
|
|
ldrh r1, [r4, #0x16]
|
|
str r1, [sp, #0x14]
|
|
ldrh r1, [r4, #0x18]
|
|
str r1, [sp, #0x18]
|
|
ldrh r1, [r4, #0x1a]
|
|
str r1, [sp, #0x1c]
|
|
ldr r1, _0222DB94 ; =0x000001C2
|
|
str r1, [sp, #0x20]
|
|
mov r1, #0xd
|
|
str r1, [sp, #0x24]
|
|
mov r1, #5
|
|
str r1, [sp, #0x28]
|
|
ldr r1, [r4]
|
|
bl ov45_0222E0E0
|
|
add r5, #0x5c
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov45_0222E0A4
|
|
_0222DB90:
|
|
add sp, #0x2c
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0222DB94: .word 0x000001C2
|
|
thumb_func_end ov45_0222DB3C
|
|
|
|
thumb_func_start ov45_0222DB98
|
|
ov45_0222DB98: ; 0x0222DB98
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x2c
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4, #4]
|
|
cmp r0, #4
|
|
bhi _0222DC02
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222DBB2: ; jump table
|
|
.short _0222DBC0 - _0222DBB2 - 2 ; case 0
|
|
.short _0222DBC0 - _0222DBB2 - 2 ; case 1
|
|
.short _0222DBC0 - _0222DBB2 - 2 ; case 2
|
|
.short _0222DBBC - _0222DBB2 - 2 ; case 3
|
|
.short _0222DBC0 - _0222DBB2 - 2 ; case 4
|
|
_0222DBBC:
|
|
add sp, #0x2c
|
|
pop {r3, r4, r5, r6, pc}
|
|
_0222DBC0:
|
|
add r0, r5, #0
|
|
add r0, #0x5c
|
|
mov r1, #0xe
|
|
bl ov45_0222E04C
|
|
add r6, r0, #0
|
|
beq _0222DC02
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
str r3, [sp, #4]
|
|
str r3, [sp, #8]
|
|
str r3, [sp, #0xc]
|
|
str r3, [sp, #0x10]
|
|
str r3, [sp, #0x14]
|
|
str r3, [sp, #0x18]
|
|
mov r1, #0xe1
|
|
str r3, [sp, #0x1c]
|
|
lsl r1, r1, #2
|
|
str r1, [sp, #0x20]
|
|
mov r1, #0xe
|
|
str r1, [sp, #0x24]
|
|
mov r1, #6
|
|
str r1, [sp, #0x28]
|
|
ldr r1, [r4]
|
|
ldr r2, [r4, #4]
|
|
ldr r1, [r1]
|
|
bl ov45_0222E0E0
|
|
add r5, #0x5c
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov45_0222E0A4
|
|
_0222DC02:
|
|
add sp, #0x2c
|
|
pop {r3, r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222DB98
|
|
|
|
thumb_func_start ov45_0222DC08
|
|
ov45_0222DC08: ; 0x0222DC08
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x2c
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0x14
|
|
bhs _0222DC5A
|
|
ldrb r0, [r2, r0]
|
|
cmp r0, #0
|
|
beq _0222DC5A
|
|
add r0, r5, #0
|
|
add r0, #0x5c
|
|
mov r1, #1
|
|
bl ov45_0222E04C
|
|
add r6, r0, #0
|
|
beq _0222DC5A
|
|
mov r2, #0
|
|
str r2, [sp]
|
|
str r2, [sp, #4]
|
|
str r2, [sp, #8]
|
|
str r2, [sp, #0xc]
|
|
str r2, [sp, #0x10]
|
|
str r2, [sp, #0x14]
|
|
str r2, [sp, #0x18]
|
|
ldr r1, _0222DC60 ; =0x00000708
|
|
str r2, [sp, #0x1c]
|
|
str r1, [sp, #0x20]
|
|
mov r1, #1
|
|
str r1, [sp, #0x24]
|
|
mov r1, #7
|
|
str r1, [sp, #0x28]
|
|
ldr r1, [r4]
|
|
add r3, r2, #0
|
|
bl ov45_0222E0E0
|
|
add r5, #0x5c
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov45_0222E0A4
|
|
_0222DC5A:
|
|
add sp, #0x2c
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_0222DC60: .word 0x00000708
|
|
thumb_func_end ov45_0222DC08
|
|
|
|
thumb_func_start ov45_0222DC64
|
|
ov45_0222DC64: ; 0x0222DC64
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x30
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _0222DC7A
|
|
cmp r0, #1
|
|
beq _0222DC7A
|
|
cmp r0, #2
|
|
bne _0222DCDA
|
|
_0222DC7A:
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #4]
|
|
bl ov45_0222E5B4
|
|
cmp r0, #0
|
|
beq _0222DCDA
|
|
ldr r7, [r4]
|
|
ldr r0, _0222DCE0 ; =0x02254BC8
|
|
ldrb r6, [r0, r7]
|
|
add r0, r5, #0
|
|
add r0, #0x5c
|
|
add r1, r6, #0
|
|
bl ov45_0222E04C
|
|
str r0, [sp, #0x2c]
|
|
cmp r0, #0
|
|
beq _0222DCDA
|
|
ldr r1, [r4, #8]
|
|
mov r3, #0
|
|
str r1, [sp]
|
|
ldr r1, [r4, #0xc]
|
|
str r1, [sp, #4]
|
|
ldr r1, [r4, #0x10]
|
|
str r1, [sp, #8]
|
|
ldr r1, [r4, #0x14]
|
|
str r1, [sp, #0xc]
|
|
ldrh r1, [r4, #0x18]
|
|
str r1, [sp, #0x10]
|
|
ldrh r1, [r4, #0x1a]
|
|
str r1, [sp, #0x14]
|
|
ldrh r1, [r4, #0x1c]
|
|
str r1, [sp, #0x18]
|
|
ldrh r1, [r4, #0x1e]
|
|
str r1, [sp, #0x1c]
|
|
ldr r1, _0222DCE4 ; =0x000001C2
|
|
str r1, [sp, #0x20]
|
|
str r6, [sp, #0x24]
|
|
mov r1, #8
|
|
str r1, [sp, #0x28]
|
|
ldr r2, [r4, #4]
|
|
add r1, r7, #0
|
|
bl ov45_0222E0E0
|
|
add r5, #0x5c
|
|
ldr r1, [sp, #0x2c]
|
|
add r0, r5, #0
|
|
bl ov45_0222E0A4
|
|
_0222DCDA:
|
|
add sp, #0x30
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222DCE0: .word 0x02254BC8
|
|
_0222DCE4: .word 0x000001C2
|
|
thumb_func_end ov45_0222DC64
|
|
|
|
thumb_func_start ov45_0222DCE8
|
|
ov45_0222DCE8: ; 0x0222DCE8
|
|
ldr r3, _0222DCF0 ; =ov45_0222E03C
|
|
add r0, #0x5c
|
|
bx r3
|
|
nop
|
|
_0222DCF0: .word ov45_0222E03C
|
|
thumb_func_end ov45_0222DCE8
|
|
|
|
thumb_func_start ov45_0222DCF4
|
|
ov45_0222DCF4: ; 0x0222DCF4
|
|
ldr r2, [r0]
|
|
str r2, [r1]
|
|
ldr r0, [r0, #4]
|
|
bx lr
|
|
thumb_func_end ov45_0222DCF4
|
|
|
|
thumb_func_start ov45_0222DCFC
|
|
ov45_0222DCFC: ; 0x0222DCFC
|
|
ldr r3, _0222DD04 ; =ov45_0222DECC
|
|
add r0, #8
|
|
bx r3
|
|
nop
|
|
_0222DD04: .word ov45_0222DECC
|
|
thumb_func_end ov45_0222DCFC
|
|
|
|
thumb_func_start ov45_0222DD08
|
|
ov45_0222DD08: ; 0x0222DD08
|
|
ldr r3, _0222DD10 ; =ov45_0222DEE0
|
|
add r0, #8
|
|
bx r3
|
|
nop
|
|
_0222DD10: .word ov45_0222DEE0
|
|
thumb_func_end ov45_0222DD08
|
|
|
|
thumb_func_start ov45_0222DD14
|
|
ov45_0222DD14: ; 0x0222DD14
|
|
ldr r3, _0222DD1C ; =ov45_0222DEF4
|
|
add r0, #8
|
|
bx r3
|
|
nop
|
|
_0222DD1C: .word ov45_0222DEF4
|
|
thumb_func_end ov45_0222DD14
|
|
|
|
thumb_func_start ov45_0222DD20
|
|
ov45_0222DD20: ; 0x0222DD20
|
|
ldr r3, _0222DD28 ; =ov45_0222DF14
|
|
add r0, #8
|
|
bx r3
|
|
nop
|
|
_0222DD28: .word ov45_0222DF14
|
|
thumb_func_end ov45_0222DD20
|
|
|
|
thumb_func_start ov45_0222DD2C
|
|
ov45_0222DD2C: ; 0x0222DD2C
|
|
ldr r3, _0222DD34 ; =ov45_0222DF58
|
|
add r0, #8
|
|
bx r3
|
|
nop
|
|
_0222DD34: .word ov45_0222DF58
|
|
thumb_func_end ov45_0222DD2C
|
|
|
|
thumb_func_start ov45_0222DD38
|
|
ov45_0222DD38: ; 0x0222DD38
|
|
ldr r3, _0222DD40 ; =ov45_0222DF50
|
|
add r0, #8
|
|
bx r3
|
|
nop
|
|
_0222DD40: .word ov45_0222DF50
|
|
thumb_func_end ov45_0222DD38
|
|
|
|
thumb_func_start ov45_0222DD44
|
|
ov45_0222DD44: ; 0x0222DD44
|
|
mov r1, #0x8a
|
|
lsl r1, r1, #2
|
|
ldr r2, [r0, r1]
|
|
sub r1, #0x2c
|
|
add r0, r0, r1
|
|
cmp r2, r0
|
|
beq _0222DD56
|
|
mov r0, #1
|
|
bx lr
|
|
_0222DD56:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222DD44
|
|
|
|
thumb_func_start ov45_0222DD5C
|
|
ov45_0222DD5C: ; 0x0222DD5C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov45_0222DD44
|
|
cmp r0, #0
|
|
bne _0222DD6C
|
|
bl GF_AssertFail
|
|
_0222DD6C:
|
|
mov r0, #0x8a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r4, r0]
|
|
ldrb r0, [r0]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222DD5C
|
|
|
|
thumb_func_start ov45_0222DD78
|
|
ov45_0222DD78: ; 0x0222DD78
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0
|
|
str r1, [sp, #8]
|
|
add r5, r3, #0
|
|
bl ov45_0222DD44
|
|
cmp r0, #0
|
|
bne _0222DD8E
|
|
bl GF_AssertFail
|
|
_0222DD8E:
|
|
mov r2, #0x8a
|
|
lsl r2, r2, #2
|
|
ldr r4, [r4, r2]
|
|
ldr r3, [sp, #0x28]
|
|
mov r0, #1
|
|
mov r1, #0x1b
|
|
add r2, #0xcd
|
|
bl NewMsgDataFromNarc
|
|
add r7, r0, #0
|
|
ldr r0, [sp, #0x28]
|
|
bl ScrStrBufs_new
|
|
ldrb r6, [r4]
|
|
str r0, [sp, #0xc]
|
|
cmp r6, #9
|
|
bhs _0222DDCA
|
|
ldr r0, [sp, #0x28]
|
|
str r5, [sp]
|
|
str r0, [sp, #4]
|
|
add r0, r4, #0
|
|
ldr r4, _0222DDE0 ; =0x02254C0C
|
|
lsl r5, r6, #2
|
|
ldr r1, [sp, #8]
|
|
ldr r2, [sp, #0xc]
|
|
ldr r4, [r4, r5]
|
|
add r3, r7, #0
|
|
blx r4
|
|
add r4, r0, #0
|
|
b _0222DDCC
|
|
_0222DDCA:
|
|
mov r4, #0
|
|
_0222DDCC:
|
|
add r0, r7, #0
|
|
bl DestroyMsgData
|
|
ldr r0, [sp, #0xc]
|
|
bl ScrStrBufs_delete
|
|
add r0, r4, #0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222DDE0: .word 0x02254C0C
|
|
thumb_func_end ov45_0222DD78
|
|
|
|
thumb_func_start ov45_0222DDE4
|
|
ov45_0222DDE4: ; 0x0222DDE4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r2, #0
|
|
bl ov45_0222DD44
|
|
cmp r0, #0
|
|
bne _0222DDF6
|
|
bl GF_AssertFail
|
|
_0222DDF6:
|
|
mov r0, #0x8a
|
|
lsl r0, r0, #2
|
|
ldr r0, [r5, r0]
|
|
ldrb r2, [r0]
|
|
cmp r2, #9
|
|
bhs _0222DE0E
|
|
lsl r3, r2, #2
|
|
ldr r2, _0222DE18 ; =0x02254BE8
|
|
add r1, r4, #0
|
|
ldr r2, [r2, r3]
|
|
blx r2
|
|
pop {r3, r4, r5, pc}
|
|
_0222DE0E:
|
|
bl GF_AssertFail
|
|
mov r0, #0x14
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222DE18: .word 0x02254BE8
|
|
thumb_func_end ov45_0222DDE4
|
|
|
|
thumb_func_start ov45_0222DE1C
|
|
ov45_0222DE1C: ; 0x0222DE1C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r4, #0
|
|
add r5, r0, #0
|
|
mov r6, #2
|
|
add r7, r4, #0
|
|
_0222DE26:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r2, r6, #0
|
|
add r3, r7, #0
|
|
bl ov45_0222DE3C
|
|
add r4, r4, #1
|
|
cmp r4, #0x14
|
|
blt _0222DE26
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222DE1C
|
|
|
|
thumb_func_start ov45_0222DE3C
|
|
ov45_0222DE3C: ; 0x0222DE3C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
cmp r4, #0x14
|
|
blo _0222DE4E
|
|
bl GF_AssertFail
|
|
_0222DE4E:
|
|
lsl r0, r4, #2
|
|
strh r6, [r5, r0]
|
|
add r0, r5, r0
|
|
strh r7, [r0, #2]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov45_0222DE3C
|
|
|
|
thumb_func_start ov45_0222DE58
|
|
ov45_0222DE58: ; 0x0222DE58
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
bl ov45_0222DE3C
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov45_0222DEA4
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov45_0222DEB8
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222DE58
|
|
|
|
thumb_func_start ov45_0222DE74
|
|
ov45_0222DE74: ; 0x0222DE74
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r2, #2
|
|
mov r3, #0
|
|
bl ov45_0222DE3C
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
bl ov45_0222DEA4
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222DE74
|
|
|
|
thumb_func_start ov45_0222DE8C
|
|
ov45_0222DE8C: ; 0x0222DE8C
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
cmp r4, #0x14
|
|
blo _0222DE9C
|
|
bl GF_AssertFail
|
|
_0222DE9C:
|
|
lsl r0, r4, #2
|
|
add r0, r5, r0
|
|
strh r6, [r0, #2]
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222DE8C
|
|
|
|
thumb_func_start ov45_0222DEA4
|
|
ov45_0222DEA4: ; 0x0222DEA4
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #2
|
|
ble _0222DEB2
|
|
bl GF_AssertFail
|
|
_0222DEB2:
|
|
add r5, #0x50
|
|
strh r4, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222DEA4
|
|
|
|
thumb_func_start ov45_0222DEB8
|
|
ov45_0222DEB8: ; 0x0222DEB8
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x14
|
|
blo _0222DEC6
|
|
bl GF_AssertFail
|
|
_0222DEC6:
|
|
add r5, #0x52
|
|
strh r4, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222DEB8
|
|
|
|
thumb_func_start ov45_0222DECC
|
|
ov45_0222DECC: ; 0x0222DECC
|
|
push {r3, lr}
|
|
bl ov45_0222DEE0
|
|
cmp r0, #2
|
|
beq _0222DEDA
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0222DEDA:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222DECC
|
|
|
|
thumb_func_start ov45_0222DEE0
|
|
ov45_0222DEE0: ; 0x0222DEE0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
cmp r5, #0x14
|
|
blo _0222DEEE
|
|
bl GF_AssertFail
|
|
_0222DEEE:
|
|
lsl r0, r5, #2
|
|
ldrh r0, [r4, r0]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222DEE0
|
|
|
|
thumb_func_start ov45_0222DEF4
|
|
ov45_0222DEF4: ; 0x0222DEF4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
cmp r5, #0x14
|
|
blo _0222DF02
|
|
bl GF_AssertFail
|
|
_0222DF02:
|
|
lsl r0, r5, #2
|
|
add r0, r4, r0
|
|
ldrh r1, [r0, #2]
|
|
mov r0, #1
|
|
tst r1, r0
|
|
bne _0222DF10
|
|
mov r0, #0
|
|
_0222DF10:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222DEF4
|
|
|
|
thumb_func_start ov45_0222DF14
|
|
ov45_0222DF14: ; 0x0222DF14
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
cmp r5, #0x14
|
|
blo _0222DF22
|
|
bl GF_AssertFail
|
|
_0222DF22:
|
|
lsl r0, r5, #2
|
|
add r0, r4, r0
|
|
ldrh r1, [r0, #2]
|
|
mov r0, #2
|
|
tst r0, r1
|
|
beq _0222DF32
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_0222DF32:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222DF14
|
|
|
|
thumb_func_start ov45_0222DF38
|
|
ov45_0222DF38: ; 0x0222DF38
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
cmp r5, #0x14
|
|
blo _0222DF46
|
|
bl GF_AssertFail
|
|
_0222DF46:
|
|
lsl r0, r5, #2
|
|
add r0, r4, r0
|
|
ldrh r0, [r0, #2]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222DF38
|
|
|
|
thumb_func_start ov45_0222DF50
|
|
ov45_0222DF50: ; 0x0222DF50
|
|
add r0, #0x50
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222DF50
|
|
|
|
thumb_func_start ov45_0222DF58
|
|
ov45_0222DF58: ; 0x0222DF58
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #0x14
|
|
blo _0222DF66
|
|
bl GF_AssertFail
|
|
_0222DF66:
|
|
add r5, #0x52
|
|
ldrh r0, [r5]
|
|
cmp r0, r4
|
|
bne _0222DF72
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
_0222DF72:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222DF58
|
|
|
|
thumb_func_start ov45_0222DF78
|
|
ov45_0222DF78: ; 0x0222DF78
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
mov r2, #0x75
|
|
add r6, r1, #0
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
str r0, [sp]
|
|
bl memset
|
|
mov r0, #0
|
|
str r0, [sp, #8]
|
|
ldr r0, [sp]
|
|
mov r7, #8
|
|
str r0, [sp, #4]
|
|
_0222DF94:
|
|
ldr r5, [sp, #4]
|
|
mov r4, #0
|
|
_0222DF98:
|
|
add r0, r7, #0
|
|
add r1, r6, #0
|
|
bl String_ctor
|
|
str r0, [r5, #0x10]
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _0222DF98
|
|
ldr r0, [sp, #4]
|
|
add r0, #0x34
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #8]
|
|
add r0, r0, #1
|
|
str r0, [sp, #8]
|
|
cmp r0, #8
|
|
blt _0222DF94
|
|
mov r2, #0x1a
|
|
lsl r2, r2, #4
|
|
ldr r0, [sp]
|
|
add r1, r2, #0
|
|
add r3, r0, r2
|
|
add r1, #0x2c
|
|
str r3, [r0, r1]
|
|
add r2, #0x30
|
|
str r3, [r0, r2]
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov45_0222DF78
|
|
|
|
thumb_func_start ov45_0222DFD0
|
|
ov45_0222DFD0: ; 0x0222DFD0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r0, [sp]
|
|
mov r7, #0
|
|
add r6, r0, #0
|
|
_0222DFD8:
|
|
mov r4, #0
|
|
add r5, r6, #0
|
|
_0222DFDC:
|
|
ldr r0, [r5, #0x10]
|
|
bl String_dtor
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, #4
|
|
blt _0222DFDC
|
|
add r7, r7, #1
|
|
add r6, #0x34
|
|
cmp r7, #8
|
|
blt _0222DFD8
|
|
mov r2, #0x75
|
|
ldr r0, [sp]
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
bl memset
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov45_0222DFD0
|
|
|
|
thumb_func_start ov45_0222E000
|
|
ov45_0222E000: ; 0x0222E000
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r0, #0
|
|
mov r0, #0x73
|
|
lsl r0, r0, #2
|
|
ldr r1, [r6, r0]
|
|
sub r0, #0x2c
|
|
add r4, r6, r0
|
|
cmp r1, r4
|
|
beq _0222E038
|
|
mov r7, #0
|
|
_0222E014:
|
|
ldr r5, [r1, #0x2c]
|
|
mov r0, #0x2a
|
|
strh r7, [r1, #0x28]
|
|
ldrsh r0, [r1, r0]
|
|
sub r0, r0, #1
|
|
cmp r0, #0
|
|
ble _0222E02C
|
|
mov r0, #0x2a
|
|
ldrsh r0, [r1, r0]
|
|
sub r0, r0, #1
|
|
strh r0, [r1, #0x2a]
|
|
b _0222E032
|
|
_0222E02C:
|
|
add r0, r6, #0
|
|
bl ov45_0222E0CC
|
|
_0222E032:
|
|
add r1, r5, #0
|
|
cmp r5, r4
|
|
bne _0222E014
|
|
_0222E038:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222E000
|
|
|
|
thumb_func_start ov45_0222E03C
|
|
ov45_0222E03C: ; 0x0222E03C
|
|
mov r1, #0x73
|
|
lsl r1, r1, #2
|
|
ldr r3, _0222E048 ; =ov45_0222E0CC
|
|
ldr r1, [r0, r1]
|
|
bx r3
|
|
nop
|
|
_0222E048: .word ov45_0222E0CC
|
|
thumb_func_end ov45_0222E03C
|
|
|
|
thumb_func_start ov45_0222E04C
|
|
ov45_0222E04C: ; 0x0222E04C
|
|
push {r3, r4, r5, lr}
|
|
mov r4, #0
|
|
add r3, r4, #0
|
|
add r5, r0, #0
|
|
_0222E054:
|
|
ldr r2, [r5, #0x2c]
|
|
cmp r2, #0
|
|
bne _0222E062
|
|
mov r2, #0x34
|
|
mul r2, r3
|
|
add r4, r0, r2
|
|
b _0222E06A
|
|
_0222E062:
|
|
add r3, r3, #1
|
|
add r5, #0x34
|
|
cmp r3, #8
|
|
blt _0222E054
|
|
_0222E06A:
|
|
cmp r4, #0
|
|
bne _0222E08E
|
|
mov r2, #0
|
|
add r5, r0, #0
|
|
_0222E072:
|
|
ldrh r3, [r5, #0x28]
|
|
cmp r3, r1
|
|
blo _0222E086
|
|
mov r1, #0x34
|
|
mul r1, r2
|
|
add r4, r0, r1
|
|
add r1, r4, #0
|
|
bl ov45_0222E0CC
|
|
b _0222E08E
|
|
_0222E086:
|
|
add r2, r2, #1
|
|
add r5, #0x34
|
|
cmp r2, #8
|
|
blt _0222E072
|
|
_0222E08E:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222E04C
|
|
|
|
thumb_func_start ov45_0222E094
|
|
ov45_0222E094: ; 0x0222E094
|
|
ldr r2, [r0, #0x2c]
|
|
str r2, [r1, #0x2c]
|
|
str r0, [r1, #0x30]
|
|
str r1, [r0, #0x2c]
|
|
ldr r0, [r1, #0x2c]
|
|
str r1, [r0, #0x30]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222E094
|
|
|
|
thumb_func_start ov45_0222E0A4
|
|
ov45_0222E0A4: ; 0x0222E0A4
|
|
push {r4, lr}
|
|
mov r2, #0x1d
|
|
lsl r2, r2, #4
|
|
ldr r3, [r0, r2]
|
|
sub r2, #0x30
|
|
add r2, r0, r2
|
|
cmp r3, r2
|
|
beq _0222E0C2
|
|
ldrh r4, [r1, #0x28]
|
|
_0222E0B6:
|
|
ldrh r0, [r3, #0x28]
|
|
cmp r0, r4
|
|
blo _0222E0C2
|
|
ldr r3, [r3, #0x30]
|
|
cmp r3, r2
|
|
bne _0222E0B6
|
|
_0222E0C2:
|
|
add r0, r3, #0
|
|
bl ov45_0222E094
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222E0A4
|
|
|
|
thumb_func_start ov45_0222E0CC
|
|
ov45_0222E0CC: ; 0x0222E0CC
|
|
ldr r2, [r1, #0x2c]
|
|
ldr r0, [r1, #0x30]
|
|
str r2, [r0, #0x2c]
|
|
ldr r2, [r1, #0x30]
|
|
ldr r0, [r1, #0x2c]
|
|
str r2, [r0, #0x30]
|
|
mov r0, #0
|
|
str r0, [r1, #0x30]
|
|
str r0, [r1, #0x2c]
|
|
bx lr
|
|
thumb_func_end ov45_0222E0CC
|
|
|
|
thumb_func_start ov45_0222E0E0
|
|
ov45_0222E0E0: ; 0x0222E0E0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [sp, #0x40]
|
|
add r4, r1, #0
|
|
add r6, r2, #0
|
|
add r7, r3, #0
|
|
cmp r0, #9
|
|
blo _0222E0F4
|
|
bl GF_AssertFail
|
|
_0222E0F4:
|
|
ldr r0, [sp, #0x40]
|
|
strb r0, [r5]
|
|
ldr r0, [sp, #0x38]
|
|
strh r0, [r5, #0x2a]
|
|
ldr r0, [sp, #0x3c]
|
|
strh r0, [r5, #0x28]
|
|
str r4, [r5, #4]
|
|
str r6, [r5, #8]
|
|
str r7, [r5, #0xc]
|
|
add r0, sp, #8
|
|
ldrh r1, [r0, #0x20]
|
|
strh r1, [r5, #0x20]
|
|
ldrh r1, [r0, #0x24]
|
|
strh r1, [r5, #0x22]
|
|
ldrh r1, [r0, #0x28]
|
|
strh r1, [r5, #0x24]
|
|
ldrh r0, [r0, #0x2c]
|
|
strh r0, [r5, #0x26]
|
|
ldr r0, [sp, #0x18]
|
|
cmp r0, #0
|
|
beq _0222E124
|
|
ldr r1, [r5, #0x10]
|
|
bl sub_02028F58
|
|
_0222E124:
|
|
ldr r0, [sp, #0x1c]
|
|
cmp r0, #0
|
|
beq _0222E130
|
|
ldr r1, [r5, #0x14]
|
|
bl sub_02028F58
|
|
_0222E130:
|
|
ldr r0, [sp, #0x20]
|
|
cmp r0, #0
|
|
beq _0222E13C
|
|
ldr r1, [r5, #0x18]
|
|
bl sub_02028F58
|
|
_0222E13C:
|
|
ldr r0, [sp, #0x24]
|
|
cmp r0, #0
|
|
beq _0222E148
|
|
ldr r1, [r5, #0x1c]
|
|
bl sub_02028F58
|
|
_0222E148:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222E0E0
|
|
|
|
thumb_func_start ov45_0222E14C
|
|
ov45_0222E14C: ; 0x0222E14C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
ldr r0, _0222E19C ; =gGameLanguage
|
|
add r6, r2, #0
|
|
ldrb r4, [r0]
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r4, [sp, #4]
|
|
mov r1, #0
|
|
add r7, r3, #0
|
|
ldr r2, [r5, #0x10]
|
|
add r0, r6, #0
|
|
add r3, r1, #0
|
|
bl BufferString
|
|
mov r1, #1
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
ldr r2, [r5, #0x14]
|
|
add r0, r6, #0
|
|
mov r3, #0
|
|
bl BufferString
|
|
add r0, r7, #0
|
|
mov r1, #7
|
|
bl NewString_ReadMsgData
|
|
add r4, r0, #0
|
|
ldr r1, [sp, #0x20]
|
|
add r0, r6, #0
|
|
add r2, r4, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r4, #0
|
|
bl String_dtor
|
|
mov r0, #1
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0222E19C: .word gGameLanguage
|
|
thumb_func_end ov45_0222E14C
|
|
|
|
thumb_func_start ov45_0222E1A0
|
|
ov45_0222E1A0: ; 0x0222E1A0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
ldr r0, _0222E1FC ; =gGameLanguage
|
|
add r6, r2, #0
|
|
ldrb r4, [r0]
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r4, [sp, #4]
|
|
mov r1, #0
|
|
add r7, r3, #0
|
|
ldr r2, [r5, #0x10]
|
|
add r0, r6, #0
|
|
add r3, r1, #0
|
|
bl BufferString
|
|
mov r1, #1
|
|
str r1, [sp]
|
|
str r4, [sp, #4]
|
|
ldr r2, [r5, #0x14]
|
|
add r0, r6, #0
|
|
mov r3, #0
|
|
bl BufferString
|
|
ldr r2, [r5, #4]
|
|
add r0, r6, #0
|
|
mov r1, #2
|
|
bl sub_0200C7BC
|
|
add r0, r7, #0
|
|
mov r1, #8
|
|
bl NewString_ReadMsgData
|
|
add r4, r0, #0
|
|
ldr r1, [sp, #0x20]
|
|
add r0, r6, #0
|
|
add r2, r4, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r4, #0
|
|
bl String_dtor
|
|
mov r0, #1
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222E1FC: .word gGameLanguage
|
|
thumb_func_end ov45_0222E1A0
|
|
|
|
thumb_func_start ov45_0222E200
|
|
ov45_0222E200: ; 0x0222E200
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
add r4, r2, #0
|
|
ldr r2, [r5, #4]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r7, r3, #0
|
|
bl sub_0200C74C
|
|
ldr r0, [r5, #0xc]
|
|
cmp r0, #1
|
|
bne _0222E2EE
|
|
ldr r0, [r5, #8]
|
|
cmp r0, #2
|
|
beq _0222E266
|
|
cmp r0, #3
|
|
beq _0222E22A
|
|
cmp r0, #4
|
|
beq _0222E290
|
|
b _0222E2DE
|
|
_0222E22A:
|
|
ldr r0, _0222E338 ; =gGameLanguage
|
|
mov r1, #1
|
|
ldrb r6, [r0]
|
|
str r1, [sp]
|
|
add r0, r4, #0
|
|
str r6, [sp, #4]
|
|
ldr r2, [r5, #0x10]
|
|
mov r3, #0
|
|
bl BufferString
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r6, [sp, #4]
|
|
ldr r2, [r5, #0x14]
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
mov r3, #0
|
|
bl BufferString
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r6, [sp, #4]
|
|
ldr r2, [r5, #0x18]
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
mov r3, #0
|
|
bl BufferString
|
|
mov r1, #0x12
|
|
b _0222E2E4
|
|
_0222E266:
|
|
ldr r0, _0222E338 ; =gGameLanguage
|
|
mov r1, #1
|
|
ldrb r6, [r0]
|
|
str r1, [sp]
|
|
add r0, r4, #0
|
|
str r6, [sp, #4]
|
|
ldr r2, [r5, #0x10]
|
|
mov r3, #0
|
|
bl BufferString
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r6, [sp, #4]
|
|
ldr r2, [r5, #0x14]
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
mov r3, #0
|
|
bl BufferString
|
|
mov r1, #0x13
|
|
b _0222E2E4
|
|
_0222E290:
|
|
ldr r0, _0222E338 ; =gGameLanguage
|
|
mov r1, #1
|
|
ldrb r6, [r0]
|
|
str r1, [sp]
|
|
add r0, r4, #0
|
|
str r6, [sp, #4]
|
|
ldr r2, [r5, #0x10]
|
|
mov r3, #0
|
|
bl BufferString
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r6, [sp, #4]
|
|
ldr r2, [r5, #0x14]
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
mov r3, #0
|
|
bl BufferString
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r6, [sp, #4]
|
|
ldr r2, [r5, #0x18]
|
|
add r0, r4, #0
|
|
mov r1, #3
|
|
mov r3, #0
|
|
bl BufferString
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
str r6, [sp, #4]
|
|
ldr r2, [r5, #0x1c]
|
|
add r0, r4, #0
|
|
mov r1, #4
|
|
mov r3, #0
|
|
bl BufferString
|
|
mov r1, #6
|
|
b _0222E2E4
|
|
_0222E2DE:
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222E2E4:
|
|
add r0, r7, #0
|
|
bl NewString_ReadMsgData
|
|
add r5, r0, #0
|
|
b _0222E320
|
|
_0222E2EE:
|
|
ldr r0, _0222E338 ; =gGameLanguage
|
|
mov r1, #1
|
|
ldrb r0, [r0]
|
|
str r1, [sp]
|
|
mov r3, #0
|
|
str r0, [sp, #4]
|
|
ldr r2, [r5, #0x10]
|
|
add r0, r4, #0
|
|
bl BufferString
|
|
mov r3, #1
|
|
str r3, [sp]
|
|
str r3, [sp, #4]
|
|
ldr r5, [r5, #8]
|
|
mov r2, #4
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
sub r2, r2, r5
|
|
bl BufferIntegerAsString
|
|
add r0, r7, #0
|
|
mov r1, #5
|
|
bl NewString_ReadMsgData
|
|
add r5, r0, #0
|
|
_0222E320:
|
|
ldr r1, [sp, #0x20]
|
|
add r0, r4, #0
|
|
add r2, r5, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r5, #0
|
|
bl String_dtor
|
|
mov r0, #1
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222E338: .word gGameLanguage
|
|
thumb_func_end ov45_0222E200
|
|
|
|
thumb_func_start ov45_0222E33C
|
|
ov45_0222E33C: ; 0x0222E33C
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
add r4, r2, #0
|
|
ldr r2, [r5, #4]
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
add r6, r3, #0
|
|
bl sub_0200C74C
|
|
ldr r0, _0222E398 ; =gGameLanguage
|
|
mov r1, #1
|
|
ldrb r0, [r0]
|
|
str r1, [sp]
|
|
mov r3, #0
|
|
str r0, [sp, #4]
|
|
ldr r2, [r5, #0x10]
|
|
add r0, r4, #0
|
|
bl BufferString
|
|
mov r3, #1
|
|
str r3, [sp]
|
|
str r3, [sp, #4]
|
|
ldr r5, [r5, #8]
|
|
mov r2, #8
|
|
add r0, r4, #0
|
|
mov r1, #2
|
|
sub r2, r2, r5
|
|
bl BufferIntegerAsString
|
|
add r0, r6, #0
|
|
mov r1, #9
|
|
bl NewString_ReadMsgData
|
|
add r5, r0, #0
|
|
ldr r1, [sp, #0x18]
|
|
add r0, r4, #0
|
|
add r2, r5, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r5, #0
|
|
bl String_dtor
|
|
mov r0, #1
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0222E398: .word gGameLanguage
|
|
thumb_func_end ov45_0222E33C
|
|
|
|
thumb_func_start ov45_0222E39C
|
|
ov45_0222E39C: ; 0x0222E39C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r6, r0, #0
|
|
ldr r1, [r6, #4]
|
|
add r7, r2, #0
|
|
mov r4, #0
|
|
str r3, [sp, #8]
|
|
cmp r1, #0
|
|
bls _0222E3D4
|
|
ldr r0, _0222E410 ; =gGameLanguage
|
|
add r5, r6, #0
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0xc]
|
|
_0222E3B6:
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0xc]
|
|
add r1, r4, #0
|
|
str r0, [sp, #4]
|
|
ldr r2, [r5, #0x10]
|
|
add r0, r7, #0
|
|
mov r3, #0
|
|
bl BufferString
|
|
ldr r1, [r6, #4]
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, r1
|
|
blo _0222E3B6
|
|
_0222E3D4:
|
|
ldrb r0, [r6]
|
|
cmp r0, #4
|
|
bne _0222E3E4
|
|
add r0, r7, #0
|
|
mov r2, #5
|
|
bl sub_0200C74C
|
|
b _0222E3EC
|
|
_0222E3E4:
|
|
add r0, r7, #0
|
|
mov r2, #6
|
|
bl sub_0200C74C
|
|
_0222E3EC:
|
|
ldr r2, [r6, #4]
|
|
mov r1, #0xe
|
|
ldr r0, [sp, #8]
|
|
sub r1, r1, r2
|
|
bl NewString_ReadMsgData
|
|
add r4, r0, #0
|
|
ldr r1, [sp, #0x28]
|
|
add r0, r7, #0
|
|
add r2, r4, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r4, #0
|
|
bl String_dtor
|
|
mov r0, #1
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0222E410: .word gGameLanguage
|
|
thumb_func_end ov45_0222E39C
|
|
|
|
thumb_func_start ov45_0222E414
|
|
ov45_0222E414: ; 0x0222E414
|
|
push {r3, r4, r5, lr}
|
|
ldr r0, [r0, #8]
|
|
add r4, r2, #0
|
|
add r5, r3, #0
|
|
cmp r0, #4
|
|
bhi _0222E464
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222E42C: ; jump table
|
|
.short _0222E436 - _0222E42C - 2 ; case 0
|
|
.short _0222E444 - _0222E42C - 2 ; case 1
|
|
.short _0222E452 - _0222E42C - 2 ; case 2
|
|
.short _0222E464 - _0222E42C - 2 ; case 3
|
|
.short _0222E460 - _0222E42C - 2 ; case 4
|
|
_0222E436:
|
|
mov r1, #0
|
|
add r0, r4, #0
|
|
add r2, r1, #0
|
|
bl sub_0200C784
|
|
mov r1, #0xf
|
|
b _0222E468
|
|
_0222E444:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #1
|
|
bl sub_0200C784
|
|
mov r1, #0x14
|
|
b _0222E468
|
|
_0222E452:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #2
|
|
bl sub_0200C784
|
|
mov r1, #0x10
|
|
b _0222E468
|
|
_0222E460:
|
|
mov r1, #0x11
|
|
b _0222E468
|
|
_0222E464:
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0222E468:
|
|
add r0, r5, #0
|
|
bl NewString_ReadMsgData
|
|
add r5, r0, #0
|
|
ldr r1, [sp, #0x10]
|
|
add r0, r4, #0
|
|
add r2, r5, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r5, #0
|
|
bl String_dtor
|
|
mov r0, #1
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222E414
|
|
|
|
thumb_func_start ov45_0222E484
|
|
ov45_0222E484: ; 0x0222E484
|
|
push {r3, lr}
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0x14
|
|
blo _0222E490
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_0222E490:
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _0222E49A
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_0222E49A:
|
|
ldr r2, [sp, #8]
|
|
add r0, r3, #0
|
|
mov r1, #0x15
|
|
bl ReadMsgDataIntoString
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
thumb_func_end ov45_0222E484
|
|
|
|
thumb_func_start ov45_0222E4A8
|
|
ov45_0222E4A8: ; 0x0222E4A8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r6, r0, #0
|
|
ldr r0, [r6, #4]
|
|
ldr r1, [r6, #8]
|
|
add r7, r2, #0
|
|
str r3, [sp, #8]
|
|
bl ov45_0222E5B4
|
|
cmp r0, #0
|
|
bne _0222E4C4
|
|
add sp, #0x10
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222E4C4:
|
|
ldr r2, [r6, #4]
|
|
add r0, r7, #0
|
|
mov r1, #0
|
|
bl sub_0200C74C
|
|
ldr r1, [r6, #8]
|
|
mov r4, #0
|
|
cmp r1, #0
|
|
bls _0222E4FC
|
|
ldr r0, _0222E534 ; =gGameLanguage
|
|
add r5, r6, #0
|
|
ldrb r0, [r0]
|
|
str r0, [sp, #0xc]
|
|
_0222E4DE:
|
|
mov r0, #1
|
|
str r0, [sp]
|
|
ldr r0, [sp, #0xc]
|
|
add r1, r4, #1
|
|
str r0, [sp, #4]
|
|
ldr r2, [r5, #0x10]
|
|
add r0, r7, #0
|
|
mov r3, #0
|
|
bl BufferString
|
|
ldr r1, [r6, #8]
|
|
add r4, r4, #1
|
|
add r5, r5, #4
|
|
cmp r4, r1
|
|
blo _0222E4DE
|
|
_0222E4FC:
|
|
ldr r0, [r6, #4]
|
|
cmp r0, #1
|
|
bhi _0222E510
|
|
lsl r2, r1, #1
|
|
ldr r1, _0222E538 ; =0x02254BCA
|
|
ldr r0, [sp, #8]
|
|
ldrh r1, [r1, r2]
|
|
bl NewString_ReadMsgData
|
|
b _0222E51C
|
|
_0222E510:
|
|
lsl r2, r1, #1
|
|
ldr r1, _0222E53C ; =0x02254BD2
|
|
ldr r0, [sp, #8]
|
|
ldrh r1, [r1, r2]
|
|
bl NewString_ReadMsgData
|
|
_0222E51C:
|
|
add r4, r0, #0
|
|
ldr r1, [sp, #0x28]
|
|
add r0, r7, #0
|
|
add r2, r4, #0
|
|
bl StringExpandPlaceholders
|
|
add r0, r4, #0
|
|
bl String_dtor
|
|
mov r0, #1
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0222E534: .word gGameLanguage
|
|
_0222E538: .word 0x02254BCA
|
|
_0222E53C: .word 0x02254BD2
|
|
thumb_func_end ov45_0222E4A8
|
|
|
|
thumb_func_start ov45_0222E540
|
|
ov45_0222E540: ; 0x0222E540
|
|
cmp r1, #2
|
|
blo _0222E548
|
|
mov r0, #0x14
|
|
bx lr
|
|
_0222E548:
|
|
lsl r1, r1, #1
|
|
add r0, r0, r1
|
|
ldrh r0, [r0, #0x20]
|
|
bx lr
|
|
thumb_func_end ov45_0222E540
|
|
|
|
thumb_func_start ov45_0222E550
|
|
ov45_0222E550: ; 0x0222E550
|
|
cmp r1, #2
|
|
blo _0222E558
|
|
mov r0, #0x14
|
|
bx lr
|
|
_0222E558:
|
|
lsl r1, r1, #1
|
|
add r0, r0, r1
|
|
ldrh r0, [r0, #0x20]
|
|
bx lr
|
|
thumb_func_end ov45_0222E550
|
|
|
|
thumb_func_start ov45_0222E560
|
|
ov45_0222E560: ; 0x0222E560
|
|
ldr r2, [r0, #8]
|
|
cmp r2, r1
|
|
bhi _0222E56A
|
|
mov r0, #0x14
|
|
bx lr
|
|
_0222E56A:
|
|
lsl r1, r1, #1
|
|
add r0, r0, r1
|
|
ldrh r0, [r0, #0x20]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222E560
|
|
|
|
thumb_func_start ov45_0222E574
|
|
ov45_0222E574: ; 0x0222E574
|
|
cmp r1, #1
|
|
blo _0222E57C
|
|
mov r0, #0x14
|
|
bx lr
|
|
_0222E57C:
|
|
lsl r1, r1, #1
|
|
add r0, r0, r1
|
|
ldrh r0, [r0, #0x20]
|
|
bx lr
|
|
thumb_func_end ov45_0222E574
|
|
|
|
thumb_func_start ov45_0222E584
|
|
ov45_0222E584: ; 0x0222E584
|
|
ldr r2, [r0, #4]
|
|
cmp r2, r1
|
|
bhi _0222E58E
|
|
mov r0, #0x14
|
|
bx lr
|
|
_0222E58E:
|
|
lsl r1, r1, #1
|
|
add r0, r0, r1
|
|
ldrh r0, [r0, #0x20]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222E584
|
|
|
|
thumb_func_start ov45_0222E598
|
|
ov45_0222E598: ; 0x0222E598
|
|
mov r0, #0x14
|
|
bx lr
|
|
thumb_func_end ov45_0222E598
|
|
|
|
thumb_func_start ov45_0222E59C
|
|
ov45_0222E59C: ; 0x0222E59C
|
|
mov r0, #0x14
|
|
bx lr
|
|
thumb_func_end ov45_0222E59C
|
|
|
|
thumb_func_start ov45_0222E5A0
|
|
ov45_0222E5A0: ; 0x0222E5A0
|
|
ldr r2, [r0, #8]
|
|
cmp r2, r1
|
|
bhi _0222E5AA
|
|
mov r0, #0x14
|
|
bx lr
|
|
_0222E5AA:
|
|
lsl r1, r1, #1
|
|
add r0, r0, r1
|
|
ldrh r0, [r0, #0x20]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222E5A0
|
|
|
|
thumb_func_start ov45_0222E5B4
|
|
ov45_0222E5B4: ; 0x0222E5B4
|
|
cmp r0, #1
|
|
bhi _0222E5C4
|
|
cmp r1, #1
|
|
blo _0222E5C0
|
|
cmp r1, #4
|
|
bls _0222E5D0
|
|
_0222E5C0:
|
|
mov r0, #0
|
|
bx lr
|
|
_0222E5C4:
|
|
cmp r1, #2
|
|
blo _0222E5CC
|
|
cmp r1, #4
|
|
bls _0222E5D0
|
|
_0222E5CC:
|
|
mov r0, #0
|
|
bx lr
|
|
_0222E5D0:
|
|
mov r0, #1
|
|
bx lr
|
|
thumb_func_end ov45_0222E5B4
|
|
|
|
thumb_func_start ov45_0222E5D4
|
|
ov45_0222E5D4: ; 0x0222E5D4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _0222E67C ; =0x022577C0
|
|
add r6, r1, #0
|
|
ldr r0, [r0]
|
|
add r7, r2, #0
|
|
add r4, r3, #0
|
|
cmp r0, #0
|
|
beq _0222E5EA
|
|
bl GF_AssertFail
|
|
_0222E5EA:
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #2
|
|
cmp r7, r0
|
|
blo _0222E5F6
|
|
bl GF_AssertFail
|
|
_0222E5F6:
|
|
ldr r1, _0222E680 ; =0x00000988
|
|
add r0, r5, #0
|
|
bl AllocFromHeap
|
|
ldr r1, _0222E67C ; =0x022577C0
|
|
ldr r2, _0222E680 ; =0x00000988
|
|
str r0, [r1]
|
|
mov r1, #0
|
|
bl memset
|
|
ldr r0, _0222E67C ; =0x022577C0
|
|
ldr r0, [r0]
|
|
str r6, [r0]
|
|
add r0, r6, #0
|
|
bl sub_0202C6F4
|
|
ldr r1, _0222E67C ; =0x022577C0
|
|
ldr r1, [r1]
|
|
str r0, [r1, #4]
|
|
add r0, r6, #0
|
|
bl sub_0202CA44
|
|
ldr r6, _0222E67C ; =0x022577C0
|
|
ldr r1, [r6]
|
|
str r0, [r1, #8]
|
|
ldr r3, [r6]
|
|
ldmia r4!, {r0, r1}
|
|
add r2, r3, #0
|
|
add r2, #0xc
|
|
stmia r2!, {r0, r1}
|
|
ldmia r4!, {r0, r1}
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r4]
|
|
add r1, r7, #0
|
|
str r0, [r2]
|
|
ldr r0, [sp, #0x18]
|
|
add r2, r5, #0
|
|
str r0, [r3, #0x20]
|
|
ldr r0, [r6]
|
|
bl ov45_0222F848
|
|
add r0, r6, #0
|
|
ldr r0, [r0]
|
|
mov r1, #0x14
|
|
mov r2, #8
|
|
add r3, r5, #0
|
|
bl ov45_0222F9B8
|
|
add r0, r6, #0
|
|
ldr r0, [r0]
|
|
bl ov45_02230144
|
|
add r0, r6, #0
|
|
ldr r1, [r0]
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #4
|
|
add r0, r1, r0
|
|
mov r1, #0x80
|
|
add r2, r5, #0
|
|
bl ov45_022303E4
|
|
add r0, r6, #0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222E684 ; =0x00000984
|
|
mov r2, #0
|
|
str r2, [r1, r0]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0222E67C: .word 0x022577C0
|
|
_0222E680: .word 0x00000988
|
|
_0222E684: .word 0x00000984
|
|
thumb_func_end ov45_0222E5D4
|
|
|
|
thumb_func_start ov45_0222E688
|
|
ov45_0222E688: ; 0x0222E688
|
|
push {r3, lr}
|
|
ldr r0, _0222E6C4 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222E696
|
|
bl GF_AssertFail
|
|
_0222E696:
|
|
ldr r0, _0222E6C4 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #4
|
|
add r0, r1, r0
|
|
bl ov45_022303FC
|
|
ldr r0, _0222E6C4 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
bl ov45_0222FA10
|
|
ldr r0, _0222E6C4 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
bl ov45_0222F878
|
|
ldr r0, _0222E6C4 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
bl FreeToHeap
|
|
ldr r0, _0222E6C4 ; =0x022577C0
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222E6C4: .word 0x022577C0
|
|
thumb_func_end ov45_0222E688
|
|
|
|
thumb_func_start ov45_0222E6C8
|
|
ov45_0222E6C8: ; 0x0222E6C8
|
|
push {r3, lr}
|
|
ldr r0, _0222E7C4 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222E6D6
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_0222E6D6:
|
|
bl ov45_02231514
|
|
cmp r0, #0xa
|
|
bhi _0222E744
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222E6EA: ; jump table
|
|
.short _0222E700 - _0222E6EA - 2 ; case 0
|
|
.short _0222E70E - _0222E6EA - 2 ; case 1
|
|
.short _0222E70E - _0222E6EA - 2 ; case 2
|
|
.short _0222E70E - _0222E6EA - 2 ; case 3
|
|
.short _0222E70E - _0222E6EA - 2 ; case 4
|
|
.short _0222E70E - _0222E6EA - 2 ; case 5
|
|
.short _0222E70E - _0222E6EA - 2 ; case 6
|
|
.short _0222E70E - _0222E6EA - 2 ; case 7
|
|
.short _0222E71C - _0222E6EA - 2 ; case 8
|
|
.short _0222E72A - _0222E6EA - 2 ; case 9
|
|
.short _0222E738 - _0222E6EA - 2 ; case 10
|
|
_0222E700:
|
|
ldr r0, _0222E7C4 ; =0x022577C0
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #2
|
|
strb r2, [r1, r0]
|
|
b _0222E744
|
|
_0222E70E:
|
|
ldr r0, _0222E7C4 ; =0x022577C0
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #2
|
|
strb r2, [r1, r0]
|
|
b _0222E744
|
|
_0222E71C:
|
|
ldr r0, _0222E7C4 ; =0x022577C0
|
|
mov r2, #2
|
|
ldr r1, [r0]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #2
|
|
strb r2, [r1, r0]
|
|
b _0222E744
|
|
_0222E72A:
|
|
ldr r0, _0222E7C4 ; =0x022577C0
|
|
mov r2, #3
|
|
ldr r1, [r0]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #2
|
|
strb r2, [r1, r0]
|
|
b _0222E744
|
|
_0222E738:
|
|
ldr r0, _0222E7C4 ; =0x022577C0
|
|
mov r2, #4
|
|
ldr r1, [r0]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #2
|
|
strb r2, [r1, r0]
|
|
_0222E744:
|
|
ldr r0, _0222E7C4 ; =0x022577C0
|
|
mov r1, #0x4b
|
|
ldr r0, [r0]
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r0, r1]
|
|
cmp r1, #2
|
|
bne _0222E7BC
|
|
bl ov45_022302E4
|
|
ldr r0, _0222E7C4 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x67
|
|
lsl r0, r0, #2
|
|
add r0, r1, r0
|
|
bl ov45_022320C4
|
|
bl ov45_022321E0
|
|
cmp r0, #3
|
|
bhi _0222E7BC
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222E778: ; jump table
|
|
.short _0222E780 - _0222E778 - 2 ; case 0
|
|
.short _0222E794 - _0222E778 - 2 ; case 1
|
|
.short _0222E7A0 - _0222E778 - 2 ; case 2
|
|
.short _0222E7B2 - _0222E778 - 2 ; case 3
|
|
_0222E780:
|
|
ldr r1, _0222E7C4 ; =0x022577C0
|
|
ldr r0, _0222E7C8 ; =0x0000012E
|
|
ldr r2, [r1]
|
|
mov r3, #0
|
|
strb r3, [r2, r0]
|
|
ldr r1, [r1]
|
|
mov r2, #4
|
|
sub r0, r0, #1
|
|
strb r2, [r1, r0]
|
|
b _0222E7BC
|
|
_0222E794:
|
|
ldr r0, _0222E7C4 ; =0x022577C0
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _0222E7C8 ; =0x0000012E
|
|
strb r2, [r1, r0]
|
|
b _0222E7BC
|
|
_0222E7A0:
|
|
ldr r0, _0222E7C4 ; =0x022577C0
|
|
ldr r2, [r0]
|
|
ldr r0, _0222E7C8 ; =0x0000012E
|
|
ldrb r1, [r2, r0]
|
|
cmp r1, #3
|
|
beq _0222E7BC
|
|
mov r1, #2
|
|
strb r1, [r2, r0]
|
|
b _0222E7BC
|
|
_0222E7B2:
|
|
ldr r0, _0222E7C4 ; =0x022577C0
|
|
mov r2, #4
|
|
ldr r1, [r0]
|
|
ldr r0, _0222E7C8 ; =0x0000012E
|
|
strb r2, [r1, r0]
|
|
_0222E7BC:
|
|
bl ov45_0222E96C
|
|
pop {r3, pc}
|
|
nop
|
|
_0222E7C4: .word 0x022577C0
|
|
_0222E7C8: .word 0x0000012E
|
|
thumb_func_end ov45_0222E6C8
|
|
|
|
thumb_func_start ov45_0222E7CC
|
|
ov45_0222E7CC: ; 0x0222E7CC
|
|
push {r3, lr}
|
|
ldr r0, _0222E7F4 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222E7DA
|
|
bl GF_AssertFail
|
|
_0222E7DA:
|
|
ldr r0, _0222E7F4 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222E7F8 ; =0x00000984
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _0222E7EC
|
|
bl ov45_02233220
|
|
pop {r3, pc}
|
|
_0222E7EC:
|
|
bl ov45_022331E8
|
|
pop {r3, pc}
|
|
nop
|
|
_0222E7F4: .word 0x022577C0
|
|
_0222E7F8: .word 0x00000984
|
|
thumb_func_end ov45_0222E7CC
|
|
|
|
thumb_func_start ov45_0222E7FC
|
|
ov45_0222E7FC: ; 0x0222E7FC
|
|
ldr r3, _0222E800 ; =ov45_02233204
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222E800: .word ov45_02233204
|
|
thumb_func_end ov45_0222E7FC
|
|
|
|
thumb_func_start ov45_0222E804
|
|
ov45_0222E804: ; 0x0222E804
|
|
ldr r3, _0222E80C ; =ov45_0222E810
|
|
mov r1, #0
|
|
bx r3
|
|
nop
|
|
_0222E80C: .word ov45_0222E810
|
|
thumb_func_end ov45_0222E804
|
|
|
|
thumb_func_start ov45_0222E810
|
|
ov45_0222E810: ; 0x0222E810
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x50
|
|
add r5, r0, #0
|
|
ldr r0, _0222E8A0 ; =0x022577C0
|
|
add r4, r1, #0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222E824
|
|
bl GF_AssertFail
|
|
_0222E824:
|
|
ldr r0, _0222E8A4 ; =ov45_0222FC44
|
|
str r0, [sp, #0xc]
|
|
ldr r0, _0222E8A8 ; =ov45_0222FCE0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, _0222E8AC ; =ov45_0222FD50
|
|
str r0, [sp, #0x14]
|
|
ldr r0, _0222E8B0 ; =ov45_0222FDD4
|
|
str r0, [sp, #0x18]
|
|
ldr r0, _0222E8B4 ; =ov45_0222FDD8
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, _0222E8B8 ; =ov45_0222FE84
|
|
str r0, [sp, #0x20]
|
|
ldr r0, _0222E8BC ; =ov45_0222FEC4
|
|
str r0, [sp, #0x24]
|
|
ldr r0, _0222E8C0 ; =ov45_0222FF40
|
|
str r0, [sp, #0x28]
|
|
ldr r0, _0222E8C4 ; =ov45_0222FF7C
|
|
str r0, [sp, #0x2c]
|
|
ldr r0, _0222E8C8 ; =ov45_02230008
|
|
str r0, [sp, #0x30]
|
|
ldr r0, _0222E8CC ; =ov45_02230050
|
|
str r0, [sp, #0x34]
|
|
ldr r0, _0222E8D0 ; =ov45_02230064
|
|
str r0, [sp, #0x38]
|
|
ldr r0, _0222E8D4 ; =ov45_02230090
|
|
str r0, [sp, #0x3c]
|
|
ldr r0, _0222E8D8 ; =ov45_022300B0
|
|
str r0, [sp, #0x40]
|
|
ldr r0, _0222E8DC ; =ov45_022300DC
|
|
str r0, [sp, #0x44]
|
|
ldr r0, _0222E8E0 ; =ov45_02230108
|
|
str r0, [sp, #0x48]
|
|
ldr r0, _0222E8E4 ; =ov45_02230130
|
|
str r0, [sp, #0x4c]
|
|
ldr r0, _0222E8A0 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #4]
|
|
bl sub_0202C08C
|
|
str r0, [sp]
|
|
ldr r0, _0222E8A0 ; =0x022577C0
|
|
str r5, [sp, #4]
|
|
ldr r0, [r0]
|
|
ldr r1, _0222E8E8 ; =0x02254F14
|
|
ldr r0, [r0, #0x28]
|
|
add r2, r4, #0
|
|
str r0, [sp, #8]
|
|
ldr r0, _0222E8EC ; =0x02254F04
|
|
add r3, sp, #0xc
|
|
bl ov45_022310C0
|
|
ldr r2, _0222E8A0 ; =0x022577C0
|
|
ldr r1, _0222E8F0 ; =0x00000984
|
|
ldr r3, [r2]
|
|
str r0, [r3, r1]
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, r1]
|
|
bl ov45_0222F74C
|
|
add sp, #0x50
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222E8A0: .word 0x022577C0
|
|
_0222E8A4: .word ov45_0222FC44
|
|
_0222E8A8: .word ov45_0222FCE0
|
|
_0222E8AC: .word ov45_0222FD50
|
|
_0222E8B0: .word ov45_0222FDD4
|
|
_0222E8B4: .word ov45_0222FDD8
|
|
_0222E8B8: .word ov45_0222FE84
|
|
_0222E8BC: .word ov45_0222FEC4
|
|
_0222E8C0: .word ov45_0222FF40
|
|
_0222E8C4: .word ov45_0222FF7C
|
|
_0222E8C8: .word ov45_02230008
|
|
_0222E8CC: .word ov45_02230050
|
|
_0222E8D0: .word ov45_02230064
|
|
_0222E8D4: .word ov45_02230090
|
|
_0222E8D8: .word ov45_022300B0
|
|
_0222E8DC: .word ov45_022300DC
|
|
_0222E8E0: .word ov45_02230108
|
|
_0222E8E4: .word ov45_02230130
|
|
_0222E8E8: .word 0x02254F14
|
|
_0222E8EC: .word 0x02254F04
|
|
_0222E8F0: .word 0x00000984
|
|
thumb_func_end ov45_0222E810
|
|
|
|
thumb_func_start ov45_0222E8F4
|
|
ov45_0222E8F4: ; 0x0222E8F4
|
|
push {r3, lr}
|
|
ldr r0, _0222E918 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222E902
|
|
bl GF_AssertFail
|
|
_0222E902:
|
|
ldr r0, _0222E918 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #2
|
|
bne _0222E914
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0222E914:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222E918: .word 0x022577C0
|
|
thumb_func_end ov45_0222E8F4
|
|
|
|
thumb_func_start ov45_0222E91C
|
|
ov45_0222E91C: ; 0x0222E91C
|
|
push {r3, lr}
|
|
ldr r0, _0222E940 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222E92A
|
|
bl GF_AssertFail
|
|
_0222E92A:
|
|
bl ov45_0222F78C
|
|
bl ov45_02231490
|
|
bl ov45_0222F74C
|
|
cmp r0, #0
|
|
bne _0222E93E
|
|
bl GF_AssertFail
|
|
_0222E93E:
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222E940: .word 0x022577C0
|
|
thumb_func_end ov45_0222E91C
|
|
|
|
thumb_func_start ov45_0222E944
|
|
ov45_0222E944: ; 0x0222E944
|
|
push {r3, lr}
|
|
ldr r0, _0222E968 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222E952
|
|
bl GF_AssertFail
|
|
_0222E952:
|
|
ldr r0, _0222E968 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x4b
|
|
lsl r0, r0, #2
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _0222E964
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0222E964:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222E968: .word 0x022577C0
|
|
thumb_func_end ov45_0222E944
|
|
|
|
thumb_func_start ov45_0222E96C
|
|
ov45_0222E96C: ; 0x0222E96C
|
|
push {r3, lr}
|
|
ldr r0, _0222E9B0 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222E97A
|
|
bl GF_AssertFail
|
|
_0222E97A:
|
|
ldr r0, _0222E9B0 ; =0x022577C0
|
|
ldr r1, _0222E9B4 ; =0x0000012D
|
|
ldr r0, [r0]
|
|
ldrb r2, [r0, r1]
|
|
cmp r2, #4
|
|
beq _0222E992
|
|
add r1, r1, #1
|
|
ldrb r1, [r0, r1]
|
|
cmp r1, #4
|
|
bne _0222E992
|
|
mov r0, #4
|
|
pop {r3, pc}
|
|
_0222E992:
|
|
ldr r2, _0222E9B8 ; =0x00000133
|
|
ldrb r1, [r0, r2]
|
|
cmp r1, #0
|
|
beq _0222E99E
|
|
mov r0, #4
|
|
pop {r3, pc}
|
|
_0222E99E:
|
|
sub r1, r2, #1
|
|
ldrb r1, [r0, r1]
|
|
cmp r1, #0
|
|
beq _0222E9AA
|
|
mov r0, #4
|
|
pop {r3, pc}
|
|
_0222E9AA:
|
|
sub r1, r2, #7
|
|
ldrb r0, [r0, r1]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222E9B0: .word 0x022577C0
|
|
_0222E9B4: .word 0x0000012D
|
|
_0222E9B8: .word 0x00000133
|
|
thumb_func_end ov45_0222E96C
|
|
|
|
thumb_func_start ov45_0222E9BC
|
|
ov45_0222E9BC: ; 0x0222E9BC
|
|
push {r3, lr}
|
|
ldr r0, _0222E9D8 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222E9CA
|
|
bl GF_AssertFail
|
|
_0222E9CA:
|
|
ldr r0, _0222E9D8 ; =0x022577C0
|
|
ldr r1, _0222E9DC ; =0x00000131
|
|
ldr r3, [r0]
|
|
mov r2, #0
|
|
ldrb r0, [r3, r1]
|
|
strb r2, [r3, r1]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222E9D8: .word 0x022577C0
|
|
_0222E9DC: .word 0x00000131
|
|
thumb_func_end ov45_0222E9BC
|
|
|
|
thumb_func_start ov45_0222E9E0
|
|
ov45_0222E9E0: ; 0x0222E9E0
|
|
push {r3, lr}
|
|
ldr r0, _0222E9F4 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222E9EE
|
|
bl GF_AssertFail
|
|
_0222E9EE:
|
|
bl ov45_02232580
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222E9F4: .word 0x022577C0
|
|
thumb_func_end ov45_0222E9E0
|
|
|
|
thumb_func_start ov45_0222E9F8
|
|
ov45_0222E9F8: ; 0x0222E9F8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222EA28 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EA08
|
|
bl GF_AssertFail
|
|
_0222EA08:
|
|
bl ov45_02232580
|
|
add r1, r0, #0
|
|
ldr r0, _0222EA28 ; =0x022577C0
|
|
add r2, r4, #0
|
|
ldr r0, [r0]
|
|
bl ov45_0222F88C
|
|
ldr r1, _0222EA28 ; =0x022577C0
|
|
add r0, r4, #0
|
|
ldr r1, [r1]
|
|
mov r2, #0
|
|
ldr r1, [r1, #0x28]
|
|
bl ov45_022325B0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222EA28: .word 0x022577C0
|
|
thumb_func_end ov45_0222E9F8
|
|
|
|
thumb_func_start ov45_0222EA2C
|
|
ov45_0222EA2C: ; 0x0222EA2C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222EA48 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EA3C
|
|
bl GF_AssertFail
|
|
_0222EA3C:
|
|
ldr r0, _0222EA48 ; =0x022577C0
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
bl ov45_0222F8D8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222EA48: .word 0x022577C0
|
|
thumb_func_end ov45_0222EA2C
|
|
|
|
thumb_func_start ov45_0222EA4C
|
|
ov45_0222EA4C: ; 0x0222EA4C
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _0222EA74 ; =0x022577C0
|
|
add r4, r1, #0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EA5E
|
|
bl GF_AssertFail
|
|
_0222EA5E:
|
|
ldr r0, _0222EA74 ; =0x022577C0
|
|
add r1, r5, #0
|
|
ldr r0, [r0]
|
|
bl ov45_0222F954
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, #4]
|
|
str r1, [r4]
|
|
str r0, [r4, #4]
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222EA74: .word 0x022577C0
|
|
thumb_func_end ov45_0222EA4C
|
|
|
|
thumb_func_start ov45_0222EA78
|
|
ov45_0222EA78: ; 0x0222EA78
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
str r0, [sp]
|
|
lsr r6, r0, #4
|
|
add r5, r0, #0
|
|
ldr r0, _0222EAD0 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EA92
|
|
bl GF_AssertFail
|
|
_0222EA92:
|
|
mov r4, #0
|
|
_0222EA94:
|
|
ldr r0, _0222EAD0 ; =0x022577C0
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
bl ov45_0222FB5C
|
|
mov r1, #0
|
|
add r7, r0, #0
|
|
mvn r1, r1
|
|
cmp r7, r1
|
|
beq _0222EAC4
|
|
add r1, sp, #4
|
|
bl ov45_0222EA4C
|
|
ldr r2, [sp, #4]
|
|
ldr r1, [sp, #8]
|
|
sub r0, r2, r5
|
|
mov ip, r1
|
|
mov r0, ip
|
|
sbc r0, r6
|
|
bge _0222EAC4
|
|
add r5, r2, #0
|
|
add r6, r1, #0
|
|
str r7, [sp]
|
|
_0222EAC4:
|
|
add r4, r4, #1
|
|
cmp r4, #0x14
|
|
blt _0222EA94
|
|
ldr r0, [sp]
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0222EAD0: .word 0x022577C0
|
|
thumb_func_end ov45_0222EA78
|
|
|
|
thumb_func_start ov45_0222EAD4
|
|
ov45_0222EAD4: ; 0x0222EAD4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
str r0, [sp]
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
str r0, [sp, #4]
|
|
lsr r7, r0, #4
|
|
add r6, r0, #0
|
|
ldr r0, _0222EB34 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EAF0
|
|
bl GF_AssertFail
|
|
_0222EAF0:
|
|
mov r4, #0
|
|
_0222EAF2:
|
|
ldr r0, _0222EB34 ; =0x022577C0
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
bl ov45_0222FB5C
|
|
mov r1, #0
|
|
add r5, r0, #0
|
|
mvn r1, r1
|
|
cmp r5, r1
|
|
beq _0222EB28
|
|
ldr r1, [sp]
|
|
cmp r5, r1
|
|
beq _0222EB28
|
|
add r1, sp, #8
|
|
bl ov45_0222EA4C
|
|
ldr r2, [sp, #8]
|
|
ldr r1, [sp, #0xc]
|
|
sub r0, r2, r6
|
|
mov ip, r1
|
|
mov r0, ip
|
|
sbc r0, r7
|
|
bge _0222EB28
|
|
add r6, r2, #0
|
|
add r7, r1, #0
|
|
str r5, [sp, #4]
|
|
_0222EB28:
|
|
add r4, r4, #1
|
|
cmp r4, #0x14
|
|
blt _0222EAF2
|
|
ldr r0, [sp, #4]
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0222EB34: .word 0x022577C0
|
|
thumb_func_end ov45_0222EAD4
|
|
|
|
thumb_func_start ov45_0222EB38
|
|
ov45_0222EB38: ; 0x0222EB38
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222EB6C ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EB48
|
|
bl GF_AssertFail
|
|
_0222EB48:
|
|
add r0, r4, #0
|
|
bl ov45_0222F7B0
|
|
bl ov45_02231C8C
|
|
bl ov45_0222F74C
|
|
cmp r0, #1
|
|
bne _0222EB6A
|
|
ldr r2, _0222EB6C ; =0x022577C0
|
|
ldr r1, _0222EB70 ; =0x0000012D
|
|
ldr r3, [r2]
|
|
strb r4, [r3, r1]
|
|
ldr r2, [r2]
|
|
mov r3, #0
|
|
add r1, r1, #2
|
|
strb r3, [r2, r1]
|
|
_0222EB6A:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222EB6C: .word 0x022577C0
|
|
_0222EB70: .word 0x0000012D
|
|
thumb_func_end ov45_0222EB38
|
|
|
|
thumb_func_start ov45_0222EB74
|
|
ov45_0222EB74: ; 0x0222EB74
|
|
push {r3, lr}
|
|
ldr r0, _0222EB8C ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EB82
|
|
bl GF_AssertFail
|
|
_0222EB82:
|
|
ldr r0, _0222EB8C ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222EB90 ; =0x0000012F
|
|
ldrb r0, [r1, r0]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222EB8C: .word 0x022577C0
|
|
_0222EB90: .word 0x0000012F
|
|
thumb_func_end ov45_0222EB74
|
|
|
|
thumb_func_start ov45_0222EB94
|
|
ov45_0222EB94: ; 0x0222EB94
|
|
push {r3, lr}
|
|
ldr r0, _0222EBBC ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EBA2
|
|
bl GF_AssertFail
|
|
_0222EBA2:
|
|
bl ov45_02231EC0
|
|
bl ov45_0222F74C
|
|
cmp r0, #1
|
|
bne _0222EBB8
|
|
ldr r1, _0222EBBC ; =0x022577C0
|
|
mov r3, #3
|
|
ldr r2, [r1]
|
|
ldr r1, _0222EBC0 ; =0x0000012E
|
|
strb r3, [r2, r1]
|
|
_0222EBB8:
|
|
pop {r3, pc}
|
|
nop
|
|
_0222EBBC: .word 0x022577C0
|
|
_0222EBC0: .word 0x0000012E
|
|
thumb_func_end ov45_0222EB94
|
|
|
|
thumb_func_start ov45_0222EBC4
|
|
ov45_0222EBC4: ; 0x0222EBC4
|
|
push {r3, lr}
|
|
ldr r0, _0222EBE8 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EBD2
|
|
bl GF_AssertFail
|
|
_0222EBD2:
|
|
ldr r0, _0222EBE8 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222EBEC ; =0x0000012E
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _0222EBE2
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0222EBE2:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
nop
|
|
_0222EBE8: .word 0x022577C0
|
|
_0222EBEC: .word 0x0000012E
|
|
thumb_func_end ov45_0222EBC4
|
|
|
|
thumb_func_start ov45_0222EBF0
|
|
ov45_0222EBF0: ; 0x0222EBF0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222EC0C ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EC00
|
|
bl GF_AssertFail
|
|
_0222EC00:
|
|
ldr r0, _0222EC0C ; =0x022577C0
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
bl ov45_0222FBD8
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222EC0C: .word 0x022577C0
|
|
thumb_func_end ov45_0222EBF0
|
|
|
|
thumb_func_start ov45_0222EC10
|
|
ov45_0222EC10: ; 0x0222EC10
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222EC38 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EC20
|
|
bl GF_AssertFail
|
|
_0222EC20:
|
|
ldr r1, _0222EC38 ; =0x022577C0
|
|
mov r0, #0x47
|
|
ldr r2, [r1]
|
|
lsl r0, r0, #2
|
|
ldrsh r2, [r2, r0]
|
|
add r0, r0, #4
|
|
str r2, [r4]
|
|
ldr r1, [r1]
|
|
ldr r0, [r1, r0]
|
|
str r0, [r4, #4]
|
|
pop {r4, pc}
|
|
nop
|
|
_0222EC38: .word 0x022577C0
|
|
thumb_func_end ov45_0222EC10
|
|
|
|
thumb_func_start ov45_0222EC3C
|
|
ov45_0222EC3C: ; 0x0222EC3C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222EC64 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EC4C
|
|
bl GF_AssertFail
|
|
_0222EC4C:
|
|
ldr r1, _0222EC64 ; =0x022577C0
|
|
mov r0, #0x49
|
|
ldr r2, [r1]
|
|
lsl r0, r0, #2
|
|
ldrsh r2, [r2, r0]
|
|
add r0, r0, #4
|
|
str r2, [r4]
|
|
ldr r1, [r1]
|
|
ldr r0, [r1, r0]
|
|
str r0, [r4, #4]
|
|
pop {r4, pc}
|
|
nop
|
|
_0222EC64: .word 0x022577C0
|
|
thumb_func_end ov45_0222EC3C
|
|
|
|
thumb_func_start ov45_0222EC68
|
|
ov45_0222EC68: ; 0x0222EC68
|
|
add r1, r0, #0
|
|
ldr r0, _0222EC74 ; =0x022577C0
|
|
ldr r3, _0222EC78 ; =ov45_0222FB24
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222EC74: .word 0x022577C0
|
|
_0222EC78: .word ov45_0222FB24
|
|
thumb_func_end ov45_0222EC68
|
|
|
|
thumb_func_start ov45_0222EC7C
|
|
ov45_0222EC7C: ; 0x0222EC7C
|
|
add r1, r0, #0
|
|
ldr r0, _0222EC88 ; =0x022577C0
|
|
ldr r3, _0222EC8C ; =ov45_0222FB24
|
|
ldr r0, [r0]
|
|
mov r2, #1
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222EC88: .word 0x022577C0
|
|
_0222EC8C: .word ov45_0222FB24
|
|
thumb_func_end ov45_0222EC7C
|
|
|
|
thumb_func_start ov45_0222EC90
|
|
ov45_0222EC90: ; 0x0222EC90
|
|
add r1, r0, #0
|
|
ldr r0, _0222EC9C ; =0x022577C0
|
|
ldr r3, _0222ECA0 ; =ov45_0222FB5C
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222EC9C: .word 0x022577C0
|
|
_0222ECA0: .word ov45_0222FB5C
|
|
thumb_func_end ov45_0222EC90
|
|
|
|
thumb_func_start ov45_0222ECA4
|
|
ov45_0222ECA4: ; 0x0222ECA4
|
|
add r1, r0, #0
|
|
ldr r0, _0222ECB0 ; =0x022577C0
|
|
ldr r3, _0222ECB4 ; =ov45_0222FB5C
|
|
ldr r0, [r0]
|
|
mov r2, #1
|
|
bx r3
|
|
.balign 4, 0
|
|
_0222ECB0: .word 0x022577C0
|
|
_0222ECB4: .word ov45_0222FB5C
|
|
thumb_func_end ov45_0222ECA4
|
|
|
|
thumb_func_start ov45_0222ECB8
|
|
ov45_0222ECB8: ; 0x0222ECB8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222ECD8 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222ECC8
|
|
bl GF_AssertFail
|
|
_0222ECC8:
|
|
ldr r0, _0222ECD8 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x67
|
|
lsl r0, r0, #2
|
|
add r0, r1, r0
|
|
ldmia r0!, {r2, r3}
|
|
stmia r4!, {r2, r3}
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222ECD8: .word 0x022577C0
|
|
thumb_func_end ov45_0222ECB8
|
|
|
|
thumb_func_start ov45_0222ECDC
|
|
ov45_0222ECDC: ; 0x0222ECDC
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _0222ED78 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222ECEC
|
|
bl GF_AssertFail
|
|
_0222ECEC:
|
|
ldr r1, _0222ED78 ; =0x022577C0
|
|
mov r0, #1
|
|
ldr r2, [r1]
|
|
mov r1, #0x4b
|
|
lsl r1, r1, #2
|
|
ldrb r1, [r2, r1]
|
|
cmp r1, #2
|
|
beq _0222ED02
|
|
cmp r1, #4
|
|
beq _0222ED02
|
|
mov r0, #0
|
|
_0222ED02:
|
|
cmp r0, #0
|
|
bne _0222ED0A
|
|
bl GF_AssertFail
|
|
_0222ED0A:
|
|
cmp r5, #8
|
|
blt _0222ED12
|
|
bl GF_AssertFail
|
|
_0222ED12:
|
|
ldr r0, _0222ED78 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x6d
|
|
lsl r0, r0, #2
|
|
add r0, r1, r0
|
|
cmp r5, #7
|
|
bhi _0222ED74
|
|
add r1, r5, r5
|
|
add r1, pc
|
|
ldrh r1, [r1, #6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_0222ED2C: ; jump table
|
|
.short _0222ED3C - _0222ED2C - 2 ; case 0
|
|
.short _0222ED40 - _0222ED2C - 2 ; case 1
|
|
.short _0222ED44 - _0222ED2C - 2 ; case 2
|
|
.short _0222ED48 - _0222ED2C - 2 ; case 3
|
|
.short _0222ED4C - _0222ED2C - 2 ; case 4
|
|
.short _0222ED58 - _0222ED2C - 2 ; case 5
|
|
.short _0222ED62 - _0222ED2C - 2 ; case 6
|
|
.short _0222ED6C - _0222ED2C - 2 ; case 7
|
|
_0222ED3C:
|
|
ldr r4, [r0]
|
|
b _0222ED74
|
|
_0222ED40:
|
|
ldr r4, [r0, #4]
|
|
b _0222ED74
|
|
_0222ED44:
|
|
ldrb r4, [r0, #0xc]
|
|
b _0222ED74
|
|
_0222ED48:
|
|
ldrb r4, [r0, #0xd]
|
|
b _0222ED74
|
|
_0222ED4C:
|
|
ldr r0, [r0, #8]
|
|
mov r4, #1
|
|
tst r0, r4
|
|
bne _0222ED74
|
|
mov r4, #0
|
|
b _0222ED74
|
|
_0222ED58:
|
|
mov r1, #0x13
|
|
bl ov45_022303BC
|
|
add r4, r0, #0
|
|
b _0222ED74
|
|
_0222ED62:
|
|
mov r1, #0x10
|
|
bl ov45_022303BC
|
|
add r4, r0, #0
|
|
b _0222ED74
|
|
_0222ED6C:
|
|
mov r1, #0x11
|
|
bl ov45_022303BC
|
|
add r4, r0, #0
|
|
_0222ED74:
|
|
add r0, r4, #0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0222ED78: .word 0x022577C0
|
|
thumb_func_end ov45_0222ECDC
|
|
|
|
thumb_func_start ov45_0222ED7C
|
|
ov45_0222ED7C: ; 0x0222ED7C
|
|
push {r3, lr}
|
|
ldr r0, _0222EDA4 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222ED8A
|
|
bl GF_AssertFail
|
|
_0222ED8A:
|
|
ldr r0, _0222EDA4 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
bl ov45_0222F7B4
|
|
cmp r0, #0
|
|
beq _0222EDA2
|
|
ldr r1, _0222EDA4 ; =0x022577C0
|
|
mov r3, #1
|
|
ldr r2, [r1]
|
|
mov r1, #0x13
|
|
lsl r1, r1, #4
|
|
strb r3, [r2, r1]
|
|
_0222EDA2:
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222EDA4: .word 0x022577C0
|
|
thumb_func_end ov45_0222ED7C
|
|
|
|
thumb_func_start ov45_0222EDA8
|
|
ov45_0222EDA8: ; 0x0222EDA8
|
|
ldr r0, _0222EDC0 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x13
|
|
lsl r0, r0, #4
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _0222EDBA
|
|
mov r0, #1
|
|
bx lr
|
|
_0222EDBA:
|
|
mov r0, #0
|
|
bx lr
|
|
nop
|
|
_0222EDC0: .word 0x022577C0
|
|
thumb_func_end ov45_0222EDA8
|
|
|
|
thumb_func_start ov45_0222EDC4
|
|
ov45_0222EDC4: ; 0x0222EDC4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222EDEC ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EDD4
|
|
bl GF_AssertFail
|
|
_0222EDD4:
|
|
cmp r4, #0x14
|
|
blo _0222EDDC
|
|
bl GF_AssertFail
|
|
_0222EDDC:
|
|
ldr r0, _0222EDEC ; =0x022577C0
|
|
ldr r1, [r0]
|
|
lsl r0, r4, #2
|
|
add r1, r1, r0
|
|
mov r0, #0x4d
|
|
lsl r0, r0, #2
|
|
ldrh r0, [r1, r0]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222EDEC: .word 0x022577C0
|
|
thumb_func_end ov45_0222EDC4
|
|
|
|
thumb_func_start ov45_0222EDF0
|
|
ov45_0222EDF0: ; 0x0222EDF0
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222EE18 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EE00
|
|
bl GF_AssertFail
|
|
_0222EE00:
|
|
cmp r4, #0x14
|
|
blo _0222EE08
|
|
bl GF_AssertFail
|
|
_0222EE08:
|
|
ldr r0, _0222EE18 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
lsl r0, r4, #2
|
|
add r1, r1, r0
|
|
ldr r0, _0222EE1C ; =0x00000136
|
|
ldrb r0, [r1, r0]
|
|
pop {r4, pc}
|
|
nop
|
|
_0222EE18: .word 0x022577C0
|
|
_0222EE1C: .word 0x00000136
|
|
thumb_func_end ov45_0222EDF0
|
|
|
|
thumb_func_start ov45_0222EE20
|
|
ov45_0222EE20: ; 0x0222EE20
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _0222EE4C ; =0x022577C0
|
|
add r4, r1, #0
|
|
ldr r0, [r0]
|
|
add r6, r2, #0
|
|
cmp r0, #0
|
|
bne _0222EE34
|
|
bl GF_AssertFail
|
|
_0222EE34:
|
|
ldr r2, _0222EE4C ; =0x022577C0
|
|
mov r1, #0x61
|
|
ldr r0, [r2]
|
|
lsl r1, r1, #2
|
|
str r5, [r0, r1]
|
|
ldr r3, [r2]
|
|
add r0, r1, #4
|
|
str r4, [r3, r0]
|
|
ldr r0, [r2]
|
|
add r1, #8
|
|
str r6, [r0, r1]
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0222EE4C: .word 0x022577C0
|
|
thumb_func_end ov45_0222EE20
|
|
|
|
thumb_func_start ov45_0222EE50
|
|
ov45_0222EE50: ; 0x0222EE50
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _0222EE7C ; =0x022577C0
|
|
add r4, r1, #0
|
|
ldr r0, [r0]
|
|
add r6, r2, #0
|
|
cmp r0, #0
|
|
bne _0222EE64
|
|
bl GF_AssertFail
|
|
_0222EE64:
|
|
ldr r2, _0222EE7C ; =0x022577C0
|
|
mov r1, #0x19
|
|
ldr r0, [r2]
|
|
lsl r1, r1, #4
|
|
str r5, [r0, r1]
|
|
ldr r3, [r2]
|
|
add r0, r1, #4
|
|
str r4, [r3, r0]
|
|
ldr r0, [r2]
|
|
add r1, #8
|
|
str r6, [r0, r1]
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0222EE7C: .word 0x022577C0
|
|
thumb_func_end ov45_0222EE50
|
|
|
|
thumb_func_start ov45_0222EE80
|
|
ov45_0222EE80: ; 0x0222EE80
|
|
push {r3, lr}
|
|
ldr r0, _0222EEB4 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EE8E
|
|
bl GF_AssertFail
|
|
_0222EE8E:
|
|
ldr r0, _0222EEB4 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
add r1, r1, r0
|
|
mov r0, #0
|
|
strb r0, [r1]
|
|
strb r0, [r1, #1]
|
|
strb r0, [r1, #2]
|
|
strb r0, [r1, #3]
|
|
strb r0, [r1, #4]
|
|
strb r0, [r1, #5]
|
|
strb r0, [r1, #6]
|
|
strb r0, [r1, #7]
|
|
strb r0, [r1, #8]
|
|
strb r0, [r1, #9]
|
|
strb r0, [r1, #0xa]
|
|
strb r0, [r1, #0xb]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222EEB4: .word 0x022577C0
|
|
thumb_func_end ov45_0222EE80
|
|
|
|
thumb_func_start ov45_0222EEB8
|
|
ov45_0222EEB8: ; 0x0222EEB8
|
|
push {r3, lr}
|
|
ldr r0, _0222EEEC ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222EEC6
|
|
bl GF_AssertFail
|
|
_0222EEC6:
|
|
ldr r0, _0222EEEC ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x19
|
|
lsl r0, r0, #4
|
|
add r1, r1, r0
|
|
mov r0, #0
|
|
strb r0, [r1]
|
|
strb r0, [r1, #1]
|
|
strb r0, [r1, #2]
|
|
strb r0, [r1, #3]
|
|
strb r0, [r1, #4]
|
|
strb r0, [r1, #5]
|
|
strb r0, [r1, #6]
|
|
strb r0, [r1, #7]
|
|
strb r0, [r1, #8]
|
|
strb r0, [r1, #9]
|
|
strb r0, [r1, #0xa]
|
|
strb r0, [r1, #0xb]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222EEEC: .word 0x022577C0
|
|
thumb_func_end ov45_0222EEB8
|
|
|
|
thumb_func_start ov45_0222EEF0
|
|
ov45_0222EEF0: ; 0x0222EEF0
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _0222EF48 ; =0x022577C0
|
|
add r6, r1, #0
|
|
ldr r0, [r0]
|
|
add r4, r2, #0
|
|
cmp r0, #0
|
|
bne _0222EF04
|
|
bl GF_AssertFail
|
|
_0222EF04:
|
|
ldr r0, _0222EF48 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x62
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
cmp r0, r5
|
|
bhi _0222EF16
|
|
bl GF_AssertFail
|
|
_0222EF16:
|
|
ldr r0, _0222EF48 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
ldr r1, [r1, r0]
|
|
lsl r0, r5, #3
|
|
add r0, r1, r0
|
|
ldr r0, [r0, #4]
|
|
cmp r4, r0
|
|
beq _0222EF2E
|
|
bl GF_AssertFail
|
|
_0222EF2E:
|
|
mov r0, #0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
add r3, r4, #0
|
|
bl ov45_0223247C
|
|
bl ov45_0222F74C
|
|
cmp r0, #1
|
|
beq _0222EF46
|
|
bl GF_AssertFail
|
|
_0222EF46:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0222EF48: .word 0x022577C0
|
|
thumb_func_end ov45_0222EEF0
|
|
|
|
thumb_func_start ov45_0222EF4C
|
|
ov45_0222EF4C: ; 0x0222EF4C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _0222EFA8 ; =0x022577C0
|
|
add r6, r1, #0
|
|
ldr r0, [r0]
|
|
add r7, r2, #0
|
|
add r4, r3, #0
|
|
cmp r0, #0
|
|
bne _0222EF62
|
|
bl GF_AssertFail
|
|
_0222EF62:
|
|
ldr r0, _0222EFA8 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x62
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
cmp r0, r5
|
|
bhi _0222EF74
|
|
bl GF_AssertFail
|
|
_0222EF74:
|
|
ldr r0, _0222EFA8 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x61
|
|
lsl r0, r0, #2
|
|
ldr r1, [r1, r0]
|
|
lsl r0, r5, #3
|
|
add r0, r1, r0
|
|
ldr r0, [r0, #4]
|
|
cmp r4, r0
|
|
beq _0222EF8C
|
|
bl GF_AssertFail
|
|
_0222EF8C:
|
|
add r0, r6, #0
|
|
add r1, r5, #0
|
|
add r2, r7, #0
|
|
add r3, r4, #0
|
|
bl ov45_02232500
|
|
bl ov45_0222F74C
|
|
cmp r0, #1
|
|
beq _0222EFA4
|
|
bl GF_AssertFail
|
|
_0222EFA4:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222EFA8: .word 0x022577C0
|
|
thumb_func_end ov45_0222EF4C
|
|
|
|
thumb_func_start ov45_0222EFAC
|
|
ov45_0222EFAC: ; 0x0222EFAC
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _0222F020 ; =0x022577C0
|
|
add r6, r1, #0
|
|
ldr r0, [r0]
|
|
add r4, r2, #0
|
|
cmp r0, #0
|
|
bne _0222EFC0
|
|
bl GF_AssertFail
|
|
_0222EFC0:
|
|
ldr r0, _0222F020 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x65
|
|
lsl r0, r0, #2
|
|
ldr r0, [r1, r0]
|
|
cmp r0, r5
|
|
bhi _0222EFD2
|
|
bl GF_AssertFail
|
|
_0222EFD2:
|
|
ldr r0, _0222F020 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x19
|
|
lsl r0, r0, #4
|
|
ldr r1, [r1, r0]
|
|
lsl r0, r5, #3
|
|
add r0, r1, r0
|
|
ldr r0, [r0, #4]
|
|
cmp r4, r0
|
|
beq _0222EFEA
|
|
bl GF_AssertFail
|
|
_0222EFEA:
|
|
ldr r0, _0222F020 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F024 ; =0x0000012D
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #4
|
|
bne _0222EFFA
|
|
bl GF_AssertFail
|
|
_0222EFFA:
|
|
ldr r0, _0222F020 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F024 ; =0x0000012D
|
|
ldrb r0, [r1, r0]
|
|
bl ov45_0222F7B0
|
|
add r1, r5, #0
|
|
add r2, r6, #0
|
|
add r3, r4, #0
|
|
bl ov45_0223247C
|
|
bl ov45_0222F74C
|
|
cmp r0, #1
|
|
beq _0222F01C
|
|
bl GF_AssertFail
|
|
_0222F01C:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0222F020: .word 0x022577C0
|
|
_0222F024: .word 0x0000012D
|
|
thumb_func_end ov45_0222EFAC
|
|
|
|
thumb_func_start ov45_0222F028
|
|
ov45_0222F028: ; 0x0222F028
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222F138 ; =0x022577C0
|
|
add r6, r1, #0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F03A
|
|
bl GF_AssertFail
|
|
_0222F03A:
|
|
ldr r0, _0222F138 ; =0x022577C0
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
bl ov45_0223021C
|
|
cmp r0, #1
|
|
bne _0222F04C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222F04C:
|
|
ldr r2, _0222F138 ; =0x022577C0
|
|
ldr r1, _0222F13C ; =0x0000069C
|
|
ldr r0, [r2]
|
|
ldrh r3, [r0, r1]
|
|
cmp r3, #3
|
|
beq _0222F05C
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222F05C:
|
|
mov r3, #0x4c
|
|
add r5, r4, #0
|
|
mul r5, r3
|
|
add r3, r0, r5
|
|
add r0, r1, #0
|
|
sub r0, #0xe4
|
|
str r4, [r3, r0]
|
|
ldr r0, [r2]
|
|
mov r7, #1
|
|
add r3, r0, r5
|
|
add r0, r1, #0
|
|
sub r0, #0xe0
|
|
str r6, [r3, r0]
|
|
ldr r0, [r2]
|
|
add r3, r0, r5
|
|
add r0, r1, #0
|
|
sub r0, #0xdc
|
|
str r7, [r3, r0]
|
|
ldr r0, [r2]
|
|
mov r7, #0
|
|
add r3, r0, r5
|
|
add r0, r1, #0
|
|
sub r0, #0xd8
|
|
str r7, [r3, r0]
|
|
ldr r2, [r2]
|
|
sub r1, #0xe4
|
|
add r0, r2, r1
|
|
mov r1, #0x67
|
|
lsl r1, r1, #2
|
|
add r0, r0, r5
|
|
add r1, r2, r1
|
|
bl ov45_02230378
|
|
ldr r0, _0222F138 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F140 ; =0x000005B8
|
|
add r0, r1, r0
|
|
add r0, r0, r5
|
|
bl ov45_0223285C
|
|
bl ov45_0222F74C
|
|
cmp r0, #0
|
|
bne _0222F0B8
|
|
bl GF_AssertFail
|
|
_0222F0B8:
|
|
ldr r1, _0222F138 ; =0x022577C0
|
|
mov r0, #0x4c
|
|
add r5, r4, #0
|
|
mul r5, r0
|
|
ldr r1, [r1]
|
|
mov r0, #1
|
|
add r2, r1, r5
|
|
ldr r1, _0222F144 ; =0x000005FC
|
|
strh r0, [r2, r1]
|
|
bl ov45_02232580
|
|
ldr r1, _0222F138 ; =0x022577C0
|
|
mov r7, #6
|
|
ldr r2, [r1]
|
|
lsl r7, r7, #8
|
|
add r2, r2, r5
|
|
str r0, [r2, r7]
|
|
ldr r2, [r1]
|
|
ldr r0, _0222F148 ; =0x00000708
|
|
add r3, r2, r5
|
|
sub r2, r7, #2
|
|
strh r0, [r3, r2]
|
|
add r2, r0, #0
|
|
ldr r3, [r1]
|
|
sub r2, #0x6c
|
|
strh r4, [r3, r2]
|
|
add r2, r0, #0
|
|
ldr r3, [r1]
|
|
mov r4, #1
|
|
sub r2, #0x6a
|
|
strb r4, [r3, r2]
|
|
ldr r2, [r1]
|
|
mov r3, #0
|
|
sub r0, #0x69
|
|
strb r3, [r2, r0]
|
|
ldr r4, [r1]
|
|
sub r0, r7, #2
|
|
add r1, r4, r5
|
|
ldrh r0, [r1, r0]
|
|
mov r1, #0x1e
|
|
bl _s32_div_f
|
|
add r3, r0, #0
|
|
add r0, r7, #0
|
|
sub r0, #0x18
|
|
add r0, r4, r0
|
|
add r0, r0, r5
|
|
add r1, r6, #0
|
|
mov r2, #1
|
|
bl ov00_021E5CEC
|
|
ldr r1, _0222F138 ; =0x022577C0
|
|
ldr r0, _0222F14C ; =ov45_02230390
|
|
ldr r1, [r1]
|
|
bl ov00_021E5CD0
|
|
ldr r1, _0222F138 ; =0x022577C0
|
|
ldr r0, _0222F150 ; =ov45_02230394
|
|
ldr r1, [r1]
|
|
bl ov00_021E5CA0
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222F138: .word 0x022577C0
|
|
_0222F13C: .word 0x0000069C
|
|
_0222F140: .word 0x000005B8
|
|
_0222F144: .word 0x000005FC
|
|
_0222F148: .word 0x00000708
|
|
_0222F14C: .word ov45_02230390
|
|
_0222F150: .word ov45_02230394
|
|
thumb_func_end ov45_0222F028
|
|
|
|
thumb_func_start ov45_0222F154
|
|
ov45_0222F154: ; 0x0222F154
|
|
push {r4, lr}
|
|
ldr r0, _0222F1B0 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F162
|
|
bl GF_AssertFail
|
|
_0222F162:
|
|
ldr r0, _0222F1B0 ; =0x022577C0
|
|
ldr r2, [r0]
|
|
ldr r0, _0222F1B4 ; =0x0000069C
|
|
ldrh r1, [r2, r0]
|
|
cmp r1, #3
|
|
beq _0222F1AC
|
|
add r0, r0, #2
|
|
ldrb r0, [r2, r0]
|
|
cmp r0, #0
|
|
beq _0222F1AC
|
|
bl ov45_02232CA4
|
|
bl ov45_0222F74C
|
|
cmp r0, #0
|
|
bne _0222F186
|
|
bl GF_AssertFail
|
|
_0222F186:
|
|
ldr r0, _0222F1B0 ; =0x022577C0
|
|
ldr r4, [r0]
|
|
bl ov45_02232580
|
|
ldr r1, _0222F1B4 ; =0x0000069C
|
|
add r2, r0, #0
|
|
ldrh r1, [r4, r1]
|
|
add r0, r4, #0
|
|
bl ov45_022301E0
|
|
cmp r0, #0
|
|
bne _0222F1A2
|
|
bl GF_AssertFail
|
|
_0222F1A2:
|
|
ldr r0, _0222F1B0 ; =0x022577C0
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F1B8 ; =0x0000069E
|
|
strb r2, [r1, r0]
|
|
_0222F1AC:
|
|
pop {r4, pc}
|
|
nop
|
|
_0222F1B0: .word 0x022577C0
|
|
_0222F1B4: .word 0x0000069C
|
|
_0222F1B8: .word 0x0000069E
|
|
thumb_func_end ov45_0222F154
|
|
|
|
thumb_func_start ov45_0222F1BC
|
|
ov45_0222F1BC: ; 0x0222F1BC
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _0222F210 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F1CA
|
|
bl GF_AssertFail
|
|
_0222F1CA:
|
|
ldr r4, _0222F210 ; =0x022577C0
|
|
ldr r3, _0222F214 ; =0x0000069E
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, r3]
|
|
cmp r0, #0
|
|
beq _0222F20C
|
|
sub r2, r3, #2
|
|
ldrh r5, [r1, r2]
|
|
mov r2, #0x4c
|
|
mov r0, #1
|
|
add r6, r5, #0
|
|
mul r6, r2
|
|
add r5, r1, r6
|
|
add r1, r3, #0
|
|
sub r1, #0xda
|
|
str r0, [r5, r1]
|
|
add r0, r3, #0
|
|
ldr r1, [r4]
|
|
sub r0, #0xe6
|
|
add r4, r1, r0
|
|
sub r0, r3, #2
|
|
ldrh r0, [r1, r0]
|
|
add r1, r0, #0
|
|
mul r1, r2
|
|
add r0, r4, r1
|
|
bl ov45_02232BB0
|
|
bl ov45_0222F74C
|
|
cmp r0, #0
|
|
bne _0222F20C
|
|
bl GF_AssertFail
|
|
_0222F20C:
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_0222F210: .word 0x022577C0
|
|
_0222F214: .word 0x0000069E
|
|
thumb_func_end ov45_0222F1BC
|
|
|
|
thumb_func_start ov45_0222F218
|
|
ov45_0222F218: ; 0x0222F218
|
|
push {r3, lr}
|
|
ldr r0, _0222F24C ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F226
|
|
bl GF_AssertFail
|
|
_0222F226:
|
|
ldr r0, _0222F24C ; =0x022577C0
|
|
ldr r1, _0222F250 ; =0x0000069C
|
|
ldr r3, [r0]
|
|
ldrh r2, [r3, r1]
|
|
cmp r2, #3
|
|
bne _0222F236
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
_0222F236:
|
|
mov r0, #0x4c
|
|
mul r0, r2
|
|
add r0, r3, r0
|
|
sub r1, #0xd8
|
|
ldr r0, [r0, r1]
|
|
cmp r0, #1
|
|
bne _0222F248
|
|
mov r0, #1
|
|
pop {r3, pc}
|
|
_0222F248:
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222F24C: .word 0x022577C0
|
|
_0222F250: .word 0x0000069C
|
|
thumb_func_end ov45_0222F218
|
|
|
|
thumb_func_start ov45_0222F254
|
|
ov45_0222F254: ; 0x0222F254
|
|
push {r3, lr}
|
|
ldr r0, _0222F26C ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F262
|
|
bl GF_AssertFail
|
|
_0222F262:
|
|
ldr r0, _0222F26C ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F270 ; =0x0000069F
|
|
ldrb r0, [r1, r0]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222F26C: .word 0x022577C0
|
|
_0222F270: .word 0x0000069F
|
|
thumb_func_end ov45_0222F254
|
|
|
|
thumb_func_start ov45_0222F274
|
|
ov45_0222F274: ; 0x0222F274
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222F290 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F284
|
|
bl GF_AssertFail
|
|
_0222F284:
|
|
ldr r0, _0222F290 ; =0x022577C0
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
bl ov45_0223021C
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222F290: .word 0x022577C0
|
|
thumb_func_end ov45_0222F274
|
|
|
|
thumb_func_start ov45_0222F294
|
|
ov45_0222F294: ; 0x0222F294
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222F2CC ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F2A4
|
|
bl GF_AssertFail
|
|
_0222F2A4:
|
|
add r0, r4, #0
|
|
bl ov45_0222F274
|
|
cmp r0, #0
|
|
bne _0222F2B2
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0222F2B2:
|
|
ldr r0, _0222F2CC ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x4c
|
|
mul r0, r4
|
|
add r1, r1, r0
|
|
ldr r0, _0222F2D0 ; =0x000005C4
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0
|
|
bne _0222F2C8
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_0222F2C8:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222F2CC: .word 0x022577C0
|
|
_0222F2D0: .word 0x000005C4
|
|
thumb_func_end ov45_0222F294
|
|
|
|
thumb_func_start ov45_0222F2D4
|
|
ov45_0222F2D4: ; 0x0222F2D4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222F310 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F2E4
|
|
bl GF_AssertFail
|
|
_0222F2E4:
|
|
cmp r4, #3
|
|
blt _0222F2EC
|
|
bl GF_AssertFail
|
|
_0222F2EC:
|
|
ldr r0, _0222F310 ; =0x022577C0
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
bl ov45_0223021C
|
|
cmp r0, #0
|
|
bne _0222F2FE
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0222F2FE:
|
|
ldr r0, _0222F310 ; =0x022577C0
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
bl ov45_022302B0
|
|
ldr r1, [r0, #4]
|
|
ldr r0, [r0, #8]
|
|
sub r0, r1, r0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222F310: .word 0x022577C0
|
|
thumb_func_end ov45_0222F2D4
|
|
|
|
thumb_func_start ov45_0222F314
|
|
ov45_0222F314: ; 0x0222F314
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222F34C ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F324
|
|
bl GF_AssertFail
|
|
_0222F324:
|
|
cmp r4, #3
|
|
blt _0222F32C
|
|
bl GF_AssertFail
|
|
_0222F32C:
|
|
ldr r0, _0222F34C ; =0x022577C0
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
bl ov45_0223021C
|
|
cmp r0, #0
|
|
bne _0222F33E
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0222F33E:
|
|
ldr r0, _0222F34C ; =0x022577C0
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
bl ov45_022302B0
|
|
ldr r0, [r0, #8]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222F34C: .word 0x022577C0
|
|
thumb_func_end ov45_0222F314
|
|
|
|
thumb_func_start ov45_0222F350
|
|
ov45_0222F350: ; 0x0222F350
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _0222F3D4 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F360
|
|
bl GF_AssertFail
|
|
_0222F360:
|
|
ldr r0, _0222F3D4 ; =0x022577C0
|
|
add r1, r5, #0
|
|
ldr r0, [r0]
|
|
bl ov45_0223021C
|
|
cmp r0, #0
|
|
bne _0222F372
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_0222F372:
|
|
ldr r3, _0222F3D4 ; =0x022577C0
|
|
ldr r2, _0222F3D8 ; =0x0000069C
|
|
ldr r0, [r3]
|
|
ldrh r1, [r0, r2]
|
|
cmp r1, #3
|
|
beq _0222F382
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_0222F382:
|
|
mov r1, #0x4c
|
|
add r4, r5, #0
|
|
mul r4, r1
|
|
add r1, r2, #0
|
|
add r6, r0, r4
|
|
sub r1, #0xd8
|
|
ldr r1, [r6, r1]
|
|
cmp r1, #1
|
|
bne _0222F398
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
_0222F398:
|
|
strh r5, [r0, r2]
|
|
ldr r5, [r3]
|
|
sub r2, #0x9e
|
|
add r0, r5, r4
|
|
ldrh r0, [r0, r2]
|
|
mov r1, #0x1e
|
|
bl _s32_div_f
|
|
ldr r1, _0222F3DC ; =0x000005E8
|
|
add r3, r0, #0
|
|
add r0, r5, r1
|
|
add r2, r5, r4
|
|
sub r1, #0x2c
|
|
ldr r1, [r2, r1]
|
|
add r0, r0, r4
|
|
mov r2, #0
|
|
bl ov00_021E5CEC
|
|
ldr r1, _0222F3D4 ; =0x022577C0
|
|
ldr r0, _0222F3E0 ; =ov45_02230390
|
|
ldr r1, [r1]
|
|
bl ov00_021E5CD0
|
|
ldr r1, _0222F3D4 ; =0x022577C0
|
|
ldr r0, _0222F3E4 ; =ov45_02230394
|
|
ldr r1, [r1]
|
|
bl ov00_021E5CA0
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0222F3D4: .word 0x022577C0
|
|
_0222F3D8: .word 0x0000069C
|
|
_0222F3DC: .word 0x000005E8
|
|
_0222F3E0: .word ov45_02230390
|
|
_0222F3E4: .word ov45_02230394
|
|
thumb_func_end ov45_0222F350
|
|
|
|
thumb_func_start ov45_0222F3E8
|
|
ov45_0222F3E8: ; 0x0222F3E8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222F424 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F3F8
|
|
bl GF_AssertFail
|
|
_0222F3F8:
|
|
cmp r4, #3
|
|
blt _0222F400
|
|
bl GF_AssertFail
|
|
_0222F400:
|
|
ldr r0, _0222F424 ; =0x022577C0
|
|
add r1, r4, #0
|
|
ldr r0, [r0]
|
|
bl ov45_0223021C
|
|
cmp r0, #0
|
|
bne _0222F412
|
|
ldr r0, _0222F428 ; =0x00000708
|
|
pop {r4, pc}
|
|
_0222F412:
|
|
ldr r0, _0222F424 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x4c
|
|
mul r0, r4
|
|
add r1, r1, r0
|
|
ldr r0, _0222F42C ; =0x000005FE
|
|
ldrh r0, [r1, r0]
|
|
pop {r4, pc}
|
|
nop
|
|
_0222F424: .word 0x022577C0
|
|
_0222F428: .word 0x00000708
|
|
_0222F42C: .word 0x000005FE
|
|
thumb_func_end ov45_0222F3E8
|
|
|
|
thumb_func_start ov45_0222F430
|
|
ov45_0222F430: ; 0x0222F430
|
|
push {r3, lr}
|
|
ldr r0, _0222F45C ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F43E
|
|
bl GF_AssertFail
|
|
_0222F43E:
|
|
ldr r0, _0222F45C ; =0x022577C0
|
|
ldr r1, _0222F460 ; =0x0000069C
|
|
ldr r3, [r0]
|
|
ldrh r2, [r3, r1]
|
|
cmp r2, #3
|
|
bne _0222F450
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r3, pc}
|
|
_0222F450:
|
|
mov r0, #0x4c
|
|
mul r0, r2
|
|
add r0, r3, r0
|
|
sub r1, #0x9c
|
|
ldr r0, [r0, r1]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222F45C: .word 0x022577C0
|
|
_0222F460: .word 0x0000069C
|
|
thumb_func_end ov45_0222F430
|
|
|
|
thumb_func_start ov45_0222F464
|
|
ov45_0222F464: ; 0x0222F464
|
|
push {r3, lr}
|
|
ldr r0, _0222F47C ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F472
|
|
bl GF_AssertFail
|
|
_0222F472:
|
|
ldr r0, _0222F47C ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F480 ; =0x0000069E
|
|
ldrb r0, [r1, r0]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_0222F47C: .word 0x022577C0
|
|
_0222F480: .word 0x0000069E
|
|
thumb_func_end ov45_0222F464
|
|
|
|
thumb_func_start ov45_0222F484
|
|
ov45_0222F484: ; 0x0222F484
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222F4A8 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F494
|
|
bl GF_AssertFail
|
|
_0222F494:
|
|
ldr r0, _0222F4A8 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #4
|
|
add r0, r1, r0
|
|
add r1, r4, #0
|
|
bl ov45_02230434
|
|
pop {r4, pc}
|
|
nop
|
|
_0222F4A8: .word 0x022577C0
|
|
thumb_func_end ov45_0222F484
|
|
|
|
thumb_func_start ov45_0222F4AC
|
|
ov45_0222F4AC: ; 0x0222F4AC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222F4D0 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F4BC
|
|
bl GF_AssertFail
|
|
_0222F4BC:
|
|
ldr r0, _0222F4D0 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #4
|
|
add r0, r1, r0
|
|
add r1, r4, #0
|
|
bl ov45_0223045C
|
|
pop {r4, pc}
|
|
nop
|
|
_0222F4D0: .word 0x022577C0
|
|
thumb_func_end ov45_0222F4AC
|
|
|
|
thumb_func_start ov45_0222F4D4
|
|
ov45_0222F4D4: ; 0x0222F4D4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222F520 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F4E4
|
|
bl GF_AssertFail
|
|
_0222F4E4:
|
|
cmp r4, #3
|
|
blt _0222F4EC
|
|
bl GF_AssertFail
|
|
_0222F4EC:
|
|
ldr r0, _0222F520 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x26
|
|
lsl r0, r0, #6
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #1
|
|
bne _0222F4FE
|
|
bl GF_AssertFail
|
|
_0222F4FE:
|
|
add r0, r4, #0
|
|
bl ov45_02232E60
|
|
bl ov45_0222F74C
|
|
cmp r0, #1
|
|
beq _0222F510
|
|
bl GF_AssertFail
|
|
_0222F510:
|
|
ldr r0, _0222F520 ; =0x022577C0
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0x26
|
|
lsl r0, r0, #6
|
|
str r2, [r1, r0]
|
|
pop {r4, pc}
|
|
nop
|
|
_0222F520: .word 0x022577C0
|
|
thumb_func_end ov45_0222F4D4
|
|
|
|
thumb_func_start ov45_0222F524
|
|
ov45_0222F524: ; 0x0222F524
|
|
push {r3, lr}
|
|
ldr r0, _0222F540 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F532
|
|
bl GF_AssertFail
|
|
_0222F532:
|
|
ldr r0, _0222F540 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x26
|
|
lsl r0, r0, #6
|
|
ldr r0, [r1, r0]
|
|
pop {r3, pc}
|
|
nop
|
|
_0222F540: .word 0x022577C0
|
|
thumb_func_end ov45_0222F524
|
|
|
|
thumb_func_start ov45_0222F544
|
|
ov45_0222F544: ; 0x0222F544
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222F608 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F554
|
|
bl GF_AssertFail
|
|
_0222F554:
|
|
cmp r4, #0xb
|
|
blt _0222F55C
|
|
bl GF_AssertFail
|
|
_0222F55C:
|
|
cmp r4, #0xa
|
|
bhi _0222F5FE
|
|
add r0, r4, r4
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222F56C: ; jump table
|
|
.short _0222F582 - _0222F56C - 2 ; case 0
|
|
.short _0222F58C - _0222F56C - 2 ; case 1
|
|
.short _0222F596 - _0222F56C - 2 ; case 2
|
|
.short _0222F5A0 - _0222F56C - 2 ; case 3
|
|
.short _0222F5B8 - _0222F56C - 2 ; case 4
|
|
.short _0222F5C2 - _0222F56C - 2 ; case 5
|
|
.short _0222F5CC - _0222F56C - 2 ; case 6
|
|
.short _0222F5D6 - _0222F56C - 2 ; case 7
|
|
.short _0222F5EE - _0222F56C - 2 ; case 8
|
|
.short _0222F5EE - _0222F56C - 2 ; case 9
|
|
.short _0222F5EE - _0222F56C - 2 ; case 10
|
|
_0222F582:
|
|
ldr r0, _0222F608 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F60C ; =0x000006A8
|
|
ldr r0, [r1, r0]
|
|
pop {r4, pc}
|
|
_0222F58C:
|
|
ldr r0, _0222F608 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F610 ; =0x000006AC
|
|
ldr r0, [r1, r0]
|
|
pop {r4, pc}
|
|
_0222F596:
|
|
ldr r0, _0222F608 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F614 ; =0x00000804
|
|
ldr r0, [r1, r0]
|
|
pop {r4, pc}
|
|
_0222F5A0:
|
|
ldr r0, _0222F608 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F610 ; =0x000006AC
|
|
ldr r1, [r1, r0]
|
|
mov r0, #0xfa
|
|
lsl r0, r0, #2
|
|
cmp r1, r0
|
|
blt _0222F5B4
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_0222F5B4:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0222F5B8:
|
|
ldr r0, _0222F608 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F618 ; =0x00000808
|
|
ldr r0, [r1, r0]
|
|
pop {r4, pc}
|
|
_0222F5C2:
|
|
ldr r0, _0222F608 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F61C ; =0x0000080C
|
|
ldr r0, [r1, r0]
|
|
pop {r4, pc}
|
|
_0222F5CC:
|
|
ldr r0, _0222F608 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F620 ; =0x00000964
|
|
ldr r0, [r1, r0]
|
|
pop {r4, pc}
|
|
_0222F5D6:
|
|
ldr r0, _0222F608 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F61C ; =0x0000080C
|
|
ldr r1, [r1, r0]
|
|
mov r0, #0xfa
|
|
lsl r0, r0, #2
|
|
cmp r1, r0
|
|
blt _0222F5EA
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_0222F5EA:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0222F5EE:
|
|
ldr r0, _0222F608 ; =0x022577C0
|
|
sub r4, #8
|
|
ldr r1, [r0]
|
|
lsl r0, r4, #2
|
|
add r1, r1, r0
|
|
ldr r0, _0222F624 ; =0x00000974
|
|
ldr r0, [r1, r0]
|
|
pop {r4, pc}
|
|
_0222F5FE:
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
nop
|
|
_0222F608: .word 0x022577C0
|
|
_0222F60C: .word 0x000006A8
|
|
_0222F610: .word 0x000006AC
|
|
_0222F614: .word 0x00000804
|
|
_0222F618: .word 0x00000808
|
|
_0222F61C: .word 0x0000080C
|
|
_0222F620: .word 0x00000964
|
|
_0222F624: .word 0x00000974
|
|
thumb_func_end ov45_0222F544
|
|
|
|
thumb_func_start ov45_0222F628
|
|
ov45_0222F628: ; 0x0222F628
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0222F6A4 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F638
|
|
bl GF_AssertFail
|
|
_0222F638:
|
|
cmp r4, #8
|
|
blt _0222F640
|
|
bl GF_AssertFail
|
|
_0222F640:
|
|
cmp r4, #7
|
|
bhi _0222F69C
|
|
add r0, r4, r4
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222F650: ; jump table
|
|
.short _0222F660 - _0222F650 - 2 ; case 0
|
|
.short _0222F66C - _0222F650 - 2 ; case 1
|
|
.short _0222F66C - _0222F650 - 2 ; case 2
|
|
.short _0222F66C - _0222F650 - 2 ; case 3
|
|
.short _0222F67E - _0222F650 - 2 ; case 4
|
|
.short _0222F68A - _0222F650 - 2 ; case 5
|
|
.short _0222F68A - _0222F650 - 2 ; case 6
|
|
.short _0222F68A - _0222F650 - 2 ; case 7
|
|
_0222F660:
|
|
ldr r0, _0222F6A4 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x6b
|
|
lsl r0, r0, #4
|
|
add r0, r1, r0
|
|
pop {r4, pc}
|
|
_0222F66C:
|
|
ldr r0, _0222F6A4 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F6A8 ; =0x0000078C
|
|
add r2, r1, r0
|
|
sub r1, r4, #1
|
|
mov r0, #0x24
|
|
mul r0, r1
|
|
add r0, r2, r0
|
|
pop {r4, pc}
|
|
_0222F67E:
|
|
ldr r0, _0222F6A4 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x81
|
|
lsl r0, r0, #4
|
|
add r0, r1, r0
|
|
pop {r4, pc}
|
|
_0222F68A:
|
|
ldr r0, _0222F6A4 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0222F6AC ; =0x000008EC
|
|
add r2, r1, r0
|
|
sub r1, r4, #5
|
|
mov r0, #0x24
|
|
mul r0, r1
|
|
add r0, r2, r0
|
|
pop {r4, pc}
|
|
_0222F69C:
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222F6A4: .word 0x022577C0
|
|
_0222F6A8: .word 0x0000078C
|
|
_0222F6AC: .word 0x000008EC
|
|
thumb_func_end ov45_0222F628
|
|
|
|
thumb_func_start ov45_0222F6B0
|
|
ov45_0222F6B0: ; 0x0222F6B0
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _0222F700 ; =0x022577C0
|
|
add r4, r1, #0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F6C2
|
|
bl GF_AssertFail
|
|
_0222F6C2:
|
|
cmp r5, #2
|
|
blt _0222F6CA
|
|
bl GF_AssertFail
|
|
_0222F6CA:
|
|
cmp r4, #0xc
|
|
blo _0222F6D2
|
|
bl GF_AssertFail
|
|
_0222F6D2:
|
|
cmp r5, #2
|
|
blt _0222F6DA
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0222F6DA:
|
|
cmp r4, #0xc
|
|
blo _0222F6E2
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_0222F6E2:
|
|
cmp r5, #0
|
|
bne _0222F6F2
|
|
ldr r0, _0222F700 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
add r1, r0, r4
|
|
ldr r0, _0222F704 ; =0x000007F8
|
|
ldrb r0, [r1, r0]
|
|
pop {r3, r4, r5, pc}
|
|
_0222F6F2:
|
|
ldr r0, _0222F700 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
add r1, r0, r4
|
|
ldr r0, _0222F708 ; =0x00000958
|
|
ldrb r0, [r1, r0]
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222F700: .word 0x022577C0
|
|
_0222F704: .word 0x000007F8
|
|
_0222F708: .word 0x00000958
|
|
thumb_func_end ov45_0222F6B0
|
|
|
|
thumb_func_start ov45_0222F70C
|
|
ov45_0222F70C: ; 0x0222F70C
|
|
push {r4, lr}
|
|
ldr r0, _0222F744 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0222F71A
|
|
bl GF_AssertFail
|
|
_0222F71A:
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl ov00_021E5CD0
|
|
mov r0, #0
|
|
add r1, r0, #0
|
|
bl ov00_021E5CA0
|
|
ldr r2, _0222F744 ; =0x022577C0
|
|
ldr r0, _0222F748 ; =0x0000069C
|
|
ldr r1, [r2]
|
|
mov r3, #3
|
|
strh r3, [r1, r0]
|
|
add r1, r0, #2
|
|
ldr r3, [r2]
|
|
mov r4, #0
|
|
strb r4, [r3, r1]
|
|
ldr r1, [r2]
|
|
add r0, r0, #3
|
|
strb r4, [r1, r0]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0222F744: .word 0x022577C0
|
|
_0222F748: .word 0x0000069C
|
|
thumb_func_end ov45_0222F70C
|
|
|
|
thumb_func_start ov45_0222F74C
|
|
ov45_0222F74C: ; 0x0222F74C
|
|
push {r3, lr}
|
|
mov r1, #1
|
|
cmp r0, #7
|
|
bhi _0222F780
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222F760: ; jump table
|
|
.short _0222F786 - _0222F760 - 2 ; case 0
|
|
.short _0222F770 - _0222F760 - 2 ; case 1
|
|
.short _0222F770 - _0222F760 - 2 ; case 2
|
|
.short _0222F774 - _0222F760 - 2 ; case 3
|
|
.short _0222F770 - _0222F760 - 2 ; case 4
|
|
.short _0222F770 - _0222F760 - 2 ; case 5
|
|
.short _0222F774 - _0222F760 - 2 ; case 6
|
|
.short _0222F77C - _0222F760 - 2 ; case 7
|
|
_0222F770:
|
|
mov r1, #0
|
|
b _0222F786
|
|
_0222F774:
|
|
bl GF_AssertFail
|
|
mov r1, #0
|
|
b _0222F786
|
|
_0222F77C:
|
|
mov r1, #0
|
|
b _0222F786
|
|
_0222F780:
|
|
bl GF_AssertFail
|
|
mov r1, #0
|
|
_0222F786:
|
|
add r0, r1, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222F74C
|
|
|
|
thumb_func_start ov45_0222F78C
|
|
ov45_0222F78C: ; 0x0222F78C
|
|
ldr r1, _0222F7A0 ; =0x022577C0
|
|
ldr r0, _0222F7A4 ; =0x00000133
|
|
ldr r2, [r1]
|
|
mov r3, #0
|
|
strb r3, [r2, r0]
|
|
ldr r1, [r1]
|
|
sub r0, r0, #1
|
|
strb r3, [r1, r0]
|
|
bx lr
|
|
nop
|
|
_0222F7A0: .word 0x022577C0
|
|
_0222F7A4: .word 0x00000133
|
|
thumb_func_end ov45_0222F78C
|
|
|
|
thumb_func_start ov45_0222F7A8
|
|
ov45_0222F7A8: ; 0x0222F7A8
|
|
sub r0, r0, #1
|
|
bpl _0222F7AE
|
|
mov r0, #4
|
|
_0222F7AE:
|
|
bx lr
|
|
thumb_func_end ov45_0222F7A8
|
|
|
|
thumb_func_start ov45_0222F7B0
|
|
ov45_0222F7B0: ; 0x0222F7B0
|
|
add r0, r0, #1
|
|
bx lr
|
|
thumb_func_end ov45_0222F7B0
|
|
|
|
thumb_func_start ov45_0222F7B4
|
|
ov45_0222F7B4: ; 0x0222F7B4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
str r0, [sp, #4]
|
|
ldr r0, [r0, #8]
|
|
bl sub_0202CA8C
|
|
add r4, r0, #0
|
|
ldr r0, [sp, #4]
|
|
ldr r0, [r0, #8]
|
|
bl sub_0202CA90
|
|
cmp r4, #0
|
|
bne _0222F7D4
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222F7D4:
|
|
ldr r7, _0222F840 ; =0x00000136
|
|
ldr r2, [sp, #4]
|
|
mov r1, #0
|
|
sub r3, r7, #2
|
|
add r5, r7, #1
|
|
_0222F7DE:
|
|
ldrb r6, [r2, r5]
|
|
cmp r6, #0
|
|
beq _0222F7FE
|
|
ldrh r6, [r2, r3]
|
|
cmp r4, r6
|
|
bne _0222F7F6
|
|
ldrb r6, [r2, r7]
|
|
cmp r0, r6
|
|
bne _0222F7F6
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222F7F6:
|
|
add r1, r1, #1
|
|
add r2, r2, #4
|
|
cmp r1, #0x14
|
|
blt _0222F7DE
|
|
_0222F7FE:
|
|
cmp r1, #0x14
|
|
blt _0222F80C
|
|
bl GF_AssertFail
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222F80C:
|
|
lsl r2, r1, #2
|
|
ldr r1, [sp, #4]
|
|
mov r3, #0x4d
|
|
add r2, r1, r2
|
|
lsl r3, r3, #2
|
|
strh r4, [r2, r3]
|
|
add r1, r3, #2
|
|
strb r0, [r2, r1]
|
|
mov r1, #1
|
|
add r0, r3, #3
|
|
strb r1, [r2, r0]
|
|
mov r0, #0x50
|
|
str r0, [sp]
|
|
ldr r2, _0222F844 ; =0x02254EF0
|
|
ldr r4, [sp, #4]
|
|
ldr r2, [r2]
|
|
sub r0, #0x51
|
|
mov r1, #0
|
|
add r3, r4, r3
|
|
bl ov45_022322A4
|
|
bl ov45_0222F74C
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222F840: .word 0x00000136
|
|
_0222F844: .word 0x02254EF0
|
|
thumb_func_end ov45_0222F7B4
|
|
|
|
thumb_func_start ov45_0222F848
|
|
ov45_0222F848: ; 0x0222F848
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
mov r0, #0x14
|
|
add r4, r5, #0
|
|
mul r4, r0
|
|
add r0, r2, #0
|
|
add r1, r4, #0
|
|
bl AllocFromHeap
|
|
ldr r1, _0222F874 ; =0x022577C0
|
|
ldr r2, [r1]
|
|
str r0, [r2, #0x24]
|
|
ldr r0, [r1]
|
|
mov r1, #0
|
|
ldr r0, [r0, #0x24]
|
|
add r2, r4, #0
|
|
bl memset
|
|
ldr r0, _0222F874 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
str r5, [r0, #0x28]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0222F874: .word 0x022577C0
|
|
thumb_func_end ov45_0222F848
|
|
|
|
thumb_func_start ov45_0222F878
|
|
ov45_0222F878: ; 0x0222F878
|
|
ldr r0, _0222F884 ; =0x022577C0
|
|
ldr r3, _0222F888 ; =FreeToHeap
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x24]
|
|
bx r3
|
|
nop
|
|
_0222F884: .word 0x022577C0
|
|
_0222F888: .word FreeToHeap
|
|
thumb_func_end ov45_0222F878
|
|
|
|
thumb_func_start ov45_0222F88C
|
|
ov45_0222F88C: ; 0x0222F88C
|
|
push {r3, lr}
|
|
ldr r3, [r0, #0x28]
|
|
bl ov45_0222F898
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222F88C
|
|
|
|
thumb_func_start ov45_0222F898
|
|
ov45_0222F898: ; 0x0222F898
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
str r2, [sp]
|
|
mov r2, #0
|
|
add r4, r0, #0
|
|
add r6, r3, #0
|
|
bl ov45_0222FB24
|
|
add r7, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r7, r0
|
|
bne _0222F8B4
|
|
bl GF_AssertFail
|
|
_0222F8B4:
|
|
ldr r2, [r4, #0x28]
|
|
ldr r5, [r4, #0x24]
|
|
add r4, r2, #0
|
|
mul r4, r7
|
|
cmp r2, r6
|
|
bls _0222F8CA
|
|
add r0, r5, r4
|
|
mov r1, #0
|
|
bl memset
|
|
b _0222F8CC
|
|
_0222F8CA:
|
|
add r6, r2, #0
|
|
_0222F8CC:
|
|
ldr r1, [sp]
|
|
add r0, r5, r4
|
|
add r2, r6, #0
|
|
bl memcpy
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov45_0222F898
|
|
|
|
thumb_func_start ov45_0222F8D8
|
|
ov45_0222F8D8: ; 0x0222F8D8
|
|
push {r3, r4, r5, lr}
|
|
mov r2, #0
|
|
add r5, r0, #0
|
|
bl ov45_0222FB24
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
bne _0222F8F0
|
|
bl GF_AssertFail
|
|
_0222F8F0:
|
|
ldr r0, [r5, #0x28]
|
|
ldr r2, [r5, #0x24]
|
|
add r1, r0, #0
|
|
mul r1, r4
|
|
add r0, r2, r1
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222F8D8
|
|
|
|
thumb_func_start ov45_0222F8FC
|
|
ov45_0222F8FC: ; 0x0222F8FC
|
|
push {r3, r4, r5, lr}
|
|
mov r2, #0
|
|
add r5, r0, #0
|
|
bl ov45_0222FB24
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
bne _0222F914
|
|
bl GF_AssertFail
|
|
_0222F914:
|
|
ldr r2, [r5, #0x28]
|
|
ldr r1, [r5, #0x24]
|
|
add r0, r2, #0
|
|
mul r0, r4
|
|
add r0, r1, r0
|
|
mov r1, #0
|
|
bl memset
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222F8FC
|
|
|
|
thumb_func_start ov45_0222F928
|
|
ov45_0222F928: ; 0x0222F928
|
|
push {r4, r5, r6, lr}
|
|
add r4, r2, #0
|
|
mov r2, #0
|
|
add r5, r0, #0
|
|
bl ov45_0222FB24
|
|
add r6, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r6, r0
|
|
bne _0222F942
|
|
bl GF_AssertFail
|
|
_0222F942:
|
|
mov r0, #0xc
|
|
mul r0, r6
|
|
add r2, r5, r0
|
|
ldmia r4!, {r0, r1}
|
|
add r2, #0x2c
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r4]
|
|
str r0, [r2]
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0222F928
|
|
|
|
thumb_func_start ov45_0222F954
|
|
ov45_0222F954: ; 0x0222F954
|
|
push {r3, r4, r5, lr}
|
|
mov r2, #0
|
|
add r5, r0, #0
|
|
bl ov45_0222FB24
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
bne _0222F96C
|
|
bl GF_AssertFail
|
|
_0222F96C:
|
|
mov r0, #0xc
|
|
add r5, #0x2c
|
|
mul r0, r4
|
|
add r0, r5, r0
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222F954
|
|
|
|
thumb_func_start ov45_0222F978
|
|
ov45_0222F978: ; 0x0222F978
|
|
push {r3, r4, r5, lr}
|
|
mov r2, #0
|
|
add r5, r0, #0
|
|
bl ov45_0222FB24
|
|
add r4, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r4, r0
|
|
bne _0222F990
|
|
bl GF_AssertFail
|
|
_0222F990:
|
|
mov r0, #0xc
|
|
add r1, r4, #0
|
|
mul r1, r0
|
|
add r5, #0x2c
|
|
mov r0, #0
|
|
add r2, r5, r1
|
|
strb r0, [r5, r1]
|
|
strb r0, [r2, #1]
|
|
strb r0, [r2, #2]
|
|
strb r0, [r2, #3]
|
|
strb r0, [r2, #4]
|
|
strb r0, [r2, #5]
|
|
strb r0, [r2, #6]
|
|
strb r0, [r2, #7]
|
|
strb r0, [r2, #8]
|
|
strb r0, [r2, #9]
|
|
strb r0, [r2, #0xa]
|
|
strb r0, [r2, #0xb]
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222F978
|
|
|
|
thumb_func_start ov45_0222F9B8
|
|
ov45_0222F9B8: ; 0x0222F9B8
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r0, #0
|
|
str r1, [sp]
|
|
str r2, [sp, #4]
|
|
str r3, [sp, #8]
|
|
mov r4, #0
|
|
add r5, r7, #0
|
|
_0222F9C8:
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _0222F9D6
|
|
bl GF_AssertFail
|
|
_0222F9D6:
|
|
cmp r4, #0
|
|
bne _0222F9DE
|
|
ldr r6, [sp]
|
|
b _0222F9E0
|
|
_0222F9DE:
|
|
ldr r6, [sp, #4]
|
|
_0222F9E0:
|
|
mov r0, #0x47
|
|
mov r1, #0
|
|
lsl r0, r0, #2
|
|
strh r1, [r5, r0]
|
|
ldr r0, [sp, #8]
|
|
lsl r1, r6, #2
|
|
bl AllocFromHeap
|
|
mov r1, #0x12
|
|
lsl r1, r1, #4
|
|
str r0, [r5, r1]
|
|
sub r0, r1, #2
|
|
strh r6, [r5, r0]
|
|
add r0, r7, #0
|
|
add r1, r4, #0
|
|
bl ov45_0222FA40
|
|
add r4, r4, #1
|
|
add r5, #8
|
|
cmp r4, #2
|
|
blt _0222F9C8
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222F9B8
|
|
|
|
thumb_func_start ov45_0222FA10
|
|
ov45_0222FA10: ; 0x0222FA10
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r4, #0
|
|
mov r7, #0x12
|
|
add r5, r0, #0
|
|
add r6, r4, #0
|
|
lsl r7, r7, #4
|
|
_0222FA1C:
|
|
ldr r0, [r5, r7]
|
|
cmp r0, #0
|
|
bne _0222FA26
|
|
bl GF_AssertFail
|
|
_0222FA26:
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
ldr r0, [r5, r0]
|
|
bl FreeToHeap
|
|
mov r0, #0x12
|
|
lsl r0, r0, #4
|
|
str r6, [r5, r0]
|
|
add r4, r4, #1
|
|
add r5, #8
|
|
cmp r4, #2
|
|
blt _0222FA1C
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
thumb_func_end ov45_0222FA10
|
|
|
|
thumb_func_start ov45_0222FA40
|
|
ov45_0222FA40: ; 0x0222FA40
|
|
push {r3, r4, r5, r6}
|
|
lsl r2, r1, #3
|
|
add r0, r0, r2
|
|
mov r2, #0x47
|
|
mov r1, #0
|
|
lsl r2, r2, #2
|
|
strh r1, [r0, r2]
|
|
add r2, r2, #2
|
|
ldrh r2, [r0, r2]
|
|
cmp r2, #0
|
|
ble _0222FA6E
|
|
mov r2, #0x12
|
|
lsl r2, r2, #4
|
|
add r6, r1, #0
|
|
sub r5, r1, #1
|
|
sub r3, r2, #2
|
|
_0222FA60:
|
|
ldr r4, [r0, r2]
|
|
add r1, r1, #1
|
|
str r5, [r4, r6]
|
|
ldrh r4, [r0, r3]
|
|
add r6, r6, #4
|
|
cmp r1, r4
|
|
blt _0222FA60
|
|
_0222FA6E:
|
|
pop {r3, r4, r5, r6}
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222FA40
|
|
|
|
thumb_func_start ov45_0222FA74
|
|
ov45_0222FA74: ; 0x0222FA74
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r0, #0
|
|
str r1, [sp]
|
|
add r4, r2, #0
|
|
bl ov45_0222FB24
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
bne _0222FAF0
|
|
ldr r0, _0222FAF4 ; =0x0000011E
|
|
lsl r4, r4, #3
|
|
add r5, r7, r0
|
|
sub r0, r0, #2
|
|
add r1, r7, r0
|
|
add r0, r1, r4
|
|
str r0, [sp, #4]
|
|
ldrsh r1, [r1, r4]
|
|
ldrh r0, [r5, r4]
|
|
cmp r1, r0
|
|
blt _0222FAA4
|
|
bl GF_AssertFail
|
|
_0222FAA4:
|
|
ldr r1, [sp, #4]
|
|
mov r0, #0
|
|
ldrh r2, [r5, r4]
|
|
ldrsh r1, [r1, r0]
|
|
cmp r1, r2
|
|
bge _0222FAF0
|
|
cmp r2, #0
|
|
ble _0222FAD4
|
|
mov r1, #0x12
|
|
add r2, r7, r4
|
|
lsl r1, r1, #4
|
|
ldr r1, [r2, r1]
|
|
ldr r3, _0222FAF4 ; =0x0000011E
|
|
sub r5, r0, #1
|
|
_0222FAC0:
|
|
ldr r6, [r1]
|
|
cmp r6, r5
|
|
bne _0222FACA
|
|
str r0, [sp, #8]
|
|
b _0222FAD4
|
|
_0222FACA:
|
|
ldrh r6, [r2, r3]
|
|
add r0, r0, #1
|
|
add r1, r1, #4
|
|
cmp r0, r6
|
|
blt _0222FAC0
|
|
_0222FAD4:
|
|
mov r0, #0x12
|
|
add r1, r7, r4
|
|
lsl r0, r0, #4
|
|
ldr r2, [r1, r0]
|
|
ldr r0, [sp, #8]
|
|
lsl r1, r0, #2
|
|
ldr r0, [sp]
|
|
str r0, [r2, r1]
|
|
ldr r0, [sp, #4]
|
|
mov r1, #0
|
|
ldrsh r0, [r0, r1]
|
|
add r1, r0, #1
|
|
ldr r0, [sp, #4]
|
|
strh r1, [r0]
|
|
_0222FAF0:
|
|
add sp, #0xc
|
|
pop {r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0222FAF4: .word 0x0000011E
|
|
thumb_func_end ov45_0222FA74
|
|
|
|
thumb_func_start ov45_0222FAF8
|
|
ov45_0222FAF8: ; 0x0222FAF8
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r2, #0
|
|
bl ov45_0222FB24
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _0222FB22
|
|
lsl r2, r4, #3
|
|
mov r3, #0x12
|
|
add r4, r5, r2
|
|
lsl r3, r3, #4
|
|
ldr r4, [r4, r3]
|
|
lsl r0, r0, #2
|
|
str r1, [r4, r0]
|
|
sub r0, r3, #4
|
|
add r1, r5, r0
|
|
ldrsh r0, [r1, r2]
|
|
sub r0, r0, #1
|
|
strh r0, [r1, r2]
|
|
_0222FB22:
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_0222FAF8
|
|
|
|
thumb_func_start ov45_0222FB24
|
|
ov45_0222FB24: ; 0x0222FB24
|
|
push {r4, r5}
|
|
lsl r2, r2, #3
|
|
add r0, r0, r2
|
|
ldr r2, _0222FB58 ; =0x0000011E
|
|
mov r3, #0
|
|
ldrh r4, [r0, r2]
|
|
cmp r4, #0
|
|
ble _0222FB50
|
|
add r2, r2, #2
|
|
ldr r5, [r0, r2]
|
|
ldr r2, _0222FB58 ; =0x0000011E
|
|
_0222FB3A:
|
|
ldr r4, [r5]
|
|
cmp r1, r4
|
|
bne _0222FB46
|
|
add r0, r3, #0
|
|
pop {r4, r5}
|
|
bx lr
|
|
_0222FB46:
|
|
ldrh r4, [r0, r2]
|
|
add r3, r3, #1
|
|
add r5, r5, #4
|
|
cmp r3, r4
|
|
blt _0222FB3A
|
|
_0222FB50:
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
pop {r4, r5}
|
|
bx lr
|
|
.balign 4, 0
|
|
_0222FB58: .word 0x0000011E
|
|
thumb_func_end ov45_0222FB24
|
|
|
|
thumb_func_start ov45_0222FB5C
|
|
ov45_0222FB5C: ; 0x0222FB5C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
lsl r6, r2, #3
|
|
add r4, r1, #0
|
|
ldr r0, _0222FB80 ; =0x0000011E
|
|
add r1, r5, r6
|
|
ldrh r0, [r1, r0]
|
|
cmp r4, r0
|
|
blt _0222FB72
|
|
bl GF_AssertFail
|
|
_0222FB72:
|
|
mov r0, #0x12
|
|
add r1, r5, r6
|
|
lsl r0, r0, #4
|
|
ldr r1, [r1, r0]
|
|
lsl r0, r4, #2
|
|
ldr r0, [r1, r0]
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_0222FB80: .word 0x0000011E
|
|
thumb_func_end ov45_0222FB5C
|
|
|
|
thumb_func_start ov45_0222FB84
|
|
ov45_0222FB84: ; 0x0222FB84
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r0, r1, #0
|
|
bl ov45_0222F7B0
|
|
add r7, r0, #0
|
|
add r0, r5, #0
|
|
mov r1, #1
|
|
bl ov45_0222FA40
|
|
ldr r0, _0222FBD4 ; =0x0000011E
|
|
mov r4, #0
|
|
ldrh r0, [r5, r0]
|
|
cmp r0, #0
|
|
ble _0222FBD2
|
|
add r6, r5, #0
|
|
_0222FBA4:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl ov45_0222FB5C
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
mvn r0, r0
|
|
cmp r1, r0
|
|
beq _0222FBC6
|
|
ldr r0, [r6, #0x34]
|
|
cmp r7, r0
|
|
bne _0222FBC6
|
|
add r0, r5, #0
|
|
mov r2, #1
|
|
bl ov45_0222FA74
|
|
_0222FBC6:
|
|
ldr r0, _0222FBD4 ; =0x0000011E
|
|
add r4, r4, #1
|
|
ldrh r0, [r5, r0]
|
|
add r6, #0xc
|
|
cmp r4, r0
|
|
blt _0222FBA4
|
|
_0222FBD2:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0222FBD4: .word 0x0000011E
|
|
thumb_func_end ov45_0222FB84
|
|
|
|
thumb_func_start ov45_0222FBD8
|
|
ov45_0222FBD8: ; 0x0222FBD8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #8
|
|
add r6, r0, #0
|
|
str r1, [sp]
|
|
cmp r1, #4
|
|
blt _0222FBE8
|
|
bl GF_AssertFail
|
|
_0222FBE8:
|
|
ldr r0, [sp]
|
|
bl ov45_0222F7B0
|
|
str r0, [sp, #4]
|
|
ldr r0, _0222FC3C ; =0x0000011E
|
|
mov r7, #0
|
|
ldrh r0, [r6, r0]
|
|
add r4, r7, #0
|
|
cmp r0, #0
|
|
ble _0222FC26
|
|
add r5, r6, #0
|
|
_0222FBFE:
|
|
add r0, r6, #0
|
|
add r1, r4, #0
|
|
mov r2, #0
|
|
bl ov45_0222FB5C
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _0222FC1A
|
|
ldr r1, [r5, #0x34]
|
|
ldr r0, [sp, #4]
|
|
cmp r0, r1
|
|
bne _0222FC1A
|
|
add r7, r7, #1
|
|
_0222FC1A:
|
|
ldr r0, _0222FC3C ; =0x0000011E
|
|
add r4, r4, #1
|
|
ldrh r0, [r6, r0]
|
|
add r5, #0xc
|
|
cmp r4, r0
|
|
blt _0222FBFE
|
|
_0222FC26:
|
|
ldr r1, _0222FC40 ; =0x02254C30
|
|
ldr r0, [sp]
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, r7
|
|
ble _0222FC36
|
|
add sp, #8
|
|
mov r0, #1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222FC36:
|
|
mov r0, #0
|
|
add sp, #8
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0222FC3C: .word 0x0000011E
|
|
_0222FC40: .word 0x02254C30
|
|
thumb_func_end ov45_0222FBD8
|
|
|
|
thumb_func_start ov45_0222FC44
|
|
ov45_0222FC44: ; 0x0222FC44
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
cmp r1, #0
|
|
bne _0222FC84
|
|
ldr r0, _0222FCD0 ; =0x022577C0
|
|
mov r3, #1
|
|
ldr r2, [r0]
|
|
ldr r1, _0222FCD4 ; =0x000005B4
|
|
lsl r3, r3, #0xa
|
|
str r3, [r2, r1]
|
|
ldr r2, [r0]
|
|
mov r0, #0x6d
|
|
lsl r0, r0, #2
|
|
add r0, r2, r0
|
|
add r1, r2, r1
|
|
bl ov45_02232170
|
|
bl ov45_0222F74C
|
|
cmp r0, #0
|
|
bne _0222FC72
|
|
bl GF_AssertFail
|
|
_0222FC72:
|
|
ldr r2, _0222FCD8 ; =0x02254EF0
|
|
mov r0, #0
|
|
mov r1, #0
|
|
ldr r2, [r2]
|
|
mvn r0, r0
|
|
add r3, r1, #0
|
|
bl ov45_02232304
|
|
pop {r3, r4, r5, pc}
|
|
_0222FC84:
|
|
ldr r0, _0222FCD0 ; =0x022577C0
|
|
ldr r4, [r0]
|
|
add r0, r1, #0
|
|
bl ov45_0222F7A8
|
|
ldr r1, _0222FCDC ; =0x0000012D
|
|
ldrb r2, [r4, r1]
|
|
cmp r2, r0
|
|
bne _0222FCC4
|
|
cmp r5, #1
|
|
bne _0222FCBC
|
|
mov r2, #1
|
|
add r0, r1, #2
|
|
strb r2, [r4, r0]
|
|
ldr r0, _0222FCD0 ; =0x022577C0
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, r1]
|
|
bl ov45_0222FB84
|
|
bl ov45_02232580
|
|
add r1, r0, #0
|
|
ldr r0, _0222FCD0 ; =0x022577C0
|
|
mov r2, #1
|
|
ldr r0, [r0]
|
|
bl ov45_0222FA74
|
|
pop {r3, r4, r5, pc}
|
|
_0222FCBC:
|
|
mov r2, #2
|
|
add r0, r1, #2
|
|
strb r2, [r4, r0]
|
|
pop {r3, r4, r5, pc}
|
|
_0222FCC4:
|
|
bl GF_AssertFail
|
|
bl ov45_0222EB94
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222FCD0: .word 0x022577C0
|
|
_0222FCD4: .word 0x000005B4
|
|
_0222FCD8: .word 0x02254EF0
|
|
_0222FCDC: .word 0x0000012D
|
|
thumb_func_end ov45_0222FC44
|
|
|
|
thumb_func_start ov45_0222FCE0
|
|
ov45_0222FCE0: ; 0x0222FCE0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
add r7, r2, #0
|
|
str r3, [sp]
|
|
bl ov45_02232580
|
|
cmp r5, r0
|
|
bne _0222FD04
|
|
ldr r0, _0222FD4C ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x67
|
|
lsl r0, r0, #2
|
|
add r0, r1, r0
|
|
bl ov45_022320C4
|
|
mov r4, #1
|
|
b _0222FD06
|
|
_0222FD04:
|
|
mov r4, #0
|
|
_0222FD06:
|
|
ldr r0, _0222FD4C ; =0x022577C0
|
|
add r1, r5, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
bl ov45_0222FA74
|
|
ldr r0, _0222FD4C ; =0x022577C0
|
|
ldr r3, [sp]
|
|
ldr r0, [r0]
|
|
add r1, r5, #0
|
|
add r2, r7, #0
|
|
bl ov45_0222F898
|
|
ldr r0, _0222FD4C ; =0x022577C0
|
|
add r1, r5, #0
|
|
ldr r0, [r0]
|
|
add r2, r6, #0
|
|
bl ov45_0222F928
|
|
ldr r0, _0222FD4C ; =0x022577C0
|
|
add r1, r5, #0
|
|
ldr r6, [r0]
|
|
add r0, r6, #0
|
|
bl ov45_0222F8D8
|
|
add r3, r4, #0
|
|
ldr r4, _0222FD4C ; =0x022577C0
|
|
add r1, r0, #0
|
|
ldr r4, [r4]
|
|
ldr r2, [r6, #0x20]
|
|
ldr r4, [r4, #0xc]
|
|
add r0, r5, #0
|
|
blx r4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222FD4C: .word 0x022577C0
|
|
thumb_func_end ov45_0222FCE0
|
|
|
|
thumb_func_start ov45_0222FD50
|
|
ov45_0222FD50: ; 0x0222FD50
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _0222FDCC ; =0x022577C0
|
|
add r1, r5, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
bl ov45_0222FB24
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _0222FDC8
|
|
mov r6, #0
|
|
ldr r7, _0222FDCC ; =0x022577C0
|
|
add r4, r6, #0
|
|
_0222FD6E:
|
|
ldr r1, [r7]
|
|
mov r0, #6
|
|
add r2, r1, r4
|
|
lsl r0, r0, #8
|
|
ldr r0, [r2, r0]
|
|
cmp r5, r0
|
|
bne _0222FD88
|
|
ldr r2, _0222FDD0 ; =0x000005B8
|
|
add r0, r5, #0
|
|
add r1, r1, r2
|
|
add r1, r1, r4
|
|
bl ov45_02230008
|
|
_0222FD88:
|
|
add r6, r6, #1
|
|
add r4, #0x4c
|
|
cmp r6, #3
|
|
blt _0222FD6E
|
|
ldr r0, _0222FDCC ; =0x022577C0
|
|
ldr r2, [r0]
|
|
add r0, r5, #0
|
|
ldr r1, [r2, #0x20]
|
|
ldr r2, [r2, #0x10]
|
|
blx r2
|
|
ldr r0, _0222FDCC ; =0x022577C0
|
|
add r1, r5, #0
|
|
ldr r0, [r0]
|
|
bl ov45_0222F978
|
|
ldr r0, _0222FDCC ; =0x022577C0
|
|
add r1, r5, #0
|
|
ldr r0, [r0]
|
|
bl ov45_0222F8FC
|
|
ldr r0, _0222FDCC ; =0x022577C0
|
|
add r1, r5, #0
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
bl ov45_0222FAF8
|
|
ldr r0, _0222FDCC ; =0x022577C0
|
|
add r1, r5, #0
|
|
ldr r0, [r0]
|
|
mov r2, #1
|
|
bl ov45_0222FAF8
|
|
_0222FDC8:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222FDCC: .word 0x022577C0
|
|
_0222FDD0: .word 0x000005B8
|
|
thumb_func_end ov45_0222FD50
|
|
|
|
thumb_func_start ov45_0222FDD4
|
|
ov45_0222FDD4: ; 0x0222FDD4
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0222FDD4
|
|
|
|
thumb_func_start ov45_0222FDD8
|
|
ov45_0222FDD8: ; 0x0222FDD8
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r7, r0, #0
|
|
ldr r0, _0222FE7C ; =0x022577C0
|
|
add r4, r1, #0
|
|
add r5, r2, #0
|
|
ldr r0, [r0]
|
|
add r1, r7, #0
|
|
mov r2, #0
|
|
str r3, [sp]
|
|
bl ov45_0222FB24
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _0222FE78
|
|
cmp r4, #5
|
|
bhi _0222FE78
|
|
add r0, r4, r4
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_0222FE06: ; jump table
|
|
.short _0222FE12 - _0222FE06 - 2 ; case 0
|
|
.short _0222FE16 - _0222FE06 - 2 ; case 1
|
|
.short _0222FE16 - _0222FE06 - 2 ; case 2
|
|
.short _0222FE16 - _0222FE06 - 2 ; case 3
|
|
.short _0222FE16 - _0222FE06 - 2 ; case 4
|
|
.short _0222FE2C - _0222FE06 - 2 ; case 5
|
|
_0222FE12:
|
|
mov r1, #0
|
|
b _0222FE32
|
|
_0222FE16:
|
|
add r0, r4, #0
|
|
bl ov45_0222F7A8
|
|
ldr r1, _0222FE7C ; =0x022577C0
|
|
ldr r2, [r1]
|
|
ldr r1, _0222FE80 ; =0x0000012D
|
|
ldrb r1, [r2, r1]
|
|
cmp r1, r0
|
|
bne _0222FE78
|
|
mov r1, #1
|
|
b _0222FE32
|
|
_0222FE2C:
|
|
mov r1, #0
|
|
b _0222FE32
|
|
thumb_func_end ov45_0222FDD8
|
|
|
|
thumb_func_start ov45_0222FE30
|
|
ov45_0222FE30: ; 0x0222FE30
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
_0222FE32:
|
|
add r4, r1, #0
|
|
mov r0, #0xc
|
|
mul r4, r0
|
|
ldr r0, _0222FE7C ; =0x022577C0
|
|
mov r1, #0x62
|
|
ldr r0, [r0]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r4
|
|
ldr r2, [r0, r1]
|
|
cmp r2, r5
|
|
bls _0222FE78
|
|
sub r1, r1, #4
|
|
ldr r0, [r0, r1]
|
|
lsl r5, r5, #3
|
|
add r0, r0, r5
|
|
ldr r1, [r0, #4]
|
|
ldr r0, [sp, #0x18]
|
|
cmp r1, r0
|
|
bls _0222FE5C
|
|
bl GF_AssertFail
|
|
_0222FE5C:
|
|
ldr r0, _0222FE7C ; =0x022577C0
|
|
mov r3, #0x61
|
|
ldr r0, [r0]
|
|
lsl r3, r3, #2
|
|
add r6, r0, r4
|
|
ldr r4, [r6, r3]
|
|
add r3, #8
|
|
add r2, r4, r5
|
|
ldr r1, [sp]
|
|
ldr r2, [r2, #4]
|
|
ldr r3, [r6, r3]
|
|
ldr r4, [r4, r5]
|
|
add r0, r7, #0
|
|
blx r4
|
|
_0222FE78:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
nop
|
|
_0222FE7C: .word 0x022577C0
|
|
_0222FE80: .word 0x0000012D
|
|
thumb_func_end ov45_0222FE30
|
|
|
|
thumb_func_start ov45_0222FE84
|
|
ov45_0222FE84: ; 0x0222FE84
|
|
push {r3, lr}
|
|
ldr r1, _0222FEBC ; =0x02254EF0
|
|
ldr r0, [sp, #8]
|
|
ldr r1, [r1]
|
|
bl strcmp
|
|
cmp r0, #0
|
|
bne _0222FEB8
|
|
ldr r0, _0222FEC0 ; =0x022577C0
|
|
mov r2, #0x50
|
|
ldr r1, [r0]
|
|
mov r0, #0x4d
|
|
lsl r0, r0, #2
|
|
add r0, r1, r0
|
|
ldr r1, [sp, #0xc]
|
|
bl memcpy
|
|
ldr r0, _0222FEC0 ; =0x022577C0
|
|
ldr r2, [r0]
|
|
mov r0, #0x13
|
|
lsl r0, r0, #4
|
|
ldrb r1, [r2, r0]
|
|
cmp r1, #0
|
|
beq _0222FEB8
|
|
mov r1, #0
|
|
strb r1, [r2, r0]
|
|
_0222FEB8:
|
|
pop {r3, pc}
|
|
nop
|
|
_0222FEBC: .word 0x02254EF0
|
|
_0222FEC0: .word 0x022577C0
|
|
thumb_func_end ov45_0222FE84
|
|
|
|
thumb_func_start ov45_0222FEC4
|
|
ov45_0222FEC4: ; 0x0222FEC4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _0222FF38 ; =0x022577C0
|
|
add r7, r1, #0
|
|
ldr r0, [r0]
|
|
add r1, r5, #0
|
|
mov r2, #0
|
|
bl ov45_0222FB24
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _0222FF36
|
|
ldr r0, _0222FF38 ; =0x022577C0
|
|
ldr r1, _0222FF3C ; =0x0000012D
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, r1]
|
|
cmp r1, #4
|
|
beq _0222FF2A
|
|
add r1, r5, #0
|
|
bl ov45_0222F954
|
|
ldr r4, [r0, #8]
|
|
ldr r0, _0222FF38 ; =0x022577C0
|
|
ldr r6, [r7, #8]
|
|
ldr r1, [r0]
|
|
ldr r0, _0222FF3C ; =0x0000012D
|
|
ldrb r0, [r1, r0]
|
|
bl ov45_0222F7B0
|
|
cmp r4, #5
|
|
bne _0222FF16
|
|
cmp r6, r0
|
|
bne _0222FF16
|
|
ldr r0, _0222FF38 ; =0x022577C0
|
|
add r1, r5, #0
|
|
ldr r0, [r0]
|
|
mov r2, #1
|
|
bl ov45_0222FA74
|
|
b _0222FF2A
|
|
_0222FF16:
|
|
cmp r4, r0
|
|
bne _0222FF2A
|
|
cmp r6, r0
|
|
beq _0222FF2A
|
|
ldr r0, _0222FF38 ; =0x022577C0
|
|
add r1, r5, #0
|
|
ldr r0, [r0]
|
|
mov r2, #1
|
|
bl ov45_0222FAF8
|
|
_0222FF2A:
|
|
ldr r0, _0222FF38 ; =0x022577C0
|
|
add r1, r5, #0
|
|
ldr r0, [r0]
|
|
add r2, r7, #0
|
|
bl ov45_0222F928
|
|
_0222FF36:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_0222FF38: .word 0x022577C0
|
|
_0222FF3C: .word 0x0000012D
|
|
thumb_func_end ov45_0222FEC4
|
|
|
|
thumb_func_start ov45_0222FF40
|
|
ov45_0222FF40: ; 0x0222FF40
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _0222FF78 ; =0x022577C0
|
|
add r4, r1, #0
|
|
ldr r0, [r0]
|
|
add r1, r5, #0
|
|
mov r2, #0
|
|
bl ov45_0222FB24
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _0222FF74
|
|
ldr r0, _0222FF78 ; =0x022577C0
|
|
add r1, r5, #0
|
|
ldr r0, [r0]
|
|
add r2, r4, #0
|
|
bl ov45_0222F88C
|
|
ldr r0, _0222FF78 ; =0x022577C0
|
|
add r1, r4, #0
|
|
ldr r3, [r0]
|
|
add r0, r5, #0
|
|
ldr r2, [r3, #0x20]
|
|
ldr r3, [r3, #0x14]
|
|
blx r3
|
|
_0222FF74:
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_0222FF78: .word 0x022577C0
|
|
thumb_func_end ov45_0222FF40
|
|
|
|
thumb_func_start ov45_0222FF7C
|
|
ov45_0222FF7C: ; 0x0222FF7C
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0
|
|
ldr r0, _0222FFFC ; =0x022577C0
|
|
add r4, r1, #0
|
|
ldr r0, [r0]
|
|
add r1, r5, #0
|
|
mov r2, #0
|
|
bl ov45_0222FB24
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _0222FFF8
|
|
bl ov45_0222E9E0
|
|
cmp r0, r5
|
|
beq _0222FFEA
|
|
ldr r0, _0222FFFC ; =0x022577C0
|
|
ldr r2, _02230000 ; =0x0000069E
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, r2]
|
|
cmp r0, #0
|
|
beq _0222FFEA
|
|
sub r0, r2, #2
|
|
ldrh r0, [r1, r0]
|
|
ldr r3, [r4]
|
|
cmp r0, r3
|
|
bne _0222FFEA
|
|
sub r2, #0xe6
|
|
add r2, r1, r2
|
|
mov r1, #0x4c
|
|
mul r1, r0
|
|
add r0, r2, r1
|
|
add r1, sp, #8
|
|
bl ov45_02230384
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl ov45_02230384
|
|
ldr r3, [sp, #8]
|
|
ldr r2, [sp, #0xc]
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, #4]
|
|
sub r0, r3, r0
|
|
sbc r2, r1
|
|
blt _0222FFF8
|
|
ldr r0, _0222FFFC ; =0x022577C0
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _02230004 ; =0x0000069F
|
|
strb r2, [r1, r0]
|
|
bl ov45_0222F154
|
|
_0222FFEA:
|
|
ldr r0, _0222FFFC ; =0x022577C0
|
|
ldr r1, [r4]
|
|
ldr r0, [r0]
|
|
add r2, r5, #0
|
|
add r3, r4, #0
|
|
bl ov45_02230164
|
|
_0222FFF8:
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_0222FFFC: .word 0x022577C0
|
|
_02230000: .word 0x0000069E
|
|
_02230004: .word 0x0000069F
|
|
thumb_func_end ov45_0222FF7C
|
|
|
|
thumb_func_start ov45_02230008
|
|
ov45_02230008: ; 0x02230008
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, _02230048 ; =0x022577C0
|
|
add r4, r1, #0
|
|
ldr r0, [r0]
|
|
add r1, r5, #0
|
|
mov r2, #0
|
|
bl ov45_0222FB24
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
cmp r0, r1
|
|
beq _02230046
|
|
ldr r0, _02230048 ; =0x022577C0
|
|
ldr r1, [r4]
|
|
ldr r0, [r0]
|
|
add r2, r5, #0
|
|
bl ov45_022301E0
|
|
ldr r1, _02230048 ; =0x022577C0
|
|
ldr r2, [r4]
|
|
ldr r5, [r1]
|
|
ldr r1, _0223004C ; =0x0000069C
|
|
ldrh r3, [r5, r1]
|
|
cmp r3, r2
|
|
bne _02230046
|
|
cmp r0, #1
|
|
bne _02230046
|
|
mov r2, #1
|
|
add r0, r1, #3
|
|
strb r2, [r5, r0]
|
|
_02230046:
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
_02230048: .word 0x022577C0
|
|
_0223004C: .word 0x0000069C
|
|
thumb_func_end ov45_02230008
|
|
|
|
thumb_func_start ov45_02230050
|
|
ov45_02230050: ; 0x02230050
|
|
push {r3, lr}
|
|
ldr r1, _02230060 ; =0x022577C0
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #0x20]
|
|
ldr r2, [r2, #0x18]
|
|
blx r2
|
|
pop {r3, pc}
|
|
nop
|
|
_02230060: .word 0x022577C0
|
|
thumb_func_end ov45_02230050
|
|
|
|
thumb_func_start ov45_02230064
|
|
ov45_02230064: ; 0x02230064
|
|
push {r3, lr}
|
|
cmp r0, #0
|
|
beq _02230076
|
|
ldr r0, _02230088 ; =0x022577C0
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _0223008C ; =0x00000133
|
|
strb r2, [r1, r0]
|
|
pop {r3, pc}
|
|
_02230076:
|
|
ldr r0, _02230088 ; =0x022577C0
|
|
ldr r3, [r0]
|
|
add r0, r1, #0
|
|
add r1, r2, #0
|
|
ldr r2, [r3, #0x20]
|
|
ldr r3, [r3, #0x1c]
|
|
blx r3
|
|
pop {r3, pc}
|
|
nop
|
|
_02230088: .word 0x022577C0
|
|
_0223008C: .word 0x00000133
|
|
thumb_func_end ov45_02230064
|
|
|
|
thumb_func_start ov45_02230090
|
|
ov45_02230090: ; 0x02230090
|
|
cmp r0, #0
|
|
bne _02230098
|
|
mov r0, #1
|
|
bx lr
|
|
_02230098:
|
|
ldr r0, _022300A8 ; =0x022577C0
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _022300AC ; =0x00000132
|
|
strb r2, [r1, r0]
|
|
mov r0, #0
|
|
bx lr
|
|
nop
|
|
_022300A8: .word 0x022577C0
|
|
_022300AC: .word 0x00000132
|
|
thumb_func_end ov45_02230090
|
|
|
|
thumb_func_start ov45_022300B0
|
|
ov45_022300B0: ; 0x022300B0
|
|
push {r3, lr}
|
|
cmp r0, #0
|
|
bne _022300C6
|
|
ldr r0, _022300D4 ; =0x022577C0
|
|
ldr r3, [r0]
|
|
mov r0, #0x6a
|
|
lsl r0, r0, #4
|
|
add r0, r3, r0
|
|
bl ov45_0223040C
|
|
pop {r3, pc}
|
|
_022300C6:
|
|
ldr r0, _022300D4 ; =0x022577C0
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _022300D8 ; =0x00000132
|
|
strb r2, [r1, r0]
|
|
pop {r3, pc}
|
|
nop
|
|
_022300D4: .word 0x022577C0
|
|
_022300D8: .word 0x00000132
|
|
thumb_func_end ov45_022300B0
|
|
|
|
thumb_func_start ov45_022300DC
|
|
ov45_022300DC: ; 0x022300DC
|
|
push {r3, lr}
|
|
cmp r0, #0
|
|
bne _022300F0
|
|
ldr r0, _022300FC ; =0x022577C0
|
|
ldr r2, [r0]
|
|
ldr r0, _02230100 ; =0x000006A8
|
|
add r0, r2, r0
|
|
bl ov45_0223048C
|
|
pop {r3, pc}
|
|
_022300F0:
|
|
ldr r0, _022300FC ; =0x022577C0
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _02230104 ; =0x00000132
|
|
strb r2, [r1, r0]
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_022300FC: .word 0x022577C0
|
|
_02230100: .word 0x000006A8
|
|
_02230104: .word 0x00000132
|
|
thumb_func_end ov45_022300DC
|
|
|
|
thumb_func_start ov45_02230108
|
|
ov45_02230108: ; 0x02230108
|
|
push {r3, lr}
|
|
ldr r0, _0223012C ; =0x022577C0
|
|
ldr r1, [r0]
|
|
mov r0, #0x26
|
|
lsl r0, r0, #6
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #1
|
|
beq _0223011C
|
|
bl GF_AssertFail
|
|
_0223011C:
|
|
ldr r0, _0223012C ; =0x022577C0
|
|
mov r2, #2
|
|
ldr r1, [r0]
|
|
mov r0, #0x26
|
|
lsl r0, r0, #6
|
|
str r2, [r1, r0]
|
|
pop {r3, pc}
|
|
nop
|
|
_0223012C: .word 0x022577C0
|
|
thumb_func_end ov45_02230108
|
|
|
|
thumb_func_start ov45_02230130
|
|
ov45_02230130: ; 0x02230130
|
|
ldr r0, _0223013C ; =0x022577C0
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
ldr r0, _02230140 ; =0x00000131
|
|
strb r2, [r1, r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
_0223013C: .word 0x022577C0
|
|
_02230140: .word 0x00000131
|
|
thumb_func_end ov45_02230130
|
|
|
|
thumb_func_start ov45_02230144
|
|
ov45_02230144: ; 0x02230144
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, _0223015C ; =0x000005B8
|
|
mov r1, #0
|
|
add r0, r4, r0
|
|
mov r2, #0xe4
|
|
bl memset
|
|
ldr r0, _02230160 ; =0x0000069C
|
|
mov r1, #3
|
|
strh r1, [r4, r0]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_0223015C: .word 0x000005B8
|
|
_02230160: .word 0x0000069C
|
|
thumb_func_end ov45_02230144
|
|
|
|
thumb_func_start ov45_02230164
|
|
ov45_02230164: ; 0x02230164
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
add r7, r3, #0
|
|
str r2, [sp]
|
|
cmp r6, #3
|
|
blt _02230176
|
|
bl GF_AssertFail
|
|
_02230176:
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov45_0223021C
|
|
cmp r0, #1
|
|
bne _02230194
|
|
mov r0, #0x4c
|
|
mul r0, r6
|
|
add r1, r5, r0
|
|
mov r0, #6
|
|
lsl r0, r0, #8
|
|
ldr r1, [r1, r0]
|
|
ldr r0, [sp]
|
|
cmp r0, r1
|
|
bne _022301D2
|
|
_02230194:
|
|
mov r0, #0x4c
|
|
add r4, r6, #0
|
|
mul r4, r0
|
|
ldr r0, _022301D4 ; =0x000005B8
|
|
add r1, r5, r4
|
|
add r3, r1, r0
|
|
mov r2, #8
|
|
_022301A2:
|
|
ldmia r7!, {r0, r1}
|
|
stmia r3!, {r0, r1}
|
|
sub r2, r2, #1
|
|
bne _022301A2
|
|
ldr r0, [r7]
|
|
str r0, [r3]
|
|
ldr r0, _022301D8 ; =0x000005FC
|
|
add r2, r5, r0
|
|
ldrh r1, [r2, r4]
|
|
cmp r1, #0
|
|
bne _022301D2
|
|
mov r1, #1
|
|
strh r1, [r2, r4]
|
|
add r1, r0, #4
|
|
ldr r0, [sp]
|
|
add r2, r5, r4
|
|
str r0, [r2, r1]
|
|
add r0, r5, #0
|
|
add r1, r6, #0
|
|
bl ov45_0223023C
|
|
ldr r1, _022301DC ; =0x000005FE
|
|
add r2, r5, r4
|
|
strh r0, [r2, r1]
|
|
_022301D2:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_022301D4: .word 0x000005B8
|
|
_022301D8: .word 0x000005FC
|
|
_022301DC: .word 0x000005FE
|
|
thumb_func_end ov45_02230164
|
|
|
|
thumb_func_start ov45_022301E0
|
|
ov45_022301E0: ; 0x022301E0
|
|
push {r4, r5, r6, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
add r6, r2, #0
|
|
cmp r4, #3
|
|
blt _022301F0
|
|
bl GF_AssertFail
|
|
_022301F0:
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
bl ov45_0223021C
|
|
cmp r0, #1
|
|
bne _02230216
|
|
mov r0, #0x4c
|
|
mul r0, r4
|
|
add r2, r5, r0
|
|
mov r0, #6
|
|
lsl r0, r0, #8
|
|
ldr r1, [r2, r0]
|
|
cmp r6, r1
|
|
bne _02230216
|
|
mov r1, #0
|
|
sub r0, r0, #4
|
|
strh r1, [r2, r0]
|
|
mov r0, #1
|
|
pop {r4, r5, r6, pc}
|
|
_02230216:
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_022301E0
|
|
|
|
thumb_func_start ov45_0223021C
|
|
ov45_0223021C: ; 0x0223021C
|
|
push {r3, r4, r5, lr}
|
|
add r4, r1, #0
|
|
add r5, r0, #0
|
|
cmp r4, #3
|
|
blt _0223022A
|
|
bl GF_AssertFail
|
|
_0223022A:
|
|
mov r0, #0x4c
|
|
mul r0, r4
|
|
add r1, r5, r0
|
|
ldr r0, _02230238 ; =0x000005FC
|
|
ldrh r0, [r1, r0]
|
|
pop {r3, r4, r5, pc}
|
|
nop
|
|
_02230238: .word 0x000005FC
|
|
thumb_func_end ov45_0223021C
|
|
|
|
thumb_func_start ov45_0223023C
|
|
ov45_0223023C: ; 0x0223023C
|
|
push {r3, r4, r5, lr}
|
|
sub sp, #8
|
|
add r4, r0, #0
|
|
add r5, r1, #0
|
|
bl ov45_0223021C
|
|
cmp r0, #0
|
|
bne _02230252
|
|
add sp, #8
|
|
mov r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
_02230252:
|
|
add r0, r4, #0
|
|
add r1, r5, #0
|
|
bl ov45_022302B0
|
|
add r1, sp, #0
|
|
bl ov45_02230384
|
|
mov r1, #0x67
|
|
lsl r1, r1, #2
|
|
ldr r0, [r4, r1]
|
|
add r1, r1, #4
|
|
ldr r2, [r4, r1]
|
|
ldr r3, [sp]
|
|
ldr r1, [sp, #4]
|
|
sub r0, r0, r3
|
|
sbc r2, r1
|
|
mov r3, #0
|
|
mov r1, #0x1e
|
|
sub r1, r1, r0
|
|
sbc r3, r2
|
|
bge _02230282
|
|
mov r0, #0x1e
|
|
mov r2, #0
|
|
b _02230294
|
|
_02230282:
|
|
mov r1, #0
|
|
mov r3, #0
|
|
sub r1, r0, r1
|
|
mov ip, r2
|
|
mov r1, ip
|
|
sbc r1, r3
|
|
bge _02230294
|
|
mov r0, #0
|
|
add r2, r0, #0
|
|
_02230294:
|
|
mov r1, #0x3c
|
|
mov r3, #0
|
|
sub r0, r1, r0
|
|
mov ip, r3
|
|
mov r1, ip
|
|
sbc r1, r2
|
|
mov r2, #0x1e
|
|
bl _ll_mul
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
add sp, #8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0223023C
|
|
|
|
thumb_func_start ov45_022302B0
|
|
ov45_022302B0: ; 0x022302B0
|
|
push {r4, r5, r6, lr}
|
|
add r6, r1, #0
|
|
add r5, r0, #0
|
|
cmp r6, #3
|
|
blt _022302BE
|
|
bl GF_AssertFail
|
|
_022302BE:
|
|
mov r0, #0x4c
|
|
add r4, r6, #0
|
|
mul r4, r0
|
|
ldr r0, _022302DC ; =0x000005FC
|
|
add r1, r5, r4
|
|
ldrh r0, [r1, r0]
|
|
cmp r0, #1
|
|
beq _022302D2
|
|
bl GF_AssertFail
|
|
_022302D2:
|
|
ldr r0, _022302E0 ; =0x000005B8
|
|
add r0, r5, r0
|
|
add r0, r0, r4
|
|
pop {r4, r5, r6, pc}
|
|
nop
|
|
_022302DC: .word 0x000005FC
|
|
_022302E0: .word 0x000005B8
|
|
thumb_func_end ov45_022302B0
|
|
|
|
thumb_func_start ov45_022302E4
|
|
ov45_022302E4: ; 0x022302E4
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r0, _02230364 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _02230368 ; =0x0000069E
|
|
ldrb r0, [r1, r0]
|
|
cmp r0, #1
|
|
bne _0223031E
|
|
bl ov00_021E7144
|
|
add r4, r0, #0
|
|
cmp r4, #4
|
|
bls _02230300
|
|
bl GF_AssertFail
|
|
_02230300:
|
|
ldr r0, _02230364 ; =0x022577C0
|
|
ldr r1, [r0]
|
|
ldr r0, _0223036C ; =0x000005B8
|
|
add r2, r1, r0
|
|
add r0, #0xe4
|
|
ldrh r1, [r1, r0]
|
|
mov r0, #0x4c
|
|
mul r0, r1
|
|
add r0, r2, r0
|
|
ldr r1, [r0, #8]
|
|
cmp r1, r4
|
|
beq _0223031E
|
|
str r4, [r0, #8]
|
|
bl ov45_02232BB0
|
|
_0223031E:
|
|
mov r4, #0
|
|
ldr r6, _02230364 ; =0x022577C0
|
|
ldr r7, _02230370 ; =0x000005FC
|
|
add r5, r4, #0
|
|
_02230326:
|
|
ldr r0, [r6]
|
|
add r0, r0, r5
|
|
ldrh r1, [r0, r7]
|
|
cmp r1, #1
|
|
bne _0223035A
|
|
ldr r1, _02230374 ; =0x000005FE
|
|
ldrh r1, [r0, r1]
|
|
cmp r1, #0
|
|
beq _02230342
|
|
ldr r1, _02230374 ; =0x000005FE
|
|
ldrh r1, [r0, r1]
|
|
sub r2, r1, #1
|
|
ldr r1, _02230374 ; =0x000005FE
|
|
strh r2, [r0, r1]
|
|
_02230342:
|
|
ldr r0, [r6]
|
|
add r1, r4, #0
|
|
bl ov45_0223023C
|
|
ldr r1, [r6]
|
|
ldr r2, _02230374 ; =0x000005FE
|
|
add r1, r1, r5
|
|
ldrh r2, [r1, r2]
|
|
cmp r0, r2
|
|
bhs _0223035A
|
|
ldr r2, _02230374 ; =0x000005FE
|
|
strh r0, [r1, r2]
|
|
_0223035A:
|
|
add r4, r4, #1
|
|
add r5, #0x4c
|
|
cmp r4, #3
|
|
blt _02230326
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02230364: .word 0x022577C0
|
|
_02230368: .word 0x0000069E
|
|
_0223036C: .word 0x000005B8
|
|
_02230370: .word 0x000005FC
|
|
_02230374: .word 0x000005FE
|
|
thumb_func_end ov45_022302E4
|
|
|
|
thumb_func_start ov45_02230378
|
|
ov45_02230378: ; 0x02230378
|
|
ldr r2, [r1]
|
|
ldr r1, [r1, #4]
|
|
str r2, [r0, #0x10]
|
|
str r1, [r0, #0x14]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02230378
|
|
|
|
thumb_func_start ov45_02230384
|
|
ov45_02230384: ; 0x02230384
|
|
ldr r2, [r0, #0x10]
|
|
ldr r0, [r0, #0x14]
|
|
str r2, [r1]
|
|
str r0, [r1, #4]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02230384
|
|
|
|
thumb_func_start ov45_02230390
|
|
ov45_02230390: ; 0x02230390
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02230390
|
|
|
|
thumb_func_start ov45_02230394
|
|
ov45_02230394: ; 0x02230394
|
|
push {r3, lr}
|
|
ldr r2, _022303B4 ; =0x0000069E
|
|
ldrb r1, [r1, r2]
|
|
cmp r1, #1
|
|
bne _022303A4
|
|
bl ov45_0222F154
|
|
pop {r3, pc}
|
|
_022303A4:
|
|
cmp r0, #0
|
|
bne _022303B2
|
|
ldr r0, _022303B8 ; =0x022577C0
|
|
mov r3, #1
|
|
ldr r1, [r0]
|
|
add r0, r2, #1
|
|
strb r3, [r1, r0]
|
|
_022303B2:
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_022303B4: .word 0x0000069E
|
|
_022303B8: .word 0x022577C0
|
|
thumb_func_end ov45_02230394
|
|
|
|
thumb_func_start ov45_022303BC
|
|
ov45_022303BC: ; 0x022303BC
|
|
push {r4, r5}
|
|
ldrh r2, [r0, #0xe]
|
|
mov r3, #0
|
|
add r4, r3, #0
|
|
cmp r2, #0
|
|
ble _022303DC
|
|
add r5, r0, #0
|
|
_022303CA:
|
|
ldr r2, [r5, #0x14]
|
|
cmp r1, r2
|
|
bne _022303D2
|
|
ldr r3, [r5, #0x10]
|
|
_022303D2:
|
|
ldrh r2, [r0, #0xe]
|
|
add r4, r4, #1
|
|
add r5, #8
|
|
cmp r4, r2
|
|
blt _022303CA
|
|
_022303DC:
|
|
add r0, r3, #0
|
|
pop {r4, r5}
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_022303BC
|
|
|
|
thumb_func_start ov45_022303E4
|
|
ov45_022303E4: ; 0x022303E4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r1, #0
|
|
add r4, r0, #0
|
|
add r0, r2, #0
|
|
lsl r1, r5, #3
|
|
bl AllocFromHeap
|
|
str r0, [r4]
|
|
strh r5, [r4, #4]
|
|
mov r0, #0
|
|
strh r0, [r4, #6]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ov45_022303E4
|
|
|
|
thumb_func_start ov45_022303FC
|
|
ov45_022303FC: ; 0x022303FC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4]
|
|
bl FreeToHeap
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_022303FC
|
|
|
|
thumb_func_start ov45_0223040C
|
|
ov45_0223040C: ; 0x0223040C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldrh r0, [r5, #4]
|
|
add r4, r2, #0
|
|
add r6, r1, #0
|
|
cmp r4, r0
|
|
blo _0223041E
|
|
bl GF_AssertFail
|
|
_0223041E:
|
|
ldrh r0, [r5, #4]
|
|
cmp r4, r0
|
|
blo _02230426
|
|
add r4, r0, #0
|
|
_02230426:
|
|
ldr r1, [r5]
|
|
add r0, r6, #0
|
|
lsl r2, r4, #3
|
|
bl MIi_CpuCopy32
|
|
strh r4, [r5, #6]
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_0223040C
|
|
|
|
thumb_func_start ov45_02230434
|
|
ov45_02230434: ; 0x02230434
|
|
push {r3, r4}
|
|
ldrh r2, [r0, #6]
|
|
mov r3, #0
|
|
cmp r2, #0
|
|
ble _02230456
|
|
ldr r4, [r0]
|
|
_02230440:
|
|
ldr r2, [r4]
|
|
cmp r1, r2
|
|
bne _0223044C
|
|
mov r0, #1
|
|
pop {r3, r4}
|
|
bx lr
|
|
_0223044C:
|
|
ldrh r2, [r0, #6]
|
|
add r3, r3, #1
|
|
add r4, #8
|
|
cmp r3, r2
|
|
blt _02230440
|
|
_02230456:
|
|
mov r0, #0
|
|
pop {r3, r4}
|
|
bx lr
|
|
thumb_func_end ov45_02230434
|
|
|
|
thumb_func_start ov45_0223045C
|
|
ov45_0223045C: ; 0x0223045C
|
|
push {r4, r5}
|
|
ldrh r2, [r0, #6]
|
|
mov r3, #0
|
|
cmp r2, #0
|
|
ble _02230484
|
|
ldr r5, [r0]
|
|
add r4, r5, #0
|
|
_0223046A:
|
|
ldr r2, [r4]
|
|
cmp r1, r2
|
|
bne _0223047A
|
|
lsl r0, r3, #3
|
|
add r0, r5, r0
|
|
ldr r0, [r0, #4]
|
|
pop {r4, r5}
|
|
bx lr
|
|
_0223047A:
|
|
ldrh r2, [r0, #6]
|
|
add r3, r3, #1
|
|
add r4, #8
|
|
cmp r3, r2
|
|
blt _0223046A
|
|
_02230484:
|
|
mov r0, #0
|
|
pop {r4, r5}
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_0223045C
|
|
|
|
thumb_func_start ov45_0223048C
|
|
ov45_0223048C: ; 0x0223048C
|
|
ldr r3, _02230494 ; =memcpy
|
|
mov r2, #0xb6
|
|
lsl r2, r2, #2
|
|
bx r3
|
|
.balign 4, 0
|
|
_02230494: .word memcpy
|
|
thumb_func_end ov45_0223048C
|
|
|
|
thumb_func_start ov45_02230498
|
|
ov45_02230498: ; 0x02230498
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x28
|
|
add r7, r2, #0
|
|
str r0, [sp, #4]
|
|
str r1, [sp, #8]
|
|
add r0, r7, #0
|
|
mov r1, #0x30
|
|
str r3, [sp, #0xc]
|
|
bl AllocFromHeap
|
|
mov r1, #0
|
|
mov r2, #0x30
|
|
add r4, r0, #0
|
|
bl memset
|
|
ldr r2, [sp, #4]
|
|
mov r1, #0x90
|
|
add r0, r7, #0
|
|
mul r1, r2
|
|
bl AllocFromHeap
|
|
str r0, [r4, #0x10]
|
|
ldr r0, [sp, #4]
|
|
mov r6, #0
|
|
str r0, [r4, #0x14]
|
|
cmp r0, #0
|
|
bls _022304E2
|
|
add r5, r6, #0
|
|
_022304D0:
|
|
ldr r0, [r4, #0x10]
|
|
add r0, r0, r5
|
|
bl ov45_02230AB4
|
|
ldr r0, [r4, #0x14]
|
|
add r6, r6, #1
|
|
add r5, #0x90
|
|
cmp r6, r0
|
|
blo _022304D0
|
|
_022304E2:
|
|
mov r0, #1
|
|
add r1, r7, #0
|
|
bl sub_02025534
|
|
str r0, [r4]
|
|
mov r0, #2
|
|
add r1, r7, #0
|
|
bl sub_02025534
|
|
str r0, [r4, #4]
|
|
mov r0, #0x14
|
|
add r1, r7, #0
|
|
bl sub_02025780
|
|
str r0, [r4, #8]
|
|
mov r0, #1
|
|
add r1, r7, #0
|
|
bl sub_02023738
|
|
ldr r0, [sp, #4]
|
|
str r7, [sp, #0x24]
|
|
str r0, [sp, #0x20]
|
|
add r0, sp, #0x20
|
|
bl sub_020237EC
|
|
str r0, [r4, #0xc]
|
|
mov r0, #0x51
|
|
add r1, r7, #0
|
|
bl NARC_ctor
|
|
str r0, [sp, #0x18]
|
|
mov r0, #0xd1
|
|
add r1, r7, #0
|
|
bl NARC_ctor
|
|
mov r2, #0
|
|
ldr r3, [sp, #0xc]
|
|
str r2, [sp]
|
|
mov r1, #0x7f
|
|
str r0, [sp, #0x14]
|
|
bl sub_02007C98
|
|
add r5, r0, #0
|
|
ldr r0, [r4]
|
|
add r1, r5, #0
|
|
mov r2, #0x7f
|
|
bl sub_020255C4
|
|
add r0, r5, #0
|
|
bl ov45_0222D740
|
|
add r0, r5, #0
|
|
bl NNS_G3dGetMdlSet
|
|
cmp r0, #0
|
|
beq _02230572
|
|
add r2, r0, #0
|
|
add r2, #8
|
|
beq _02230566
|
|
ldrb r1, [r0, #9]
|
|
cmp r1, #0
|
|
bls _02230566
|
|
ldrh r1, [r0, #0xe]
|
|
add r1, r2, r1
|
|
add r1, r1, #4
|
|
b _02230568
|
|
_02230566:
|
|
mov r1, #0
|
|
_02230568:
|
|
cmp r1, #0
|
|
beq _02230572
|
|
ldr r1, [r1]
|
|
add r0, r0, r1
|
|
b _02230574
|
|
_02230572:
|
|
mov r0, #0
|
|
_02230574:
|
|
mov r1, #0
|
|
bl sub_020C33C0
|
|
mov r6, #0
|
|
ldr r5, _02230630 ; =0x02254C38
|
|
str r0, [r4, #0x2c]
|
|
add r7, r6, #0
|
|
_02230582:
|
|
str r7, [sp]
|
|
ldrh r1, [r5]
|
|
ldr r0, [sp, #0x18]
|
|
ldr r3, [sp, #0xc]
|
|
add r2, r7, #0
|
|
bl sub_02007C98
|
|
add r1, r0, #0
|
|
ldrh r2, [r5]
|
|
ldr r0, [r4, #4]
|
|
bl sub_020255C4
|
|
add r6, r6, #1
|
|
add r5, r5, #2
|
|
cmp r6, #2
|
|
blt _02230582
|
|
ldr r0, [sp, #8]
|
|
cmp r0, #0
|
|
bne _022305AE
|
|
mov r0, #1
|
|
str r0, [sp, #0x10]
|
|
b _022305B2
|
|
_022305AE:
|
|
mov r0, #0
|
|
str r0, [sp, #0x10]
|
|
_022305B2:
|
|
ldr r5, _02230634 ; =0x02254C48
|
|
mov r7, #0
|
|
_022305B6:
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, r7
|
|
beq _02230608
|
|
ldrh r0, [r5, #2]
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x1f
|
|
bne _022305C8
|
|
mov r6, #1
|
|
b _022305CA
|
|
_022305C8:
|
|
mov r6, #0
|
|
_022305CA:
|
|
mov r0, #0
|
|
str r0, [sp]
|
|
ldrh r1, [r5, #2]
|
|
ldr r0, [sp, #0x18]
|
|
ldr r3, [sp, #0xc]
|
|
lsl r1, r1, #0x11
|
|
lsr r1, r1, #0x11
|
|
mov r2, #0
|
|
bl sub_02007C98
|
|
add r1, r0, #0
|
|
ldr r0, [sp, #0xc]
|
|
add r3, r6, #0
|
|
str r0, [sp]
|
|
ldrh r2, [r5, #2]
|
|
ldr r0, [r4, #8]
|
|
lsl r2, r2, #0x11
|
|
lsr r2, r2, #0x11
|
|
bl sub_02025800
|
|
str r0, [sp, #0x1c]
|
|
cmp r6, #1
|
|
bne _02230608
|
|
bl sub_02025A64
|
|
ldr r0, [sp, #0x1c]
|
|
bl sub_020259B0
|
|
ldr r0, [sp, #0x1c]
|
|
bl sub_020259FC
|
|
_02230608:
|
|
add r7, r7, #1
|
|
add r5, r5, #4
|
|
cmp r7, #0x14
|
|
blt _022305B6
|
|
add r0, r4, #0
|
|
ldr r1, [sp, #0x14]
|
|
ldr r3, [sp, #0xc]
|
|
add r0, #0x18
|
|
mov r2, #0x80
|
|
bl ov45_022309E8
|
|
ldr r0, [sp, #0x18]
|
|
bl NARC_dtor
|
|
ldr r0, [sp, #0x14]
|
|
bl NARC_dtor
|
|
add r0, r4, #0
|
|
add sp, #0x28
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02230630: .word 0x02254C38
|
|
_02230634: .word 0x02254C48
|
|
thumb_func_end ov45_02230498
|
|
|
|
thumb_func_start ov45_02230638
|
|
ov45_02230638: ; 0x02230638
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
add r0, #0x18
|
|
bl ov45_02230A44
|
|
ldr r0, [r4, #8]
|
|
bl sub_02025900
|
|
ldr r0, [r4]
|
|
bl sub_0202568C
|
|
ldr r0, [r4, #4]
|
|
bl sub_0202568C
|
|
ldr r0, [r4, #0xc]
|
|
bl sub_02023874
|
|
bl sub_02023778
|
|
ldr r0, [r4, #8]
|
|
bl sub_020257C4
|
|
ldr r0, [r4]
|
|
bl sub_02025580
|
|
ldr r0, [r4, #4]
|
|
bl sub_02025580
|
|
ldr r0, [r4, #0x10]
|
|
bl FreeToHeap
|
|
add r0, r4, #0
|
|
bl FreeToHeap
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02230638
|
|
|
|
thumb_func_start ov45_02230680
|
|
ov45_02230680: ; 0x02230680
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x14]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
bls _022306B0
|
|
add r4, r6, #0
|
|
_0223068E:
|
|
ldr r0, [r5, #0x10]
|
|
add r0, r0, r4
|
|
bl ov45_02230ACC
|
|
ldr r0, [r5, #0x10]
|
|
add r0, r0, r4
|
|
bl ov45_02230CB0
|
|
ldr r0, [r5, #0x10]
|
|
add r0, r0, r4
|
|
bl ov45_02230DF4
|
|
ldr r0, [r5, #0x14]
|
|
add r6, r6, #1
|
|
add r4, #0x90
|
|
cmp r6, r0
|
|
blo _0223068E
|
|
_022306B0:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02230680
|
|
|
|
thumb_func_start ov45_022306B4
|
|
ov45_022306B4: ; 0x022306B4
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
bl sub_020237B0
|
|
add r0, r5, #0
|
|
add r0, #0x18
|
|
bl ov45_02230A58
|
|
cmp r0, #0
|
|
beq _022306F0
|
|
ldr r0, [r5, #0x14]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
bls _022306F0
|
|
add r4, r6, #0
|
|
_022306D2:
|
|
ldr r0, [r5, #0x10]
|
|
add r0, r0, r4
|
|
bl ov45_02230AA4
|
|
cmp r0, #1
|
|
bne _022306E6
|
|
ldr r0, [r5, #0x10]
|
|
add r0, r0, r4
|
|
bl ov45_02230AC0
|
|
_022306E6:
|
|
ldr r0, [r5, #0x14]
|
|
add r6, r6, #1
|
|
add r4, #0x90
|
|
cmp r6, r0
|
|
blo _022306D2
|
|
_022306F0:
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_022306B4
|
|
|
|
thumb_func_start ov45_022306F4
|
|
ov45_022306F4: ; 0x022306F4
|
|
ldr r3, _022306FC ; =sub_02023910
|
|
ldr r0, [r0, #0xc]
|
|
bx r3
|
|
nop
|
|
_022306FC: .word sub_02023910
|
|
thumb_func_end ov45_022306F4
|
|
|
|
thumb_func_start ov45_02230700
|
|
ov45_02230700: ; 0x02230700
|
|
ldr r3, _02230708 ; =ov45_02230A4C
|
|
add r0, #0x18
|
|
bx r3
|
|
nop
|
|
_02230708: .word ov45_02230A4C
|
|
thumb_func_end ov45_02230700
|
|
|
|
thumb_func_start ov45_0223070C
|
|
ov45_0223070C: ; 0x0223070C
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x98
|
|
add r5, r0, #0
|
|
add r7, r1, #0
|
|
bl ov45_02230A6C
|
|
add r4, r0, #0
|
|
str r7, [r4, #4]
|
|
add r1, sp, #0x34
|
|
mov r0, #0
|
|
str r0, [r1]
|
|
str r0, [r1, #4]
|
|
ldr r3, _02230874 ; =0x02254C3C
|
|
str r0, [r1, #8]
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #0x28
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
mov r1, #7
|
|
str r0, [r2]
|
|
add r0, r7, #0
|
|
bl ov42_02228188
|
|
bl ov45_0223099C
|
|
add r6, r0, #0
|
|
ldr r0, [r5]
|
|
mov r1, #0x7f
|
|
bl sub_020256C8
|
|
bl sub_020256FC
|
|
ldrh r1, [r6, #2]
|
|
str r0, [sp, #0x14]
|
|
ldr r0, [r5, #8]
|
|
lsl r1, r1, #0x11
|
|
lsr r1, r1, #0x11
|
|
bl sub_02025940
|
|
str r0, [sp, #0x18]
|
|
bl sub_0202599C
|
|
str r0, [sp, #0x10]
|
|
ldrh r0, [r6, #2]
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x1f
|
|
cmp r0, #1
|
|
bne _02230770
|
|
ldr r1, _02230878 ; =0x00000119
|
|
b _02230774
|
|
_02230770:
|
|
mov r1, #0x46
|
|
lsl r1, r1, #2
|
|
_02230774:
|
|
ldr r0, [r5, #4]
|
|
bl sub_020256C8
|
|
bl sub_020256FC
|
|
add r1, sp, #0x40
|
|
bl sub_02026E18
|
|
ldrh r0, [r6, #2]
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x1f
|
|
cmp r0, #1
|
|
bne _022307A0
|
|
add r0, sp, #0x40
|
|
str r0, [sp]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [sp, #0x10]
|
|
ldr r3, _0223087C ; =0x02254C98
|
|
add r0, sp, #0x70
|
|
bl sub_02023E2C
|
|
b _022307CE
|
|
_022307A0:
|
|
ldr r0, [sp, #0x18]
|
|
bl sub_02025A9C
|
|
add r6, r0, #0
|
|
ldr r0, [sp, #0x18]
|
|
bl sub_02025AAC
|
|
str r0, [sp, #0x1c]
|
|
ldr r0, [sp, #0x18]
|
|
bl sub_02025ABC
|
|
add r1, sp, #0x40
|
|
str r1, [sp]
|
|
ldr r1, [sp, #0x1c]
|
|
str r6, [sp, #4]
|
|
str r1, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
ldr r1, [sp, #0x14]
|
|
ldr r2, [sp, #0x10]
|
|
ldr r3, _0223087C ; =0x02254C98
|
|
add r0, sp, #0x70
|
|
bl sub_02023E04
|
|
_022307CE:
|
|
add r0, r7, #0
|
|
bl ov42_022282DC
|
|
add r1, sp, #0x20
|
|
strh r0, [r1]
|
|
lsr r0, r0, #0x10
|
|
strh r0, [r1, #2]
|
|
ldrh r2, [r1]
|
|
add r0, sp, #0x24
|
|
strh r2, [r1, #4]
|
|
ldrh r2, [r1, #2]
|
|
strh r2, [r1, #6]
|
|
add r1, sp, #0x34
|
|
bl ov49_02258800
|
|
mov r0, #1
|
|
ldr r1, [sp, #0x3c]
|
|
lsl r0, r0, #0x10
|
|
add r0, r1, r0
|
|
str r0, [sp, #0x3c]
|
|
ldr r0, [r5, #0xc]
|
|
add r3, sp, #0x34
|
|
str r0, [sp, #0x50]
|
|
add r0, sp, #0x70
|
|
str r0, [sp, #0x54]
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #0x58
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
add r3, sp, #0x28
|
|
str r0, [r2]
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #0x64
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
str r0, [r2]
|
|
add r0, sp, #0x50
|
|
bl sub_02023D44
|
|
ldr r1, _02230880 ; =ov45_02230E64
|
|
add r2, r4, #0
|
|
str r0, [r4, #8]
|
|
bl sub_02023FE4
|
|
add r0, r5, #0
|
|
add r1, r4, #0
|
|
add r0, #0x18
|
|
add r1, #0xc
|
|
bl ov45_02230A5C
|
|
mov r2, #2
|
|
lsl r2, r2, #0xc
|
|
add r0, r4, #0
|
|
ldr r6, [sp, #0x3c]
|
|
lsl r3, r2, #2
|
|
ldr r1, [sp, #0x34]
|
|
add r0, #0xc
|
|
sub r3, r6, r3
|
|
bl sub_020182A8
|
|
ldrb r1, [r4]
|
|
mov r0, #0xf
|
|
bic r1, r0
|
|
mov r0, #1
|
|
orr r0, r1
|
|
strb r0, [r4]
|
|
ldrb r1, [r4]
|
|
mov r0, #0xc0
|
|
bic r1, r0
|
|
mov r0, #0x40
|
|
orr r0, r1
|
|
strb r0, [r4]
|
|
ldrb r1, [r4]
|
|
mov r0, #0x30
|
|
bic r1, r0
|
|
strb r1, [r4]
|
|
add r0, r4, #0
|
|
ldr r1, [r5, #0x2c]
|
|
add r0, #0x8c
|
|
str r1, [r0]
|
|
add r0, r4, #0
|
|
add sp, #0x98
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.balign 4, 0
|
|
_02230874: .word 0x02254C3C
|
|
_02230878: .word 0x00000119
|
|
_0223087C: .word 0x02254C98
|
|
_02230880: .word ov45_02230E64
|
|
thumb_func_end ov45_0223070C
|
|
|
|
thumb_func_start ov45_02230884
|
|
ov45_02230884: ; 0x02230884
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #8]
|
|
bl sub_02023DA4
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mov r2, #0x90
|
|
bl memset
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02230884
|
|
|
|
thumb_func_start ov45_0223089C
|
|
ov45_0223089C: ; 0x0223089C
|
|
ldrb r3, [r0]
|
|
mov r2, #0xf
|
|
lsl r1, r1, #0x18
|
|
bic r3, r2
|
|
lsr r2, r1, #0x18
|
|
mov r1, #0xf
|
|
and r1, r2
|
|
orr r1, r3
|
|
strb r1, [r0]
|
|
bx lr
|
|
thumb_func_end ov45_0223089C
|
|
|
|
thumb_func_start ov45_022308B0
|
|
ov45_022308B0: ; 0x022308B0
|
|
add r0, #0x8c
|
|
str r1, [r0]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_022308B0
|
|
|
|
thumb_func_start ov45_022308B8
|
|
ov45_022308B8: ; 0x022308B8
|
|
ldrb r0, [r0]
|
|
lsl r0, r0, #0x1a
|
|
lsr r0, r0, #0x1e
|
|
bx lr
|
|
thumb_func_end ov45_022308B8
|
|
|
|
thumb_func_start ov45_022308C0
|
|
ov45_022308C0: ; 0x022308C0
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
add r0, r1, #0
|
|
add r1, sp, #0
|
|
bl ov49_02258800
|
|
mov r0, #1
|
|
ldr r1, [sp, #8]
|
|
lsl r0, r0, #0x10
|
|
add r0, r1, r0
|
|
str r0, [sp, #8]
|
|
add r0, r4, #0
|
|
add r1, sp, #0
|
|
bl ov45_022308E4
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
thumb_func_end ov45_022308C0
|
|
|
|
thumb_func_start ov45_022308E4
|
|
ov45_022308E4: ; 0x022308E4
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #8]
|
|
add r4, r1, #0
|
|
bl sub_02023E50
|
|
mov r2, #2
|
|
ldr r1, [r4]
|
|
lsl r2, r2, #0xc
|
|
add r5, #0xc
|
|
ldr r4, [r4, #8]
|
|
lsl r3, r2, #2
|
|
add r0, r5, #0
|
|
sub r3, r4, r3
|
|
bl sub_020182A8
|
|
pop {r3, r4, r5, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_022308E4
|
|
|
|
thumb_func_start ov45_02230908
|
|
ov45_02230908: ; 0x02230908
|
|
push {r4, lr}
|
|
ldr r0, [r0, #8]
|
|
add r4, r1, #0
|
|
bl sub_02023E68
|
|
add r2, r0, #0
|
|
ldmia r2!, {r0, r1}
|
|
stmia r4!, {r0, r1}
|
|
ldr r0, [r2]
|
|
str r0, [r4]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02230908
|
|
|
|
thumb_func_start ov45_02230920
|
|
ov45_02230920: ; 0x02230920
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
mov r0, #1
|
|
bl ov45_022309C4
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #8]
|
|
bl sub_02023EE0
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl sub_02023F40
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_02230920
|
|
|
|
thumb_func_start ov45_0223093C
|
|
ov45_0223093C: ; 0x0223093C
|
|
push {r3, r4}
|
|
ldrb r3, [r0, #1]
|
|
mov r2, #1
|
|
lsl r1, r1, #0x18
|
|
bic r3, r2
|
|
add r2, r3, #0
|
|
mov r4, #1
|
|
orr r2, r4
|
|
strb r2, [r0, #1]
|
|
lsr r1, r1, #0x18
|
|
lsl r1, r1, #0x19
|
|
ldrb r2, [r0, #1]
|
|
mov r3, #0xfe
|
|
lsr r1, r1, #0x18
|
|
bic r2, r3
|
|
orr r1, r2
|
|
strb r1, [r0, #1]
|
|
mov r1, #0
|
|
strb r1, [r0, #2]
|
|
strb r4, [r0, #3]
|
|
pop {r3, r4}
|
|
bx lr
|
|
thumb_func_end ov45_0223093C
|
|
|
|
thumb_func_start ov45_02230968
|
|
ov45_02230968: ; 0x02230968
|
|
ldrb r2, [r0, #1]
|
|
mov r1, #1
|
|
bic r2, r1
|
|
strb r2, [r0, #1]
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02230968
|
|
|
|
thumb_func_start ov45_02230974
|
|
ov45_02230974: ; 0x02230974
|
|
strb r1, [r0, #3]
|
|
bx lr
|
|
thumb_func_end ov45_02230974
|
|
|
|
thumb_func_start ov45_02230978
|
|
ov45_02230978: ; 0x02230978
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x18
|
|
lsl r1, r1, #0x1e
|
|
ldrb r2, [r0]
|
|
mov r3, #0xc0
|
|
lsr r1, r1, #0x18
|
|
bic r2, r3
|
|
orr r1, r2
|
|
ldr r3, _02230990 ; =ov45_02230E28
|
|
strb r1, [r0]
|
|
bx r3
|
|
nop
|
|
_02230990: .word ov45_02230E28
|
|
thumb_func_end ov45_02230978
|
|
|
|
thumb_func_start ov45_02230994
|
|
ov45_02230994: ; 0x02230994
|
|
ldrb r0, [r0]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1e
|
|
bx lr
|
|
thumb_func_end ov45_02230994
|
|
|
|
thumb_func_start ov45_0223099C
|
|
ov45_0223099C: ; 0x0223099C
|
|
push {r3, lr}
|
|
ldr r3, _022309C0 ; =0x02254C48
|
|
mov r2, #0
|
|
_022309A2:
|
|
ldrh r1, [r3]
|
|
cmp r0, r1
|
|
bne _022309B0
|
|
ldr r1, _022309C0 ; =0x02254C48
|
|
lsl r0, r2, #2
|
|
add r0, r1, r0
|
|
pop {r3, pc}
|
|
_022309B0:
|
|
add r2, r2, #1
|
|
add r3, r3, #4
|
|
cmp r2, #0x14
|
|
blt _022309A2
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r3, pc}
|
|
.balign 4, 0
|
|
_022309C0: .word 0x02254C48
|
|
thumb_func_end ov45_0223099C
|
|
|
|
thumb_func_start ov45_022309C4
|
|
ov45_022309C4: ; 0x022309C4
|
|
cmp r0, #0
|
|
bne _022309CA
|
|
add r1, r1, #4
|
|
_022309CA:
|
|
add r0, r1, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_022309C4
|
|
|
|
thumb_func_start ov45_022309D0
|
|
ov45_022309D0: ; 0x022309D0
|
|
push {r3, lr}
|
|
add r3, r0, #0
|
|
add r0, r1, #1
|
|
lsl r0, r0, #0x10
|
|
lsr r1, r0, #0x10
|
|
add r0, r1, #0
|
|
mul r0, r2
|
|
add r1, r3, #0
|
|
bl _u32_div_f
|
|
lsl r0, r0, #0xc
|
|
pop {r3, pc}
|
|
thumb_func_end ov45_022309D0
|
|
|
|
thumb_func_start ov45_022309E8
|
|
ov45_022309E8: ; 0x022309E8
|
|
push {r3, r4, lr}
|
|
sub sp, #4
|
|
add r4, r0, #0
|
|
add r0, sp, #0
|
|
bl ov49_02258830
|
|
ldr r0, [sp]
|
|
str r0, [r4]
|
|
bl NNS_G3dGetMdlSet
|
|
str r0, [r4, #4]
|
|
cmp r0, #0
|
|
beq _02230A22
|
|
add r2, r0, #0
|
|
add r2, #8
|
|
beq _02230A16
|
|
ldrb r1, [r0, #9]
|
|
cmp r1, #0
|
|
bls _02230A16
|
|
ldrh r1, [r0, #0xe]
|
|
add r1, r2, r1
|
|
add r1, r1, #4
|
|
b _02230A18
|
|
_02230A16:
|
|
mov r1, #0
|
|
_02230A18:
|
|
cmp r1, #0
|
|
beq _02230A22
|
|
ldr r1, [r1]
|
|
add r0, r0, r1
|
|
b _02230A24
|
|
_02230A22:
|
|
mov r0, #0
|
|
_02230A24:
|
|
str r0, [r4, #8]
|
|
ldr r0, [r4]
|
|
bl NNS_G3dGetTex
|
|
str r0, [r4, #0xc]
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, #0xc]
|
|
bl sub_0201F64C
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0x14
|
|
bl sub_020C3658
|
|
add sp, #4
|
|
pop {r3, r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_022309E8
|
|
|
|
thumb_func_start ov45_02230A44
|
|
ov45_02230A44: ; 0x02230A44
|
|
ldr r3, _02230A48 ; =sub_02018068
|
|
bx r3
|
|
.balign 4, 0
|
|
_02230A48: .word sub_02018068
|
|
thumb_func_end ov45_02230A44
|
|
|
|
thumb_func_start ov45_02230A4C
|
|
ov45_02230A4C: ; 0x02230A4C
|
|
ldr r3, _02230A54 ; =sub_020C3698
|
|
str r1, [r0, #0x10]
|
|
ldr r0, [r0, #8]
|
|
bx r3
|
|
.balign 4, 0
|
|
_02230A54: .word sub_020C3698
|
|
thumb_func_end ov45_02230A4C
|
|
|
|
thumb_func_start ov45_02230A58
|
|
ov45_02230A58: ; 0x02230A58
|
|
ldr r0, [r0, #0x10]
|
|
bx lr
|
|
thumb_func_end ov45_02230A58
|
|
|
|
thumb_func_start ov45_02230A5C
|
|
ov45_02230A5C: ; 0x02230A5C
|
|
ldr r3, _02230A68 ; =sub_020181B0
|
|
add r2, r0, #0
|
|
add r0, r1, #0
|
|
add r1, r2, #0
|
|
bx r3
|
|
nop
|
|
_02230A68: .word sub_020181B0
|
|
thumb_func_end ov45_02230A5C
|
|
|
|
thumb_func_start ov45_02230A6C
|
|
ov45_02230A6C: ; 0x02230A6C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #0x14]
|
|
mov r6, #0
|
|
cmp r0, #0
|
|
bls _02230A9A
|
|
add r4, r6, #0
|
|
_02230A7A:
|
|
ldr r0, [r5, #0x10]
|
|
add r0, r0, r4
|
|
bl ov45_02230AA4
|
|
cmp r0, #0
|
|
bne _02230A90
|
|
mov r0, #0x90
|
|
ldr r1, [r5, #0x10]
|
|
mul r0, r6
|
|
add r0, r1, r0
|
|
pop {r4, r5, r6, pc}
|
|
_02230A90:
|
|
ldr r0, [r5, #0x14]
|
|
add r6, r6, #1
|
|
add r4, #0x90
|
|
cmp r6, r0
|
|
blo _02230A7A
|
|
_02230A9A:
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02230A6C
|
|
|
|
thumb_func_start ov45_02230AA4
|
|
ov45_02230AA4: ; 0x02230AA4
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _02230AAE
|
|
mov r0, #1
|
|
bx lr
|
|
_02230AAE:
|
|
mov r0, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02230AA4
|
|
|
|
thumb_func_start ov45_02230AB4
|
|
ov45_02230AB4: ; 0x02230AB4
|
|
ldr r3, _02230ABC ; =memset
|
|
mov r1, #0
|
|
mov r2, #0x90
|
|
bx r3
|
|
.balign 4, 0
|
|
_02230ABC: .word memset
|
|
thumb_func_end ov45_02230AB4
|
|
|
|
thumb_func_start ov45_02230AC0
|
|
ov45_02230AC0: ; 0x02230AC0
|
|
ldr r3, _02230AC8 ; =sub_020181EC
|
|
add r0, #0xc
|
|
bx r3
|
|
nop
|
|
_02230AC8: .word sub_020181EC
|
|
thumb_func_end ov45_02230AC0
|
|
|
|
thumb_func_start ov45_02230ACC
|
|
ov45_02230ACC: ; 0x02230ACC
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
add r5, r0, #0
|
|
ldrb r0, [r5]
|
|
lsl r0, r0, #0x1c
|
|
lsr r0, r0, #0x1c
|
|
beq _02230B5C
|
|
ldr r0, [r5, #4]
|
|
mov r1, #5
|
|
bl ov42_02228188
|
|
add r4, r0, #0
|
|
ldr r0, [r5, #4]
|
|
mov r1, #8
|
|
bl ov42_02228188
|
|
add r6, r0, #0
|
|
add r0, r5, #0
|
|
add r0, #0x86
|
|
ldrh r0, [r0]
|
|
cmp r0, r6
|
|
bhi _02230B02
|
|
add r0, r5, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
cmp r0, r4
|
|
beq _02230B2E
|
|
_02230B02:
|
|
add r0, r5, #0
|
|
add r0, #0x84
|
|
ldrb r0, [r0]
|
|
bl ov45_02230DC4
|
|
cmp r0, #1
|
|
bne _02230B28
|
|
ldr r0, [r5, #8]
|
|
bl sub_02023EF4
|
|
add r1, r5, #0
|
|
add r1, #0x85
|
|
strb r0, [r1]
|
|
ldr r0, [r5, #8]
|
|
bl sub_02023F70
|
|
add r1, r5, #0
|
|
add r1, #0x88
|
|
str r0, [r1]
|
|
_02230B28:
|
|
add r0, r5, #0
|
|
add r0, #0x84
|
|
strb r4, [r0]
|
|
_02230B2E:
|
|
ldr r1, _02230B60 ; =0x02254F28
|
|
add r0, r5, #0
|
|
lsl r2, r4, #2
|
|
add r0, #0x86
|
|
strh r6, [r0]
|
|
ldr r1, [r1, r2]
|
|
add r0, r5, #0
|
|
blx r1
|
|
ldr r0, [r5, #4]
|
|
bl ov42_022282F4
|
|
add r2, sp, #0
|
|
strh r0, [r2]
|
|
lsr r0, r0, #0x10
|
|
strh r0, [r2, #2]
|
|
ldrh r0, [r2]
|
|
add r1, sp, #4
|
|
strh r0, [r2, #4]
|
|
ldrh r0, [r2, #2]
|
|
strh r0, [r2, #6]
|
|
add r0, r5, #0
|
|
bl ov45_022308C0
|
|
_02230B5C:
|
|
add sp, #8
|
|
pop {r4, r5, r6, pc}
|
|
.balign 4, 0
|
|
_02230B60: .word 0x02254F28
|
|
thumb_func_end ov45_02230ACC
|
|
|
|
thumb_func_start ov45_02230B64
|
|
ov45_02230B64: ; 0x02230B64
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
bl ov42_02228188
|
|
add r1, r0, #0
|
|
mov r0, #1
|
|
bl ov45_022309C4
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #8]
|
|
bl sub_02023EE0
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl sub_02023F40
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02230B64
|
|
|
|
thumb_func_start ov45_02230B8C
|
|
ov45_02230B8C: ; 0x02230B8C
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #4]
|
|
mov r1, #6
|
|
bl ov42_02228188
|
|
add r1, r0, #0
|
|
mov r0, #1
|
|
bl ov45_022309C4
|
|
add r4, r0, #0
|
|
ldr r0, [r5, #4]
|
|
mov r1, #9
|
|
bl ov42_02228188
|
|
lsl r0, r0, #0x10
|
|
lsr r6, r0, #0x10
|
|
ldr r0, [r5, #4]
|
|
mov r1, #8
|
|
bl ov42_02228188
|
|
lsl r0, r0, #0x10
|
|
lsr r1, r0, #0x10
|
|
add r0, r6, #0
|
|
mov r2, #8
|
|
bl ov45_022309D0
|
|
add r6, r0, #0
|
|
ldr r0, [r5, #8]
|
|
add r1, r4, #0
|
|
bl sub_02023EE0
|
|
add r0, r5, #0
|
|
add r0, #0x85
|
|
ldrb r0, [r0]
|
|
cmp r0, r4
|
|
ldr r0, [r5, #8]
|
|
bne _02230BEC
|
|
mov r1, #0
|
|
bl sub_02023F40
|
|
ldr r0, [r5, #8]
|
|
add r5, #0x88
|
|
ldr r1, [r5]
|
|
add r1, r6, r1
|
|
bl sub_02023F04
|
|
pop {r4, r5, r6, pc}
|
|
_02230BEC:
|
|
mov r1, #0
|
|
bl sub_02023F40
|
|
ldr r0, [r5, #8]
|
|
add r1, r6, #0
|
|
bl sub_02023F04
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_02230B8C
|
|
|
|
thumb_func_start ov45_02230BFC
|
|
ov45_02230BFC: ; 0x02230BFC
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #8
|
|
bl ov42_02228188
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
cmp r0, #4
|
|
bhs _02230C1C
|
|
mov r1, #1
|
|
ldr r0, [r4, #8]
|
|
lsl r1, r1, #0xe
|
|
bl sub_02023F40
|
|
pop {r4, pc}
|
|
_02230C1C:
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
bl ov42_02228188
|
|
add r1, r0, #0
|
|
mov r0, #1
|
|
bl ov45_022309C4
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #8]
|
|
bl sub_02023EE0
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl sub_02023F40
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02230BFC
|
|
|
|
thumb_func_start ov45_02230C40
|
|
ov45_02230C40: ; 0x02230C40
|
|
push {r4, r5, r6, lr}
|
|
add r5, r0, #0
|
|
ldr r0, [r5, #4]
|
|
mov r1, #6
|
|
bl ov42_02228188
|
|
add r1, r0, #0
|
|
mov r0, #0
|
|
bl ov45_022309C4
|
|
add r4, r0, #0
|
|
ldr r0, [r5, #4]
|
|
mov r1, #9
|
|
bl ov42_02228188
|
|
lsl r0, r0, #0x10
|
|
lsr r6, r0, #0x10
|
|
ldr r0, [r5, #4]
|
|
mov r1, #8
|
|
bl ov42_02228188
|
|
lsl r0, r0, #0x10
|
|
lsr r1, r0, #0x10
|
|
add r0, r6, #0
|
|
mov r2, #4
|
|
bl ov45_022309D0
|
|
add r6, r0, #0
|
|
ldr r0, [r5, #8]
|
|
add r1, r4, #0
|
|
bl sub_02023EE0
|
|
add r0, r5, #0
|
|
add r0, #0x85
|
|
ldrb r0, [r0]
|
|
cmp r0, r4
|
|
ldr r0, [r5, #8]
|
|
bne _02230CA0
|
|
mov r1, #0
|
|
bl sub_02023F40
|
|
ldr r0, [r5, #8]
|
|
add r5, #0x88
|
|
ldr r1, [r5]
|
|
add r1, r6, r1
|
|
bl sub_02023F04
|
|
pop {r4, r5, r6, pc}
|
|
_02230CA0:
|
|
mov r1, #0
|
|
bl sub_02023F40
|
|
ldr r0, [r5, #8]
|
|
add r1, r6, #0
|
|
bl sub_02023F04
|
|
pop {r4, r5, r6, pc}
|
|
thumb_func_end ov45_02230C40
|
|
|
|
thumb_func_start ov45_02230CB0
|
|
ov45_02230CB0: ; 0x02230CB0
|
|
push {r3, lr}
|
|
ldrb r1, [r0]
|
|
lsl r1, r1, #0x1c
|
|
lsr r1, r1, #0x1c
|
|
bne _02230CD0
|
|
ldrb r1, [r0, #1]
|
|
lsl r2, r1, #0x1f
|
|
lsr r2, r2, #0x1f
|
|
cmp r2, #1
|
|
bne _02230CD0
|
|
lsl r1, r1, #0x18
|
|
lsr r1, r1, #0x19
|
|
lsl r2, r1, #2
|
|
ldr r1, _02230CD4 ; =0x02254F1C
|
|
ldr r1, [r1, r2]
|
|
blx r1
|
|
_02230CD0:
|
|
pop {r3, pc}
|
|
nop
|
|
_02230CD4: .word 0x02254F1C
|
|
thumb_func_end ov45_02230CB0
|
|
|
|
thumb_func_start ov45_02230CD8
|
|
ov45_02230CD8: ; 0x02230CD8
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrb r3, [r4, #2]
|
|
mov r0, #0x1e
|
|
lsr r2, r3, #0x1f
|
|
lsl r1, r3, #0x1e
|
|
sub r1, r1, r2
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
bne _02230D08
|
|
ldr r1, _02230D1C ; =0x02254C34
|
|
lsr r2, r3, #2
|
|
ldrb r1, [r1, r2]
|
|
mov r0, #1
|
|
bl ov45_022309C4
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #8]
|
|
bl sub_02023EE0
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl sub_02023F40
|
|
_02230D08:
|
|
ldrb r1, [r4, #3]
|
|
ldrb r0, [r4, #2]
|
|
add r0, r0, r1
|
|
cmp r0, #0x10
|
|
bge _02230D16
|
|
strb r0, [r4, #2]
|
|
pop {r4, pc}
|
|
_02230D16:
|
|
mov r0, #0
|
|
strb r0, [r4, #2]
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
_02230D1C: .word 0x02254C34
|
|
thumb_func_end ov45_02230CD8
|
|
|
|
thumb_func_start ov45_02230D20
|
|
ov45_02230D20: ; 0x02230D20
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrb r0, [r4, #2]
|
|
cmp r0, #0
|
|
bne _02230D5A
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
bl ov42_02228188
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
bl ov42_02228188
|
|
add r1, r0, #0
|
|
mov r0, #1
|
|
bl ov45_022309C4
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #8]
|
|
bl sub_02023EE0
|
|
mov r1, #1
|
|
ldr r0, [r4, #8]
|
|
lsl r1, r1, #0xe
|
|
bl sub_02023F40
|
|
ldrb r0, [r4, #2]
|
|
add r0, r0, #1
|
|
strb r0, [r4, #2]
|
|
_02230D5A:
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_02230D20
|
|
|
|
thumb_func_start ov45_02230D5C
|
|
ov45_02230D5C: ; 0x02230D5C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrb r0, [r4, #2]
|
|
cmp r0, #0
|
|
bne _02230D8A
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
bl ov42_02228188
|
|
add r1, r0, #0
|
|
mov r0, #1
|
|
bl ov45_022309C4
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #8]
|
|
bl sub_02023EE0
|
|
mov r1, #1
|
|
ldr r0, [r4, #8]
|
|
lsl r1, r1, #0xe
|
|
bl sub_02023F40
|
|
b _02230DB0
|
|
_02230D8A:
|
|
cmp r0, #4
|
|
bne _02230DB0
|
|
ldr r0, [r4, #4]
|
|
mov r1, #6
|
|
bl ov42_02228188
|
|
add r1, r0, #0
|
|
mov r0, #1
|
|
bl ov45_022309C4
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #8]
|
|
bl sub_02023EE0
|
|
mov r1, #3
|
|
ldr r0, [r4, #8]
|
|
lsl r1, r1, #0xe
|
|
bl sub_02023F40
|
|
_02230DB0:
|
|
ldrb r0, [r4, #2]
|
|
add r0, r0, #1
|
|
lsr r2, r0, #0x1f
|
|
lsl r1, r0, #0x1d
|
|
sub r1, r1, r2
|
|
mov r0, #0x1d
|
|
ror r1, r0
|
|
add r0, r2, r1
|
|
strb r0, [r4, #2]
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_02230D5C
|
|
|
|
thumb_func_start ov45_02230DC4
|
|
ov45_02230DC4: ; 0x02230DC4
|
|
cmp r0, #0xb
|
|
bhi _02230DF0
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02230DD4: ; jump table
|
|
.short _02230DF0 - _02230DD4 - 2 ; case 0
|
|
.short _02230DF0 - _02230DD4 - 2 ; case 1
|
|
.short _02230DEC - _02230DD4 - 2 ; case 2
|
|
.short _02230DEC - _02230DD4 - 2 ; case 3
|
|
.short _02230DF0 - _02230DD4 - 2 ; case 4
|
|
.short _02230DEC - _02230DD4 - 2 ; case 5
|
|
.short _02230DEC - _02230DD4 - 2 ; case 6
|
|
.short _02230DF0 - _02230DD4 - 2 ; case 7
|
|
.short _02230DF0 - _02230DD4 - 2 ; case 8
|
|
.short _02230DF0 - _02230DD4 - 2 ; case 9
|
|
.short _02230DEC - _02230DD4 - 2 ; case 10
|
|
.short _02230DEC - _02230DD4 - 2 ; case 11
|
|
_02230DEC:
|
|
mov r0, #1
|
|
bx lr
|
|
_02230DF0:
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ov45_02230DC4
|
|
|
|
thumb_func_start ov45_02230DF4
|
|
ov45_02230DF4: ; 0x02230DF4
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ov45_02230AA4
|
|
cmp r0, #0
|
|
beq _02230E24
|
|
ldr r0, [r4, #8]
|
|
bl ov45_02230E78
|
|
cmp r0, #0
|
|
ldrb r1, [r4]
|
|
bne _02230E18
|
|
mov r0, #0x30
|
|
bic r1, r0
|
|
mov r0, #0x10
|
|
orr r0, r1
|
|
strb r0, [r4]
|
|
b _02230E1E
|
|
_02230E18:
|
|
mov r0, #0x30
|
|
bic r1, r0
|
|
strb r1, [r4]
|
|
_02230E1E:
|
|
add r0, r4, #0
|
|
bl ov45_02230E28
|
|
_02230E24:
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02230DF4
|
|
|
|
thumb_func_start ov45_02230E28
|
|
ov45_02230E28: ; 0x02230E28
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrb r0, [r4]
|
|
lsl r1, r0, #0x1a
|
|
lsr r1, r1, #0x1e
|
|
bne _02230E50
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x1e
|
|
cmp r0, #1
|
|
bne _02230E50
|
|
ldr r0, [r4, #8]
|
|
mov r1, #1
|
|
bl sub_02023EA4
|
|
add r4, #0xc
|
|
add r0, r4, #0
|
|
mov r1, #1
|
|
bl sub_020182A0
|
|
pop {r4, pc}
|
|
_02230E50:
|
|
ldr r0, [r4, #8]
|
|
mov r1, #0
|
|
bl sub_02023EA4
|
|
add r4, #0xc
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
bl sub_020182A0
|
|
pop {r4, pc}
|
|
thumb_func_end ov45_02230E28
|
|
|
|
thumb_func_start ov45_02230E64
|
|
ov45_02230E64: ; 0x02230E64
|
|
push {r4, lr}
|
|
add r4, r1, #0
|
|
bl sub_02023FDC
|
|
add r4, #0x8c
|
|
ldr r1, [r4]
|
|
bl sub_020C3598
|
|
pop {r4, pc}
|
|
.balign 4, 0
|
|
thumb_func_end ov45_02230E64
|
|
|
|
thumb_func_start ov45_02230E78
|
|
ov45_02230E78: ; 0x02230E78
|
|
push {r3, r4, r5, r6, lr}
|
|
sub sp, #0x44
|
|
add r5, r0, #0
|
|
bl sub_02023F90
|
|
cmp r0, #0
|
|
beq _02230E8C
|
|
add r4, r0, #0
|
|
add r4, #0x14
|
|
b _02230E8E
|
|
_02230E8C:
|
|
mov r4, #0
|
|
_02230E8E:
|
|
add r0, r5, #0
|
|
bl sub_02023E68
|
|
add r3, r0, #0
|
|
ldmia r3!, {r0, r1}
|
|
add r2, sp, #0x38
|
|
stmia r2!, {r0, r1}
|
|
ldr r0, [r3]
|
|
add r1, sp, #0
|
|
str r0, [r2]
|
|
mov r0, #0x1e
|
|
ldrsh r0, [r4, r0]
|
|
strh r0, [r1, #0x24]
|
|
mov r0, #0x20
|
|
ldrsh r2, [r4, r0]
|
|
strh r2, [r1, #0x26]
|
|
ldrsh r0, [r4, r0]
|
|
strh r0, [r1, #0x28]
|
|
ldr r0, [r4, #0x24]
|
|
asr r0, r0, #0xc
|
|
str r0, [sp, #0x2c]
|
|
ldr r0, [r4, #0x24]
|
|
asr r0, r0, #0xc
|
|
str r0, [sp, #0x30]
|
|
ldr r0, [r4, #0x24]
|
|
asr r0, r0, #0xc
|
|
str r0, [sp, #0x34]
|
|
mov r0, #0x18
|
|
ldrsh r0, [r4, r0]
|
|
ldr r2, [r4, #0x24]
|
|
asr r1, r0, #0x1f
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
mov r3, #2
|
|
mov r6, #0
|
|
lsl r3, r3, #0xa
|
|
add r3, r0, r3
|
|
adc r1, r6
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r3, #0xc
|
|
ldr r2, [sp, #0x38]
|
|
orr r1, r0
|
|
add r0, r2, r1
|
|
str r0, [sp, #0x38]
|
|
mov r0, #0x1a
|
|
ldrsh r0, [r4, r0]
|
|
ldr r2, [r4, #0x24]
|
|
asr r1, r0, #0x1f
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
mov r3, #2
|
|
lsl r3, r3, #0xa
|
|
add r3, r0, r3
|
|
adc r1, r6
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r3, #0xc
|
|
ldr r2, [sp, #0x3c]
|
|
orr r1, r0
|
|
add r0, r2, r1
|
|
str r0, [sp, #0x3c]
|
|
mov r0, #0x1c
|
|
ldrsh r0, [r4, r0]
|
|
ldr r2, [r4, #0x24]
|
|
asr r1, r0, #0x1f
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
mov r3, #2
|
|
lsl r3, r3, #0xa
|
|
add r3, r0, r3
|
|
adc r1, r6
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r3, #0xc
|
|
ldr r2, [sp, #0x40]
|
|
orr r1, r0
|
|
add r0, r2, r1
|
|
str r0, [sp, #0x40]
|
|
mov r0, #0x20
|
|
ldrsh r0, [r4, r0]
|
|
ldr r2, [r4, #0x24]
|
|
asr r1, r0, #0x1f
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
mov r3, #2
|
|
add r4, r6, #0
|
|
lsl r3, r3, #0xa
|
|
add r3, r0, r3
|
|
adc r1, r4
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r3, #0xc
|
|
ldr r2, [sp, #0x40]
|
|
orr r1, r0
|
|
sub r0, r2, r1
|
|
str r0, [sp, #0x40]
|
|
add r0, sp, #0
|
|
bl MTX_Identity33_
|
|
ldr r1, _02230F8C ; =0x021DA558
|
|
add r0, sp, #0
|
|
bl MI_Copy36B
|
|
ldr r1, _02230F90 ; =0x021DA51C
|
|
mov r0, #0xa4
|
|
ldr r2, [r1, #0x7c]
|
|
bic r2, r0
|
|
add r0, r5, #0
|
|
str r2, [r1, #0x7c]
|
|
bl sub_02023E94
|
|
bl NNS_G3dGlbSetBaseScale
|
|
add r0, sp, #0x38
|
|
add r1, sp, #0x24
|
|
bl sub_0201FA34
|
|
cmp r0, #0
|
|
bne _02230F84
|
|
add sp, #0x44
|
|
add r0, r6, #0
|
|
pop {r3, r4, r5, r6, pc}
|
|
_02230F84:
|
|
mov r0, #1
|
|
add sp, #0x44
|
|
pop {r3, r4, r5, r6, pc}
|
|
nop
|
|
_02230F8C: .word 0x021DA558
|
|
_02230F90: .word 0x021DA51C
|
|
thumb_func_end ov45_02230E78
|
|
|
|
thumb_func_start ov45_02230F94
|
|
ov45_02230F94: ; 0x02230F94
|
|
push {r0, r1, r2, r3}
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
sub sp, #0x10
|
|
add r7, r3, #0
|
|
add r5, r0, #0
|
|
add r6, r1, #0
|
|
mov r0, #0x62
|
|
add r1, r7, #0
|
|
bl NARC_ctor
|
|
add r1, sp, #0xc
|
|
str r1, [sp]
|
|
add r1, r7, #0
|
|
mov r2, #0xdb
|
|
mov r3, #3
|
|
add r4, r0, #0
|
|
bl ov45_02231018
|
|
add r0, sp, #8
|
|
str r0, [sp]
|
|
add r0, r4, #0
|
|
add r1, r7, #0
|
|
add r2, r5, #0
|
|
add r3, r6, #0
|
|
bl ov45_02231018
|
|
ldr r1, [sp, #0xc]
|
|
ldr r0, [sp, #8]
|
|
sub r0, r1, r0
|
|
lsl r0, r0, #0x10
|
|
lsr r1, r0, #0x10
|
|
mov r0, #0x18
|
|
mul r0, r1
|
|
ldr r1, _02231014 ; =0x0000FFFF
|
|
bl _s32_div_f
|
|
cmp r0, #0
|
|
bge _02230FE2
|
|
add r0, #0x18
|
|
_02230FE2:
|
|
cmp r0, #0x18
|
|
blt _02230FEE
|
|
mov r1, #0x18
|
|
bl _s32_div_f
|
|
add r0, r1, #0
|
|
_02230FEE:
|
|
add r2, sp, #4
|
|
mov r1, #0
|
|
str r1, [r2]
|
|
add r1, sp, #4
|
|
strb r0, [r1]
|
|
add r0, r2, #0
|
|
add r1, sp, #0x30
|
|
bl ov45_0222D524
|
|
add r0, r4, #0
|
|
bl NARC_dtor
|
|
ldr r0, [sp, #4]
|
|
add sp, #0x10
|
|
pop {r3, r4, r5, r6, r7}
|
|
pop {r3}
|
|
add sp, #0x10
|
|
bx r3
|
|
nop
|
|
_02231014: .word 0x0000FFFF
|
|
thumb_func_end ov45_02230F94
|
|
|
|
thumb_func_start ov45_02231018
|
|
ov45_02231018: ; 0x02231018
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x1c
|
|
str r1, [sp, #0xc]
|
|
str r3, [sp, #0x10]
|
|
mov r7, #0
|
|
add r5, r2, #0
|
|
str r7, [sp]
|
|
add r1, sp, #0x18
|
|
str r1, [sp, #4]
|
|
ldr r3, [sp, #0xc]
|
|
mov r1, #0x12
|
|
add r2, r7, #0
|
|
str r0, [sp, #8]
|
|
ldr r4, [sp, #0x30]
|
|
bl sub_02007CAC
|
|
add r6, r0, #0
|
|
ldr r0, [sp, #0x18]
|
|
mov r1, #6
|
|
bl _u32_div_f
|
|
cmp r5, r0
|
|
blt _0223104A
|
|
bl GF_AssertFail
|
|
_0223104A:
|
|
mov r0, #6
|
|
add r1, r5, #0
|
|
mul r1, r0
|
|
ldrh r0, [r6, r1]
|
|
cmp r0, #2
|
|
beq _02231060
|
|
add r1, r6, r1
|
|
mov r0, #4
|
|
ldrsh r0, [r1, r0]
|
|
mov r7, #1
|
|
str r0, [r4]
|
|
_02231060:
|
|
add r0, r6, #0
|
|
bl FreeToHeap
|
|
cmp r7, #0
|
|
bne _022310AC
|
|
add r0, r5, #0
|
|
bl sub_02091668
|
|
bl sub_020916F8
|
|
mov r2, #0
|
|
add r1, r0, #0
|
|
str r2, [sp]
|
|
add r0, sp, #0x14
|
|
str r0, [sp, #4]
|
|
ldr r0, [sp, #8]
|
|
ldr r3, [sp, #0xc]
|
|
bl sub_02007CAC
|
|
add r5, r0, #0
|
|
ldr r0, [sp, #0x14]
|
|
lsr r1, r0, #2
|
|
ldr r0, [sp, #0x10]
|
|
cmp r0, r1
|
|
bge _0223109C
|
|
lsl r0, r0, #2
|
|
add r1, r5, r0
|
|
mov r0, #2
|
|
ldrsh r0, [r1, r0]
|
|
b _022310A4
|
|
_0223109C:
|
|
bl GF_AssertFail
|
|
mov r0, #2
|
|
ldrsh r0, [r5, r0]
|
|
_022310A4:
|
|
str r0, [r4]
|
|
add r0, r5, #0
|
|
bl FreeToHeap
|
|
_022310AC:
|
|
add sp, #0x1c
|
|
pop {r4, r5, r6, r7, pc}
|
|
thumb_func_end ov45_02231018
|
|
|
|
.rodata
|
|
|
|
_02254A28:
|
|
.byte 0x02, 0x00, 0x50, 0x00, 0x01, 0x00, 0x02, 0x00
|
|
.byte 0x03, 0x00, 0x8E, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x68, 0x01, 0x00, 0x00, 0xD0, 0x02, 0x00, 0x00, 0xB0, 0x04, 0x00, 0x00, 0x18, 0x06, 0x00, 0x00
|
|
.byte 0x80, 0x07, 0x00, 0x00, 0x60, 0x09, 0x00, 0x00, 0xC8, 0x0A, 0x00, 0x00, 0x30, 0x0C, 0x00, 0x00
|
|
.byte 0x9D, 0xBE, 0x22, 0x02, 0x19, 0xBF, 0x22, 0x02, 0x99, 0xBF, 0x22, 0x02, 0xCD, 0xC0, 0x22, 0x02
|
|
.byte 0x31, 0xC1, 0x22, 0x02, 0xED, 0xC1, 0x22, 0x02, 0x6D, 0xC3, 0x22, 0x02, 0x6D, 0xC3, 0x22, 0x02
|
|
.byte 0xA9, 0xC2, 0x22, 0x02, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00
|
|
.byte 0x1F, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00
|
|
.byte 0x46, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x07, 0x00, 0x01, 0x00, 0x0D, 0x00, 0x01, 0x00
|
|
.byte 0x0E, 0x00, 0x01, 0x00, 0x23, 0x00, 0x01, 0x00, 0x25, 0x00, 0x01, 0x00, 0x2A, 0x00, 0x01, 0x00
|
|
.byte 0x3F, 0x00, 0x01, 0x00, 0x89, 0xC6, 0x22, 0x02, 0x04, 0x00, 0x00, 0x00, 0x3D, 0xC7, 0x22, 0x02
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x9D, 0xC7, 0x22, 0x02, 0x04, 0x00, 0x00, 0x00, 0x01, 0xC8, 0x22, 0x02
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x29, 0xC8, 0x22, 0x02, 0x14, 0x00, 0x00, 0x00, 0x3D, 0xC8, 0x22, 0x02
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0x59, 0xC8, 0x22, 0x02, 0x04, 0x00, 0x00, 0x00, 0x8D, 0xC8, 0x22, 0x02
|
|
.byte 0x04, 0x00, 0x00, 0x00, 0xB5, 0x8C, 0x25, 0x02, 0xA9, 0x8D, 0x25, 0x02, 0xFD, 0x8E, 0x25, 0x02
|
|
.byte 0x2E, 0x00, 0x00, 0x00, 0x01, 0x88, 0x25, 0x02, 0x05, 0x8B, 0x25, 0x02, 0x01, 0x8F, 0x25, 0x02
|
|
.byte 0x59, 0x00, 0x00, 0x00, 0x01, 0x88, 0x25, 0x02, 0x05, 0x8B, 0x25, 0x02, 0x01, 0x8F, 0x25, 0x02
|
|
.byte 0x59, 0x00, 0x00, 0x00, 0x41, 0xC5, 0x25, 0x02, 0x75, 0xC5, 0x25, 0x02, 0xC1, 0xC6, 0x25, 0x02
|
|
.byte 0x5D, 0x00, 0x00, 0x00, 0x01, 0x88, 0x25, 0x02, 0x99, 0x88, 0x25, 0x02, 0xA9, 0x89, 0x25, 0x02
|
|
.byte 0x2F, 0x00, 0x00, 0x00, 0x41, 0xC5, 0x25, 0x02, 0x8D, 0xC5, 0x25, 0x02, 0xED, 0xC9, 0x25, 0x02
|
|
.byte 0x5B, 0x00, 0x00, 0x00, 0x01, 0x88, 0x25, 0x02, 0x2D, 0x89, 0x25, 0x02, 0x39, 0x8C, 0x25, 0x02
|
|
.byte 0x2E, 0x00, 0x00, 0x00, 0x01, 0x88, 0x25, 0x02, 0xC5, 0x88, 0x25, 0x02, 0xFD, 0x89, 0x25, 0x02
|
|
.byte 0x58, 0x00, 0x00, 0x00, 0x01, 0x88, 0x25, 0x02, 0x21, 0x89, 0x25, 0x02, 0xFD, 0x89, 0x25, 0x02
|
|
.byte 0x30, 0x00, 0x00, 0x00, 0xA5, 0x9A, 0x25, 0x02, 0x91, 0x9C, 0x25, 0x02, 0xF9, 0x9E, 0x25, 0x02
|
|
.byte 0x31, 0x00, 0x00, 0x00, 0xB5, 0xCA, 0x25, 0x02, 0xF5, 0xCD, 0x25, 0x02, 0x6D, 0xD3, 0x25, 0x02
|
|
.byte 0x5C, 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0A, 0x0B
|
|
.byte 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x00, 0x00, 0x0B, 0x0A, 0x09, 0x00, 0x16, 0x00, 0x18, 0x00
|
|
.byte 0x19, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x1C, 0x00, 0x17, 0x00, 0x04, 0x00, 0x00, 0x00
|
|
.byte 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x41, 0xE5, 0x22, 0x02, 0x51, 0xE5, 0x22, 0x02
|
|
.byte 0x61, 0xE5, 0x22, 0x02, 0x75, 0xE5, 0x22, 0x02, 0x85, 0xE5, 0x22, 0x02, 0x85, 0xE5, 0x22, 0x02
|
|
.byte 0x99, 0xE5, 0x22, 0x02, 0x9D, 0xE5, 0x22, 0x02, 0xA1, 0xE5, 0x22, 0x02, 0x4D, 0xE1, 0x22, 0x02
|
|
.byte 0xA1, 0xE1, 0x22, 0x02, 0x01, 0xE2, 0x22, 0x02, 0x3D, 0xE3, 0x22, 0x02, 0x9D, 0xE3, 0x22, 0x02
|
|
.byte 0x9D, 0xE3, 0x22, 0x02, 0x15, 0xE4, 0x22, 0x02, 0x85, 0xE4, 0x22, 0x02, 0xA9, 0xE4, 0x22, 0x02
|
|
.byte 0x08, 0x08, 0x04, 0x04, 0x01, 0x02, 0x00, 0x03, 0x18, 0x01, 0x19, 0x01, 0x00, 0x10, 0x00, 0x00
|
|
.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x45, 0x80, 0x61, 0x00, 0x46, 0x80
|
|
.byte 0x03, 0x00, 0x02, 0x00, 0x05, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x0A, 0x00, 0x1F, 0x00, 0x24, 0x00
|
|
.byte 0x32, 0x00, 0x2F, 0x00, 0x33, 0x00, 0x30, 0x00, 0x3E, 0x00, 0x1B, 0x00, 0x46, 0x00, 0x21, 0x00
|
|
.byte 0x06, 0x00, 0x05, 0x00, 0x07, 0x00, 0x06, 0x00, 0x0D, 0x00, 0x0D, 0x00, 0x0E, 0x00, 0x0E, 0x00
|
|
.byte 0x23, 0x00, 0x26, 0x00, 0x25, 0x00, 0x28, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x3F, 0x00, 0x1C, 0x00
|
|
.byte 0x1E, 0x01, 0x66, 0x00, 0x1D, 0x01, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
|
|
.byte 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x60, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00
|
|
.byte 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x00, 0x00, 0x00
|
|
|
|
.data
|
|
|
|
_02254E20:
|
|
.byte 0x25, 0xCF, 0x22, 0x02, 0x1D, 0xD0, 0x22, 0x02, 0xBD, 0xD0, 0x22, 0x02, 0x81, 0xD3, 0x22, 0x02
|
|
.byte 0x81, 0xD3, 0x22, 0x02, 0x31, 0xD1, 0x22, 0x02, 0x9D, 0xD1, 0x22, 0x02, 0x3D, 0xD2, 0x22, 0x02
|
|
.byte 0xE5, 0xD2, 0x22, 0x02, 0x11, 0xD4, 0x22, 0x02, 0x11, 0xD4, 0x22, 0x02, 0xC1, 0xD4, 0x22, 0x02
|
|
.byte 0xC1, 0xD4, 0x22, 0x02, 0x41, 0xCF, 0x22, 0x02, 0x29, 0xD0, 0x22, 0x02, 0xC9, 0xD0, 0x22, 0x02
|
|
.byte 0xB1, 0xD3, 0x22, 0x02, 0xC5, 0xD3, 0x22, 0x02, 0x3D, 0xD1, 0x22, 0x02, 0xB1, 0xD1, 0x22, 0x02
|
|
.byte 0x51, 0xD2, 0x22, 0x02, 0xF9, 0xD2, 0x22, 0x02, 0x1D, 0xD4, 0x22, 0x02, 0x29, 0xD4, 0x22, 0x02
|
|
.byte 0xCD, 0xD4, 0x22, 0x02, 0xCD, 0xD4, 0x22, 0x02, 0x01, 0xCF, 0x22, 0x02, 0xF5, 0xCF, 0x22, 0x02
|
|
.byte 0x79, 0xD0, 0x22, 0x02, 0x55, 0xD3, 0x22, 0x02, 0x55, 0xD3, 0x22, 0x02, 0xFD, 0xD0, 0x22, 0x02
|
|
.byte 0x65, 0xD1, 0x22, 0x02, 0x0D, 0xD2, 0x22, 0x02, 0xAD, 0xD2, 0x22, 0x02, 0xD9, 0xD3, 0x22, 0x02
|
|
.byte 0xD9, 0xD3, 0x22, 0x02, 0x4D, 0xD4, 0x22, 0x02, 0x85, 0xD4, 0x22, 0x02, 0x69, 0xCF, 0x22, 0x02
|
|
.byte 0x55, 0xD0, 0x22, 0x02, 0xD9, 0xD0, 0x22, 0x02, 0x8D, 0xD3, 0x22, 0x02, 0x8D, 0xD3, 0x22, 0x02
|
|
.byte 0x4D, 0xD1, 0x22, 0x02, 0xDD, 0xD1, 0x22, 0x02, 0x7D, 0xD2, 0x22, 0x02, 0x25, 0xD3, 0x22, 0x02
|
|
.byte 0x49, 0xD4, 0x22, 0x02, 0x49, 0xD4, 0x22, 0x02, 0xDD, 0xD4, 0x22, 0x02, 0xDD, 0xD4, 0x22, 0x02
|
|
.byte 0xF4, 0x4E, 0x25, 0x02, 0x62, 0x5F, 0x6C, 0x62, 0x79, 0x5F, 0x77, 0x6C, 0x64, 0x64, 0x61, 0x74
|
|
.byte 0x61, 0x00, 0x00, 0x00, 0x70, 0x6F, 0x6B, 0x65, 0x6D, 0x6F, 0x6E, 0x70, 0x6C, 0x61, 0x74, 0x64
|
|
.byte 0x73, 0x00, 0x00, 0x00, 0x49, 0x49, 0x75, 0x70, 0x37, 0x33, 0x00, 0x00, 0xD9, 0x0C, 0x23, 0x02
|
|
.byte 0x21, 0x0D, 0x23, 0x02, 0x5D, 0x0D, 0x23, 0x02, 0x65, 0x0B, 0x23, 0x02, 0xFD, 0x0B, 0x23, 0x02
|
|
.byte 0x8D, 0x0B, 0x23, 0x02, 0x41, 0x0C, 0x23, 0x02, 0x65, 0x0B, 0x23, 0x02, 0x8D, 0x0B, 0x23, 0x02
|
|
.byte 0x8D, 0x0B, 0x23, 0x02, 0x8D, 0x0B, 0x23, 0x02, 0x8D, 0x0B, 0x23, 0x02, 0x8D, 0x0B, 0x23, 0x02
|
|
.byte 0x8D, 0x0B, 0x23, 0x02, 0x00, 0x00, 0x00, 0x00
|
|
|
|
.bss
|
|
|
|
_022577C0:
|
|
.space 0x4
|