pokeheartgold/asm/overlay_49.s
2023-07-09 09:34:22 +01:00

35483 lines
630 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_49.inc"
.include "global.inc"
.text
thumb_func_start ov49_02258800
ov49_02258800: ; 0x02258800
mov r3, #0
ldrsh r2, [r0, r3]
lsl r2, r2, #0xc
str r2, [r1]
mov r2, #2
ldrsh r0, [r0, r2]
lsl r0, r0, #0xc
str r0, [r1, #8]
str r3, [r1, #4]
bx lr
thumb_func_end ov49_02258800
thumb_func_start ov49_02258814
ov49_02258814: ; 0x02258814
ldr r3, [r0]
asr r2, r3, #0xb
lsr r2, r2, #0x14
add r2, r3, r2
asr r2, r2, #0xc
strh r2, [r1]
ldr r2, [r0, #8]
asr r0, r2, #0xb
lsr r0, r0, #0x14
add r0, r2, r0
asr r0, r0, #0xc
strh r0, [r1, #2]
bx lr
.balign 4, 0
thumb_func_end ov49_02258814
thumb_func_start ov49_02258830
ov49_02258830: ; 0x02258830
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r0, #0
mov r0, #1
str r0, [sp]
add r0, r1, #0
add r1, r2, #0
mov r2, #0
add r7, r3, #0
bl GfGfxLoader_LoadFromOpenNarc
add r4, r0, #0
bl NNS_G3dGetTex
add r6, r0, #0
bl AllocAndLoad3dTexResources
add r0, r6, #0
add r1, sp, #0xc
add r2, sp, #8
bl NNS_G3dTexReleaseTexKey
add r0, r6, #0
bl NNS_G3dPlttReleasePlttKey
str r0, [sp, #4]
add r0, r4, #0
bl sub_02025ACC
add r6, r0, #0
add r0, r7, #0
add r1, r6, #0
bl AllocFromHeap
str r0, [r5]
add r1, r4, #0
add r2, r6, #0
bl memcpy
ldr r0, [r5]
bl NNS_G3dGetTex
ldr r1, [sp, #0xc]
ldr r2, [sp, #8]
add r5, r0, #0
bl NNS_G3dTexSetTexKey
ldr r1, [sp, #4]
add r0, r5, #0
bl NNS_G3dPlttSetPlttKey
add r0, r4, #0
bl FreeToHeap
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_02258830
thumb_func_start ov49_022588A0
ov49_022588A0: ; 0x022588A0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x60
add r5, r1, #0
add r4, r0, #0
add r0, r5, #0
add r1, sp, #0x54
add r2, sp, #0x58
add r3, sp, #0x5c
bl sub_020182B0
add r0, r5, #0
add r1, sp, #0x48
add r2, sp, #0x4c
add r3, sp, #0x50
bl sub_020182CC
add r0, r5, #0
mov r1, #0
bl sub_020182EC
add r6, r0, #0
add r0, r5, #0
mov r1, #1
bl sub_020182EC
add r7, r0, #0
add r0, r5, #0
mov r1, #2
bl sub_020182EC
add r5, r0, #0
add r0, sp, #0x24
bl MTX_Identity33_
asr r0, r6, #4
lsl r3, r0, #1
lsl r1, r3, #1
ldr r2, _02258954 ; =FX_SinCosTable_
add r3, r3, #1
lsl r3, r3, #1
ldrsh r1, [r2, r1]
ldrsh r2, [r2, r3]
add r0, sp, #0
bl MTX_RotX33_
add r1, sp, #0x24
add r0, sp, #0
add r2, r1, #0
bl MTX_Concat33
asr r0, r5, #4
lsl r2, r0, #1
lsl r1, r2, #1
ldr r3, _02258954 ; =FX_SinCosTable_
add r2, r2, #1
lsl r2, r2, #1
ldrsh r1, [r3, r1]
ldrsh r2, [r3, r2]
add r0, sp, #0
bl MTX_RotZ33_
add r1, sp, #0x24
add r0, sp, #0
add r2, r1, #0
bl MTX_Concat33
asr r0, r7, #4
lsl r2, r0, #1
lsl r1, r2, #1
ldr r3, _02258954 ; =FX_SinCosTable_
add r2, r2, #1
lsl r2, r2, #1
ldrsh r1, [r3, r1]
ldrsh r2, [r3, r2]
add r0, sp, #0
bl MTX_RotY33_
add r1, sp, #0x24
add r0, sp, #0
add r2, r1, #0
bl MTX_Concat33
ldr r0, [r4, #8]
add r1, sp, #0x54
add r2, sp, #0x24
add r3, sp, #0x48
bl sub_0201F990
add sp, #0x60
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02258954: .word FX_SinCosTable_
thumb_func_end ov49_022588A0
thumb_func_start ov49_02258958
ov49_02258958: ; 0x02258958
push {r3, r4, r5, lr}
add r5, r0, #0
mov r1, #4
bl AllocFromHeap
add r4, r0, #0
mov r0, #0x23
mov r1, #0x2a
add r2, r5, #0
bl ov42_02227EE0
str r0, [r4]
mov r0, #1
mov r1, #0
str r0, [sp]
mov r0, #0xca
add r2, r1, #0
add r3, r5, #0
bl GfGfxLoader_LoadFromNarc
add r5, r0, #0
ldr r0, [r4]
add r1, r5, #0
bl ov42_02227F48
add r0, r5, #0
bl FreeToHeap
add r0, r4, #0
pop {r3, r4, r5, pc}
thumb_func_end ov49_02258958
thumb_func_start ov49_02258994
ov49_02258994: ; 0x02258994
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
bl ov42_02227F28
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_02258994
thumb_func_start ov49_022589A8
ov49_022589A8: ; 0x022589A8
mov r0, #0x23
bx lr
thumb_func_end ov49_022589A8
thumb_func_start ov49_022589AC
ov49_022589AC: ; 0x022589AC
ldr r3, _022589B4 ; =ov42_02227FA4
ldr r0, [r0]
bx r3
nop
_022589B4: .word ov42_02227FA4
thumb_func_end ov49_022589AC
thumb_func_start ov49_022589B8
ov49_022589B8: ; 0x022589B8
push {r3, lr}
ldr r0, [r0]
bl ov42_02227FDC
lsr r0, r0, #0xf
pop {r3, pc}
thumb_func_end ov49_022589B8
thumb_func_start ov49_022589C4
ov49_022589C4: ; 0x022589C4
push {r3, lr}
ldr r0, [r0]
bl ov42_02227FDC
ldr r1, _022589D4 ; =0x00007FFF
and r0, r1
pop {r3, pc}
nop
_022589D4: .word 0x00007FFF
thumb_func_end ov49_022589C4
thumb_func_start ov49_022589D8
ov49_022589D8: ; 0x022589D8
push {r4, r5, r6, r7, lr}
sub sp, #0x14
mov r5, #0
ldr r7, [sp, #0x28]
str r0, [sp]
str r1, [sp, #4]
str r2, [sp, #8]
str r3, [sp, #0xc]
str r5, [sp, #0x10]
_022589EA:
ldr r0, [sp, #0x10]
mov r4, #0
lsl r0, r0, #0x10
lsr r6, r0, #0x10
_022589F2:
lsl r1, r4, #0x10
ldr r0, [sp]
lsr r1, r1, #0x10
add r2, r6, #0
bl ov49_022589B8
ldr r1, [sp, #4]
cmp r0, r1
bne _02258A1A
cmp r5, r7
blo _02258A18
ldr r0, [sp, #8]
ldr r1, [sp, #0x10]
strh r4, [r0]
ldr r0, [sp, #0xc]
add sp, #0x14
strh r1, [r0]
mov r0, #1
pop {r4, r5, r6, r7, pc}
_02258A18:
add r5, r5, #1
_02258A1A:
add r4, r4, #1
cmp r4, #0x23
blt _022589F2
ldr r0, [sp, #0x10]
add r0, r0, #1
str r0, [sp, #0x10]
cmp r0, #0x2a
blt _022589EA
mov r0, #0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
thumb_func_end ov49_022589D8
thumb_func_start ov49_02258A30
ov49_02258A30: ; 0x02258A30
ldr r3, _02258A4C ; =ov49_02269634
mov r2, #0
_02258A34:
ldrb r1, [r3]
cmp r0, r1
bne _02258A3E
mov r0, #1
bx lr
_02258A3E:
add r2, r2, #1
add r3, r3, #1
cmp r2, #0x20
blo _02258A34
mov r0, #0
bx lr
nop
_02258A4C: .word ov49_02269634
thumb_func_end ov49_02258A30
thumb_func_start ov49_02258A50
ov49_02258A50: ; 0x02258A50
ldr r3, _02258A6C ; =_02269624
mov r2, #0
_02258A54:
ldrb r1, [r3]
cmp r0, r1
bne _02258A5E
mov r0, #1
bx lr
_02258A5E:
add r2, r2, #1
add r3, r3, #1
cmp r2, #3
blo _02258A54
mov r0, #0
bx lr
nop
_02258A6C: .word _02269624
thumb_func_end ov49_02258A50
thumb_func_start ov49_02258A70
ov49_02258A70: ; 0x02258A70
ldr r3, _02258A8C ; =ov49_0226962C
mov r2, #0
_02258A74:
ldrb r1, [r3]
cmp r0, r1
bne _02258A7E
mov r0, #1
bx lr
_02258A7E:
add r2, r2, #1
add r3, r3, #1
cmp r2, #7
blo _02258A74
mov r0, #0
bx lr
nop
_02258A8C: .word ov49_0226962C
thumb_func_end ov49_02258A70
thumb_func_start ov49_02258A90
ov49_02258A90: ; 0x02258A90
ldr r3, _02258AAC ; =ov49_02269628
mov r2, #0
_02258A94:
ldrb r1, [r3]
cmp r0, r1
bne _02258A9E
mov r0, #1
bx lr
_02258A9E:
add r2, r2, #1
add r3, r3, #1
cmp r2, #4
blo _02258A94
mov r0, #0
bx lr
nop
_02258AAC: .word ov49_02269628
thumb_func_end ov49_02258A90
thumb_func_start ov49_02258AB0
ov49_02258AB0: ; 0x02258AB0
ldr r0, [r0]
bx lr
thumb_func_end ov49_02258AB0
thumb_func_start ov49_02258AB4
ov49_02258AB4: ; 0x02258AB4
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
add r6, r1, #0
add r0, r3, #0
mov r1, #0x28
str r2, [sp]
str r3, [sp, #4]
bl AllocFromHeap
mov r1, #0
mov r2, #0x28
add r4, r0, #0
bl memset
ldr r1, [sp, #4]
add r0, r5, #0
bl ov42_02228010
str r0, [r4]
ldr r2, [sp, #4]
ldr r3, [sp, #0x20]
add r0, r5, #0
add r1, r6, #0
bl ov45_02230498
str r0, [r4, #4]
ldr r1, [sp, #4]
mov r0, #0x20
bl ov42_02229A40
str r0, [r4, #0x10]
mov r0, #0x28
add r7, r5, #0
mul r7, r0
ldr r0, [sp, #4]
add r1, r7, #0
strh r5, [r4, #0xc]
bl AllocFromHeap
mov r1, #0
add r2, r7, #0
str r0, [r4, #8]
bl memset
ldr r0, [sp]
str r0, [r4, #0x14]
add r0, r4, #0
strh r6, [r4, #0xe]
bl ov49_022591D8
add r0, r4, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_02258AB4
thumb_func_start ov49_02258B20
ov49_02258B20: ; 0x02258B20
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
bl FreeToHeap
ldr r0, [r4, #0x10]
bl ov42_02229A78
ldr r0, [r4, #4]
bl ov45_02230638
ldr r0, [r4]
bl ov42_02228050
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
thumb_func_end ov49_02258B20
thumb_func_start ov49_02258B44
ov49_02258B44: ; 0x02258B44
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
bl ov42_0222807C
add r0, r4, #0
ldr r1, [r4, #4]
add r0, #0x18
bl ov49_02259A54
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_02258B44
thumb_func_start ov49_02258B5C
ov49_02258B5C: ; 0x02258B5C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
ldrh r0, [r5, #0xc]
mov r6, #0
cmp r0, #0
ble _02258B8C
add r4, r6, #0
_02258B6C:
ldr r0, [r5, #8]
add r0, r0, r4
bl ov49_022593FC
cmp r0, #0
bne _02258B82
ldr r0, [r5, #8]
add r1, r5, #0
add r0, r0, r4
ldr r2, [r0, #0x24]
blx r2
_02258B82:
ldrh r0, [r5, #0xc]
add r6, r6, #1
add r4, #0x28
cmp r6, r0
blt _02258B6C
_02258B8C:
ldr r0, [r5, #0x14]
bl ov49_02258AB0
add r4, r0, #0
ldr r0, [r5, #0x10]
add r1, sp, #8
bl ov42_02229AC8
cmp r0, #1
bne _02258BC8
add r7, sp, #0
add r6, sp, #8
_02258BA4:
ldr r1, [r5]
add r0, r4, #0
add r2, r6, #0
add r3, r7, #0
bl ov42_02228C80
cmp r0, #1
bne _02258BBC
ldr r0, [r5]
add r1, r7, #0
bl ov42_02228068
_02258BBC:
ldr r0, [r5, #0x10]
add r1, r6, #0
bl ov42_02229AC8
cmp r0, #1
beq _02258BA4
_02258BC8:
ldr r0, [r5, #4]
bl ov45_02230680
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_02258B5C
thumb_func_start ov49_02258BD4
ov49_02258BD4: ; 0x02258BD4
ldr r3, _02258BDC ; =ov45_022306B4
ldr r0, [r0, #4]
bx r3
nop
_02258BDC: .word ov45_022306B4
thumb_func_end ov49_02258BD4
thumb_func_start ov49_02258BE0
ov49_02258BE0: ; 0x02258BE0
ldr r3, _02258BE8 ; =ov45_022306F4
ldr r0, [r0, #4]
bx r3
nop
_02258BE8: .word ov45_022306F4
thumb_func_end ov49_02258BE0
thumb_func_start ov49_02258BEC
ov49_02258BEC: ; 0x02258BEC
add r3, r0, #0
add r2, r1, #0
ldr r1, [r3, #4]
lsl r3, r2, #2
ldr r2, _02258C00 ; =ov49_02269660
add r0, #0x18
ldr r2, [r2, r3]
ldr r3, _02258C04 ; =ov49_02259A20
bx r3
nop
_02258C00: .word ov49_02269660
_02258C04: .word ov49_02259A20
thumb_func_end ov49_02258BEC
thumb_func_start ov49_02258C08
ov49_02258C08: ; 0x02258C08
lsl r2, r1, #2
ldr r1, _02258C14 ; =ov49_02269660
ldr r3, _02258C18 ; =ov49_02259A3C
add r0, #0x18
ldr r1, [r1, r2]
bx r3
.balign 4, 0
_02258C14: .word ov49_02269660
_02258C18: .word ov49_02259A3C
thumb_func_end ov49_02258C08
thumb_func_start ov49_02258C1C
ov49_02258C1C: ; 0x02258C1C
ldr r3, _02258C24 ; =ov42_02229A8C
ldr r0, [r0, #0x10]
bx r3
nop
_02258C24: .word ov42_02229A8C
thumb_func_end ov49_02258C1C
thumb_func_start ov49_02258C28
ov49_02258C28: ; 0x02258C28
push {r3, r4, r5, lr}
sub sp, #8
add r5, r0, #0
mov r0, #0
str r0, [sp]
add r2, sp, #4
add r4, r1, #0
ldr r0, [r5, #0x14]
mov r1, #3
add r2, #2
add r3, sp, #4
bl ov49_022589D8
cmp r0, #0
bne _02258C4A
bl GF_AssertFail
_02258C4A:
add r3, sp, #4
ldrh r2, [r3, #2]
ldrh r3, [r3]
add r0, r5, #0
add r1, r4, #0
bl ov49_02258C5C
add sp, #8
pop {r3, r4, r5, pc}
thumb_func_end ov49_02258C28
thumb_func_start ov49_02258C5C
ov49_02258C5C: ; 0x02258C5C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r7, r2, #0
add r5, r0, #0
add r6, r1, #0
str r3, [sp]
bl ov49_022593C0
add r4, r0, #0
lsl r0, r7, #4
add r1, sp, #4
strh r0, [r1]
ldr r0, [sp]
mov r2, #0
lsl r0, r0, #4
strh r0, [r1, #2]
strh r6, [r1, #4]
strh r2, [r1, #6]
strh r2, [r1, #8]
ldrh r0, [r5, #0xe]
cmp r0, #0
bne _02258C8C
strh r2, [r1, #0xa]
b _02258C90
_02258C8C:
mov r0, #0x61
strh r0, [r1, #0xa]
_02258C90:
ldr r0, [r5]
add r1, sp, #4
bl ov42_022280B8
str r0, [r4]
ldr r0, [r5, #4]
ldr r1, [r4]
bl ov45_0223070C
str r0, [r4, #4]
add r0, r5, #0
add r1, r4, #0
mov r2, #0
str r4, [r5, #0x20]
bl ov49_02258EEC
add r0, r4, #0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_02258C5C
thumb_func_start ov49_02258CB8
ov49_02258CB8: ; 0x02258CB8
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
add r7, r1, #0
str r2, [sp, #4]
bl ov49_022593C0
mov r6, #0
str r0, [sp, #8]
add r4, r6, #0
_02258CCC:
str r4, [sp]
add r2, sp, #0xc
ldr r0, [r5, #0x14]
add r1, r7, #4
add r2, #2
add r3, sp, #0xc
bl ov49_022589D8
cmp r0, #0
bne _02258CE6
add sp, #0x1c
mov r0, #0
pop {r4, r5, r6, r7, pc}
_02258CE6:
add r0, r5, #0
bl ov49_02258DAC
cmp r0, #0
bne _02258CF4
mov r6, #1
b _02258D06
_02258CF4:
add r1, sp, #0xc
add r2, sp, #0xc
ldrh r1, [r1, #2]
ldrh r2, [r2]
bl ov49_02258FDC
cmp r0, #0
bne _02258D06
mov r6, #1
_02258D06:
add r0, r4, #1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r6, #0
beq _02258CCC
add r1, sp, #0xc
ldrh r0, [r1, #2]
lsl r0, r0, #4
strh r0, [r1, #4]
ldrh r0, [r1]
lsl r0, r0, #4
strh r0, [r1, #6]
strh r7, [r1, #8]
mov r0, #0
strh r0, [r1, #0xa]
mov r0, #1
strh r0, [r1, #0xc]
ldr r0, [sp, #4]
strh r0, [r1, #0xe]
ldr r0, [r5]
add r1, sp, #0x10
bl ov42_022280B8
ldr r1, [sp, #8]
str r0, [r1]
ldr r0, [r5, #4]
ldr r1, [r1]
bl ov45_0223070C
ldr r1, [sp, #8]
mov r2, #0
str r0, [r1, #4]
add r0, r5, #0
bl ov49_02258EEC
ldr r0, [sp, #8]
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_02258CB8
thumb_func_start ov49_02258D54
ov49_02258D54: ; 0x02258D54
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
bl ov45_02230884
ldr r0, [r4]
bl ov42_02228100
add r0, r4, #0
mov r1, #0
mov r2, #0x28
bl memset
pop {r4, pc}
thumb_func_end ov49_02258D54
thumb_func_start ov49_02258D70
ov49_02258D70: ; 0x02258D70
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldrh r0, [r5, #0xc]
add r7, r1, #0
mov r6, #0
cmp r0, #0
ble _02258DA6
add r4, r6, #0
_02258D80:
ldr r0, [r5, #8]
ldr r0, [r0, r4]
cmp r0, #0
beq _02258D9C
mov r1, #4
bl ov42_02228188
cmp r0, r7
bne _02258D9C
mov r0, #0x28
ldr r1, [r5, #8]
mul r0, r6
add r0, r1, r0
pop {r3, r4, r5, r6, r7, pc}
_02258D9C:
ldrh r0, [r5, #0xc]
add r6, r6, #1
add r4, #0x28
cmp r6, r0
blt _02258D80
_02258DA6:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_02258D70
thumb_func_start ov49_02258DAC
ov49_02258DAC: ; 0x02258DAC
ldr r0, [r0, #0x20]
bx lr
thumb_func_end ov49_02258DAC
thumb_func_start ov49_02258DB0
ov49_02258DB0: ; 0x02258DB0
ldr r0, [r0, #0x24]
bx lr
thumb_func_end ov49_02258DB0
thumb_func_start ov49_02258DB4
ov49_02258DB4: ; 0x02258DB4
push {r0, r1, r2, r3}
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
bne _02258DC4
bl GF_AssertFail
_02258DC4:
add r1, sp, #8
ldrh r2, [r1, #4]
mov r3, sp
ldr r0, [r4]
sub r3, r3, #4
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_0222839C
add r1, sp, #8
mov r3, sp
ldrh r2, [r1, #4]
ldr r0, [r4]
sub r3, r3, #4
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
ldr r0, [r4]
mov r1, #5
mov r2, #0
bl ov42_022281F8
pop {r4}
pop {r3}
add sp, #0x10
bx r3
.balign 4, 0
thumb_func_end ov49_02258DB4
thumb_func_start ov49_02258E04
ov49_02258E04: ; 0x02258E04
push {r0, r1, r2, r3}
push {r3, r4, r5, lr}
add r1, sp, #0x10
add r4, r2, #0
mov r3, sp
ldrh r2, [r1, #4]
sub r3, r3, #4
add r5, r0, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov49_02258DB4
ldr r0, [r5]
mov r1, #6
add r2, r4, #0
bl ov42_022281F8
pop {r3, r4, r5}
pop {r3}
add sp, #0x10
bx r3
.balign 4, 0
thumb_func_end ov49_02258E04
thumb_func_start ov49_02258E34
ov49_02258E34: ; 0x02258E34
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
bne _02258E44
bl GF_AssertFail
_02258E44:
ldr r0, [r4]
bl ov42_022282F4
add r1, sp, #0
strh r0, [r1]
lsr r0, r0, #0x10
strh r0, [r1, #2]
ldrh r2, [r1, #2]
ldrh r0, [r1]
lsl r1, r2, #0x10
orr r0, r1
add sp, #4
pop {r3, r4, pc}
.balign 4, 0
thumb_func_end ov49_02258E34
thumb_func_start ov49_02258E60
ov49_02258E60: ; 0x02258E60
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5]
add r4, r1, #0
cmp r0, #0
bne _02258E70
bl GF_AssertFail
_02258E70:
ldr r0, [r5]
add r1, r4, #0
bl ov42_02228188
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_02258E60
thumb_func_start ov49_02258E7C
ov49_02258E7C: ; 0x02258E7C
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
mov r1, #5
add r6, r2, #0
add r7, r3, #0
bl ov42_02228188
cmp r0, #0
beq _02258E96
bl GF_AssertFail
_02258E96:
ldr r0, [r4]
mov r1, #4
bl ov42_02228188
add r3, r0, #0
add r0, r5, #0
add r1, r6, #0
add r2, r7, #0
bl ov49_0225927C
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_02258E7C
thumb_func_start ov49_02258EAC
ov49_02258EAC: ; 0x02258EAC
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
add r6, r2, #0
add r7, r3, #0
bl ov42_022282DC
add r1, sp, #0
strh r0, [r1]
lsr r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
strh r6, [r1, #8]
strb r7, [r1, #0xa]
ldr r0, [r4]
mov r1, #4
bl ov42_02228188
add r1, sp, #0
strb r0, [r1, #0xb]
ldr r0, [r5]
add r1, sp, #4
bl ov42_02228068
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_02258EAC
thumb_func_start ov49_02258EEC
ov49_02258EEC: ; 0x02258EEC
push {r4, r5, r6, lr}
add r4, r2, #0
add r6, r0, #0
add r5, r1, #0
cmp r4, #0xa
blt _02258EFC
bl GF_AssertFail
_02258EFC:
ldrb r0, [r5, #0xb]
lsl r1, r0, #2
ldr r0, _02258F30 ; =ov49_02269698
ldr r2, [r0, r1]
cmp r2, #0
beq _02258F0E
add r0, r5, #0
add r1, r6, #0
blx r2
_02258F0E:
mov r2, #0
strh r2, [r5, #8]
strb r2, [r5, #0xa]
add r1, r5, #0
strb r4, [r5, #0xb]
add r1, #0xc
mov r0, #0x18
_02258F1C:
strb r2, [r1]
add r1, r1, #1
sub r0, r0, #1
bne _02258F1C
ldr r0, _02258F34 ; =ov49_022696C0
lsl r1, r4, #2
ldr r0, [r0, r1]
str r0, [r5, #0x24]
pop {r4, r5, r6, pc}
nop
_02258F30: .word ov49_02269698
_02258F34: .word ov49_022696C0
thumb_func_end ov49_02258EEC
thumb_func_start ov49_02258F38
ov49_02258F38: ; 0x02258F38
ldrb r0, [r0, #0xa]
bx lr
thumb_func_end ov49_02258F38
thumb_func_start ov49_02258F3C
ov49_02258F3C: ; 0x02258F3C
ldrb r0, [r0, #0xb]
bx lr
thumb_func_end ov49_02258F3C
thumb_func_start ov49_02258F40
ov49_02258F40: ; 0x02258F40
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldr r0, [r4]
mov r1, #6
bl ov42_02228188
add r2, r0, #0
ldr r0, [r4]
ldr r1, [r5]
bl ov42_022283BC
cmp r0, #0
bne _02258F60
mov r0, #0
pop {r3, r4, r5, pc}
_02258F60:
mov r1, #4
bl ov42_02228188
add r1, r0, #0
add r0, r5, #0
bl ov49_02258D70
pop {r3, r4, r5, pc}
thumb_func_end ov49_02258F40
thumb_func_start ov49_02258F70
ov49_02258F70: ; 0x02258F70
ldr r3, _02258F78 ; =ov45_022308B8
ldr r0, [r0, #4]
bx r3
nop
_02258F78: .word ov45_022308B8
thumb_func_end ov49_02258F70
thumb_func_start ov49_02258F7C
ov49_02258F7C: ; 0x02258F7C
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
lsl r0, r1, #4
add r1, sp, #0
strh r0, [r1]
lsl r0, r2, #4
strh r0, [r1, #2]
mov r3, sp
ldrh r2, [r1]
ldr r0, [r4]
sub r3, r3, #4
strh r2, [r3]
ldrh r1, [r1, #2]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022284A4
cmp r0, #0
bne _02258FAA
add sp, #4
mov r0, #0
pop {r3, r4, pc}
_02258FAA:
ldrh r2, [r4, #0xc]
mov r1, #0
cmp r2, #0
ble _02258FD0
ldr r3, [r4, #8]
_02258FB4:
ldr r2, [r3]
cmp r2, r0
bne _02258FC6
mov r0, #0x28
ldr r2, [r4, #8]
mul r0, r1
add sp, #4
add r0, r2, r0
pop {r3, r4, pc}
_02258FC6:
ldrh r2, [r4, #0xc]
add r1, r1, #1
add r3, #0x28
cmp r1, r2
blt _02258FB4
_02258FD0:
bl GF_AssertFail
mov r0, #0
add sp, #4
pop {r3, r4, pc}
.balign 4, 0
thumb_func_end ov49_02258F7C
thumb_func_start ov49_02258FDC
ov49_02258FDC: ; 0x02258FDC
push {r4, r5, r6, lr}
sub sp, #0x10
add r5, r0, #0
ldr r0, [r5]
add r6, r1, #0
add r4, r2, #0
bl ov42_022282DC
add r1, sp, #0
strh r0, [r1, #4]
lsr r0, r0, #0x10
strh r0, [r1, #6]
ldrh r0, [r1, #4]
strh r0, [r1, #0xc]
ldrh r0, [r1, #6]
strh r0, [r1, #0xe]
ldr r0, [r5]
bl ov42_022282E8
add r2, sp, #0
strh r0, [r2]
lsr r0, r0, #0x10
strh r0, [r2, #2]
ldrh r0, [r2]
mov r1, #0xc
strh r0, [r2, #8]
ldrh r0, [r2, #2]
strh r0, [r2, #0xa]
ldrsh r1, [r2, r1]
lsl r0, r6, #4
cmp r1, r0
bne _0225902C
mov r1, #0xe
ldrsh r2, [r2, r1]
lsl r1, r4, #4
cmp r2, r1
bne _0225902C
add sp, #0x10
mov r0, #1
pop {r4, r5, r6, pc}
_0225902C:
add r2, sp, #0
mov r1, #8
ldrsh r1, [r2, r1]
cmp r1, r0
bne _02259046
mov r0, #0xa
ldrsh r1, [r2, r0]
lsl r0, r4, #4
cmp r1, r0
bne _02259046
add sp, #0x10
mov r0, #1
pop {r4, r5, r6, pc}
_02259046:
mov r0, #0
add sp, #0x10
pop {r4, r5, r6, pc}
thumb_func_end ov49_02258FDC
thumb_func_start ov49_0225904C
ov49_0225904C: ; 0x0225904C
push {r4, r5, r6, r7, lr}
sub sp, #0x2c
add r6, r0, #0
ldr r0, [r1]
str r2, [sp]
str r3, [sp, #4]
bl ov42_022282DC
add r4, sp, #0x1c
strh r0, [r4, #4]
lsr r0, r0, #0x10
strh r0, [r4, #6]
ldrh r0, [r4, #4]
mov r5, sp
ldr r7, _0225912C ; =ov49_02269654
strh r0, [r4, #0xc]
ldrh r0, [r4, #6]
sub r5, r5, #4
strh r0, [r4, #0xe]
mov r0, #0
str r0, [sp, #0x10]
ldrh r0, [r4, #0xc]
str r0, [sp, #0x14]
ldrh r0, [r4, #0xe]
str r0, [sp, #0x18]
_0225907E:
ldr r0, [sp, #0x14]
strh r0, [r5]
ldr r0, [sp, #0x18]
strh r0, [r5, #2]
ldrb r1, [r7]
ldr r0, [r5]
bl ov42_02228270
strh r0, [r4]
lsr r0, r0, #0x10
strh r0, [r4, #2]
ldrh r0, [r4]
strh r0, [r4, #8]
ldrh r0, [r4, #2]
strh r0, [r4, #0xa]
mov r0, #0xa
ldrsh r1, [r4, r0]
asr r0, r1, #3
lsr r0, r0, #0x1c
add r0, r1, r0
asr r0, r0, #4
str r0, [sp, #0xc]
mov r0, #8
ldrsh r1, [r4, r0]
ldr r2, [sp, #0xc]
asr r0, r1, #3
lsr r0, r0, #0x1c
add r0, r1, r0
asr r0, r0, #4
str r0, [sp, #8]
ldr r1, [sp, #8]
lsl r2, r2, #0x10
lsl r1, r1, #0x10
ldr r0, [r6, #0x14]
lsr r1, r1, #0x10
lsr r2, r2, #0x10
bl ov49_022589AC
cmp r0, #1
beq _02259118
ldr r1, [sp, #8]
ldr r2, [sp, #0xc]
lsl r1, r1, #0x10
lsl r2, r2, #0x10
ldr r0, [r6, #0x14]
lsr r1, r1, #0x10
lsr r2, r2, #0x10
bl ov49_022589C4
cmp r0, #0
beq _022590E8
cmp r0, #0x2a
bne _02259118
_022590E8:
ldrh r1, [r4, #8]
ldr r0, [r6]
strh r1, [r5]
ldrh r1, [r4, #0xa]
strh r1, [r5, #2]
ldr r1, [r5]
bl ov42_022284A4
cmp r0, #0
bne _02259118
ldr r1, _0225912C ; =ov49_02269654
ldr r0, [sp, #0x10]
ldrb r1, [r1, r0]
ldr r0, [sp]
str r1, [r0]
add r1, sp, #0x1c
ldr r0, [sp, #4]
ldrh r2, [r1, #8]
add sp, #0x2c
strh r2, [r0]
ldrh r1, [r1, #0xa]
strh r1, [r0, #2]
mov r0, #1
pop {r4, r5, r6, r7, pc}
_02259118:
ldr r0, [sp, #0x10]
add r7, r7, #1
add r0, r0, #1
str r0, [sp, #0x10]
cmp r0, #4
blt _0225907E
mov r0, #0
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
nop
_0225912C: .word ov49_02269654
thumb_func_end ov49_0225904C
thumb_func_start ov49_02259130
ov49_02259130: ; 0x02259130
ldr r3, _02259138 ; =ov45_0223089C
ldr r0, [r0, #4]
bx r3
nop
_02259138: .word ov45_0223089C
thumb_func_end ov49_02259130
thumb_func_start ov49_0225913C
ov49_0225913C: ; 0x0225913C
ldr r3, _02259144 ; =ov45_022308C0
ldr r0, [r0, #4]
bx r3
nop
_02259144: .word ov45_022308C0
thumb_func_end ov49_0225913C
thumb_func_start ov49_02259148
ov49_02259148: ; 0x02259148
ldr r3, _02259150 ; =ov45_022308E4
ldr r0, [r0, #4]
bx r3
nop
_02259150: .word ov45_022308E4
thumb_func_end ov49_02259148
thumb_func_start ov49_02259154
ov49_02259154: ; 0x02259154
ldr r3, _0225915C ; =ov45_02230908
ldr r0, [r0, #4]
bx r3
nop
_0225915C: .word ov45_02230908
thumb_func_end ov49_02259154
thumb_func_start ov49_02259160
ov49_02259160: ; 0x02259160
ldr r3, _02259168 ; =ov45_02230920
ldr r0, [r0, #4]
bx r3
nop
_02259168: .word ov45_02230920
thumb_func_end ov49_02259160
thumb_func_start ov49_0225916C
ov49_0225916C: ; 0x0225916C
push {r3, lr}
cmp r1, #0
ldr r0, [r0, #4]
beq _0225917C
mov r1, #1
bl ov45_0223093C
pop {r3, pc}
_0225917C:
bl ov45_02230968
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_0225916C
thumb_func_start ov49_02259184
ov49_02259184: ; 0x02259184
push {r3, lr}
cmp r1, #0
ldr r0, [r0, #4]
beq _02259194
mov r1, #0
bl ov45_0223093C
pop {r3, pc}
_02259194:
bl ov45_02230968
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_02259184
thumb_func_start ov49_0225919C
ov49_0225919C: ; 0x0225919C
push {r3, lr}
cmp r1, #0
ldr r0, [r0, #4]
beq _022591AC
mov r1, #2
bl ov45_0223093C
pop {r3, pc}
_022591AC:
bl ov45_02230968
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_0225919C
thumb_func_start ov49_022591B4
ov49_022591B4: ; 0x022591B4
ldr r3, _022591BC ; =ov45_022308B0
ldr r0, [r0, #4]
bx r3
nop
_022591BC: .word ov45_022308B0
thumb_func_end ov49_022591B4
thumb_func_start ov49_022591C0
ov49_022591C0: ; 0x022591C0
ldr r3, _022591C8 ; =ov45_02230978
ldr r0, [r0, #4]
bx r3
nop
_022591C8: .word ov45_02230978
thumb_func_end ov49_022591C0
thumb_func_start ov49_022591CC
ov49_022591CC: ; 0x022591CC
ldr r3, _022591D4 ; =ov45_02230994
ldr r0, [r0, #4]
bx r3
nop
_022591D4: .word ov45_02230994
thumb_func_end ov49_022591CC
thumb_func_start ov49_022591D8
ov49_022591D8: ; 0x022591D8
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
mov r0, #0
ldr r4, _02259278 ; =ov49_02269678
str r0, [sp, #8]
_022591E4:
mov r0, #0
str r0, [sp, #4]
str r0, [sp]
ldrb r1, [r4]
add r2, sp, #0xc
ldr r0, [r5, #0x14]
add r2, #2
add r3, sp, #0xc
bl ov49_022589D8
cmp r0, #1
bne _02259266
add r7, sp, #0xc
_022591FE:
add r0, r5, #0
bl ov49_022593C0
add r6, r0, #0
ldrh r0, [r7, #2]
add r1, sp, #0x10
lsl r0, r0, #4
strh r0, [r7, #4]
ldrh r0, [r7]
lsl r0, r0, #4
strh r0, [r7, #6]
ldrb r0, [r4, #4]
strh r0, [r7, #8]
mov r0, #0
strh r0, [r7, #0xa]
ldrb r0, [r4, #1]
strh r0, [r7, #0xc]
ldrh r0, [r4, #2]
strh r0, [r7, #0xe]
ldr r0, [r5]
bl ov42_022280B8
add r1, r0, #0
str r1, [r6]
ldr r0, [r5, #4]
bl ov45_0223070C
str r0, [r6, #4]
add r0, r5, #0
add r1, r6, #0
mov r2, #0
bl ov49_02258EEC
ldrb r0, [r4]
cmp r0, #0x61
bne _02259248
str r6, [r5, #0x24]
_02259248:
ldr r0, [sp, #4]
add r2, sp, #0xc
add r0, r0, #1
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #4]
str r0, [sp]
ldrb r1, [r4]
ldr r0, [r5, #0x14]
add r2, #2
add r3, sp, #0xc
bl ov49_022589D8
cmp r0, #1
beq _022591FE
_02259266:
ldr r0, [sp, #8]
add r4, #8
add r0, r0, #1
str r0, [sp, #8]
cmp r0, #4
blo _022591E4
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_02259278: .word ov49_02269678
thumb_func_end ov49_022591D8
thumb_func_start ov49_0225927C
ov49_0225927C: ; 0x0225927C
push {r3, r4, lr}
sub sp, #4
add r4, sp, #0
strh r1, [r4]
strb r2, [r4, #2]
add r1, sp, #0
strb r3, [r4, #3]
bl ov49_02258C1C
add sp, #4
pop {r3, r4, pc}
.balign 4, 0
thumb_func_end ov49_0225927C
thumb_func_start ov49_02259294
ov49_02259294: ; 0x02259294
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
bl MTRandom
add r1, r4, #0
bl _u32_div_f
ldrb r0, [r5, r1]
pop {r3, r4, r5, pc}
thumb_func_end ov49_02259294
thumb_func_start ov49_022592A8
ov49_022592A8: ; 0x022592A8
push {r4, r5, r6, lr}
sub sp, #0x10
add r5, r0, #0
ldr r0, [r1]
add r6, r2, #0
add r4, r3, #0
bl ov42_022282DC
add r1, sp, #0
strh r0, [r1, #4]
lsr r0, r0, #0x10
strh r0, [r1, #6]
ldrh r0, [r1, #4]
mov r2, sp
sub r2, r2, #4
strh r0, [r1, #0xc]
ldrh r0, [r1, #6]
strh r0, [r1, #0xe]
ldrh r0, [r1, #0xc]
strh r0, [r2]
ldrh r0, [r1, #0xe]
add r1, r6, #0
strh r0, [r2, #2]
ldr r0, [r2]
bl ov42_02228270
add r2, sp, #0
strh r0, [r2]
lsr r0, r0, #0x10
strh r0, [r2, #2]
ldrh r0, [r2]
mov r1, #8
strh r0, [r2, #8]
ldrh r0, [r2, #2]
strh r0, [r2, #0xa]
ldrsh r3, [r2, r1]
ldr r0, [r5, #0x14]
asr r1, r3, #3
lsr r1, r1, #0x1c
add r1, r3, r1
mov r3, #0xa
ldrsh r3, [r2, r3]
lsl r1, r1, #0xc
lsr r1, r1, #0x10
asr r2, r3, #3
lsr r2, r2, #0x1c
add r2, r3, r2
lsl r2, r2, #0xc
lsr r2, r2, #0x10
bl ov49_022589B8
cmp r0, r4
bne _02259318
add sp, #0x10
mov r0, #1
pop {r4, r5, r6, pc}
_02259318:
mov r0, #0
add sp, #0x10
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_022592A8
thumb_func_start ov49_02259320
ov49_02259320: ; 0x02259320
str r1, [r0]
str r1, [r0, #4]
sub r1, r2, r1
str r1, [r0, #8]
str r3, [r0, #0xc]
bx lr
thumb_func_end ov49_02259320
thumb_func_start ov49_0225932C
ov49_0225932C: ; 0x0225932C
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
ldr r6, [r5, #8]
beq _02259348
lsl r0, r4, #0xc
bl _ffltu
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _02259356
_02259348:
lsl r0, r4, #0xc
bl _ffltu
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_02259356:
bl _ffix
add r2, r0, #0
asr r1, r6, #0x1f
add r0, r6, #0
asr r3, r2, #0x1f
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r6, r2, #0xc
orr r6, r0
ldr r0, [r5, #0xc]
cmp r0, #0
beq _0225938E
lsl r0, r0, #0xc
bl _ffltu
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _0225939C
_0225938E:
lsl r0, r0, #0xc
bl _ffltu
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_0225939C:
bl _ffix
add r1, r0, #0
add r0, r6, #0
bl FX_Div
ldr r1, [r5, #4]
add r0, r0, r1
str r0, [r5]
ldr r0, [r5, #0xc]
cmp r4, r0
blo _022593B8
mov r0, #1
pop {r4, r5, r6, pc}
_022593B8:
mov r0, #0
pop {r4, r5, r6, pc}
thumb_func_end ov49_0225932C
thumb_func_start ov49_022593BC
ov49_022593BC: ; 0x022593BC
ldr r0, [r0]
bx lr
thumb_func_end ov49_022593BC
thumb_func_start ov49_022593C0
ov49_022593C0: ; 0x022593C0
push {r4, r5, r6, lr}
add r5, r0, #0
ldrh r0, [r5, #0xc]
mov r6, #0
cmp r0, #0
ble _022593EE
add r4, r6, #0
_022593CE:
ldr r0, [r5, #8]
add r0, r0, r4
bl ov49_022593FC
cmp r0, #0
beq _022593E4
mov r0, #0x28
ldr r1, [r5, #8]
mul r0, r6
add r0, r1, r0
pop {r4, r5, r6, pc}
_022593E4:
ldrh r0, [r5, #0xc]
add r6, r6, #1
add r4, #0x28
cmp r6, r0
blt _022593CE
_022593EE:
bl GF_AssertFail
mov r0, #0x28
ldr r1, [r5, #8]
mul r0, r6
add r0, r1, r0
pop {r4, r5, r6, pc}
thumb_func_end ov49_022593C0
thumb_func_start ov49_022593FC
ov49_022593FC: ; 0x022593FC
ldr r0, [r0]
cmp r0, #0
bne _02259406
mov r0, #1
bx lr
_02259406:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_end ov49_022593FC
thumb_func_start ov49_0225940C
ov49_0225940C: ; 0x0225940C
bx lr
.balign 4, 0
thumb_func_end ov49_0225940C
thumb_func_start ov49_02259410
ov49_02259410: ; 0x02259410
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
ldr r0, [r7]
add r5, r1, #0
mov r1, #6
bl ov42_02228188
add r4, r0, #0
ldr r0, [r7]
mov r1, #4
bl ov42_02228188
add r6, r0, #0
ldr r0, [r7]
mov r1, #5
bl ov42_02228188
cmp r0, #0
bne _022594D2
ldr r0, _022594D4 ; =gSystem
mov r1, #2
ldr r0, [r0, #0x44]
add r2, r0, #0
tst r2, r1
beq _02259444
mov r1, #3
_02259444:
mov r2, #0x40
tst r2, r0
beq _02259468
cmp r4, #0
bne _0225945A
add r0, r5, #0
add r2, r4, #0
add r3, r6, #0
bl ov49_0225927C
pop {r3, r4, r5, r6, r7, pc}
_0225945A:
add r0, r5, #0
mov r1, #1
mov r2, #0
add r3, r6, #0
bl ov49_0225927C
pop {r3, r4, r5, r6, r7, pc}
_02259468:
mov r2, #0x80
tst r2, r0
beq _0225948C
cmp r4, #1
bne _0225947E
add r0, r5, #0
add r2, r4, #0
add r3, r6, #0
bl ov49_0225927C
pop {r3, r4, r5, r6, r7, pc}
_0225947E:
mov r1, #1
add r0, r5, #0
add r2, r1, #0
add r3, r6, #0
bl ov49_0225927C
pop {r3, r4, r5, r6, r7, pc}
_0225948C:
mov r2, #0x20
tst r2, r0
beq _022594B0
cmp r4, #2
bne _022594A2
add r0, r5, #0
add r2, r4, #0
add r3, r6, #0
bl ov49_0225927C
pop {r3, r4, r5, r6, r7, pc}
_022594A2:
add r0, r5, #0
mov r1, #1
mov r2, #2
add r3, r6, #0
bl ov49_0225927C
pop {r3, r4, r5, r6, r7, pc}
_022594B0:
mov r2, #0x10
tst r0, r2
beq _022594D2
cmp r4, #3
bne _022594C6
add r0, r5, #0
add r2, r4, #0
add r3, r6, #0
bl ov49_0225927C
pop {r3, r4, r5, r6, r7, pc}
_022594C6:
add r0, r5, #0
mov r1, #1
mov r2, #3
add r3, r6, #0
bl ov49_0225927C
_022594D2:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_022594D4: .word gSystem
thumb_func_end ov49_02259410
thumb_func_start ov49_022594D8
ov49_022594D8: ; 0x022594D8
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
ldrh r0, [r4, #8]
add r5, r1, #0
cmp r0, #4
bhi _022595C0
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_022594F0: ; jump table
.short _022594FA - _022594F0 - 2 ; case 0
.short _0225950C - _022594F0 - 2 ; case 1
.short _02259522 - _022594F0 - 2 ; case 2
.short _0225958E - _022594F0 - 2 ; case 3
.short _022595B0 - _022594F0 - 2 ; case 4
_022594FA:
ldr r0, _022595C4 ; =ov49_02269658
mov r1, #4
bl ov49_02259294
strh r0, [r4, #0xc]
ldrh r0, [r4, #8]
add r0, r0, #1
strh r0, [r4, #8]
pop {r3, r4, r5, r6, r7, pc}
_0225950C:
mov r0, #0xc
ldrsh r1, [r4, r0]
sub r1, r1, #1
strh r1, [r4, #0xc]
ldrsh r0, [r4, r0]
cmp r0, #0
bne _022595C0
ldrh r0, [r4, #8]
add r0, r0, #1
strh r0, [r4, #8]
pop {r3, r4, r5, r6, r7, pc}
_02259522:
ldr r0, [r4]
mov r1, #4
bl ov42_02228188
add r6, r0, #0
ldr r0, [r4]
mov r1, #6
bl ov42_02228188
add r7, r0, #0
ldr r0, _022595C8 ; =ov49_0226965C
mov r1, #4
bl ov49_02259294
strh r0, [r4, #0xe]
mov r2, #0xe
ldrsh r2, [r4, r2]
add r0, r5, #0
add r1, r4, #0
add r3, r6, #4
bl ov49_022592A8
cmp r0, #1
bne _0225957A
mov r0, #0xe
ldrsh r3, [r4, r0]
cmp r7, r3
bne _0225956A
add r0, r5, #0
add r1, r4, #0
mov r2, #2
bl ov49_02258E7C
mov r0, #4
strh r0, [r4, #8]
pop {r3, r4, r5, r6, r7, pc}
_0225956A:
add r0, r5, #0
add r1, r4, #0
mov r2, #1
bl ov49_02258E7C
mov r0, #3
strh r0, [r4, #8]
pop {r3, r4, r5, r6, r7, pc}
_0225957A:
mov r3, #0xe
ldrsh r3, [r4, r3]
add r0, r5, #0
add r1, r4, #0
mov r2, #1
bl ov49_02258E7C
mov r0, #4
strh r0, [r4, #8]
pop {r3, r4, r5, r6, r7, pc}
_0225958E:
ldr r0, [r4]
mov r1, #5
bl ov42_02228188
cmp r0, #0
bne _022595C0
mov r3, #0xe
ldrsh r3, [r4, r3]
add r0, r5, #0
add r1, r4, #0
mov r2, #2
bl ov49_02258E7C
ldrh r0, [r4, #8]
add r0, r0, #1
strh r0, [r4, #8]
pop {r3, r4, r5, r6, r7, pc}
_022595B0:
ldr r0, [r4]
mov r1, #5
bl ov42_02228188
cmp r0, #0
bne _022595C0
mov r0, #0
strh r0, [r4, #8]
_022595C0:
pop {r3, r4, r5, r6, r7, pc}
nop
_022595C4: .word ov49_02269658
_022595C8: .word ov49_0226965C
thumb_func_end ov49_022594D8
thumb_func_start ov49_022595CC
ov49_022595CC: ; 0x022595CC
push {r4, r5, lr}
sub sp, #0xc
add r4, r0, #0
ldrh r0, [r4, #8]
cmp r0, #3
bhi _02259672
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_022595E4: ; jump table
.short _022595EC - _022595E4 - 2 ; case 0
.short _02259616 - _022595E4 - 2 ; case 1
.short _02259632 - _022595E4 - 2 ; case 2
.short _02259672 - _022595E4 - 2 ; case 3
_022595EC:
ldr r0, [r4, #4]
mov r1, #0
bl ov45_0223089C
ldr r0, [r4, #4]
mov r1, #0
bl ov45_0223093C
add r0, r4, #0
mov r2, #0x7d
add r0, #0xc
mov r1, #0
lsl r2, r2, #0xe
mov r3, #0x18
bl ov49_02259320
mov r0, #0x20
str r0, [r4, #0x1c]
ldrh r0, [r4, #8]
add r0, r0, #1
strh r0, [r4, #8]
_02259616:
ldr r0, [r4, #0x1c]
sub r0, r0, #1
str r0, [r4, #0x1c]
bne _02259672
ldrh r0, [r4, #8]
add r0, r0, #1
strh r0, [r4, #8]
mov r0, #0
str r0, [r4, #0x1c]
ldr r0, _02259678 ; =0x0000064E
bl PlaySE
add sp, #0xc
pop {r4, r5, pc}
_02259632:
add r0, r4, #0
ldr r1, [r4, #0x1c]
add r0, #0xc
bl ov49_0225932C
add r5, r0, #0
ldr r0, [r4, #0x1c]
add r1, sp, #0
add r0, r0, #1
str r0, [r4, #0x1c]
ldr r0, [r4, #4]
bl ov45_02230908
add r0, r4, #0
add r0, #0xc
bl ov49_022593BC
str r0, [sp, #4]
ldr r0, [r4, #4]
add r1, sp, #0
bl ov45_022308E4
cmp r5, #1
bne _02259672
ldrh r0, [r4, #8]
add r0, r0, #1
strh r0, [r4, #8]
ldr r0, [r4, #4]
bl ov45_02230968
mov r0, #1
strb r0, [r4, #0xa]
_02259672:
add sp, #0xc
pop {r4, r5, pc}
nop
_02259678: .word 0x0000064E
thumb_func_end ov49_022595CC
thumb_func_start ov49_0225967C
ov49_0225967C: ; 0x0225967C
push {r4, r5, lr}
sub sp, #0xc
add r4, r0, #0
ldrh r0, [r4, #8]
cmp r0, #3
bhi _0225972A
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02259694: ; jump table
.short _0225969C - _02259694 - 2 ; case 0
.short _022596CC - _02259694 - 2 ; case 1
.short _0225970A - _02259694 - 2 ; case 2
.short _0225972A - _02259694 - 2 ; case 3
_0225969C:
ldr r0, [r4, #4]
mov r1, #0
bl ov45_0223089C
ldr r0, [r4, #4]
mov r1, #0
bl ov45_0223093C
add r0, r4, #0
mov r1, #0x7d
add r0, #0xc
lsl r1, r1, #0xe
mov r2, #0
mov r3, #0x18
bl ov49_02259320
mov r0, #0
str r0, [r4, #0x1c]
ldrh r0, [r4, #8]
add r0, r0, #1
strh r0, [r4, #8]
ldr r0, _02259730 ; =0x0000064E
bl PlaySE
_022596CC:
add r0, r4, #0
ldr r1, [r4, #0x1c]
add r0, #0xc
bl ov49_0225932C
add r5, r0, #0
ldr r0, [r4, #0x1c]
add r1, sp, #0
add r0, r0, #1
str r0, [r4, #0x1c]
ldr r0, [r4, #4]
bl ov45_02230908
add r0, r4, #0
add r0, #0xc
bl ov49_022593BC
str r0, [sp, #4]
ldr r0, [r4, #4]
add r1, sp, #0
bl ov45_022308E4
cmp r5, #1
bne _0225972A
mov r0, #0x20
str r0, [r4, #0x1c]
ldrh r0, [r4, #8]
add sp, #0xc
add r0, r0, #1
strh r0, [r4, #8]
pop {r4, r5, pc}
_0225970A:
ldr r0, [r4, #0x1c]
sub r0, r0, #1
str r0, [r4, #0x1c]
bne _0225972A
ldrh r0, [r4, #8]
add r0, r0, #1
strh r0, [r4, #8]
ldr r0, [r4, #4]
bl ov45_02230968
ldr r0, [r4, #4]
mov r1, #1
bl ov45_0223089C
mov r0, #1
strb r0, [r4, #0xa]
_0225972A:
add sp, #0xc
pop {r4, r5, pc}
nop
_02259730: .word 0x0000064E
thumb_func_end ov49_0225967C
thumb_func_start ov49_02259734
ov49_02259734: ; 0x02259734
ldr r3, _0225973C ; =ov49_02259764
mov r2, #2
bx r3
nop
_0225973C: .word ov49_02259764
thumb_func_end ov49_02259734
thumb_func_start ov49_02259740
ov49_02259740: ; 0x02259740
ldr r3, _02259748 ; =ov49_02259764
mov r2, #3
bx r3
nop
_02259748: .word ov49_02259764
thumb_func_end ov49_02259740
thumb_func_start ov49_0225974C
ov49_0225974C: ; 0x0225974C
ldr r3, _02259754 ; =ov49_02259764
mov r2, #0
bx r3
nop
_02259754: .word ov49_02259764
thumb_func_end ov49_0225974C
thumb_func_start ov49_02259758
ov49_02259758: ; 0x02259758
ldr r3, _02259760 ; =ov49_02259764
mov r2, #1
bx r3
nop
_02259760: .word ov49_02259764
thumb_func_end ov49_02259758
thumb_func_start ov49_02259764
ov49_02259764: ; 0x02259764
push {r4, r5, r6, lr}
sub sp, #0x28
add r4, r0, #0
ldrh r0, [r4, #8]
add r5, r2, #0
cmp r0, #3
bls _02259774
b _02259916
_02259774:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02259780: ; jump table
.short _02259788 - _02259780 - 2 ; case 0
.short _022597E4 - _02259780 - 2 ; case 1
.short _0225989E - _02259780 - 2 ; case 2
.short _02259916 - _02259780 - 2 ; case 3
_02259788:
ldr r0, [r4, #4]
mov r1, #0
bl ov45_0223089C
ldr r0, [r4, #4]
mov r1, #0
bl ov45_0223093C
ldr r0, [r4, #4]
mov r1, #2
bl ov45_02230974
add r0, r4, #0
mov r2, #1
add r0, #0xc
mov r1, #0
lsl r2, r2, #0x10
mov r3, #4
bl ov49_02259320
ldr r0, [r4, #4]
add r1, sp, #0x1c
bl ov45_02230908
cmp r5, #3
bhi _022597DA
add r0, r5, r5
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_022597C8: ; jump table
.short _022597D0 - _022597C8 - 2 ; case 0
.short _022597D0 - _022597C8 - 2 ; case 1
.short _022597D6 - _022597C8 - 2 ; case 2
.short _022597D6 - _022597C8 - 2 ; case 3
_022597D0:
ldr r0, [sp, #0x24]
str r0, [r4, #0x20]
b _022597DA
_022597D6:
ldr r0, [sp, #0x1c]
str r0, [r4, #0x20]
_022597DA:
mov r0, #0
str r0, [r4, #0x1c]
ldrh r0, [r4, #8]
add r0, r0, #1
strh r0, [r4, #8]
_022597E4:
add r0, r4, #0
ldr r1, [r4, #0x1c]
add r0, #0xc
bl ov49_0225932C
add r6, r0, #0
ldr r0, [r4, #0x1c]
add r1, sp, #0x10
add r0, r0, #1
str r0, [r4, #0x1c]
ldr r0, [r4, #4]
bl ov45_02230908
cmp r5, #3
bhi _02259854
add r0, r5, r5
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225980E: ; jump table
.short _02259816 - _0225980E - 2 ; case 0
.short _02259826 - _0225980E - 2 ; case 1
.short _02259836 - _0225980E - 2 ; case 2
.short _02259846 - _0225980E - 2 ; case 3
_02259816:
add r0, r4, #0
add r0, #0xc
bl ov49_022593BC
ldr r1, [r4, #0x20]
sub r0, r1, r0
str r0, [sp, #0x18]
b _02259854
_02259826:
add r0, r4, #0
add r0, #0xc
bl ov49_022593BC
ldr r1, [r4, #0x20]
add r0, r1, r0
str r0, [sp, #0x18]
b _02259854
_02259836:
add r0, r4, #0
add r0, #0xc
bl ov49_022593BC
ldr r1, [r4, #0x20]
sub r0, r1, r0
str r0, [sp, #0x10]
b _02259854
_02259846:
add r0, r4, #0
add r0, #0xc
bl ov49_022593BC
ldr r1, [r4, #0x20]
add r0, r1, r0
str r0, [sp, #0x10]
_02259854:
ldr r0, [r4, #4]
add r1, sp, #0x10
bl ov45_022308E4
cmp r6, #1
bne _02259916
add r0, r5, #0
bl ov42_022282A4
mov r1, #4
str r1, [r4, #0x1c]
cmp r0, #3
bhi _02259894
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225987A: ; jump table
.short _02259888 - _0225987A - 2 ; case 0
.short _02259894 - _0225987A - 2 ; case 1
.short _0225988E - _0225987A - 2 ; case 2
.short _02259882 - _0225987A - 2 ; case 3
_02259882:
ldr r0, [r4, #0x1c]
add r0, r0, #2
str r0, [r4, #0x1c]
_02259888:
ldr r0, [r4, #0x1c]
add r0, r0, #2
str r0, [r4, #0x1c]
_0225988E:
ldr r0, [r4, #0x1c]
add r0, r0, #2
str r0, [r4, #0x1c]
_02259894:
ldrh r0, [r4, #8]
add sp, #0x28
add r0, r0, #1
strh r0, [r4, #8]
pop {r4, r5, r6, pc}
_0225989E:
ldr r0, [r4, #0x1c]
sub r0, r0, #1
str r0, [r4, #0x1c]
bne _02259916
ldrh r0, [r4, #8]
add r0, r0, #1
strh r0, [r4, #8]
ldr r0, [r4]
bl ov42_022282DC
add r1, sp, #0
strh r0, [r1, #4]
lsr r0, r0, #0x10
strh r0, [r1, #6]
ldrh r0, [r1, #4]
mov r2, sp
sub r2, r2, #4
strh r0, [r1, #0xc]
ldrh r0, [r1, #6]
strh r0, [r1, #0xe]
ldrh r0, [r1, #0xc]
strh r0, [r2]
ldrh r0, [r1, #0xe]
add r1, r5, #0
strh r0, [r2, #2]
ldr r0, [r2]
bl ov42_02228270
add r1, sp, #0
strh r0, [r1]
lsr r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
strh r0, [r1, #8]
ldrh r0, [r1, #2]
strh r0, [r1, #0xa]
add r0, r5, #0
bl ov42_022282A4
add r1, sp, #0
mov r5, sp
add r2, r0, #0
ldrh r3, [r1, #8]
sub r5, r5, #4
add r0, r4, #0
strh r3, [r5]
ldrh r1, [r1, #0xa]
strh r1, [r5, #2]
ldr r1, [r5]
bl ov49_02258E04
ldr r0, [r4, #4]
bl ov45_02230968
ldr r0, [r4, #4]
mov r1, #1
bl ov45_0223089C
mov r0, #1
strb r0, [r4, #0xa]
_02259916:
add sp, #0x28
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_02259764
thumb_func_start ov49_0225991C
ov49_0225991C: ; 0x0225991C
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r0, #0
ldrh r0, [r5, #8]
cmp r0, #0
beq _02259930
cmp r0, #1
beq _02259950
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_02259930:
ldr r0, [r5, #4]
mov r1, #0
bl ov45_0223089C
add r1, r5, #0
ldr r0, [r5, #4]
add r1, #0x10
bl ov45_02230908
mov r0, #0x1c
str r0, [r5, #0xc]
ldrh r0, [r5, #8]
add sp, #0xc
add r0, r0, #1
strh r0, [r5, #8]
pop {r3, r4, r5, r6, pc}
_02259950:
ldr r0, [r5, #0xc]
sub r0, r0, #1
str r0, [r5, #0xc]
bpl _0225995C
mov r0, #0x1c
str r0, [r5, #0xc]
_0225995C:
add r3, r5, #0
add r3, #0x10
ldmia r3!, {r0, r1}
add r2, sp, #0
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r5, #0xc]
sub r0, #0x10
lsl r0, r0, #0x10
asr r0, r0, #0x10
cmp r0, #0
ble _022599DE
mov r1, #6
bl _s32_div_f
lsl r0, r1, #0x10
asr r1, r0, #0x10
mov r0, #0xb4
mul r0, r1
mov r1, #6
bl _s32_div_f
add r4, r0, #0
lsl r0, r4, #0x10
lsr r0, r0, #0x10
bl GF_SinDegNoWrap
ldr r2, _022599F4 ; =0xFFFFE000
asr r1, r0, #0x1f
asr r3, r2, #0xd
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, #8]
orr r1, r0
add r0, r2, r1
str r0, [sp, #8]
lsl r0, r4, #0x10
lsr r0, r0, #0x10
bl GF_SinDegNoWrap
mov r2, #0xa
asr r1, r0, #0x1f
lsl r2, r2, #0xc
add r3, r6, #0
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, #4]
orr r1, r0
add r0, r2, r1
str r0, [sp, #4]
_022599DE:
ldr r0, [r5, #4]
add r1, sp, #0
bl ov45_022308E4
ldr r0, [r5, #4]
mov r1, #1
bl ov45_02230920
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_022599F4: .word 0xFFFFE000
thumb_func_end ov49_0225991C
thumb_func_start ov49_022599F8
ov49_022599F8: ; 0x022599F8
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #1
bl ov45_0223089C
ldr r0, [r4, #4]
add r1, sp, #0
bl ov45_02230908
mov r0, #0
str r0, [sp, #4]
ldr r0, [r4, #4]
add r1, sp, #0
bl ov45_022308E4
add sp, #0xc
pop {r3, r4, pc}
.balign 4, 0
thumb_func_end ov49_022599F8
thumb_func_start ov49_02259A20
ov49_02259A20: ; 0x02259A20
strb r2, [r0, #1]
strb r2, [r0, #2]
mov r3, #0
strb r3, [r0, #3]
strh r3, [r0, #4]
strh r3, [r0, #6]
strb r3, [r0]
add r0, r1, #0
ldr r3, _02259A38 ; =ov45_02230700
add r1, r2, #0
bx r3
nop
_02259A38: .word ov45_02230700
thumb_func_end ov49_02259A20
thumb_func_start ov49_02259A3C
ov49_02259A3C: ; 0x02259A3C
mov r2, #1
strb r2, [r0]
ldrb r2, [r0, #1]
strb r2, [r0, #2]
ldrb r2, [r0, #1]
sub r1, r1, r2
strb r1, [r0, #3]
mov r1, #0
strh r1, [r0, #4]
mov r1, #0x3c
strh r1, [r0, #6]
bx lr
thumb_func_end ov49_02259A3C
thumb_func_start ov49_02259A54
ov49_02259A54: ; 0x02259A54
push {r3, r4, r5, lr}
add r5, r0, #0
ldrb r0, [r5]
add r4, r1, #0
cmp r0, #0
bne _02259A64
mov r0, #1
pop {r3, r4, r5, pc}
_02259A64:
mov r0, #4
ldrsh r1, [r5, r0]
add r1, r1, #1
strh r1, [r5, #4]
ldrsh r1, [r5, r0]
mov r0, #6
ldrsh r0, [r5, r0]
cmp r1, r0
blt _02259A7A
mov r0, #0
strb r0, [r5]
_02259A7A:
mov r0, #4
ldrsh r1, [r5, r0]
mov r0, #3
ldrsb r0, [r5, r0]
mul r0, r1
mov r1, #6
ldrsh r1, [r5, r1]
bl _s32_div_f
strb r0, [r5, #1]
mov r0, #2
ldrb r1, [r5, #1]
ldrsb r0, [r5, r0]
add r0, r1, r0
strb r0, [r5, #1]
ldrb r1, [r5, #1]
add r0, r4, #0
bl ov45_02230700
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_end ov49_02259A54
thumb_func_start ov49_02259AA4
ov49_02259AA4: ; 0x02259AA4
push {r3, r4, r5, lr}
sub sp, #8
add r4, r0, #0
bl OverlayManager_GetArgs
mov r2, #0x3a
add r5, r0, #0
mov r0, #3
mov r1, #0x77
lsl r2, r2, #0xc
bl CreateHeap
mov r2, #0x3d
mov r0, #3
mov r1, #0x78
lsl r2, r2, #0xc
bl CreateHeap
mov r1, #0xfe
add r0, r4, #0
lsl r1, r1, #2
mov r2, #0x77
bl OverlayManager_CreateAndGetData
mov r2, #0xfe
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
bl memset
add r0, r5, #0
add r0, #0xc
str r0, [r4, #0x38]
ldr r0, [r5, #0x1c]
str r0, [r4, #0x34]
bl ov45_0222A53C
strb r0, [r4, #2]
ldr r0, [r4, #0x34]
bl ov45_0222A53C
mov r1, #0
mvn r1, r1
cmp r0, r1
bne _02259B02
bl GF_AssertFail
_02259B02:
mov r0, #1
bl TextFlags_SetCanABSpeedUpPrint
mov r0, #0
bl sub_02002B50
mov r0, #0
bl sub_02002B8C
ldr r0, [r5]
bl Save_PlayerData_GetProfileAddr
mov r1, #0xfd
lsl r1, r1, #2
str r0, [r4, r1]
add r0, r4, #0
ldr r1, [r5]
add r0, #0x3c
mov r2, #0x77
bl ov49_0225A5EC
mov r0, #0x77
bl ov49_02258958
mov r1, #0xfa
lsl r1, r1, #2
str r0, [r4, r1]
add r1, #0xc
ldr r0, [r4, r1]
bl PlayerProfile_GetTrainerGender
add r1, r0, #0
mov r0, #0x78
mov r2, #0xfa
str r0, [sp]
lsl r2, r2, #2
ldr r2, [r4, r2]
mov r0, #0x18
mov r3, #0x77
bl ov49_02258AB4
mov r2, #0x3e
lsl r2, r2, #4
str r0, [r4, r2]
mov r0, #0x78
str r0, [sp]
add r2, #8
ldr r0, [r5, #4]
ldr r1, [r5, #8]
ldr r2, [r4, r2]
mov r3, #0x77
bl ov49_0225DF18
mov r1, #0xf9
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #0x77
bl ov49_0225CB78
mov r1, #0xfb
lsl r1, r1, #2
str r0, [r4, r1]
sub r1, #0xf4
add r0, r4, r1
add r1, r4, #0
ldr r2, [r5]
add r1, #0x3c
mov r3, #0x77
bl ov49_0225AAC8
mov r0, #0xc6
lsl r0, r0, #2
add r1, r4, #0
ldr r2, [r5]
add r0, r4, r0
add r1, #0x3c
mov r3, #0x77
bl ov49_0225ACA8
mov r0, #0xce
lsl r0, r0, #2
add r1, r4, #0
add r0, r4, r0
add r1, #0x3c
mov r2, #0x77
bl ov49_0225AD20
mov r0, #0x39
lsl r0, r0, #4
add r1, r4, #0
add r0, r4, r0
add r1, #0x3c
mov r2, #0x77
bl ov49_0225B214
mov r0, #0xf1
lsl r0, r0, #2
add r1, r4, #0
add r0, r4, r0
add r1, #0x3c
mov r2, #0x77
bl ov49_0225B0D4
mov r0, #0xb7
lsl r0, r0, #2
add r0, r4, r0
mov r1, #0x77
bl ov49_0225B308
mov r1, #0x3a
lsl r1, r1, #4
add r0, r4, r1
sub r1, #0xc4
add r1, r4, r1
mov r2, #0x77
bl ov49_0225B198
mov r0, #0x77
str r0, [sp]
mov r3, #0xfd
mov r0, #0x61
lsl r3, r3, #2
lsl r0, r0, #2
add r2, r4, #0
ldr r1, [r4, #0x38]
ldr r3, [r4, r3]
add r0, r4, r0
add r2, #0x3c
bl ov49_0225B450
ldr r0, [r4, #0x34]
bl ov45_0222A5C0
add r5, r0, #0
bl ov45_0222AADC
cmp r0, #1
bne _02259C2E
mov r0, #0x61
mov r2, #0xb7
lsl r0, r0, #2
add r1, r4, #0
lsl r2, r2, #2
add r0, r4, r0
add r1, #0x3c
add r2, r4, r2
mov r3, #0x77
str r5, [sp]
bl ov49_0225B9AC
_02259C2E:
add r0, r4, #0
mov r1, #0x77
bl ov49_0225EEAC
mov r1, #0x3f
lsl r1, r1, #4
str r0, [r4, r1]
add r0, r4, #0
bl ov49_0225F1A8
add r0, r4, #0
bl ov49_0225F1F0
mov r0, #0x77
str r0, [sp]
mov r0, #0x78
mov r3, #0xfa
str r0, [sp, #4]
lsl r3, r3, #2
add r2, r3, #4
ldr r1, [r4, r3]
sub r3, #8
ldr r0, [r4, #0x34]
ldr r2, [r4, r2]
ldr r3, [r4, r3]
bl ov49_022652E8
mov r1, #0xf5
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #0x77
add r1, r4, #0
bl ov49_02268764
mov r1, #0xf7
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, _02259C8C ; =ov49_0225A5C8
add r1, r4, #0
bl Main_SetVBlankIntrCB
bl HBlankInterruptDisable
mov r0, #1
add sp, #8
pop {r3, r4, r5, pc}
nop
_02259C8C: .word ov49_0225A5C8
thumb_func_end ov49_02259AA4
thumb_func_start ov49_02259C90
ov49_02259C90: ; 0x02259C90
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r6, r0, #0
add r5, r1, #0
bl OverlayManager_GetData
add r4, r0, #0
add r0, r6, #0
bl OverlayManager_GetArgs
ldr r0, [r5]
cmp r0, #8
bhi _02259D58
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02259CB6: ; jump table
.short _02259CC8 - _02259CB6 - 2 ; case 0
.short _02259CEA - _02259CB6 - 2 ; case 1
.short _02259CFE - _02259CB6 - 2 ; case 2
.short _02259D7A - _02259CB6 - 2 ; case 3
.short _02259DF8 - _02259CB6 - 2 ; case 4
.short _02259E08 - _02259CB6 - 2 ; case 5
.short _02259E58 - _02259CB6 - 2 ; case 6
.short _02259E76 - _02259CB6 - 2 ; case 7
.short _02259ED0 - _02259CB6 - 2 ; case 8
_02259CC8:
mov r0, #6
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r0, #0x77
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl BeginNormalPaletteFade
mov r0, #1
strb r0, [r4, #3]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _02259EE2
_02259CEA:
bl IsPaletteFadeFinished
cmp r0, #1
bne _02259D58
mov r0, #0
strb r0, [r4, #3]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _02259EE2
_02259CFE:
ldrb r0, [r4, #4]
lsl r0, r0, #0x1c
lsr r0, r0, #0x1c
cmp r0, #1
bne _02259D26
bl ov45_0222D844
cmp r0, #1
beq _02259D1A
ldr r0, [r4, #0x34]
bl ov45_0222A1FC
cmp r0, #0
beq _02259D26
_02259D1A:
ldrb r1, [r4, #4]
mov r0, #0xf0
bic r1, r0
mov r0, #0x10
orr r0, r1
strb r0, [r4, #4]
_02259D26:
ldrb r0, [r4, #7]
cmp r0, #0
bne _02259D42
ldr r0, [r4, #0x34]
bl ov45_0222A33C
cmp r0, #1
bne _02259D42
mov r0, #1
strb r0, [r4, #6]
add r0, r4, #0
mov r1, #8
bl ov49_0225A038
_02259D42:
ldrb r0, [r4]
cmp r0, #1
beq _02259D5A
ldrb r0, [r4, #4]
lsl r0, r0, #0x18
lsr r0, r0, #0x1c
cmp r0, #1
beq _02259D5A
ldrb r0, [r4, #6]
cmp r0, #1
beq _02259D5A
_02259D58:
b _02259EE2
_02259D5A:
ldrb r0, [r4, #4]
lsl r0, r0, #0x18
lsr r0, r0, #0x1c
beq _02259D68
mov r0, #3
str r0, [r5]
b _02259EE2
_02259D68:
ldrb r0, [r4, #6]
cmp r0, #1
bne _02259D74
mov r0, #5
str r0, [r5]
b _02259EE2
_02259D74:
mov r0, #7
str r0, [r5]
b _02259EE2
_02259D7A:
mov r0, #0xbe
lsl r0, r0, #2
add r0, r4, r0
bl ov49_0225AC74
mov r0, #0xce
lsl r0, r0, #2
mov r1, #0
add r0, r4, r0
add r2, r1, #0
bl ov49_0225B014
mov r0, #0xf1
lsl r0, r0, #2
add r0, r4, r0
bl ov49_0225B124
mov r0, #0x3a
lsl r0, r0, #4
add r0, r4, r0
bl ov49_0225B200
bl sub_020393C8
cmp r0, #0
beq _02259DBE
mov r1, #0x39
lsl r1, r1, #4
add r0, r4, r1
sub r1, #0xb4
add r1, r4, r1
bl ov49_0225B284
b _02259DF2
_02259DBE:
bl sub_020397FC
cmp r0, #0
beq _02259DDC
bl ov45_0222E7CC
mov r1, #0x39
lsl r1, r1, #4
add r2, r0, #0
add r0, r4, r1
sub r1, #0xb4
add r1, r4, r1
bl ov49_0225B2C0
b _02259DF2
_02259DDC:
ldr r0, [r4, #0x34]
bl ov45_0222A1FC
mov r1, #0x39
lsl r1, r1, #4
add r2, r0, #0
add r0, r4, r1
sub r1, #0xb4
add r1, r4, r1
bl ov49_0225B2F0
_02259DF2:
mov r0, #4
str r0, [r5]
b _02259EE2
_02259DF8:
ldr r0, _02259EF4 ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #1
tst r0, r1
beq _02259EE2
mov r0, #7
str r0, [r5]
b _02259EE2
_02259E08:
mov r0, #0xbe
lsl r0, r0, #2
add r0, r4, r0
bl ov49_0225AC74
mov r0, #0xce
lsl r0, r0, #2
mov r1, #0
add r0, r4, r0
add r2, r1, #0
bl ov49_0225B014
mov r0, #0xf1
lsl r0, r0, #2
add r0, r4, r0
bl ov49_0225B124
mov r0, #0x3a
lsl r0, r0, #4
add r0, r4, r0
bl ov49_0225B200
mov r0, #0xb7
lsl r0, r0, #2
add r0, r4, r0
mov r1, #1
mov r2, #0x46
bl ov49_0225B388
add r1, r0, #0
mov r0, #0xbe
lsl r0, r0, #2
add r0, r4, r0
bl ov49_0225AB44
mov r0, #6
str r0, [r5]
mov r0, #0x3c
str r0, [r4, #8]
b _02259EE2
_02259E58:
mov r0, #0xbe
lsl r0, r0, #2
add r0, r4, r0
bl ov49_0225AC5C
cmp r0, #0
beq _02259EE2
ldr r0, [r4, #8]
sub r0, r0, #1
str r0, [r4, #8]
cmp r0, #0
bgt _02259EE2
mov r0, #7
str r0, [r5]
b _02259EE2
_02259E76:
mov r0, #0x61
lsl r0, r0, #2
add r0, r4, r0
bl ov49_0225B898
cmp r0, #5
bne _02259EA8
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x77
str r0, [sp, #8]
mov r0, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl BeginNormalPaletteFade
mov r0, #1
strb r0, [r4, #3]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _02259EE2
_02259EA8:
cmp r0, #0
bne _02259EE2
mov r0, #6
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x77
str r0, [sp, #8]
mov r0, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl BeginNormalPaletteFade
mov r0, #1
strb r0, [r4, #3]
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _02259EE2
_02259ED0:
bl IsPaletteFadeFinished
cmp r0, #1
bne _02259EE2
mov r0, #0
strb r0, [r4, #3]
add sp, #0xc
mov r0, #1
pop {r3, r4, r5, r6, pc}
_02259EE2:
add r0, r4, #0
bl ov49_0225A98C
add r0, r4, #0
bl ov49_0225AA2C
mov r0, #0
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.balign 4, 0
_02259EF4: .word gSystem
thumb_func_end ov49_02259C90
thumb_func_start ov49_02259EF8
ov49_02259EF8: ; 0x02259EF8
push {r3, r4, r5, lr}
add r5, r0, #0
bl OverlayManager_GetData
add r4, r0, #0
add r0, r5, #0
bl OverlayManager_GetArgs
ldrb r1, [r4, #1]
str r1, [r0, #0x18]
mov r0, #0
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl HBlankInterruptDisable
mov r0, #0xf7
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ov49_02268850
mov r0, #0xf5
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ov49_0226535C
mov r0, #0x3f
lsl r0, r0, #4
ldr r0, [r4, r0]
bl ov49_0225EEF8
mov r0, #0x61
mov r1, #0xc6
lsl r0, r0, #2
lsl r1, r1, #2
add r2, r4, #0
add r0, r4, r0
add r1, r4, r1
add r2, #0x3c
bl ov49_0225B4E4
mov r0, #0xb7
lsl r0, r0, #2
add r0, r4, r0
bl ov49_0225B35C
mov r0, #0xbe
lsl r0, r0, #2
add r0, r4, r0
bl ov49_0225AB14
mov r0, #0xc6
lsl r0, r0, #2
add r0, r4, r0
bl ov49_0225ACBC
mov r0, #0xce
lsl r0, r0, #2
add r1, r4, #0
add r0, r4, r0
add r1, #0x3c
bl ov49_0225AE4C
mov r0, #0x39
lsl r0, r0, #4
add r0, r4, r0
bl ov49_0225B244
mov r0, #0x3a
lsl r0, r0, #4
add r0, r4, r0
bl ov49_0225B200
mov r0, #0xf1
lsl r0, r0, #2
add r0, r4, r0
bl ov49_0225B0D8
mov r0, #0xfb
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ov49_0225CBDC
mov r0, #0xf9
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ov49_0225E2B4
mov r0, #0x3e
lsl r0, r0, #4
ldr r0, [r4, r0]
bl ov49_02258B20
mov r0, #0xfa
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ov49_02258994
add r0, r4, #0
add r0, #0x3c
bl ov49_0225A7D0
add r0, r4, #0
bl FreeToHeap
mov r0, #0x77
bl DestroyHeap
mov r0, #0x78
bl DestroyHeap
mov r0, #0
bl sub_0200616C
mov r0, #0
bl sub_02006300
mov r0, #1
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_02259EF8
thumb_func_start ov49_02259FE8
ov49_02259FE8: ; 0x02259FE8
ldr r0, [r0, #0x34]
bx lr
thumb_func_end ov49_02259FE8
thumb_func_start ov49_02259FEC
ov49_02259FEC: ; 0x02259FEC
ldr r0, [r0, #0x38]
bx lr
thumb_func_end ov49_02259FEC
thumb_func_start ov49_02259FF0
ov49_02259FF0: ; 0x02259FF0
mov r1, #0x3e
lsl r1, r1, #4
ldr r0, [r0, r1]
bx lr
thumb_func_end ov49_02259FF0
thumb_func_start ov49_02259FF8
ov49_02259FF8: ; 0x02259FF8
mov r1, #0xf9
lsl r1, r1, #2
ldr r0, [r0, r1]
bx lr
thumb_func_end ov49_02259FF8
thumb_func_start ov49_0225A000
ov49_0225A000: ; 0x0225A000
mov r1, #0xfa
lsl r1, r1, #2
ldr r0, [r0, r1]
bx lr
thumb_func_end ov49_0225A000
thumb_func_start ov49_0225A008
ov49_0225A008: ; 0x0225A008
mov r1, #0xfb
lsl r1, r1, #2
ldr r0, [r0, r1]
bx lr
thumb_func_end ov49_0225A008
thumb_func_start ov49_0225A010
ov49_0225A010: ; 0x0225A010
mov r1, #0x3f
lsl r1, r1, #4
ldr r0, [r0, r1]
bx lr
thumb_func_end ov49_0225A010
thumb_func_start ov49_0225A018
ov49_0225A018: ; 0x0225A018
ldrb r3, [r0, #4]
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, #4]
bx lr
thumb_func_end ov49_0225A018
thumb_func_start ov49_0225A02C
ov49_0225A02C: ; 0x0225A02C
ldrb r0, [r0, #2]
bx lr
thumb_func_end ov49_0225A02C
thumb_func_start ov49_0225A030
ov49_0225A030: ; 0x0225A030
ldrb r0, [r0, #3]
bx lr
thumb_func_end ov49_0225A030
thumb_func_start ov49_0225A034
ov49_0225A034: ; 0x0225A034
strb r1, [r0]
bx lr
thumb_func_end ov49_0225A034
thumb_func_start ov49_0225A038
ov49_0225A038: ; 0x0225A038
strb r1, [r0, #1]
bx lr
thumb_func_end ov49_0225A038
thumb_func_start ov49_0225A03C
ov49_0225A03C: ; 0x0225A03C
strb r1, [r0, #5]
bx lr
thumb_func_end ov49_0225A03C
thumb_func_start ov49_0225A040
ov49_0225A040: ; 0x0225A040
ldrb r0, [r0, #5]
bx lr
thumb_func_end ov49_0225A040
thumb_func_start ov49_0225A044
ov49_0225A044: ; 0x0225A044
mov r1, #1
strb r1, [r0, #7]
bx lr
.balign 4, 0
thumb_func_end ov49_0225A044
thumb_func_start ov49_0225A04C
ov49_0225A04C: ; 0x0225A04C
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r6, r2, #0
cmp r4, #0x14
blo _0225A05C
bl GF_AssertFail
_0225A05C:
add r0, r5, r4
strb r6, [r0, #0xc]
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225A04C
thumb_func_start ov49_0225A064
ov49_0225A064: ; 0x0225A064
add r0, r0, r1
ldrb r0, [r0, #0xc]
bx lr
.balign 4, 0
thumb_func_end ov49_0225A064
thumb_func_start ov49_0225A06C
ov49_0225A06C: ; 0x0225A06C
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r6, r2, #0
cmp r4, #0x14
blo _0225A07C
bl GF_AssertFail
_0225A07C:
add r0, r5, r4
add r0, #0x20
strb r6, [r0]
pop {r4, r5, r6, pc}
thumb_func_end ov49_0225A06C
thumb_func_start ov49_0225A084
ov49_0225A084: ; 0x0225A084
add r0, r0, r1
add r0, #0x20
ldrb r0, [r0]
bx lr
thumb_func_end ov49_0225A084
thumb_func_start ov49_0225A08C
ov49_0225A08C: ; 0x0225A08C
mov r2, #0xbe
lsl r2, r2, #2
ldr r3, _0225A098 ; =ov49_0225AB44
add r0, r0, r2
bx r3
nop
_0225A098: .word ov49_0225AB44
thumb_func_end ov49_0225A08C
thumb_func_start ov49_0225A09C
ov49_0225A09C: ; 0x0225A09C
mov r2, #0xbe
lsl r2, r2, #2
ldr r3, _0225A0A8 ; =ov49_0225ABA4
add r0, r0, r2
bx r3
nop
_0225A0A8: .word ov49_0225ABA4
thumb_func_end ov49_0225A09C
thumb_func_start ov49_0225A0AC
ov49_0225A0AC: ; 0x0225A0AC
mov r1, #0xbe
lsl r1, r1, #2
ldr r3, _0225A0B8 ; =ov49_0225AC5C
add r0, r0, r1
bx r3
nop
_0225A0B8: .word ov49_0225AC5C
thumb_func_end ov49_0225A0AC
thumb_func_start ov49_0225A0BC
ov49_0225A0BC: ; 0x0225A0BC
mov r1, #0xbe
lsl r1, r1, #2
ldr r3, _0225A0C8 ; =ov49_0225AC08
add r0, r0, r1
bx r3
nop
_0225A0C8: .word ov49_0225AC08
thumb_func_end ov49_0225A0BC
thumb_func_start ov49_0225A0CC
ov49_0225A0CC: ; 0x0225A0CC
mov r1, #0xbe
lsl r1, r1, #2
ldr r3, _0225A0D8 ; =ov49_0225AC24
add r0, r0, r1
bx r3
nop
_0225A0D8: .word ov49_0225AC24
thumb_func_end ov49_0225A0CC
thumb_func_start ov49_0225A0DC
ov49_0225A0DC: ; 0x0225A0DC
mov r1, #0xbe
lsl r1, r1, #2
ldr r3, _0225A0E8 ; =ov49_0225AC4C
add r0, r0, r1
bx r3
nop
_0225A0E8: .word ov49_0225AC4C
thumb_func_end ov49_0225A0DC
thumb_func_start ov49_0225A0EC
ov49_0225A0EC: ; 0x0225A0EC
mov r1, #0xbe
lsl r1, r1, #2
ldr r3, _0225A0F8 ; =ov49_0225AC74
add r0, r0, r1
bx r3
nop
_0225A0F8: .word ov49_0225AC74
thumb_func_end ov49_0225A0EC
thumb_func_start ov49_0225A0FC
ov49_0225A0FC: ; 0x0225A0FC
mov r2, #0xc6
lsl r2, r2, #2
ldr r3, _0225A108 ; =ov49_0225ACC4
add r0, r0, r2
bx r3
nop
_0225A108: .word ov49_0225ACC4
thumb_func_end ov49_0225A0FC
thumb_func_start ov49_0225A10C
ov49_0225A10C: ; 0x0225A10C
push {r3, lr}
mov r2, #0xce
lsl r2, r2, #2
add r0, r0, r2
mov r2, #0x78
mov r3, #0
bl ov49_0225AEA8
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_0225A10C
thumb_func_start ov49_0225A120
ov49_0225A120: ; 0x0225A120
push {r3, lr}
add r3, r2, #0
mov r2, #0xce
lsl r2, r2, #2
add r0, r0, r2
mov r2, #0x78
bl ov49_0225AEA8
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_0225A120
thumb_func_start ov49_0225A134
ov49_0225A134: ; 0x0225A134
mov r1, #0xce
lsl r1, r1, #2
ldr r3, _0225A140 ; =ov49_0225AEE0
add r0, r0, r1
bx r3
nop
_0225A140: .word ov49_0225AEE0
thumb_func_end ov49_0225A134
thumb_func_start ov49_0225A144
ov49_0225A144: ; 0x0225A144
mov r3, #0xce
lsl r3, r3, #2
add r0, r0, r3
ldr r3, _0225A150 ; =ov49_0225AEF8
bx r3
nop
_0225A150: .word ov49_0225AEF8
thumb_func_end ov49_0225A144
thumb_func_start ov49_0225A154
ov49_0225A154: ; 0x0225A154
mov r1, #0xce
lsl r1, r1, #2
ldr r3, _0225A160 ; =ov49_0225AF04
add r0, r0, r1
bx r3
nop
_0225A160: .word ov49_0225AF04
thumb_func_end ov49_0225A154
thumb_func_start ov49_0225A164
ov49_0225A164: ; 0x0225A164
mov r2, #0xce
lsl r2, r2, #2
ldr r3, _0225A170 ; =ov49_0225AF08
add r0, r0, r2
bx r3
nop
_0225A170: .word ov49_0225AF08
thumb_func_end ov49_0225A164
thumb_func_start ov49_0225A174
ov49_0225A174: ; 0x0225A174
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
str r3, [sp]
mov r0, #0x77
str r0, [sp, #4]
mov r0, #0x10
str r0, [sp, #8]
mov r0, #3
str r0, [sp, #0xc]
mov r0, #0xf
str r0, [sp, #0x10]
mov r0, #0xce
lsl r0, r0, #2
add r4, r2, #0
add r0, r5, r0
add r5, #0x3c
add r2, r5, #0
add r3, r4, #0
bl ov49_0225AF30
add sp, #0x14
pop {r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_0225A174
thumb_func_start ov49_0225A1A4
ov49_0225A1A4: ; 0x0225A1A4
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
str r3, [sp]
mov r0, #0x77
str r0, [sp, #4]
add r4, r2, #0
add r0, sp, #0x10
ldrb r2, [r0, #0x10]
add r3, r4, #0
str r2, [sp, #8]
ldrb r2, [r0, #0x14]
str r2, [sp, #0xc]
ldrb r0, [r0, #0x18]
str r0, [sp, #0x10]
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
add r5, #0x3c
add r2, r5, #0
bl ov49_0225AF30
add sp, #0x14
pop {r4, r5, pc}
thumb_func_end ov49_0225A1A4
thumb_func_start ov49_0225A1D4
ov49_0225A1D4: ; 0x0225A1D4
mov r1, #0xce
lsl r1, r1, #2
ldr r3, _0225A1E0 ; =ov49_0225AFD8
add r0, r0, r1
bx r3
nop
_0225A1E0: .word ov49_0225AFD8
thumb_func_end ov49_0225A1D4
thumb_func_start ov49_0225A1E4
ov49_0225A1E4: ; 0x0225A1E4
mov r3, #0xce
lsl r3, r3, #2
add r0, r0, r3
ldr r3, _0225A1F0 ; =ov49_0225B014
bx r3
nop
_0225A1F0: .word ov49_0225B014
thumb_func_end ov49_0225A1E4
thumb_func_start ov49_0225A1F4
ov49_0225A1F4: ; 0x0225A1F4
mov r2, #0xce
lsl r2, r2, #2
ldr r3, _0225A200 ; =ov49_0225B06C
add r0, r0, r2
bx r3
nop
_0225A200: .word ov49_0225B06C
thumb_func_end ov49_0225A1F4
thumb_func_start ov49_0225A204
ov49_0225A204: ; 0x0225A204
push {r4, r5, lr}
sub sp, #0xc
str r2, [sp]
add r5, r0, #0
str r3, [sp, #4]
add r0, sp, #8
ldrb r0, [r0, #0x10]
add r4, r1, #0
mov r2, #0x77
str r0, [sp, #8]
mov r0, #0xf1
lsl r0, r0, #2
add r0, r5, r0
add r5, #0x3c
add r1, r5, #0
add r3, r4, #0
bl ov49_0225B0E0
add sp, #0xc
pop {r4, r5, pc}
thumb_func_end ov49_0225A204
thumb_func_start ov49_0225A22C
ov49_0225A22C: ; 0x0225A22C
mov r1, #0xf1
lsl r1, r1, #2
ldr r3, _0225A238 ; =ov49_0225B124
add r0, r0, r1
bx r3
nop
_0225A238: .word ov49_0225B124
thumb_func_end ov49_0225A22C
thumb_func_start ov49_0225A23C
ov49_0225A23C: ; 0x0225A23C
push {r4, lr}
mov r4, #0xf1
lsl r4, r4, #2
add r0, r0, r4
bl ov49_0225B148
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225A23C
thumb_func_start ov49_0225A24C
ov49_0225A24C: ; 0x0225A24C
push {r3, r4, lr}
sub sp, #4
add r4, sp, #0
ldrh r4, [r4, #0x10]
str r4, [sp]
mov r4, #0xf1
lsl r4, r4, #2
add r0, r0, r4
bl ov49_0225B178
add sp, #4
pop {r3, r4, pc}
thumb_func_end ov49_0225A24C
thumb_func_start ov49_0225A264
ov49_0225A264: ; 0x0225A264
push {lr}
sub sp, #0x14
mov r3, #0
add r2, r0, #0
str r3, [sp]
mov r0, #0x77
str r0, [sp, #4]
mov r0, #0x19
str r0, [sp, #8]
mov r0, #0xd
mov r1, #0xce
str r0, [sp, #0xc]
mov r0, #6
lsl r1, r1, #2
str r0, [sp, #0x10]
add r0, r2, r1
add r1, #0x6c
add r1, r2, r1
add r2, #0x3c
bl ov49_0225AF30
add sp, #0x14
pop {pc}
.balign 4, 0
thumb_func_end ov49_0225A264
thumb_func_start ov49_0225A294
ov49_0225A294: ; 0x0225A294
push {lr}
sub sp, #0x14
add r2, r0, #0
mov r0, #1
str r0, [sp]
mov r0, #0x77
str r0, [sp, #4]
mov r0, #0x19
str r0, [sp, #8]
mov r0, #0xd
mov r1, #0xce
str r0, [sp, #0xc]
mov r0, #6
lsl r1, r1, #2
str r0, [sp, #0x10]
add r0, r2, r1
add r1, #0x6c
add r1, r2, r1
add r2, #0x3c
mov r3, #0
bl ov49_0225AF30
add sp, #0x14
pop {pc}
thumb_func_end ov49_0225A294
thumb_func_start ov49_0225A2C4
ov49_0225A2C4: ; 0x0225A2C4
push {r3, lr}
mov r1, #0xce
lsl r1, r1, #2
add r0, r0, r1
bl ov49_0225AFD8
cmp r0, #0
beq _0225A2EA
cmp r0, #1
beq _0225A2E6
mov r1, #1
mvn r1, r1
cmp r0, r1
bne _0225A2EE
ldr r0, _0225A2F4 ; =0x000005DC
bl PlaySE
_0225A2E6:
mov r0, #1
pop {r3, pc}
_0225A2EA:
mov r0, #0
pop {r3, pc}
_0225A2EE:
mov r0, #2
pop {r3, pc}
nop
_0225A2F4: .word 0x000005DC
thumb_func_end ov49_0225A2C4
thumb_func_start ov49_0225A2F8
ov49_0225A2F8: ; 0x0225A2F8
mov r1, #0xce
lsl r1, r1, #2
add r0, r0, r1
mov r1, #0
ldr r3, _0225A308 ; =ov49_0225B014
add r2, r1, #0
bx r3
nop
_0225A308: .word ov49_0225B014
thumb_func_end ov49_0225A2F8
thumb_func_start ov49_0225A30C
ov49_0225A30C: ; 0x0225A30C
mov r3, #0xb7
lsl r3, r3, #2
add r0, r0, r3
ldr r3, _0225A318 ; =ov49_0225B388
bx r3
nop
_0225A318: .word ov49_0225B388
thumb_func_end ov49_0225A30C
thumb_func_start ov49_0225A31C
ov49_0225A31C: ; 0x0225A31C
push {r3, r4, lr}
sub sp, #4
ldr r4, [sp, #0x10]
str r4, [sp]
mov r4, #0xb7
lsl r4, r4, #2
add r0, r0, r4
bl ov49_0225B3A8
add sp, #4
pop {r3, r4, pc}
.balign 4, 0
thumb_func_end ov49_0225A31C
thumb_func_start ov49_0225A334
ov49_0225A334: ; 0x0225A334
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r0, #0x77
add r4, r1, #0
add r7, r2, #0
bl PlayerProfile_New
add r6, r0, #0
ldr r0, [r5, #0x34]
bl ov45_0222A53C
cmp r4, r0
ldr r0, [r5, #0x34]
bne _0225A356
bl ov45_0222A5C0
b _0225A35C
_0225A356:
add r1, r4, #0
bl ov45_0222A578
_0225A35C:
add r1, r6, #0
mov r2, #0x77
bl ov45_0222A844
mov r0, #0xb7
lsl r0, r0, #2
add r0, r5, r0
add r1, r6, #0
add r2, r7, #0
bl ov49_0225B3C8
add r0, r6, #0
bl FreeToHeap
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225A334
thumb_func_start ov49_0225A37C
ov49_0225A37C: ; 0x0225A37C
mov r3, #0xb7
lsl r3, r3, #2
add r0, r0, r3
ldr r3, _0225A388 ; =ov49_0225B3D8
bx r3
nop
_0225A388: .word ov49_0225B3D8
thumb_func_end ov49_0225A37C
thumb_func_start ov49_0225A38C
ov49_0225A38C: ; 0x0225A38C
mov r3, #0xb7
lsl r3, r3, #2
add r0, r0, r3
ldr r3, _0225A398 ; =ov49_0225B3E8
bx r3
nop
_0225A398: .word ov49_0225B3E8
thumb_func_end ov49_0225A38C
thumb_func_start ov49_0225A39C
ov49_0225A39C: ; 0x0225A39C
mov r3, #0xb7
lsl r3, r3, #2
add r0, r0, r3
ldr r3, _0225A3A8 ; =ov49_0225B3F8
bx r3
nop
_0225A3A8: .word ov49_0225B3F8
thumb_func_end ov49_0225A39C
thumb_func_start ov49_0225A3AC
ov49_0225A3AC: ; 0x0225A3AC
mov r3, #0xb7
lsl r3, r3, #2
ldr r0, [r0, r3]
ldr r3, _0225A3B8 ; =BufferJPGreeting
bx r3
nop
_0225A3B8: .word BufferJPGreeting
thumb_func_end ov49_0225A3AC
thumb_func_start ov49_0225A3BC
ov49_0225A3BC: ; 0x0225A3BC
mov r3, #0xb7
lsl r3, r3, #2
ldr r0, [r0, r3]
ldr r3, _0225A3C8 ; =BufferENGreeting
bx r3
nop
_0225A3C8: .word BufferENGreeting
thumb_func_end ov49_0225A3BC
thumb_func_start ov49_0225A3CC
ov49_0225A3CC: ; 0x0225A3CC
mov r3, #0xb7
lsl r3, r3, #2
ldr r0, [r0, r3]
ldr r3, _0225A3D8 ; =BufferFRGreeting
bx r3
nop
_0225A3D8: .word BufferFRGreeting
thumb_func_end ov49_0225A3CC
thumb_func_start ov49_0225A3DC
ov49_0225A3DC: ; 0x0225A3DC
mov r3, #0xb7
lsl r3, r3, #2
ldr r0, [r0, r3]
ldr r3, _0225A3E8 ; =BufferITGreeting
bx r3
nop
_0225A3E8: .word BufferITGreeting
thumb_func_end ov49_0225A3DC
thumb_func_start ov49_0225A3EC
ov49_0225A3EC: ; 0x0225A3EC
mov r3, #0xb7
lsl r3, r3, #2
ldr r0, [r0, r3]
ldr r3, _0225A3F8 ; =BufferDEGreeting
bx r3
nop
_0225A3F8: .word BufferDEGreeting
thumb_func_end ov49_0225A3EC
thumb_func_start ov49_0225A3FC
ov49_0225A3FC: ; 0x0225A3FC
mov r3, #0xb7
lsl r3, r3, #2
ldr r0, [r0, r3]
ldr r3, _0225A408 ; =BufferSPGreeting
bx r3
nop
_0225A408: .word BufferSPGreeting
thumb_func_end ov49_0225A3FC
thumb_func_start ov49_0225A40C
ov49_0225A40C: ; 0x0225A40C
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r2, #0
add r4, r1, #0
bl ov45_0222D7C0
add r2, r0, #0
mov r0, #0xb7
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r4, #0
bl BufferTypeName
pop {r3, r4, r5, pc}
thumb_func_end ov49_0225A40C
thumb_func_start ov49_0225A428
ov49_0225A428: ; 0x0225A428
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #0x61
lsl r0, r0, #2
add r0, r5, r0
add r4, r1, #0
add r6, r2, #0
bl ov49_0225B8F8
cmp r4, r0
bne _0225A468
mov r0, #0x61
lsl r0, r0, #2
add r0, r5, r0
bl ov49_0225B8FC
cmp r0, #1
bne _0225A468
mov r0, #0x61
lsl r0, r0, #2
add r0, r5, r0
bl ov49_0225B934
cmp r0, #0
bne _0225A468
mov r0, #0x61
lsl r0, r0, #2
add r0, r5, r0
bl ov49_0225B928
cmp r6, r0
beq _0225A476
_0225A468:
mov r0, #0x61
lsl r0, r0, #2
add r0, r5, r0
add r1, r4, #0
add r2, r6, #0
bl ov49_0225B89C
_0225A476:
pop {r4, r5, r6, pc}
thumb_func_end ov49_0225A428
thumb_func_start ov49_0225A478
ov49_0225A478: ; 0x0225A478
push {r3, lr}
add r3, r0, #0
mov r0, #0x61
lsl r0, r0, #2
add r0, r3, r0
add r3, #0x3c
add r2, r1, #0
add r1, r3, #0
mov r3, #0x77
bl ov49_0225B8A8
pop {r3, pc}
thumb_func_end ov49_0225A478
thumb_func_start ov49_0225A490
ov49_0225A490: ; 0x0225A490
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
mov r0, #0x61
lsl r0, r0, #2
add r0, r4, r0
bl ov49_0225B8FC
cmp r0, #0
beq _0225A4CC
mov r0, #0x61
lsl r0, r0, #2
add r0, r4, r0
bl ov49_0225B8F8
add r1, r0, #0
ldr r0, [r4, #0x34]
bl ov45_0222A578
mov r1, #0x61
lsl r1, r1, #2
str r0, [sp]
add r0, r4, r1
add r1, #8
add r1, r4, r1
add r4, #0x3c
add r2, r4, #0
mov r3, #0x77
bl ov49_0225BEA0
_0225A4CC:
add sp, #4
pop {r3, r4, pc}
thumb_func_end ov49_0225A490
thumb_func_start ov49_0225A4D0
ov49_0225A4D0: ; 0x0225A4D0
mov r1, #0x61
lsl r1, r1, #2
ldr r3, _0225A4DC ; =ov49_0225B8E0
add r0, r0, r1
bx r3
nop
_0225A4DC: .word ov49_0225B8E0
thumb_func_end ov49_0225A4D0
thumb_func_start ov49_0225A4E0
ov49_0225A4E0: ; 0x0225A4E0
mov r1, #0x61
lsl r1, r1, #2
ldr r3, _0225A4EC ; =ov49_0225B8F8
add r0, r0, r1
bx r3
nop
_0225A4EC: .word ov49_0225B8F8
thumb_func_end ov49_0225A4E0
thumb_func_start ov49_0225A4F0
ov49_0225A4F0: ; 0x0225A4F0
mov r1, #0x61
lsl r1, r1, #2
ldr r3, _0225A4FC ; =ov49_0225B8FC
add r0, r0, r1
bx r3
nop
_0225A4FC: .word ov49_0225B8FC
thumb_func_end ov49_0225A4F0
thumb_func_start ov49_0225A500
ov49_0225A500: ; 0x0225A500
mov r1, #0x61
lsl r1, r1, #2
ldr r3, _0225A50C ; =ov49_0225B914
add r0, r0, r1
bx r3
nop
_0225A50C: .word ov49_0225B914
thumb_func_end ov49_0225A500
thumb_func_start ov49_0225A510
ov49_0225A510: ; 0x0225A510
mov r1, #0x61
lsl r1, r1, #2
ldr r3, _0225A51C ; =ov49_0225B8EC
add r0, r0, r1
bx r3
nop
_0225A51C: .word ov49_0225B8EC
thumb_func_end ov49_0225A510
thumb_func_start ov49_0225A520
ov49_0225A520: ; 0x0225A520
mov r2, #0xf7
lsl r2, r2, #2
ldr r0, [r0, r2]
ldr r3, _0225A52C ; =ov49_02268968
mov r2, #1
bx r3
.balign 4, 0
_0225A52C: .word ov49_02268968
thumb_func_end ov49_0225A520
thumb_func_start ov49_0225A530
ov49_0225A530: ; 0x0225A530
ldr r1, _0225A538 ; =0x0000018A
mov r2, #1
strh r2, [r0, r1]
bx lr
.balign 4, 0
_0225A538: .word 0x0000018A
thumb_func_end ov49_0225A530
thumb_func_start ov49_0225A53C
ov49_0225A53C: ; 0x0225A53C
mov r2, #0x61
lsl r2, r2, #2
ldr r3, _0225A548 ; =ov49_0225BA34
add r0, r0, r2
bx r3
nop
_0225A548: .word ov49_0225BA34
thumb_func_end ov49_0225A53C
thumb_func_start ov49_0225A54C
ov49_0225A54C: ; 0x0225A54C
mov r1, #0xa6
lsl r1, r1, #2
ldr r3, _0225A558 ; =ov49_0225CB68
add r0, r0, r1
bx r3
nop
_0225A558: .word ov49_0225CB68
thumb_func_end ov49_0225A54C
thumb_func_start ov49_0225A55C
ov49_0225A55C: ; 0x0225A55C
mov r1, #0xf6
lsl r1, r1, #2
ldr r3, [r0, r1]
mov r2, #0
str r2, [r0, r1]
add r0, r3, #0
bx lr
.balign 4, 0
thumb_func_end ov49_0225A55C
thumb_func_start ov49_0225A56C
ov49_0225A56C: ; 0x0225A56C
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
cmp r4, #0x14
blo _0225A57A
bl GF_AssertFail
_0225A57A:
ldr r0, [r5, #0x34]
add r1, r4, #0
bl ov45_0222A578
bl ov45_0222AAC8
add r6, r0, #0
mov r0, #0xf5
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r4, #0
add r2, r6, #0
bl ov49_022653C0
ldr r0, [r5, #0x34]
bl ov45_0222A53C
cmp r4, r0
bne _0225A5A8
ldr r0, [r5, #0x34]
add r1, r6, #0
bl ov45_0222AD70
_0225A5A8:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225A56C
thumb_func_start ov49_0225A5AC
ov49_0225A5AC: ; 0x0225A5AC
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
cmp r4, #0x14
blo _0225A5BA
bl GF_AssertFail
_0225A5BA:
mov r0, #0xf5
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r4, #0
bl ov49_022653F0
pop {r3, r4, r5, pc}
thumb_func_end ov49_0225A5AC
thumb_func_start ov49_0225A5C8
ov49_0225A5C8: ; 0x0225A5C8
push {r4, lr}
add r4, r0, #0
mov r0, #0xf9
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ov49_0225E3AC
mov r0, #0x3e
lsl r0, r0, #4
ldr r0, [r4, r0]
bl ov49_02258BE0
add r4, #0x3c
add r0, r4, #0
bl ov49_0225A840
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225A5C8
thumb_func_start ov49_0225A5EC
ov49_0225A5EC: ; 0x0225A5EC
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
str r1, [sp, #0x14]
ldr r0, _0225A798 ; =0x04000050
mov r1, #0
strh r1, [r0]
ldr r0, _0225A79C ; =0x04001050
add r6, r2, #0
strh r1, [r0]
mov r0, #0x20
add r1, r6, #0
bl GF_CreateVramTransferManager
ldr r0, _0225A7A0 ; =ov49_022697CC
bl GX_SetBanks
ldr r0, _0225A7A4 ; =gSystem + 0x60
mov r1, #0
strb r1, [r0, #9]
bl GX_SwapDisplay
mov r0, #0
add r1, r0, #0
bl BG_SetMaskColor
ldr r0, _0225A7A8 ; =ov49_02269724
bl SetBothScreensModesAndDisable
add r0, r6, #0
bl BgConfig_Alloc
str r0, [r5]
mov r0, #0
ldr r7, _0225A7AC ; =ov49_0226981C
ldr r4, _0225A7B0 ; =ov49_02269734
str r0, [sp, #0x18]
_0225A636:
ldr r1, [r4]
ldr r0, [r5]
lsl r1, r1, #0x18
lsr r1, r1, #0x18
add r2, r7, #0
mov r3, #0
bl InitBgFromTemplate
ldr r0, [r4]
mov r1, #0x20
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r2, #0
add r3, r6, #0
bl BG_ClearCharDataRange
ldr r1, [r4]
ldr r0, [r5]
lsl r1, r1, #0x18
lsr r1, r1, #0x18
bl BgClearTilemapBufferAndCommit
ldr r0, [sp, #0x18]
add r7, #0x1c
add r0, r0, #1
add r4, r4, #4
str r0, [sp, #0x18]
cmp r0, #4
blt _0225A636
ldr r0, [sp, #0x14]
bl Save_PlayerData_GetOptionsAddr
bl Options_GetFrame
lsl r0, r0, #0x18
lsr r4, r0, #0x18
mov r0, #0
mov r1, #0xa0
add r2, r6, #0
bl LoadFontPal0
mov r0, #0
mov r1, #0x80
add r2, r6, #0
bl LoadFontPal1
mov r0, #0
str r0, [sp]
str r6, [sp, #4]
ldr r0, [r5]
mov r1, #1
mov r2, #0x55
mov r3, #3
bl LoadUserFrameGfx1
mov r1, #1
str r4, [sp]
str r6, [sp, #4]
ldr r0, [r5]
add r2, r1, #0
add r3, r1, #0
bl LoadUserFrameGfx2
mov r0, #3
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
str r6, [sp, #8]
ldr r0, [r5]
mov r1, #1
mov r2, #0x1f
mov r3, #2
bl sub_0200EC0C
mov r0, #0x20
str r0, [sp]
mov r0, #0xd1
mov r1, #0x5a
mov r2, #0
mov r3, #0x40
str r6, [sp, #4]
bl GfGfxLoader_GXLoadPal
bl NNS_G2dInitOamManagerModule
mov r0, #0
str r0, [sp]
mov r1, #0x7e
str r1, [sp, #4]
str r0, [sp, #8]
mov r3, #0x1f
str r3, [sp, #0xc]
add r2, r0, #0
str r6, [sp, #0x10]
bl OamManager_Create
ldr r0, _0225A7B4 ; =ov49_02269744
ldr r2, _0225A7B8 ; =0x00100010
mov r1, #0x10
bl sub_020215C0
mov r0, #0x18
add r1, r6, #0
bl sub_02022588
bl sub_020216C8
bl sub_02022638
mov r0, #1
mov r1, #0x10
bl sub_02009FE8
mov r0, #1
bl sub_0200A080
bl sub_0203A880
add r1, r5, #0
mov r0, #0x18
add r1, #8
add r2, r6, #0
bl G2dRenderer_Init
str r0, [r5, #4]
add r0, r5, #0
mov r2, #1
add r0, #8
mov r1, #0
lsl r2, r2, #0x14
bl G2dRenderer_SetSubSurfaceCoords
mov r7, #0
add r4, r5, #0
_0225A742:
mov r0, #0x18
add r1, r7, #0
add r2, r6, #0
bl Create2DGfxResObjMan
mov r1, #0x13
lsl r1, r1, #4
str r0, [r4, r1]
add r7, r7, #1
add r4, r4, #4
cmp r7, #4
blt _0225A742
mov r0, #0x18
add r1, r6, #0
bl sub_02020654
mov r1, #5
lsl r1, r1, #6
str r0, [r5, r1]
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
bl GX_EngineBToggleLayers
mov r0, #4
str r0, [sp]
ldr r0, _0225A7BC ; =ov49_0225A854
mov r1, #0
str r0, [sp, #4]
add r0, r6, #0
mov r2, #2
add r3, r1, #0
bl GF_3DVramMan_Create
mov r1, #0x51
lsl r1, r1, #2
str r0, [r5, r1]
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_0225A798: .word 0x04000050
_0225A79C: .word 0x04001050
_0225A7A0: .word ov49_022697CC
_0225A7A4: .word gSystem + 0x60
_0225A7A8: .word ov49_02269724
_0225A7AC: .word ov49_0226981C
_0225A7B0: .word ov49_02269734
_0225A7B4: .word ov49_02269744
_0225A7B8: .word 0x00100010
_0225A7BC: .word ov49_0225A854
thumb_func_end ov49_0225A5EC
thumb_func_start ov49_0225A7C0
ov49_0225A7C0: ; 0x0225A7C0
push {r3, lr}
ldr r0, [r0, #4]
bl sub_0202457C
bl sub_02020674
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_0225A7C0
thumb_func_start ov49_0225A7D0
ov49_0225A7D0: ; 0x0225A7D0
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
bl GF_DestroyVramTransferManager
ldr r5, _0225A83C ; =ov49_02269734
mov r4, #0
_0225A7DC:
ldr r1, [r5]
ldr r0, [r6]
lsl r1, r1, #0x18
lsr r1, r1, #0x18
bl FreeBgTilemapBuffer
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _0225A7DC
ldr r0, [r6]
bl FreeToHeap
mov r0, #5
lsl r0, r0, #6
ldr r0, [r6, r0]
bl sub_0202067C
mov r0, #5
lsl r0, r0, #6
mov r4, #0
add r7, r0, #0
str r4, [r6, r0]
add r5, r6, #0
sub r7, #0x10
_0225A80E:
ldr r0, [r5, r7]
bl Destroy2DGfxResObjMan
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _0225A80E
ldr r0, [r6, #4]
bl sub_02024504
bl sub_0202168C
bl sub_02022608
bl OamManager_Free
mov r0, #0x51
lsl r0, r0, #2
ldr r0, [r6, r0]
bl GF_3DVramMan_Delete
pop {r3, r4, r5, r6, r7, pc}
nop
_0225A83C: .word ov49_02269734
thumb_func_end ov49_0225A7D0
thumb_func_start ov49_0225A840
ov49_0225A840: ; 0x0225A840
push {r3, lr}
ldr r0, [r0]
bl DoScheduledBgGpuUpdates
bl OamManager_ApplyAndResetBuffers
bl GF_RunVramTransferTasks
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_0225A840
thumb_func_start ov49_0225A854
ov49_0225A854: ; 0x0225A854
push {r3, r4, lr}
sub sp, #0xc
mov r0, #1
add r1, r0, #0
bl GX_EngineAToggleLayers
ldr r0, _0225A964 ; =0x04000008
mov r1, #3
ldrh r2, [r0]
bic r2, r1
mov r1, #1
orr r1, r2
strh r1, [r0]
add r0, #0x58
ldrh r2, [r0]
ldr r1, _0225A968 ; =0xFFFFCFFD
and r2, r1
strh r2, [r0]
ldrh r3, [r0]
add r2, r1, #2
and r3, r2
mov r2, #0x10
orr r2, r3
strh r2, [r0]
ldrh r3, [r0]
ldr r2, _0225A96C ; =0x0000CFFB
and r2, r3
strh r2, [r0]
add r2, r1, #2
ldrh r3, [r0]
add r1, r1, #2
and r3, r2
mov r2, #8
orr r2, r3
strh r2, [r0]
ldrh r2, [r0]
and r2, r1
mov r1, #0x20
orr r1, r2
strh r1, [r0]
ldr r0, _0225A970 ; =ov49_02269754
bl G3X_SetEdgeColorTable
mov r0, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl G3X_SetFog
mov r1, #0
ldr r0, _0225A974 ; =0x00006B5A
ldr r2, _0225A978 ; =0x00007FFF
mov r3, #0x3f
str r1, [sp]
bl G3X_SetClearColor
ldr r1, _0225A97C ; =0xBFFF0000
ldr r0, _0225A980 ; =0x04000580
ldr r2, _0225A984 ; =0xFFFFF224
str r1, [r0]
ldr r1, _0225A988 ; =0xFFFFF805
mov r0, #0
mov r3, #0x6e
bl NNS_G3dGlbLightVector
mov r1, #0
add r0, sp, #4
strh r1, [r0]
strh r1, [r0, #2]
mov r1, #1
lsl r1, r1, #0xc
strh r1, [r0, #4]
add r0, sp, #4
add r1, r0, #0
bl VEC_Fx16Normalize
add r4, sp, #4
mov r1, #0
mov r2, #2
mov r3, #4
ldrsh r1, [r4, r1]
ldrsh r2, [r4, r2]
ldrsh r3, [r4, r3]
mov r0, #1
bl NNS_G3dGlbLightVector
mov r1, #0
add r0, r4, #0
strh r1, [r0]
strh r1, [r0, #2]
mov r1, #1
lsl r1, r1, #0xc
strh r1, [r0, #4]
add r0, sp, #4
add r1, r0, #0
bl VEC_Fx16Normalize
mov r0, #2
mov r1, #0
mov r3, #4
ldrsh r1, [r4, r1]
ldrsh r2, [r4, r0]
ldrsh r3, [r4, r3]
bl NNS_G3dGlbLightVector
ldr r1, _0225A978 ; =0x00007FFF
mov r0, #2
bl NNS_G3dGlbLightColor
mov r1, #0
add r0, r4, #0
strh r1, [r0]
strh r1, [r0, #2]
mov r1, #1
lsl r1, r1, #0xc
strh r1, [r0, #4]
add r0, sp, #4
add r1, r0, #0
bl VEC_Fx16Normalize
mov r1, #0
mov r2, #2
mov r3, #4
ldrsh r1, [r4, r1]
ldrsh r2, [r4, r2]
ldrsh r3, [r4, r3]
mov r0, #3
bl NNS_G3dGlbLightVector
ldr r1, _0225A978 ; =0x00007FFF
mov r0, #3
bl NNS_G3dGlbLightColor
add sp, #0xc
pop {r3, r4, pc}
nop
_0225A964: .word 0x04000008
_0225A968: .word 0xFFFFCFFD
_0225A96C: .word 0x0000CFFB
_0225A970: .word ov49_02269754
_0225A974: .word 0x00006B5A
_0225A978: .word 0x00007FFF
_0225A97C: .word 0xBFFF0000
_0225A980: .word 0x04000580
_0225A984: .word 0xFFFFF224
_0225A988: .word 0xFFFFF805
thumb_func_end ov49_0225A854
thumb_func_start ov49_0225A98C
ov49_0225A98C: ; 0x0225A98C
push {r4, lr}
add r4, r0, #0
mov r0, #0x3e
lsl r0, r0, #4
ldr r0, [r4, r0]
bl ov49_02258B44
ldrb r0, [r4, #4]
lsl r0, r0, #0x18
lsr r0, r0, #0x1c
bne _0225A9B2
ldrb r0, [r4, #6]
cmp r0, #0
bne _0225A9B2
mov r0, #0x3f
lsl r0, r0, #4
ldr r0, [r4, r0]
bl ov49_0225EF24
_0225A9B2:
mov r0, #0xf9
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ov49_0225E318
ldrb r0, [r4, #4]
lsl r0, r0, #0x18
lsr r0, r0, #0x1c
bne _0225A9E8
ldrb r0, [r4, #6]
cmp r0, #0
bne _0225A9E8
mov r0, #0x3e
lsl r0, r0, #4
ldr r0, [r4, r0]
bl ov49_02258B5C
mov r0, #0x3f
lsl r0, r0, #4
ldr r0, [r4, r0]
bl ov49_0225EF30
mov r0, #0xf7
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ov49_02268870
_0225A9E8:
add r0, r4, #0
bl ov49_0225AA70
ldrb r0, [r4, #3]
cmp r0, #0
bne _0225AA1E
ldrb r0, [r4, #4]
lsl r0, r0, #0x18
lsr r0, r0, #0x1c
cmp r0, #1
beq _0225AA0A
ldrb r0, [r4, #6]
cmp r0, #1
beq _0225AA0A
ldrb r0, [r4]
cmp r0, #1
bne _0225AA0E
_0225AA0A:
mov r2, #1
b _0225AA10
_0225AA0E:
mov r2, #0
_0225AA10:
mov r0, #0x61
lsl r0, r0, #2
add r0, r4, r0
add r1, r4, #0
mov r3, #0x77
bl ov49_0225B518
_0225AA1E:
mov r0, #0xf5
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ov49_02265378
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225A98C
thumb_func_start ov49_0225AA2C
ov49_0225AA2C: ; 0x0225AA2C
push {r4, lr}
add r4, r0, #0
bl Thunk_G3X_Reset
mov r0, #0xfb
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ov49_0225CBF4
mov r0, #0xf9
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ov49_0225E3A0
mov r0, #0x3e
lsl r0, r0, #4
ldr r0, [r4, r0]
bl ov49_02258BD4
mov r0, #0xf5
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ov49_02265398
mov r0, #0
add r1, r0, #0
bl sub_02026E50
add r4, #0x3c
add r0, r4, #0
bl ov49_0225A7C0
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225AA2C
thumb_func_start ov49_0225AA70
ov49_0225AA70: ; 0x0225AA70
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r7, r0, #0
ldr r0, [r7, #0x34]
bl ov45_0222A394
str r0, [sp, #8]
mov r4, #0
_0225AA80:
add r0, r4, #0
bl ov45_0222F274
add r6, r0, #0
cmp r6, #1
bne _0225AA9E
add r0, r4, #0
bl ov45_0222F294
cmp r0, #0
bne _0225AA9A
mov r5, #1
b _0225AAA0
_0225AA9A:
mov r5, #0
b _0225AAA0
_0225AA9E:
mov r5, #0
_0225AAA0:
add r0, r4, #0
bl ov45_0222F314
add r2, r0, #0
ldr r0, [sp, #8]
str r5, [sp]
str r0, [sp, #4]
mov r0, #0xf9
lsl r0, r0, #2
ldr r0, [r7, r0]
add r1, r4, #0
add r3, r6, #0
bl ov49_0225E8C4
add r4, r4, #1
cmp r4, #3
blt _0225AA80
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225AA70
thumb_func_start ov49_0225AAC8
ov49_0225AAC8: ; 0x0225AAC8
push {r3, r4, r5, r6, lr}
sub sp, #0x14
add r5, r0, #0
mov r0, #0x13
str r0, [sp]
mov r0, #0x1b
str r0, [sp, #4]
mov r0, #4
str r0, [sp, #8]
str r0, [sp, #0xc]
mov r0, #0x5e
str r0, [sp, #0x10]
ldr r0, [r1]
add r4, r2, #0
add r6, r3, #0
add r1, r5, #0
mov r2, #1
mov r3, #2
bl AddWindowParameterized
add r0, r5, #0
mov r1, #0xf
bl FillWindowPixelBuffer
mov r0, #6
lsl r0, r0, #6
add r1, r6, #0
bl String_New
str r0, [r5, #0x18]
add r0, r4, #0
bl Save_PlayerData_GetOptionsAddr
bl Options_GetTextFrameDelay
str r0, [r5, #0x14]
add sp, #0x14
pop {r3, r4, r5, r6, pc}
thumb_func_end ov49_0225AAC8
thumb_func_start ov49_0225AB14
ov49_0225AB14: ; 0x0225AB14
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x10]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl TextPrinterCheckActive
cmp r0, #0
beq _0225AB30
ldr r0, [r4, #0x10]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl sub_020200A0
_0225AB30:
add r0, r4, #0
bl ov49_0225AC38
ldr r0, [r4, #0x18]
bl String_Delete
add r0, r4, #0
bl RemoveWindow
pop {r4, pc}
thumb_func_end ov49_0225AB14
thumb_func_start ov49_0225AB44
ov49_0225AB44: ; 0x0225AB44
push {r3, r4, r5, lr}
sub sp, #0x10
add r5, r0, #0
ldr r0, [r5, #0x10]
add r4, r1, #0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl TextPrinterCheckActive
cmp r0, #0
beq _0225AB64
ldr r0, [r5, #0x10]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl sub_020200A0
_0225AB64:
add r0, r5, #0
mov r1, #0xf
bl FillWindowPixelBuffer
ldr r0, [r5, #0x18]
add r1, r4, #0
bl String_Copy
mov r3, #0
str r3, [sp]
ldr r0, [r5, #0x14]
mov r1, #1
str r0, [sp, #4]
ldr r0, _0225ABA0 ; =0x0001020F
str r0, [sp, #8]
str r3, [sp, #0xc]
ldr r2, [r5, #0x18]
add r0, r5, #0
bl AddTextPrinterParameterized2
mov r1, #1
str r0, [r5, #0x10]
add r0, r5, #0
add r2, r1, #0
add r3, r1, #0
bl DrawFrameAndWindow2
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_0225ABA0: .word 0x0001020F
thumb_func_end ov49_0225AB44
thumb_func_start ov49_0225ABA4
ov49_0225ABA4: ; 0x0225ABA4
push {r3, r4, r5, lr}
sub sp, #0x10
add r5, r0, #0
ldr r0, [r5, #0x10]
add r4, r1, #0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl TextPrinterCheckActive
cmp r0, #0
beq _0225ABC4
ldr r0, [r5, #0x10]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl sub_020200A0
_0225ABC4:
add r0, r5, #0
mov r1, #0xf
bl FillWindowPixelBuffer
ldr r0, [r5, #0x18]
add r1, r4, #0
bl String_Copy
mov r3, #0
str r3, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, _0225AC04 ; =0x0001020F
mov r1, #1
str r0, [sp, #8]
str r3, [sp, #0xc]
ldr r2, [r5, #0x18]
add r0, r5, #0
bl AddTextPrinterParameterized2
mov r1, #1
add r0, r5, #0
add r2, r1, #0
add r3, r1, #0
bl DrawFrameAndWindow2
add r0, r5, #0
bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, pc}
nop
_0225AC04: .word 0x0001020F
thumb_func_end ov49_0225ABA4
thumb_func_start ov49_0225AC08
ov49_0225AC08: ; 0x0225AC08
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x1c]
cmp r0, #0
beq _0225AC16
bl GF_AssertFail
_0225AC16:
add r0, r4, #0
mov r1, #1
bl WaitingIcon_New
str r0, [r4, #0x1c]
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225AC08
thumb_func_start ov49_0225AC24
ov49_0225AC24: ; 0x0225AC24
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x1c]
cmp r0, #0
beq _0225AC36
bl sub_0200F450
mov r0, #0
str r0, [r4, #0x1c]
_0225AC36:
pop {r4, pc}
thumb_func_end ov49_0225AC24
thumb_func_start ov49_0225AC38
ov49_0225AC38: ; 0x0225AC38
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x1c]
cmp r0, #0
beq _0225AC4A
bl sub_0200F478
mov r0, #0
str r0, [r4, #0x1c]
_0225AC4A:
pop {r4, pc}
thumb_func_end ov49_0225AC38
thumb_func_start ov49_0225AC4C
ov49_0225AC4C: ; 0x0225AC4C
ldr r0, [r0, #0x1c]
cmp r0, #0
beq _0225AC56
mov r0, #1
bx lr
_0225AC56:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_end ov49_0225AC4C
thumb_func_start ov49_0225AC5C
ov49_0225AC5C: ; 0x0225AC5C
push {r3, lr}
ldr r0, [r0, #0x10]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl TextPrinterCheckActive
cmp r0, #0
bne _0225AC70
mov r0, #1
pop {r3, pc}
_0225AC70:
mov r0, #0
pop {r3, pc}
thumb_func_end ov49_0225AC5C
thumb_func_start ov49_0225AC74
ov49_0225AC74: ; 0x0225AC74
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x10]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl TextPrinterCheckActive
cmp r0, #0
beq _0225AC90
ldr r0, [r4, #0x10]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl sub_020200A0
_0225AC90:
add r0, r4, #0
bl ov49_0225AC38
add r0, r4, #0
mov r1, #1
bl ClearFrameAndWindow2
add r0, r4, #0
bl ClearWindowTilemapAndScheduleTransfer
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225AC74
thumb_func_start ov49_0225ACA8
ov49_0225ACA8: ; 0x0225ACA8
push {r4, lr}
add r4, r0, #0
bl ov49_0225AAC8
add r0, r4, #0
mov r1, #2
bl SetWindowPaletteNum
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225ACA8
thumb_func_start ov49_0225ACBC
ov49_0225ACBC: ; 0x0225ACBC
ldr r3, _0225ACC0 ; =ov49_0225AB14
bx r3
.balign 4, 0
_0225ACC0: .word ov49_0225AB14
thumb_func_end ov49_0225ACBC
thumb_func_start ov49_0225ACC4
ov49_0225ACC4: ; 0x0225ACC4
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
ldr r0, [r5, #0x10]
add r4, r1, #0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl TextPrinterCheckActive
cmp r0, #0
beq _0225ACE4
ldr r0, [r5, #0x10]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl sub_020200A0
_0225ACE4:
add r0, r5, #0
mov r1, #0xf
bl FillWindowPixelBuffer
ldr r0, [r5, #0x18]
add r1, r4, #0
bl String_Copy
mov r3, #0
str r3, [sp]
ldr r0, [r5, #0x14]
mov r1, #1
str r0, [sp, #4]
str r3, [sp, #8]
ldr r2, [r5, #0x18]
add r0, r5, #0
bl AddTextPrinterParameterized
str r0, [r5, #0x10]
mov r0, #3
str r0, [sp]
add r0, r5, #0
mov r1, #1
mov r2, #0x1f
mov r3, #2
bl DrawFrameAndWindow3
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_0225ACC4
thumb_func_start ov49_0225AD20
ov49_0225AD20: ; 0x0225AD20
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x70
add r5, r2, #0
add r7, r0, #0
add r4, r1, #0
mov r0, #0x3c
add r1, r5, #0
bl NARC_New
add r6, r0, #0
ldr r0, _0225AE44 ; =0x00001388
add r1, r6, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x13
str r5, [sp, #8]
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r2, #4
mov r3, #0
bl AddCharResObjFromOpenNarc
str r0, [r7, #0x40]
ldr r0, _0225AE44 ; =0x00001388
add r1, r6, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0x4d
str r5, [sp, #0xc]
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r2, #0xa
mov r3, #0
bl AddPlttResObjFromOpenNarc
str r0, [r7, #0x44]
ldr r1, _0225AE44 ; =0x00001388
mov r0, #2
str r1, [sp]
str r0, [sp, #4]
lsr r0, r1, #4
str r5, [sp, #8]
ldr r0, [r4, r0]
add r1, r6, #0
mov r2, #5
mov r3, #0
bl AddCellOrAnimResObjFromOpenNarc
str r0, [r7, #0x48]
ldr r0, _0225AE44 ; =0x00001388
add r1, r6, #0
str r0, [sp]
mov r0, #3
str r0, [sp, #4]
mov r0, #0x4f
str r5, [sp, #8]
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r2, #6
mov r3, #0
bl AddCellOrAnimResObjFromOpenNarc
str r0, [r7, #0x4c]
add r0, r6, #0
bl NARC_Delete
ldr r0, [r7, #0x40]
bl sub_0200ADA4
ldr r0, [r7, #0x44]
bl sub_0200B00C
ldr r1, _0225AE44 ; =0x00001388
mov r0, #0
str r1, [sp]
mvn r0, r0
str r0, [sp, #4]
str r0, [sp, #8]
mov r2, #0
str r2, [sp, #0xc]
mov r0, #0x13
str r2, [sp, #0x10]
lsl r0, r0, #4
ldr r3, [r4, r0]
str r3, [sp, #0x14]
add r3, r0, #4
ldr r3, [r4, r3]
str r3, [sp, #0x18]
add r3, r0, #0
add r3, #8
ldr r3, [r4, r3]
add r0, #0xc
str r3, [sp, #0x1c]
ldr r0, [r4, r0]
add r3, r1, #0
str r0, [sp, #0x20]
str r2, [sp, #0x24]
str r2, [sp, #0x28]
add r0, sp, #0x4c
add r2, r1, #0
bl CreateSpriteResourcesHeader
ldr r0, [r4, #4]
mov r6, #0
str r0, [sp, #0x2c]
add r0, sp, #0x4c
str r0, [sp, #0x30]
mov r0, #1
str r0, [sp, #0x44]
mov r0, #3
lsl r0, r0, #0x12
str r5, [sp, #0x48]
ldr r4, _0225AE48 ; =ov49_022696E8
str r6, [sp, #0x40]
str r0, [sp, #0x34]
add r5, r7, #0
_0225AE0E:
ldrb r0, [r4]
lsl r0, r0, #0xc
str r0, [sp, #0x38]
add r0, sp, #0x2c
bl sub_02024714
str r0, [r5, #0x50]
add r1, r6, #0
bl Set2dSpriteAnimSeqNo
ldr r0, [r5, #0x50]
mov r1, #1
bl Set2dSpriteAnimActiveFlag
ldr r0, [r5, #0x50]
mov r1, #0
bl Set2dSpriteVisibleFlag
add r6, r6, #1
add r4, r4, #1
add r5, r5, #4
cmp r6, #2
blt _0225AE0E
mov r0, #0
str r0, [r7, #0x3c]
add sp, #0x70
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0225AE44: .word 0x00001388
_0225AE48: .word ov49_022696E8
thumb_func_end ov49_0225AD20
thumb_func_start ov49_0225AE4C
ov49_0225AE4C: ; 0x0225AE4C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
ldr r1, [r5, #0x34]
cmp r1, #0
beq _0225AE5C
bl ov49_0225AEE0
_0225AE5C:
ldr r0, [r5, #0x30]
cmp r0, #0
beq _0225AE6C
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl ov49_0225B014
_0225AE6C:
mov r7, #0
add r4, r5, #0
_0225AE70:
ldr r0, [r4, #0x50]
bl Sprite_Delete
mov r0, #0
str r0, [r4, #0x50]
add r7, r7, #1
add r4, r4, #4
cmp r7, #2
blt _0225AE70
ldr r0, [r5, #0x40]
bl sub_0200AEB0
ldr r0, [r5, #0x44]
bl sub_0200B0A8
mov r7, #0x13
mov r4, #0
lsl r7, r7, #4
_0225AE94:
ldr r0, [r6, r7]
ldr r1, [r5, #0x40]
bl DestroySingle2DGfxResObj
add r4, r4, #1
add r5, r5, #4
add r6, r6, #4
cmp r4, #4
blt _0225AE94
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225AE4C
thumb_func_start ov49_0225AEA8
ov49_0225AEA8: ; 0x0225AEA8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5, #0x34]
add r4, r1, #0
add r7, r2, #0
add r6, r3, #0
cmp r0, #0
beq _0225AEBC
bl GF_AssertFail
_0225AEBC:
add r0, r4, #0
add r1, r7, #0
bl ListMenuItems_New
str r0, [r5, #0x34]
mov r1, #0
strh r4, [r5, #0x38]
cmp r4, #0
bls _0225AEDE
add r2, r1, #0
_0225AED0:
ldr r0, [r5, #0x34]
add r1, r1, #1
add r0, r0, r2
str r6, [r0, #4]
add r2, #8
cmp r1, r4
blo _0225AED0
_0225AEDE:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225AEA8
thumb_func_start ov49_0225AEE0
ov49_0225AEE0: ; 0x0225AEE0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x34]
cmp r0, #0
beq _0225AEF4
bl ListMenuItems_Delete
mov r0, #0
str r0, [r4, #0x34]
strh r0, [r4, #0x38]
_0225AEF4:
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225AEE0
thumb_func_start ov49_0225AEF8
ov49_0225AEF8: ; 0x0225AEF8
ldr r3, _0225AF00 ; =ListMenuItems_AddItem
ldr r0, [r0, #0x34]
bx r3
nop
_0225AF00: .word ListMenuItems_AddItem
thumb_func_end ov49_0225AEF8
thumb_func_start ov49_0225AF04
ov49_0225AF04: ; 0x0225AF04
ldr r0, [r0, #0x34]
bx lr
thumb_func_end ov49_0225AF04
thumb_func_start ov49_0225AF08
ov49_0225AF08: ; 0x0225AF08
push {r3, r4}
ldrh r2, [r0, #0x38]
mov r3, #0
cmp r2, #0
ble _0225AF2A
ldr r4, [r0, #0x34]
_0225AF14:
ldr r2, [r4, #4]
cmp r1, r2
bne _0225AF20
mov r0, #1
pop {r3, r4}
bx lr
_0225AF20:
ldrh r2, [r0, #0x38]
add r3, r3, #1
add r4, #8
cmp r3, r2
blt _0225AF14
_0225AF2A:
mov r0, #0
pop {r3, r4}
bx lr
thumb_func_end ov49_0225AF08
thumb_func_start ov49_0225AF30
ov49_0225AF30: ; 0x0225AF30
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
ldr r0, [r5, #0x30]
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
cmp r0, #0
beq _0225AF46
bl GF_AssertFail
_0225AF46:
ldrh r0, [r4, #0x12]
lsl r0, r0, #1
cmp r0, #0x12
blt _0225AF52
bl GF_AssertFail
_0225AF52:
add r3, r4, #0
add r2, r5, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
add r1, r5, #0
add r1, #0x20
str r1, [r5, #0xc]
ldrh r0, [r4, #0x10]
add r3, sp, #0x18
mov r2, #1
strh r0, [r5, #0x3a]
ldr r0, _0225AFD4 ; =ov49_0225B058
str r0, [r5, #4]
ldrb r0, [r3, #0x1c]
str r0, [sp]
add r0, sp, #0x38
ldrb r0, [r0]
str r0, [sp, #4]
ldrh r0, [r4, #0x12]
lsl r0, r0, #0x19
lsr r0, r0, #0x18
str r0, [sp, #8]
mov r0, #5
str r0, [sp, #0xc]
mov r0, #0xca
str r0, [sp, #0x10]
ldrb r3, [r3, #0x18]
ldr r0, [r6]
bl AddWindowParameterized
add r0, r5, #0
add r0, #0x20
mov r1, #0xf
bl FillWindowPixelBuffer
add r0, r5, #0
add r0, #0x20
mov r1, #1
mov r2, #0x55
mov r3, #3
bl DrawFrameAndWindow1
add r2, sp, #0x18
ldr r3, [sp, #0x2c]
ldrh r2, [r2, #0x10]
lsl r3, r3, #0x18
add r0, r5, #0
add r1, r7, #0
lsr r3, r3, #0x18
bl ListMenuInit
str r0, [r5, #0x30]
add r5, #0x20
add r0, r5, #0
bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_0225AFD4: .word ov49_0225B058
thumb_func_end ov49_0225AF30
thumb_func_start ov49_0225AFD8
ov49_0225AFD8: ; 0x0225AFD8
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x30]
cmp r0, #0
bne _0225AFE8
mov r0, #1
mvn r0, r0
pop {r3, r4, r5, pc}
_0225AFE8:
bl ListMenu_ProcessInput
add r4, r0, #0
mov r0, #1
mvn r0, r0
cmp r4, r0
beq _0225AFFC
add r0, r0, #1
cmp r4, r0
bne _0225B004
_0225AFFC:
add r0, r5, #0
bl ov49_0225B070
b _0225B00A
_0225B004:
ldr r0, _0225B010 ; =0x000005DC
bl PlaySE
_0225B00A:
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
_0225B010: .word 0x000005DC
thumb_func_end ov49_0225AFD8
thumb_func_start ov49_0225B014
ov49_0225B014: ; 0x0225B014
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5, #0x30]
cmp r0, #0
beq _0225B056
bl DestroyListMenu
mov r0, #0
str r0, [r5, #0x30]
add r0, r5, #0
add r0, #0x20
mov r1, #1
bl sub_0200E5D4
add r0, r5, #0
add r0, #0x20
bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0x20
bl RemoveWindow
mov r4, #0
str r4, [r5, #0x3c]
add r6, r4, #0
_0225B046:
ldr r0, [r5, #0x50]
add r1, r6, #0
bl Set2dSpriteVisibleFlag
add r4, r4, #1
add r5, r5, #4
cmp r4, #2
blt _0225B046
_0225B056:
pop {r4, r5, r6, pc}
thumb_func_end ov49_0225B014
thumb_func_start ov49_0225B058
ov49_0225B058: ; 0x0225B058
push {r3, lr}
cmp r2, #0
bne _0225B064
ldr r0, _0225B068 ; =0x000005DC
bl PlaySE
_0225B064:
pop {r3, pc}
nop
_0225B068: .word 0x000005DC
thumb_func_end ov49_0225B058
thumb_func_start ov49_0225B06C
ov49_0225B06C: ; 0x0225B06C
str r1, [r0, #0x3c]
bx lr
thumb_func_end ov49_0225B06C
thumb_func_start ov49_0225B070
ov49_0225B070: ; 0x0225B070
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
ldr r0, [r4, #0x3c]
cmp r0, #0
bne _0225B090
ldr r0, [r4, #0x50]
mov r1, #0
bl Set2dSpriteVisibleFlag
ldr r0, [r4, #0x54]
mov r1, #0
bl Set2dSpriteVisibleFlag
add sp, #4
pop {r3, r4, pc}
_0225B090:
ldr r0, [r4, #0x30]
add r1, sp, #0
mov r2, #0
bl ListMenuGetScrollAndRow
add r0, sp, #0
ldrh r0, [r0]
cmp r0, #0
ldr r0, [r4, #0x50]
bne _0225B0AC
mov r1, #0
bl Set2dSpriteVisibleFlag
b _0225B0B2
_0225B0AC:
mov r1, #1
bl Set2dSpriteVisibleFlag
_0225B0B2:
add r0, sp, #0
ldrh r1, [r0]
ldrh r0, [r4, #0x3a]
sub r0, r0, #7
cmp r1, r0
ldr r0, [r4, #0x54]
blt _0225B0CA
mov r1, #0
bl Set2dSpriteVisibleFlag
add sp, #4
pop {r3, r4, pc}
_0225B0CA:
mov r1, #1
bl Set2dSpriteVisibleFlag
add sp, #4
pop {r3, r4, pc}
thumb_func_end ov49_0225B070
thumb_func_start ov49_0225B0D4
ov49_0225B0D4: ; 0x0225B0D4
bx lr
.balign 4, 0
thumb_func_end ov49_0225B0D4
thumb_func_start ov49_0225B0D8
ov49_0225B0D8: ; 0x0225B0D8
ldr r3, _0225B0DC ; =ov49_0225B124
bx r3
.balign 4, 0
_0225B0DC: .word ov49_0225B124
thumb_func_end ov49_0225B0D8
thumb_func_start ov49_0225B0E0
ov49_0225B0E0: ; 0x0225B0E0
push {r3, r4, lr}
sub sp, #0x14
add r4, r0, #0
add r0, sp, #0x10
ldrb r2, [r0, #0x10]
str r2, [sp]
ldrb r2, [r0, #0x14]
str r2, [sp, #4]
ldrb r0, [r0, #0x18]
mov r2, #1
str r0, [sp, #8]
mov r0, #5
str r0, [sp, #0xc]
mov r0, #0xca
str r0, [sp, #0x10]
ldr r0, [r1]
add r1, r4, #0
bl AddWindowParameterized
add r0, r4, #0
mov r1, #1
mov r2, #0x55
mov r3, #3
bl DrawFrameAndWindow1
add r0, r4, #0
mov r1, #0xf
bl FillWindowPixelBuffer
add r0, r4, #0
bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r3, r4, pc}
thumb_func_end ov49_0225B0E0
thumb_func_start ov49_0225B124
ov49_0225B124: ; 0x0225B124
push {r4, lr}
add r4, r0, #0
bl WindowIsInUse
cmp r0, #1
bne _0225B144
add r0, r4, #0
mov r1, #1
bl sub_0200E5D4
add r0, r4, #0
bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0
bl RemoveWindow
_0225B144:
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225B124
thumb_func_start ov49_0225B148
ov49_0225B148: ; 0x0225B148
push {r4, r5, r6, lr}
sub sp, #0x10
add r6, r1, #0
str r3, [sp]
add r5, r2, #0
mov r1, #0xff
str r1, [sp, #4]
ldr r1, _0225B174 ; =0x0001020F
add r4, r0, #0
str r1, [sp, #8]
mov r1, #0
add r2, r6, #0
add r3, r5, #0
str r1, [sp, #0xc]
bl AddTextPrinterParameterized2
add r0, r4, #0
bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_0225B174: .word 0x0001020F
thumb_func_end ov49_0225B148
thumb_func_start ov49_0225B178
ov49_0225B178: ; 0x0225B178
push {r3, r4, r5, lr}
sub sp, #8
add r5, r1, #0
str r3, [sp]
add r1, sp, #8
add r4, r2, #0
ldrh r1, [r1, #0x10]
add r2, r5, #0
add r3, r4, #0
str r1, [sp, #4]
mov r1, #0xf
bl FillWindowPixelRect
add sp, #8
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_0225B178
thumb_func_start ov49_0225B198
ov49_0225B198: ; 0x0225B198
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5]
add r4, r1, #0
add r6, r2, #0
cmp r0, #0
beq _0225B1AA
bl GF_AssertFail
_0225B1AA:
mov r0, #2
add r1, r6, #0
bl ListMenuItems_New
str r0, [r5]
add r0, r4, #0
mov r1, #1
mov r2, #0x43
bl ov49_0225B388
add r1, r0, #0
ldr r0, [r5]
mov r2, #0
bl ListMenuItems_AddItem
add r0, r4, #0
mov r1, #1
mov r2, #0x42
bl ov49_0225B388
add r1, r0, #0
ldr r0, [r5]
mov r2, #1
bl ListMenuItems_AddItem
ldr r3, _0225B1FC ; =ov49_022697AC
add r2, r5, #4
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
mov r0, #2
strh r0, [r5, #0x14]
ldr r0, [r5]
str r0, [r5, #4]
pop {r4, r5, r6, pc}
nop
_0225B1FC: .word ov49_022697AC
thumb_func_end ov49_0225B198
thumb_func_start ov49_0225B200
ov49_0225B200: ; 0x0225B200
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _0225B212
bl ListMenuItems_Delete
mov r0, #0
str r0, [r4]
_0225B212:
pop {r4, pc}
thumb_func_end ov49_0225B200
thumb_func_start ov49_0225B214
ov49_0225B214: ; 0x0225B214
push {r3, r4, lr}
sub sp, #0x14
mov r3, #4
add r4, r0, #0
str r3, [sp]
mov r0, #0x17
str r0, [sp, #4]
mov r0, #0x10
str r0, [sp, #8]
mov r0, #5
str r0, [sp, #0xc]
mov r0, #0x5e
str r0, [sp, #0x10]
ldr r0, [r1]
add r1, r4, #0
mov r2, #1
bl AddWindowParameterized
add r0, r4, #0
mov r1, #0xf
bl FillWindowPixelBuffer
add sp, #0x14
pop {r3, r4, pc}
thumb_func_end ov49_0225B214
thumb_func_start ov49_0225B244
ov49_0225B244: ; 0x0225B244
ldr r3, _0225B248 ; =RemoveWindow
bx r3
.balign 4, 0
_0225B248: .word RemoveWindow
thumb_func_end ov49_0225B244
thumb_func_start ov49_0225B24C
ov49_0225B24C: ; 0x0225B24C
push {r4, lr}
sub sp, #0x10
add r2, r1, #0
mov r1, #0
str r1, [sp]
mov r3, #0xff
str r3, [sp, #4]
ldr r3, _0225B280 ; =0x0001020F
add r4, r0, #0
str r3, [sp, #8]
add r3, r1, #0
str r1, [sp, #0xc]
bl AddTextPrinterParameterized2
add r0, r4, #0
mov r1, #1
mov r2, #0x55
mov r3, #3
bl DrawFrameAndWindow1
add r0, r4, #0
bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4, pc}
nop
_0225B280: .word 0x0001020F
thumb_func_end ov49_0225B24C
thumb_func_start ov49_0225B284
ov49_0225B284: ; 0x0225B284
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
add r5, r1, #0
bl sub_020392D8
add r4, r0, #0
ldr r0, [r4]
ldr r1, [r4, #4]
bl ov45_0222D7CC
add r7, r0, #0
mov r0, #2
str r0, [sp]
ldr r1, [r4]
add r0, r5, #0
mov r2, #5
mov r3, #0
bl ov49_0225B3A8
add r0, r5, #0
mov r1, #2
add r2, r7, #0
bl ov49_0225B388
add r1, r0, #0
add r0, r6, #0
bl ov49_0225B24C
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225B284
thumb_func_start ov49_0225B2C0
ov49_0225B2C0: ; 0x0225B2C0
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r2, #0
add r4, r1, #0
bl ov45_0222E7FC
add r1, r0, #0
mov r0, #2
str r0, [sp]
add r0, r4, #0
mov r2, #5
mov r3, #0
bl ov49_0225B3A8
add r0, r4, #0
mov r1, #2
mov r2, #0x20
bl ov49_0225B388
add r1, r0, #0
add r0, r5, #0
bl ov49_0225B24C
pop {r3, r4, r5, pc}
thumb_func_end ov49_0225B2C0
thumb_func_start ov49_0225B2F0
ov49_0225B2F0: ; 0x0225B2F0
push {r4, lr}
add r4, r0, #0
add r0, r1, #0
mov r1, #2
mov r2, #0xe
bl ov49_0225B388
add r1, r0, #0
add r0, r4, #0
bl ov49_0225B24C
pop {r4, pc}
thumb_func_end ov49_0225B2F0
thumb_func_start ov49_0225B308
ov49_0225B308: ; 0x0225B308
push {r3, r4, r5, r6, r7, lr}
add r7, r1, #0
str r0, [sp]
mov r0, #8
mov r1, #0x40
add r2, r7, #0
bl MessageFormat_New_Custom
ldr r1, [sp]
ldr r4, _0225B358 ; =ov49_02269714
str r0, [r1]
mov r6, #0
add r5, r1, #0
_0225B322:
ldr r2, [r4]
mov r0, #1
mov r1, #0x1b
add r3, r7, #0
bl NewMsgDataFromNarc
str r0, [r5, #4]
add r6, r6, #1
add r4, r4, #4
add r5, r5, #4
cmp r6, #4
blt _0225B322
mov r0, #0x1e
lsl r0, r0, #4
add r1, r7, #0
bl String_New
ldr r1, [sp]
str r0, [r1, #0x14]
mov r0, #0x1e
lsl r0, r0, #4
add r1, r7, #0
bl String_New
ldr r1, [sp]
str r0, [r1, #0x18]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0225B358: .word ov49_02269714
thumb_func_end ov49_0225B308
thumb_func_start ov49_0225B35C
ov49_0225B35C: ; 0x0225B35C
push {r4, r5, r6, lr}
add r6, r0, #0
ldr r0, [r6]
bl MessageFormat_Delete
mov r4, #0
add r5, r6, #0
_0225B36A:
ldr r0, [r5, #4]
bl DestroyMsgData
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _0225B36A
ldr r0, [r6, #0x14]
bl String_Delete
ldr r0, [r6, #0x18]
bl String_Delete
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225B35C
thumb_func_start ov49_0225B388
ov49_0225B388: ; 0x0225B388
push {r4, lr}
add r4, r0, #0
lsl r0, r1, #2
add r0, r4, r0
add r1, r2, #0
ldr r0, [r0, #4]
ldr r2, [r4, #0x18]
bl ReadMsgDataIntoString
ldr r0, [r4]
ldr r1, [r4, #0x14]
ldr r2, [r4, #0x18]
bl StringExpandPlaceholders
ldr r0, [r4, #0x14]
pop {r4, pc}
thumb_func_end ov49_0225B388
thumb_func_start ov49_0225B3A8
ov49_0225B3A8: ; 0x0225B3A8
push {r3, r4, r5, lr}
sub sp, #8
add r5, r1, #0
ldr r1, [sp, #0x18]
add r4, r2, #0
str r1, [sp]
mov r1, #1
str r1, [sp, #4]
add r1, r3, #0
ldr r0, [r0]
add r2, r5, #0
add r3, r4, #0
bl BufferIntegerAsString
add sp, #8
pop {r3, r4, r5, pc}
thumb_func_end ov49_0225B3A8
thumb_func_start ov49_0225B3C8
ov49_0225B3C8: ; 0x0225B3C8
add r3, r1, #0
add r1, r2, #0
add r2, r3, #0
ldr r3, _0225B3D4 ; =BufferPlayersName
ldr r0, [r0]
bx r3
.balign 4, 0
_0225B3D4: .word BufferPlayersName
thumb_func_end ov49_0225B3C8
thumb_func_start ov49_0225B3D8
ov49_0225B3D8: ; 0x0225B3D8
add r3, r1, #0
add r1, r2, #0
add r2, r3, #0
ldr r3, _0225B3E4 ; =BufferWiFiPlazaActivityName
ldr r0, [r0]
bx r3
.balign 4, 0
_0225B3E4: .word BufferWiFiPlazaActivityName
thumb_func_end ov49_0225B3D8
thumb_func_start ov49_0225B3E8
ov49_0225B3E8: ; 0x0225B3E8
add r3, r1, #0
add r1, r2, #0
add r2, r3, #0
ldr r3, _0225B3F4 ; =BufferWiFiPlazaEventName
ldr r0, [r0]
bx r3
.balign 4, 0
_0225B3F4: .word BufferWiFiPlazaEventName
thumb_func_end ov49_0225B3E8
thumb_func_start ov49_0225B3F8
ov49_0225B3F8: ; 0x0225B3F8
add r3, r1, #0
add r1, r2, #0
add r2, r3, #0
ldr r3, _0225B404 ; =BufferWiFiPlazaInstrumentName
ldr r0, [r0]
bx r3
.balign 4, 0
_0225B404: .word BufferWiFiPlazaInstrumentName
thumb_func_end ov49_0225B3F8
thumb_func_start ov49_0225B408
ov49_0225B408: ; 0x0225B408
add r3, r1, #0
add r1, r2, #0
add r2, r3, #0
ldr r3, _0225B414 ; =BufferCountryName
ldr r0, [r0]
bx r3
.balign 4, 0
_0225B414: .word BufferCountryName
thumb_func_end ov49_0225B408
thumb_func_start ov49_0225B418
ov49_0225B418: ; 0x0225B418
push {r3, r4, r5, lr}
add r5, r1, #0
add r4, r2, #0
add r1, r3, #0
ldr r0, [r0]
add r2, r5, #0
add r3, r4, #0
bl BufferCityName
pop {r3, r4, r5, pc}
thumb_func_end ov49_0225B418
thumb_func_start ov49_0225B42C
ov49_0225B42C: ; 0x0225B42C
ldr r3, _0225B434 ; =BufferECWord
ldr r0, [r0]
bx r3
nop
_0225B434: .word BufferECWord
thumb_func_end ov49_0225B42C
thumb_func_start ov49_0225B438
ov49_0225B438: ; 0x0225B438
ldr r3, _0225B440 ; =MessageFormat_ResetBuffers
ldr r0, [r0]
bx r3
nop
_0225B440: .word MessageFormat_ResetBuffers
thumb_func_end ov49_0225B438
thumb_func_start ov49_0225B444
ov49_0225B444: ; 0x0225B444
mov r1, #0xf6
mov r2, #1
lsl r1, r1, #2
str r2, [r0, r1]
bx lr
.balign 4, 0
thumb_func_end ov49_0225B444
thumb_func_start ov49_0225B450
ov49_0225B450: ; 0x0225B450
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
ldr r4, [sp, #0x20]
add r5, r0, #0
add r0, r3, #0
add r7, r1, #0
add r6, r2, #0
bl PlayerProfile_GetTrainerGender
str r0, [sp, #4]
mov r0, #0xd1
add r1, r4, #0
bl NARC_New
mov r2, #0x53
lsl r2, r2, #2
str r0, [r5, r2]
str r4, [sp]
ldr r2, [r5, r2]
ldr r3, [sp, #4]
add r0, r5, #0
add r1, r6, #0
bl ov49_0225BABC
mov r2, #0x53
lsl r2, r2, #2
add r0, r5, #0
ldr r2, [r5, r2]
add r0, #8
add r1, r6, #0
add r3, r4, #0
bl ov49_0225BB84
mov r2, #0x45
lsl r2, r2, #2
add r0, r5, r2
add r2, #0x38
ldr r2, [r5, r2]
add r1, r6, #0
add r3, r4, #0
bl ov49_0225C844
mov r1, #0
strb r1, [r5, #2]
strb r1, [r5, #1]
ldrh r0, [r7, #6]
cmp r0, #0
bne _0225B4DC
mov r0, #4
strb r1, [r5]
bl BG_SetMaskColor
mov r0, #1
mov r1, #0
bl GX_EngineBToggleLayers
mov r0, #2
mov r1, #0
bl GX_EngineBToggleLayers
mov r0, #4
mov r1, #0
bl GX_EngineBToggleLayers
mov r0, #8
mov r1, #0
bl GX_EngineBToggleLayers
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
_0225B4DC:
mov r0, #5
strb r0, [r5]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225B450
thumb_func_start ov49_0225B4E4
ov49_0225B4E4: ; 0x0225B4E4
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #0x45
lsl r0, r0, #2
add r0, r5, r0
add r6, r1, #0
add r4, r2, #0
bl ov49_0225C8A8
add r0, r5, #0
add r0, #8
add r1, r6, #0
add r2, r4, #0
bl ov49_0225BBA8
add r0, r5, #0
add r1, r4, #0
bl ov49_0225BB10
mov r0, #0x53
lsl r0, r0, #2
ldr r0, [r5, r0]
bl NARC_Delete
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225B4E4
thumb_func_start ov49_0225B518
ov49_0225B518: ; 0x0225B518
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x50
add r5, r1, #0
add r4, r0, #0
add r0, r5, #0
str r0, [sp, #0x38]
add r0, #0x3c
str r0, [sp, #0x38]
mov r0, #0xb7
lsl r0, r0, #2
ldrb r1, [r4]
add r7, r3, #0
ldr r6, [r5, #0x34]
str r0, [sp, #0x3c]
cmp r1, #0xa
bhi _0225B5FA
add r0, r1, r1
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225B544: ; jump table
.short _0225B55A - _0225B544 - 2 ; case 0
.short _0225B568 - _0225B544 - 2 ; case 1
.short _0225B586 - _0225B544 - 2 ; case 2
.short _0225B5D4 - _0225B544 - 2 ; case 3
.short _0225B5F2 - _0225B544 - 2 ; case 4
.short _0225B606 - _0225B544 - 2 ; case 5
.short _0225B6E2 - _0225B544 - 2 ; case 6
.short _0225B700 - _0225B544 - 2 ; case 7
.short _0225B748 - _0225B544 - 2 ; case 8
.short _0225B84E - _0225B544 - 2 ; case 9
.short _0225B880 - _0225B544 - 2 ; case 10
_0225B55A:
ldrh r0, [r4, #6]
cmp r0, #1
bne _0225B5FA
add r0, r1, #1
add sp, #0x50
strb r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_0225B568:
mov r0, #4
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r1, #0
ldr r3, _0225B890 ; =0x00007FFF
str r7, [sp, #8]
add r2, r1, #0
bl BeginNormalPaletteFade
ldrb r0, [r4]
add sp, #0x50
add r0, r0, #1
strb r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_0225B586:
bl IsPaletteFadeFinished
cmp r0, #1
bne _0225B5FA
add r0, r6, #0
bl ov45_0222A5C0
mov r2, #0xb7
lsl r2, r2, #2
str r0, [sp]
ldr r1, [sp, #0x38]
add r0, r4, #0
add r2, r5, r2
add r3, r7, #0
bl ov49_0225B9AC
mov r0, #4
strb r0, [r4, #1]
mov r0, #1
add r1, r0, #0
bl GX_EngineBToggleLayers
mov r0, #2
mov r1, #1
bl GX_EngineBToggleLayers
mov r0, #4
mov r1, #1
bl GX_EngineBToggleLayers
mov r0, #0x10
mov r1, #1
bl GX_EngineBToggleLayers
ldrb r0, [r4]
add sp, #0x50
add r0, r0, #1
strb r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_0225B5D4:
mov r0, #6
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
ldr r3, _0225B890 ; =0x00007FFF
str r7, [sp, #8]
mov r0, #4
add r2, r1, #0
bl BeginNormalPaletteFade
ldrb r0, [r4]
add sp, #0x50
add r0, r0, #1
strb r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_0225B5F2:
bl IsPaletteFadeFinished
cmp r0, #1
beq _0225B5FC
_0225B5FA:
b _0225B88C
_0225B5FC:
ldrb r0, [r4]
add sp, #0x50
add r0, r0, #1
strb r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_0225B606:
cmp r2, #1
beq _0225B708
ldrb r0, [r4, #1]
cmp r0, #4
bhi _0225B6D2
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225B61C: ; jump table
.short _0225B6D2 - _0225B61C - 2 ; case 0
.short _0225B626 - _0225B61C - 2 ; case 1
.short _0225B6C2 - _0225B61C - 2 ; case 2
.short _0225B642 - _0225B61C - 2 ; case 3
.short _0225B6D2 - _0225B61C - 2 ; case 4
_0225B626:
mov r2, #0x45
lsl r2, r2, #2
add r0, r4, r2
add r2, #0x38
ldr r1, [sp, #0x38]
ldr r2, [r4, r2]
bl ov49_0225C8D4
cmp r0, #1
bne _0225B6D2
add r0, r5, #0
bl ov49_0225B444
b _0225B6D2
_0225B642:
ldr r2, _0225B894 ; =0x00000153
ldrb r0, [r4, r2]
cmp r0, #0
beq _0225B66E
sub r1, r2, #3
mov r0, #0xf7
sub r2, r2, #1
lsl r0, r0, #2
ldrh r1, [r4, r1]
ldrb r2, [r4, r2]
ldr r0, [r5, r0]
bl ov49_02268968
cmp r0, #0
bne _0225B66E
ldr r0, _0225B894 ; =0x00000153
mov r1, #0
strb r1, [r4, r0]
sub r0, #0x3f
add r0, r4, r0
bl ov49_0225CB68
_0225B66E:
mov r2, #0x45
lsl r2, r2, #2
add r0, r4, r2
add r2, #0x38
ldr r1, [sp, #0x38]
ldr r2, [r4, r2]
add r3, r7, #0
bl ov49_0225C8D4
cmp r0, #1
bne _0225B6D2
add r0, r6, #0
bl ov45_0222A53C
add r1, r0, #0
add r0, r6, #0
bl ov45_0222ADD8
add r0, r6, #0
bl ov45_0222AE54
add r0, r6, #0
bl ov45_0222A53C
add r1, r0, #0
add r0, r6, #0
bl ov45_0222ADA8
add r1, sp, #0x4c
add r2, sp, #0x48
bl ov45_0222AE08
ldr r0, _0225B894 ; =0x00000153
mov r1, #1
strb r1, [r4, r0]
sub r1, r0, #3
ldr r2, [sp, #0x4c]
sub r0, r0, #1
strh r2, [r4, r1]
ldr r1, [sp, #0x48]
strb r1, [r4, r0]
b _0225B6D2
_0225B6C2:
ldr r1, [sp, #0x3c]
add r0, r4, #0
add r1, #0x3c
str r1, [sp, #0x3c]
add r0, #8
add r1, r5, r1
bl ov49_0225BBCC
_0225B6D2:
ldrb r0, [r4, #2]
cmp r0, #0
beq _0225B708
ldrb r0, [r4]
add sp, #0x50
add r0, r0, #1
strb r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_0225B6E2:
mov r0, #3
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r2, #0
str r7, [sp, #8]
mov r0, #4
add r3, r2, #0
bl BeginNormalPaletteFade
ldrb r0, [r4]
add sp, #0x50
add r0, r0, #1
strb r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_0225B700:
bl IsPaletteFadeFinished
cmp r0, #1
beq _0225B70A
_0225B708:
b _0225B88C
_0225B70A:
ldrb r0, [r4, #1]
cmp r0, #4
bhi _0225B73E
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225B71C: ; jump table
.short _0225B73E - _0225B71C - 2 ; case 0
.short _0225B726 - _0225B71C - 2 ; case 1
.short _0225B730 - _0225B71C - 2 ; case 2
.short _0225B726 - _0225B71C - 2 ; case 3
.short _0225B726 - _0225B71C - 2 ; case 4
_0225B726:
ldr r1, [sp, #0x38]
add r0, r4, #0
bl ov49_0225BA20
b _0225B73E
_0225B730:
mov r1, #0xc6
lsl r1, r1, #2
ldr r2, [sp, #0x38]
add r0, r4, #0
add r1, r5, r1
bl ov49_0225B99C
_0225B73E:
ldrb r0, [r4]
add sp, #0x50
add r0, r0, #1
strb r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_0225B748:
ldrb r0, [r4, #2]
cmp r0, #4
bhi _0225B840
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225B75A: ; jump table
.short _0225B840 - _0225B75A - 2 ; case 0
.short _0225B764 - _0225B75A - 2 ; case 1
.short _0225B77E - _0225B75A - 2 ; case 2
.short _0225B810 - _0225B75A - 2 ; case 3
.short _0225B764 - _0225B75A - 2 ; case 4
_0225B764:
add r0, r6, #0
bl ov45_0222A5C0
mov r2, #0xb7
lsl r2, r2, #2
str r0, [sp]
ldr r1, [sp, #0x38]
add r0, r4, #0
add r2, r5, r2
add r3, r7, #0
bl ov49_0225B9AC
b _0225B840
_0225B77E:
add r0, r6, #0
bl ov45_0222A5C0
str r0, [sp, #0x28]
ldrb r0, [r4, #3]
str r0, [sp, #0x24]
add r0, r6, #0
bl ov45_0222A53C
ldr r1, [sp, #0x24]
cmp r1, r0
bne _0225B7A4
add r0, r6, #0
bl ov45_0222A5C0
str r0, [sp, #0x20]
mov r0, #1
str r0, [sp, #0x2c]
b _0225B7B0
_0225B7A4:
add r0, r6, #0
bl ov45_0222A578
str r0, [sp, #0x20]
mov r0, #0
str r0, [sp, #0x2c]
_0225B7B0:
ldrb r1, [r4, #3]
add r0, r6, #0
bl ov45_0222AB28
str r0, [sp, #0x34]
ldrh r0, [r4, #4]
cmp r0, #1
bne _0225B7DC
ldrb r1, [r4, #3]
add r0, r6, #0
bl ov45_0222AB48
str r0, [sp, #0x30]
ldrb r1, [r4, #3]
add r0, r6, #0
bl ov45_0222AB58
cmp r0, #0
bne _0225B7E0
mov r1, #0
str r1, [sp, #0x30]
b _0225B7E0
_0225B7DC:
mov r0, #0
str r0, [sp, #0x30]
_0225B7E0:
ldr r1, [sp, #0x2c]
ldr r3, [sp, #0x3c]
str r1, [sp]
ldr r1, [sp, #0x20]
str r7, [sp, #4]
str r1, [sp, #8]
ldr r1, [sp, #0x28]
ldr r2, [sp, #0x38]
str r1, [sp, #0xc]
ldr r1, [sp, #0x34]
add r3, r5, r3
str r1, [sp, #0x10]
ldr r1, [sp, #0x30]
str r1, [sp, #0x14]
mov r1, #0xc6
str r0, [sp, #0x18]
mov r0, #1
lsl r1, r1, #2
str r0, [sp, #0x1c]
add r0, r4, #0
add r1, r5, r1
bl ov49_0225B944
b _0225B840
_0225B810:
add r0, r6, #0
bl ov45_0222A53C
add r1, r0, #0
add r0, r6, #0
bl ov45_0222ADA8
mov r1, #0
mvn r1, r1
cmp r0, r1
bne _0225B82C
bl GF_AssertFail
mov r0, #0
_0225B82C:
add r1, sp, #0x44
add r2, sp, #0x40
bl ov45_0222AE08
ldr r1, [sp, #0x38]
ldr r3, [sp, #0x40]
add r0, r4, #0
add r2, r7, #0
bl ov49_0225B9F0
_0225B840:
mov r0, #0
strb r0, [r4, #2]
ldrb r0, [r4]
add sp, #0x50
add r0, r0, #1
strb r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_0225B84E:
mov r0, #3
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
str r7, [sp, #8]
mov r0, #4
add r2, r1, #0
mov r3, #0
bl BeginNormalPaletteFade
ldrb r0, [r4, #1]
cmp r0, #2
bne _0225B876
mov r1, #0xc6
add r0, r4, #0
lsl r1, r1, #2
add r0, #8
add r1, r5, r1
bl ov49_0225BBCC
_0225B876:
ldrb r0, [r4]
add sp, #0x50
add r0, r0, #1
strb r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
_0225B880:
bl IsPaletteFadeFinished
cmp r0, #1
bne _0225B88C
mov r0, #5
strb r0, [r4]
_0225B88C:
add sp, #0x50
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0225B890: .word 0x00007FFF
_0225B894: .word 0x00000153
thumb_func_end ov49_0225B518
thumb_func_start ov49_0225B898
ov49_0225B898: ; 0x0225B898
ldrb r0, [r0]
bx lr
thumb_func_end ov49_0225B898
thumb_func_start ov49_0225B89C
ov49_0225B89C: ; 0x0225B89C
mov r3, #2
strb r3, [r0, #2]
strb r1, [r0, #3]
strh r2, [r0, #4]
bx lr
.balign 4, 0
thumb_func_end ov49_0225B89C
thumb_func_start ov49_0225B8A8
ov49_0225B8A8: ; 0x0225B8A8
push {r3, r4, r5, r6, r7, lr}
add r4, r2, #0
add r5, r0, #0
add r6, r1, #0
add r7, r3, #0
cmp r4, #0x1b
blo _0225B8BA
bl GF_AssertFail
_0225B8BA:
ldrb r0, [r5, #1]
cmp r0, #2
beq _0225B8C4
bl GF_AssertFail
_0225B8C4:
ldrb r0, [r5, #1]
cmp r0, #2
bne _0225B8DE
mov r2, #0x53
str r4, [sp]
lsl r2, r2, #2
add r0, r5, #0
ldr r2, [r5, r2]
add r0, #8
add r1, r6, #0
add r3, r7, #0
bl ov49_0225BFC4
_0225B8DE:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225B8A8
thumb_func_start ov49_0225B8E0
ov49_0225B8E0: ; 0x0225B8E0
ldrb r1, [r0, #1]
cmp r1, #1
beq _0225B8EA
mov r1, #1
strb r1, [r0, #2]
_0225B8EA:
bx lr
thumb_func_end ov49_0225B8E0
thumb_func_start ov49_0225B8EC
ov49_0225B8EC: ; 0x0225B8EC
ldrb r1, [r0, #1]
cmp r1, #3
beq _0225B8F6
mov r1, #3
strb r1, [r0, #2]
_0225B8F6:
bx lr
thumb_func_end ov49_0225B8EC
thumb_func_start ov49_0225B8F8
ov49_0225B8F8: ; 0x0225B8F8
ldrb r0, [r0, #3]
bx lr
thumb_func_end ov49_0225B8F8
thumb_func_start ov49_0225B8FC
ov49_0225B8FC: ; 0x0225B8FC
ldrb r1, [r0, #2]
cmp r1, #2
bne _0225B906
mov r0, #1
bx lr
_0225B906:
ldrb r0, [r0, #1]
cmp r0, #2
bne _0225B910
mov r0, #1
bx lr
_0225B910:
mov r0, #0
bx lr
thumb_func_end ov49_0225B8FC
thumb_func_start ov49_0225B914
ov49_0225B914: ; 0x0225B914
ldrb r1, [r0, #2]
cmp r1, #0
bne _0225B924
ldrb r0, [r0, #1]
cmp r0, #2
bne _0225B924
mov r0, #1
bx lr
_0225B924:
mov r0, #0
bx lr
thumb_func_end ov49_0225B914
thumb_func_start ov49_0225B928
ov49_0225B928: ; 0x0225B928
ldr r3, _0225B930 ; =ov49_0225BFEC
add r0, #8
bx r3
nop
_0225B930: .word ov49_0225BFEC
thumb_func_end ov49_0225B928
thumb_func_start ov49_0225B934
ov49_0225B934: ; 0x0225B934
ldrb r0, [r0, #2]
cmp r0, #0
beq _0225B93E
mov r0, #1
bx lr
_0225B93E:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_end ov49_0225B934
thumb_func_start ov49_0225B944
ov49_0225B944: ; 0x0225B944
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x28
add r5, r0, #0
add r4, r3, #0
ldrb r3, [r5, #1]
add r6, r1, #0
add r7, r2, #0
cmp r3, #2
bne _0225B95A
bl ov49_0225B99C
_0225B95A:
ldr r0, [sp, #0x40]
str r4, [sp]
str r0, [sp, #4]
mov r0, #0x53
lsl r0, r0, #2
ldr r0, [r5, r0]
add r2, r5, #0
str r0, [sp, #8]
ldr r0, [sp, #0x44]
add r1, r6, #0
str r0, [sp, #0xc]
ldr r0, [sp, #0x48]
add r2, #8
str r0, [sp, #0x10]
ldr r0, [sp, #0x4c]
add r3, r7, #0
str r0, [sp, #0x14]
ldr r0, [sp, #0x50]
str r0, [sp, #0x18]
ldr r0, [sp, #0x54]
str r0, [sp, #0x1c]
ldr r0, [sp, #0x58]
str r0, [sp, #0x20]
ldr r0, [sp, #0x5c]
str r0, [sp, #0x24]
add r0, r5, #0
bl ov49_0225BBD0
mov r0, #2
strb r0, [r5, #1]
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225B944
thumb_func_start ov49_0225B99C
ov49_0225B99C: ; 0x0225B99C
push {r4, lr}
add r4, r0, #0
add r0, #8
bl ov49_0225BF80
mov r0, #0
strb r0, [r4, #1]
pop {r4, pc}
thumb_func_end ov49_0225B99C
thumb_func_start ov49_0225B9AC
ov49_0225B9AC: ; 0x0225B9AC
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
ldrb r0, [r5, #1]
add r4, r1, #0
add r7, r2, #0
add r6, r3, #0
cmp r0, #1
beq _0225B9C8
add r0, #0xfd
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #1
bhi _0225B9D0
_0225B9C8:
add r0, r5, #0
add r1, r4, #0
bl ov49_0225BA20
_0225B9D0:
mov r0, #0x53
lsl r0, r0, #2
ldr r1, [r5, r0]
sub r0, #0x38
str r1, [sp]
ldr r3, [sp, #0x20]
add r0, r5, r0
add r1, r4, #0
add r2, r7, #0
str r6, [sp, #4]
bl ov49_0225C970
mov r0, #1
strb r0, [r5, #1]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225B9AC
thumb_func_start ov49_0225B9F0
ov49_0225B9F0: ; 0x0225B9F0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r2, #0
ldrb r2, [r5, #1]
add r6, r1, #0
add r7, r3, #0
cmp r2, #3
bne _0225BA04
bl ov49_0225BA20
_0225BA04:
mov r3, #0x45
lsl r3, r3, #2
add r0, r5, r3
str r4, [sp]
add r3, #0x38
ldr r3, [r5, r3]
add r1, r6, #0
add r2, r7, #0
bl ov49_0225CA30
mov r0, #3
strb r0, [r5, #1]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225B9F0
thumb_func_start ov49_0225BA20
ov49_0225BA20: ; 0x0225BA20
push {r4, lr}
add r4, r0, #0
mov r0, #0x45
lsl r0, r0, #2
add r0, r4, r0
bl ov49_0225CAA8
mov r0, #0
strb r0, [r4, #1]
pop {r4, pc}
thumb_func_end ov49_0225BA20
thumb_func_start ov49_0225BA34
ov49_0225BA34: ; 0x0225BA34
ldr r2, _0225BA3C ; =0x0000011A
strh r1, [r0, r2]
bx lr
nop
_0225BA3C: .word 0x0000011A
thumb_func_end ov49_0225BA34
thumb_func_start ov49_0225BA40
ov49_0225BA40: ; 0x0225BA40
add r1, r0, #0
mov r0, #0x55
lsl r0, r0, #2
strh r2, [r1, r0]
add r0, r0, #2
strh r3, [r1, r0]
ldr r3, _0225BA54 ; =sub_0200E374
ldr r0, _0225BA58 ; =ov49_0225BA5C
mov r2, #0
bx r3
.balign 4, 0
_0225BA54: .word sub_0200E374
_0225BA58: .word ov49_0225BA5C
thumb_func_end ov49_0225BA40
thumb_func_start ov49_0225BA5C
ov49_0225BA5C: ; 0x0225BA5C
push {r4, r5, r6, lr}
sub sp, #8
add r4, r1, #0
mov r3, #0
ldr r1, _0225BAB8 ; =0x00000156
str r3, [sp]
add r5, r0, #0
ldrh r0, [r4, r1]
mov r2, #4
str r0, [sp, #4]
add r0, r1, #0
sub r1, r1, #2
sub r0, #0xa
ldrh r1, [r4, r1]
ldr r0, [r4, r0]
bl GfGfxLoader_GXLoadPalFromOpenNarc
mov r1, #0xa0
add r2, r1, #0
add r2, #0xb6
ldrh r2, [r4, r2]
mov r0, #4
bl LoadFontPal0
bl sub_020776B4
add r6, r0, #0
bl sub_02077690
add r1, r0, #0
mov r0, #0x60
str r0, [sp]
add r0, #0xf6
ldrh r0, [r4, r0]
mov r3, #0x16
mov r2, #4
str r0, [sp, #4]
add r0, r6, #0
lsl r3, r3, #4
bl GfGfxLoader_GXLoadPal
add r0, r5, #0
bl DestroySysTask
add sp, #8
pop {r4, r5, r6, pc}
.balign 4, 0
_0225BAB8: .word 0x00000156
thumb_func_end ov49_0225BA5C
thumb_func_start ov49_0225BABC
ov49_0225BABC: ; 0x0225BABC
push {r4, r5, r6, lr}
sub sp, #0x10
add r6, r1, #0
add r5, r2, #0
ldr r4, [sp, #0x20]
cmp r3, #0
bne _0225BADC
mov r3, #0
str r3, [sp]
add r0, r5, #0
mov r1, #0x56
mov r2, #4
str r4, [sp, #4]
bl GfGfxLoader_GXLoadPalFromOpenNarc
b _0225BAEC
_0225BADC:
mov r3, #0
str r3, [sp]
add r0, r5, #0
mov r1, #0x57
mov r2, #4
str r4, [sp, #4]
bl GfGfxLoader_GXLoadPalFromOpenNarc
_0225BAEC:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
str r4, [sp, #0xc]
ldr r2, [r6]
add r0, r5, #0
mov r1, #0x36
mov r3, #4
bl GfGfxLoader_LoadCharDataFromOpenNarc
mov r0, #4
mov r1, #0xa0
add r2, r4, #0
bl LoadFontPal0
add sp, #0x10
pop {r4, r5, r6, pc}
thumb_func_end ov49_0225BABC
thumb_func_start ov49_0225BB10
ov49_0225BB10: ; 0x0225BB10
bx lr
.balign 4, 0
thumb_func_end ov49_0225BB10
thumb_func_start ov49_0225BB14
ov49_0225BB14: ; 0x0225BB14
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r0, #0
ldr r0, [sp, #0x2c]
add r6, r3, #0
str r0, [sp]
add r0, r1, #0
add r1, r2, #0
mov r2, #0
add r3, sp, #0xc
ldr r4, [sp, #0x28]
bl GfGfxLoader_GetScrnDataFromOpenNarc
ldr r2, [sp, #0xc]
add r7, r0, #0
ldr r0, [r2, #8]
add r2, #0xc
lsr r1, r0, #1
mov r0, #0
cmp r1, #0
ble _0225BB4C
_0225BB3E:
ldrh r3, [r2]
add r0, r0, #1
add r3, r3, r4
strh r3, [r2]
add r2, r2, #2
cmp r0, r1
blt _0225BB3E
_0225BB4C:
ldr r2, [sp, #0xc]
mov r3, #0
str r3, [sp]
ldrh r0, [r2]
lsl r1, r6, #0x18
lsr r1, r1, #0x18
lsl r0, r0, #0x15
lsr r0, r0, #0x18
str r0, [sp, #4]
ldrh r0, [r2, #2]
add r2, #0xc
lsl r0, r0, #0x15
lsr r0, r0, #0x18
str r0, [sp, #8]
ldr r0, [r5]
bl LoadRectToBgTilemapRect
lsl r1, r6, #0x18
ldr r0, [r5]
lsr r1, r1, #0x18
bl ScheduleBgTilemapBufferTransfer
add r0, r7, #0
bl FreeToHeap
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225BB14
thumb_func_start ov49_0225BB84
ov49_0225BB84: ; 0x0225BB84
push {r3, r4, r5, r6, r7, lr}
ldr r4, _0225BBA4 ; =ov49_022697F4
add r7, r1, #0
mov r6, #0
add r5, r0, #4
_0225BB8E:
ldr r0, [r7]
add r1, r5, #0
add r2, r4, #0
bl AddWindow
add r6, r6, #1
add r4, #8
add r5, #0x10
cmp r6, #5
blt _0225BB8E
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0225BBA4: .word ov49_022697F4
thumb_func_end ov49_0225BB84
thumb_func_start ov49_0225BBA8
ov49_0225BBA8: ; 0x0225BBA8
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r3, [r4, #0x54]
cmp r3, #0
beq _0225BBB6
bl ov49_0225BF80
_0225BBB6:
mov r5, #0
add r4, r4, #4
_0225BBBA:
add r0, r4, #0
bl RemoveWindow
add r5, r5, #1
add r4, #0x10
cmp r5, #5
blt _0225BBBA
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_0225BBA8
thumb_func_start ov49_0225BBCC
ov49_0225BBCC: ; 0x0225BBCC
bx lr
.balign 4, 0
thumb_func_end ov49_0225BBCC
thumb_func_start ov49_0225BBD0
ov49_0225BBD0: ; 0x0225BBD0
push {r4, r5, r6, r7, lr}
sub sp, #0x14
str r0, [sp, #0xc]
ldr r0, [sp, #0x30]
ldr r4, [sp, #0x28]
str r0, [sp, #0x30]
ldr r0, [sp, #0x34]
add r5, r2, #0
str r0, [sp, #0x34]
ldr r0, [sp, #0x38]
add r6, r3, #0
str r0, [sp, #0x38]
add r0, r4, #0
bl ov49_0225B438
ldr r0, [sp, #0x38]
bl ov45_0222A9CC
cmp r0, #0
bne _0225BC1C
ldr r0, [sp, #0x40]
ldr r7, _0225BE98 ; =0x00070800
cmp r0, #0
bne _0225BC0E
ldr r0, [sp, #0xc]
ldr r3, [sp, #0x34]
add r1, r6, #0
mov r2, #0x56
bl ov49_0225BA40
b _0225BC40
_0225BC0E:
ldr r0, [sp, #0xc]
ldr r3, [sp, #0x34]
add r1, r6, #0
mov r2, #0x58
bl ov49_0225BA40
b _0225BC40
_0225BC1C:
ldr r0, [sp, #0x40]
mov r7, #0xc1
lsl r7, r7, #0xa
cmp r0, #0
bne _0225BC34
ldr r0, [sp, #0xc]
ldr r3, [sp, #0x34]
add r1, r6, #0
mov r2, #0x57
bl ov49_0225BA40
b _0225BC40
_0225BC34:
ldr r0, [sp, #0xc]
ldr r3, [sp, #0x34]
add r1, r6, #0
mov r2, #0x58
bl ov49_0225BA40
_0225BC40:
ldr r0, [r6]
mov r1, #4
mov r2, #0
bl BgFillTilemapBufferAndSchedule
ldr r0, [r6]
mov r1, #5
mov r2, #0
bl BgFillTilemapBufferAndSchedule
ldr r0, [r6]
mov r1, #6
mov r2, #0
bl BgFillTilemapBufferAndSchedule
add r0, r5, #0
bl ov49_0225C3C0
mov r0, #0
str r0, [sp]
ldr r0, [sp, #0x34]
ldr r1, [sp, #0x30]
str r0, [sp, #4]
add r0, r6, #0
mov r2, #0x5c
mov r3, #4
bl ov49_0225BB14
ldr r0, [sp, #0x34]
bl PlayerProfile_New
str r0, [sp, #0x10]
ldr r0, [sp, #0x38]
ldr r1, [sp, #0x10]
ldr r2, [sp, #0x34]
bl ov45_0222A844
mov r2, #0
str r2, [sp]
str r2, [sp, #4]
add r0, r5, #0
add r1, r4, #0
mov r3, #0x2c
str r7, [sp, #8]
bl ov49_0225C3DC
ldr r0, [sp, #0x10]
bl PlayerProfile_GetTrainerID_VisibleHalf
add r1, r0, #0
mov r0, #2
str r0, [sp]
add r0, r4, #0
mov r2, #5
mov r3, #0
bl ov49_0225B3A8
mov r0, #0x7a
str r0, [sp]
mov r2, #0
ldr r0, _0225BE9C ; =0x00010200
str r2, [sp, #4]
str r0, [sp, #8]
add r0, r5, #0
add r1, r4, #0
mov r3, #0x31
bl ov49_0225C414
mov r2, #0
str r2, [sp]
mov r0, #0x10
str r0, [sp, #4]
add r0, r5, #0
add r1, r4, #0
mov r3, #0x2d
str r7, [sp, #8]
bl ov49_0225C3DC
ldr r2, [sp, #0x10]
add r0, r5, #0
add r1, r4, #0
bl ov49_0225C470
mov r0, #0x7a
str r0, [sp]
mov r0, #0x10
str r0, [sp, #4]
ldr r0, _0225BE9C ; =0x00010200
add r1, r4, #0
str r0, [sp, #8]
add r0, r5, #0
mov r2, #0
mov r3, #0x32
bl ov49_0225C414
add r0, r5, #0
mov r1, #0
bl ov49_0225C460
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
add r0, r5, #0
add r1, r4, #0
mov r2, #1
mov r3, #0x2e
str r7, [sp, #8]
bl ov49_0225C3DC
ldr r0, [sp, #0x38]
bl ov45_0222AA84
cmp r0, #0
bne _0225BD3E
mov r0, #0x20
str r0, [sp]
mov r0, #0x10
str r0, [sp, #4]
ldr r0, _0225BE9C ; =0x00010200
add r1, r4, #0
str r0, [sp, #8]
add r0, r5, #0
mov r2, #1
mov r3, #0x37
bl ov49_0225C3DC
b _0225BD60
_0225BD3E:
ldr r2, [sp, #0x38]
add r0, r5, #0
add r1, r4, #0
bl ov49_0225C480
mov r0, #0x20
str r0, [sp]
mov r0, #0x10
str r0, [sp, #4]
ldr r0, _0225BE9C ; =0x00010200
add r1, r4, #0
str r0, [sp, #8]
add r0, r5, #0
mov r2, #1
mov r3, #0x33
bl ov49_0225C3DC
_0225BD60:
add r0, r5, #0
mov r1, #1
bl ov49_0225C460
ldr r0, [sp, #0x44]
cmp r0, #0
beq _0225BE06
mov r0, #1
str r0, [r5]
ldr r2, [sp, #0x10]
add r0, r5, #0
add r1, r4, #0
bl ov49_0225C470
mov r0, #8
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
add r0, r5, #0
add r1, r4, #0
mov r2, #4
mov r3, #0x38
str r7, [sp, #8]
bl ov49_0225C3DC
ldr r2, [sp, #0x48]
add r0, r5, #0
add r1, r4, #0
bl ov49_0225C4B0
mov r0, #6
str r0, [sp]
mov r0, #0x18
str r0, [sp, #4]
ldr r0, _0225BE9C ; =0x00010200
add r1, r4, #0
str r0, [sp, #8]
add r0, r5, #0
mov r2, #4
mov r3, #0x3b
bl ov49_0225C3DC
mov r0, #0x5a
str r0, [sp]
mov r0, #0x18
str r0, [sp, #4]
ldr r0, _0225BE9C ; =0x00010200
add r1, r4, #0
str r0, [sp, #8]
add r0, r5, #0
mov r2, #4
mov r3, #0x3c
bl ov49_0225C3DC
mov r0, #6
str r0, [sp]
mov r0, #0x2c
str r0, [sp, #4]
ldr r0, _0225BE9C ; =0x00010200
add r1, r4, #0
str r0, [sp, #8]
add r0, r5, #0
mov r2, #4
mov r3, #0x3d
bl ov49_0225C3DC
mov r0, #0x5a
str r0, [sp]
mov r0, #0x2c
str r0, [sp, #4]
ldr r0, _0225BE9C ; =0x00010200
add r1, r4, #0
str r0, [sp, #8]
add r0, r5, #0
mov r2, #4
mov r3, #0x3e
bl ov49_0225C3DC
add r0, r5, #0
mov r1, #4
bl ov49_0225C460
b _0225BE3A
_0225BE06:
mov r1, #0
str r1, [r5]
mov r0, #8
str r0, [sp]
str r1, [sp, #4]
add r0, r5, #0
add r1, r4, #0
mov r2, #4
mov r3, #0x30
str r7, [sp, #8]
bl ov49_0225C3DC
add r0, r5, #0
mov r1, #4
bl ov49_0225C460
ldr r0, [sp, #0x38]
ldr r2, [sp, #0x30]
str r0, [sp]
ldr r0, [sp, #0x3c]
ldr r3, [sp, #0x34]
str r0, [sp, #4]
add r0, r5, #0
add r1, r6, #0
bl ov49_0225C4CC
_0225BE3A:
ldr r0, [sp, #0x38]
bl ov45_0222AAC8
str r0, [sp]
ldr r0, [sp, #0x4c]
ldr r2, [sp, #0x30]
str r0, [sp, #4]
ldr r3, [sp, #0x34]
add r0, r5, #0
add r1, r6, #0
bl ov49_0225BFF0
ldr r0, [sp, #0x2c]
cmp r0, #1
bne _0225BE6A
ldr r0, [sp, #0x38]
bl ov45_0222A9CC
cmp r0, #1
bne _0225BE66
mov r0, #0x61
b _0225BE70
_0225BE66:
mov r0, #0
b _0225BE70
_0225BE6A:
ldr r0, [sp, #0x38]
bl ov45_0222AA5C
_0225BE70:
ldr r2, [sp, #0x30]
str r0, [sp]
ldr r3, [sp, #0x34]
add r0, r5, #0
add r1, r6, #0
bl ov49_0225C180
ldr r0, [sp, #0x38]
ldr r3, [sp, #0x34]
str r0, [sp]
ldr r0, [sp, #0xc]
add r1, r5, #0
add r2, r6, #0
bl ov49_0225BEA0
ldr r0, [sp, #0x10]
bl FreeToHeap
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_0225BE98: .word 0x00070800
_0225BE9C: .word 0x00010200
thumb_func_end ov49_0225BBD0
thumb_func_start ov49_0225BEA0
ov49_0225BEA0: ; 0x0225BEA0
push {r4, r5, r6, r7, lr}
sub sp, #0x34
ldr r0, [sp, #0x48]
ldr r6, _0225BF78 ; =ov49_0226978C
str r0, [sp, #0x48]
mov r0, #0
str r0, [sp, #0x24]
ldr r0, _0225BF7C ; =ov49_022696F8
add r5, r2, #0
str r3, [sp, #0x1c]
str r0, [sp, #0x20]
mov r4, #2
_0225BEB8:
ldr r0, [sp, #0x48]
ldr r1, [sp, #0x24]
bl ov45_0222AAEC
lsl r0, r0, #0x10
lsr r0, r0, #0x10
beq _0225BF60
bl ov45_0222D7C0
lsl r0, r0, #0x10
lsr r7, r0, #0x10
bl sub_020776B4
str r0, [sp, #0x28]
add r0, r7, #0
bl sub_02077678
add r1, r0, #0
mov r0, #1
str r0, [sp]
ldr r0, [sp, #0x28]
ldr r3, [sp, #0x1c]
mov r2, #1
bl GfGfxLoader_LoadFromNarc
add r1, sp, #0x30
str r0, [sp, #0x2c]
bl NNS_G2dGetUnpackedCharacterData
ldr r0, [sp, #0x20]
mov r1, #6
ldrh r0, [r0]
add r3, r1, #0
add r3, #0xfa
str r0, [sp]
ldr r2, [sp, #0x30]
ldr r0, [r5]
ldr r2, [r2, #0x14]
bl BG_LoadCharTilesData
ldr r0, [sp, #0x2c]
bl FreeToHeap
mov r0, #4
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
lsl r3, r4, #0x18
str r6, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
str r0, [sp, #0x10]
mov r0, #4
str r0, [sp, #0x14]
mov r0, #2
str r0, [sp, #0x18]
ldr r0, [r5]
mov r1, #6
mov r2, #0x1a
lsr r3, r3, #0x18
bl CopyToBgTilemapRect
add r0, r7, #0
bl sub_0207769C
mov r1, #4
add r0, #0xb
str r1, [sp]
mov r1, #2
lsl r0, r0, #0x18
str r1, [sp, #4]
lsr r0, r0, #0x18
str r0, [sp, #8]
lsl r3, r4, #0x18
ldr r0, [r5]
mov r1, #6
mov r2, #0x1a
lsr r3, r3, #0x18
bl BgTilemapRectChangePalette
ldr r0, [r5]
mov r1, #6
bl ScheduleBgTilemapBufferTransfer
_0225BF60:
ldr r0, [sp, #0x20]
add r6, #0x10
add r0, r0, #2
str r0, [sp, #0x20]
ldr r0, [sp, #0x24]
add r4, r4, #2
add r0, r0, #1
str r0, [sp, #0x24]
cmp r0, #2
blt _0225BEB8
add sp, #0x34
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_0225BF78: .word ov49_0226978C
_0225BF7C: .word ov49_022696F8
thumb_func_end ov49_0225BEA0
thumb_func_start ov49_0225BF80
ov49_0225BF80: ; 0x0225BF80
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r1, [r5]
add r4, r2, #0
cmp r1, #1
bne _0225BF92
mov r0, #0
str r0, [r5]
b _0225BF98
_0225BF92:
add r1, r4, #0
bl ov49_0225C78C
_0225BF98:
add r0, r5, #0
add r1, r4, #0
bl ov49_0225C148
add r0, r5, #0
add r1, r4, #0
bl ov49_0225C328
ldr r0, [r4]
mov r1, #4
bl BgClearTilemapBufferAndCommit
ldr r0, [r4]
mov r1, #5
bl BgClearTilemapBufferAndCommit
ldr r0, [r4]
mov r1, #6
bl BgClearTilemapBufferAndCommit
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_0225BF80
thumb_func_start ov49_0225BFC4
ov49_0225BFC4: ; 0x0225BFC4
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
bl ov49_0225C148
ldr r0, [sp, #0x20]
add r1, r4, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
add r0, r5, #0
add r2, r6, #0
add r3, r7, #0
bl ov49_0225BFF0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225BFC4
thumb_func_start ov49_0225BFEC
ov49_0225BFEC: ; 0x0225BFEC
ldr r0, [r0]
bx lr
thumb_func_end ov49_0225BFEC
thumb_func_start ov49_0225BFF0
ov49_0225BFF0: ; 0x0225BFF0
push {r4, r5, r6, r7, lr}
sub sp, #0x7c
add r5, r0, #0
ldr r0, [sp, #0x90]
add r4, r1, #0
add r6, r3, #0
str r2, [sp, #0x2c]
cmp r0, #0x1b
blo _0225C006
bl GF_AssertFail
_0225C006:
ldr r0, [r5, #0x54]
cmp r0, #0
beq _0225C010
bl GF_AssertFail
_0225C010:
ldr r0, [sp, #0x90]
mov r1, #3
bl _u32_div_f
add r7, r0, #0
ldr r0, [sp, #0x90]
mov r1, #3
bl _u32_div_f
str r1, [sp, #0x30]
lsl r0, r7, #1
str r0, [sp, #0x34]
mov r1, #0x64
str r1, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r2, [sp, #0x34]
str r6, [sp, #8]
add r1, #0xcc
ldr r0, [r4, r1]
add r2, r7, r2
ldr r1, [sp, #0x2c]
add r2, #0x3d
mov r3, #0
bl AddCharResObjFromOpenNarc
str r0, [r5, #0x58]
bl sub_0200ADA4
cmp r0, #0
bne _0225C052
bl GF_AssertFail
_0225C052:
ldr r0, [r5, #0x58]
bl sub_0200A740
mov r1, #0x64
str r1, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #3
str r0, [sp, #8]
str r6, [sp, #0xc]
add r1, #0xd0
ldr r0, [r4, r1]
ldr r1, [sp, #0x2c]
mov r2, #0x59
mov r3, #0
bl AddPlttResObjFromOpenNarc
str r0, [r5, #0x5c]
bl sub_0200B00C
cmp r0, #0
bne _0225C082
bl GF_AssertFail
_0225C082:
ldr r0, [r5, #0x5c]
bl sub_0200A740
mov r1, #0x64
str r1, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r2, [sp, #0x34]
str r6, [sp, #8]
add r1, #0xd4
ldr r0, [r4, r1]
add r2, r7, r2
ldr r1, [sp, #0x2c]
add r2, #0x3c
mov r3, #0
bl AddCellOrAnimResObjFromOpenNarc
str r0, [r5, #0x60]
mov r1, #0x64
str r1, [sp]
mov r0, #3
str r0, [sp, #4]
ldr r2, [sp, #0x34]
str r6, [sp, #8]
add r1, #0xd8
ldr r0, [r4, r1]
add r2, r7, r2
ldr r1, [sp, #0x2c]
add r2, #0x3b
mov r3, #0
bl AddCellOrAnimResObjFromOpenNarc
str r0, [r5, #0x64]
mov r0, #0
add r2, sp, #0x38
add r1, r0, #0
stmia r2!, {r0, r1}
stmia r2!, {r0, r1}
stmia r2!, {r0, r1}
stmia r2!, {r0, r1}
mov r1, #0x64
add r2, r1, #0
str r1, [sp]
sub r2, #0x65
str r2, [sp, #4]
str r2, [sp, #8]
str r0, [sp, #0xc]
add r2, r1, #0
str r0, [sp, #0x10]
add r2, #0xcc
ldr r2, [r4, r2]
add r3, r1, #0
str r2, [sp, #0x14]
add r2, r1, #0
add r2, #0xd0
ldr r2, [r4, r2]
str r2, [sp, #0x18]
add r2, r1, #0
add r2, #0xd4
ldr r2, [r4, r2]
str r2, [sp, #0x1c]
add r2, r1, #0
add r2, #0xd8
ldr r2, [r4, r2]
str r2, [sp, #0x20]
str r0, [sp, #0x24]
str r0, [sp, #0x28]
add r0, sp, #0x58
add r2, r1, #0
bl CreateSpriteResourcesHeader
ldr r0, [r4, #4]
str r0, [sp, #0x38]
add r0, sp, #0x58
str r0, [sp, #0x3c]
mov r0, #0x10
str r0, [sp, #0x4c]
mov r0, #2
str r0, [sp, #0x50]
mov r0, #0xd
lsl r0, r0, #0x10
str r0, [sp, #0x40]
mov r0, #0x66
lsl r0, r0, #0xe
str r0, [sp, #0x44]
add r0, sp, #0x38
str r6, [sp, #0x54]
bl sub_02024714
ldr r1, [sp, #0x30]
str r0, [r5, #0x54]
bl Set2dSpriteAnimSeqNo
ldr r0, [r5, #0x54]
ldr r1, [sp, #0x94]
bl Set2dSpriteVisibleFlag
add sp, #0x7c
pop {r4, r5, r6, r7, pc}
thumb_func_end ov49_0225BFF0
thumb_func_start ov49_0225C148
ov49_0225C148: ; 0x0225C148
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5, #0x54]
add r4, r1, #0
bl Sprite_Delete
mov r0, #0
str r0, [r5, #0x54]
ldr r0, [r5, #0x58]
bl sub_0200AEB0
ldr r0, [r5, #0x5c]
bl sub_0200B0A8
mov r7, #0x13
mov r6, #0
lsl r7, r7, #4
_0225C16A:
ldr r0, [r4, r7]
ldr r1, [r5, #0x58]
bl DestroySingle2DGfxResObj
add r6, r6, #1
add r5, r5, #4
add r4, r4, #4
cmp r6, #4
blt _0225C16A
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225C148
thumb_func_start ov49_0225C180
ov49_0225C180: ; 0x0225C180
push {r4, r5, r6, r7, lr}
sub sp, #0x94
add r6, r0, #0
ldr r0, [r6, #0x68]
add r5, r1, #0
str r3, [sp, #0x2c]
ldr r4, [sp, #0xa8]
cmp r0, #0
beq _0225C196
bl GF_AssertFail
_0225C196:
ldr r1, _0225C324 ; =ov49_0226988C
mov r0, #0
_0225C19A:
ldrh r2, [r1]
cmp r4, r2
bne _0225C1AA
ldrh r2, [r1, #2]
str r2, [sp, #0x34]
ldrh r2, [r1, #4]
str r2, [sp, #0x30]
ldrh r7, [r1, #6]
_0225C1AA:
add r0, r0, #1
add r1, #8
cmp r0, #0x12
blo _0225C19A
ldr r0, [sp, #0x34]
mov r1, #2
add r2, sp, #0x7c
bl sub_02070D84
mov r1, #0x65
str r1, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r0, [sp, #0x2c]
add r1, #0xcb
str r0, [sp, #8]
ldr r0, [r5, r1]
ldr r1, [sp, #0x7c]
ldr r2, [sp, #0x80]
mov r3, #0
bl AddCharResObjFromNarc
str r0, [r6, #0x6c]
bl sub_0200ADA4
cmp r0, #0
bne _0225C1E4
bl GF_AssertFail
_0225C1E4:
mov r1, #0x65
str r1, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
ldr r0, [sp, #0x2c]
add r1, #0xcf
str r0, [sp, #0xc]
ldr r0, [r5, r1]
ldr r1, [sp, #0x7c]
ldr r2, [sp, #0x84]
mov r3, #0
bl AddPlttResObjFromNarc
str r0, [r6, #0x70]
bl sub_0200A828
bl ov49_0225C368
ldr r0, [r6, #0x70]
bl sub_0200B00C
cmp r0, #0
bne _0225C21A
bl GF_AssertFail
_0225C21A:
ldr r0, [r6, #0x70]
bl sub_0200A740
mov r1, #0x65
str r1, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r0, [sp, #0x2c]
add r1, #0xd3
str r0, [sp, #8]
ldr r0, [r5, r1]
ldr r1, [sp, #0x7c]
ldr r2, [sp, #0x88]
mov r3, #0
bl AddCellOrAnimResObjFromNarc
str r0, [r6, #0x74]
mov r1, #0x65
str r1, [sp]
mov r0, #3
str r0, [sp, #4]
ldr r0, [sp, #0x2c]
add r1, #0xd7
str r0, [sp, #8]
ldr r0, [r5, r1]
ldr r1, [sp, #0x7c]
ldr r2, [sp, #0x8c]
mov r3, #0
bl AddCellOrAnimResObjFromNarc
str r0, [r6, #0x78]
mov r0, #0
add r2, sp, #0x38
add r1, r0, #0
stmia r2!, {r0, r1}
stmia r2!, {r0, r1}
stmia r2!, {r0, r1}
stmia r2!, {r0, r1}
mov r1, #0x65
add r2, r1, #0
str r1, [sp]
sub r2, #0x66
str r2, [sp, #4]
str r2, [sp, #8]
mov r2, #1
str r2, [sp, #0xc]
mov r2, #3
str r2, [sp, #0x10]
add r2, r1, #0
add r2, #0xcb
ldr r2, [r5, r2]
add r3, r1, #0
str r2, [sp, #0x14]
add r2, r1, #0
add r2, #0xcf
ldr r2, [r5, r2]
str r2, [sp, #0x18]
add r2, r1, #0
add r2, #0xd3
ldr r2, [r5, r2]
str r2, [sp, #0x1c]
add r2, r1, #0
add r2, #0xd7
ldr r2, [r5, r2]
str r2, [sp, #0x20]
str r0, [sp, #0x24]
str r0, [sp, #0x28]
add r0, sp, #0x58
add r2, r1, #0
bl CreateSpriteResourcesHeader
ldr r0, [r5, #4]
str r0, [sp, #0x38]
add r0, sp, #0x58
str r0, [sp, #0x3c]
mov r0, #0x20
str r0, [sp, #0x4c]
mov r0, #2
str r0, [sp, #0x50]
ldr r0, [sp, #0x2c]
str r0, [sp, #0x54]
ldr r0, [sp, #0x30]
cmp r0, #0
beq _0225C2D4
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _0225C2E2
_0225C2D4:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_0225C2E2:
bl _ffix
str r0, [sp, #0x40]
cmp r7, #0
beq _0225C2FE
lsl r0, r7, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _0225C30C
_0225C2FE:
lsl r0, r7, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_0225C30C:
bl _ffix
mov r1, #1
lsl r1, r1, #0x14
add r0, r0, r1
str r0, [sp, #0x44]
add r0, sp, #0x38
bl sub_02024714
str r0, [r6, #0x68]
add sp, #0x94
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_0225C324: .word ov49_0226988C
thumb_func_end ov49_0225C180
thumb_func_start ov49_0225C328
ov49_0225C328: ; 0x0225C328
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5, #0x68]
add r4, r1, #0
bl sub_02024B1C
bl sub_02021A50
ldr r0, [r5, #0x68]
bl Sprite_Delete
mov r0, #0
str r0, [r5, #0x68]
ldr r0, [r5, #0x6c]
bl sub_0200AEB0
ldr r0, [r5, #0x70]
bl sub_0200B0A8
mov r7, #0x13
mov r6, #0
lsl r7, r7, #4
_0225C354:
ldr r0, [r4, r7]
ldr r1, [r5, #0x6c]
bl DestroySingle2DGfxResObj
add r6, r6, #1
add r5, r5, #4
add r4, r4, #4
cmp r6, #4
blt _0225C354
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225C328
thumb_func_start ov49_0225C368
ov49_0225C368: ; 0x0225C368
push {r4, r5, r6, r7}
ldr r1, [r0, #8]
ldr r4, [r0, #0xc]
lsr r3, r1, #1
mov r2, #0
cmp r3, #0
ble _0225C3BC
mov r5, #0xc8
_0225C378:
ldrh r6, [r4]
mov r0, #0x1f
add r2, r2, #1
add r1, r6, #0
asr r7, r6, #5
and r1, r0
and r0, r7
asr r7, r6, #0xa
mov r6, #0x1f
and r6, r7
mov r7, #0x1d
mul r7, r6
mov r6, #0x4c
mul r6, r1
mov r1, #0x97
mul r1, r0
add r0, r6, r1
add r0, r7, r0
asr r6, r0, #8
lsl r0, r6, #8
add r7, r6, #0
asr r1, r0, #8
lsl r0, r6, #7
mul r7, r5
asr r0, r0, #8
asr r6, r7, #8
lsl r0, r0, #0xa
lsl r6, r6, #5
orr r0, r6
orr r0, r1
strh r0, [r4]
add r4, r4, #2
cmp r2, r3
blt _0225C378
_0225C3BC:
pop {r4, r5, r6, r7}
bx lr
thumb_func_end ov49_0225C368
thumb_func_start ov49_0225C3C0
ov49_0225C3C0: ; 0x0225C3C0
push {r4, r5, r6, lr}
mov r4, #0
add r5, r0, #4
add r6, r4, #0
_0225C3C8:
add r0, r5, #0
add r1, r6, #0
bl FillWindowPixelBuffer
add r4, r4, #1
add r5, #0x10
cmp r4, #5
blt _0225C3C8
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225C3C0
thumb_func_start ov49_0225C3DC
ov49_0225C3DC: ; 0x0225C3DC
push {r3, r4, r5, lr}
sub sp, #0x10
add r5, r0, #0
add r4, r2, #0
add r0, r1, #0
mov r1, #1
add r2, r3, #0
bl ov49_0225B388
add r3, sp, #0x10
add r2, r0, #0
ldrb r0, [r3, #0x14]
mov r1, #0
add r5, r5, #4
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, [sp, #0x28]
str r0, [sp, #8]
str r1, [sp, #0xc]
lsl r0, r4, #4
ldrb r3, [r3, #0x10]
add r0, r5, r0
bl AddTextPrinterParameterized2
add sp, #0x10
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_0225C3DC
thumb_func_start ov49_0225C414
ov49_0225C414: ; 0x0225C414
push {r4, r5, r6, lr}
sub sp, #0x10
add r5, r0, #0
add r4, r2, #0
add r0, r1, #0
mov r1, #1
add r2, r3, #0
bl ov49_0225B388
add r6, r0, #0
mov r0, #0
add r1, r6, #0
add r2, r0, #0
bl FontID_String_GetWidth
add r1, sp, #0x10
ldrb r1, [r1, #0x10]
sub r3, r1, r0
bpl _0225C43C
mov r3, #0
_0225C43C:
add r0, sp, #0x10
ldrb r0, [r0, #0x14]
add r2, r5, #4
mov r1, #0
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r0, [sp, #0x28]
str r0, [sp, #8]
lsl r0, r4, #4
add r0, r2, r0
add r2, r6, #0
str r1, [sp, #0xc]
bl AddTextPrinterParameterized2
add sp, #0x10
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225C414
thumb_func_start ov49_0225C460
ov49_0225C460: ; 0x0225C460
ldr r3, _0225C46C ; =ScheduleWindowCopyToVram
add r2, r0, #4
lsl r0, r1, #4
add r0, r2, r0
bx r3
nop
_0225C46C: .word ScheduleWindowCopyToVram
thumb_func_end ov49_0225C460
thumb_func_start ov49_0225C470
ov49_0225C470: ; 0x0225C470
ldr r3, _0225C47C ; =ov49_0225B3C8
add r0, r1, #0
add r1, r2, #0
mov r2, #0
bx r3
nop
_0225C47C: .word ov49_0225B3C8
thumb_func_end ov49_0225C470
thumb_func_start ov49_0225C480
ov49_0225C480: ; 0x0225C480
push {r4, r5, r6, lr}
add r6, r2, #0
add r0, r6, #0
add r5, r1, #0
bl ov45_0222AA84
add r4, r0, #0
add r0, r6, #0
bl ov45_0222AAA8
add r6, r0, #0
add r0, r5, #0
add r1, r4, #0
mov r2, #0
bl ov49_0225B408
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
mov r3, #1
bl ov49_0225B418
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225C480
thumb_func_start ov49_0225C4B0
ov49_0225C4B0: ; 0x0225C4B0
push {r4, r5, r6, lr}
add r6, r1, #0
add r5, r2, #0
mov r4, #0
_0225C4B8:
ldrh r2, [r5]
add r0, r6, #0
add r1, r4, #0
bl ov49_0225B42C
add r4, r4, #1
add r5, r5, #2
cmp r4, #4
blt _0225C4B8
pop {r4, r5, r6, pc}
thumb_func_end ov49_0225C4B0
thumb_func_start ov49_0225C4CC
ov49_0225C4CC: ; 0x0225C4CC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x98
add r7, r0, #0
ldr r0, [sp, #0xb0]
add r5, r1, #0
str r0, [sp, #0xb0]
mov r0, #0xd7
add r1, r3, #0
str r2, [sp, #0x2c]
str r3, [sp, #0x30]
bl NARC_New
str r0, [sp, #0x50]
ldr r0, [sp, #0xb4]
bl ov45_0222A99C
str r0, [sp, #0x44]
ldr r0, [sp, #0xb4]
bl ov45_0222A9CC
str r0, [sp, #0x4c]
ldr r0, _0225C77C ; =ov49_02269774
mov r6, #0
str r0, [sp, #0x40]
ldr r0, _0225C780 ; =ov49_02269704
add r4, r7, #0
str r0, [sp, #0x3c]
ldr r0, _0225C784 ; =ov49_022696FC
str r0, [sp, #0x38]
_0225C506:
cmp r6, #2
bne _0225C526
ldr r0, [sp, #0x4c]
cmp r0, #1
bne _0225C546
add r1, r4, #0
add r1, #0xac
mov r0, #0
str r0, [r1]
add r1, r4, #0
add r1, #0xec
str r0, [r1]
add r1, r4, #0
add r1, #0xfc
str r0, [r1]
b _0225C5EC
_0225C526:
cmp r6, #3
bne _0225C546
ldr r0, [sp, #0x4c]
cmp r0, #0
bne _0225C546
add r1, r4, #0
add r1, #0xac
mov r0, #0
str r0, [r1]
add r1, r4, #0
add r1, #0xec
str r0, [r1]
add r1, r4, #0
add r1, #0xfc
str r0, [r1]
b _0225C5EC
_0225C546:
ldr r0, [sp, #0x40]
ldrh r0, [r0]
cmp r0, #0xd7
bne _0225C554
ldr r0, [sp, #0x50]
str r0, [sp, #0x34]
b _0225C558
_0225C554:
ldr r0, [sp, #0x2c]
str r0, [sp, #0x34]
_0225C558:
add r0, r6, #0
add r0, #0x96
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r0, [sp, #0x40]
ldr r2, [sp, #0x40]
ldrh r0, [r0, #4]
ldr r1, [sp, #0x34]
mov r3, #0
str r0, [sp, #8]
ldr r0, [sp, #0x30]
str r0, [sp, #0xc]
mov r0, #0x4d
lsl r0, r0, #2
ldrh r2, [r2, #2]
ldr r0, [r5, r0]
bl AddPlttResObjFromOpenNarc
add r1, r4, #0
add r1, #0xac
str r0, [r1]
add r0, r4, #0
add r0, #0xac
ldr r0, [r0]
bl sub_0200B00C
cmp r0, #0
bne _0225C596
bl GF_AssertFail
_0225C596:
add r0, r4, #0
add r0, #0xac
ldr r0, [r0]
bl sub_0200A740
add r0, r6, #0
add r0, #0x96
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r0, [sp, #0x30]
ldr r2, [sp, #0x3c]
str r0, [sp, #8]
mov r0, #0x4e
lsl r0, r0, #2
ldrh r2, [r2]
ldr r0, [r5, r0]
ldr r1, [sp, #0x34]
mov r3, #0
bl AddCellOrAnimResObjFromOpenNarc
add r1, r4, #0
add r1, #0xec
str r0, [r1]
add r0, r6, #0
add r0, #0x96
str r0, [sp]
mov r0, #3
str r0, [sp, #4]
ldr r0, [sp, #0x30]
ldr r2, [sp, #0x38]
str r0, [sp, #8]
mov r0, #0x4f
lsl r0, r0, #2
ldrh r2, [r2]
ldr r0, [r5, r0]
ldr r1, [sp, #0x34]
mov r3, #0
bl AddCellOrAnimResObjFromOpenNarc
add r1, r4, #0
add r1, #0xfc
str r0, [r1]
_0225C5EC:
ldr r0, [sp, #0x40]
add r6, r6, #1
add r0, r0, #6
str r0, [sp, #0x40]
ldr r0, [sp, #0x3c]
add r4, r4, #4
add r0, r0, #2
str r0, [sp, #0x3c]
ldr r0, [sp, #0x38]
add r0, r0, #2
str r0, [sp, #0x38]
cmp r6, #4
bge _0225C608
b _0225C506
_0225C608:
ldr r0, _0225C788 ; =ov49_0226991C
mov r6, #0
str r0, [sp, #0x48]
_0225C60E:
ldr r0, [sp, #0xb0]
add r1, r6, #0
bl ov45_0222A92C
add r4, r0, #0
ldr r0, [sp, #0xb0]
add r1, r6, #0
bl ov45_0222A964
add r1, r0, #0
cmp r4, #0x18
bne _0225C632
add r1, r7, #0
add r1, #0xbc
mov r0, #0
str r0, [r1]
str r0, [r7, #0x7c]
b _0225C760
_0225C632:
ldr r2, [sp, #0x44]
ldr r3, [sp, #0x4c]
add r0, r4, #0
bl ov49_0225C828
add r4, r0, #0
ldrb r0, [r4]
cmp r0, #1
bne _0225C648
ldr r1, [sp, #0x2c]
b _0225C64A
_0225C648:
ldr r1, [sp, #0x50]
_0225C64A:
add r0, r6, #0
add r0, #0x96
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
ldr r0, [sp, #0x30]
mov r3, #0
str r0, [sp, #8]
mov r0, #0x13
lsl r0, r0, #4
ldrh r2, [r4, #2]
ldr r0, [r5, r0]
bl AddCharResObjFromOpenNarc
add r1, r7, #0
add r1, #0xbc
str r0, [r1]
add r0, r7, #0
add r0, #0xbc
ldr r0, [r0]
bl sub_0200ADA4
cmp r0, #0
bne _0225C67E
bl GF_AssertFail
_0225C67E:
add r0, r7, #0
add r0, #0xbc
ldr r0, [r0]
bl sub_0200A740
ldrb r2, [r4]
mov r0, #0
mvn r0, r0
add r2, #0x96
str r2, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
str r0, [sp, #0x10]
mov r0, #0x13
lsl r0, r0, #4
ldr r0, [r5, r0]
add r1, r6, #0
str r0, [sp, #0x14]
mov r0, #0x4d
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, #0x96
str r0, [sp, #0x18]
mov r0, #0x4e
lsl r0, r0, #2
ldr r0, [r5, r0]
add r3, r2, #0
str r0, [sp, #0x1c]
mov r0, #0x4f
lsl r0, r0, #2
ldr r0, [r5, r0]
str r0, [sp, #0x20]
mov r0, #0
str r0, [sp, #0x24]
str r0, [sp, #0x28]
add r0, sp, #0x54
bl CreateSpriteResourcesHeader
ldr r0, [r5, #4]
ldr r2, [sp, #0x48]
str r0, [sp, #0x78]
add r0, sp, #0x54
str r0, [sp, #0x7c]
mov r0, #0
str r0, [sp, #0x8c]
mov r0, #2
str r0, [sp, #0x90]
ldr r0, [sp, #0x30]
add r3, sp, #0x80
str r0, [sp, #0x94]
ldmia r2!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r2]
str r0, [r3]
mov r0, #4
ldrsh r0, [r4, r0]
cmp r0, #0
ble _0225C708
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _0225C716
_0225C708:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_0225C716:
bl _ffix
ldr r1, [sp, #0x80]
add r0, r1, r0
str r0, [sp, #0x80]
mov r0, #6
ldrsh r0, [r4, r0]
cmp r0, #0
ble _0225C73A
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _0225C748
_0225C73A:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_0225C748:
bl _ffix
ldr r1, [sp, #0x84]
add r0, r1, r0
str r0, [sp, #0x84]
add r0, sp, #0x78
bl sub_02024714
str r0, [r7, #0x7c]
ldrb r1, [r4, #1]
bl sub_02024AA8
_0225C760:
ldr r0, [sp, #0x48]
add r6, r6, #1
add r0, #0xc
add r7, r7, #4
str r0, [sp, #0x48]
cmp r6, #0xc
bge _0225C770
b _0225C60E
_0225C770:
ldr r0, [sp, #0x50]
bl NARC_Delete
add sp, #0x98
pop {r3, r4, r5, r6, r7, pc}
nop
_0225C77C: .word ov49_02269774
_0225C780: .word ov49_02269704
_0225C784: .word ov49_022696FC
_0225C788: .word ov49_0226991C
thumb_func_end ov49_0225C4CC
thumb_func_start ov49_0225C78C
ov49_0225C78C: ; 0x0225C78C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
mov r7, #0
add r4, r5, #0
_0225C796:
add r0, r4, #0
add r0, #0xbc
ldr r0, [r0]
cmp r0, #0
beq _0225C7CC
ldr r0, [r4, #0x7c]
bl Sprite_Delete
mov r0, #0
str r0, [r4, #0x7c]
add r0, r4, #0
add r0, #0xbc
ldr r0, [r0]
bl sub_0200AEB0
mov r0, #0x13
add r1, r4, #0
lsl r0, r0, #4
add r1, #0xbc
ldr r0, [r6, r0]
ldr r1, [r1]
bl DestroySingle2DGfxResObj
add r1, r4, #0
add r1, #0xbc
mov r0, #0
str r0, [r1]
_0225C7CC:
add r7, r7, #1
add r4, r4, #4
cmp r7, #0xc
blt _0225C796
mov r4, #0
add r7, r4, #0
_0225C7D8:
add r0, r5, #0
add r0, #0xac
ldr r0, [r0]
cmp r0, #0
beq _0225C81C
bl sub_0200B0A8
mov r0, #0x4d
add r1, r5, #0
lsl r0, r0, #2
add r1, #0xac
ldr r0, [r6, r0]
ldr r1, [r1]
bl DestroySingle2DGfxResObj
mov r0, #0x4e
add r1, r5, #0
lsl r0, r0, #2
add r1, #0xec
ldr r0, [r6, r0]
ldr r1, [r1]
bl DestroySingle2DGfxResObj
mov r0, #0x4f
add r1, r5, #0
lsl r0, r0, #2
add r1, #0xfc
ldr r0, [r6, r0]
ldr r1, [r1]
bl DestroySingle2DGfxResObj
add r0, r5, #0
add r0, #0xac
str r7, [r0]
_0225C81C:
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _0225C7D8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225C78C
thumb_func_start ov49_0225C828
ov49_0225C828: ; 0x0225C828
cmp r1, r2
bne _0225C834
ldr r1, _0225C83C ; =ov49_02269764
lsl r0, r3, #3
add r0, r1, r0
bx lr
_0225C834:
ldr r1, _0225C840 ; =ov49_022699AC
lsl r0, r0, #3
add r0, r1, r0
bx lr
.balign 4, 0
_0225C83C: .word ov49_02269764
_0225C840: .word ov49_022699AC
thumb_func_end ov49_0225C828
thumb_func_start ov49_0225C844
ov49_0225C844: ; 0x0225C844
push {r4, r5, r6, r7, lr}
sub sp, #0xc
str r0, [sp, #4]
ldr r0, [r1]
ldr r1, [sp, #4]
str r2, [sp, #8]
ldr r2, _0225C89C ; =ov49_0226970C
add r1, #0xc
add r7, r3, #0
bl AddWindow
ldr r4, [sp, #4]
ldr r5, [sp, #4]
mov r6, #0
add r4, #0x2c
_0225C862:
add r1, r6, #0
ldr r0, [sp, #8]
add r1, #0x38
mov r2, #0
add r3, r4, #0
str r7, [sp]
bl GfGfxLoader_GetScrnDataFromOpenNarc
str r0, [r5, #0x20]
add r6, r6, #1
add r4, r4, #4
add r5, r5, #4
cmp r6, #3
blt _0225C862
ldr r0, _0225C8A0 ; =ov49_022696F4
ldr r2, _0225C8A4 ; =ov49_0225CB50
ldr r3, [sp, #4]
mov r1, #1
str r7, [sp]
bl sub_02026C44
ldr r1, [sp, #4]
str r0, [r1, #0x1c]
ldr r0, [sp, #4]
mov r1, #1
strh r1, [r0, #6]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_0225C89C: .word ov49_0226970C
_0225C8A0: .word ov49_022696F4
_0225C8A4: .word ov49_0225CB50
thumb_func_end ov49_0225C844
thumb_func_start ov49_0225C8A8
ov49_0225C8A8: ; 0x0225C8A8
push {r4, r5, r6, lr}
add r6, r0, #0
ldr r0, [r6, #0x1c]
bl sub_02026CAC
add r0, r6, #0
add r0, #0xc
bl RemoveWindow
mov r4, #0
add r5, r6, #0
_0225C8BE:
ldr r0, [r5, #0x20]
bl FreeToHeap
add r4, r4, #1
add r5, r5, #4
cmp r4, #3
blt _0225C8BE
mov r0, #0
strb r0, [r6, #2]
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225C8A8
thumb_func_start ov49_0225C8D4
ov49_0225C8D4: ; 0x0225C8D4
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
mov r0, #0
str r0, [sp, #4]
ldrh r0, [r5, #6]
add r6, r1, #0
add r7, r2, #0
add r4, r3, #0
cmp r0, #0
bne _0225C8F2
ldr r0, [r5, #0x1c]
bl sub_02026CC4
b _0225C8F6
_0225C8F2:
mov r0, #1
strb r0, [r5, #3]
_0225C8F6:
ldrb r0, [r5, #2]
cmp r0, #1
bne _0225C912
mov r2, #0
ldrsh r0, [r5, r2]
cmp r0, #0
bne _0225C912
strb r2, [r5, #2]
add r0, r5, #0
add r1, r6, #0
add r3, r7, #0
str r4, [sp]
bl ov49_0225CAD4
_0225C912:
ldrb r1, [r5, #3]
ldrh r0, [r5, #4]
cmp r1, r0
beq _0225C968
strh r1, [r5, #4]
ldrb r0, [r5, #3]
cmp r0, #2
bne _0225C932
add r0, r5, #0
add r1, r6, #0
mov r2, #1
add r3, r7, #0
str r4, [sp]
bl ov49_0225CAD4
b _0225C954
_0225C932:
ldrb r0, [r5, #2]
cmp r0, #0
str r4, [sp]
bne _0225C948
add r0, r5, #0
add r1, r6, #0
mov r2, #0
add r3, r7, #0
bl ov49_0225CAD4
b _0225C954
_0225C948:
add r0, r5, #0
add r1, r6, #0
mov r2, #2
add r3, r7, #0
bl ov49_0225CAD4
_0225C954:
ldrb r0, [r5, #2]
cmp r0, #0
bne _0225C968
ldrb r0, [r5, #3]
cmp r0, #2
bne _0225C968
mov r0, #1
strb r0, [r5, #2]
str r0, [sp, #4]
strh r0, [r5]
_0225C968:
ldr r0, [sp, #4]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225C8D4
thumb_func_start ov49_0225C970
ov49_0225C970: ; 0x0225C970
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
add r6, r1, #0
ldr r4, [sp, #0x34]
str r0, [sp, #8]
ldr r7, [sp, #0x30]
str r3, [sp, #0x14]
str r4, [sp, #0xc]
str r2, [sp, #0x10]
ldr r2, [r6]
add r0, r7, #0
mov r1, #0x37
mov r3, #4
bl GfGfxLoader_LoadScrnDataFromOpenNarc
mov r0, #0
strh r0, [r5, #8]
ldr r0, [sp, #0x14]
bl ov45_0222AAC8
strh r0, [r5, #0xa]
mov r0, #5
lsl r0, r0, #6
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
str r4, [sp, #0xc]
ldrh r1, [r5, #0xa]
ldr r2, [r6]
add r0, r7, #0
mov r3, #6
bl GfGfxLoader_LoadCharDataFromOpenNarc
mov r0, #5
lsl r0, r0, #6
str r0, [sp]
str r4, [sp, #4]
ldrh r2, [r5, #0xa]
add r0, r6, #0
add r1, r7, #0
add r2, #0x1b
mov r3, #6
bl ov49_0225BB14
ldr r0, [sp, #0x10]
mov r1, #1
mov r2, #0x3f
bl ov49_0225B388
str r0, [sp, #0x18]
add r0, r5, #0
add r0, #0xc
mov r1, #0
bl FillWindowPixelBuffer
mov r0, #4
str r0, [sp]
mov r1, #0
ldr r0, _0225CA2C ; =0x000F0E00
str r1, [sp, #4]
str r0, [sp, #8]
add r0, r5, #0
ldr r2, [sp, #0x18]
str r1, [sp, #0xc]
add r0, #0xc
add r3, r1, #0
bl AddTextPrinterParameterized2
ldrb r0, [r5, #2]
cmp r0, #0
str r4, [sp]
bne _0225CA1A
add r0, r5, #0
add r1, r6, #0
mov r2, #0
add r3, r7, #0
bl ov49_0225CAD4
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
_0225CA1A:
add r0, r5, #0
add r1, r6, #0
mov r2, #2
add r3, r7, #0
bl ov49_0225CAD4
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_0225CA2C: .word 0x000F0E00
thumb_func_end ov49_0225C970
thumb_func_start ov49_0225CA30
ov49_0225CA30: ; 0x0225CA30
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r7, r2, #0
add r5, r0, #0
add r6, r1, #0
str r3, [sp, #0x10]
ldr r4, [sp, #0x28]
cmp r7, #3
blo _0225CA46
bl GF_AssertFail
_0225CA46:
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
str r4, [sp, #0xc]
ldr r0, [sp, #0x10]
ldr r2, [r6]
mov r1, #0x37
mov r3, #4
bl GfGfxLoader_LoadScrnDataFromOpenNarc
mov r0, #1
strh r0, [r5, #8]
mov r0, #5
strh r7, [r5, #0xa]
lsl r0, r0, #6
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
str r0, [sp, #8]
str r4, [sp, #0xc]
ldrh r1, [r5, #0xa]
ldr r0, [sp, #0x10]
ldr r2, [r6]
add r1, #0x5d
mov r3, #6
bl GfGfxLoader_LoadCharDataFromOpenNarc
ldrb r0, [r5, #2]
cmp r0, #0
str r4, [sp]
bne _0225CA96
ldr r3, [sp, #0x10]
add r0, r5, #0
add r1, r6, #0
mov r2, #0
bl ov49_0225CAD4
add sp, #0x14
pop {r4, r5, r6, r7, pc}
_0225CA96:
ldr r3, [sp, #0x10]
add r0, r5, #0
add r1, r6, #0
mov r2, #2
bl ov49_0225CAD4
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225CA30
thumb_func_start ov49_0225CAA8
ov49_0225CAA8: ; 0x0225CAA8
push {r4, lr}
add r4, r1, #0
ldr r0, [r4]
mov r1, #4
bl BgClearTilemapBufferAndCommit
ldr r0, [r4]
mov r1, #5
bl BgClearTilemapBufferAndCommit
ldr r0, [r4]
mov r1, #6
bl BgClearTilemapBufferAndCommit
ldr r0, [r4]
mov r1, #6
mov r2, #3
mov r3, #0
bl BgSetPosTextAndCommit
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225CAA8
thumb_func_start ov49_0225CAD4
ov49_0225CAD4: ; 0x0225CAD4
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
mov r0, #0x20
add r4, r1, #0
add r6, r2, #0
str r0, [sp]
mov r1, #0x15
str r1, [sp, #4]
lsl r1, r6, #2
add r1, r5, r1
ldr r1, [r1, #0x2c]
add r7, r3, #0
add r1, #0xc
str r1, [sp, #8]
mov r2, #0
str r2, [sp, #0xc]
mov r3, #3
str r3, [sp, #0x10]
str r0, [sp, #0x14]
str r0, [sp, #0x18]
ldr r0, [r4]
mov r1, #5
bl CopyToBgTilemapRect
ldr r0, [r4]
mov r1, #5
bl ScheduleBgTilemapBufferTransfer
ldrh r0, [r5, #8]
cmp r0, #1
bne _0225CB34
mov r0, #5
lsl r0, r0, #6
str r0, [sp]
ldr r0, [sp, #0x30]
ldr r2, _0225CB48 ; =ov49_022696EC
str r0, [sp, #4]
ldrh r3, [r5, #0xa]
ldrb r2, [r2, r6]
add r0, r4, #0
lsl r3, r3, #1
add r2, r2, r3
add r1, r7, #0
add r2, #0x60
mov r3, #6
bl ov49_0225BB14
_0225CB34:
ldr r3, _0225CB4C ; =ov49_022696F0
ldr r0, [r4]
ldrsb r3, [r3, r6]
mov r1, #6
mov r2, #3
bl ScheduleSetBgPosText
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_0225CB48: .word ov49_022696EC
_0225CB4C: .word ov49_022696F0
thumb_func_end ov49_0225CAD4
thumb_func_start ov49_0225CB50
ov49_0225CB50: ; 0x0225CB50
strb r1, [r2, #3]
ldrb r0, [r2, #3]
cmp r0, #0
bne _0225CB5E
mov r0, #2
strb r0, [r2, #3]
bx lr
_0225CB5E:
cmp r0, #3
bne _0225CB66
mov r0, #1
strb r0, [r2, #3]
_0225CB66:
bx lr
thumb_func_end ov49_0225CB50
thumb_func_start ov49_0225CB68
ov49_0225CB68: ; 0x0225CB68
mov r1, #0
strh r1, [r0]
bx lr
.balign 4, 0
thumb_func_end ov49_0225CB68
thumb_func_start ov49_0225CB70
ov49_0225CB70: ; 0x0225CB70
mov r1, #0xc3
lsl r1, r1, #2
ldr r0, [r0, r1]
bx lr
thumb_func_end ov49_0225CB70
thumb_func_start ov49_0225CB78
ov49_0225CB78: ; 0x0225CB78
push {r4, r5, lr}
sub sp, #0xc
mov r1, #0x14
add r5, r0, #0
bl AllocFromHeap
add r4, r0, #0
add r2, r4, #0
mov r1, #0x14
mov r0, #0
_0225CB8C:
strb r0, [r2]
add r2, r2, #1
sub r1, r1, #1
bne _0225CB8C
add r0, r5, #0
bl Camera_New
str r0, [r4]
mov r0, #0
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [r4]
ldr r1, _0225CBD0 ; =0x0029AEC1
str r0, [sp, #8]
add r0, r4, #0
ldr r2, _0225CBD4 ; =ov49_02269A6C
ldr r3, _0225CBD8 ; =0x000005C1
add r0, #8
bl Camera_Init_FromTargetDistanceAndAngle
ldr r0, [r4]
bl Camera_SetStaticPtr
mov r0, #0x96
mov r1, #0xe1
ldr r2, [r4]
lsl r0, r0, #0xc
lsl r1, r1, #0xe
bl Camera_SetPerspectiveClippingPlane
add r0, r4, #0
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
_0225CBD0: .word 0x0029AEC1
_0225CBD4: .word ov49_02269A6C
_0225CBD8: .word 0x000005C1
thumb_func_end ov49_0225CB78
thumb_func_start ov49_0225CBDC
ov49_0225CBDC: ; 0x0225CBDC
push {r4, lr}
add r4, r0, #0
bl Camera_UnsetStaticPtr
ldr r0, [r4]
bl Camera_Delete
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225CBDC
thumb_func_start ov49_0225CBF4
ov49_0225CBF4: ; 0x0225CBF4
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
cmp r0, #0
beq _0225CC18
add r1, r4, #0
add r1, #8
bl ov49_02259154
mov r0, #2
ldr r1, [r4, #8]
lsl r0, r0, #0xe
add r1, r1, r0
str r1, [r4, #8]
ldr r1, [r4, #0x10]
lsl r0, r0, #2
sub r0, r1, r0
str r0, [r4, #0x10]
_0225CC18:
bl Camera_PushLookAtToNNSGlb
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225CBF4
thumb_func_start ov49_0225CC20
ov49_0225CC20: ; 0x0225CC20
str r1, [r0, #8]
str r2, [r0, #0xc]
str r3, [r0, #0x10]
bx lr
thumb_func_end ov49_0225CC20
thumb_func_start ov49_0225CC28
ov49_0225CC28: ; 0x0225CC28
push {r3, r4}
mov r4, #2
lsl r4, r4, #0xe
add r1, r1, r4
str r1, [r0, #8]
lsl r1, r4, #2
str r2, [r0, #0xc]
sub r1, r3, r1
str r1, [r0, #0x10]
pop {r3, r4}
bx lr
.balign 4, 0
thumb_func_end ov49_0225CC28
thumb_func_start ov49_0225CC40
ov49_0225CC40: ; 0x0225CC40
str r1, [r0, #4]
bx lr
thumb_func_end ov49_0225CC40
thumb_func_start ov49_0225CC44
ov49_0225CC44: ; 0x0225CC44
mov r1, #0
str r1, [r0, #4]
bx lr
.balign 4, 0
thumb_func_end ov49_0225CC44
thumb_func_start ov49_0225CC4C
ov49_0225CC4C: ; 0x0225CC4C
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r6, r1, #0
add r5, r0, #0
ldr r1, _0225CCBC ; =0x000004A4
add r0, r2, #0
str r2, [sp]
bl AllocFromHeap
ldr r2, _0225CCBC ; =0x000004A4
mov r1, #0
add r4, r0, #0
bl memset
mov r0, #0xb4
mul r0, r5
str r0, [sp, #4]
ldr r0, [sp]
ldr r1, [sp, #4]
bl AllocFromHeap
mov r1, #0x47
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #0xe4
add r7, r6, #0
mul r7, r0
ldr r0, [sp]
add r1, r7, #0
bl AllocFromHeap
mov r1, #0x12
lsl r1, r1, #4
str r0, [r4, r1]
sub r0, r1, #4
ldr r0, [r4, r0]
ldr r2, [sp, #4]
mov r1, #0
bl memset
mov r0, #0x12
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0
add r2, r7, #0
bl memset
mov r0, #0x49
lsl r0, r0, #2
strb r5, [r4, r0]
add r0, r0, #1
strb r6, [r4, r0]
add r0, r4, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_0225CCBC: .word 0x000004A4
thumb_func_end ov49_0225CC4C
thumb_func_start ov49_0225CCC0
ov49_0225CCC0: ; 0x0225CCC0
push {r4, lr}
mov r1, #0x4a
add r4, r0, #0
lsl r1, r1, #2
ldr r1, [r4, r1]
cmp r1, #0
beq _0225CCD2
bl ov49_0225CE88
_0225CCD2:
mov r0, #0x47
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FreeToHeap
mov r0, #0x12
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FreeToHeap
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225CCC0
thumb_func_start ov49_0225CCF0
ov49_0225CCF0: ; 0x0225CCF0
push {r3, r4, r5, r6, r7, lr}
mov r1, #0x4b
add r5, r0, #0
lsl r1, r1, #2
add r1, r5, r1
bl ov49_0225D7B8
mov r0, #0x49
lsl r0, r0, #2
ldrb r0, [r5, r0]
mov r4, #0
cmp r0, #0
ble _0225CD2C
mov r7, #0x71
add r6, r4, #0
lsl r7, r7, #2
_0225CD10:
mov r0, #0x47
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r5, r7
add r0, r0, r6
bl ov49_0225DA70
mov r0, #0x49
lsl r0, r0, #2
ldrb r0, [r5, r0]
add r4, r4, #1
add r6, #0xb4
cmp r4, r0
blt _0225CD10
_0225CD2C:
ldr r0, _0225CD54 ; =0x00000125
mov r6, #0
ldrb r0, [r5, r0]
cmp r0, #0
ble _0225CD52
ldr r7, _0225CD54 ; =0x00000125
add r4, r6, #0
_0225CD3A:
mov r1, #0x12
lsl r1, r1, #4
ldr r1, [r5, r1]
add r0, r5, #0
add r1, r1, r4
bl ov49_0225DD68
ldrb r0, [r5, r7]
add r6, r6, #1
add r4, #0xe4
cmp r6, r0
blt _0225CD3A
_0225CD52:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0225CD54: .word 0x00000125
thumb_func_end ov49_0225CCF0
thumb_func_start ov49_0225CD58
ov49_0225CD58: ; 0x0225CD58
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
bne _0225CD62
bl GF_AssertFail
_0225CD62:
mov r0, #0x12
lsl r0, r0, #4
ldr r0, [r5, r0]
cmp r0, #0
bne _0225CD70
bl GF_AssertFail
_0225CD70:
mov r0, #0x47
lsl r0, r0, #2
ldr r0, [r5, r0]
cmp r0, #0
bne _0225CD7E
bl GF_AssertFail
_0225CD7E:
mov r1, #0x4b
lsl r1, r1, #2
add r0, r5, #0
add r1, r5, r1
bl ov49_0225D804
ldr r0, _0225CDE4 ; =0x00000125
mov r4, #0
ldrb r0, [r5, r0]
cmp r0, #0
ble _0225CDB4
mov r7, #0xa7
add r6, r4, #0
lsl r7, r7, #2
_0225CD9A:
mov r1, #0x12
lsl r1, r1, #4
ldr r1, [r5, r1]
add r0, r5, r7
add r1, r1, r6
bl ov49_0225DD0C
ldr r0, _0225CDE4 ; =0x00000125
add r4, r4, #1
ldrb r0, [r5, r0]
add r6, #0xe4
cmp r4, r0
blt _0225CD9A
_0225CDB4:
mov r0, #0x49
lsl r0, r0, #2
ldrb r0, [r5, r0]
mov r4, #0
cmp r0, #0
ble _0225CDE2
mov r7, #0x71
add r6, r4, #0
lsl r7, r7, #2
_0225CDC6:
mov r0, #0x47
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r5, r7
add r0, r0, r6
bl ov49_0225DAFC
mov r0, #0x49
lsl r0, r0, #2
ldrb r0, [r5, r0]
add r4, r4, #1
add r6, #0xb4
cmp r4, r0
blt _0225CDC6
_0225CDE2:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0225CDE4: .word 0x00000125
thumb_func_end ov49_0225CD58
thumb_func_start ov49_0225CDE8
ov49_0225CDE8: ; 0x0225CDE8
bx lr
.balign 4, 0
thumb_func_end ov49_0225CDE8
thumb_func_start ov49_0225CDEC
ov49_0225CDEC: ; 0x0225CDEC
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _0225CE80 ; =0x00000127
add r7, r3, #0
strb r2, [r5, r0]
sub r0, r0, #1
strb r1, [r5, r0]
add r0, r1, #0
add r1, r2, #0
add r2, r7, #0
ldr r4, [sp, #0x18]
bl ov49_0225D4FC
add r6, r0, #0
mov r0, #0xcb
add r1, r7, #0
bl NARC_New
add r7, r0, #0
ldr r0, _0225CE84 ; =0x00000494
add r1, r4, #0
add r0, r5, r0
mov r2, #4
bl GF_ExpHeap_FndInitAllocator
ldr r0, _0225CE84 ; =0x00000494
add r1, r7, #0
add r0, r5, r0
str r0, [sp]
mov r0, #0x4b
lsl r0, r0, #2
add r0, r5, r0
add r2, r6, #0
add r3, r4, #0
bl ov49_0225D5FC
mov r0, #0xa7
ldr r2, _0225CE84 ; =0x00000494
lsl r0, r0, #2
add r0, r5, r0
add r1, r7, #0
add r2, r5, r2
add r3, r6, #0
str r4, [sp]
bl ov49_0225DC2C
mov r0, #0x71
ldr r2, _0225CE84 ; =0x00000494
lsl r0, r0, #2
add r0, r5, r0
add r1, r7, #0
add r2, r5, r2
add r3, r6, #0
str r4, [sp]
bl ov49_0225D854
add r0, r7, #0
bl NARC_Delete
add r0, r6, #0
bl ov49_0225D520
mov r1, #0x4b
lsl r1, r1, #2
add r0, r5, #0
add r1, r5, r1
bl ov49_0225D6F0
mov r0, #0x4a
mov r1, #1
lsl r0, r0, #2
str r1, [r5, r0]
pop {r3, r4, r5, r6, r7, pc}
nop
_0225CE80: .word 0x00000127
_0225CE84: .word 0x00000494
thumb_func_end ov49_0225CDEC
thumb_func_start ov49_0225CE88
ov49_0225CE88: ; 0x0225CE88
push {r4, lr}
mov r1, #0x4b
add r4, r0, #0
lsl r1, r1, #2
add r1, r4, r1
bl ov49_0225D76C
mov r0, #0x4b
ldr r1, _0225CECC ; =0x00000494
lsl r0, r0, #2
add r0, r4, r0
add r1, r4, r1
bl ov49_0225D6AC
mov r0, #0xa7
ldr r1, _0225CECC ; =0x00000494
lsl r0, r0, #2
add r0, r4, r0
add r1, r4, r1
bl ov49_0225DCBC
mov r0, #0x71
ldr r1, _0225CECC ; =0x00000494
lsl r0, r0, #2
add r0, r4, r0
add r1, r4, r1
bl ov49_0225D9D0
mov r0, #0x4a
mov r1, #0
lsl r0, r0, #2
str r1, [r4, r0]
pop {r4, pc}
nop
_0225CECC: .word 0x00000494
thumb_func_end ov49_0225CE88
thumb_func_start ov49_0225CED0
ov49_0225CED0: ; 0x0225CED0
push {r3, lr}
mov r2, #7
add r1, r0, #0
lsl r2, r2, #6
ldr r0, [r1, r2]
cmp r0, #1
bne _0225CEFA
add r0, r2, #0
sub r0, #0xbc
ldr r0, [r1, r0]
cmp r0, #0
bne _0225CEFA
add r0, r2, #0
mov r3, #1
sub r0, #0xbc
str r3, [r1, r0]
sub r2, #0x24
add r0, r1, #4
add r1, r1, r2
bl sub_020181D4
_0225CEFA:
pop {r3, pc}
thumb_func_end ov49_0225CED0
thumb_func_start ov49_0225CEFC
ov49_0225CEFC: ; 0x0225CEFC
push {r4, lr}
mov r1, #7
add r4, r0, #0
lsl r1, r1, #6
ldr r0, [r4, r1]
cmp r0, #1
bne _0225CF26
add r0, r1, #0
sub r0, #0xbc
ldr r0, [r4, r0]
cmp r0, #1
bne _0225CF26
sub r1, #0x24
add r0, r4, #4
add r1, r4, r1
bl sub_020181E0
mov r0, #0x41
mov r1, #0
lsl r0, r0, #2
str r1, [r4, r0]
_0225CF26:
pop {r4, pc}
thumb_func_end ov49_0225CEFC
thumb_func_start ov49_0225CF28
ov49_0225CF28: ; 0x0225CF28
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r1, #0
add r7, r0, #0
add r6, r2, #0
str r3, [sp]
cmp r5, #2
ble _0225CF3C
bl GF_AssertFail
_0225CF3C:
cmp r6, #3
ble _0225CF44
bl GF_AssertFail
_0225CF44:
add r0, r7, #0
bl ov49_0225D820
mov r1, #0x71
lsl r1, r1, #2
add r4, r0, #0
add r2, r7, r1
lsl r1, r5, #4
add r0, r4, #4
add r1, r2, r1
bl sub_020181B0
add r0, r4, #4
mov r1, #1
bl sub_020182A0
ldr r1, [sp]
add r0, r4, #0
bl ov49_0225CFA8
add r1, sp, #4
mov r0, #0
str r0, [r1]
str r0, [r1, #4]
str r0, [r1, #8]
add r0, r4, #0
bl ov49_0225CFEC
strb r6, [r4, #1]
add r0, r4, #0
strb r5, [r4, #2]
mov r1, #1
strb r1, [r4]
str r1, [r4, #0x7c]
add r0, #0x84
str r1, [r0]
add r0, r4, #0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225CF28
thumb_func_start ov49_0225CF94
ov49_0225CF94: ; 0x0225CF94
push {r4, lr}
add r4, r0, #0
add r0, r4, #4
mov r1, #0
bl sub_020182A0
mov r0, #0
strb r0, [r4]
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225CF94
thumb_func_start ov49_0225CFA8
ov49_0225CFA8: ; 0x0225CFA8
push {r4, lr}
add r3, r0, #0
add r4, r1, #0
add r2, r3, #0
ldmia r4!, {r0, r1}
add r2, #0x9c
stmia r2!, {r0, r1}
ldr r0, [r4]
add r1, r3, #0
str r0, [r2]
add r1, #0x9c
ldr r2, [r1]
add r1, r3, #0
add r1, #0xa8
ldr r1, [r1]
add r0, r3, #4
add r1, r2, r1
add r2, r3, #0
add r2, #0xa0
ldr r4, [r2]
add r2, r3, #0
add r2, #0xac
ldr r2, [r2]
add r2, r4, r2
add r4, r3, #0
add r4, #0xa4
add r3, #0xb0
ldr r4, [r4]
ldr r3, [r3]
add r3, r4, r3
bl sub_020182A8
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225CFA8
thumb_func_start ov49_0225CFEC
ov49_0225CFEC: ; 0x0225CFEC
push {r4, lr}
add r3, r0, #0
add r4, r1, #0
add r2, r3, #0
ldmia r4!, {r0, r1}
add r2, #0xa8
stmia r2!, {r0, r1}
ldr r0, [r4]
add r1, r3, #0
str r0, [r2]
add r1, #0x9c
ldr r2, [r1]
add r1, r3, #0
add r1, #0xa8
ldr r1, [r1]
add r0, r3, #4
add r1, r2, r1
add r2, r3, #0
add r2, #0xa0
ldr r4, [r2]
add r2, r3, #0
add r2, #0xac
ldr r2, [r2]
add r2, r4, r2
add r4, r3, #0
add r4, #0xa4
add r3, #0xb0
ldr r4, [r4]
ldr r3, [r3]
add r3, r4, r3
bl sub_020182A8
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225CFEC
thumb_func_start ov49_0225D030
ov49_0225D030: ; 0x0225D030
push {r3, lr}
add r3, r1, #0
add r0, r0, #4
add r2, r1, #4
add r3, #8
bl sub_020182B0
pop {r3, pc}
thumb_func_end ov49_0225D030
thumb_func_start ov49_0225D040
ov49_0225D040: ; 0x0225D040
ldr r3, _0225D048 ; =sub_020182A0
add r0, r0, #4
bx r3
nop
_0225D048: .word sub_020182A0
thumb_func_end ov49_0225D040
thumb_func_start ov49_0225D04C
ov49_0225D04C: ; 0x0225D04C
add r1, r0, #0
add r1, #0x80
ldr r1, [r1]
cmp r1, #0
bne _0225D060
mov r1, #1
add r0, #0x80
str r1, [r0]
add r0, r1, #0
bx lr
_0225D060:
mov r0, #0
bx lr
thumb_func_end ov49_0225D04C
thumb_func_start ov49_0225D064
ov49_0225D064: ; 0x0225D064
add r1, r0, #0
add r1, #0x88
ldr r1, [r1]
cmp r1, #0
bne _0225D078
mov r1, #1
add r0, #0x88
str r1, [r0]
add r0, r1, #0
bx lr
_0225D078:
mov r0, #0
bx lr
thumb_func_end ov49_0225D064
thumb_func_start ov49_0225D07C
ov49_0225D07C: ; 0x0225D07C
ldr r3, _0225D084 ; =sub_020182E0
add r0, r0, #4
mov r2, #0
bx r3
.balign 4, 0
_0225D084: .word sub_020182E0
thumb_func_end ov49_0225D07C
thumb_func_start ov49_0225D088
ov49_0225D088: ; 0x0225D088
add r0, #0x80
ldr r0, [r0]
bx lr
.balign 4, 0
thumb_func_end ov49_0225D088
thumb_func_start ov49_0225D090
ov49_0225D090: ; 0x0225D090
add r0, #0x88
ldr r0, [r0]
bx lr
.balign 4, 0
thumb_func_end ov49_0225D090
thumb_func_start ov49_0225D098
ov49_0225D098: ; 0x0225D098
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r7, r0, #0
str r1, [sp]
str r2, [sp, #4]
str r3, [sp, #8]
bl ov49_0225DBF8
mov r1, #0xa7
lsl r1, r1, #2
add r2, r7, r1
ldr r1, [sp]
str r0, [sp, #0xc]
lsl r1, r1, #4
add r0, r0, #4
add r1, r2, r1
bl sub_020181B0
ldr r5, [sp, #0xc]
ldr r0, [sp]
mov r1, #0xc
mul r1, r0
mov r0, #0xa7
lsl r0, r0, #2
add r0, r7, r0
str r0, [sp, #0x10]
ldr r0, [sp]
mov r6, #0
lsl r0, r0, #4
add r4, r7, r1
add r5, #0x7c
str r0, [sp, #0x14]
_0225D0D8:
mov r0, #0xef
lsl r0, r0, #2
ldr r2, [r4, r0]
cmp r2, #0
beq _0225D0F2
ldr r3, [sp, #0x10]
ldr r1, [sp, #0x14]
add r0, r5, #0
add r1, r3, r1
ldr r3, _0225D15C ; =0x00000494
add r3, r7, r3
bl sub_020180E8
_0225D0F2:
add r6, r6, #1
add r4, r4, #4
add r5, #0x14
cmp r6, #3
blt _0225D0D8
ldr r0, [sp, #0xc]
mov r1, #1
add r0, r0, #4
bl sub_020182A0
ldr r0, [sp, #4]
add r1, sp, #0x18
lsl r0, r0, #4
strh r0, [r1]
ldr r0, [sp, #8]
mov r3, sp
lsl r0, r0, #4
strh r0, [r1, #2]
ldrh r2, [r1]
sub r3, r3, #4
ldr r0, [sp, #0xc]
strh r2, [r3]
ldrh r1, [r1, #2]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov49_0225D1C4
ldr r0, [sp, #0xc]
mov r2, #1
ldr r1, [sp]
strh r2, [r0]
strh r1, [r0, #2]
mov r1, #0x14
add r0, #0xcc
strb r1, [r0]
ldr r0, [sp, #0xc]
lsl r1, r2, #0xc
add r0, #0xdc
str r1, [r0]
ldr r0, [sp, #0xc]
mov r1, #0
add r0, #0xe0
strb r1, [r0]
ldr r0, [sp, #0xc]
mov r1, #0x1f
add r0, #0xe1
strb r1, [r0]
ldr r0, [sp, #0xc]
add r0, #0xe2
strb r1, [r0]
ldr r0, [sp, #0xc]
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_0225D15C: .word 0x00000494
thumb_func_end ov49_0225D098
thumb_func_start ov49_0225D160
ov49_0225D160: ; 0x0225D160
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r6, r0, #0
str r1, [sp]
add r0, r1, #4
mov r1, #0
bl sub_020182A0
mov r0, #0xa7
ldr r5, [sp]
lsl r0, r0, #2
mov r7, #0
add r0, r6, r0
add r4, r7, #0
add r5, #0x7c
str r0, [sp, #4]
_0225D180:
ldr r0, [sp]
ldrh r1, [r0, #2]
mov r0, #0xc
mul r0, r1
add r0, r6, r0
add r2, r4, r0
mov r0, #0xef
lsl r0, r0, #2
ldr r2, [r2, r0]
cmp r2, #0
beq _0225D1A6
lsl r3, r1, #4
ldr r1, [sp, #4]
add r0, r5, #0
add r1, r1, r3
ldr r3, _0225D1BC ; =0x00000494
add r3, r6, r3
bl sub_020180E8
_0225D1A6:
add r7, r7, #1
add r4, r4, #4
add r5, #0x14
cmp r7, #3
blt _0225D180
ldr r0, [sp]
mov r1, #0
strh r1, [r0]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_0225D1BC: .word 0x00000494
thumb_func_end ov49_0225D160
thumb_func_start ov49_0225D1C0
ov49_0225D1C0: ; 0x0225D1C0
ldrh r0, [r0, #2]
bx lr
thumb_func_end ov49_0225D1C0
thumb_func_start ov49_0225D1C4
ov49_0225D1C4: ; 0x0225D1C4
push {r0, r1, r2, r3}
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
add r0, sp, #0x1c
add r1, sp, #0
bl ov49_02258800
ldr r1, [sp]
ldr r2, [sp, #4]
ldr r3, [sp, #8]
add r0, r4, #4
bl sub_020182A8
add sp, #0xc
pop {r3, r4}
pop {r3}
add sp, #0x10
bx r3
.balign 4, 0
thumb_func_end ov49_0225D1C4
thumb_func_start ov49_0225D1EC
ov49_0225D1EC: ; 0x0225D1EC
push {r3, lr}
sub sp, #0x10
add r0, r0, #4
add r1, sp, #4
add r2, sp, #8
add r3, sp, #0xc
bl sub_020182B0
add r0, sp, #4
add r1, sp, #0
bl ov49_02258814
add r0, sp, #0
ldrh r1, [r0, #2]
ldrh r0, [r0]
lsl r1, r1, #0x10
orr r0, r1
add sp, #0x10
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_0225D1EC
thumb_func_start ov49_0225D214
ov49_0225D214: ; 0x0225D214
push {r3, r4, lr}
sub sp, #4
mov r4, #0
str r4, [sp]
bl ov49_0225D224
add sp, #4
pop {r3, r4, pc}
thumb_func_end ov49_0225D214
thumb_func_start ov49_0225D224
ov49_0225D224: ; 0x0225D224
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r2, #0
str r0, [sp]
add r4, r1, #0
add r7, r3, #0
cmp r5, #3
blt _0225D238
bl GF_AssertFail
_0225D238:
cmp r7, #7
blt _0225D240
bl GF_AssertFail
_0225D240:
ldrh r0, [r4, #2]
cmp r0, #0x12
blo _0225D24A
bl GF_AssertFail
_0225D24A:
ldrh r0, [r4, #2]
mov r1, #0xc
lsl r6, r5, #2
mul r1, r0
ldr r0, [sp]
add r0, r0, r1
add r1, r0, r6
mov r0, #0xef
lsl r0, r0, #2
ldr r0, [r1, r0]
cmp r0, #0
beq _0225D324
add r0, r4, #0
str r0, [sp, #4]
add r0, #0xb8
str r0, [sp, #4]
ldrb r0, [r0, r5]
cmp r0, #0
bne _0225D280
add r2, r4, #0
mov r1, #0x14
add r2, #0x7c
mul r1, r5
add r0, r4, #4
add r1, r2, r1
bl sub_020181D4
_0225D280:
ldr r0, [sp, #4]
mov r1, #1
strb r1, [r0, r5]
add r0, r4, r5
add r0, #0xbc
strb r7, [r0]
add r0, r4, r6
ldr r1, [sp, #0x20]
add r0, #0xd0
str r1, [r0]
add r0, r4, #0
str r0, [sp, #8]
add r0, #0xcd
str r0, [sp, #8]
mov r0, #0
ldr r1, [sp, #8]
cmp r7, #6
strb r0, [r1, r5]
bhi _0225D310
add r1, r7, r7
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0225D2B2: ; jump table
.short _0225D2C0 - _0225D2B2 - 2 ; case 0
.short _0225D2C0 - _0225D2B2 - 2 ; case 1
.short _0225D2C0 - _0225D2B2 - 2 ; case 2
.short _0225D2C8 - _0225D2B2 - 2 ; case 3
.short _0225D2C8 - _0225D2B2 - 2 ; case 4
.short _0225D2DE - _0225D2B2 - 2 ; case 5
.short _0225D2F8 - _0225D2B2 - 2 ; case 6
_0225D2C0:
add r1, r4, r6
add r1, #0xc0
str r0, [r1]
b _0225D310
_0225D2C8:
add r1, r4, #0
mov r0, #0x14
add r1, #0x7c
mul r0, r5
add r0, r1, r0
bl sub_020181A4
add r1, r4, r6
add r1, #0xc0
str r0, [r1]
b _0225D310
_0225D2DE:
add r1, r4, r6
add r1, #0xc0
str r0, [r1]
bl MTRandom
add r1, r4, #0
add r1, #0xcc
ldrb r1, [r1]
bl _u32_div_f
ldr r0, [sp, #8]
strb r1, [r0, r5]
b _0225D310
_0225D2F8:
add r1, r4, r6
add r1, #0xc0
str r0, [r1]
bl MTRandom
add r1, r4, #0
add r1, #0xcc
ldrb r1, [r1]
bl _u32_div_f
ldr r0, [sp, #8]
strb r1, [r0, r5]
_0225D310:
add r1, r4, #0
mov r0, #0x14
add r1, #0x7c
mul r0, r5
add r0, r1, r0
add r1, r4, r6
add r1, #0xc0
ldr r1, [r1]
bl sub_02018198
_0225D324:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
thumb_func_end ov49_0225D224
thumb_func_start ov49_0225D328
ov49_0225D328: ; 0x0225D328
push {r4, r5, r6, lr}
add r4, r2, #0
add r6, r0, #0
add r5, r1, #0
cmp r4, #3
blt _0225D338
bl GF_AssertFail
_0225D338:
ldrh r0, [r5, #2]
cmp r0, #0x12
blo _0225D342
bl GF_AssertFail
_0225D342:
ldrh r1, [r5, #2]
mov r0, #0xc
mul r0, r1
add r1, r6, r0
lsl r0, r4, #2
add r1, r1, r0
mov r0, #0xef
lsl r0, r0, #2
ldr r0, [r1, r0]
cmp r0, #0
beq _0225D390
add r6, r5, #0
add r6, #0xb8
ldrb r0, [r6, r4]
cmp r0, #1
bne _0225D390
add r2, r5, #0
mov r1, #0x14
add r2, #0x7c
mul r1, r4
add r0, r5, #4
add r1, r2, r1
bl sub_020181E0
lsl r2, r4, #2
mov r0, #0
add r1, r5, r2
strb r0, [r6, r4]
add r1, #0xc0
str r0, [r1]
add r1, r5, r4
add r1, #0xbc
strb r0, [r1]
add r1, r5, r4
add r1, #0xcd
strb r0, [r1]
add r1, r5, r2
add r1, #0xd0
str r0, [r1]
_0225D390:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225D328
thumb_func_start ov49_0225D394
ov49_0225D394: ; 0x0225D394
push {r4, r5, r6, lr}
add r6, r0, #0
add r5, r1, #0
mov r4, #0
_0225D39C:
add r0, r5, #0
add r1, r4, #0
bl ov49_0225D450
cmp r0, #1
bne _0225D3B2
add r0, r6, #0
add r1, r5, #0
add r2, r4, #0
bl ov49_0225D328
_0225D3B2:
add r4, r4, #1
cmp r4, #3
blt _0225D39C
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225D394
thumb_func_start ov49_0225D3BC
ov49_0225D3BC: ; 0x0225D3BC
push {r4, r5, r6, lr}
add r4, r2, #0
add r6, r0, #0
add r5, r1, #0
cmp r4, #3
blt _0225D3CC
bl GF_AssertFail
_0225D3CC:
ldrh r0, [r5, #2]
cmp r0, #0x12
blo _0225D3D6
bl GF_AssertFail
_0225D3D6:
ldrh r1, [r5, #2]
mov r0, #0xc
mul r0, r1
add r1, r6, r0
lsl r0, r4, #2
add r1, r1, r0
mov r0, #0xef
lsl r0, r0, #2
ldr r0, [r1, r0]
cmp r0, #0
beq _0225D3F4
add r0, r5, r4
add r0, #0xb8
ldrb r0, [r0]
pop {r4, r5, r6, pc}
_0225D3F4:
mov r0, #0
pop {r4, r5, r6, pc}
thumb_func_end ov49_0225D3BC
thumb_func_start ov49_0225D3F8
ov49_0225D3F8: ; 0x0225D3F8
push {r3, r4, r5, r6, r7, lr}
add r4, r2, #0
add r6, r0, #0
add r5, r1, #0
add r7, r3, #0
cmp r4, #3
blt _0225D40A
bl GF_AssertFail
_0225D40A:
ldrh r0, [r5, #2]
cmp r0, #0x12
blo _0225D414
bl GF_AssertFail
_0225D414:
ldrh r1, [r5, #2]
mov r0, #0xc
mul r0, r1
add r1, r6, r0
lsl r0, r4, #2
add r1, r1, r0
mov r0, #0xef
lsl r0, r0, #2
ldr r0, [r1, r0]
cmp r0, #0
bne _0225D42E
bl GF_AssertFail
_0225D42E:
add r0, r5, r4
add r0, #0xbc
ldrb r0, [r0]
cmp r0, #2
bne _0225D44E
add r2, r5, #0
mov r0, #0x14
add r2, #0xc0
lsl r1, r4, #2
str r7, [r2, r1]
add r5, #0x7c
mul r0, r4
ldr r1, [r2, r1]
add r0, r5, r0
bl sub_02018198
_0225D44E:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225D3F8
thumb_func_start ov49_0225D450
ov49_0225D450: ; 0x0225D450
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
cmp r4, #3
blt _0225D45E
bl GF_AssertFail
_0225D45E:
ldrh r0, [r5, #2]
cmp r0, #0x12
blo _0225D468
bl GF_AssertFail
_0225D468:
add r0, r5, r4
add r0, #0xb8
ldrb r0, [r0]
pop {r3, r4, r5, pc}
thumb_func_end ov49_0225D450
thumb_func_start ov49_0225D470
ov49_0225D470: ; 0x0225D470
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
cmp r4, #3
blt _0225D47E
bl GF_AssertFail
_0225D47E:
ldrh r0, [r5, #2]
cmp r0, #0x12
blo _0225D488
bl GF_AssertFail
_0225D488:
lsl r0, r4, #2
add r0, r5, r0
add r0, #0xc0
ldr r0, [r0]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_0225D470
thumb_func_start ov49_0225D494
ov49_0225D494: ; 0x0225D494
ldr r3, _0225D49C ; =sub_020182A0
add r0, r0, #4
bx r3
nop
_0225D49C: .word sub_020182A0
thumb_func_end ov49_0225D494
thumb_func_start ov49_0225D4A0
ov49_0225D4A0: ; 0x0225D4A0
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
ldrh r0, [r4, #2]
add r6, r2, #0
cmp r0, #0x12
blo _0225D4B2
bl GF_AssertFail
_0225D4B2:
ldrh r0, [r4, #2]
lsl r0, r0, #4
add r1, r5, r0
mov r0, #0xa9
lsl r0, r0, #2
ldr r0, [r1, r0]
add r1, r6, #0
bl NNS_G3dMdlSetMdlLightEnableFlagAll
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225D4A0
thumb_func_start ov49_0225D4C8
ov49_0225D4C8: ; 0x0225D4C8
add r0, #0xdc
str r1, [r0]
bx lr
.balign 4, 0
thumb_func_end ov49_0225D4C8
thumb_func_start ov49_0225D4D0
ov49_0225D4D0: ; 0x0225D4D0
push {r3, r4}
add r3, r0, #0
mov r4, #1
add r3, #0xe0
strb r4, [r3]
add r3, r0, #0
add r3, #0xe1
strb r1, [r3]
add r0, #0xe2
strb r2, [r0]
pop {r3, r4}
bx lr
thumb_func_end ov49_0225D4D0
thumb_func_start ov49_0225D4E8
ov49_0225D4E8: ; 0x0225D4E8
mov r1, #0
add r0, #0xe0
strb r1, [r0]
bx lr
thumb_func_end ov49_0225D4E8
thumb_func_start ov49_0225D4F0
ov49_0225D4F0: ; 0x0225D4F0
push {r3, lr}
add r0, r0, #4
bl sub_020182C4
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_0225D4F0
thumb_func_start ov49_0225D4FC
ov49_0225D4FC: ; 0x0225D4FC
push {r3, r4, r5, lr}
add r5, r2, #0
lsl r2, r1, #2
add r1, r1, r2
add r4, r0, r1
cmp r4, #0x19
blo _0225D50E
bl GF_AssertFail
_0225D50E:
mov r0, #1
str r0, [sp]
mov r0, #0xca
add r1, r4, #1
mov r2, #0
add r3, r5, #0
bl GfGfxLoader_LoadFromNarc
pop {r3, r4, r5, pc}
thumb_func_end ov49_0225D4FC
thumb_func_start ov49_0225D520
ov49_0225D520: ; 0x0225D520
ldr r3, _0225D524 ; =FreeToHeap
bx r3
.balign 4, 0
_0225D524: .word FreeToHeap
thumb_func_end ov49_0225D520
thumb_func_start ov49_0225D528
ov49_0225D528: ; 0x0225D528
push {r4, lr}
add r4, r0, #0
bl ov49_02258830
ldr r0, [r4]
bl NNS_G3dGetMdlSet
str r0, [r4, #4]
cmp r0, #0
beq _0225D55C
add r2, r0, #0
add r2, #8
beq _0225D550
ldrb r1, [r0, #9]
cmp r1, #0
bls _0225D550
ldrh r1, [r0, #0xe]
add r1, r2, r1
add r1, r1, #4
b _0225D552
_0225D550:
mov r1, #0
_0225D552:
cmp r1, #0
beq _0225D55C
ldr r1, [r1]
add r0, r0, r1
b _0225D55E
_0225D55C:
mov r0, #0
_0225D55E:
str r0, [r4, #8]
ldr r0, [r4]
bl NNS_G3dGetTex
str r0, [r4, #0xc]
ldr r0, [r4]
ldr r1, [r4, #0xc]
bl Bind3dModelSet
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225D528
thumb_func_start ov49_0225D574
ov49_0225D574: ; 0x0225D574
ldr r3, _0225D578 ; =sub_02018068
bx r3
.balign 4, 0
_0225D578: .word sub_02018068
thumb_func_end ov49_0225D574
thumb_func_start ov49_0225D57C
ov49_0225D57C: ; 0x0225D57C
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r1, #0
add r4, r2, #0
bl sub_020181A4
add r1, r0, #0
ldr r0, [r5]
add r0, r0, r4
cmp r0, r1
bge _0225D596
str r0, [r5]
pop {r3, r4, r5, pc}
_0225D596:
bl _s32_div_f
str r1, [r5]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_0225D57C
thumb_func_start ov49_0225D5A0
ov49_0225D5A0: ; 0x0225D5A0
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r1, #0
add r4, r2, #0
bl sub_020181A4
ldr r1, [r5]
add r1, r1, r4
cmp r1, r0
bge _0225D5BA
str r1, [r5]
mov r0, #0
pop {r3, r4, r5, pc}
_0225D5BA:
mov r1, #2
lsl r1, r1, #0xa
sub r0, r0, r1
str r0, [r5]
mov r0, #1
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_0225D5A0
thumb_func_start ov49_0225D5C8
ov49_0225D5C8: ; 0x0225D5C8
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r1, #0
add r4, r2, #0
bl sub_020181A4
ldr r1, [r5]
sub r1, r1, r4
bmi _0225D5DE
str r1, [r5]
pop {r3, r4, r5, pc}
_0225D5DE:
add r0, r0, r1
str r0, [r5]
pop {r3, r4, r5, pc}
thumb_func_end ov49_0225D5C8
thumb_func_start ov49_0225D5E4
ov49_0225D5E4: ; 0x0225D5E4
ldr r1, [r0]
sub r1, r1, r2
cmp r1, #0
ble _0225D5F2
str r1, [r0]
mov r0, #0
bx lr
_0225D5F2:
mov r1, #0
str r1, [r0]
mov r0, #1
bx lr
.balign 4, 0
thumb_func_end ov49_0225D5E4
thumb_func_start ov49_0225D5FC
ov49_0225D5FC: ; 0x0225D5FC
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
str r0, [sp, #8]
ldr r0, [sp, #0x30]
mov r7, #6
ldr r5, [sp, #8]
str r1, [sp, #0xc]
str r2, [sp, #0x10]
str r3, [sp, #0x14]
str r0, [sp, #0x30]
mov r6, #0
add r4, r2, #0
lsl r7, r7, #6
_0225D616:
ldr r1, [sp, #0xc]
ldr r2, [r4, r7]
ldr r3, [sp, #0x14]
add r0, r5, #0
bl ov49_0225D528
ldr r0, [r5]
bl ov45_0222D740
add r6, r6, #1
add r4, r4, #4
add r5, #0x10
cmp r6, #2
blt _0225D616
ldr r6, [sp, #8]
ldr r4, [sp, #0x10]
add r0, r6, #0
add r5, r6, #0
str r0, [sp, #0x18]
add r0, #0x10
mov r7, #0
add r5, #0x20
str r0, [sp, #0x18]
_0225D644:
mov r0, #6
ldr r1, [sp, #0x10]
lsl r0, r0, #6
ldr r1, [r1, r0]
add r0, #0xc
ldr r0, [r4, r0]
cmp r1, r0
bne _0225D65E
add r1, r6, #0
add r1, #0x84
mov r0, #0
str r0, [r1]
b _0225D69C
_0225D65E:
add r1, r6, #0
add r1, #0x84
mov r0, #1
str r0, [r1]
cmp r7, #3
beq _0225D684
ldr r0, [sp, #0x14]
mov r3, #0x63
str r0, [sp]
ldr r0, [sp, #0x30]
lsl r3, r3, #2
str r0, [sp, #4]
ldr r1, [sp, #8]
ldr r2, [sp, #0xc]
ldr r3, [r4, r3]
add r0, r5, #0
bl sub_020180BC
b _0225D69C
_0225D684:
ldr r0, [sp, #0x14]
mov r3, #0x63
str r0, [sp]
ldr r0, [sp, #0x30]
lsl r3, r3, #2
str r0, [sp, #4]
ldr r1, [sp, #0x18]
ldr r2, [sp, #0xc]
ldr r3, [r4, r3]
add r0, r5, #0
bl sub_020180BC
_0225D69C:
add r7, r7, #1
add r4, r4, #4
add r6, r6, #4
add r5, #0x14
cmp r7, #5
blt _0225D644
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
thumb_func_end ov49_0225D5FC
thumb_func_start ov49_0225D6AC
ov49_0225D6AC: ; 0x0225D6AC
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
add r5, r6, #0
str r1, [sp]
mov r7, #0
add r4, r6, #0
add r5, #0x20
_0225D6BA:
add r0, r4, #0
add r0, #0x84
ldr r0, [r0]
cmp r0, #0
beq _0225D6D4
ldr r1, [sp]
add r0, r5, #0
bl sub_020180F8
add r1, r4, #0
add r1, #0x84
mov r0, #0
str r0, [r1]
_0225D6D4:
add r7, r7, #1
add r4, r4, #4
add r5, #0x14
cmp r7, #5
blt _0225D6BA
mov r4, #0
_0225D6E0:
add r0, r6, #0
bl ov49_0225D574
add r4, r4, #1
add r6, #0x10
cmp r4, #2
blt _0225D6E0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225D6AC
thumb_func_start ov49_0225D6F0
ov49_0225D6F0: ; 0x0225D6F0
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r6, r0, #0
mov r0, #1
add r7, r1, #0
str r0, [r6]
mov r0, #0
str r0, [sp]
add r4, r7, #0
add r5, r6, #4
_0225D704:
add r0, r5, #0
add r1, r4, #0
bl sub_020181B0
add r0, r5, #0
mov r1, #1
bl sub_020182A0
ldr r0, [sp]
add r4, #0x10
add r0, r0, #1
add r5, #0x78
str r0, [sp]
cmp r0, #2
blt _0225D704
add r0, r6, #0
str r0, [sp, #8]
add r0, #0x7c
add r4, r7, #0
str r0, [sp, #8]
add r0, r6, #4
mov r5, #0
add r4, #0x20
str r0, [sp, #4]
_0225D734:
add r0, r7, #0
add r0, #0x84
ldr r0, [r0]
cmp r0, #1
bne _0225D75C
add r1, r6, #0
add r1, #0xf4
mov r0, #1
str r0, [r1]
cmp r5, #3
beq _0225D754
ldr r0, [sp, #4]
add r1, r4, #0
bl sub_020181D4
b _0225D75C
_0225D754:
ldr r0, [sp, #8]
add r1, r4, #0
bl sub_020181D4
_0225D75C:
add r5, r5, #1
add r7, r7, #4
add r6, r6, #4
add r4, #0x14
cmp r5, #4
blt _0225D734
add sp, #0xc
pop {r4, r5, r6, r7, pc}
thumb_func_end ov49_0225D6F0
thumb_func_start ov49_0225D76C
ov49_0225D76C: ; 0x0225D76C
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r5, r1, #0
str r0, [sp]
add r0, #0x7c
mov r6, #0
add r4, r7, #0
add r5, #0x20
str r0, [sp]
_0225D77E:
add r0, r4, #0
add r0, #0xf4
ldr r0, [r0]
cmp r0, #1
bne _0225D7A6
add r1, r4, #0
add r1, #0xf4
mov r0, #0
str r0, [r1]
cmp r6, #3
beq _0225D79E
add r0, r7, #4
add r1, r5, #0
bl sub_020181E0
b _0225D7A6
_0225D79E:
ldr r0, [sp]
add r1, r5, #0
bl sub_020181E0
_0225D7A6:
add r6, r6, #1
add r4, r4, #4
add r5, #0x14
cmp r6, #4
blt _0225D77E
mov r0, #0
str r0, [r7]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225D76C
thumb_func_start ov49_0225D7B8
ov49_0225D7B8: ; 0x0225D7B8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r0, #0
str r0, [sp]
add r4, r1, #0
mov r0, #0x42
add r4, #0x20
lsl r0, r0, #2
add r6, r5, r0
add r7, r4, #0
_0225D7CC:
add r0, r5, #0
add r0, #0xf4
ldr r0, [r0]
cmp r0, #0
beq _0225D7EE
mov r2, #1
add r0, r6, #0
add r1, r4, #0
lsl r2, r2, #0xc
bl ov49_0225D57C
mov r1, #0x42
lsl r1, r1, #2
ldr r1, [r5, r1]
add r0, r7, #0
bl sub_02018198
_0225D7EE:
ldr r0, [sp]
add r5, r5, #4
add r0, r0, #1
add r4, #0x14
add r6, r6, #4
add r7, #0x14
str r0, [sp]
cmp r0, #5
blt _0225D7CC
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225D7B8
thumb_func_start ov49_0225D804
ov49_0225D804: ; 0x0225D804
push {r3, r4, r5, lr}
ldr r1, [r0]
cmp r1, #0
beq _0225D81E
mov r4, #0
add r5, r0, #4
_0225D810:
add r0, r5, #0
bl sub_020181EC
add r4, r4, #1
add r5, #0x78
cmp r4, #2
blt _0225D810
_0225D81E:
pop {r3, r4, r5, pc}
thumb_func_end ov49_0225D804
thumb_func_start ov49_0225D820
ov49_0225D820: ; 0x0225D820
push {r4, lr}
mov r1, #0x49
lsl r1, r1, #2
ldrb r4, [r0, r1]
mov r2, #0
cmp r4, #0
ble _0225D84A
sub r1, #8
ldr r3, [r0, r1]
add r1, r3, #0
_0225D834:
ldrb r0, [r1]
cmp r0, #0
bne _0225D842
mov r0, #0xb4
mul r0, r2
add r0, r3, r0
pop {r4, pc}
_0225D842:
add r2, r2, #1
add r1, #0xb4
cmp r2, r4
blt _0225D834
_0225D84A:
bl GF_AssertFail
mov r0, #0
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225D820
thumb_func_start ov49_0225D854
ov49_0225D854: ; 0x0225D854
push {r4, r5, r6, r7, lr}
sub sp, #0x44
str r0, [sp, #8]
ldr r0, [sp, #0x58]
mov r7, #0x4a
str r0, [sp, #0x58]
mov r0, #0
str r0, [sp, #0x40]
add r0, r3, #0
str r0, [sp, #0x24]
ldr r0, [sp, #8]
str r1, [sp, #0xc]
str r0, [sp, #0x20]
add r0, #0x20
str r2, [sp, #0x10]
str r3, [sp, #0x14]
str r0, [sp, #0x20]
lsl r7, r7, #2
_0225D878:
ldr r4, [sp, #0x24]
ldr r5, [sp, #0x20]
mov r6, #0
_0225D87E:
ldr r1, [sp, #0xc]
ldr r2, [r4, r7]
ldr r3, [sp, #0x58]
add r0, r5, #0
bl ov49_02258830
add r6, r6, #1
add r4, r4, #4
add r5, r5, #4
cmp r6, #3
blt _0225D87E
ldr r0, [sp, #0x24]
add r0, #0xc
str r0, [sp, #0x24]
ldr r0, [sp, #0x20]
add r0, #0xc
str r0, [sp, #0x20]
ldr r0, [sp, #0x40]
add r0, r0, #1
str r0, [sp, #0x40]
cmp r0, #2
blt _0225D878
ldr r4, [sp, #8]
ldr r6, [sp, #0x14]
mov r7, #0
add r5, r4, #0
_0225D8B2:
mov r0, #0
mov r1, #0x12
str r0, [sp]
lsl r1, r1, #4
ldr r0, [sp, #0xc]
ldr r1, [r6, r1]
ldr r3, [sp, #0x58]
mov r2, #0
bl GfGfxLoader_LoadFromOpenNarc
str r0, [r4]
bl NNS_G3dGetMdlSet
str r0, [r4, #4]
cmp r0, #0
beq _0225D8F2
add r1, r0, #0
add r1, #8
beq _0225D8E6
ldrb r2, [r0, #9]
cmp r2, #0
bls _0225D8E6
ldrh r2, [r0, #0xe]
add r1, r1, r2
add r1, r1, #4
b _0225D8E8
_0225D8E6:
mov r1, #0
_0225D8E8:
cmp r1, #0
beq _0225D8F2
ldr r1, [r1]
add r0, r0, r1
b _0225D8F4
_0225D8F2:
mov r0, #0
_0225D8F4:
str r0, [r4, #8]
ldr r0, [r5, #0x20]
bl NNS_G3dGetTex
str r0, [r4, #0xc]
add r7, r7, #1
add r6, r6, #4
add r4, #0x10
add r5, #0xc
cmp r7, #2
blt _0225D8B2
mov r0, #0
str r0, [sp, #0x1c]
ldr r0, [sp, #0x14]
ldr r7, [sp, #0x14]
str r0, [sp, #0x3c]
ldr r0, [sp, #8]
str r0, [sp, #0x38]
add r0, #0x38
str r0, [sp, #0x38]
ldr r0, [sp, #0x14]
str r0, [sp, #0x34]
ldr r0, [sp, #8]
str r0, [sp, #0x30]
_0225D924:
mov r0, #0
str r0, [sp, #0x18]
ldr r0, [sp, #0x3c]
ldr r6, [sp, #0x34]
str r0, [sp, #0x2c]
ldr r0, [sp, #0x38]
ldr r5, [sp, #0x30]
str r0, [sp, #0x28]
_0225D934:
mov r0, #5
ldr r1, [sp, #0x2c]
lsl r0, r0, #6
ldr r3, [r1, r0]
ldr r1, [sp, #0x14]
sub r0, #0x20
ldr r0, [r1, r0]
cmp r0, r3
beq _0225D988
ldr r0, [sp, #0x58]
ldr r1, [sp, #8]
str r0, [sp]
ldr r0, [sp, #0x10]
ldr r2, [sp, #0xc]
str r0, [sp, #4]
ldr r0, [sp, #0x28]
bl sub_020180BC
ldr r0, [sp, #0x18]
cmp r0, #1
blt _0225D988
mov r0, #0x16
lsl r0, r0, #4
ldr r0, [r7, r0]
mov r4, #0
cmp r0, #0
bls _0225D988
_0225D96A:
mov r0, #0x59
lsl r0, r0, #2
ldr r0, [r6, r0]
cmp r4, r0
beq _0225D97C
ldr r0, [r5, #0x40]
add r1, r4, #0
bl NNS_G3dAnmObjDisableID
_0225D97C:
mov r0, #0x16
lsl r0, r0, #4
ldr r0, [r7, r0]
add r4, r4, #1
cmp r4, r0
blo _0225D96A
_0225D988:
ldr r0, [sp, #0x2c]
add r6, r6, #4
add r0, r0, #4
str r0, [sp, #0x2c]
ldr r0, [sp, #0x28]
add r5, #0x14
add r0, #0x14
str r0, [sp, #0x28]
ldr r0, [sp, #0x18]
add r0, r0, #1
str r0, [sp, #0x18]
cmp r0, #4
blt _0225D934
ldr r0, [sp, #0x3c]
add r7, r7, #4
add r0, #0x10
str r0, [sp, #0x3c]
ldr r0, [sp, #8]
add r0, #0x10
str r0, [sp, #8]
ldr r0, [sp, #0x38]
add r0, #0x50
str r0, [sp, #0x38]
ldr r0, [sp, #0x34]
add r0, #0xc
str r0, [sp, #0x34]
ldr r0, [sp, #0x30]
add r0, #0x50
str r0, [sp, #0x30]
ldr r0, [sp, #0x1c]
add r0, r0, #1
str r0, [sp, #0x1c]
cmp r0, #2
blt _0225D924
add sp, #0x44
pop {r4, r5, r6, r7, pc}
thumb_func_end ov49_0225D854
thumb_func_start ov49_0225D9D0
ov49_0225D9D0: ; 0x0225D9D0
push {r4, r5, r6, r7, lr}
sub sp, #0x14
str r0, [sp]
ldr r7, [sp]
mov r0, #0
add r6, r1, #0
str r0, [sp, #8]
add r7, #0x38
_0225D9E0:
mov r4, #0
add r5, r7, #0
_0225D9E4:
add r0, r5, #0
add r1, r6, #0
bl sub_020180F8
add r4, r4, #1
add r5, #0x14
cmp r4, #4
blt _0225D9E4
ldr r0, [sp, #8]
add r7, #0x50
add r0, r0, #1
str r0, [sp, #8]
cmp r0, #2
blt _0225D9E0
ldr r4, [sp]
mov r5, #0
_0225DA04:
ldr r0, [r4]
bl FreeToHeap
add r5, r5, #1
add r4, #0x10
cmp r5, #2
blt _0225DA04
mov r0, #0
ldr r7, _0225DA68 ; =NNS_GfdDefaultFuncFreeTexVram
str r0, [sp, #4]
_0225DA18:
ldr r4, [sp]
mov r5, #0
_0225DA1C:
ldr r0, [r4, #0x20]
bl NNS_G3dGetTex
add r1, sp, #0x10
add r2, sp, #0xc
add r6, r0, #0
bl NNS_G3dTexReleaseTexKey
ldr r0, [sp, #0x10]
ldr r1, [r7]
blx r1
ldr r0, [sp, #0xc]
ldr r1, [r7]
blx r1
add r0, r6, #0
bl NNS_G3dPlttReleasePlttKey
ldr r1, _0225DA6C ; =NNS_GfdDefaultFuncFreePlttVram
ldr r1, [r1]
blx r1
ldr r0, [r4, #0x20]
bl FreeToHeap
add r5, r5, #1
add r4, r4, #4
cmp r5, #3
blt _0225DA1C
ldr r0, [sp]
add r0, #0xc
str r0, [sp]
ldr r0, [sp, #4]
add r0, r0, #1
str r0, [sp, #4]
cmp r0, #2
blt _0225DA18
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_0225DA68: .word NNS_GfdDefaultFuncFreeTexVram
_0225DA6C: .word NNS_GfdDefaultFuncFreePlttVram
thumb_func_end ov49_0225D9D0
thumb_func_start ov49_0225DA70
ov49_0225DA70: ; 0x0225DA70
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
mov r7, #0
str r0, [sp]
add r4, r0, #0
add r0, r1, #0
str r1, [sp, #4]
add r0, #0x38
add r6, r7, #0
add r5, #0x8c
str r0, [sp, #4]
_0225DA88:
ldr r0, [r4, #0x7c]
cmp r0, #0
beq _0225DAEC
cmp r7, #3
bhi _0225DAE8
add r0, r7, r7
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225DA9E: ; jump table
.short _0225DAA6 - _0225DA9E - 2 ; case 0
.short _0225DAC0 - _0225DA9E - 2 ; case 1
.short _0225DAA6 - _0225DA9E - 2 ; case 2
.short _0225DAC0 - _0225DA9E - 2 ; case 3
_0225DAA6:
ldr r1, [sp]
mov r2, #0x50
ldrb r1, [r1, #2]
add r0, r5, #0
mul r2, r1
ldr r1, [sp, #4]
add r1, r1, r2
mov r2, #1
add r1, r1, r6
lsl r2, r2, #0xc
bl ov49_0225D57C
b _0225DAEC
_0225DAC0:
ldr r1, [sp]
mov r2, #0x50
ldrb r1, [r1, #2]
add r0, r5, #0
mul r2, r1
ldr r1, [sp, #4]
add r1, r1, r2
mov r2, #1
add r1, r1, r6
lsl r2, r2, #0xc
bl ov49_0225D5A0
cmp r0, #1
bne _0225DAEC
mov r0, #0
add r1, r4, #0
str r0, [r4, #0x7c]
add r1, #0x8c
str r0, [r1]
b _0225DAEC
_0225DAE8:
bl GF_AssertFail
_0225DAEC:
add r7, r7, #1
add r4, r4, #4
add r6, #0x14
add r5, r5, #4
cmp r7, #4
blt _0225DA88
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225DA70
thumb_func_start ov49_0225DAFC
ov49_0225DAFC: ; 0x0225DAFC
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
ldrb r0, [r5]
str r1, [sp]
cmp r0, #0
beq _0225DBF2
ldrb r0, [r5, #2]
lsl r1, r0, #4
ldr r0, [sp]
add r0, r0, r1
add r1, r5, #4
bl ov49_022588A0
cmp r0, #0
beq _0225DBF2
ldrb r0, [r5, #1]
cmp r0, #3
blo _0225DB26
bl GF_AssertFail
_0225DB26:
ldrb r0, [r5, #2]
cmp r0, #2
blo _0225DB30
bl GF_AssertFail
_0225DB30:
ldrb r1, [r5, #2]
mov r0, #0xc
add r2, r1, #0
mul r2, r0
ldr r0, [sp]
add r1, r0, r2
ldrb r0, [r5, #1]
lsl r0, r0, #2
add r0, r1, r0
ldr r0, [r0, #0x20]
bl NNS_G3dGetTex
ldrb r1, [r5, #2]
lsl r2, r1, #4
ldr r1, [sp]
add r1, r1, r2
str r0, [r1, #0xc]
ldrb r0, [r5, #2]
lsl r1, r0, #4
ldr r0, [sp]
add r1, r0, r1
ldr r0, [r1, #4]
ldr r1, [r1, #0xc]
bl NNS_G3dBindMdlSet
cmp r0, #0
bne _0225DB6A
bl GF_AssertFail
_0225DB6A:
ldr r7, [sp]
mov r0, #0
str r0, [sp, #4]
add r6, r5, #0
add r4, r0, #0
add r7, #0x38
_0225DB76:
ldr r0, [r6, #0x7c]
cmp r0, #0
beq _0225DBA0
ldrb r2, [r5, #2]
mov r1, #0x50
add r0, r5, #4
mul r1, r2
add r1, r7, r1
add r1, r1, r4
bl sub_020181D4
ldrb r1, [r5, #2]
mov r0, #0x50
mul r0, r1
add r1, r6, #0
add r1, #0x8c
add r0, r7, r0
ldr r1, [r1]
add r0, r0, r4
bl sub_02018198
_0225DBA0:
ldr r0, [sp, #4]
add r6, r6, #4
add r0, r0, #1
add r4, #0x14
str r0, [sp, #4]
cmp r0, #4
blt _0225DB76
add r0, r5, #4
bl sub_020181EC
ldr r0, [sp]
mov r7, #0
str r0, [sp, #8]
add r0, #0x38
add r6, r5, #0
add r4, r7, #0
str r0, [sp, #8]
_0225DBC2:
ldr r0, [r6, #0x7c]
cmp r0, #0
beq _0225DBDA
ldrb r1, [r5, #2]
mov r2, #0x50
add r0, r5, #4
mul r2, r1
ldr r1, [sp, #8]
add r1, r1, r2
add r1, r1, r4
bl sub_020181E0
_0225DBDA:
add r7, r7, #1
add r6, r6, #4
add r4, #0x14
cmp r7, #4
blt _0225DBC2
ldrb r0, [r5, #2]
lsl r1, r0, #4
ldr r0, [sp]
add r0, r0, r1
ldr r0, [r0, #4]
bl NNS_G3dReleaseMdlSet
_0225DBF2:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225DAFC
thumb_func_start ov49_0225DBF8
ov49_0225DBF8: ; 0x0225DBF8
push {r4, lr}
ldr r3, _0225DC28 ; =0x00000125
mov r1, #0
ldrb r2, [r0, r3]
cmp r2, #0
ble _0225DC20
sub r3, r3, #5
ldr r4, [r0, r3]
add r3, r4, #0
_0225DC0A:
ldrh r0, [r3]
cmp r0, #0
bne _0225DC18
mov r0, #0xe4
mul r0, r1
add r0, r4, r0
pop {r4, pc}
_0225DC18:
add r1, r1, #1
add r3, #0xe4
cmp r1, r2
blt _0225DC0A
_0225DC20:
bl GF_AssertFail
mov r0, #0
pop {r4, pc}
.balign 4, 0
_0225DC28: .word 0x00000125
thumb_func_end ov49_0225DBF8
thumb_func_start ov49_0225DC2C
ov49_0225DC2C: ; 0x0225DC2C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
str r0, [sp, #4]
ldr r0, [sp, #0x30]
add r7, r3, #0
str r0, [sp, #0x30]
mov r0, #0
str r0, [sp, #0x14]
ldr r0, [sp, #4]
str r1, [sp, #8]
str r7, [sp, #0x10]
str r0, [sp, #0xc]
_0225DC44:
ldr r0, [sp, #4]
ldr r1, [sp, #8]
ldr r2, [r7]
ldr r3, [sp, #0x30]
bl ov49_0225D528
ldr r0, [sp, #0x14]
cmp r0, #0xb
beq _0225DC62
cmp r0, #0xc
beq _0225DC62
ldr r0, [sp, #4]
ldr r0, [r0]
bl ov45_0222D740
_0225DC62:
ldr r4, [sp, #0x10]
ldr r5, [sp, #0xc]
mov r6, #0
_0225DC68:
ldr r1, [r4, #0x48]
ldr r0, [r7]
cmp r0, r1
beq _0225DC86
mov r0, #0
str r0, [sp]
ldr r0, [sp, #8]
ldr r3, [sp, #0x30]
mov r2, #0
bl GfGfxLoader_LoadFromOpenNarc
mov r1, #0x12
lsl r1, r1, #4
str r0, [r5, r1]
b _0225DC8E
_0225DC86:
mov r0, #0x12
mov r1, #0
lsl r0, r0, #4
str r1, [r5, r0]
_0225DC8E:
add r6, r6, #1
add r4, r4, #4
add r5, r5, #4
cmp r6, #3
blt _0225DC68
ldr r0, [sp, #4]
add r7, r7, #4
add r0, #0x10
str r0, [sp, #4]
ldr r0, [sp, #0x10]
add r0, #0xc
str r0, [sp, #0x10]
ldr r0, [sp, #0xc]
add r0, #0xc
str r0, [sp, #0xc]
ldr r0, [sp, #0x14]
add r0, r0, #1
str r0, [sp, #0x14]
cmp r0, #0x12
blt _0225DC44
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225DC2C
thumb_func_start ov49_0225DCBC
ov49_0225DCBC: ; 0x0225DCBC
push {r4, r5, r6, r7, lr}
sub sp, #0xc
str r0, [sp]
mov r0, #0
str r0, [sp, #8]
ldr r0, [sp]
mov r7, #0x12
str r0, [sp, #4]
mov r6, #0
lsl r7, r7, #4
_0225DCD0:
ldr r5, [sp]
mov r4, #0
_0225DCD4:
ldr r0, [r5, r7]
cmp r0, #0
beq _0225DCE4
bl FreeToHeap
mov r0, #0x12
lsl r0, r0, #4
str r6, [r5, r0]
_0225DCE4:
add r4, r4, #1
add r5, r5, #4
cmp r4, #3
blt _0225DCD4
ldr r0, [sp, #4]
bl ov49_0225D574
ldr r0, [sp]
add r0, #0xc
str r0, [sp]
ldr r0, [sp, #4]
add r0, #0x10
str r0, [sp, #4]
ldr r0, [sp, #8]
add r0, r0, #1
str r0, [sp, #8]
cmp r0, #0x12
blt _0225DCD0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
thumb_func_end ov49_0225DCBC
thumb_func_start ov49_0225DD0C
ov49_0225DD0C: ; 0x0225DD0C
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldrh r0, [r4]
cmp r0, #0
beq _0225DD64
ldrh r0, [r4, #2]
add r1, r4, #4
lsl r0, r0, #4
add r0, r5, r0
bl ov49_022588A0
cmp r0, #0
beq _0225DD64
add r0, r4, #0
add r0, #0xe0
ldrb r0, [r0]
cmp r0, #1
bne _0225DD44
ldrh r0, [r4, #2]
add r1, r4, #0
add r1, #0xe1
lsl r0, r0, #4
add r0, r5, r0
ldrb r1, [r1]
ldr r0, [r0, #8]
bl NNS_G3dMdlSetMdlAlphaAll
_0225DD44:
add r0, r4, #4
bl sub_020181EC
add r0, r4, #0
add r0, #0xe0
ldrb r0, [r0]
cmp r0, #1
bne _0225DD64
ldrh r0, [r4, #2]
add r4, #0xe2
ldrb r1, [r4]
lsl r0, r0, #4
add r0, r5, r0
ldr r0, [r0, #8]
bl NNS_G3dMdlSetMdlAlphaAll
_0225DD64:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_0225DD0C
thumb_func_start ov49_0225DD68
ov49_0225DD68: ; 0x0225DD68
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r4, r1, #0
str r0, [sp]
add r0, r4, #0
str r0, [sp, #0xc]
add r0, #0x7c
add r7, r4, #0
mov r5, #0
str r0, [sp, #0xc]
add r7, #0xc0
add r6, r4, #0
str r0, [sp, #8]
_0225DD82:
add r0, r4, r5
add r0, #0xb8
ldrb r0, [r0]
cmp r0, #0
beq _0225DDEE
add r0, r4, r5
add r0, #0xbc
ldrb r0, [r0]
cmp r0, #6
bhi _0225DDEE
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225DDA2: ; jump table
.short _0225DDB0 - _0225DDA2 - 2 ; case 0
.short _0225DDCC - _0225DDA2 - 2 ; case 1
.short _0225DEFC - _0225DDA2 - 2 ; case 2
.short _0225DE12 - _0225DDA2 - 2 ; case 3
.short _0225DE2E - _0225DDA2 - 2 ; case 4
.short _0225DE72 - _0225DDA2 - 2 ; case 5
.short _0225DEC8 - _0225DDA2 - 2 ; case 6
_0225DDB0:
add r2, r4, #0
add r2, #0xdc
ldr r1, [sp, #0xc]
ldr r2, [r2]
add r0, r7, #0
bl ov49_0225D57C
add r1, r6, #0
add r1, #0xc0
ldr r0, [sp, #8]
ldr r1, [r1]
bl sub_02018198
b _0225DEFC
_0225DDCC:
add r2, r4, #0
add r2, #0xdc
ldr r1, [sp, #0xc]
ldr r2, [r2]
add r0, r7, #0
bl ov49_0225D5A0
add r1, r6, #0
add r1, #0xc0
str r0, [sp, #0x14]
ldr r0, [sp, #8]
ldr r1, [r1]
bl sub_02018198
ldr r0, [sp, #0x14]
cmp r0, #1
beq _0225DDF0
_0225DDEE:
b _0225DEFC
_0225DDF0:
add r0, r6, #0
add r0, #0xd0
ldr r0, [r0]
add r1, r4, #0
str r0, [sp, #0x10]
ldr r0, [sp]
add r2, r5, #0
bl ov49_0225D328
ldr r0, [sp, #0x10]
cmp r0, #0
beq _0225DEFC
ldr r0, [sp]
ldr r2, [sp, #0x10]
add r1, r4, #0
blx r2
b _0225DEFC
_0225DE12:
add r2, r4, #0
add r2, #0xdc
ldr r1, [sp, #0xc]
ldr r2, [r2]
add r0, r7, #0
bl ov49_0225D5C8
add r1, r6, #0
add r1, #0xc0
ldr r0, [sp, #8]
ldr r1, [r1]
bl sub_02018198
b _0225DEFC
_0225DE2E:
add r2, r4, #0
add r2, #0xdc
ldr r1, [sp, #0xc]
ldr r2, [r2]
add r0, r7, #0
bl ov49_0225D5E4
add r1, r6, #0
add r1, #0xc0
str r0, [sp, #0x18]
ldr r0, [sp, #8]
ldr r1, [r1]
bl sub_02018198
ldr r0, [sp, #0x18]
cmp r0, #1
bne _0225DEFC
add r0, r6, #0
add r0, #0xd0
ldr r0, [r0]
add r1, r4, #0
str r0, [sp, #4]
ldr r0, [sp]
add r2, r5, #0
bl ov49_0225D328
ldr r0, [sp, #4]
cmp r0, #0
beq _0225DEFC
ldr r0, [sp]
ldr r2, [sp, #4]
add r1, r4, #0
blx r2
b _0225DEFC
_0225DE72:
add r0, r4, r5
add r0, #0xcd
ldrb r0, [r0]
cmp r0, #0
beq _0225DE8C
add r0, r4, r5
add r0, #0xcd
ldrb r0, [r0]
sub r1, r0, #1
add r0, r4, r5
add r0, #0xcd
strb r1, [r0]
b _0225DEFC
_0225DE8C:
add r2, r4, #0
add r2, #0xdc
ldr r1, [sp, #0xc]
ldr r2, [r2]
add r0, r7, #0
bl ov49_0225D5A0
cmp r0, #1
bne _0225DEBA
bl MTRandom
add r1, r4, #0
add r1, #0xcc
ldrb r1, [r1]
bl _u32_div_f
add r0, r4, r5
add r0, #0xcd
strb r1, [r0]
add r1, r6, #0
add r1, #0xc0
mov r0, #0
str r0, [r1]
_0225DEBA:
add r1, r6, #0
add r1, #0xc0
ldr r0, [sp, #8]
ldr r1, [r1]
bl sub_02018198
b _0225DEFC
_0225DEC8:
add r0, r4, r5
add r0, #0xcd
ldrb r0, [r0]
cmp r0, #0
beq _0225DEE2
add r0, r4, r5
add r0, #0xcd
ldrb r0, [r0]
sub r1, r0, #1
add r0, r4, r5
add r0, #0xcd
strb r1, [r0]
b _0225DEFC
_0225DEE2:
add r2, r4, #0
add r2, #0xdc
ldr r1, [sp, #0xc]
ldr r2, [r2]
add r0, r7, #0
bl ov49_0225D57C
add r1, r6, #0
add r1, #0xc0
ldr r0, [sp, #8]
ldr r1, [r1]
bl sub_02018198
_0225DEFC:
ldr r0, [sp, #0xc]
add r5, r5, #1
add r0, #0x14
str r0, [sp, #0xc]
ldr r0, [sp, #8]
add r7, r7, #4
add r0, #0x14
add r6, r6, #4
str r0, [sp, #8]
cmp r5, #3
bge _0225DF14
b _0225DD82
_0225DF14:
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
thumb_func_end ov49_0225DD68
thumb_func_start ov49_0225DF18
ov49_0225DF18: ; 0x0225DF18
push {r4, r5, r6, r7, lr}
sub sp, #0x34
add r6, r1, #0
add r5, r0, #0
ldr r1, _0225E284 ; =0x00000614
add r0, r3, #0
add r7, r2, #0
str r3, [sp, #4]
bl AllocFromHeap
ldr r2, _0225E284 ; =0x00000614
mov r1, #0
add r4, r0, #0
bl memset
mov r0, #0x61
str r7, [r4]
lsl r0, r0, #4
strb r5, [r4, r0]
add r0, r0, #1
strb r6, [r4, r0]
ldr r2, [sp, #4]
ldr r3, [sp, #0x48]
mov r0, #9
mov r1, #0x80
bl ov49_0225CC4C
str r0, [r4, #4]
ldr r0, [sp, #0x48]
ldr r3, [sp, #4]
str r0, [sp]
ldr r0, [r4, #4]
add r1, r6, #0
add r2, r5, #0
bl ov49_0225CDEC
mov r0, #0
ldr r5, _0225E288 ; =ov49_02269AAC
str r0, [sp, #0xc]
_0225DF66:
mov r0, #0
str r0, [sp]
ldrh r1, [r5]
str r0, [sp, #8]
add r2, sp, #0x1c
ldr r0, [r4]
add r2, #2
add r3, sp, #0x1c
bl ov49_022589D8
cmp r0, #1
beq _0225DF80
b _0225E234
_0225DF80:
mov r0, #0x92
lsl r0, r0, #2
add r0, r4, r0
str r0, [sp, #0x10]
mov r0, #0xda
lsl r0, r0, #2
add r0, r4, r0
str r0, [sp, #0x14]
ldr r0, _0225E28C ; =0x000004E8
mov r7, sp
add r0, r4, r0
str r0, [sp, #0x18]
sub r7, r7, #4
add r6, sp, #0x1c
_0225DF9C:
ldrh r1, [r5, #2]
ldrh r2, [r6, #2]
ldrh r3, [r6]
ldr r0, [r4, #4]
bl ov49_0225D098
ldr r1, _0225E290 ; =0x00000612
ldrb r1, [r4, r1]
lsl r1, r1, #2
add r1, r4, r1
str r0, [r1, #8]
ldrh r0, [r5, #2]
cmp r0, #0x10
bls _0225DFBA
b _0225E20E
_0225DFBA:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225DFC6: ; jump table
.short _0225E014 - _0225DFC6 - 2 ; case 0
.short _0225E20E - _0225DFC6 - 2 ; case 1
.short _0225E20E - _0225DFC6 - 2 ; case 2
.short _0225E20E - _0225DFC6 - 2 ; case 3
.short _0225E20E - _0225DFC6 - 2 ; case 4
.short _0225E20E - _0225DFC6 - 2 ; case 5
.short _0225DFE8 - _0225DFC6 - 2 ; case 6
.short _0225DFE8 - _0225DFC6 - 2 ; case 7
.short _0225DFE8 - _0225DFC6 - 2 ; case 8
.short _0225E20E - _0225DFC6 - 2 ; case 9
.short _0225E052 - _0225DFC6 - 2 ; case 10
.short _0225E07E - _0225DFC6 - 2 ; case 11
.short _0225E07E - _0225DFC6 - 2 ; case 12
.short _0225E094 - _0225DFC6 - 2 ; case 13
.short _0225E0F2 - _0225DFC6 - 2 ; case 14
.short _0225E150 - _0225DFC6 - 2 ; case 15
.short _0225E18C - _0225DFC6 - 2 ; case 16
_0225DFE8:
ldr r1, _0225E290 ; =0x00000612
mov r2, #0
ldrb r1, [r4, r1]
ldr r0, [r4, #4]
add r3, r2, #0
lsl r1, r1, #2
add r1, r4, r1
ldr r1, [r1, #8]
bl ov49_0225D214
ldr r0, _0225E290 ; =0x00000612
ldrb r0, [r4, r0]
lsl r0, r0, #2
add r0, r4, r0
ldr r2, [r0, #8]
ldrh r0, [r5, #2]
lsl r0, r0, #2
add r1, r4, r0
mov r0, #0x85
lsl r0, r0, #2
str r2, [r1, r0]
b _0225E20E
_0225E014:
ldr r1, _0225E290 ; =0x00000612
mov r2, #0
ldrb r1, [r4, r1]
ldr r0, [r4, #4]
add r3, r2, #0
lsl r1, r1, #2
add r1, r4, r1
ldr r1, [r1, #8]
bl ov49_0225D214
ldr r1, _0225E290 ; =0x00000612
ldr r0, [r4, #4]
ldrb r1, [r4, r1]
mov r2, #1
mov r3, #0
lsl r1, r1, #2
add r1, r4, r1
ldr r1, [r1, #8]
bl ov49_0225D214
ldr r1, _0225E290 ; =0x00000612
ldr r0, [r4, #4]
ldrb r1, [r4, r1]
mov r2, #2
mov r3, #0
lsl r1, r1, #2
add r1, r4, r1
ldr r1, [r1, #8]
bl ov49_0225D214
b _0225E20E
_0225E052:
ldr r1, _0225E290 ; =0x00000612
ldr r0, [r4, #4]
ldrb r1, [r4, r1]
mov r2, #0
mov r3, #2
lsl r1, r1, #2
add r1, r4, r1
ldr r1, [r1, #8]
bl ov49_0225D214
ldr r0, _0225E290 ; =0x00000612
ldrb r0, [r4, r0]
lsl r0, r0, #2
add r0, r4, r0
ldr r2, [r0, #8]
ldrh r0, [r5]
lsl r0, r0, #2
add r1, r4, r0
mov r0, #0x45
lsl r0, r0, #2
str r2, [r1, r0]
b _0225E20E
_0225E07E:
ldr r1, _0225E290 ; =0x00000612
ldr r0, [r4, #4]
ldrb r1, [r4, r1]
mov r2, #0
mov r3, #2
lsl r1, r1, #2
add r1, r4, r1
ldr r1, [r1, #8]
bl ov49_0225D214
b _0225E20E
_0225E094:
ldr r0, _0225E294 ; =0x00000608
mov r1, #0xc
ldrb r0, [r4, r0]
mul r1, r0
ldr r0, [sp, #0x10]
add r0, r0, r1
ldr r1, _0225E290 ; =0x00000612
ldrb r1, [r4, r1]
lsl r1, r1, #2
add r1, r4, r1
ldr r1, [r1, #8]
bl ov49_0225EB00
ldr r0, _0225E294 ; =0x00000608
ldrb r0, [r4, r0]
add r1, r0, #1
ldr r0, _0225E294 ; =0x00000608
strb r1, [r4, r0]
ldrb r0, [r4, r0]
cmp r0, #0x18
bls _0225E0C2
bl GF_AssertFail
_0225E0C2:
ldr r0, _0225E290 ; =0x00000612
mov r1, #0
ldrb r0, [r4, r0]
lsl r0, r0, #2
add r0, r4, r0
ldr r0, [r0, #8]
bl ov49_0225D494
ldrh r1, [r5]
ldr r0, _0225E298 ; =0x0000FFA4
add r0, r1, r0
lsl r0, r0, #0x10
lsr r0, r0, #0x10
cmp r0, #1
bls _0225E0E2
b _0225E20E
_0225E0E2:
ldr r0, _0225E290 ; =0x00000612
ldrb r0, [r4, r0]
lsl r0, r0, #2
add r0, r4, r0
ldr r0, [r0, #8]
bl ov49_0225EE4C
b _0225E20E
_0225E0F2:
ldr r0, _0225E29C ; =0x00000609
mov r1, #0xc
ldrb r0, [r4, r0]
mul r1, r0
ldr r0, [sp, #0x14]
add r0, r0, r1
ldr r1, _0225E290 ; =0x00000612
ldrb r1, [r4, r1]
lsl r1, r1, #2
add r1, r4, r1
ldr r1, [r1, #8]
bl ov49_0225EB00
ldr r0, _0225E29C ; =0x00000609
ldrb r0, [r4, r0]
add r1, r0, #1
ldr r0, _0225E29C ; =0x00000609
strb r1, [r4, r0]
sub r0, r0, #1
ldrb r0, [r4, r0]
cmp r0, #0x18
bls _0225E122
bl GF_AssertFail
_0225E122:
ldr r0, _0225E290 ; =0x00000612
mov r1, #0
ldrb r0, [r4, r0]
lsl r0, r0, #2
add r0, r4, r0
ldr r0, [r0, #8]
bl ov49_0225D494
ldrh r1, [r5]
ldr r0, _0225E298 ; =0x0000FFA4
add r0, r1, r0
lsl r0, r0, #0x10
lsr r0, r0, #0x10
cmp r0, #1
bhi _0225E20E
ldr r0, _0225E290 ; =0x00000612
ldrb r0, [r4, r0]
lsl r0, r0, #2
add r0, r4, r0
ldr r0, [r0, #8]
bl ov49_0225EE4C
b _0225E20E
_0225E150:
ldr r0, _0225E290 ; =0x00000612
ldrb r0, [r4, r0]
lsl r0, r0, #2
add r0, r4, r0
ldr r2, [r0, #8]
ldr r0, _0225E2A0 ; =0x0000060A
ldrb r0, [r4, r0]
lsl r0, r0, #2
add r1, r4, r0
ldr r0, _0225E2A4 ; =0x00000488
str r2, [r1, r0]
ldr r0, _0225E2A0 ; =0x0000060A
ldrb r0, [r4, r0]
add r1, r0, #1
ldr r0, _0225E2A0 ; =0x0000060A
strb r1, [r4, r0]
ldrb r0, [r4, r0]
cmp r0, #0x18
bls _0225E17A
bl GF_AssertFail
_0225E17A:
ldr r0, _0225E290 ; =0x00000612
mov r1, #0
ldrb r0, [r4, r0]
lsl r0, r0, #2
add r0, r4, r0
ldr r0, [r0, #8]
bl ov49_0225D494
b _0225E20E
_0225E18C:
ldr r0, _0225E2A8 ; =0x0000060B
mov r1, #0xc
ldrb r0, [r4, r0]
mul r1, r0
ldr r0, [sp, #0x18]
add r0, r0, r1
ldr r1, _0225E290 ; =0x00000612
ldrb r1, [r4, r1]
lsl r1, r1, #2
add r1, r4, r1
ldr r1, [r1, #8]
bl ov49_0225EB00
ldr r0, _0225E2A8 ; =0x0000060B
ldrb r0, [r4, r0]
add r1, r0, #1
ldr r0, _0225E2A8 ; =0x0000060B
strb r1, [r4, r0]
ldrb r0, [r4, r0]
cmp r0, #0x18
bls _0225E1BA
bl GF_AssertFail
_0225E1BA:
ldr r0, _0225E290 ; =0x00000612
mov r1, #0
ldrb r0, [r4, r0]
lsl r0, r0, #2
add r0, r4, r0
ldr r0, [r0, #8]
bl ov49_0225D494
ldr r0, _0225E290 ; =0x00000612
ldrb r0, [r4, r0]
lsl r0, r0, #2
add r0, r4, r0
ldr r0, [r0, #8]
bl ov49_0225D1EC
strh r0, [r6, #4]
lsr r0, r0, #0x10
strh r0, [r6, #6]
ldrh r0, [r6, #4]
strh r0, [r6, #8]
ldrh r0, [r6, #6]
strh r0, [r6, #0xa]
mov r0, #8
ldrsh r0, [r6, r0]
add r0, #8
strh r0, [r6, #8]
mov r0, #0xa
ldrsh r0, [r6, r0]
add r0, #0x14
strh r0, [r6, #0xa]
ldr r0, _0225E290 ; =0x00000612
ldrh r1, [r6, #8]
ldrb r0, [r4, r0]
lsl r0, r0, #2
add r0, r4, r0
ldr r0, [r0, #8]
strh r1, [r7]
ldrh r1, [r6, #0xa]
strh r1, [r7, #2]
ldr r1, [r7]
bl ov49_0225D1C4
_0225E20E:
ldr r0, _0225E290 ; =0x00000612
add r2, sp, #0x1c
ldrb r0, [r4, r0]
add r2, #2
add r3, sp, #0x1c
add r1, r0, #1
ldr r0, _0225E290 ; =0x00000612
strb r1, [r4, r0]
ldr r0, [sp, #8]
add r0, r0, #1
str r0, [sp]
str r0, [sp, #8]
ldrh r1, [r5]
ldr r0, [r4]
bl ov49_022589D8
cmp r0, #1
bne _0225E234
b _0225DF9C
_0225E234:
ldr r0, [sp, #0xc]
add r5, r5, #4
add r0, r0, #1
str r0, [sp, #0xc]
cmp r0, #0x23
bhs _0225E242
b _0225DF66
_0225E242:
mov r0, #0xa
mov r7, #0
lsl r0, r0, #0xe
ldr r6, _0225E2AC ; =ov49_02269A88
str r7, [sp, #0x28]
str r0, [sp, #0x30]
str r7, [sp, #0x2c]
add r5, r4, #0
_0225E252:
ldrh r1, [r6]
ldrh r2, [r6, #2]
ldr r0, [r4, #4]
add r3, sp, #0x28
bl ov49_0225CF28
mov r1, #0x82
lsl r1, r1, #2
str r0, [r5, r1]
add r0, r1, #0
ldr r0, [r5, r0]
mov r1, #0
bl ov49_0225D040
add r7, r7, #1
add r6, r6, #4
add r5, r5, #4
cmp r7, #9
blt _0225E252
ldr r0, _0225E2B0 ; =0x00000613
mov r1, #9
strb r1, [r4, r0]
add r0, r4, #0
add sp, #0x34
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_0225E284: .word 0x00000614
_0225E288: .word ov49_02269AAC
_0225E28C: .word 0x000004E8
_0225E290: .word 0x00000612
_0225E294: .word 0x00000608
_0225E298: .word 0x0000FFA4
_0225E29C: .word 0x00000609
_0225E2A0: .word 0x0000060A
_0225E2A4: .word 0x00000488
_0225E2A8: .word 0x0000060B
_0225E2AC: .word ov49_02269A88
_0225E2B0: .word 0x00000613
thumb_func_end ov49_0225DF18
thumb_func_start ov49_0225E2B4
ov49_0225E2B4: ; 0x0225E2B4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _0225E310 ; =0x00000613
mov r6, #0
ldrb r0, [r5, r0]
cmp r0, #0
ble _0225E2DA
ldr r7, _0225E310 ; =0x00000613
add r4, r5, #0
_0225E2C6:
mov r0, #0x82
lsl r0, r0, #2
ldr r0, [r4, r0]
bl ov49_0225CF94
ldrb r0, [r5, r7]
add r6, r6, #1
add r4, r4, #4
cmp r6, r0
blt _0225E2C6
_0225E2DA:
ldr r0, _0225E314 ; =0x00000612
mov r6, #0
ldrb r0, [r5, r0]
cmp r0, #0
ble _0225E2FA
ldr r7, _0225E314 ; =0x00000612
add r4, r5, #0
_0225E2E8:
ldr r0, [r5, #4]
ldr r1, [r4, #8]
bl ov49_0225D160
ldrb r0, [r5, r7]
add r6, r6, #1
add r4, r4, #4
cmp r6, r0
blt _0225E2E8
_0225E2FA:
ldr r0, [r5, #4]
bl ov49_0225CE88
ldr r0, [r5, #4]
bl ov49_0225CCC0
add r0, r5, #0
bl FreeToHeap
pop {r3, r4, r5, r6, r7, pc}
nop
_0225E310: .word 0x00000613
_0225E314: .word 0x00000612
thumb_func_end ov49_0225E2B4
thumb_func_start ov49_0225E318
ov49_0225E318: ; 0x0225E318
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _0225E390 ; =0x00000608
mov r6, #0
ldrb r0, [r5, r0]
cmp r0, #0
ble _0225E340
mov r0, #0x92
lsl r0, r0, #2
ldr r7, _0225E390 ; =0x00000608
add r4, r5, r0
_0225E32E:
ldr r1, [r5, #4]
add r0, r4, #0
bl ov49_0225EB08
ldrb r0, [r5, r7]
add r6, r6, #1
add r4, #0xc
cmp r6, r0
blt _0225E32E
_0225E340:
ldr r0, _0225E394 ; =0x00000609
mov r6, #0
ldrb r0, [r5, r0]
cmp r0, #0
ble _0225E364
mov r0, #0xda
lsl r0, r0, #2
ldr r7, _0225E394 ; =0x00000609
add r4, r5, r0
_0225E352:
ldr r1, [r5, #4]
add r0, r4, #0
bl ov49_0225ECF0
ldrb r0, [r5, r7]
add r6, r6, #1
add r4, #0xc
cmp r6, r0
blt _0225E352
_0225E364:
ldr r0, _0225E398 ; =0x0000060B
mov r6, #0
ldrb r0, [r5, r0]
cmp r0, #0
ble _0225E386
ldr r0, _0225E39C ; =0x000004E8
ldr r7, _0225E398 ; =0x0000060B
add r4, r5, r0
_0225E374:
ldr r1, [r5, #4]
add r0, r4, #0
bl ov49_0225ED98
ldrb r0, [r5, r7]
add r6, r6, #1
add r4, #0xc
cmp r6, r0
blt _0225E374
_0225E386:
ldr r0, [r5, #4]
bl ov49_0225CCF0
pop {r3, r4, r5, r6, r7, pc}
nop
_0225E390: .word 0x00000608
_0225E394: .word 0x00000609
_0225E398: .word 0x0000060B
_0225E39C: .word 0x000004E8
thumb_func_end ov49_0225E318
thumb_func_start ov49_0225E3A0
ov49_0225E3A0: ; 0x0225E3A0
ldr r3, _0225E3A8 ; =ov49_0225CD58
ldr r0, [r0, #4]
bx r3
nop
_0225E3A8: .word ov49_0225CD58
thumb_func_end ov49_0225E3A0
thumb_func_start ov49_0225E3AC
ov49_0225E3AC: ; 0x0225E3AC
ldr r3, _0225E3B4 ; =ov49_0225CDE8
ldr r0, [r0, #4]
bx r3
nop
_0225E3B4: .word ov49_0225CDE8
thumb_func_end ov49_0225E3AC
thumb_func_start ov49_0225E3B8
ov49_0225E3B8: ; 0x0225E3B8
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r0, #0
ldr r0, _0225E3F0 ; =0x00000613
add r4, r1, #0
ldrb r0, [r5, r0]
add r6, r2, #0
cmp r0, r4
bhi _0225E3CE
bl GF_AssertFail
_0225E3CE:
mov r0, #0xa
lsl r0, r0, #0xe
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #4]
lsl r0, r4, #2
add r1, r5, r0
mov r0, #0x82
str r6, [sp]
lsl r0, r0, #2
ldr r0, [r1, r0]
add r1, sp, #0
bl ov49_0225CFA8
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_0225E3F0: .word 0x00000613
thumb_func_end ov49_0225E3B8
thumb_func_start ov49_0225E3F4
ov49_0225E3F4: ; 0x0225E3F4
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, _0225E41C ; =0x00000613
add r4, r1, #0
ldrb r0, [r5, r0]
add r6, r2, #0
cmp r0, r4
bhi _0225E408
bl GF_AssertFail
_0225E408:
lsl r0, r4, #2
add r1, r5, r0
mov r0, #0x82
lsl r0, r0, #2
ldr r0, [r1, r0]
add r1, r6, #0
bl ov49_0225CFEC
pop {r4, r5, r6, pc}
nop
_0225E41C: .word 0x00000613
thumb_func_end ov49_0225E3F4
thumb_func_start ov49_0225E420
ov49_0225E420: ; 0x0225E420
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _0225E470 ; =0x00000613
add r6, r1, #0
ldrb r0, [r5, r0]
add r7, r2, #0
add r4, r3, #0
cmp r0, r6
bhi _0225E436
bl GF_AssertFail
_0225E436:
cmp r7, #3
blo _0225E43E
bl GF_AssertFail
_0225E43E:
lsl r0, r6, #2
add r1, r5, r0
mov r0, #0x82
lsl r0, r0, #2
ldr r0, [r1, r0]
add r1, r4, #0
bl ov49_0225D030
ldr r1, _0225E474 ; =ov49_02269A7C
lsl r0, r7, #2
ldrsh r1, [r1, r0]
ldr r2, [r4]
lsl r1, r1, #0xc
add r1, r2, r1
str r1, [r4]
ldr r1, _0225E478 ; =ov49_02269A7E
ldr r2, [r4, #8]
ldrsh r0, [r1, r0]
lsl r0, r0, #0xc
add r0, r2, r0
str r0, [r4, #8]
mov r0, #0xa
lsl r0, r0, #0xe
str r0, [r4, #4]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0225E470: .word 0x00000613
_0225E474: .word ov49_02269A7C
_0225E478: .word ov49_02269A7E
thumb_func_end ov49_0225E420
thumb_func_start ov49_0225E47C
ov49_0225E47C: ; 0x0225E47C
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _0225E4A0 ; =0x00000613
add r4, r1, #0
ldrb r0, [r5, r0]
cmp r0, r4
bhi _0225E48E
bl GF_AssertFail
_0225E48E:
lsl r0, r4, #2
add r1, r5, r0
mov r0, #0x82
lsl r0, r0, #2
ldr r0, [r1, r0]
bl ov49_0225D04C
pop {r3, r4, r5, pc}
nop
_0225E4A0: .word 0x00000613
thumb_func_end ov49_0225E47C
thumb_func_start ov49_0225E4A4
ov49_0225E4A4: ; 0x0225E4A4
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _0225E4C8 ; =0x00000613
add r4, r1, #0
ldrb r0, [r5, r0]
cmp r0, r4
bhi _0225E4B6
bl GF_AssertFail
_0225E4B6:
lsl r0, r4, #2
add r1, r5, r0
mov r0, #0x82
lsl r0, r0, #2
ldr r0, [r1, r0]
bl ov49_0225D064
pop {r3, r4, r5, pc}
nop
_0225E4C8: .word 0x00000613
thumb_func_end ov49_0225E4A4
thumb_func_start ov49_0225E4CC
ov49_0225E4CC: ; 0x0225E4CC
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, _0225E4F4 ; =0x00000613
add r4, r1, #0
ldrb r0, [r5, r0]
add r6, r2, #0
cmp r0, r4
bhi _0225E4E0
bl GF_AssertFail
_0225E4E0:
lsl r0, r4, #2
add r1, r5, r0
mov r0, #0x82
lsl r0, r0, #2
ldr r0, [r1, r0]
add r1, r6, #0
bl ov49_0225D040
pop {r4, r5, r6, pc}
nop
_0225E4F4: .word 0x00000613
thumb_func_end ov49_0225E4CC
thumb_func_start ov49_0225E4F8
ov49_0225E4F8: ; 0x0225E4F8
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, _0225E520 ; =0x00000613
add r4, r1, #0
ldrb r0, [r5, r0]
add r6, r2, #0
cmp r0, r4
bhi _0225E50C
bl GF_AssertFail
_0225E50C:
lsl r0, r4, #2
add r1, r5, r0
mov r0, #0x82
lsl r0, r0, #2
ldr r0, [r1, r0]
add r1, r6, #0
bl ov49_0225D07C
pop {r4, r5, r6, pc}
nop
_0225E520: .word 0x00000613
thumb_func_end ov49_0225E4F8
thumb_func_start ov49_0225E524
ov49_0225E524: ; 0x0225E524
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _0225E548 ; =0x00000613
add r4, r1, #0
ldrb r0, [r5, r0]
cmp r0, r4
bhi _0225E536
bl GF_AssertFail
_0225E536:
lsl r0, r4, #2
add r1, r5, r0
mov r0, #0x82
lsl r0, r0, #2
ldr r0, [r1, r0]
bl ov49_0225D088
pop {r3, r4, r5, pc}
nop
_0225E548: .word 0x00000613
thumb_func_end ov49_0225E524
thumb_func_start ov49_0225E54C
ov49_0225E54C: ; 0x0225E54C
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _0225E570 ; =0x00000613
add r4, r1, #0
ldrb r0, [r5, r0]
cmp r0, r4
bhi _0225E55E
bl GF_AssertFail
_0225E55E:
lsl r0, r4, #2
add r1, r5, r0
mov r0, #0x82
lsl r0, r0, #2
ldr r0, [r1, r0]
bl ov49_0225D090
pop {r3, r4, r5, pc}
nop
_0225E570: .word 0x00000613
thumb_func_end ov49_0225E54C
thumb_func_start ov49_0225E574
ov49_0225E574: ; 0x0225E574
ldr r3, _0225E57C ; =ov49_0225CED0
ldr r0, [r0, #4]
bx r3
nop
_0225E57C: .word ov49_0225CED0
thumb_func_end ov49_0225E574
thumb_func_start ov49_0225E580
ov49_0225E580: ; 0x0225E580
ldr r3, _0225E588 ; =ov49_0225CEFC
ldr r0, [r0, #4]
bx r3
nop
_0225E588: .word ov49_0225CEFC
thumb_func_end ov49_0225E580
thumb_func_start ov49_0225E58C
ov49_0225E58C: ; 0x0225E58C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
ldr r0, _0225E61C ; =0x00000612
str r1, [sp]
ldrb r0, [r5, r0]
mov r6, #0
cmp r0, #0
ble _0225E616
ldr r1, [sp]
sub r0, r2, #1
sub r1, r1, #1
lsl r1, r1, #0x18
lsr r1, r1, #0x18
lsl r0, r0, #0x18
add r4, r5, #0
str r1, [sp, #4]
lsr r7, r0, #0x18
_0225E5B0:
ldr r0, [r4, #8]
ldr r1, [sp, #4]
add r2, r7, #0
bl ov49_0225E9D0
str r0, [sp, #8]
ldr r0, [r4, #8]
ldr r1, [sp]
add r2, r7, #0
bl ov49_0225E9D0
ldr r1, [sp, #8]
cmp r1, #1
beq _0225E5D0
cmp r0, #1
bne _0225E60A
_0225E5D0:
ldr r0, [r4, #8]
bl ov49_0225D1C0
cmp r0, #4
bhi _0225E60A
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225E5E6: ; jump table
.short _0225E60A - _0225E5E6 - 2 ; case 0
.short _0225E5F0 - _0225E5E6 - 2 ; case 1
.short _0225E5F0 - _0225E5E6 - 2 ; case 2
.short _0225E5F0 - _0225E5E6 - 2 ; case 3
.short _0225E5F0 - _0225E5E6 - 2 ; case 4
_0225E5F0:
ldr r0, _0225E620 ; =0x00000611
ldrb r0, [r5, r0]
cmp r0, #4
bne _0225E602
ldr r1, [r4, #8]
add r0, r5, #0
bl ov49_0225EAB4
b _0225E60A
_0225E602:
ldr r1, [r4, #8]
add r0, r5, #0
bl ov49_0225EA70
_0225E60A:
ldr r0, _0225E61C ; =0x00000612
add r6, r6, #1
ldrb r0, [r5, r0]
add r4, r4, #4
cmp r6, r0
blt _0225E5B0
_0225E616:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_0225E61C: .word 0x00000612
_0225E620: .word 0x00000611
thumb_func_end ov49_0225E58C
thumb_func_start ov49_0225E624
ov49_0225E624: ; 0x0225E624
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _0225E6DC ; =0x00000612
add r7, r1, #0
ldrb r0, [r5, r0]
mov r6, #0
cmp r0, #0
ble _0225E6DA
add r4, r5, #0
_0225E636:
ldr r0, [r4, #8]
bl ov49_0225D1C0
cmp r0, #4
bhi _0225E656
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0225E64C: ; jump table
.short _0225E6CE - _0225E64C - 2 ; case 0
.short _0225E65C - _0225E64C - 2 ; case 1
.short _0225E65C - _0225E64C - 2 ; case 2
.short _0225E65C - _0225E64C - 2 ; case 3
.short _0225E65C - _0225E64C - 2 ; case 4
_0225E656:
cmp r0, #0xf
beq _0225E66C
b _0225E6CE
_0225E65C:
cmp r7, #1
bne _0225E6CE
ldr r0, [r5, #4]
ldr r1, [r4, #8]
mov r2, #1
bl ov49_0225D4A0
b _0225E6CE
_0225E66C:
cmp r7, #1
bne _0225E6A8
mov r1, #2
ldr r0, [r4, #8]
lsl r1, r1, #0xa
bl ov49_0225D4C8
ldr r0, [r5, #4]
ldr r1, [r4, #8]
mov r2, #0
mov r3, #6
bl ov49_0225D214
ldr r0, [r5, #4]
ldr r1, [r4, #8]
mov r2, #1
mov r3, #6
bl ov49_0225D214
ldr r0, [r5, #4]
ldr r1, [r4, #8]
mov r2, #2
mov r3, #6
bl ov49_0225D214
ldr r0, [r4, #8]
mov r1, #1
bl ov49_0225D494
b _0225E6CE
_0225E6A8:
ldr r0, [r5, #4]
ldr r1, [r4, #8]
mov r2, #0
bl ov49_0225D328
ldr r0, [r5, #4]
ldr r1, [r4, #8]
mov r2, #1
bl ov49_0225D328
ldr r0, [r5, #4]
ldr r1, [r4, #8]
mov r2, #2
bl ov49_0225D328
ldr r0, [r4, #8]
mov r1, #0
bl ov49_0225D494
_0225E6CE:
ldr r0, _0225E6DC ; =0x00000612
add r6, r6, #1
ldrb r0, [r5, r0]
add r4, r4, #4
cmp r6, r0
blt _0225E636
_0225E6DA:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0225E6DC: .word 0x00000612
thumb_func_end ov49_0225E624
thumb_func_start ov49_0225E6E0
ov49_0225E6E0: ; 0x0225E6E0
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
ldr r0, _0225E70C ; =0x0000060B
add r7, r1, #0
ldrb r0, [r6, r0]
mov r4, #0
cmp r0, #0
ble _0225E708
ldr r0, _0225E710 ; =0x000004E8
add r5, r6, r0
_0225E6F4:
add r0, r5, #0
add r1, r7, #0
bl ov49_0225ECD4
ldr r0, _0225E70C ; =0x0000060B
add r4, r4, #1
ldrb r0, [r6, r0]
add r5, #0xc
cmp r4, r0
blt _0225E6F4
_0225E708:
pop {r3, r4, r5, r6, r7, pc}
nop
_0225E70C: .word 0x0000060B
_0225E710: .word 0x000004E8
thumb_func_end ov49_0225E6E0
thumb_func_start ov49_0225E714
ov49_0225E714: ; 0x0225E714
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _0225E75C ; =0x00000612
mov r6, #0
ldrb r0, [r5, r0]
cmp r0, #0
ble _0225E75A
ldr r7, _0225E75C ; =0x00000612
add r4, r5, #0
_0225E726:
ldr r0, [r4, #8]
bl ov49_0225D1C0
cmp r0, #4
bhi _0225E750
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225E73C: ; jump table
.short _0225E750 - _0225E73C - 2 ; case 0
.short _0225E746 - _0225E73C - 2 ; case 1
.short _0225E746 - _0225E73C - 2 ; case 2
.short _0225E746 - _0225E73C - 2 ; case 3
.short _0225E746 - _0225E73C - 2 ; case 4
_0225E746:
ldr r0, [r5, #4]
ldr r1, [r4, #8]
mov r2, #1
bl ov49_0225D4A0
_0225E750:
ldrb r0, [r5, r7]
add r6, r6, #1
add r4, r4, #4
cmp r6, r0
blt _0225E726
_0225E75A:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0225E75C: .word 0x00000612
thumb_func_end ov49_0225E714
thumb_func_start ov49_0225E760
ov49_0225E760: ; 0x0225E760
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
ldr r0, _0225E818 ; =0x00000612
add r7, r1, #0
ldrb r0, [r4, r0]
mov r6, #0
cmp r0, #0
ble _0225E816
add r5, r4, #0
_0225E772:
ldr r0, [r5, #8]
bl ov49_0225D1C0
cmp r0, #0xb
beq _0225E780
cmp r0, #0xc
bne _0225E80A
_0225E780:
cmp r7, #3
bhi _0225E80A
add r0, r7, r7
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225E790: ; jump table
.short _0225E798 - _0225E790 - 2 ; case 0
.short _0225E7AE - _0225E790 - 2 ; case 1
.short _0225E7C8 - _0225E790 - 2 ; case 2
.short _0225E7EC - _0225E790 - 2 ; case 3
_0225E798:
ldr r0, [r4, #4]
ldr r1, [r5, #8]
mov r2, #0
mov r3, #2
bl ov49_0225D214
mov r0, #0x91
mov r1, #0
lsl r0, r0, #2
str r1, [r4, r0]
b _0225E80A
_0225E7AE:
ldr r0, _0225E81C ; =ov49_0225EA10
mov r2, #0
str r0, [sp]
ldr r0, [r4, #4]
ldr r1, [r5, #8]
mov r3, #1
bl ov49_0225D224
mov r0, #0x91
mov r1, #1
lsl r0, r0, #2
str r1, [r4, r0]
b _0225E80A
_0225E7C8:
ldr r0, _0225E820 ; =ov49_0225EA40
mov r2, #0
str r0, [sp]
ldr r0, [r4, #4]
ldr r1, [r5, #8]
mov r3, #4
bl ov49_0225D224
ldr r0, [r4, #4]
ldr r1, [r5, #8]
mov r2, #1
bl ov49_0225D328
mov r0, #0x91
mov r1, #0
lsl r0, r0, #2
str r1, [r4, r0]
b _0225E80A
_0225E7EC:
ldr r0, [r4, #4]
ldr r1, [r5, #8]
mov r2, #1
mov r3, #0
bl ov49_0225D214
ldr r0, [r4, #4]
ldr r1, [r5, #8]
mov r2, #0
bl ov49_0225D328
mov r0, #0x91
mov r1, #1
lsl r0, r0, #2
str r1, [r4, r0]
_0225E80A:
ldr r0, _0225E818 ; =0x00000612
add r6, r6, #1
ldrb r0, [r4, r0]
add r5, r5, #4
cmp r6, r0
blt _0225E772
_0225E816:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0225E818: .word 0x00000612
_0225E81C: .word ov49_0225EA10
_0225E820: .word ov49_0225EA40
thumb_func_end ov49_0225E760
thumb_func_start ov49_0225E824
ov49_0225E824: ; 0x0225E824
mov r1, #0x91
lsl r1, r1, #2
ldr r0, [r0, r1]
bx lr
thumb_func_end ov49_0225E824
thumb_func_start ov49_0225E82C
ov49_0225E82C: ; 0x0225E82C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _0225E858 ; =0x00000608
add r6, r1, #0
ldrb r0, [r5, r0]
add r7, r2, #0
mov r4, #0
cmp r0, #0
ble _0225E854
_0225E83E:
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
add r3, r7, #0
bl ov49_0225E85C
ldr r0, _0225E858 ; =0x00000608
add r4, r4, #1
ldrb r0, [r5, r0]
cmp r4, r0
blt _0225E83E
_0225E854:
pop {r3, r4, r5, r6, r7, pc}
nop
_0225E858: .word 0x00000608
thumb_func_end ov49_0225E82C
thumb_func_start ov49_0225E85C
ov49_0225E85C: ; 0x0225E85C
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r0, _0225E890 ; =0x00000608
ldrb r0, [r4, r0]
cmp r1, r0
bhs _0225E88C
mov r0, #0x92
lsl r0, r0, #2
add r5, r4, r0
mov r0, #0xc
mul r0, r1
cmp r2, #0
beq _0225E882
ldr r1, [r4, #4]
add r0, r5, r0
add r2, r3, #0
bl ov49_0225EB54
b _0225E888
_0225E882:
add r0, r5, r0
bl ov49_0225EB84
_0225E888:
mov r0, #1
pop {r3, r4, r5, pc}
_0225E88C:
mov r0, #0
pop {r3, r4, r5, pc}
.balign 4, 0
_0225E890: .word 0x00000608
thumb_func_end ov49_0225E85C
thumb_func_start ov49_0225E894
ov49_0225E894: ; 0x0225E894
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
ldr r0, _0225E8C0 ; =0x00000609
add r7, r1, #0
ldrb r0, [r6, r0]
mov r4, #0
cmp r0, #0
ble _0225E8BE
mov r0, #0xda
lsl r0, r0, #2
add r5, r6, r0
_0225E8AA:
add r0, r5, #0
add r1, r7, #0
bl ov49_0225ECD4
ldr r0, _0225E8C0 ; =0x00000609
add r4, r4, #1
ldrb r0, [r6, r0]
add r5, #0xc
cmp r4, r0
blt _0225E8AA
_0225E8BE:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0225E8C0: .word 0x00000609
thumb_func_end ov49_0225E894
thumb_func_start ov49_0225E8C4
ov49_0225E8C4: ; 0x0225E8C4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
lsl r0, r1, #2
add r1, r5, r0
mov r0, #0x8b
lsl r0, r0, #2
ldr r6, [r1, r0]
add r0, #0xc
ldr r7, [r1, r0]
ldr r0, [sp, #0x18]
add r4, r2, #0
cmp r0, #1
beq _0225E8E2
cmp r3, #1
bne _0225E992
_0225E8E2:
add r0, r6, #0
mov r1, #1
bl ov49_0225D450
cmp r0, #0
bne _0225E8FA
ldr r0, [r5, #4]
add r1, r6, #0
mov r2, #1
mov r3, #0
bl ov49_0225D214
_0225E8FA:
ldr r0, [sp, #0x18]
cmp r0, #1
bne _0225E938
add r0, r4, #4
lsl r1, r0, #2
beq _0225E918
lsl r0, r0, #0xe
bl _ffltu
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _0225E926
_0225E918:
lsl r0, r0, #0xe
bl _ffltu
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_0225E926:
bl _ffix
add r3, r0, #0
ldr r0, [r5, #4]
add r1, r7, #0
mov r2, #0
bl ov49_0225D3F8
pop {r3, r4, r5, r6, r7, pc}
_0225E938:
ldr r0, _0225E9CC ; =0x0000060C
mov r1, #0x1c
ldr r0, [r5, r0]
add r0, r0, #1
bl _u32_div_f
ldr r0, _0225E9CC ; =0x0000060C
str r1, [r5, r0]
ldr r0, [r5, r0]
cmp r0, #0xe
bhs _0225E984
lsl r0, r4, #2
beq _0225E964
lsl r0, r4, #0xe
bl _ffltu
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _0225E972
_0225E964:
lsl r0, r4, #0xe
bl _ffltu
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_0225E972:
bl _ffix
add r3, r0, #0
ldr r0, [r5, #4]
add r1, r7, #0
mov r2, #0
bl ov49_0225D3F8
pop {r3, r4, r5, r6, r7, pc}
_0225E984:
mov r2, #0
ldr r0, [r5, #4]
add r1, r7, #0
add r3, r2, #0
bl ov49_0225D3F8
pop {r3, r4, r5, r6, r7, pc}
_0225E992:
ldr r0, [sp, #0x1c]
cmp r0, #0
ldr r0, [r5, #4]
beq _0225E9B4
add r1, r6, #0
bl ov49_0225D394
ldr r0, [r5, #4]
add r1, r7, #0
bl ov49_0225D394
ldr r0, [r5, #4]
add r1, r6, #0
mov r2, #1
bl ov49_0225D4A0
pop {r3, r4, r5, r6, r7, pc}
_0225E9B4:
add r1, r6, #0
mov r2, #1
bl ov49_0225D328
mov r2, #0
ldr r0, [r5, #4]
add r1, r7, #0
add r3, r2, #0
bl ov49_0225D3F8
pop {r3, r4, r5, r6, r7, pc}
nop
_0225E9CC: .word 0x0000060C
thumb_func_end ov49_0225E8C4
thumb_func_start ov49_0225E9D0
ov49_0225E9D0: ; 0x0225E9D0
push {r3, r4, r5, lr}
sub sp, #8
add r5, r1, #0
lsl r1, r2, #0x14
asr r4, r1, #0x10
bl ov49_0225D1EC
add r1, sp, #0
strh r0, [r1]
lsr r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
mov r0, #4
ldrsh r2, [r1, r0]
lsl r0, r5, #0x14
asr r0, r0, #0x10
cmp r2, r0
bne _0225EA08
mov r0, #6
ldrsh r0, [r1, r0]
cmp r0, r4
bne _0225EA08
add sp, #8
mov r0, #1
pop {r3, r4, r5, pc}
_0225EA08:
mov r0, #0
add sp, #8
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_0225E9D0
thumb_func_start ov49_0225EA10
ov49_0225EA10: ; 0x0225EA10
push {r4, r5, r6, lr}
add r6, r1, #0
add r5, r0, #0
add r0, r6, #0
bl ov49_0225D1C0
add r4, r0, #0
cmp r4, #0xb
beq _0225EA2A
cmp r4, #0xc
beq _0225EA2A
bl GF_AssertFail
_0225EA2A:
sub r4, #0xb
cmp r4, #1
bhi _0225EA3C
add r0, r5, #0
add r1, r6, #0
mov r2, #1
mov r3, #0
bl ov49_0225D214
_0225EA3C:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225EA10
thumb_func_start ov49_0225EA40
ov49_0225EA40: ; 0x0225EA40
push {r4, r5, r6, lr}
add r6, r1, #0
add r5, r0, #0
add r0, r6, #0
bl ov49_0225D1C0
add r4, r0, #0
cmp r4, #0xb
beq _0225EA5A
cmp r4, #0xc
beq _0225EA5A
bl GF_AssertFail
_0225EA5A:
sub r4, #0xb
cmp r4, #1
bhi _0225EA6C
add r0, r5, #0
add r1, r6, #0
mov r2, #0
mov r3, #2
bl ov49_0225D214
_0225EA6C:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225EA40
thumb_func_start ov49_0225EA70
ov49_0225EA70: ; 0x0225EA70
push {r4, r5, r6, lr}
add r6, r0, #0
mov r4, #0
ldr r0, [r6, #4]
add r2, r4, #0
add r5, r1, #0
bl ov49_0225D3BC
cmp r0, #0
bne _0225EA88
mov r4, #1
b _0225EA9A
_0225EA88:
add r0, r5, #0
add r1, r4, #0
bl ov49_0225D470
mov r1, #2
lsl r1, r1, #0xc
cmp r0, r1
ble _0225EA9A
mov r4, #1
_0225EA9A:
cmp r4, #1
bne _0225EAAC
add r0, r6, #0
add r1, r5, #0
bl ov49_0225EAE0
ldr r0, _0225EAB0 ; =0x000005BC
bl PlaySE
_0225EAAC:
pop {r4, r5, r6, pc}
nop
_0225EAB0: .word 0x000005BC
thumb_func_end ov49_0225EA70
thumb_func_start ov49_0225EAB4
ov49_0225EAB4: ; 0x0225EAB4
push {r4, r5, r6, lr}
add r5, r0, #0
mov r4, #0
ldr r0, [r5, #4]
add r2, r4, #0
add r6, r1, #0
bl ov49_0225D3BC
cmp r0, #0
bne _0225EACA
mov r4, #1
_0225EACA:
cmp r4, #1
bne _0225EADE
add r0, r5, #0
add r1, r6, #0
bl ov49_0225EAE0
mov r0, #0x17
lsl r0, r0, #6
bl PlaySE
_0225EADE:
pop {r4, r5, r6, pc}
thumb_func_end ov49_0225EAB4
thumb_func_start ov49_0225EAE0
ov49_0225EAE0: ; 0x0225EAE0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
mov r4, #0
mov r7, #1
_0225EAEA:
ldr r0, [r5, #4]
add r1, r6, #0
add r2, r4, #0
add r3, r7, #0
bl ov49_0225D214
add r4, r4, #1
cmp r4, #3
blt _0225EAEA
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225EAE0
thumb_func_start ov49_0225EB00
ov49_0225EB00: ; 0x0225EB00
str r1, [r0]
mov r1, #0
strh r1, [r0, #4]
bx lr
thumb_func_end ov49_0225EB00
thumb_func_start ov49_0225EB08
ov49_0225EB08: ; 0x0225EB08
push {r3, r4, r5, lr}
add r4, r0, #0
ldrh r2, [r4, #4]
add r5, r1, #0
cmp r2, #4
bhi _0225EB52
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_0225EB20: ; jump table
.short _0225EB52 - _0225EB20 - 2 ; case 0
.short _0225EB2A - _0225EB20 - 2 ; case 1
.short _0225EB52 - _0225EB20 - 2 ; case 2
.short _0225EB34 - _0225EB20 - 2 ; case 3
.short _0225EB3E - _0225EB20 - 2 ; case 4
_0225EB2A:
bl ov49_0225EBA8
mov r0, #2
strh r0, [r4, #4]
pop {r3, r4, r5, pc}
_0225EB34:
bl ov49_0225EC28
mov r0, #4
strh r0, [r4, #4]
pop {r3, r4, r5, pc}
_0225EB3E:
bl ov49_0225EC30
cmp r0, #1
bne _0225EB52
add r0, r4, #0
add r1, r5, #0
bl ov49_0225EBE4
mov r0, #0
strh r0, [r4, #4]
_0225EB52:
pop {r3, r4, r5, pc}
thumb_func_end ov49_0225EB08
thumb_func_start ov49_0225EB54
ov49_0225EB54: ; 0x0225EB54
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r2, #0
ldrh r2, [r5, #4]
ldr r3, _0225EB80 ; =0x0000FFFF
add r6, r2, r3
lsl r6, r6, #0x10
lsr r6, r6, #0x10
cmp r6, #1
bls _0225EB7E
sub r3, r3, #2
add r2, r2, r3
lsl r2, r2, #0x10
lsr r2, r2, #0x10
cmp r2, #1
bhi _0225EB78
bl ov49_0225EBE4
_0225EB78:
mov r0, #1
strh r0, [r5, #4]
str r4, [r5, #8]
_0225EB7E:
pop {r4, r5, r6, pc}
.balign 4, 0
_0225EB80: .word 0x0000FFFF
thumb_func_end ov49_0225EB54
thumb_func_start ov49_0225EB84
ov49_0225EB84: ; 0x0225EB84
ldrh r2, [r0, #4]
ldr r1, _0225EBA4 ; =0x0000FFFD
add r1, r2, r1
lsl r1, r1, #0x10
lsr r1, r1, #0x10
cmp r1, #1
bls _0225EBA0
cmp r2, #1
bhi _0225EB9C
mov r1, #0
strh r1, [r0, #4]
bx lr
_0225EB9C:
mov r1, #3
strh r1, [r0, #4]
_0225EBA0:
bx lr
nop
_0225EBA4: .word 0x0000FFFD
thumb_func_end ov49_0225EB84
thumb_func_start ov49_0225EBA8
ov49_0225EBA8: ; 0x0225EBA8
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
ldr r0, [r5]
ldr r1, [r5, #8]
bl ov49_0225D4C8
mov r2, #0
ldr r1, [r5]
add r0, r4, #0
add r3, r2, #0
bl ov49_0225D214
ldr r1, [r5]
add r0, r4, #0
mov r2, #1
mov r3, #0
bl ov49_0225D214
ldr r1, [r5]
add r0, r4, #0
mov r2, #2
mov r3, #0
bl ov49_0225D214
ldr r0, [r5]
mov r1, #1
bl ov49_0225D494
pop {r3, r4, r5, pc}
thumb_func_end ov49_0225EBA8
thumb_func_start ov49_0225EBE4
ov49_0225EBE4: ; 0x0225EBE4
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
ldr r1, [r5]
add r0, r4, #0
mov r2, #0
bl ov49_0225D328
ldr r1, [r5]
add r0, r4, #0
mov r2, #1
bl ov49_0225D328
ldr r1, [r5]
add r0, r4, #0
mov r2, #2
bl ov49_0225D328
ldr r0, [r5]
mov r1, #0
bl ov49_0225D494
ldr r0, [r5]
bl ov49_0225D4E8
mov r1, #1
lsl r1, r1, #0xc
ldr r0, [r5]
add r2, r1, #0
add r3, r1, #0
bl ov49_0225D4F0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_0225EBE4
thumb_func_start ov49_0225EC28
ov49_0225EC28: ; 0x0225EC28
mov r1, #0
strh r1, [r0, #6]
bx lr
.balign 4, 0
thumb_func_end ov49_0225EC28
thumb_func_start ov49_0225EC30
ov49_0225EC30: ; 0x0225EC30
push {r3, r4, r5, lr}
add r4, r0, #0
mov r0, #6
ldrsh r1, [r4, r0]
cmp r1, #0xa
bge _0225ECCC
add r1, r1, #1
strh r1, [r4, #6]
ldrsh r0, [r4, r0]
ldr r2, [r4, #8]
lsl r0, r0, #0xc
asr r1, r0, #0x1f
asr r3, r2, #0x1f
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r0, r0, r2
adc r1, r3
lsl r1, r1, #0x14
lsr r0, r0, #0xc
orr r0, r1
mov r1, #0xa
lsl r1, r1, #0xc
bl FX_Div
add r2, r0, #0
ldr r1, [r4, #8]
ldr r0, [r4]
add r1, r2, r1
bl ov49_0225D4C8
mov r0, #6
ldrsh r1, [r4, r0]
mov r0, #0x1f
mul r0, r1
mov r1, #0xa
bl _s32_div_f
mov r2, #0x1f
sub r1, r2, r0
lsl r1, r1, #0x18
ldr r0, [r4]
lsr r1, r1, #0x18
bl ov49_0225D4D0
mov r0, #6
ldrsh r0, [r4, r0]
ldr r2, _0225ECD0 ; =0x000002E1
mov r3, #0
lsl r0, r0, #0xc
asr r1, r0, #0x1f
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r0, r0, r2
adc r1, r3
lsl r1, r1, #0x14
lsr r0, r0, #0xc
orr r0, r1
mov r1, #0xa
lsl r1, r1, #0xc
bl FX_Div
mov r3, #1
add r5, r0, #0
lsl r3, r3, #0xc
add r1, r5, r3
ldr r0, [r4]
add r2, r1, #0
add r3, r5, r3
bl ov49_0225D4F0
mov r0, #0
pop {r3, r4, r5, pc}
_0225ECCC:
mov r0, #1
pop {r3, r4, r5, pc}
.balign 4, 0
_0225ECD0: .word 0x000002E1
thumb_func_end ov49_0225EC30
thumb_func_start ov49_0225ECD4
ov49_0225ECD4: ; 0x0225ECD4
ldrh r3, [r0, #4]
ldr r2, _0225ECEC ; =0x0000FFFF
add r2, r3, r2
lsl r2, r2, #0x10
lsr r2, r2, #0x10
cmp r2, #1
bls _0225ECE8
mov r2, #1
strh r2, [r0, #4]
str r1, [r0, #8]
_0225ECE8:
bx lr
nop
_0225ECEC: .word 0x0000FFFF
thumb_func_end ov49_0225ECD4
thumb_func_start ov49_0225ECF0
ov49_0225ECF0: ; 0x0225ECF0
push {r4, lr}
add r4, r0, #0
ldrh r2, [r4, #4]
cmp r2, #4
bhi _0225ED62
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_0225ED06: ; jump table
.short _0225ED66 - _0225ED06 - 2 ; case 0
.short _0225ED10 - _0225ED06 - 2 ; case 1
.short _0225ED1A - _0225ED06 - 2 ; case 2
.short _0225ED2E - _0225ED06 - 2 ; case 3
.short _0225ED38 - _0225ED06 - 2 ; case 4
_0225ED10:
bl ov49_0225ED68
mov r0, #2
strh r0, [r4, #4]
pop {r4, pc}
_0225ED1A:
add r0, r1, #0
ldr r1, [r4]
mov r2, #0
bl ov49_0225D3BC
cmp r0, #0
bne _0225ED66
mov r0, #3
strh r0, [r4, #4]
pop {r4, pc}
_0225ED2E:
bl ov49_0225EC28
mov r0, #4
strh r0, [r4, #4]
pop {r4, pc}
_0225ED38:
bl ov49_0225EC30
cmp r0, #1
bne _0225ED66
ldr r0, [r4]
mov r1, #0
bl ov49_0225D494
ldr r0, [r4]
bl ov49_0225D4E8
mov r1, #1
lsl r1, r1, #0xc
ldr r0, [r4]
add r2, r1, #0
add r3, r1, #0
bl ov49_0225D4F0
mov r0, #0
strh r0, [r4, #4]
pop {r4, pc}
_0225ED62:
bl GF_AssertFail
_0225ED66:
pop {r4, pc}
thumb_func_end ov49_0225ECF0
thumb_func_start ov49_0225ED68
ov49_0225ED68: ; 0x0225ED68
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
ldr r0, [r5]
ldr r1, [r5, #8]
bl ov49_0225D4C8
ldr r1, [r5]
add r0, r4, #0
mov r2, #0
mov r3, #1
bl ov49_0225D214
mov r2, #1
ldr r1, [r5]
add r0, r4, #0
add r3, r2, #0
bl ov49_0225D214
ldr r0, [r5]
mov r1, #1
bl ov49_0225D494
pop {r3, r4, r5, pc}
thumb_func_end ov49_0225ED68
thumb_func_start ov49_0225ED98
ov49_0225ED98: ; 0x0225ED98
push {r4, lr}
add r4, r0, #0
ldrh r2, [r4, #4]
cmp r2, #4
bhi _0225EE0A
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_0225EDAE: ; jump table
.short _0225EE0E - _0225EDAE - 2 ; case 0
.short _0225EDB8 - _0225EDAE - 2 ; case 1
.short _0225EDC2 - _0225EDAE - 2 ; case 2
.short _0225EDD6 - _0225EDAE - 2 ; case 3
.short _0225EDE0 - _0225EDAE - 2 ; case 4
_0225EDB8:
bl ov49_0225EE10
mov r0, #2
strh r0, [r4, #4]
pop {r4, pc}
_0225EDC2:
add r0, r1, #0
ldr r1, [r4]
mov r2, #0
bl ov49_0225D3BC
cmp r0, #0
bne _0225EE0E
mov r0, #3
strh r0, [r4, #4]
pop {r4, pc}
_0225EDD6:
bl ov49_0225EC28
mov r0, #4
strh r0, [r4, #4]
pop {r4, pc}
_0225EDE0:
bl ov49_0225EC30
cmp r0, #1
bne _0225EE0E
ldr r0, [r4]
mov r1, #0
bl ov49_0225D494
ldr r0, [r4]
bl ov49_0225D4E8
mov r1, #1
lsl r1, r1, #0xc
ldr r0, [r4]
add r2, r1, #0
add r3, r1, #0
bl ov49_0225D4F0
mov r0, #0
strh r0, [r4, #4]
pop {r4, pc}
_0225EE0A:
bl GF_AssertFail
_0225EE0E:
pop {r4, pc}
thumb_func_end ov49_0225ED98
thumb_func_start ov49_0225EE10
ov49_0225EE10: ; 0x0225EE10
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
ldr r0, [r5]
ldr r1, [r5, #8]
bl ov49_0225D4C8
ldr r1, [r5]
add r0, r4, #0
mov r2, #0
mov r3, #1
bl ov49_0225D214
mov r2, #1
ldr r1, [r5]
add r0, r4, #0
add r3, r2, #0
bl ov49_0225D214
ldr r1, [r5]
add r0, r4, #0
mov r2, #2
mov r3, #1
bl ov49_0225D214
ldr r0, [r5]
mov r1, #1
bl ov49_0225D494
pop {r3, r4, r5, pc}
thumb_func_end ov49_0225EE10
thumb_func_start ov49_0225EE4C
ov49_0225EE4C: ; 0x0225EE4C
push {r3, r4, r5, lr}
sub sp, #8
add r4, r1, #0
add r5, r0, #0
cmp r4, #0x5c
beq _0225EE60
cmp r4, #0x5d
beq _0225EE60
bl GF_AssertFail
_0225EE60:
add r0, r5, #0
bl ov49_0225D1EC
add r1, sp, #0
strh r0, [r1]
lsr r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
sub r4, #0x5c
lsl r2, r4, #2
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
mov r0, #4
ldrsh r3, [r1, r0]
ldr r0, _0225EEA8 ; =ov49_02269A74
ldr r0, [r0, r2]
add r0, r3, r0
strh r0, [r1, #4]
mov r0, #6
ldrsh r0, [r1, r0]
mov r3, sp
sub r3, r3, #4
sub r0, #0xa
strh r0, [r1, #6]
ldrh r2, [r1, #4]
add r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov49_0225D1C4
add sp, #8
pop {r3, r4, r5, pc}
nop
_0225EEA8: .word ov49_02269A74
thumb_func_end ov49_0225EE4C
thumb_func_start ov49_0225EEAC
ov49_0225EEAC: ; 0x0225EEAC
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
mov r1, #0xbf
add r4, r0, #0
add r0, r6, #0
lsl r1, r1, #2
bl AllocFromHeap
mov r2, #0xbf
mov r1, #0
lsl r2, r2, #2
add r7, r0, #0
bl memset
str r6, [r7]
add r5, r7, #0
str r4, [r7, #4]
mov r4, #0
add r5, #8
_0225EED2:
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
bl ov49_0225F068
add r4, r4, #1
add r5, #0x24
cmp r4, #0x14
blt _0225EED2
mov r0, #0xb6
lsl r0, r0, #2
add r0, r7, r0
mov r1, #0
add r2, r6, #0
bl ov49_0225F068
add r0, r7, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225EEAC
thumb_func_start ov49_0225EEF8
ov49_0225EEF8: ; 0x0225EEF8
push {r4, r5, r6, lr}
add r6, r0, #0
add r5, r6, #0
mov r4, #0
add r5, #8
_0225EF02:
add r0, r5, #0
bl ov49_0225F074
add r4, r4, #1
add r5, #0x24
cmp r4, #0x14
blt _0225EF02
mov r0, #0xb6
lsl r0, r0, #2
add r0, r6, r0
bl ov49_0225F074
add r0, r6, #0
bl FreeToHeap
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225EEF8
thumb_func_start ov49_0225EF24
ov49_0225EF24: ; 0x0225EF24
ldr r3, _0225EF2C ; =ov49_0225F018
mov r1, #0
bx r3
nop
_0225EF2C: .word ov49_0225F018
thumb_func_end ov49_0225EF24
thumb_func_start ov49_0225EF30
ov49_0225EF30: ; 0x0225EF30
ldr r3, _0225EF38 ; =ov49_0225F018
mov r1, #1
bx r3
nop
_0225EF38: .word ov49_0225F018
thumb_func_end ov49_0225EF30
thumb_func_start ov49_0225EF3C
ov49_0225EF3C: ; 0x0225EF3C
ldr r0, [r0, #0xc]
bx lr
thumb_func_end ov49_0225EF3C
thumb_func_start ov49_0225EF40
ov49_0225EF40: ; 0x0225EF40
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #8]
add r4, r1, #0
cmp r0, #0
beq _0225EF50
bl GF_AssertFail
_0225EF50:
ldrh r0, [r5]
add r1, r4, #0
bl AllocFromHeap
mov r1, #0
add r2, r4, #0
str r0, [r5, #8]
bl memset
ldr r0, [r5, #8]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_0225EF40
thumb_func_start ov49_0225EF68
ov49_0225EF68: ; 0x0225EF68
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
cmp r0, #0
bne _0225EF76
bl GF_AssertFail
_0225EF76:
ldr r0, [r4, #8]
bl FreeToHeap
mov r0, #0
str r0, [r4, #8]
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225EF68
thumb_func_start ov49_0225EF84
ov49_0225EF84: ; 0x0225EF84
ldr r0, [r0, #8]
bx lr
thumb_func_end ov49_0225EF84
thumb_func_start ov49_0225EF88
ov49_0225EF88: ; 0x0225EF88
ldr r0, [r0, #0x10]
bx lr
thumb_func_end ov49_0225EF88
thumb_func_start ov49_0225EF8C
ov49_0225EF8C: ; 0x0225EF8C
str r1, [r0, #0x10]
bx lr
thumb_func_end ov49_0225EF8C
thumb_func_start ov49_0225EF90
ov49_0225EF90: ; 0x0225EF90
ldr r1, [r0, #0x10]
add r1, r1, #1
str r1, [r0, #0x10]
bx lr
thumb_func_end ov49_0225EF90
thumb_func_start ov49_0225EF98
ov49_0225EF98: ; 0x0225EF98
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
cmp r5, #0
bne _0225EFAA
bl GF_AssertFail
_0225EFAA:
cmp r4, #0x14
blo _0225EFB2
bl GF_AssertFail
_0225EFB2:
mov r0, #0x24
add r5, #8
mul r0, r4
add r0, r5, r0
add r1, r6, #0
add r2, r7, #0
bl ov49_0225F0D8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225EF98
thumb_func_start ov49_0225EFC4
ov49_0225EFC4: ; 0x0225EFC4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
cmp r5, #0
bne _0225EFD6
bl GF_AssertFail
_0225EFD6:
cmp r4, #0x14
blo _0225EFDE
bl GF_AssertFail
_0225EFDE:
mov r0, #0x24
add r5, #8
mul r0, r4
add r0, r5, r0
add r1, r6, #0
add r2, r7, #0
bl ov49_0225F110
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225EFC4
thumb_func_start ov49_0225EFF0
ov49_0225EFF0: ; 0x0225EFF0
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
cmp r5, #0
bne _0225F000
bl GF_AssertFail
_0225F000:
cmp r4, #0x14
blo _0225F008
bl GF_AssertFail
_0225F008:
mov r0, #0x24
add r5, #8
mul r0, r4
add r0, r5, r0
add r1, r6, #0
bl ov49_0225F10C
pop {r4, r5, r6, pc}
thumb_func_end ov49_0225EFF0
thumb_func_start ov49_0225F018
ov49_0225F018: ; 0x0225F018
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
mov r0, #0xb6
lsl r0, r0, #2
add r0, r7, r0
str r1, [sp]
bl ov49_0225F180
cmp r0, #1
bne _0225F03E
mov r0, #0xb6
lsl r0, r0, #2
ldr r2, [sp]
add r0, r7, r0
add r1, r7, #0
mov r3, #0
bl ov49_0225F098
pop {r3, r4, r5, r6, r7, pc}
_0225F03E:
add r6, r7, #0
add r6, #8
mov r4, #0
add r5, r6, #0
_0225F046:
add r0, r6, #0
bl ov49_0225F180
cmp r0, #1
bne _0225F05C
ldr r2, [sp]
add r0, r5, #0
add r1, r7, #0
add r3, r4, #0
bl ov49_0225F098
_0225F05C:
add r4, r4, #1
add r6, #0x24
add r5, #0x24
cmp r4, #0x14
blt _0225F046
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225F018
thumb_func_start ov49_0225F068
ov49_0225F068: ; 0x0225F068
strh r2, [r0]
mov r2, #1
strb r2, [r0, #2]
strb r1, [r0, #3]
bx lr
.balign 4, 0
thumb_func_end ov49_0225F068
thumb_func_start ov49_0225F074
ov49_0225F074: ; 0x0225F074
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
cmp r0, #0
beq _0225F082
bl FreeToHeap
_0225F082:
ldr r0, [r4, #0x18]
cmp r0, #0
beq _0225F08C
bl FreeToHeap
_0225F08C:
add r0, r4, #0
mov r1, #0
mov r2, #0x24
bl memset
pop {r4, pc}
thumb_func_end ov49_0225F074
thumb_func_start ov49_0225F098
ov49_0225F098: ; 0x0225F098
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldrb r0, [r5, #2]
add r6, r1, #0
add r7, r3, #0
cmp r0, #0
beq _0225F0D6
cmp r2, #0
beq _0225F0B0
cmp r2, #1
beq _0225F0B6
b _0225F0BC
_0225F0B0:
ldr r0, [r5, #4]
ldr r4, [r0]
b _0225F0C0
_0225F0B6:
ldr r0, [r5, #4]
ldr r4, [r0, #4]
b _0225F0C0
_0225F0BC:
bl GF_AssertFail
_0225F0C0:
cmp r4, #0
beq _0225F0D6
ldr r1, [r6, #4]
add r0, r5, #0
add r2, r7, #0
blx r4
cmp r0, #1
bne _0225F0D6
add r0, r5, #0
bl ov49_0225F148
_0225F0D6:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225F098
thumb_func_start ov49_0225F0D8
ov49_0225F0D8: ; 0x0225F0D8
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
bl ov49_0225F170
cmp r0, #1
beq _0225F0EE
bl GF_AssertFail
_0225F0EE:
ldr r0, [r5, #8]
cmp r0, #0
beq _0225F0F8
bl GF_AssertFail
_0225F0F8:
mov r3, #0
add r0, r5, #4
add r1, r4, #0
add r2, r6, #0
str r3, [sp]
bl ov49_0225F190
add sp, #4
pop {r3, r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225F0D8
thumb_func_start ov49_0225F10C
ov49_0225F10C: ; 0x0225F10C
strb r1, [r0, #2]
bx lr
thumb_func_end ov49_0225F10C
thumb_func_start ov49_0225F110
ov49_0225F110: ; 0x0225F110
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
bl ov49_0225F170
cmp r0, #1
beq _0225F126
bl GF_AssertFail
_0225F126:
add r2, r5, #0
add r3, r5, #4
add r2, #0x14
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
mov r3, #0
add r0, r5, #4
add r1, r4, #0
add r2, r6, #0
str r3, [sp]
bl ov49_0225F190
add sp, #4
pop {r3, r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_0225F110
thumb_func_start ov49_0225F148
ov49_0225F148: ; 0x0225F148
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
cmp r0, #0
beq _0225F156
bl GF_AssertFail
_0225F156:
add r3, r4, #0
add r3, #0x14
add r2, r4, #4
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
add r4, #0x14
add r0, r4, #0
bl ov49_0225F19C
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225F148
thumb_func_start ov49_0225F170
ov49_0225F170: ; 0x0225F170
ldr r0, [r0, #0x14]
cmp r0, #0
bne _0225F17A
mov r0, #1
bx lr
_0225F17A:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_end ov49_0225F170
thumb_func_start ov49_0225F180
ov49_0225F180: ; 0x0225F180
ldr r0, [r0, #4]
cmp r0, #0
beq _0225F18A
mov r0, #1
bx lr
_0225F18A:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_end ov49_0225F180
thumb_func_start ov49_0225F190
ov49_0225F190: ; 0x0225F190
str r1, [r0]
ldr r1, [sp]
str r3, [r0, #0xc]
str r1, [r0, #4]
str r2, [r0, #8]
bx lr
thumb_func_end ov49_0225F190
thumb_func_start ov49_0225F19C
ov49_0225F19C: ; 0x0225F19C
mov r1, #0
str r1, [r0]
str r1, [r0, #0xc]
str r1, [r0, #4]
str r1, [r0, #8]
bx lr
thumb_func_end ov49_0225F19C
thumb_func_start ov49_0225F1A8
ov49_0225F1A8: ; 0x0225F1A8
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
bl ov49_02259FEC
add r4, r0, #0
add r0, r5, #0
bl ov49_0225A010
add r7, r0, #0
add r0, r5, #0
bl ov49_0225A02C
add r6, r0, #0
add r0, r5, #0
bl ov49_02259FE8
mov r1, #1
bl ov45_0222A5E8
ldrh r0, [r4, #6]
cmp r0, #4
blo _0225F1D8
bl GF_AssertFail
_0225F1D8:
ldrh r2, [r4, #6]
ldr r3, _0225F1EC ; =ov49_02269BE0
add r0, r7, #0
lsl r2, r2, #3
add r2, r3, r2
add r1, r6, #0
mov r3, #0
bl ov49_0225EF98
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0225F1EC: .word ov49_02269BE0
thumb_func_end ov49_0225F1A8
thumb_func_start ov49_0225F1F0
ov49_0225F1F0: ; 0x0225F1F0
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
bl ov49_0225A02C
add r5, r0, #0
add r0, r4, #0
bl ov49_0225A010
ldr r7, _0225F220 ; =ov49_02269B78
add r6, r0, #0
mov r4, #0
_0225F206:
cmp r5, r4
beq _0225F216
add r0, r6, #0
add r1, r4, #0
add r2, r7, #0
mov r3, #0
bl ov49_0225EF98
_0225F216:
add r4, r4, #1
cmp r4, #0x14
blt _0225F206
pop {r3, r4, r5, r6, r7, pc}
nop
_0225F220: .word ov49_02269B78
thumb_func_end ov49_0225F1F0
thumb_func_start ov49_0225F224
ov49_0225F224: ; 0x0225F224
cmp r0, #3
bhi _0225F24A
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225F234: ; jump table
.short _0225F23C - _0225F234 - 2 ; case 0
.short _0225F240 - _0225F234 - 2 ; case 1
.short _0225F244 - _0225F234 - 2 ; case 2
.short _0225F248 - _0225F234 - 2 ; case 3
_0225F23C:
mov r1, #0x40
b _0225F24A
_0225F240:
mov r1, #0x80
b _0225F24A
_0225F244:
mov r1, #0x20
b _0225F24A
_0225F248:
mov r1, #0x10
_0225F24A:
ldr r0, _0225F25C ; =gSystem
ldr r0, [r0, #0x44]
tst r0, r1
beq _0225F256
mov r0, #1
bx lr
_0225F256:
mov r0, #0
bx lr
nop
_0225F25C: .word gSystem
thumb_func_end ov49_0225F224
thumb_func_start ov49_0225F260
ov49_0225F260: ; 0x0225F260
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
str r1, [sp]
add r7, r0, #0
str r2, [sp, #4]
add r4, r3, #0
ldr r5, [sp, #0x28]
bl ov49_0225EF84
str r0, [sp, #0xc]
ldr r0, [sp]
bl ov49_0225A010
str r0, [sp, #8]
ldr r0, [r4, #8]
mov r2, #0
cmp r0, #3
beq _0225F2F4
add r6, r4, #0
add r1, r2, #0
_0225F288:
add r3, r1, #0
_0225F28A:
ldrb r0, [r6, r3]
cmp r0, #0xff
beq _0225F2EA
cmp r5, r0
bne _0225F2E4
mov r0, #0x18
add r5, r2, #0
mul r5, r0
add r6, r4, r5
ldr r0, [r6, #8]
cmp r0, #0
beq _0225F2AA
cmp r0, #1
beq _0225F2C2
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
_0225F2AA:
add r0, r7, #0
bl ov49_0225EF68
add r2, r6, #0
ldr r0, [sp, #8]
ldr r1, [sp, #4]
add r2, #0xc
mov r3, #0
bl ov49_0225EF98
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
_0225F2C2:
ldr r7, [r6, #0x14]
cmp r7, #0
beq _0225F2D2
ldrb r3, [r3, r6]
ldr r0, [sp, #0xc]
ldr r1, [sp]
ldr r2, [sp, #4]
blx r7
_0225F2D2:
add r2, r4, r5
ldr r0, [sp, #8]
ldr r1, [sp, #4]
add r2, #0xc
mov r3, #0
bl ov49_0225EFC4
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
_0225F2E4:
add r3, r3, #1
cmp r3, #8
blt _0225F28A
_0225F2EA:
add r6, #0x18
ldr r0, [r6, #8]
add r2, r2, #1
cmp r0, #3
bne _0225F288
_0225F2F4:
bl GF_AssertFail
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225F260
thumb_func_start ov49_0225F2FC
ov49_0225F2FC: ; 0x0225F2FC
push {r4, r5, lr}
sub sp, #0xc
add r4, r1, #0
add r5, r0, #0
bl ov49_02259FF0
add r1, r4, #0
bl ov49_02258C28
add r4, r0, #0
add r0, r5, #0
bl ov49_0225A008
add r5, r0, #0
add r0, r4, #0
add r1, sp, #0
bl ov49_02259154
ldr r1, [sp]
ldr r2, [sp, #4]
ldr r3, [sp, #8]
add r0, r5, #0
bl ov49_0225CC28
add r0, r4, #0
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_0225F2FC
thumb_func_start ov49_0225F334
ov49_0225F334: ; 0x0225F334
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
add r6, r1, #0
add r7, r2, #0
str r3, [sp]
bl ov49_02259FF0
add r4, r0, #0
add r0, r5, #0
bl ov49_0225A008
str r0, [sp, #4]
ldr r3, [sp]
add r0, r4, #0
add r1, r6, #0
add r2, r7, #0
bl ov49_02258C5C
add r5, r0, #0
ldr r3, [sp, #0x20]
add r0, r4, #0
add r1, r5, #0
mov r2, #0
bl ov49_02258E7C
ldr r0, [sp, #4]
add r1, r5, #0
bl ov49_0225CC40
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_0225F334
thumb_func_start ov49_0225F374
ov49_0225F374: ; 0x0225F374
push {r4, lr}
add r4, r0, #0
mov r0, #0
str r0, [r4]
strb r0, [r4, #4]
mov r0, #1
strb r0, [r4, #5]
bl MTRandom
mov r1, #3
and r0, r1
strb r0, [r4, #6]
mov r0, #1
strb r0, [r4, #7]
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_0225F374
thumb_func_start ov49_0225F394
ov49_0225F394: ; 0x0225F394
push {r4, lr}
add r4, r0, #0
ldrb r0, [r4, #5]
cmp r0, #0
beq _0225F3A8
cmp r0, #1
beq _0225F3AE
cmp r0, #2
beq _0225F3C0
b _0225F422
_0225F3A8:
mov r0, #0
str r0, [r4]
b _0225F422
_0225F3AE:
ldrb r0, [r4, #6]
sub r0, r0, #1
cmp r0, #0
ble _0225F3BA
strb r0, [r4, #6]
b _0225F422
_0225F3BA:
mov r0, #2
strb r0, [r4, #5]
b _0225F422
_0225F3C0:
mov r0, #4
ldrsb r1, [r4, r0]
mov r3, #0
add r1, r1, #1
strb r1, [r4, #4]
ldrsb r1, [r4, r0]
ldr r0, _0225F428 ; =0x00007FFF
add r2, r1, #0
mul r2, r0
asr r0, r2, #1
lsr r0, r0, #0x1e
add r0, r2, r0
lsl r0, r0, #0xe
lsr r0, r0, #0x10
asr r0, r0, #4
lsl r1, r0, #2
ldr r0, _0225F42C ; =FX_SinCosTable_
mov r2, #6
ldrsh r0, [r0, r1]
lsl r2, r2, #0xc
asr r1, r0, #0x1f
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r1, r2, #0xc
orr r1, r0
str r1, [r4]
mov r0, #4
ldrsb r0, [r4, r0]
cmp r0, #4
blt _0225F422
ldrb r0, [r4, #7]
cmp r0, #1
bne _0225F420
strb r3, [r4, #4]
mov r0, #1
strb r0, [r4, #5]
bl MTRandom
mov r1, #3
and r0, r1
strb r0, [r4, #6]
b _0225F422
_0225F420:
strb r3, [r4, #5]
_0225F422:
ldr r0, [r4]
pop {r4, pc}
nop
_0225F428: .word 0x00007FFF
_0225F42C: .word FX_SinCosTable_
thumb_func_end ov49_0225F394
thumb_func_start ov49_0225F430
ov49_0225F430: ; 0x0225F430
mov r1, #0
strb r1, [r0, #7]
bx lr
.balign 4, 0
thumb_func_end ov49_0225F430
thumb_func_start ov49_0225F438
ov49_0225F438: ; 0x0225F438
ldrb r0, [r0, #5]
cmp r0, #0
beq _0225F442
mov r0, #1
bx lr
_0225F442:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_end ov49_0225F438
thumb_func_start ov49_0225F448
ov49_0225F448: ; 0x0225F448
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r1, #0
add r6, r0, #0
add r4, r2, #0
add r0, r5, #0
bl ov49_02259FF0
add r1, r4, #0
add r7, r0, #0
bl ov49_02258D70
str r0, [sp]
add r0, r5, #0
bl ov49_02259FE8
str r0, [sp, #4]
add r0, r6, #0
bl ov49_0225EF88
cmp r0, #0
beq _0225F47E
cmp r0, #1
beq _0225F4A2
cmp r0, #2
beq _0225F4B8
b _0225F510
_0225F47E:
add r0, r5, #0
add r1, r4, #0
bl ov49_0225A56C
add r0, r6, #0
mov r1, #1
bl ov49_0225EF8C
ldr r0, [sp, #4]
bl ov45_0222A53C
cmp r4, r0
bne _0225F510
add r0, r5, #0
mov r1, #0
bl ov49_0225A53C
b _0225F510
_0225F4A2:
add r0, r5, #0
add r1, r4, #0
bl ov49_0225A5AC
cmp r0, #1
bne _0225F510
add r0, r6, #0
mov r1, #2
bl ov49_0225EF8C
b _0225F510
_0225F4B8:
ldr r0, [sp, #4]
bl ov45_0222A53C
cmp r4, r0
bne _0225F4CE
ldr r1, [sp]
add r0, r7, #0
mov r2, #1
bl ov49_02258EEC
b _0225F504
_0225F4CE:
add r0, r5, #0
bl ov49_0225A4F0
cmp r0, #1
bne _0225F4EE
add r0, r5, #0
bl ov49_0225A4E0
cmp r4, r0
beq _0225F4F8
ldr r1, [sp]
add r0, r7, #0
mov r2, #2
bl ov49_02258EEC
b _0225F4F8
_0225F4EE:
ldr r1, [sp]
add r0, r7, #0
mov r2, #2
bl ov49_02258EEC
_0225F4F8:
lsl r1, r4, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #0
bl ov49_0225A04C
_0225F504:
add r0, r5, #0
bl ov49_0225A54C
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_0225F510:
mov r0, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0225F448
thumb_func_start ov49_0225F518
ov49_0225F518: ; 0x0225F518
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r1, #0
add r6, r0, #0
add r0, r5, #0
str r2, [sp]
bl ov49_02259FE8
str r0, [sp, #4]
add r0, r5, #0
bl ov49_02259FF0
str r0, [sp, #8]
bl ov49_02258DAC
add r7, r0, #0
add r0, r6, #0
bl ov49_0225EF84
add r4, r0, #0
add r0, r6, #0
bl ov49_0225EF88
cmp r0, #0x16
bhi _0225F602
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225F556: ; jump table
.short _0225F584 - _0225F556 - 2 ; case 0
.short _0225F5C4 - _0225F556 - 2 ; case 1
.short _0225F5FA - _0225F556 - 2 ; case 2
.short _0225F614 - _0225F556 - 2 ; case 3
.short _0225F62E - _0225F556 - 2 ; case 4
.short _0225F648 - _0225F556 - 2 ; case 5
.short _0225F662 - _0225F556 - 2 ; case 6
.short _0225F67C - _0225F556 - 2 ; case 7
.short _0225F692 - _0225F556 - 2 ; case 8
.short _0225F6B2 - _0225F556 - 2 ; case 9
.short _0225F6E4 - _0225F556 - 2 ; case 10
.short _0225F758 - _0225F556 - 2 ; case 11
.short _0225F79E - _0225F556 - 2 ; case 12
.short _0225F7D0 - _0225F556 - 2 ; case 13
.short _0225F9FA - _0225F556 - 2 ; case 14
.short _0225F844 - _0225F556 - 2 ; case 15
.short _0225F88A - _0225F556 - 2 ; case 16
.short _0225F8E2 - _0225F556 - 2 ; case 17
.short _0225F902 - _0225F556 - 2 ; case 18
.short _0225F950 - _0225F556 - 2 ; case 19
.short _0225F97A - _0225F556 - 2 ; case 20
.short _0225F9AE - _0225F556 - 2 ; case 21
.short _0225F9C2 - _0225F556 - 2 ; case 22
_0225F584:
add r0, r6, #0
mov r1, #0x2c
bl ov49_0225EF40
add r1, r5, #0
add r4, r0, #0
bl ov49_022614CC
ldr r0, [sp, #4]
bl ov45_0222A4D0
ldr r0, [sp, #4]
bl ov45_0222B1B4
strh r0, [r4, #2]
ldrh r1, [r4, #2]
ldr r0, [sp, #4]
bl ov45_0222A72C
ldr r1, [sp]
add r0, r5, #0
bl ov49_0225F2FC
add r1, r0, #0
ldr r0, [sp, #8]
mov r2, #4
bl ov49_02258EEC
add r0, r6, #0
bl ov49_0225EF90
b _0225F9FA
_0225F5C4:
add r0, r5, #0
bl ov49_0225A030
cmp r0, #0
bne _0225F602
add r0, r7, #0
bl ov49_02258F38
cmp r0, #1
bne _0225F602
ldr r0, [sp, #8]
add r1, r7, #0
mov r2, #0
bl ov49_02258EEC
add r0, r5, #0
bl ov49_0225A008
add r1, r7, #0
bl ov49_0225CC40
mov r0, #0x10
str r0, [r4, #4]
add r0, r6, #0
bl ov49_0225EF90
b _0225F9FA
_0225F5FA:
ldr r0, [r4, #4]
sub r0, r0, #1
str r0, [r4, #4]
beq _0225F604
_0225F602:
b _0225F9FA
_0225F604:
add r0, r5, #0
mov r1, #1
bl ov49_0225A018
add r0, r6, #0
bl ov49_0225EF90
b _0225F9FA
_0225F614:
ldr r0, [sp, #8]
add r1, r7, #0
mov r2, #2
mov r3, #0
bl ov49_02258E7C
mov r0, #4
strh r0, [r4]
add r0, r6, #0
mov r1, #7
bl ov49_0225EF8C
b _0225F9FA
_0225F62E:
ldr r0, [sp, #8]
add r1, r7, #0
mov r2, #2
mov r3, #0
bl ov49_02258E7C
mov r0, #5
strh r0, [r4]
add r0, r6, #0
mov r1, #7
bl ov49_0225EF8C
b _0225F9FA
_0225F648:
ldr r0, [sp, #8]
add r1, r7, #0
mov r2, #1
mov r3, #3
bl ov49_02258E7C
mov r0, #6
strh r0, [r4]
add r0, r6, #0
mov r1, #7
bl ov49_0225EF8C
b _0225F9FA
_0225F662:
ldr r0, [sp, #8]
add r1, r7, #0
mov r2, #2
mov r3, #3
bl ov49_02258E7C
mov r0, #8
strh r0, [r4]
add r0, r6, #0
mov r1, #7
bl ov49_0225EF8C
b _0225F9FA
_0225F67C:
add r0, r7, #0
mov r1, #5
bl ov49_02258E60
cmp r0, #0
bne _0225F766
ldrh r1, [r4]
add r0, r6, #0
bl ov49_0225EF8C
b _0225F9FA
_0225F692:
add r0, r5, #0
mov r1, #1
mov r2, #0
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x10
strh r0, [r4]
add r0, r6, #0
mov r1, #0x15
bl ov49_0225EF8C
b _0225F9FA
_0225F6B2:
add r0, r5, #0
mov r1, #1
mov r2, #5
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A09C
add r4, #8
mov r2, #0
add r0, r5, #0
add r1, r4, #0
add r3, r2, #0
bl ov49_0225A174
add r0, r5, #0
mov r1, #1
bl ov49_0225A1F4
add r0, r6, #0
mov r1, #0xa
bl ov49_0225EF8C
b _0225F9FA
_0225F6E4:
add r0, r5, #0
mov r7, #0
bl ov49_0225A1D4
add r2, r0, #0
beq _0225F704
sub r0, r7, #2
cmp r2, r0
beq _0225F6FE
add r0, r0, #1
cmp r2, r0
beq _0225F718
b _0225F70C
_0225F6FE:
ldr r0, _0225FA00 ; =0x000005DC
bl PlaySE
_0225F704:
mov r0, #0
strh r0, [r4, #0x28]
mov r7, #1
b _0225F718
_0225F70C:
add r0, r5, #0
mov r1, #0
strh r2, [r4, #0x28]
mov r7, #1
bl ov49_0225A40C
_0225F718:
cmp r7, #1
bne _0225F766
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl ov49_0225A1E4
ldrh r0, [r4, #0x28]
cmp r0, #0
beq _0225F74E
add r0, r5, #0
mov r1, #1
mov r2, #8
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A09C
add r0, r5, #0
bl ov49_0225A264
add r0, r6, #0
mov r1, #0xb
bl ov49_0225EF8C
b _0225F9FA
_0225F74E:
add r0, r6, #0
mov r1, #0x11
bl ov49_0225EF8C
b _0225F9FA
_0225F758:
add r0, r5, #0
bl ov49_0225A2C4
cmp r0, #0
beq _0225F768
cmp r0, #1
beq _0225F78E
_0225F766:
b _0225F9FA
_0225F768:
add r0, r5, #0
bl ov49_0225A2F8
add r0, r6, #0
mov r1, #0xc
bl ov49_0225EF8C
ldrh r1, [r4, #0x28]
ldrh r2, [r4, #0x2a]
ldr r0, [sp, #4]
bl ov45_0222A770
add r0, r5, #0
bl ov49_0225A490
ldr r0, _0225FA04 ; =0x000005E5
bl PlaySE
b _0225F9FA
_0225F78E:
add r0, r5, #0
bl ov49_0225A2F8
add r0, r6, #0
mov r1, #9
bl ov49_0225EF8C
b _0225F9FA
_0225F79E:
add r0, r5, #0
mov r1, #1
mov r2, #0xa
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A09C
add r4, #8
mov r2, #0
add r0, r5, #0
add r1, r4, #0
add r3, r2, #0
bl ov49_0225A174
add r0, r5, #0
mov r1, #1
bl ov49_0225A1F4
add r0, r6, #0
mov r1, #0xd
bl ov49_0225EF8C
b _0225F9FA
_0225F7D0:
add r0, r5, #0
mov r7, #0
bl ov49_0225A1D4
add r2, r0, #0
beq _0225F7F0
sub r0, r7, #2
cmp r2, r0
beq _0225F7EA
add r0, r0, #1
cmp r2, r0
beq _0225F804
b _0225F7F8
_0225F7EA:
ldr r0, _0225FA00 ; =0x000005DC
bl PlaySE
_0225F7F0:
mov r0, #0
strh r0, [r4, #0x2a]
mov r7, #1
b _0225F804
_0225F7F8:
add r0, r5, #0
mov r1, #0
strh r2, [r4, #0x2a]
mov r7, #1
bl ov49_0225A40C
_0225F804:
cmp r7, #1
bne _0225F852
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl ov49_0225A1E4
ldrh r0, [r4, #0x2a]
cmp r0, #0
beq _0225F83A
add r0, r5, #0
mov r1, #1
mov r2, #8
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A09C
add r0, r5, #0
bl ov49_0225A264
add r0, r6, #0
mov r1, #0xf
bl ov49_0225EF8C
b _0225F9FA
_0225F83A:
add r0, r6, #0
mov r1, #0x13
bl ov49_0225EF8C
b _0225F9FA
_0225F844:
add r0, r5, #0
bl ov49_0225A2C4
cmp r0, #0
beq _0225F854
cmp r0, #1
beq _0225F87A
_0225F852:
b _0225F9FA
_0225F854:
add r0, r5, #0
bl ov49_0225A2F8
add r0, r6, #0
mov r1, #0x14
bl ov49_0225EF8C
ldrh r1, [r4, #0x28]
ldrh r2, [r4, #0x2a]
ldr r0, [sp, #4]
bl ov45_0222A770
add r0, r5, #0
bl ov49_0225A490
ldr r0, _0225FA04 ; =0x000005E5
bl PlaySE
b _0225F9FA
_0225F87A:
add r0, r5, #0
bl ov49_0225A2F8
add r0, r6, #0
mov r1, #0xc
bl ov49_0225EF8C
b _0225F9FA
_0225F88A:
ldr r0, _0225FA08 ; =0x000005BF
bl PlaySE
add r0, r5, #0
bl ov49_0225A530
ldr r1, [sp]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrh r1, [r4, #2]
add r0, r5, #0
mov r2, #1
bl ov49_0225A39C
ldr r0, [sp, #4]
ldr r1, [sp]
bl ov45_0222AB28
cmp r0, #0
bne _0225F8C2
mov r1, #1
add r0, r5, #0
add r2, r1, #0
bl ov49_0225A30C
b _0225F8CC
_0225F8C2:
add r0, r5, #0
mov r1, #1
mov r2, #0x7c
bl ov49_0225A30C
_0225F8CC:
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x12
strh r0, [r4]
add r0, r6, #0
mov r1, #0x15
bl ov49_0225EF8C
b _0225F9FA
_0225F8E2:
add r0, r5, #0
mov r1, #1
mov r2, #2
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x16
strh r0, [r4]
add r0, r6, #0
mov r1, #0x15
bl ov49_0225EF8C
b _0225F9FA
_0225F902:
ldr r0, _0225FA08 ; =0x000005BF
bl IsSEPlaying
cmp r0, #0
bne _0225F9FA
ldr r0, _0225FA0C ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #3
tst r0, r1
beq _0225F9FA
ldr r0, _0225FA00 ; =0x000005DC
bl PlaySE
add r0, r5, #0
mov r1, #1
mov r2, #4
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #9
strh r0, [r4]
add r0, r6, #0
mov r1, #0x15
bl ov49_0225EF8C
ldrh r1, [r4, #0x28]
ldrh r2, [r4, #0x2a]
ldr r0, [sp, #4]
bl ov45_0222A770
ldr r1, [sp]
add r0, r5, #0
mov r2, #0
bl ov49_0225A428
b _0225F9FA
_0225F950:
ldrh r2, [r4, #0x28]
add r0, r5, #0
mov r1, #0
bl ov49_0225A40C
add r0, r5, #0
mov r1, #1
mov r2, #0xc
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x11
strh r0, [r4]
add r0, r6, #0
mov r1, #0x15
bl ov49_0225EF8C
b _0225F9FA
_0225F97A:
ldrh r2, [r4, #0x28]
add r0, r5, #0
mov r1, #0
bl ov49_0225A40C
ldrh r2, [r4, #0x2a]
add r0, r5, #0
mov r1, #1
bl ov49_0225A40C
add r0, r5, #0
mov r1, #1
mov r2, #0xb
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x11
strh r0, [r4]
add r0, r6, #0
mov r1, #0x15
bl ov49_0225EF8C
b _0225F9FA
_0225F9AE:
add r0, r5, #0
bl ov49_0225A0AC
cmp r0, #1
bne _0225F9FA
ldrh r1, [r4]
add r0, r6, #0
bl ov49_0225EF8C
b _0225F9FA
_0225F9C2:
ldr r0, [sp, #8]
add r1, r7, #0
mov r2, #1
bl ov49_02258EEC
add r0, r5, #0
bl ov49_0225A0EC
add r0, r4, #0
add r1, r5, #0
bl ov49_02261540
add r0, r6, #0
bl ov49_0225EF68
add r0, r5, #0
bl ov49_0225A010
add r4, r0, #0
add r0, r5, #0
bl ov49_0225A02C
add r1, r0, #0
ldr r2, _0225FA10 ; =ov49_02269B38
add r0, r4, #0
mov r3, #0
bl ov49_0225EF98
_0225F9FA:
mov r0, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_0225FA00: .word 0x000005DC
_0225FA04: .word 0x000005E5
_0225FA08: .word 0x000005BF
_0225FA0C: .word gSystem
_0225FA10: .word ov49_02269B38
thumb_func_end ov49_0225F518
thumb_func_start ov49_0225FA14
ov49_0225FA14: ; 0x0225FA14
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
str r2, [sp, #4]
bl ov49_02259FE8
str r0, [sp, #8]
add r0, r4, #0
bl ov49_02259FEC
add r6, r0, #0
add r0, r4, #0
bl ov49_02259FF0
str r0, [sp, #0xc]
bl ov49_02258DAC
add r7, r0, #0
add r0, r5, #0
bl ov49_0225EF88
cmp r0, #5
bls _0225FA48
b _0225FB52
_0225FA48:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225FA54: ; jump table
.short _0225FA60 - _0225FA54 - 2 ; case 0
.short _0225FA8C - _0225FA54 - 2 ; case 1
.short _0225FAC2 - _0225FA54 - 2 ; case 2
.short _0225FAF2 - _0225FA54 - 2 ; case 3
.short _0225FB16 - _0225FA54 - 2 ; case 4
.short _0225FB2E - _0225FA54 - 2 ; case 5
_0225FA60:
mov r0, #1
str r0, [sp]
ldrh r2, [r6]
ldrh r3, [r6, #2]
ldr r1, [sp, #4]
add r0, r4, #0
bl ov49_0225F334
bl ov45_0222D844
cmp r0, #0
bne _0225FA7C
bl ov45_0222EB94
_0225FA7C:
ldr r0, [sp, #8]
mov r1, #0
bl ov45_0222A520
add r0, r5, #0
bl ov49_0225EF90
b _0225FB52
_0225FA8C:
bl ov45_0222D844
cmp r0, #0
bne _0225FA9C
bl ov45_0222EBC4
cmp r0, #0
beq _0225FB52
_0225FA9C:
add r0, r4, #0
bl ov49_02259FEC
add r6, r0, #0
add r0, r4, #0
bl ov49_0225A030
cmp r0, #0
bne _0225FB52
add r0, r5, #0
bl ov49_0225EF90
ldrh r3, [r6, #4]
ldr r0, [sp, #0xc]
add r1, r7, #0
mov r2, #2
bl ov49_02258EAC
b _0225FB52
_0225FAC2:
add r0, r7, #0
mov r1, #5
bl ov49_02258E60
cmp r0, #0
bne _0225FB52
add r0, r4, #0
mov r1, #1
bl ov49_0225A018
ldr r0, [sp, #8]
bl ov45_0222A4B8
cmp r0, #1
bne _0225FAE8
add r0, r5, #0
bl ov49_0225EF90
b _0225FB52
_0225FAE8:
add r0, r5, #0
mov r1, #5
bl ov49_0225EF8C
b _0225FB52
_0225FAF2:
ldrh r1, [r6, #8]
add r0, r4, #0
mov r2, #0
bl ov49_0225A37C
add r0, r4, #0
mov r1, #0
mov r2, #0x15
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
bl ov49_0225EF90
b _0225FB52
_0225FB16:
add r0, r4, #0
bl ov49_0225A0AC
cmp r0, #1
bne _0225FB52
add r0, r4, #0
bl ov49_0225A0EC
add r0, r5, #0
bl ov49_0225EF90
b _0225FB52
_0225FB2E:
ldr r0, [sp, #0xc]
add r1, r7, #0
mov r2, #1
bl ov49_02258EEC
add r0, r4, #0
bl ov49_0225A010
add r5, r0, #0
add r0, r4, #0
bl ov49_0225A02C
add r1, r0, #0
ldr r2, _0225FB58 ; =ov49_02269B38
add r0, r5, #0
mov r3, #0
bl ov49_0225EF98
_0225FB52:
mov r0, #0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0225FB58: .word ov49_02269B38
thumb_func_end ov49_0225FA14
thumb_func_start ov49_0225FB5C
ov49_0225FB5C: ; 0x0225FB5C
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
str r2, [sp, #4]
bl ov49_0225A010
str r0, [sp, #8]
add r0, r4, #0
bl ov49_02259FF0
str r0, [sp, #0xc]
bl ov49_02258DAC
add r7, r0, #0
add r0, r4, #0
bl ov49_02259FE8
str r0, [sp, #0x10]
add r0, r4, #0
bl ov49_02259FEC
add r6, r0, #0
add r0, r5, #0
bl ov49_0225EF88
cmp r0, #5
bls _0225FB98
b _0225FC9A
_0225FB98:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225FBA4: ; jump table
.short _0225FBB0 - _0225FBA4 - 2 ; case 0
.short _0225FBE2 - _0225FBA4 - 2 ; case 1
.short _0225FC08 - _0225FBA4 - 2 ; case 2
.short _0225FC3A - _0225FBA4 - 2 ; case 3
.short _0225FC5E - _0225FBA4 - 2 ; case 4
.short _0225FC76 - _0225FBA4 - 2 ; case 5
_0225FBB0:
mov r0, #1
str r0, [sp]
ldrh r2, [r6]
ldrh r3, [r6, #2]
ldr r1, [sp, #4]
add r0, r4, #0
bl ov49_0225F334
add r0, r5, #0
bl ov49_0225EF90
ldr r0, [sp, #8]
ldr r1, [sp, #4]
ldr r2, _0225FCA0 ; =ov49_02269B68
mov r3, #0
bl ov49_0225EFC4
ldr r0, [sp, #0x10]
mov r1, #0
bl ov45_0222A4C8
ldr r0, [sp, #0x10]
bl ov45_0222A4D0
b _0225FC9A
_0225FBE2:
add r0, r4, #0
bl ov49_02259FEC
add r6, r0, #0
add r0, r4, #0
bl ov49_0225A030
cmp r0, #0
bne _0225FC9A
add r0, r5, #0
bl ov49_0225EF90
ldrh r3, [r6, #4]
ldr r0, [sp, #0xc]
add r1, r7, #0
mov r2, #2
bl ov49_02258EAC
b _0225FC9A
_0225FC08:
add r0, r7, #0
mov r1, #5
bl ov49_02258E60
cmp r0, #0
bne _0225FC9A
add r0, r4, #0
mov r1, #1
bl ov49_0225A018
ldr r0, [sp, #0x10]
bl ov45_0222A424
cmp r0, #1
bne _0225FC30
add r0, r5, #0
mov r1, #3
bl ov49_0225EF8C
b _0225FC9A
_0225FC30:
add r0, r5, #0
mov r1, #5
bl ov49_0225EF8C
b _0225FC9A
_0225FC3A:
ldrh r1, [r6, #8]
add r0, r4, #0
mov r2, #0
bl ov49_0225A37C
add r0, r4, #0
mov r1, #0
mov r2, #8
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
bl ov49_0225EF90
b _0225FC9A
_0225FC5E:
add r0, r4, #0
bl ov49_0225A0AC
cmp r0, #1
bne _0225FC9A
add r0, r4, #0
bl ov49_0225A0EC
add r0, r5, #0
bl ov49_0225EF90
b _0225FC9A
_0225FC76:
ldr r0, [sp, #0xc]
add r1, r7, #0
mov r2, #1
bl ov49_02258EEC
add r0, r4, #0
bl ov49_0225A010
add r5, r0, #0
add r0, r4, #0
bl ov49_0225A02C
add r1, r0, #0
ldr r2, _0225FCA4 ; =ov49_02269B38
add r0, r5, #0
mov r3, #0
bl ov49_0225EF98
_0225FC9A:
mov r0, #0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_0225FCA0: .word ov49_02269B68
_0225FCA4: .word ov49_02269B38
thumb_func_end ov49_0225FB5C
thumb_func_start ov49_0225FCA8
ov49_0225FCA8: ; 0x0225FCA8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
str r2, [sp, #4]
bl ov49_02259FE8
add r7, r0, #0
add r0, r4, #0
bl ov49_02259FEC
str r0, [sp, #8]
add r0, r4, #0
bl ov49_02259FF0
str r0, [sp, #0xc]
bl ov49_02258DAC
add r6, r0, #0
add r0, r5, #0
bl ov49_0225EF88
cmp r0, #5
bhi _0225FDC2
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0225FCE6: ; jump table
.short _0225FCF2 - _0225FCE6 - 2 ; case 0
.short _0225FD16 - _0225FCE6 - 2 ; case 1
.short _0225FD3C - _0225FCE6 - 2 ; case 2
.short _0225FD6C - _0225FCE6 - 2 ; case 3
.short _0225FD86 - _0225FCE6 - 2 ; case 4
.short _0225FD9E - _0225FCE6 - 2 ; case 5
_0225FCF2:
mov r0, #1
str r0, [sp]
ldr r2, [sp, #8]
ldr r3, [sp, #8]
ldrh r2, [r2]
ldrh r3, [r3, #2]
ldr r1, [sp, #4]
add r0, r4, #0
bl ov49_0225F334
add r0, r7, #0
mov r1, #0
bl ov45_0222A520
add r0, r5, #0
bl ov49_0225EF90
b _0225FDC2
_0225FD16:
add r0, r4, #0
bl ov49_02259FEC
add r7, r0, #0
add r0, r4, #0
bl ov49_0225A030
cmp r0, #0
bne _0225FDC2
add r0, r5, #0
bl ov49_0225EF90
ldrh r3, [r7, #4]
ldr r0, [sp, #0xc]
add r1, r6, #0
mov r2, #2
bl ov49_02258EAC
b _0225FDC2
_0225FD3C:
add r0, r6, #0
mov r1, #5
bl ov49_02258E60
cmp r0, #0
bne _0225FDC2
add r0, r4, #0
mov r1, #1
bl ov49_0225A018
add r0, r7, #0
bl ov45_0222A4B8
cmp r0, #1
bne _0225FD62
add r0, r5, #0
bl ov49_0225EF90
b _0225FDC2
_0225FD62:
add r0, r5, #0
mov r1, #5
bl ov49_0225EF8C
b _0225FDC2
_0225FD6C:
add r0, r4, #0
mov r1, #1
mov r2, #0x5b
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
bl ov49_0225EF90
b _0225FDC2
_0225FD86:
add r0, r4, #0
bl ov49_0225A0AC
cmp r0, #1
bne _0225FDC2
add r0, r4, #0
bl ov49_0225A0EC
add r0, r5, #0
bl ov49_0225EF90
b _0225FDC2
_0225FD9E:
ldr r0, [sp, #0xc]
add r1, r6, #0
mov r2, #1
bl ov49_02258EEC
add r0, r4, #0
bl ov49_0225A010
add r5, r0, #0
add r0, r4, #0
bl ov49_0225A02C
add r1, r0, #0
ldr r2, _0225FDC8 ; =ov49_02269B38
add r0, r5, #0
mov r3, #0
bl ov49_0225EF98
_0225FDC2:
mov r0, #0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0225FDC8: .word ov49_02269B38
thumb_func_end ov49_0225FCA8
thumb_func_start ov49_0225FDCC
ov49_0225FDCC: ; 0x0225FDCC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x50
str r0, [sp, #4]
add r5, r1, #0
add r7, r2, #0
bl ov49_0225EF84
str r0, [sp, #0x30]
ldr r0, [sp, #4]
bl ov49_0225EF88
cmp r0, #0
beq _0225FDEC
cmp r0, #1
beq _0225FDFC
b _0226020A
_0225FDEC:
ldr r0, [sp, #4]
mov r1, #4
bl ov49_0225EF40
ldr r0, [sp, #4]
bl ov49_0225EF90
b _0226020A
_0225FDFC:
add r0, r5, #0
mov r1, #0
bl ov49_0225A53C
add r0, r5, #0
bl ov49_0225A010
str r0, [sp, #0x14]
add r0, r5, #0
bl ov49_02259FE8
str r0, [sp, #0x18]
add r0, r5, #0
bl ov49_02259FF0
add r4, r0, #0
add r0, r5, #0
bl ov49_0225A000
str r0, [sp, #0x1c]
add r0, r5, #0
bl ov49_02259FF8
str r0, [sp, #0x20]
add r0, r4, #0
bl ov49_02258DB0
add r6, r0, #0
beq _0225FE7E
ldr r0, [sp, #0x18]
bl ov45_0222A330
cmp r0, #0
bne _0225FE6A
ldr r0, [sp, #0x18]
bl ov45_0222A3A0
cmp r0, #1
bne _0225FE6A
ldr r0, [sp, #0x18]
bl ov45_0222A2F8
cmp r0, #0
bne _0225FE6A
add r0, r6, #0
bl ov49_02258F3C
cmp r0, #9
beq _0225FE7E
add r0, r4, #0
add r1, r6, #0
mov r2, #9
bl ov49_02258EEC
b _0225FE7E
_0225FE6A:
add r0, r6, #0
bl ov49_02258F3C
cmp r0, #0
beq _0225FE7E
add r0, r4, #0
add r1, r6, #0
mov r2, #0
bl ov49_02258EEC
_0225FE7E:
add r0, r4, #0
bl ov49_02258DAC
str r0, [sp, #0x28]
mov r1, #5
bl ov49_02258E60
str r0, [sp, #0x2c]
ldr r0, [sp, #0x28]
mov r1, #6
bl ov49_02258E60
str r0, [sp, #8]
ldr r0, [sp, #0x28]
bl ov49_02258E34
add r1, sp, #0x40
strh r0, [r1, #4]
lsr r0, r0, #0x10
strh r0, [r1, #6]
ldrh r0, [r1, #4]
mov r2, sp
sub r2, r2, #4
strh r0, [r1, #0xc]
ldrh r0, [r1, #6]
strh r0, [r1, #0xe]
ldrh r0, [r1, #0xc]
strh r0, [r2]
ldrh r0, [r1, #0xe]
ldr r1, [sp, #8]
strh r0, [r2, #2]
ldr r0, [r2]
bl ov42_02228270
add r2, sp, #0x40
strh r0, [r2]
lsr r0, r0, #0x10
strh r0, [r2, #2]
ldrh r0, [r2]
mov r1, #0xc
strh r0, [r2, #8]
ldrh r0, [r2, #2]
strh r0, [r2, #0xa]
ldrsh r1, [r2, r1]
ldr r0, [sp, #0x1c]
asr r3, r1, #3
lsr r3, r3, #0x1c
add r3, r1, r3
lsl r1, r3, #0xc
mov r3, #0xe
ldrsh r2, [r2, r3]
lsr r1, r1, #0x10
asr r3, r2, #3
lsr r3, r3, #0x1c
add r3, r2, r3
lsl r2, r3, #0xc
lsr r2, r2, #0x10
bl ov49_022589C4
str r0, [sp, #0x24]
add r0, sp, #0x40
mov r1, #0xa
ldrsh r2, [r0, r1]
asr r1, r2, #3
lsr r1, r1, #0x1c
add r1, r2, r1
asr r1, r1, #4
str r1, [sp, #0x10]
mov r1, #8
ldrsh r1, [r0, r1]
ldr r2, [sp, #0x10]
asr r0, r1, #3
lsr r0, r0, #0x1c
add r0, r1, r0
asr r0, r0, #4
str r0, [sp, #0xc]
ldr r1, [sp, #0xc]
lsl r2, r2, #0x10
lsl r1, r1, #0x10
ldr r0, [sp, #0x1c]
lsr r1, r1, #0x10
lsr r2, r2, #0x10
bl ov49_022589C4
add r6, r0, #0
add r0, r5, #0
bl ov49_0225A4E0
add r1, r0, #0
cmp r1, r7
beq _0225FF48
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
bl ov49_0225A084
cmp r0, #0
beq _0225FF48
add r0, r5, #0
bl ov49_0225A4D0
_0225FF48:
ldr r0, [sp, #0x2c]
cmp r0, #0
beq _0225FF94
add r0, r5, #0
bl ov49_0225A500
cmp r0, #1
bne _0225FF60
ldr r0, [sp, #0x2c]
sub r0, r0, #1
cmp r0, #2
bls _0225FF62
_0225FF60:
b _0226020A
_0225FF62:
add r0, r5, #0
bl ov49_0225A4E0
add r1, r0, #0
cmp r1, r7
beq _0225FF8C
add r0, r4, #0
bl ov49_02258D70
add r6, r0, #0
beq _0225FF8C
bl ov49_02258F3C
cmp r0, #0
bne _0225FF8C
ldr r2, [sp, #0x30]
add r0, r4, #0
ldr r2, [r2]
add r1, r6, #0
bl ov49_02258EEC
_0225FF8C:
add r0, r5, #0
bl ov49_0225A4D0
b _0226020A
_0225FF94:
add r0, r5, #0
mov r1, #0
bl ov49_0225A53C
ldr r0, [sp, #0x24]
bl ov49_02258A30
cmp r0, #1
bne _0225FFDA
ldr r0, [sp, #0x24]
ldr r3, _02260210 ; =ov49_02269D20
str r0, [sp]
ldr r0, [sp, #4]
add r1, r5, #0
add r2, r7, #0
bl ov49_0225F260
ldr r1, [sp, #0x28]
add r0, r4, #0
mov r2, #0
bl ov49_02258EEC
ldr r1, [sp, #0x24]
add r0, r5, #0
lsl r1, r1, #0x18
lsr r1, r1, #0x18
bl ov49_0225A03C
add r0, r5, #0
mov r1, #1
bl ov49_0225A53C
add sp, #0x50
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_0225FFDA:
add r0, r5, #0
bl ov49_0225A55C
cmp r0, #1
bne _02260008
ldr r1, [sp, #0x28]
add r0, r4, #0
mov r2, #0
bl ov49_02258EEC
ldr r0, [sp, #0x14]
ldr r2, _02260214 ; =ov49_02269B80
add r1, r7, #0
mov r3, #0
bl ov49_0225EFC4
add r0, r5, #0
mov r1, #1
bl ov49_0225A53C
add sp, #0x50
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_02260008:
ldr r0, [sp, #0x18]
bl ov45_0222B00C
cmp r0, #0
beq _02260036
ldr r0, [sp, #0x14]
ldr r2, _02260218 ; =ov49_02269B70
add r1, r7, #0
mov r3, #0
bl ov49_0225EFC4
ldr r1, [sp, #0x28]
add r0, r4, #0
mov r2, #0
bl ov49_02258EEC
add r0, r5, #0
mov r1, #1
bl ov49_0225A53C
add sp, #0x50
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_02260036:
ldr r0, _0226021C ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #1
tst r0, r1
beq _02260120
ldr r1, [sp, #0x28]
add r0, r4, #0
bl ov49_02258F40
str r0, [sp, #0x34]
cmp r0, #0
beq _022600A6
mov r1, #5
bl ov49_02258E60
str r0, [sp, #0x38]
ldr r0, [sp, #0x34]
mov r1, #4
bl ov49_02258E60
add r1, r0, #0
cmp r1, #0xfe
beq _022600A6
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
bl ov49_0225A064
ldr r1, [sp, #0x38]
cmp r1, #0
bne _022600A6
cmp r0, #0
bne _022600A6
ldr r0, [sp, #0x14]
ldr r2, _02260220 ; =ov49_02269B60
add r1, r7, #0
mov r3, #0
bl ov49_0225EFC4
ldr r1, [sp, #0x28]
add r0, r4, #0
mov r2, #0
bl ov49_02258EEC
ldr r1, [sp, #0x34]
add r0, r4, #0
mov r2, #0
bl ov49_02258EEC
add r0, r5, #0
mov r1, #1
bl ov49_0225A53C
add sp, #0x50
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_022600A6:
add r0, r6, #0
bl ov49_02258A90
cmp r0, #1
bne _022600E6
ldr r0, [sp, #0x28]
mov r1, #6
bl ov49_02258E60
cmp r0, #0
bne _022600E6
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
lsl r1, r1, #0x18
lsl r2, r2, #0x18
ldr r0, [sp, #0x20]
lsr r1, r1, #0x18
lsr r2, r2, #0x18
bl ov49_0225E58C
lsl r1, r6, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
bl ov49_0225A03C
add r0, r5, #0
mov r1, #1
bl ov49_0225A53C
add sp, #0x50
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_022600E6:
add r0, r6, #0
bl ov49_02258A70
cmp r0, #1
bne _02260120
ldr r0, [sp, #4]
ldr r3, _02260224 ; =ov49_02269C90
add r1, r5, #0
add r2, r7, #0
str r6, [sp]
bl ov49_0225F260
ldr r1, [sp, #0x28]
add r0, r4, #0
mov r2, #0
bl ov49_02258EEC
lsl r1, r6, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
bl ov49_0225A03C
add r0, r5, #0
mov r1, #1
bl ov49_0225A53C
add sp, #0x50
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_02260120:
ldr r0, [sp, #8]
bl ov49_0225F224
cmp r0, #1
bne _022601C0
ldr r0, [sp, #8]
cmp r0, #0
bne _0226016A
add r0, r6, #0
bl ov49_02258A50
cmp r0, #1
bne _0226016A
ldr r0, [sp, #4]
ldr r3, _02260228 ; =ov49_02269C60
add r1, r5, #0
add r2, r7, #0
str r6, [sp]
bl ov49_0225F260
ldr r1, [sp, #0x28]
add r0, r4, #0
mov r2, #0
bl ov49_02258EEC
lsl r1, r6, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
bl ov49_0225A03C
add r0, r5, #0
mov r1, #1
bl ov49_0225A53C
add sp, #0x50
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_0226016A:
ldr r1, [sp, #0x28]
add r0, r4, #0
bl ov49_02258F40
str r0, [sp, #0x3c]
cmp r0, #0
beq _022601C0
mov r1, #4
bl ov49_02258E60
add r6, r0, #0
cmp r6, #0xfe
beq _022601C0
add r0, r5, #0
bl ov49_0225A4F0
cmp r0, #0
bne _022601C0
lsl r1, r6, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
bl ov49_0225A084
cmp r0, #0
bne _022601C0
add r0, r5, #0
add r1, r6, #0
mov r2, #1
bl ov49_0225A428
ldr r0, [sp, #0x3c]
bl ov49_02258F3C
ldr r1, [sp, #0x30]
mov r2, #0
str r0, [r1]
ldr r1, [sp, #0x3c]
add r0, r4, #0
bl ov49_02258EEC
add sp, #0x50
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_022601C0:
ldr r0, _0226021C ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #1
lsl r0, r0, #0xa
tst r0, r1
beq _0226020A
add r0, r5, #0
bl ov49_0225A4F0
cmp r0, #0
bne _022601EE
ldr r0, [sp, #0x18]
bl ov45_0222A53C
add r1, r0, #0
add r0, r5, #0
mov r2, #0
bl ov49_0225A428
ldr r0, _0226022C ; =0x000005DC
bl PlaySE
b _02260204
_022601EE:
add r0, r5, #0
bl ov49_0225A4E0
cmp r0, r7
bne _02260204
add r0, r5, #0
bl ov49_0225A4D0
ldr r0, _0226022C ; =0x000005DC
bl PlaySE
_02260204:
add sp, #0x50
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_0226020A:
mov r0, #0
add sp, #0x50
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02260210: .word ov49_02269D20
_02260214: .word ov49_02269B80
_02260218: .word ov49_02269B70
_0226021C: .word gSystem
_02260220: .word ov49_02269B60
_02260224: .word ov49_02269C90
_02260228: .word ov49_02269C60
_0226022C: .word 0x000005DC
thumb_func_end ov49_0225FDCC
thumb_func_start ov49_02260230
ov49_02260230: ; 0x02260230
push {r4, lr}
add r4, r1, #0
add r0, r4, #0
bl ov49_02259FF0
bl ov49_02258DAC
mov r1, #5
bl ov49_02258E60
cmp r0, #0
beq _02260250
add r0, r4, #0
mov r1, #1
bl ov49_0225A53C
_02260250:
mov r0, #0
pop {r4, pc}
thumb_func_end ov49_02260230
thumb_func_start ov49_02260254
ov49_02260254: ; 0x02260254
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r1, #0
add r7, r2, #0
bl ov49_0225EF88
cmp r0, #9
bhi _022602FC
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02260270: ; jump table
.short _02260284 - _02260270 - 2 ; case 0
.short _022602C6 - _02260270 - 2 ; case 1
.short _022602D8 - _02260270 - 2 ; case 2
.short _022602F2 - _02260270 - 2 ; case 3
.short _02260306 - _02260270 - 2 ; case 4
.short _02260314 - _02260270 - 2 ; case 5
.short _02260350 - _02260270 - 2 ; case 6
.short _02260384 - _02260270 - 2 ; case 7
.short _022603B6 - _02260270 - 2 ; case 8
.short _022603D6 - _02260270 - 2 ; case 9
_02260284:
add r0, r4, #0
bl ov49_02259FF0
add r6, r0, #0
bl ov49_02258DAC
add r1, r0, #0
add r0, r6, #0
mov r2, #0
bl ov49_02258EEC
add r0, r4, #0
bl ov49_02259FE8
mov r1, #0xb
bl ov45_0222A5E8
ldr r0, _02260420 ; =0x000005DD
bl PlaySE
add r0, r4, #0
mov r1, #1
mov r2, #0x41
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
bl ov49_0225EF90
b _0226041A
_022602C6:
add r0, r4, #0
bl ov49_0225A0AC
cmp r0, #1
bne _022602FC
add r0, r5, #0
bl ov49_0225EF90
b _0226041A
_022602D8:
add r0, r4, #0
mov r1, #2
mov r2, #0x19
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
bl ov49_0225EF90
b _0226041A
_022602F2:
add r0, r4, #0
bl ov49_0225A0AC
cmp r0, #1
beq _022602FE
_022602FC:
b _0226041A
_022602FE:
add r0, r5, #0
bl ov49_0225EF90
b _0226041A
_02260306:
add r0, r4, #0
bl ov49_0225A294
add r0, r5, #0
bl ov49_0225EF90
b _0226041A
_02260314:
add r0, r4, #0
mov r6, #0
bl ov49_0225A2C4
cmp r0, #0
beq _02260328
cmp r0, #1
beq _02260334
cmp r0, #2
b _0226033E
_02260328:
add r0, r5, #0
mov r1, #6
bl ov49_0225EF8C
mov r6, #1
b _0226033E
_02260334:
add r0, r5, #0
mov r1, #8
bl ov49_0225EF8C
mov r6, #1
_0226033E:
cmp r6, #1
bne _0226041A
add r0, r4, #0
bl ov49_0225A2F8
add r0, r4, #0
bl ov49_0225A0EC
b _0226041A
_02260350:
add r0, r4, #0
mov r1, #0
bl ov49_0225A018
add r0, r4, #0
bl ov49_02259FF0
add r6, r0, #0
bl ov49_02258DAC
add r7, r0, #0
add r0, r4, #0
bl ov49_0225A008
bl ov49_0225CC44
add r0, r6, #0
add r1, r7, #0
mov r2, #3
bl ov49_02258EEC
add r0, r5, #0
mov r1, #7
bl ov49_0225EF8C
b _0226041A
_02260384:
add r0, r4, #0
bl ov49_02259FF0
bl ov49_02258DAC
bl ov49_02258F38
cmp r0, #1
bne _0226041A
add r0, r4, #0
mov r1, #1
bl ov49_0225A034
add r0, r4, #0
mov r1, #0
bl ov49_0225A038
add r0, r4, #0
bl ov49_02259FE8
mov r1, #0xb
bl ov45_0222A5E8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_022603B6:
add r0, r4, #0
bl ov49_02259FF0
add r4, r0, #0
bl ov49_02258DAC
add r1, r0, #0
add r0, r4, #0
mov r2, #2
mov r3, #0
bl ov49_02258EAC
add r0, r5, #0
bl ov49_0225EF90
b _0226041A
_022603D6:
add r0, r4, #0
bl ov49_02259FE8
mov r1, #1
bl ov45_0222A5E8
add r0, r4, #0
bl ov49_02259FF0
add r5, r0, #0
add r0, r4, #0
bl ov49_0225A010
add r4, r0, #0
add r0, r5, #0
bl ov49_02258DAC
mov r1, #5
add r6, r0, #0
bl ov49_02258E60
cmp r0, #0
bne _0226041A
add r0, r5, #0
add r1, r6, #0
mov r2, #1
bl ov49_02258EEC
ldr r2, _02260424 ; =ov49_02269B38
add r0, r4, #0
add r1, r7, #0
mov r3, #0
bl ov49_0225EF98
_0226041A:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_02260420: .word 0x000005DD
_02260424: .word ov49_02269B38
thumb_func_end ov49_02260254
thumb_func_start ov49_02260428
ov49_02260428: ; 0x02260428
push {r4, r5, r6, r7, lr}
sub sp, #0x44
add r4, r1, #0
add r5, r0, #0
str r2, [sp, #0x10]
add r0, r4, #0
bl ov49_02259FF0
ldr r1, [sp, #0x10]
str r0, [sp, #0x28]
bl ov49_02258D70
add r7, r0, #0
add r0, r4, #0
bl ov49_0225A040
str r0, [sp, #0x20]
add r0, r5, #0
bl ov49_0225EF84
add r6, r0, #0
add r0, r4, #0
bl ov49_02259FE8
str r0, [sp, #0x24]
add r0, r5, #0
bl ov49_0225EF88
cmp r0, #8
bls _02260466
b _022607B8
_02260466:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02260472: ; jump table
.short _02260484 - _02260472 - 2 ; case 0
.short _02260544 - _02260472 - 2 ; case 1
.short _022605E2 - _02260472 - 2 ; case 2
.short _022606B0 - _02260472 - 2 ; case 3
.short _02260702 - _02260472 - 2 ; case 4
.short _0226071A - _02260472 - 2 ; case 5
.short _02260740 - _02260472 - 2 ; case 6
.short _0226075A - _02260472 - 2 ; case 7
.short _02260788 - _02260472 - 2 ; case 8
_02260484:
add r0, r5, #0
mov r1, #0xc
bl ov49_0225EF40
add r4, r0, #0
ldr r0, [sp, #0x20]
bl ov49_02260C58
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #3
bhi _022604C8
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_022604A8: ; jump table
.short _022604B0 - _022604A8 - 2 ; case 0
.short _022604B6 - _022604A8 - 2 ; case 1
.short _022604BC - _022604A8 - 2 ; case 2
.short _022604C2 - _022604A8 - 2 ; case 3
_022604B0:
mov r0, #3
str r0, [r4, #8]
b _022604D0
_022604B6:
mov r0, #4
str r0, [r4, #8]
b _022604D0
_022604BC:
mov r0, #5
str r0, [r4, #8]
b _022604D0
_022604C2:
mov r0, #6
str r0, [r4, #8]
b _022604D0
_022604C8:
bl GF_AssertFail
mov r0, #5
str r0, [r4, #8]
_022604D0:
ldr r0, [sp, #0x24]
bl ov45_0222A330
cmp r0, #1
bne _022604EC
mov r0, #0x16
strh r0, [r4, #4]
mov r0, #0
strh r0, [r4, #6]
add r0, r5, #0
mov r1, #5
bl ov49_0225EF8C
b _022607B8
_022604EC:
ldr r0, [sp, #0x24]
bl ov45_0222A208
cmp r0, #1
bne _02260508
mov r0, #0x48
strh r0, [r4, #4]
mov r0, #1
strh r0, [r4, #6]
add r0, r5, #0
mov r1, #5
bl ov49_0225EF8C
b _022607B8
_02260508:
ldr r0, [sp, #0x20]
bl ov49_02260C58
lsl r0, r0, #0x18
lsr r6, r0, #0x18
add r0, r6, #0
bl ov45_0222EBF0
cmp r0, #0
bne _0226052E
mov r0, #0x14
strh r0, [r4, #4]
mov r0, #0
strh r0, [r4, #6]
add r0, r5, #0
mov r1, #3
bl ov49_0225EF8C
b _022607B8
_0226052E:
add r0, r6, #0
bl ov45_0222EB38
cmp r0, #0
bne _0226053C
bl GF_AssertFail
_0226053C:
add r0, r5, #0
bl ov49_0225EF90
b _022607B8
_02260544:
bl ov45_0222EB74
cmp r0, #1
bne _022605CA
add r0, r5, #0
mov r1, #2
bl ov49_0225EF8C
add r1, sp, #0x40
mov r0, #0
strb r0, [r1]
strb r0, [r1, #1]
strb r0, [r1, #2]
strb r0, [r1, #3]
add r0, r4, #0
bl ov49_02259FE8
add r7, r0, #0
bl ov45_0222AB68
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x1c]
ldr r0, [r6, #8]
sub r0, r0, #5
cmp r0, #1
bhi _022605A4
mov r5, #0
add r4, r5, #0
_0226057E:
add r0, r7, #0
add r1, r4, #0
bl ov45_0222AB78
mov r1, #0
mvn r1, r1
cmp r0, r1
beq _0226059C
cmp r5, #4
bhs _02260596
add r1, sp, #0x40
strb r0, [r1, r5]
_02260596:
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
_0226059C:
add r4, r4, #1
cmp r4, #4
blt _0226057E
b _022605AA
_022605A4:
ldr r0, [sp, #0x10]
add r1, sp, #0x38
strb r0, [r1, #8]
_022605AA:
add r3, sp, #0x38
ldrb r0, [r3, #9]
str r0, [sp]
ldrb r0, [r3, #0xa]
str r0, [sp, #4]
ldrb r0, [r3, #0xb]
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
ldrb r3, [r3, #8]
ldr r1, [r6, #8]
ldr r2, [sp, #0x1c]
add r0, r7, #0
bl ov45_0222AC14
b _022607B8
_022605CA:
cmp r0, #2
beq _022605D0
b _022607B8
_022605D0:
mov r0, #0x14
strh r0, [r6, #4]
mov r0, #0
strh r0, [r6, #6]
add r0, r5, #0
mov r1, #3
bl ov49_0225EF8C
b _022607B8
_022605E2:
ldr r0, [sp, #0x20]
bl ov49_02260CC0
str r0, [sp, #0x2c]
ldr r0, [sp, #0x20]
bl ov49_02260D28
str r0, [sp, #0x30]
add r0, r4, #0
mov r1, #1
bl ov49_0225A034
ldr r1, [sp, #0x2c]
add r0, r4, #0
lsl r1, r1, #0x18
lsr r1, r1, #0x18
bl ov49_0225A038
add r0, r4, #0
bl ov49_02259FE8
ldr r1, [sp, #0x30]
bl ov45_0222A5E8
ldr r0, [r6, #8]
cmp r0, #6
bhi _02260644
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02260624: ; jump table
.short _02260644 - _02260624 - 2 ; case 0
.short _02260644 - _02260624 - 2 ; case 1
.short _02260644 - _02260624 - 2 ; case 2
.short _02260632 - _02260624 - 2 ; case 3
.short _02260632 - _02260624 - 2 ; case 4
.short _02260638 - _02260624 - 2 ; case 5
.short _0226063E - _02260624 - 2 ; case 6
_02260632:
mov r0, #5
str r0, [sp, #0x18]
b _02260648
_02260638:
mov r0, #3
str r0, [sp, #0x18]
b _02260648
_0226063E:
mov r0, #4
str r0, [sp, #0x18]
b _02260648
_02260644:
bl GF_AssertFail
_02260648:
ldr r0, [sp, #0x24]
ldr r1, [sp, #0x18]
bl ov45_0222B118
add r0, r7, #0
mov r1, #6
bl ov49_02258E60
bl ov42_022282A4
str r0, [sp, #0x34]
add r0, r4, #0
bl ov49_02259FEC
add r4, r0, #0
add r0, r7, #0
bl ov49_02258E34
add r1, sp, #0x38
strh r0, [r1]
lsr r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
mov r0, #1
strh r0, [r4, #6]
mov r0, #4
ldrsh r2, [r1, r0]
asr r0, r2, #3
lsr r0, r0, #0x1c
add r0, r2, r0
asr r0, r0, #4
strh r0, [r4]
mov r0, #6
ldrsh r1, [r1, r0]
asr r0, r1, #3
lsr r0, r0, #0x1c
add r0, r1, r0
asr r0, r0, #4
strh r0, [r4, #2]
ldr r0, [sp, #0x34]
strh r0, [r4, #4]
ldr r0, [r6, #8]
strh r0, [r4, #8]
add r0, r5, #0
bl ov49_0225EF68
add sp, #0x44
mov r0, #1
pop {r4, r5, r6, r7, pc}
_022606B0:
add r0, r7, #0
mov r1, #6
bl ov49_02258E60
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #3
bhi _022606EC
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_022606CC: ; jump table
.short _022606D4 - _022606CC - 2 ; case 0
.short _022606DA - _022606CC - 2 ; case 1
.short _022606E0 - _022606CC - 2 ; case 2
.short _022606E6 - _022606CC - 2 ; case 3
_022606D4:
mov r0, #6
str r0, [sp, #0x14]
b _022606F0
_022606DA:
mov r0, #5
str r0, [sp, #0x14]
b _022606F0
_022606E0:
mov r0, #8
str r0, [sp, #0x14]
b _022606F0
_022606E6:
mov r0, #7
str r0, [sp, #0x14]
b _022606F0
_022606EC:
bl GF_AssertFail
_022606F0:
ldr r0, [sp, #0x28]
ldr r2, [sp, #0x14]
add r1, r7, #0
bl ov49_02258EEC
add r0, r5, #0
bl ov49_0225EF90
b _022607B8
_02260702:
add r0, r7, #0
bl ov49_02258F38
cmp r0, #1
bne _022607B8
mov r0, #8
str r0, [r6]
add r0, r5, #0
mov r1, #7
bl ov49_0225EF8C
b _022607B8
_0226071A:
add r0, r7, #0
mov r1, #6
bl ov49_02258E60
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl ov42_022282A4
lsl r0, r0, #0x18
lsr r3, r0, #0x18
ldr r0, [sp, #0x28]
add r1, r7, #0
mov r2, #2
bl ov49_02258EAC
add r0, r5, #0
bl ov49_0225EF90
b _022607B8
_02260740:
add r0, r7, #0
mov r1, #5
bl ov49_02258E60
cmp r0, #0
bne _022607B8
mov r0, #8
str r0, [r6]
add r0, r5, #0
mov r1, #7
bl ov49_0225EF8C
b _022607B8
_0226075A:
ldr r0, [r6]
sub r0, r0, #1
str r0, [r6]
cmp r0, #0
bgt _022607B8
ldr r1, [r6, #8]
add r0, r4, #0
mov r2, #0
bl ov49_0225A37C
ldrh r1, [r6, #6]
ldrh r2, [r6, #4]
add r0, r4, #0
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
bl ov49_0225EF90
b _022607B8
_02260788:
add r0, r4, #0
bl ov49_0225A0AC
cmp r0, #0
beq _022607B8
add r0, r5, #0
bl ov49_0225EF68
ldr r0, [sp, #0x28]
add r1, r7, #0
mov r2, #1
bl ov49_02258EEC
add r0, r4, #0
bl ov49_0225A0EC
add r0, r4, #0
bl ov49_0225A010
ldr r1, [sp, #0x10]
ldr r2, _022607C0 ; =ov49_02269B38
mov r3, #0
bl ov49_0225EF98
_022607B8:
mov r0, #0
add sp, #0x44
pop {r4, r5, r6, r7, pc}
nop
_022607C0: .word ov49_02269B38
thumb_func_end ov49_02260428
thumb_func_start ov49_022607C4
ov49_022607C4: ; 0x022607C4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x28
add r4, r1, #0
add r6, r0, #0
str r2, [sp]
bl ov49_0225EF84
add r7, r0, #0
add r0, r4, #0
bl ov49_0225A010
str r0, [sp, #0x14]
add r0, r4, #0
bl ov49_02259FF0
str r0, [sp, #0x18]
bl ov49_02258DAC
str r0, [sp, #0x10]
add r0, r4, #0
bl ov49_02259FE8
str r0, [sp, #0xc]
add r0, r6, #0
bl ov49_0225EF88
cmp r0, #7
bls _022607FE
b _02260A5A
_022607FE:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0226080A: ; jump table
.short _0226081A - _0226080A - 2 ; case 0
.short _0226088E - _0226080A - 2 ; case 1
.short _022608A8 - _0226080A - 2 ; case 2
.short _0226095E - _0226080A - 2 ; case 3
.short _0226097E - _0226080A - 2 ; case 4
.short _02260992 - _0226080A - 2 ; case 5
.short _02260A16 - _0226080A - 2 ; case 6
.short _02260A2E - _0226080A - 2 ; case 7
_0226081A:
add r0, r6, #0
mov r1, #4
bl ov49_0225EF40
add r5, r0, #0
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x10]
mov r2, #0
bl ov49_02258EEC
add r0, r6, #0
bl ov49_0225EF90
mov r0, #0
strb r0, [r5]
add r0, r4, #0
bl ov49_0225A040
cmp r0, #0x1e
beq _0226084C
cmp r0, #0x1f
beq _02260858
cmp r0, #0x20
beq _02260864
b _02260870
_0226084C:
mov r0, #0
strb r0, [r5, #1]
strb r0, [r5, #2]
mov r0, #2
strb r0, [r5, #3]
b _02260874
_02260858:
mov r0, #1
strb r0, [r5, #1]
strb r0, [r5, #2]
mov r0, #3
strb r0, [r5, #3]
b _02260874
_02260864:
mov r0, #2
strb r0, [r5, #1]
strb r0, [r5, #2]
mov r0, #4
strb r0, [r5, #3]
b _02260874
_02260870:
bl GF_AssertFail
_02260874:
add r0, r4, #0
bl ov49_02259FE8
mov r1, #0xc
bl ov45_0222A5E8
ldr r0, [sp, #0x14]
ldr r1, [sp]
ldr r2, _02260A60 ; =ov49_02269B88
add r3, r5, #0
bl ov49_0225EFC4
b _02260A5A
_0226088E:
ldrb r0, [r7]
cmp r0, #8
bne _0226089E
add r0, r6, #0
mov r1, #2
bl ov49_0225EF8C
b _02260A5A
_0226089E:
add r0, r6, #0
mov r1, #3
bl ov49_0225EF8C
b _02260A5A
_022608A8:
add r0, r4, #0
bl ov49_0225A040
cmp r0, #0x1e
beq _022608BC
cmp r0, #0x1f
beq _022608C4
cmp r0, #0x20
beq _022608CC
b _022608D2
_022608BC:
mov r0, #0
mov r5, #3
str r0, [sp, #8]
b _022608D2
_022608C4:
mov r0, #1
mov r5, #4
str r0, [sp, #8]
b _022608D2
_022608CC:
mov r0, #2
mov r5, #5
str r0, [sp, #8]
_022608D2:
add r0, r4, #0
mov r1, #1
bl ov49_0225A034
lsl r1, r5, #0x18
add r0, r4, #0
lsr r1, r1, #0x18
bl ov49_0225A038
ldr r0, [sp, #0xc]
bl ov45_0222B108
ldr r0, [sp, #0xc]
ldr r1, [sp, #8]
bl ov45_0222B118
ldr r0, [sp, #0x10]
mov r1, #6
bl ov49_02258E60
bl ov42_022282A4
str r0, [sp, #0x1c]
add r0, r4, #0
bl ov49_02259FEC
add r5, r0, #0
ldr r0, [sp, #0x10]
bl ov49_02258E34
add r1, sp, #0x20
strh r0, [r1]
lsr r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
mov r0, #2
strh r0, [r5, #6]
mov r0, #4
ldrsh r0, [r1, r0]
asr r2, r0, #3
lsr r2, r2, #0x1c
add r2, r0, r2
asr r0, r2, #4
strh r0, [r5]
mov r0, #6
ldrsh r1, [r1, r0]
asr r0, r1, #3
lsr r0, r0, #0x1c
add r0, r1, r0
asr r0, r0, #4
strh r0, [r5, #2]
ldr r0, [sp, #0x1c]
strh r0, [r5, #4]
ldrb r0, [r7, #2]
strh r0, [r5, #8]
add r0, r4, #0
bl ov49_02259FE8
mov r1, #1
bl ov45_0222A4C8
add r0, r6, #0
bl ov49_0225EF68
add sp, #0x28
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_0226095E:
ldr r0, [sp, #0x10]
mov r1, #6
bl ov49_02258E60
bl ov42_022282A4
add r3, r0, #0
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x10]
mov r2, #2
bl ov49_02258EAC
add r0, r6, #0
bl ov49_0225EF90
b _02260A5A
_0226097E:
ldr r0, [sp, #0x10]
mov r1, #5
bl ov49_02258E60
cmp r0, #0
bne _02260A5A
add r0, r6, #0
bl ov49_0225EF90
b _02260A5A
_02260992:
mov r0, #1
str r0, [sp, #4]
ldrb r0, [r7]
cmp r0, #7
bhi _022609E8
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_022609A8: ; jump table
.short _022609B8 - _022609A8 - 2 ; case 0
.short _022609C6 - _022609A8 - 2 ; case 1
.short _022609CA - _022609A8 - 2 ; case 2
.short _022609D8 - _022609A8 - 2 ; case 3
.short _022609DC - _022609A8 - 2 ; case 4
.short _022609E8 - _022609A8 - 2 ; case 5
.short _022609E0 - _022609A8 - 2 ; case 6
.short _022609E4 - _022609A8 - 2 ; case 7
_022609B8:
ldrb r1, [r7, #2]
add r0, r4, #0
mov r2, #0
bl ov49_0225A37C
mov r5, #4
b _022609EC
_022609C6:
mov r5, #5
b _022609EC
_022609CA:
ldrb r1, [r7, #2]
add r0, r4, #0
mov r2, #0
bl ov49_0225A37C
mov r5, #6
b _022609EC
_022609D8:
mov r5, #0x13
b _022609EC
_022609DC:
mov r5, #0x11
b _022609EC
_022609E0:
mov r5, #0x1d
b _022609EC
_022609E4:
mov r5, #7
b _022609EC
_022609E8:
mov r0, #0
str r0, [sp, #4]
_022609EC:
ldr r0, [sp, #4]
cmp r0, #0
beq _02260A0C
add r0, r4, #0
mov r1, #0
add r2, r5, #0
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
add r0, r6, #0
bl ov49_0225EF90
b _02260A5A
_02260A0C:
add r0, r6, #0
mov r1, #7
bl ov49_0225EF8C
b _02260A5A
_02260A16:
add r0, r4, #0
bl ov49_0225A0AC
cmp r0, #1
bne _02260A5A
add r0, r4, #0
bl ov49_0225A0EC
add r0, r6, #0
bl ov49_0225EF90
b _02260A5A
_02260A2E:
add r0, r6, #0
bl ov49_0225EF68
add r0, r4, #0
bl ov49_02259FE8
mov r1, #1
bl ov45_0222A5E8
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x10]
mov r2, #1
bl ov49_02258EEC
add r0, r4, #0
bl ov49_0225A010
ldr r1, [sp]
ldr r2, _02260A64 ; =ov49_02269B38
mov r3, #0
bl ov49_0225EF98
_02260A5A:
mov r0, #0
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02260A60: .word ov49_02269B88
_02260A64: .word ov49_02269B38
thumb_func_end ov49_022607C4
thumb_func_start ov49_02260A68
ov49_02260A68: ; 0x02260A68
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r4, r1, #0
add r5, r0, #0
str r2, [sp]
bl ov49_0225EF84
str r0, [sp, #8]
add r0, r4, #0
bl ov49_0225A010
add r0, r4, #0
bl ov49_02259FF0
str r0, [sp, #0xc]
bl ov49_02258DAC
add r6, r0, #0
add r0, r4, #0
bl ov49_02259FE8
add r7, r0, #0
add r0, r5, #0
bl ov49_0225EF88
cmp r0, #6
bls _02260AA0
b _02260C4A
_02260AA0:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02260AAC: ; jump table
.short _02260ABA - _02260AAC - 2 ; case 0
.short _02260B1E - _02260AAC - 2 ; case 1
.short _02260BB4 - _02260AAC - 2 ; case 2
.short _02260BD4 - _02260AAC - 2 ; case 3
.short _02260BE8 - _02260AAC - 2 ; case 4
.short _02260C04 - _02260AAC - 2 ; case 5
.short _02260C1C - _02260AAC - 2 ; case 6
_02260ABA:
add r0, r5, #0
mov r1, #0xc
bl ov49_0225EF40
add r6, r0, #0
add r0, r4, #0
bl ov49_02259FE8
mov r1, #0xd
bl ov45_0222A5E8
add r0, r7, #0
bl ov45_0222A330
cmp r0, #1
bne _02260AE8
mov r0, #0x7a
strh r0, [r6]
add r0, r5, #0
mov r1, #2
bl ov49_0225EF8C
b _02260C4E
_02260AE8:
add r0, r7, #0
bl ov45_0222A3A0
cmp r0, #1
bne _02260AF8
mov r0, #0xa
strh r0, [r6, #2]
b _02260B14
_02260AF8:
add r0, r7, #0
bl ov45_0222A2E0
cmp r0, #1
bne _02260B10
mov r0, #0x62
strh r0, [r6]
add r0, r5, #0
mov r1, #2
bl ov49_0225EF8C
b _02260C4E
_02260B10:
mov r0, #9
strh r0, [r6, #2]
_02260B14:
add r0, r5, #0
mov r1, #1
bl ov49_0225EF8C
b _02260C4E
_02260B1E:
ldr r0, [sp, #8]
ldrh r0, [r0, #2]
cmp r0, #9
bne _02260B2C
mov r0, #9
str r0, [sp, #4]
b _02260B36
_02260B2C:
mov r0, #0xa
str r0, [sp, #4]
add r0, r7, #0
bl ov45_0222A310
_02260B36:
add r0, r4, #0
mov r1, #1
bl ov49_0225A034
ldr r1, [sp, #4]
add r0, r4, #0
lsl r1, r1, #0x18
lsr r1, r1, #0x18
bl ov49_0225A038
mov r1, #0x17
add r2, r1, #0
add r0, r7, #0
sub r2, #0x18
bl ov45_0222A704
add r0, r6, #0
mov r1, #6
bl ov49_02258E60
bl ov42_022282A4
add r7, r0, #0
add r0, r4, #0
bl ov49_02259FEC
add r4, r0, #0
add r0, r6, #0
bl ov49_02258E34
add r1, sp, #0x10
strh r0, [r1]
lsr r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
mov r0, #3
strh r0, [r4, #6]
mov r0, #4
ldrsh r2, [r1, r0]
asr r0, r2, #3
lsr r0, r0, #0x1c
add r0, r2, r0
asr r0, r0, #4
strh r0, [r4]
mov r0, #6
ldrsh r1, [r1, r0]
asr r0, r1, #3
lsr r0, r0, #0x1c
add r0, r1, r0
asr r0, r0, #4
strh r0, [r4, #2]
strh r7, [r4, #4]
mov r0, #0
strh r0, [r4, #8]
add r0, r5, #0
bl ov49_0225EF68
add sp, #0x18
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_02260BB4:
add r0, r6, #0
mov r1, #6
bl ov49_02258E60
bl ov42_022282A4
add r3, r0, #0
ldr r0, [sp, #0xc]
add r1, r6, #0
mov r2, #2
bl ov49_02258EAC
add r0, r5, #0
bl ov49_0225EF90
b _02260C4E
_02260BD4:
add r0, r6, #0
mov r1, #5
bl ov49_02258E60
cmp r0, #0
bne _02260C4E
add r0, r5, #0
bl ov49_0225EF90
b _02260C4E
_02260BE8:
ldr r2, [sp, #8]
add r0, r4, #0
ldrh r2, [r2]
mov r1, #1
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
bl ov49_0225EF90
b _02260C4E
_02260C04:
add r0, r4, #0
bl ov49_0225A0AC
cmp r0, #1
bne _02260C4E
add r0, r4, #0
bl ov49_0225A0EC
add r0, r5, #0
bl ov49_0225EF90
b _02260C4E
_02260C1C:
add r0, r5, #0
bl ov49_0225EF68
add r0, r4, #0
bl ov49_02259FE8
mov r1, #1
bl ov45_0222A5E8
ldr r0, [sp, #0xc]
add r1, r6, #0
mov r2, #1
bl ov49_02258EEC
add r0, r4, #0
bl ov49_0225A010
ldr r1, [sp]
ldr r2, _02260C54 ; =ov49_02269B38
mov r3, #0
bl ov49_0225EF98
b _02260C4E
_02260C4A:
bl GF_AssertFail
_02260C4E:
mov r0, #0
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02260C54: .word ov49_02269B38
thumb_func_end ov49_02260A68
thumb_func_start ov49_02260C58
ov49_02260C58: ; 0x02260C58
push {r3, lr}
cmp r0, #0x1d
bhi _02260CB6
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02260C6A: ; jump table
.short _02260CB6 - _02260C6A - 2 ; case 0
.short _02260CB6 - _02260C6A - 2 ; case 1
.short _02260CB6 - _02260C6A - 2 ; case 2
.short _02260CB6 - _02260C6A - 2 ; case 3
.short _02260CB6 - _02260C6A - 2 ; case 4
.short _02260CB6 - _02260C6A - 2 ; case 5
.short _02260CAE - _02260C6A - 2 ; case 6
.short _02260CAE - _02260C6A - 2 ; case 7
.short _02260CAE - _02260C6A - 2 ; case 8
.short _02260CAE - _02260C6A - 2 ; case 9
.short _02260CAE - _02260C6A - 2 ; case 10
.short _02260CAE - _02260C6A - 2 ; case 11
.short _02260CAE - _02260C6A - 2 ; case 12
.short _02260CAE - _02260C6A - 2 ; case 13
.short _02260CB2 - _02260C6A - 2 ; case 14
.short _02260CB2 - _02260C6A - 2 ; case 15
.short _02260CB2 - _02260C6A - 2 ; case 16
.short _02260CB2 - _02260C6A - 2 ; case 17
.short _02260CB2 - _02260C6A - 2 ; case 18
.short _02260CB2 - _02260C6A - 2 ; case 19
.short _02260CB2 - _02260C6A - 2 ; case 20
.short _02260CB2 - _02260C6A - 2 ; case 21
.short _02260CA6 - _02260C6A - 2 ; case 22
.short _02260CA6 - _02260C6A - 2 ; case 23
.short _02260CA6 - _02260C6A - 2 ; case 24
.short _02260CA6 - _02260C6A - 2 ; case 25
.short _02260CAA - _02260C6A - 2 ; case 26
.short _02260CAA - _02260C6A - 2 ; case 27
.short _02260CAA - _02260C6A - 2 ; case 28
.short _02260CAA - _02260C6A - 2 ; case 29
_02260CA6:
mov r0, #2
pop {r3, pc}
_02260CAA:
mov r0, #3
pop {r3, pc}
_02260CAE:
mov r0, #0
pop {r3, pc}
_02260CB2:
mov r0, #1
pop {r3, pc}
_02260CB6:
bl GF_AssertFail
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_02260C58
thumb_func_start ov49_02260CC0
ov49_02260CC0: ; 0x02260CC0
push {r3, lr}
cmp r0, #0x1d
bhi _02260D1E
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02260CD2: ; jump table
.short _02260D1E - _02260CD2 - 2 ; case 0
.short _02260D1E - _02260CD2 - 2 ; case 1
.short _02260D1E - _02260CD2 - 2 ; case 2
.short _02260D1E - _02260CD2 - 2 ; case 3
.short _02260D1E - _02260CD2 - 2 ; case 4
.short _02260D1E - _02260CD2 - 2 ; case 5
.short _02260D16 - _02260CD2 - 2 ; case 6
.short _02260D16 - _02260CD2 - 2 ; case 7
.short _02260D16 - _02260CD2 - 2 ; case 8
.short _02260D16 - _02260CD2 - 2 ; case 9
.short _02260D16 - _02260CD2 - 2 ; case 10
.short _02260D16 - _02260CD2 - 2 ; case 11
.short _02260D16 - _02260CD2 - 2 ; case 12
.short _02260D16 - _02260CD2 - 2 ; case 13
.short _02260D1A - _02260CD2 - 2 ; case 14
.short _02260D1A - _02260CD2 - 2 ; case 15
.short _02260D1A - _02260CD2 - 2 ; case 16
.short _02260D1A - _02260CD2 - 2 ; case 17
.short _02260D1A - _02260CD2 - 2 ; case 18
.short _02260D1A - _02260CD2 - 2 ; case 19
.short _02260D1A - _02260CD2 - 2 ; case 20
.short _02260D1A - _02260CD2 - 2 ; case 21
.short _02260D0E - _02260CD2 - 2 ; case 22
.short _02260D0E - _02260CD2 - 2 ; case 23
.short _02260D0E - _02260CD2 - 2 ; case 24
.short _02260D0E - _02260CD2 - 2 ; case 25
.short _02260D12 - _02260CD2 - 2 ; case 26
.short _02260D12 - _02260CD2 - 2 ; case 27
.short _02260D12 - _02260CD2 - 2 ; case 28
.short _02260D12 - _02260CD2 - 2 ; case 29
_02260D0E:
mov r0, #1
pop {r3, pc}
_02260D12:
mov r0, #2
pop {r3, pc}
_02260D16:
mov r0, #6
pop {r3, pc}
_02260D1A:
mov r0, #7
pop {r3, pc}
_02260D1E:
bl GF_AssertFail
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_02260CC0
thumb_func_start ov49_02260D28
ov49_02260D28: ; 0x02260D28
push {r3, lr}
cmp r0, #0x1d
bhi _02260D86
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02260D3A: ; jump table
.short _02260D86 - _02260D3A - 2 ; case 0
.short _02260D86 - _02260D3A - 2 ; case 1
.short _02260D86 - _02260D3A - 2 ; case 2
.short _02260D86 - _02260D3A - 2 ; case 3
.short _02260D86 - _02260D3A - 2 ; case 4
.short _02260D86 - _02260D3A - 2 ; case 5
.short _02260D7E - _02260D3A - 2 ; case 6
.short _02260D7E - _02260D3A - 2 ; case 7
.short _02260D7E - _02260D3A - 2 ; case 8
.short _02260D7E - _02260D3A - 2 ; case 9
.short _02260D7E - _02260D3A - 2 ; case 10
.short _02260D7E - _02260D3A - 2 ; case 11
.short _02260D7E - _02260D3A - 2 ; case 12
.short _02260D7E - _02260D3A - 2 ; case 13
.short _02260D82 - _02260D3A - 2 ; case 14
.short _02260D82 - _02260D3A - 2 ; case 15
.short _02260D82 - _02260D3A - 2 ; case 16
.short _02260D82 - _02260D3A - 2 ; case 17
.short _02260D82 - _02260D3A - 2 ; case 18
.short _02260D82 - _02260D3A - 2 ; case 19
.short _02260D82 - _02260D3A - 2 ; case 20
.short _02260D82 - _02260D3A - 2 ; case 21
.short _02260D76 - _02260D3A - 2 ; case 22
.short _02260D76 - _02260D3A - 2 ; case 23
.short _02260D76 - _02260D3A - 2 ; case 24
.short _02260D76 - _02260D3A - 2 ; case 25
.short _02260D7A - _02260D3A - 2 ; case 26
.short _02260D7A - _02260D3A - 2 ; case 27
.short _02260D7A - _02260D3A - 2 ; case 28
.short _02260D7A - _02260D3A - 2 ; case 29
_02260D76:
mov r0, #7
pop {r3, pc}
_02260D7A:
mov r0, #8
pop {r3, pc}
_02260D7E:
mov r0, #5
pop {r3, pc}
_02260D82:
mov r0, #6
pop {r3, pc}
_02260D86:
bl GF_AssertFail
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_02260D28
thumb_func_start ov49_02260D90
ov49_02260D90: ; 0x02260D90
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
bl ov49_0225EF88
cmp r0, #0
beq _02260DA4
cmp r0, #1
beq _02260DFA
b _02260E24
_02260DA4:
add r0, r4, #0
bl ov49_02259FE8
add r6, r0, #0
bl ov45_0222A330
cmp r0, #1
bne _02260DC2
add r0, r4, #0
mov r1, #1
mov r2, #3
bl ov49_0225A30C
add r1, r0, #0
b _02260DE6
_02260DC2:
add r0, r6, #0
bl ov45_0222A374
cmp r0, #1
bne _02260DDA
add r0, r4, #0
mov r1, #1
mov r2, #0x4e
bl ov49_0225A30C
add r1, r0, #0
b _02260DE6
_02260DDA:
add r0, r4, #0
mov r1, #1
mov r2, #2
bl ov49_0225A30C
add r1, r0, #0
_02260DE6:
add r0, r4, #0
bl ov49_0225A08C
ldr r0, _02260E28 ; =0x000005DC
bl PlaySE
add r0, r5, #0
bl ov49_0225EF90
b _02260E24
_02260DFA:
add r0, r4, #0
bl ov49_0225A0AC
cmp r0, #0
beq _02260E24
add r0, r4, #0
bl ov49_0225A0EC
add r0, r4, #0
bl ov49_02259FF0
add r4, r0, #0
bl ov49_02258DAC
add r1, r0, #0
add r0, r4, #0
mov r2, #1
bl ov49_02258EEC
mov r0, #1
pop {r4, r5, r6, pc}
_02260E24:
mov r0, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_02260E28: .word 0x000005DC
thumb_func_end ov49_02260D90
thumb_func_start ov49_02260E2C
ov49_02260E2C: ; 0x02260E2C
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r1, #0
add r6, r0, #0
add r0, r5, #0
str r2, [sp]
bl ov49_02259FF0
str r0, [sp, #8]
add r0, r5, #0
bl ov49_02259FF8
add r7, r0, #0
add r0, r5, #0
bl ov49_0225A008
str r0, [sp, #0xc]
add r0, r5, #0
bl ov49_02259FE8
str r0, [sp, #4]
add r0, r6, #0
bl ov49_0225EF84
add r4, r0, #0
add r0, r6, #0
bl ov49_0225EF88
cmp r0, #0xf
bls _02260E6A
b _022611C0
_02260E6A:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02260E76: ; jump table
.short _02260E96 - _02260E76 - 2 ; case 0
.short _02260EDE - _02260E76 - 2 ; case 1
.short _02260F52 - _02260E76 - 2 ; case 2
.short _02260FE2 - _02260E76 - 2 ; case 3
.short _02261016 - _02260E76 - 2 ; case 4
.short _02261046 - _02260E76 - 2 ; case 5
.short _02261082 - _02260E76 - 2 ; case 6
.short _02261098 - _02260E76 - 2 ; case 7
.short _022610B0 - _02260E76 - 2 ; case 8
.short _022610D0 - _02260E76 - 2 ; case 9
.short _022610F0 - _02260E76 - 2 ; case 10
.short _02261110 - _02260E76 - 2 ; case 11
.short _02261124 - _02260E76 - 2 ; case 12
.short _02261134 - _02260E76 - 2 ; case 13
.short _02261180 - _02260E76 - 2 ; case 14
.short _02261196 - _02260E76 - 2 ; case 15
_02260E96:
add r0, r6, #0
mov r1, #0x18
bl ov49_0225EF40
add r4, r0, #0
ldr r0, [sp, #8]
ldr r1, [sp]
bl ov49_02258D70
str r0, [r4, #0xc]
add r0, r5, #0
bl ov49_0225A040
cmp r0, #0x21
beq _02260EBE
cmp r0, #0x22
beq _02260EC4
cmp r0, #0x23
beq _02260ECA
b _02260ED0
_02260EBE:
mov r0, #2
strh r0, [r4, #6]
b _02260ED4
_02260EC4:
mov r0, #1
strh r0, [r4, #6]
b _02260ED4
_02260ECA:
mov r0, #0
strh r0, [r4, #6]
b _02260ED4
_02260ED0:
bl GF_AssertFail
_02260ED4:
add r0, r6, #0
mov r1, #1
bl ov49_0225EF8C
b _022611C0
_02260EDE:
ldr r0, [sp, #4]
bl ov45_0222A374
cmp r0, #0
bne _02260EF6
mov r0, #8
strh r0, [r4, #4]
add r0, r6, #0
mov r1, #6
bl ov49_0225EF8C
b _022611C0
_02260EF6:
ldr r0, [sp, #4]
bl ov45_0222A330
cmp r0, #1
bne _02260F0E
mov r0, #0xa
strh r0, [r4, #4]
add r0, r6, #0
mov r1, #6
bl ov49_0225EF8C
b _022611C0
_02260F0E:
ldrh r2, [r4, #6]
ldr r0, [sp, #4]
ldr r1, [sp]
bl ov45_0222ADB8
mov r1, #0
mvn r1, r1
str r0, [r4]
cmp r0, r1
beq _02260F44
add r0, r6, #0
mov r1, #2
bl ov49_0225EF8C
add r0, r5, #0
mov r1, #0
mov r2, #0x1f
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A09C
add r0, r5, #0
bl ov49_0225A0BC
b _022611C0
_02260F44:
mov r0, #9
strh r0, [r4, #4]
add r0, r6, #0
mov r1, #6
bl ov49_0225EF8C
b _022611C0
_02260F52:
ldr r0, _022611C8 ; =gSystem
mov r1, #2
ldr r0, [r0, #0x48]
tst r1, r0
bne _02260F62
mov r1, #0x80
tst r0, r1
beq _02260F82
_02260F62:
ldr r0, [sp, #4]
ldr r1, [sp]
bl ov45_0222ADC8
add r0, r5, #0
bl ov49_0225A0CC
mov r0, #6
strb r0, [r4, #0xa]
mov r0, #0xf
strh r0, [r4, #4]
add r0, r6, #0
mov r1, #0xc
bl ov49_0225EF8C
b _022611C0
_02260F82:
add r0, r4, #0
add r1, r7, #0
bl ov49_022611F4
cmp r0, #1
beq _02260F90
b _022611C0
_02260F90:
add r0, r5, #0
bl ov49_0225A0CC
ldr r0, [sp, #4]
bl ov45_0222AE44
mov r0, #0
strh r0, [r4, #8]
add r0, r5, #0
bl ov49_02259FE8
mov r1, #0xa
bl ov45_0222A5E8
add r0, r5, #0
bl ov49_0225A044
ldr r0, [sp, #0xc]
bl ov49_0225CC44
ldr r0, [r4, #0xc]
mov r1, #0
bl ov49_02259130
ldr r0, [r4, #0xc]
mov r1, #1
bl ov49_0225916C
ldr r0, _022611CC ; =0x000005C1
bl PlaySE
add r0, r5, #0
bl ov49_0225A510
mov r0, #3
strb r0, [r4, #0xa]
add r0, r6, #0
mov r1, #0xc
bl ov49_0225EF8C
b _022611C0
_02260FE2:
ldr r2, [sp, #0xc]
add r0, r4, #0
add r1, r7, #0
bl ov49_02261234
cmp r0, #1
bne _022610A4
ldr r0, [r4, #0xc]
mov r1, #0
bl ov49_0225916C
ldr r0, [r4, #0xc]
mov r1, #2
bl ov49_02259160
ldr r0, [r4, #0xc]
mov r1, #8
bl ov49_022591B4
add r0, r6, #0
mov r1, #4
bl ov49_0225EF8C
mov r0, #0
strh r0, [r4, #8]
b _022611C0
_02261016:
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl ov49_02261434
ldr r1, [sp, #0xc]
add r0, r4, #0
bl ov49_022611D4
add r0, r4, #0
add r1, r7, #0
bl ov49_022613AC
cmp r0, #1
bne _022610A4
add r0, r6, #0
mov r1, #5
bl ov49_0225EF8C
add r0, r5, #0
mov r1, #0
bl ov49_0225A53C
b _022611C0
_02261046:
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl ov49_02261434
ldr r1, [sp, #0xc]
add r0, r4, #0
bl ov49_022611D4
ldr r0, [r4, #0xc]
add r1, sp, #0x10
bl ov49_02259154
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl ov49_02261460
mov r0, #6
ldr r1, [sp, #0x10]
lsl r0, r0, #0x10
cmp r1, r0
bge _022610A4
mov r0, #0
strb r0, [r4, #0xb]
add r0, r6, #0
mov r1, #0xd
bl ov49_0225EF8C
b _022611C0
_02261082:
ldr r0, [sp, #8]
ldr r1, [r4, #0xc]
mov r2, #2
mov r3, #1
bl ov49_02258EAC
add r0, r6, #0
mov r1, #7
bl ov49_0225EF8C
b _022611C0
_02261098:
ldr r0, [r4, #0xc]
mov r1, #5
bl ov49_02258E60
cmp r0, #0
beq _022610A6
_022610A4:
b _022611C0
_022610A6:
ldrh r1, [r4, #4]
add r0, r6, #0
bl ov49_0225EF8C
b _022611C0
_022610B0:
add r0, r5, #0
mov r1, #0
mov r2, #0x1e
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0xf
strh r0, [r4, #4]
add r0, r6, #0
mov r1, #0xb
bl ov49_0225EF8C
b _022611C0
_022610D0:
add r0, r5, #0
mov r1, #0
mov r2, #0x20
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0xf
strh r0, [r4, #4]
add r0, r6, #0
mov r1, #0xb
bl ov49_0225EF8C
b _022611C0
_022610F0:
add r0, r5, #0
mov r1, #0
mov r2, #0x21
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0xf
strh r0, [r4, #4]
add r0, r6, #0
mov r1, #0xb
bl ov49_0225EF8C
b _022611C0
_02261110:
add r0, r5, #0
bl ov49_0225A0AC
cmp r0, #1
bne _022611C0
ldrh r1, [r4, #4]
add r0, r6, #0
bl ov49_0225EF8C
b _022611C0
_02261124:
add r0, r5, #0
bl ov49_0225A0EC
ldrb r1, [r4, #0xa]
add r0, r6, #0
bl ov49_0225EF8C
b _022611C0
_02261134:
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl ov49_02261434
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl ov49_02261460
ldrb r0, [r4, #0xb]
add r0, r0, #1
strb r0, [r4, #0xb]
ldrb r0, [r4, #0xb]
cmp r0, #0x78
bls _022611C0
add r0, r5, #0
mov r1, #1
bl ov49_0225A034
add r0, r5, #0
mov r1, #0
bl ov49_0225A038
add r0, r5, #0
bl ov49_0225A0EC
add r0, r5, #0
bl ov49_02259FE8
mov r1, #0xb
bl ov45_0222A5E8
add r0, r6, #0
mov r1, #0xe
bl ov49_0225EF8C
b _022611C0
_02261180:
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl ov49_02261434
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl ov49_02261460
b _022611C0
_02261196:
add r0, r5, #0
bl ov49_0225A010
add r7, r0, #0
add r0, r5, #0
bl ov49_0225A0EC
ldr r0, [sp, #8]
ldr r1, [r4, #0xc]
mov r2, #1
bl ov49_02258EEC
add r0, r6, #0
bl ov49_0225EF68
ldr r1, [sp]
ldr r2, _022611D0 ; =ov49_02269B38
add r0, r7, #0
mov r3, #0
bl ov49_0225EF98
_022611C0:
mov r0, #0
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_022611C8: .word gSystem
_022611CC: .word 0x000005C1
_022611D0: .word ov49_02269B38
thumb_func_end ov49_02260E2C
thumb_func_start ov49_022611D4
ov49_022611D4: ; 0x022611D4
push {r3, r4, lr}
sub sp, #0xc
ldr r0, [r0, #0xc]
add r4, r1, #0
add r1, sp, #0
bl ov49_02259154
ldr r1, [sp]
ldr r2, [sp, #4]
ldr r3, [sp, #8]
add r0, r4, #0
bl ov49_0225CC20
add sp, #0xc
pop {r3, r4, pc}
.balign 4, 0
thumb_func_end ov49_022611D4
thumb_func_start ov49_022611F4
ov49_022611F4: ; 0x022611F4
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r0, #0
ldr r0, [r5]
add r4, r1, #0
add r1, sp, #4
add r2, sp, #0
bl ov45_0222AE08
ldr r1, [sp, #4]
ldr r2, [sp]
add r0, r4, #0
add r3, sp, #8
bl ov49_0225E420
ldr r0, [r5, #0xc]
add r1, sp, #0x14
bl ov49_02259154
mov r0, #1
ldr r1, [sp, #0x14]
lsl r0, r0, #0x10
add r1, r1, r0
ldr r0, [sp, #8]
cmp r1, r0
blt _0226122E
add sp, #0x20
mov r0, #1
pop {r3, r4, r5, pc}
_0226122E:
mov r0, #0
add sp, #0x20
pop {r3, r4, r5, pc}
thumb_func_end ov49_022611F4
thumb_func_start ov49_02261234
ov49_02261234: ; 0x02261234
push {r4, r5, r6, r7, lr}
sub sp, #0x34
add r5, r0, #0
mov r0, #8
add r6, r1, #0
ldrsh r1, [r5, r0]
add r7, r2, #0
add r1, r1, #1
strh r1, [r5, #8]
ldrsh r0, [r5, r0]
cmp r0, #0x18
bge _02261250
mov r4, #0
b _02261256
_02261250:
mov r0, #0x18
strh r0, [r5, #8]
mov r4, #1
_02261256:
ldr r0, [r5]
add r1, sp, #0xc
add r2, sp, #8
bl ov45_0222AE08
ldr r1, [sp, #0xc]
ldr r2, [sp, #8]
add r0, r6, #0
add r3, sp, #0x1c
bl ov49_0225E420
ldr r0, [r5, #0xc]
bl ov49_02258E34
add r1, sp, #0
strh r0, [r1]
lsr r0, r0, #0x10
strh r0, [r1, #2]
ldrh r2, [r1]
add r0, sp, #4
strh r2, [r1, #4]
ldrh r2, [r1, #2]
strh r2, [r1, #6]
add r1, sp, #0x28
bl ov49_02258800
mov r0, #0
str r0, [sp, #0x10]
ldr r1, [sp, #0x20]
ldr r0, [sp, #0x2c]
sub r6, r1, r0
mov r0, #8
ldrsh r0, [r5, r0]
cmp r0, #0
ble _022612AE
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _022612BC
_022612AE:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_022612BC:
bl _ffix
asr r1, r0, #0x1f
asr r3, r6, #0x1f
add r2, r6, #0
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r0, r0, r2
adc r1, r3
lsl r1, r1, #0x14
lsr r0, r0, #0xc
orr r0, r1
mov r1, #6
lsl r1, r1, #0xe
bl FX_Div
str r0, [sp, #0x14]
mov r0, #8
ldrsh r2, [r5, r0]
cmp r2, #4
blt _02261342
ldr r1, [sp, #0x24]
ldr r0, [sp, #0x30]
sub r6, r1, r0
sub r0, r2, #4
cmp r0, #0
ble _0226130A
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _02261318
_0226130A:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_02261318:
bl _ffix
asr r1, r0, #0x1f
asr r3, r6, #0x1f
add r2, r6, #0
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r0, r0, r2
adc r1, r3
lsl r1, r1, #0x14
lsr r0, r0, #0xc
orr r0, r1
mov r1, #5
lsl r1, r1, #0xe
bl FX_Div
str r0, [sp, #0x18]
b _02261346
_02261342:
mov r0, #0
str r0, [sp, #0x18]
_02261346:
add r0, sp, #0x10
add r1, sp, #0x28
add r2, r0, #0
bl VEC_Add
ldr r1, [sp, #0x10]
ldr r2, [sp, #0x14]
ldr r3, [sp, #0x18]
add r0, r7, #0
bl ov49_0225CC20
mov r0, #8
ldrsh r1, [r5, r0]
ldr r0, _022613A4 ; =0x00007FFF
mul r0, r1
mov r1, #0x18
bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
asr r0, r0, #4
lsl r2, r0, #2
ldr r0, _022613A8 ; =FX_SinCosTable_
ldr r1, [sp, #0x14]
ldrsh r3, [r0, r2]
asr r0, r3, #0x1f
lsr r2, r3, #0x10
lsl r0, r0, #0x10
orr r0, r2
mov r2, #2
lsl r6, r3, #0x10
mov r3, #0
lsl r2, r2, #0xa
add r2, r6, r2
adc r0, r3
lsl r0, r0, #0x14
lsr r2, r2, #0xc
orr r2, r0
add r0, r1, r2
str r0, [sp, #0x14]
ldr r0, [r5, #0xc]
add r1, sp, #0x10
bl ov49_02259148
add r0, r4, #0
add sp, #0x34
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_022613A4: .word 0x00007FFF
_022613A8: .word FX_SinCosTable_
thumb_func_end ov49_02261234
thumb_func_start ov49_022613AC
ov49_022613AC: ; 0x022613AC
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #8
ldrsh r1, [r5, r0]
add r1, r1, #1
strh r1, [r5, #8]
ldrsh r0, [r5, r0]
cmp r0, #0x10
bge _022613C4
mov r6, #0
b _022613CA
_022613C4:
mov r0, #0x10
strh r0, [r5, #8]
mov r6, #1
_022613CA:
mov r0, #8
ldrsh r0, [r5, r0]
mov r3, #0
lsr r2, r0, #0x1f
lsl r1, r0, #0x1d
sub r1, r1, r2
mov r0, #0x1d
ror r1, r0
add r1, r2, r1
ldr r0, _0226142C ; =0x00007FFF
add r2, r1, #0
mul r2, r0
asr r0, r2, #2
lsr r0, r0, #0x1d
add r0, r2, r0
lsl r0, r0, #0xd
lsr r0, r0, #0x10
asr r0, r0, #4
lsl r1, r0, #2
ldr r0, _02261430 ; =FX_SinCosTable_
mov r2, #3
ldrsh r0, [r0, r1]
lsl r2, r2, #0xc
asr r1, r0, #0x1f
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r4, r2, #0xc
orr r4, r0
ldr r0, [r5, #0xc]
add r1, sp, #0
bl ov49_02259154
ldr r0, [sp, #4]
add r1, sp, #0
add r0, r0, r4
str r0, [sp, #4]
ldr r0, [r5, #0xc]
bl ov49_02259148
add r0, r6, #0
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_0226142C: .word 0x00007FFF
_02261430: .word FX_SinCosTable_
thumb_func_end ov49_022613AC
thumb_func_start ov49_02261434
ov49_02261434: ; 0x02261434
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
ldr r0, [r5]
add r4, r1, #0
add r1, sp, #0
add r2, sp, #4
bl ov45_0222AE08
ldr r1, [sp]
ldr r2, [sp, #4]
add r0, r4, #0
add r3, sp, #8
bl ov49_0225E420
ldr r0, [r5, #0xc]
add r1, sp, #8
bl ov49_02259148
add sp, #0x14
pop {r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_02261434
thumb_func_start ov49_02261460
ov49_02261460: ; 0x02261460
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
ldr r0, [r5]
add r4, r2, #0
add r1, sp, #4
add r2, sp, #0
bl ov45_0222AE08
ldr r1, [sp, #4]
add r0, r4, #0
bl ov49_0225A520
cmp r0, #1
bne _02261494
add r0, r5, #0
add r0, #0x10
bl ov49_0225F438
cmp r0, #0
bne _022614A8
add r0, r5, #0
add r0, #0x10
bl ov49_0225F374
b _022614A8
_02261494:
add r0, r5, #0
add r0, #0x10
bl ov49_0225F438
cmp r0, #1
bne _022614A8
add r0, r5, #0
add r0, #0x10
bl ov49_0225F430
_022614A8:
add r0, r5, #0
add r0, #0x10
bl ov49_0225F394
add r4, r0, #0
ldr r0, [r5, #0xc]
add r1, sp, #8
bl ov49_02259154
ldr r0, [sp, #0xc]
add r1, sp, #8
add r0, r0, r4
str r0, [sp, #0xc]
ldr r0, [r5, #0xc]
bl ov49_02259148
add sp, #0x14
pop {r4, r5, pc}
thumb_func_end ov49_02261460
thumb_func_start ov49_022614CC
ov49_022614CC: ; 0x022614CC
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
str r0, [sp]
add r0, r5, #0
mov r1, #0x12
bl ov49_0225A10C
mov r4, #1
mov r6, #0
add r7, r4, #0
_022614E0:
add r0, r5, #0
add r1, r6, #0
add r2, r4, #0
bl ov49_0225A40C
add r0, r5, #0
add r1, r7, #0
mov r2, #6
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
add r2, r4, #0
bl ov49_0225A144
add r4, r4, #1
cmp r4, #0x12
blt _022614E0
add r0, r5, #0
mov r1, #1
mov r2, #7
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
mov r2, #0
bl ov49_0225A144
ldr r2, [sp]
ldr r3, _0226153C ; =ov49_02269C00
add r2, #8
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
add r0, r5, #0
bl ov49_0225A154
ldr r1, [sp]
str r0, [r1, #8]
pop {r3, r4, r5, r6, r7, pc}
nop
_0226153C: .word ov49_02269C00
thumb_func_end ov49_022614CC
thumb_func_start ov49_02261540
ov49_02261540: ; 0x02261540
ldr r3, _02261548 ; =ov49_0225A134
add r0, r1, #0
bx r3
nop
_02261548: .word ov49_0225A134
thumb_func_end ov49_02261540
thumb_func_start ov49_0226154C
ov49_0226154C: ; 0x0226154C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r6, r1, #0
add r5, r0, #0
add r0, r6, #0
add r4, r2, #0
bl ov49_02259FE8
str r0, [sp, #8]
add r0, r6, #0
bl ov49_02259FF0
add r1, r4, #0
str r0, [sp, #0xc]
bl ov49_02258D70
add r7, r0, #0
add r0, r5, #0
bl ov49_0225EF84
str r0, [sp, #0x10]
add r0, r6, #0
bl ov49_0225A010
str r0, [sp, #0x14]
add r0, r5, #0
bl ov49_0225EF88
cmp r0, #5
bhi _02261606
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02261594: ; jump table
.short _022615A0 - _02261594 - 2 ; case 0
.short _022615B0 - _02261594 - 2 ; case 1
.short _022615D4 - _02261594 - 2 ; case 2
.short _02261618 - _02261594 - 2 ; case 3
.short _022616CA - _02261594 - 2 ; case 4
.short _022616DC - _02261594 - 2 ; case 5
_022615A0:
add r0, r5, #0
mov r1, #8
bl ov49_0225EF40
add r0, r5, #0
mov r1, #1
bl ov49_0225EF8C
_022615B0:
ldr r0, [sp, #8]
add r1, r4, #0
bl ov45_0222A230
add r6, r0, #0
ldr r0, [sp, #8]
add r1, r4, #0
bl ov45_0222A550
cmp r6, #1
beq _022615CA
cmp r0, #1
bne _02261606
_022615CA:
add r0, r5, #0
mov r1, #2
bl ov49_0225EF8C
b _02261710
_022615D4:
ldr r0, [sp, #8]
add r1, r4, #0
bl ov45_0222A578
add r6, r0, #0
bne _022615EA
add r0, r5, #0
mov r1, #1
bl ov49_0225EF8C
b _02261710
_022615EA:
bl ov45_0222AADC
cmp r0, #1
bne _02261606
add r0, r6, #0
bl ov45_0222AA5C
add r2, r0, #0
ldr r0, [sp, #0xc]
add r1, r4, #0
bl ov49_02258CB8
cmp r0, #0
bne _02261608
_02261606:
b _02261710
_02261608:
mov r1, #0
bl ov49_022591C0
add r0, r5, #0
mov r1, #3
bl ov49_0225EF8C
b _02261710
_02261618:
ldr r0, [sp, #8]
add r1, r4, #0
bl ov45_0222A578
cmp r0, #0
bne _02261638
cmp r7, #0
beq _0226162E
add r0, r7, #0
bl ov49_02258D54
_0226162E:
add r0, r5, #0
mov r1, #1
bl ov49_0225EF8C
b _02261710
_02261638:
bl ov45_0222A920
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, [sp, #0x10]
ldr r1, [sp, #8]
add r2, r6, #0
add r3, r7, #0
bl ov49_02261DBC
cmp r0, #0
beq _02261696
add r0, r5, #0
mov r1, #5
bl ov49_0225EF8C
ldr r0, [sp, #0xc]
add r1, r7, #0
mov r2, #0
bl ov49_02258EEC
lsl r1, r4, #0x18
add r0, r6, #0
lsr r1, r1, #0x18
mov r2, #1
bl ov49_0225A06C
lsl r1, r4, #0x18
add r0, r6, #0
lsr r1, r1, #0x18
mov r2, #1
bl ov49_0225A04C
add r0, r7, #0
mov r1, #0
bl ov49_02259130
ldr r0, [sp, #0x14]
ldr r2, _02261718 ; =ov49_02269B58
ldr r3, [sp, #0x10]
add r1, r4, #0
bl ov49_0225EFC4
b _02261710
_02261696:
ldr r0, [sp, #0xc]
add r1, r7, #0
mov r2, #4
bl ov49_02258EEC
add r0, r5, #0
mov r1, #4
bl ov49_0225EF8C
lsl r1, r4, #0x18
add r0, r6, #0
lsr r1, r1, #0x18
mov r2, #1
bl ov49_0225A04C
lsl r1, r4, #0x18
add r0, r6, #0
lsr r1, r1, #0x18
mov r2, #1
bl ov49_0225A06C
add r0, r7, #0
mov r1, #1
bl ov49_022591C0
b _02261710
_022616CA:
add r0, r7, #0
bl ov49_02258F38
cmp r0, #1
bne _02261710
add r0, r5, #0
bl ov49_0225EF90
b _02261710
_022616DC:
add r0, r5, #0
bl ov49_0225EF68
ldr r0, [sp, #0xc]
add r1, r7, #0
mov r2, #2
bl ov49_02258EEC
ldr r0, [sp, #0x14]
ldr r2, _0226171C ; =ov49_02269B40
add r1, r4, #0
mov r3, #0
bl ov49_0225EF98
lsl r1, r4, #0x18
add r0, r6, #0
lsr r1, r1, #0x18
mov r2, #0
bl ov49_0225A04C
lsl r1, r4, #0x18
add r0, r6, #0
lsr r1, r1, #0x18
mov r2, #0
bl ov49_0225A06C
_02261710:
mov r0, #0
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
_02261718: .word ov49_02269B58
_0226171C: .word ov49_02269B40
thumb_func_end ov49_0226154C
thumb_func_start ov49_02261720
ov49_02261720: ; 0x02261720
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r1, #0
str r0, [sp, #8]
add r0, r5, #0
add r4, r2, #0
bl ov49_02259FE8
add r6, r0, #0
add r0, r5, #0
bl ov49_02259FF0
str r0, [sp, #0x10]
add r0, r5, #0
bl ov49_0225A010
str r0, [sp, #0xc]
ldr r0, [sp, #0x10]
add r1, r4, #0
bl ov49_02258D70
add r7, r0, #0
ldr r0, [sp, #0x10]
bl ov49_02258DAC
ldr r0, [sp, #8]
bl ov49_0225EF84
str r0, [sp, #0x14]
ldr r0, [sp, #8]
bl ov49_0225EF88
cmp r0, #0
beq _0226176A
cmp r0, #1
beq _0226177C
b _022618AA
_0226176A:
ldr r0, [sp, #8]
mov r1, #8
bl ov49_0225EF40
str r0, [sp, #0x14]
ldr r0, [sp, #8]
mov r1, #1
bl ov49_0225EF8C
_0226177C:
add r0, r6, #0
add r1, r4, #0
bl ov45_0222A25C
cmp r0, #0
beq _022617BE
ldr r0, [sp, #8]
bl ov49_0225EF68
ldr r0, [sp, #0x10]
add r1, r7, #0
mov r2, #0
bl ov49_02258EEC
lsl r1, r4, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #1
bl ov49_0225A06C
lsl r1, r4, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #1
bl ov49_0225A04C
ldr r0, [sp, #0xc]
ldr r2, _022618B0 ; =ov49_02269B48
add r1, r4, #0
mov r3, #0
bl ov49_0225EF98
b _022618AA
_022617BE:
add r0, r6, #0
add r1, r4, #0
bl ov45_0222A2A0
add r0, r6, #0
bl ov45_0222A374
cmp r0, #1
bne _0226181E
add r0, r6, #0
add r1, r4, #0
bl ov45_0222ADA8
mov r1, #0
mvn r1, r1
cmp r0, r1
beq _0226181E
ldr r0, [sp, #0x10]
add r1, r7, #0
mov r2, #0
bl ov49_02258EEC
lsl r1, r4, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #1
bl ov49_0225A06C
lsl r1, r4, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #1
bl ov49_0225A04C
add r0, r7, #0
mov r1, #0
bl ov49_02259130
ldr r0, [sp, #8]
bl ov49_0225EF68
ldr r0, [sp, #0xc]
ldr r2, _022618B4 ; =ov49_02269B50
ldr r3, [sp, #0x14]
add r1, r4, #0
bl ov49_0225EF98
b _022618AA
_0226181E:
add r0, r6, #0
add r1, r4, #0
bl ov45_0222A578
bl ov45_0222A920
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
ldr r0, [sp, #0x14]
add r1, r6, #0
add r2, r5, #0
add r3, r7, #0
bl ov49_02261DBC
cmp r0, #0
beq _0226187C
ldr r0, [sp, #0x10]
add r1, r7, #0
mov r2, #0
bl ov49_02258EEC
lsl r1, r4, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #1
bl ov49_0225A06C
lsl r1, r4, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #1
bl ov49_0225A04C
add r0, r7, #0
mov r1, #0
bl ov49_02259130
ldr r0, [sp, #0xc]
ldr r2, _022618B8 ; =ov49_02269B58
ldr r3, [sp, #0x14]
add r1, r4, #0
bl ov49_0225EFC4
b _022618AA
_0226187C:
add r0, r6, #0
add r1, r4, #0
bl ov45_0222AD58
cmp r0, #1
bne _022618AA
ldr r0, [sp, #0x10]
add r1, r7, #0
mov r2, #0
bl ov49_02258EEC
lsl r1, r4, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #1
bl ov49_0225A04C
ldr r0, [sp, #0xc]
ldr r2, _022618BC ; =ov49_02269B80
add r1, r4, #0
mov r3, #0
bl ov49_0225EFC4
_022618AA:
mov r0, #0
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_022618B0: .word ov49_02269B48
_022618B4: .word ov49_02269B50
_022618B8: .word ov49_02269B58
_022618BC: .word ov49_02269B80
thumb_func_end ov49_02261720
thumb_func_start ov49_022618C0
ov49_022618C0: ; 0x022618C0
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
add r5, r0, #0
str r2, [sp]
add r0, r6, #0
bl ov49_02259FF0
ldr r1, [sp]
add r7, r0, #0
bl ov49_02258D70
add r4, r0, #0
add r0, r5, #0
bl ov49_0225EF88
cmp r0, #0
beq _022618EC
cmp r0, #1
beq _022618FE
cmp r0, #2
beq _02261910
b _02261926
_022618EC:
add r0, r7, #0
add r1, r4, #0
mov r2, #3
bl ov49_02258EEC
add r0, r5, #0
bl ov49_0225EF90
b _02261926
_022618FE:
add r0, r4, #0
bl ov49_02258F38
cmp r0, #0
beq _02261926
add r0, r5, #0
bl ov49_0225EF90
b _02261926
_02261910:
add r0, r4, #0
bl ov49_02258D54
add r0, r6, #0
bl ov49_0225A010
ldr r1, [sp]
ldr r2, _0226192C ; =ov49_02269B78
mov r3, #0
bl ov49_0225EF98
_02261926:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_0226192C: .word ov49_02269B78
thumb_func_end ov49_022618C0
thumb_func_start ov49_02261930
ov49_02261930: ; 0x02261930
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x40
add r6, r1, #0
add r5, r0, #0
add r0, r6, #0
add r7, r2, #0
bl ov49_02259FE8
str r0, [sp]
add r0, r6, #0
bl ov49_02259FF0
str r0, [sp, #8]
add r0, r6, #0
bl ov49_02259FF8
str r0, [sp, #4]
add r0, r5, #0
bl ov49_0225EF84
add r4, r0, #0
add r0, r5, #0
bl ov49_0225EF88
cmp r0, #4
bhi _022619CE
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02261970: ; jump table
.short _0226197A - _02261970 - 2 ; case 0
.short _022619C4 - _02261970 - 2 ; case 1
.short _02261A2A - _02261970 - 2 ; case 2
.short _02261AD8 - _02261970 - 2 ; case 3
.short _02261B48 - _02261970 - 2 ; case 4
_0226197A:
add r0, r5, #0
mov r1, #0x20
bl ov49_0225EF40
add r4, r0, #0
ldr r0, [sp, #8]
add r1, r7, #0
bl ov49_02258D70
str r0, [r4]
ldr r0, [sp]
add r1, r7, #0
bl ov45_0222ADA8
mov r1, #0
mvn r1, r1
str r0, [r4, #4]
cmp r0, r1
bne _022619A4
bl GF_AssertFail
_022619A4:
add r2, r4, #0
ldr r0, [r4, #4]
add r1, r4, #4
add r2, #8
bl ov45_0222AE08
ldr r0, [sp, #8]
ldr r1, [r4]
mov r2, #3
bl ov49_02258EEC
add r0, r5, #0
mov r1, #1
bl ov49_0225EF8C
b _02261B64
_022619C4:
ldr r0, [r4]
bl ov49_02258F38
cmp r0, #0
bne _022619D0
_022619CE:
b _02261B64
_022619D0:
ldr r0, [sp, #4]
ldr r1, [r4, #4]
ldr r2, [r4, #8]
add r3, sp, #0x34
bl ov49_0225E420
mov r0, #1
ldr r1, [sp, #0x34]
lsl r0, r0, #0x10
sub r0, r1, r0
str r0, [r4, #0x10]
ldr r0, [r4]
add r1, sp, #0x34
bl ov49_02259154
ldr r0, [sp, #0x38]
mov r3, sp
str r0, [r4, #0xc]
mov r1, #0
str r1, [r4, #0x14]
add r0, sp, #0xc
strh r1, [r0]
strh r1, [r0, #2]
add r1, sp, #0xc
ldrh r2, [r1]
ldr r0, [r4]
sub r3, r3, #4
strh r2, [r3]
ldrh r1, [r1, #2]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov49_02258DB4
ldr r0, _02261B6C ; =0x0000064E
bl PlaySE
ldr r0, [r4]
mov r1, #1
bl ov49_02259184
add r0, r5, #0
mov r1, #2
bl ov49_0225EF8C
b _02261B64
_02261A2A:
ldr r0, [r4, #0x14]
mov r6, #0
add r0, r0, #1
str r0, [r4, #0x14]
cmp r0, #0x18
blt _02261A3C
mov r0, #0x18
str r0, [r4, #0x14]
mov r6, #1
_02261A3C:
ldr r0, [sp, #4]
ldr r1, [r4, #4]
ldr r2, [r4, #8]
add r3, sp, #0x28
bl ov49_0225E420
ldr r0, [sp, #0x30]
ldr r1, [sp, #0x2c]
str r0, [sp, #0x24]
ldr r0, [r4, #0x10]
str r0, [sp, #0x1c]
ldr r0, [r4, #0xc]
sub r7, r1, r0
ldr r0, [r4, #0x14]
cmp r0, #0
ble _02261A6E
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _02261A7C
_02261A6E:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_02261A7C:
bl _ffix
asr r1, r0, #0x1f
asr r3, r7, #0x1f
add r2, r7, #0
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r0, r0, r2
adc r1, r3
lsl r1, r1, #0x14
lsr r0, r0, #0xc
orr r0, r1
mov r1, #6
lsl r1, r1, #0xe
bl FX_Div
str r0, [sp, #0x20]
ldr r1, [r4, #0xc]
add r0, r0, r1
str r0, [sp, #0x20]
ldr r0, [r4]
add r1, sp, #0x1c
bl ov49_02259148
cmp r6, #1
bne _02261B64
ldr r0, [r4]
mov r1, #0
bl ov49_02259184
ldr r0, [r4]
mov r1, #8
bl ov49_022591B4
ldr r0, [r4]
mov r1, #2
bl ov49_02259160
add r0, r5, #0
mov r1, #3
bl ov49_0225EF8C
b _02261B64
_02261AD8:
ldr r1, [r4, #4]
add r0, r6, #0
bl ov49_0225A520
cmp r0, #1
bne _02261AFA
add r0, r4, #0
add r0, #0x18
bl ov49_0225F438
cmp r0, #0
bne _02261B0E
add r0, r4, #0
add r0, #0x18
bl ov49_0225F374
b _02261B0E
_02261AFA:
add r0, r4, #0
add r0, #0x18
bl ov49_0225F438
cmp r0, #1
bne _02261B0E
add r0, r4, #0
add r0, #0x18
bl ov49_0225F430
_02261B0E:
add r0, r4, #0
add r0, #0x18
bl ov49_0225F394
add r6, r0, #0
ldr r0, [sp, #4]
ldr r1, [r4, #4]
ldr r2, [r4, #8]
add r3, sp, #0x10
bl ov49_0225E420
ldr r0, [sp, #0x14]
add r1, sp, #0x10
add r0, r0, r6
str r0, [sp, #0x14]
ldr r0, [r4]
bl ov49_02259148
ldr r0, [sp]
ldr r1, [r4, #4]
bl ov45_0222AD80
cmp r0, #2
bne _02261B64
add r0, r5, #0
mov r1, #4
bl ov49_0225EF8C
b _02261B64
_02261B48:
ldr r0, [r4]
bl ov49_02258D54
add r0, r5, #0
bl ov49_0225EF68
add r0, r6, #0
bl ov49_0225A010
ldr r2, _02261B70 ; =ov49_02269B78
add r1, r7, #0
mov r3, #0
bl ov49_0225EF98
_02261B64:
mov r0, #0
add sp, #0x40
pop {r3, r4, r5, r6, r7, pc}
nop
_02261B6C: .word 0x0000064E
_02261B70: .word ov49_02269B78
thumb_func_end ov49_02261930
thumb_func_start ov49_02261B74
ov49_02261B74: ; 0x02261B74
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
str r1, [sp]
add r7, r0, #0
add r4, r2, #0
bl ov49_0225EF3C
add r6, r0, #0
ldr r0, [sp]
bl ov49_02259FE8
str r0, [sp, #8]
ldr r0, [sp]
bl ov49_02259FF0
str r0, [sp, #0xc]
add r1, r4, #0
bl ov49_02258D70
add r5, r0, #0
ldr r0, [sp, #0xc]
bl ov49_02258DAC
str r0, [sp, #0x10]
add r0, r7, #0
bl ov49_0225EF88
cmp r0, #0xa
bhi _02261C58
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02261BBA: ; jump table
.short _02261BD0 - _02261BBA - 2 ; case 0
.short _02261BE8 - _02261BBA - 2 ; case 1
.short _02261BFA - _02261BBA - 2 ; case 2
.short _02261C0C - _02261BBA - 2 ; case 3
.short _02261C4E - _02261BBA - 2 ; case 4
.short _02261C84 - _02261BBA - 2 ; case 5
.short _02261D2E - _02261BBA - 2 ; case 6
.short _02261BFA - _02261BBA - 2 ; case 7
.short _02261D40 - _02261BBA - 2 ; case 8
.short _02261BFA - _02261BBA - 2 ; case 9
.short _02261D8E - _02261BBA - 2 ; case 10
_02261BD0:
ldrb r0, [r6, #4]
cmp r0, #0
bne _02261BDE
add r0, r7, #0
bl ov49_0225EF90
b _02261DB6
_02261BDE:
add r0, r7, #0
mov r1, #3
bl ov49_0225EF8C
b _02261DB6
_02261BE8:
ldr r0, [sp, #0xc]
add r1, r5, #0
mov r2, #3
bl ov49_02258EEC
add r0, r7, #0
bl ov49_0225EF90
b _02261DB6
_02261BFA:
add r0, r5, #0
bl ov49_02258F38
cmp r0, #1
bne _02261C58
add r0, r7, #0
bl ov49_0225EF90
b _02261DB6
_02261C0C:
add r0, r5, #0
bl ov49_02258E34
add r2, sp, #0x14
strh r0, [r2]
lsr r0, r0, #0x10
strh r0, [r2, #2]
ldrh r0, [r2]
add r1, sp, #0x1c
strh r0, [r2, #8]
ldrh r0, [r2, #2]
strh r0, [r2, #0xa]
add r0, r5, #0
bl ov49_0225913C
add r0, r5, #0
bl ov49_022591CC
cmp r0, #0
bne _02261C3C
add r0, r5, #0
mov r1, #1
bl ov49_022591C0
_02261C3C:
ldr r0, [sp, #0xc]
add r1, r5, #0
mov r2, #4
bl ov49_02258EEC
add r0, r7, #0
bl ov49_0225EF90
b _02261DB6
_02261C4E:
add r0, r5, #0
bl ov49_02258F38
cmp r0, #1
beq _02261C5A
_02261C58:
b _02261DB6
_02261C5A:
add r0, r7, #0
bl ov49_0225EF90
ldr r0, [sp, #0xc]
add r1, r5, #0
mov r2, #0
bl ov49_02258EEC
lsl r1, r4, #0x18
ldr r0, [sp]
lsr r1, r1, #0x18
mov r2, #0
bl ov49_0225A04C
lsl r1, r4, #0x18
ldr r0, [sp]
lsr r1, r1, #0x18
mov r2, #0
bl ov49_0225A06C
b _02261DB6
_02261C84:
mov r0, #0
str r0, [sp, #4]
ldrb r0, [r6, #3]
cmp r0, #1
bne _02261CC4
ldr r0, [sp, #8]
bl ov45_0222B0B0
cmp r0, #0
bne _02261CC4
ldr r0, [sp, #8]
bl ov45_0222A5C0
bl ov45_0222A920
cmp r0, #9
bne _02261CC4
ldr r0, [sp, #8]
bl ov45_0222B0A4
add r0, r5, #0
mov r1, #6
bl ov49_02258E60
bl ov42_022282A4
add r3, r0, #0
ldr r0, [sp, #0xc]
ldr r1, [sp, #0x10]
mov r2, #0
bl ov49_02258EAC
_02261CC4:
ldr r0, [sp, #8]
add r1, r4, #0
bl ov45_0222A578
add r5, r0, #0
bne _02261CD6
mov r0, #1
str r0, [sp, #4]
b _02261D08
_02261CD6:
ldrb r0, [r6, #3]
cmp r0, #1
bne _02261CEC
ldr r0, [sp, #8]
bl ov45_0222AFF8
cmp r0, #0
bne _02261CEC
mov r0, #1
str r0, [sp, #4]
b _02261D08
_02261CEC:
ldr r0, [sp, #8]
add r1, r4, #0
bl ov45_0222A2A0
cmp r0, #0
beq _02261D08
add r0, r5, #0
bl ov45_0222A920
ldrb r1, [r6, #2]
cmp r0, r1
beq _02261D08
mov r0, #1
str r0, [sp, #4]
_02261D08:
ldr r0, [sp, #4]
cmp r0, #1
bne _02261DB6
add r0, r7, #0
bl ov49_0225EF90
lsl r1, r4, #0x18
ldr r0, [sp]
lsr r1, r1, #0x18
mov r2, #1
bl ov49_0225A04C
lsl r1, r4, #0x18
ldr r0, [sp]
lsr r1, r1, #0x18
mov r2, #1
bl ov49_0225A06C
b _02261DB6
_02261D2E:
ldr r0, [sp, #0xc]
add r1, r5, #0
mov r2, #3
bl ov49_02258EEC
add r0, r7, #0
bl ov49_0225EF90
b _02261DB6
_02261D40:
ldr r0, [sp, #0xc]
bl ov49_02258DAC
ldrb r1, [r6]
ldrb r2, [r6, #1]
bl ov49_02258FDC
cmp r0, #0
bne _02261DB6
ldrb r0, [r6]
mov r3, sp
add r1, sp, #0x14
lsl r0, r0, #4
strh r0, [r1, #4]
ldrb r0, [r6, #1]
sub r3, r3, #4
lsl r0, r0, #4
strh r0, [r1, #6]
ldrh r2, [r1, #4]
add r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov49_02258DB4
add r0, r5, #0
add r1, sp, #0x18
bl ov49_0225913C
ldr r0, [sp, #0xc]
add r1, r5, #0
mov r2, #4
bl ov49_02258EEC
add r0, r7, #0
bl ov49_0225EF90
b _02261DB6
_02261D8E:
ldr r0, [sp, #0xc]
add r1, r5, #0
mov r2, #2
bl ov49_02258EEC
lsl r1, r4, #0x18
ldr r0, [sp]
lsr r1, r1, #0x18
mov r2, #0
bl ov49_0225A04C
lsl r1, r4, #0x18
ldr r0, [sp]
lsr r1, r1, #0x18
mov r2, #0
bl ov49_0225A06C
add sp, #0x20
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_02261DB6:
mov r0, #0
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_02261B74
thumb_func_start ov49_02261DBC
ov49_02261DBC: ; 0x02261DBC
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r6, r2, #0
add r4, r0, #0
add r0, r6, #0
str r1, [sp, #4]
str r3, [sp, #8]
mov r7, #0
bl ov49_02259FF0
add r5, r0, #0
bl ov49_02258DAC
str r0, [sp, #0xc]
add r0, r6, #0
bl ov49_0225A000
add r6, r0, #0
ldr r0, [sp, #8]
mov r1, #4
bl ov49_02258E60
str r0, [sp, #0x10]
mov r0, #1
str r0, [sp, #0x20]
add r0, sp, #0x28
ldrb r0, [r0, #0x10]
cmp r0, #0xe
bls _02261DF8
b _02261F42
_02261DF8:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02261E04: ; jump table
.short _02261F42 - _02261E04 - 2 ; case 0
.short _02261F42 - _02261E04 - 2 ; case 1
.short _02261E22 - _02261E04 - 2 ; case 2
.short _02261E3E - _02261E04 - 2 ; case 3
.short _02261E58 - _02261E04 - 2 ; case 4
.short _02261E72 - _02261E04 - 2 ; case 5
.short _02261E90 - _02261E04 - 2 ; case 6
.short _02261EAE - _02261E04 - 2 ; case 7
.short _02261ECC - _02261E04 - 2 ; case 8
.short _02261EF0 - _02261E04 - 2 ; case 9
.short _02261EEA - _02261E04 - 2 ; case 10
.short _02261F42 - _02261E04 - 2 ; case 11
.short _02261F42 - _02261E04 - 2 ; case 12
.short _02261F42 - _02261E04 - 2 ; case 13
.short _02261F42 - _02261E04 - 2 ; case 14
_02261E22:
add r0, sp, #0x1c
str r0, [sp]
ldr r2, _02261FA4 ; =ov49_02269B90
add r0, r6, #0
add r1, r5, #0
mov r3, #4
bl ov49_02261FC0
cmp r0, #0
beq _02261E38
b _02261F48
_02261E38:
add sp, #0x24
add r0, r7, #0
pop {r4, r5, r6, r7, pc}
_02261E3E:
add r0, sp, #0x1c
str r0, [sp]
ldr r2, _02261FA8 ; =ov49_02269BC0
add r0, r6, #0
add r1, r5, #0
mov r3, #4
bl ov49_02261FC0
cmp r0, #0
bne _02261F48
add sp, #0x24
add r0, r7, #0
pop {r4, r5, r6, r7, pc}
_02261E58:
add r0, sp, #0x1c
str r0, [sp]
ldr r2, _02261FAC ; =ov49_02269BA0
add r0, r6, #0
add r1, r5, #0
mov r3, #4
bl ov49_02261FC0
cmp r0, #0
bne _02261F48
add sp, #0x24
add r0, r7, #0
pop {r4, r5, r6, r7, pc}
_02261E72:
add r0, r7, #0
str r0, [sp, #0x20]
add r0, sp, #0x1c
str r0, [sp]
ldr r2, _02261FB0 ; =ov49_02269C20
add r0, r6, #0
add r1, r5, #0
mov r3, #8
bl ov49_02261FC0
cmp r0, #0
bne _02261F48
add sp, #0x24
add r0, r7, #0
pop {r4, r5, r6, r7, pc}
_02261E90:
add r0, r7, #0
str r0, [sp, #0x20]
add r0, sp, #0x1c
str r0, [sp]
ldr r2, _02261FB4 ; =ov49_02269C40
add r0, r6, #0
add r1, r5, #0
mov r3, #8
bl ov49_02261FC0
cmp r0, #0
bne _02261F48
add sp, #0x24
add r0, r7, #0
pop {r4, r5, r6, r7, pc}
_02261EAE:
mov r0, #3
str r0, [sp, #0x20]
add r0, sp, #0x1c
str r0, [sp]
ldr r2, _02261FB8 ; =ov49_02269BB0
add r0, r6, #0
add r1, r5, #0
mov r3, #4
bl ov49_02261FC0
cmp r0, #0
bne _02261F48
add sp, #0x24
add r0, r7, #0
pop {r4, r5, r6, r7, pc}
_02261ECC:
add r0, r7, #0
str r0, [sp, #0x20]
add r0, sp, #0x1c
str r0, [sp]
ldr r2, _02261FBC ; =ov49_02269BD0
add r0, r6, #0
add r1, r5, #0
mov r3, #4
bl ov49_02261FC0
cmp r0, #0
bne _02261F48
add sp, #0x24
add r0, r7, #0
pop {r4, r5, r6, r7, pc}
_02261EEA:
add sp, #0x24
add r0, r7, #0
pop {r4, r5, r6, r7, pc}
_02261EF0:
ldr r0, [sp, #4]
bl ov45_0222AFF8
cmp r0, #0
bne _02261F00
add sp, #0x24
add r0, r7, #0
pop {r4, r5, r6, r7, pc}
_02261F00:
ldr r0, [sp, #4]
bl ov45_0222B00C
cmp r0, #0
bne _02261F10
add sp, #0x24
add r0, r7, #0
pop {r4, r5, r6, r7, pc}
_02261F10:
ldr r0, [sp, #4]
bl ov45_0222B020
ldr r1, [sp, #0x10]
cmp r1, r0
beq _02261F22
add sp, #0x24
add r0, r7, #0
pop {r4, r5, r6, r7, pc}
_02261F22:
ldr r1, [sp, #0xc]
add r0, r5, #0
add r2, sp, #0x20
add r3, sp, #0x1c
bl ov49_0225904C
cmp r0, #1
beq _02261F36
bl GF_AssertFail
_02261F36:
ldr r0, [sp, #0x20]
bl ov42_022282A4
str r0, [sp, #0x20]
mov r7, #1
b _02261F48
_02261F42:
add sp, #0x24
mov r0, #0
pop {r4, r5, r6, r7, pc}
_02261F48:
ldr r0, [sp, #8]
bl ov49_02258E34
add r1, sp, #0x14
strh r0, [r1]
lsr r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
mov r3, sp
sub r3, r3, #4
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
ldrh r2, [r1, #8]
ldr r0, [sp, #8]
strh r2, [r3]
ldrh r1, [r1, #0xa]
strh r1, [r3, #2]
ldr r1, [r3]
ldr r2, [sp, #0x20]
bl ov49_02258E04
add r1, sp, #0x14
mov r0, #4
ldrsh r2, [r1, r0]
asr r0, r2, #3
lsr r0, r0, #0x1c
add r0, r2, r0
asr r0, r0, #4
strb r0, [r4]
mov r0, #6
ldrsh r1, [r1, r0]
asr r0, r1, #3
lsr r0, r0, #0x1c
add r0, r1, r0
asr r0, r0, #4
strb r0, [r4, #1]
add r0, sp, #0x28
ldrb r0, [r0, #0x10]
strb r0, [r4, #2]
ldr r0, [sp, #0x3c]
strb r7, [r4, #3]
strb r0, [r4, #4]
mov r0, #1
add sp, #0x24
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_02261FA4: .word ov49_02269B90
_02261FA8: .word ov49_02269BC0
_02261FAC: .word ov49_02269BA0
_02261FB0: .word ov49_02269C20
_02261FB4: .word ov49_02269C40
_02261FB8: .word ov49_02269BB0
_02261FBC: .word ov49_02269BD0
thumb_func_end ov49_02261DBC
thumb_func_start ov49_02261FC0
ov49_02261FC0: ; 0x02261FC0
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r7, r0, #0
ldr r0, [sp, #0x20]
add r5, r2, #0
str r1, [sp, #4]
add r6, r3, #0
str r0, [sp, #0x20]
ldr r4, _02262024 ; =0x00000000
beq _0226201C
_02261FD4:
mov r0, #0
str r0, [sp]
add r2, sp, #8
ldr r1, [r5]
add r0, r7, #0
add r2, #2
add r3, sp, #8
bl ov49_022589D8
cmp r0, #1
bne _02262014
add r1, sp, #8
add r2, sp, #8
ldrh r1, [r1, #2]
ldrh r2, [r2]
ldr r0, [sp, #4]
bl ov49_02258F7C
cmp r0, #0
bne _02262014
add r1, sp, #8
ldrh r0, [r1, #2]
lsl r2, r0, #4
ldr r0, [sp, #0x20]
strh r2, [r0]
ldrh r0, [r1]
lsl r1, r0, #4
ldr r0, [sp, #0x20]
add sp, #0xc
strh r1, [r0, #2]
mov r0, #1
pop {r4, r5, r6, r7, pc}
_02262014:
add r4, r4, #1
add r5, r5, #4
cmp r4, r6
blo _02261FD4
_0226201C:
mov r0, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_02262024: .word 0x00000000
thumb_func_end ov49_02261FC0
thumb_func_start ov49_02262028
ov49_02262028: ; 0x02262028
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x38
str r0, [sp, #0x10]
add r5, r1, #0
str r2, [sp, #0x14]
bl ov49_0225EF3C
add r6, r0, #0
ldr r0, [sp, #0x10]
bl ov49_0225EF84
add r4, r0, #0
add r0, r5, #0
bl ov49_02259FE8
str r0, [sp, #0x30]
ldr r0, [sp, #0x10]
bl ov49_0225EF88
cmp r0, #0x1b
bhi _02262140
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0226205E: ; jump table
.short _02262140 - _0226205E - 2 ; case 0
.short _02262140 - _0226205E - 2 ; case 1
.short _02262140 - _0226205E - 2 ; case 2
.short _02262140 - _0226205E - 2 ; case 3
.short _02262140 - _0226205E - 2 ; case 4
.short _02262140 - _0226205E - 2 ; case 5
.short _02262140 - _0226205E - 2 ; case 6
.short _02262114 - _0226205E - 2 ; case 7
.short _022620DE - _0226205E - 2 ; case 8
.short _02262096 - _0226205E - 2 ; case 9
.short _02262096 - _0226205E - 2 ; case 10
.short _02262096 - _0226205E - 2 ; case 11
.short _02262096 - _0226205E - 2 ; case 12
.short _02262096 - _0226205E - 2 ; case 13
.short _02262096 - _0226205E - 2 ; case 14
.short _02262140 - _0226205E - 2 ; case 15
.short _02262140 - _0226205E - 2 ; case 16
.short _02262114 - _0226205E - 2 ; case 17
.short _02262114 - _0226205E - 2 ; case 18
.short _02262114 - _0226205E - 2 ; case 19
.short _02262114 - _0226205E - 2 ; case 20
.short _02262114 - _0226205E - 2 ; case 21
.short _02262114 - _0226205E - 2 ; case 22
.short _02262140 - _0226205E - 2 ; case 23
.short _02262140 - _0226205E - 2 ; case 24
.short _02262140 - _0226205E - 2 ; case 25
.short _02262096 - _0226205E - 2 ; case 26
.short _02262096 - _0226205E - 2 ; case 27
_02262096:
ldrb r0, [r6, #1]
bl ov45_0222F314
ldrh r1, [r4, #8]
cmp r1, r0
bls _022620B0
mov r0, #4
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
b _02262140
_022620B0:
bl sub_02037454
ldrh r1, [r4, #8]
cmp r1, r0
ble _022620C8
mov r0, #4
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
b _02262140
_022620C8:
bl sub_0203988C
cmp r0, #0
bne _022620DE
mov r0, #4
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
b _02262140
_022620DE:
bl ov45_0222F464
cmp r0, #1
bne _022620FE
ldrb r0, [r6, #1]
bl ov45_0222F314
cmp r0, #1
bhi _022620FE
mov r0, #4
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
b _02262140
_022620FE:
ldr r0, [r4, #0x10]
sub r0, r0, #1
str r0, [r4, #0x10]
bpl _02262114
mov r0, #4
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
b _02262140
_02262114:
bl sub_020390C4
cmp r0, #5
bhi _02262140
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02262128: ; jump table
.short _02262140 - _02262128 - 2 ; case 0
.short _02262140 - _02262128 - 2 ; case 1
.short _02262134 - _02262128 - 2 ; case 2
.short _02262134 - _02262128 - 2 ; case 3
.short _02262134 - _02262128 - 2 ; case 4
.short _02262134 - _02262128 - 2 ; case 5
_02262134:
mov r0, #4
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
_02262140:
ldr r0, [sp, #0x10]
bl ov49_0225EF88
cmp r0, #0x1c
bls _0226214E
bl _02262AB8
_0226214E:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0226215A: ; jump table
.short _02262194 - _0226215A - 2 ; case 0
.short _022621A6 - _0226215A - 2 ; case 1
.short _022621EA - _0226215A - 2 ; case 2
.short _02262208 - _0226215A - 2 ; case 3
.short _0226222E - _0226215A - 2 ; case 4
.short _02262292 - _0226215A - 2 ; case 5
.short _022622B2 - _0226215A - 2 ; case 6
.short _0226239C - _0226215A - 2 ; case 7
.short _02262556 - _0226215A - 2 ; case 8
.short _022625DC - _0226215A - 2 ; case 9
.short _02262630 - _0226215A - 2 ; case 10
.short _0226265C - _0226215A - 2 ; case 11
.short _022626D4 - _0226215A - 2 ; case 12
.short _02262702 - _0226215A - 2 ; case 13
.short _0226273C - _0226215A - 2 ; case 14
.short _02262806 - _0226215A - 2 ; case 15
.short _02262856 - _0226215A - 2 ; case 16
.short _0226287C - _0226215A - 2 ; case 17
.short _022628A4 - _0226215A - 2 ; case 18
.short _022628B4 - _0226215A - 2 ; case 19
.short _0226290C - _0226215A - 2 ; case 20
.short _0226296C - _0226215A - 2 ; case 21
.short _022629BE - _0226215A - 2 ; case 22
.short _02262A08 - _0226215A - 2 ; case 23
.short _02262A1A - _0226215A - 2 ; case 24
.short _02262A2C - _0226215A - 2 ; case 25
.short _02262A40 - _0226215A - 2 ; case 26
.short _02262A64 - _0226215A - 2 ; case 27
.short _02262A8E - _0226215A - 2 ; case 28
_02262194:
ldr r0, [sp, #0x10]
mov r1, #0x44
bl ov49_0225EF40
ldr r0, [sp, #0x10]
bl ov49_0225EF90
bl _02262AB8
_022621A6:
ldr r0, [sp, #0x30]
bl ov45_0222A414
cmp r0, #0
beq _022621C0
mov r0, #7
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x1c
bl ov49_0225EF8C
bl _02262AB8
_022621C0:
ldr r0, [sp, #0x30]
bl ov45_0222A394
cmp r0, #0
beq _022621DA
mov r0, #2
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x1c
bl ov49_0225EF8C
bl _02262AB8
_022621DA:
ldr r0, _022624F4 ; =0x000005DD
bl PlaySE
ldr r0, [sp, #0x10]
bl ov49_0225EF90
bl _02262AB8
_022621EA:
ldrb r1, [r6, #2]
add r0, r5, #0
mov r2, #0
bl ov49_0225A37C
mov r0, #3
str r0, [sp]
ldr r1, [sp, #0x10]
add r0, r4, #0
add r2, r5, #0
mov r3, #0
bl ov49_02262BF8
bl _02262AB8
_02262208:
add r0, r4, #0
add r1, r5, #0
mov r2, #3
mov r3, #1
bl ov49_02262C38
add r4, #0x18
mov r2, #0
add r0, r5, #0
add r1, r4, #0
add r3, r2, #0
bl ov49_0225A174
ldr r0, [sp, #0x10]
mov r1, #4
bl ov49_0225EF8C
bl _02262AB8
_0226222E:
add r0, r5, #0
mov r7, #0
bl ov49_0225A1D4
cmp r0, #2
bhi _02262248
cmp r0, #0
beq _0226226A
cmp r0, #1
beq _0226225E
cmp r0, #2
beq _0226224E
b _02262274
_02262248:
sub r1, r7, #2
cmp r0, r1
bne _02262274
_0226224E:
mov r0, #5
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x1c
bl ov49_0225EF8C
mov r7, #1
b _02262274
_0226225E:
ldr r0, [sp, #0x10]
mov r1, #5
bl ov49_0225EF8C
mov r7, #1
b _02262274
_0226226A:
ldr r0, [sp, #0x10]
mov r1, #6
bl ov49_0225EF8C
mov r7, #1
_02262274:
cmp r7, #1
beq _0226227C
bl _02262AB8
_0226227C:
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl ov49_0225A1E4
add r0, r4, #0
add r1, r5, #0
bl ov49_02262CA8
bl _02262AB8
_02262292:
ldrb r1, [r6, #2]
add r0, r5, #0
mov r2, #0
bl ov49_0225A37C
mov r0, #2
str r0, [sp]
ldrb r3, [r6, #2]
ldr r1, [sp, #0x10]
add r0, r4, #0
add r2, r5, #0
add r3, #0x22
bl ov49_02262BF8
bl _02262AB8
_022622B2:
ldr r0, [sp, #0x30]
bl ov45_0222A394
cmp r0, #0
beq _022622CA
mov r0, #2
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x1c
bl ov49_0225EF8C
b _02262AB8
_022622CA:
ldrb r0, [r6, #1]
bl ov45_0222F274
cmp r0, #1
bne _0226230E
ldrb r0, [r6, #1]
bl ov45_0222F2D4
cmp r0, #0
beq _022622E8
ldrb r0, [r6, #1]
bl ov45_0222F294
cmp r0, #0
bne _022622F6
_022622E8:
mov r0, #1
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x1c
bl ov49_0225EF8C
b _02262AB8
_022622F6:
ldrb r0, [r6, #1]
bl ov45_0222F3E8
cmp r0, #0
bne _0226230E
mov r0, #7
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x1c
bl ov49_0225EF8C
b _02262AB8
_0226230E:
ldrb r0, [r6, #1]
bl ov45_0222F3E8
strh r0, [r4]
mov r0, #0xe1
lsl r0, r0, #2
str r0, [r4, #0x10]
mov r1, #0
ldrsh r2, [r4, r1]
ldr r0, _022624F8 ; =0x0000014A
cmp r2, r0
ble _02262330
add r0, r5, #0
mov r2, #0xa
bl ov49_0225A30C
b _0226233C
_02262330:
mov r0, #1
str r0, [r4, #0x14]
add r0, r5, #0
mov r2, #0xb
bl ov49_0225A30C
_0226233C:
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A09C
add r0, r5, #0
bl ov49_0225A0BC
ldrb r0, [r6, #1]
bl sub_0203981C
bl ov45_0222F464
cmp r0, #1
bne _02262372
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
ldrb r1, [r6, #2]
ldr r0, [sp, #0x30]
ldr r3, [sp, #0x14]
mov r2, #1
bl ov45_0222AC14
mov r0, #1
strb r0, [r4, #7]
_02262372:
mov r0, #0
ldrsh r0, [r4, r0]
add r1, r5, #0
mov r3, #1
str r0, [sp]
ldrb r2, [r6, #2]
add r0, r4, #0
add r0, #0x3c
bl ov49_02262D70
add r4, #0x3c
add r0, r4, #0
add r1, r5, #0
mov r2, #1
bl ov49_02262E04
ldr r0, [sp, #0x10]
mov r1, #7
bl ov49_0225EF8C
b _02262AB8
_0226239C:
bl sub_0203988C
str r0, [sp, #0x2c]
ldrb r0, [r6, #1]
bl ov45_0222F314
add r7, r0, #0
ldrb r0, [r6, #1]
bl ov45_0222F3E8
strh r0, [r4]
mov r1, #0
add r0, r4, #0
ldrsh r1, [r4, r1]
add r0, #0x3c
bl ov49_02262DD4
mov r0, #0
ldrsh r1, [r4, r0]
ldr r0, _022624F8 ; =0x0000014A
cmp r1, r0
bgt _022623F0
ldr r0, [r4, #0x14]
cmp r0, #0
bne _022623F0
add r0, r5, #0
bl ov49_0225A0CC
mov r0, #1
str r0, [r4, #0x14]
add r0, r5, #0
mov r1, #0
mov r2, #0xb
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A09C
add r0, r5, #0
bl ov49_0225A0BC
_022623F0:
add r0, r4, #0
add r0, #0x3c
add r1, r5, #0
mov r2, #0
bl ov49_02262DF8
ldr r0, [sp, #0x2c]
cmp r0, #0
bne _02262410
mov r0, #4
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
b _02262AB8
_02262410:
cmp r0, #2
bne _02262462
mov r0, #8
strb r0, [r6]
cmp r7, #4
bne _02262420
mov r6, #0x10
b _02262422
_02262420:
mov r6, #0x12
_02262422:
add r0, r5, #0
bl ov49_0225A0CC
add r0, r5, #0
mov r1, #0
add r2, r6, #0
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A09C
add r0, r5, #0
bl ov49_0225A0BC
ldr r0, [sp, #0x10]
mov r1, #9
bl ov49_0225EF8C
add r0, r4, #0
add r0, #0x3c
mov r1, #0
strh r7, [r4, #8]
bl ov49_02262DD4
add r4, #0x3c
add r0, r4, #0
add r1, r5, #0
mov r2, #0
bl ov49_02262DF8
b _02262AB8
_02262462:
ldr r0, [r4, #0x14]
cmp r0, #0
bne _022624A8
ldr r0, _022624FC ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #2
tst r0, r1
beq _022624A8
ldr r0, _02262500 ; =0x000005DC
bl PlaySE
bl ov45_0222F464
cmp r0, #0
bne _02262494
mov r0, #6
strb r0, [r6]
add r0, r5, #0
bl ov49_0225A0CC
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
b _02262AB8
_02262494:
mov r0, #6
strb r0, [r6]
add r0, r5, #0
bl ov49_0225A0CC
ldr r0, [sp, #0x10]
mov r1, #0x10
bl ov49_0225EF8C
b _02262AB8
_022624A8:
bl ov45_0222F464
cmp r0, #1
bne _02262504
ldrb r0, [r4, #7]
cmp r0, r7
beq _022624D2
strb r7, [r4, #7]
cmp r7, #4
beq _022624D2
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
ldrb r1, [r6, #2]
ldr r0, [sp, #0x30]
ldr r3, [sp, #0x14]
add r2, r7, #0
bl ov45_0222AC14
_022624D2:
mov r0, #0
ldrsh r0, [r4, r0]
cmp r0, #0
bne _02262504
ldrb r0, [r6, #1]
bl ov45_0222F314
cmp r0, #1
bhi _02262504
mov r0, #3
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
b _02262AB8
nop
_022624F4: .word 0x000005DD
_022624F8: .word 0x0000014A
_022624FC: .word gSystem
_02262500: .word 0x000005DC
_02262504:
ldrb r0, [r6, #1]
bl ov45_0222F274
cmp r0, #1
bne _02262526
ldrb r0, [r6, #1]
bl ov45_0222F294
cmp r0, #0
bne _02262526
mov r0, #0
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
b _02262AB8
_02262526:
mov r0, #0
ldrsh r0, [r4, r0]
cmp r0, #0
bne _022625CC
ldr r0, [sp, #0x10]
mov r1, #8
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
add r0, r5, #0
mov r1, #0
mov r2, #0x12
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A09C
add r0, r5, #0
bl ov49_0225A0BC
b _02262AB8
_02262556:
add r0, r4, #0
add r0, #0x3c
mov r1, #0
bl ov49_02262DD4
add r0, r4, #0
add r0, #0x3c
add r1, r5, #0
mov r2, #0
bl ov49_02262DF8
bl sub_0203988C
add r5, r0, #0
ldrb r0, [r6, #1]
bl ov45_0222F314
add r7, r0, #0
bl sub_020390C4
cmp r0, #3
beq _02262586
cmp r0, #4
bne _02262592
_02262586:
mov r0, #4
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
_02262592:
cmp r5, #0
bne _022625A4
mov r0, #4
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
b _02262AB8
_022625A4:
cmp r5, #2
bne _022625B8
mov r0, #8
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #9
bl ov49_0225EF8C
strh r7, [r4, #8]
b _02262AB8
_022625B8:
ldrb r0, [r6, #1]
bl ov45_0222F274
cmp r0, #1
bne _022625CC
ldrb r0, [r6, #1]
bl ov45_0222F294
cmp r0, #0
beq _022625CE
_022625CC:
b _02262AB8
_022625CE:
mov r0, #0
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
b _02262AB8
_022625DC:
add r0, r4, #0
add r0, #0x3c
mov r1, #0
bl ov49_02262DD4
add r0, r4, #0
add r0, #0x3c
add r1, r5, #0
mov r2, #0
bl ov49_02262DF8
add r0, r5, #0
bl ov49_02259FE8
ldrb r1, [r6, #3]
bl ov45_0222A5E8
bl sub_02039B38
add r0, r5, #0
bl ov49_02259FE8
bl ov45_0222A2C8
mov r1, #0
bl sub_02034354
ldr r0, [sp, #0x30]
bl ov45_0222AB1C
bl sub_02034B00
mov r0, #0
bl sub_020378E4
ldr r1, [sp, #0x10]
add r0, r4, #0
mov r2, #0xa
mov r3, #0x11
bl ov49_02262C20
b _02262AB8
_02262630:
add r0, r4, #0
add r0, #0x3c
mov r1, #0
bl ov49_02262DD4
add r4, #0x3c
add r0, r4, #0
add r1, r5, #0
mov r2, #0
bl ov49_02262DF8
bl sub_02034434
bl sub_0203769C
bl sub_0203476C
ldr r0, [sp, #0x10]
mov r1, #0xb
bl ov49_0225EF8C
b _02262AB8
_0226265C:
add r0, r4, #0
add r0, #0x3c
mov r1, #0
bl ov49_02262DD4
add r0, r4, #0
add r0, #0x3c
add r1, r5, #0
mov r2, #0
bl ov49_02262DF8
bl sub_02034780
cmp r0, #0xff
beq _02262686
_0226267A:
bl sub_0203476C
bl sub_02034780
cmp r0, #0xff
bne _0226267A
_02262686:
bl sub_020347A0
add r5, r0, #0
ldrb r0, [r6, #1]
bl ov45_0222F314
cmp r5, r0
blo _022626BE
bl ov45_0222F464
cmp r0, #1
bne _022626AC
ldrh r0, [r4, #2]
cmp r0, #0
bne _022626AC
bl ov45_0222F1BC
mov r0, #1
strh r0, [r4, #2]
_022626AC:
bl ov45_0222F218
cmp r0, #1
bne _02262730
ldr r0, [sp, #0x10]
mov r1, #0xc
bl ov49_0225EF8C
b _02262AB8
_022626BE:
bl ov45_0222F218
cmp r0, #1
bne _02262730
mov r0, #4
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
b _02262AB8
_022626D4:
add r0, r4, #0
add r0, #0x3c
mov r1, #0
bl ov49_02262DD4
add r0, r4, #0
add r0, #0x3c
add r1, r5, #0
mov r2, #0
bl ov49_02262DF8
bl sub_02037BEC
ldr r0, [sp, #0x30]
bl ov45_0222A43C
ldr r1, [sp, #0x10]
add r0, r4, #0
mov r2, #0xd
mov r3, #0xe
bl ov49_02262C20
b _02262AB8
_02262702:
add r0, r4, #0
add r0, #0x3c
mov r1, #0
bl ov49_02262DD4
add r0, r4, #0
add r0, #0x3c
add r1, r5, #0
mov r2, #0
bl ov49_02262DF8
ldr r0, [sp, #0x30]
bl ov45_0222A548
str r0, [r4, #0xc]
bl sub_0203769C
add r4, #0xc
add r1, r4, #0
bl sub_02037C0C
cmp r0, #1
beq _02262732
_02262730:
b _02262AB8
_02262732:
ldr r0, [sp, #0x10]
mov r1, #0xe
bl ov49_0225EF8C
b _02262AB8
_0226273C:
add r0, r4, #0
add r0, #0x3c
mov r1, #0
bl ov49_02262DD4
add r4, #0x3c
add r0, r4, #0
add r1, r5, #0
mov r2, #0
bl ov49_02262DF8
mov r0, #0
str r0, [sp, #0x18]
bl sub_020347A0
str r0, [sp, #0x28]
bl sub_0203769C
mov r7, #0
str r0, [sp, #0x24]
str r7, [sp, #0x20]
bl ov45_0222F430
str r0, [sp, #0x1c]
ldr r0, [sp, #0x28]
add r4, r7, #0
cmp r0, #0
ble _022627DC
_02262774:
ldr r0, [sp, #0x24]
cmp r0, r4
beq _022627BE
add r0, r4, #0
bl sub_02037C44
add r5, r0, #0
beq _022627D4
ldr r0, [r5]
bl ov45_0222EC68
mov r1, #0
mvn r1, r1
cmp r0, r1
bne _022627A4
mov r0, #1
str r0, [sp, #0x18]
mov r0, #4
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
b _022627DC
_022627A4:
ldr r0, [sp, #0x30]
ldr r1, [r5]
add r2, r4, #0
bl ov45_0222A450
ldr r1, [r5]
ldr r0, [sp, #0x1c]
cmp r1, r0
bne _022627BA
mov r0, #1
str r0, [sp, #0x20]
_022627BA:
add r7, r7, #1
b _022627D4
_022627BE:
ldr r0, [sp, #0x30]
add r1, r4, #0
bl ov45_0222A480
bl ov45_0222F464
cmp r0, #1
bne _022627D2
mov r0, #1
str r0, [sp, #0x20]
_022627D2:
add r7, r7, #1
_022627D4:
ldr r0, [sp, #0x28]
add r4, r4, #1
cmp r4, r0
blt _02262774
_022627DC:
ldr r0, [sp, #0x18]
cmp r0, #0
bne _022628C6
ldr r0, [sp, #0x28]
cmp r7, r0
bne _022628C6
ldr r0, [sp, #0x20]
cmp r0, #1
bne _022627F8
ldr r0, [sp, #0x10]
mov r1, #0xf
bl ov49_0225EF8C
b _02262AB8
_022627F8:
mov r0, #4
strb r0, [r6]
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
b _02262AB8
_02262806:
mov r0, #0
mov r1, #1
bl sub_020398D4
bl ov45_0222F464
cmp r0, #1
bne _02262842
ldr r0, [sp, #0x30]
add r1, sp, #0x34
bl ov45_0222A498
ldrb r0, [r6, #1]
bl ov45_0222F314
add r3, sp, #0x34
add r2, r0, #0
ldrb r0, [r3, #1]
str r0, [sp]
ldrb r0, [r3, #2]
str r0, [sp, #4]
ldrb r0, [r3, #3]
str r0, [sp, #8]
mov r0, #1
str r0, [sp, #0xc]
ldrb r1, [r6, #2]
ldrb r3, [r3]
ldr r0, [sp, #0x30]
bl ov45_0222AC14
_02262842:
add r0, r5, #0
bl ov49_0225A0CC
ldr r1, [sp, #0x10]
add r0, r4, #0
mov r2, #0x1c
mov r3, #0x12
bl ov49_02262C20
b _02262AB8
_02262856:
add r0, r5, #0
mov r1, #0
mov r2, #0x1a
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
ldr r0, [sp, #0x10]
mov r1, #0x11
bl ov49_0225EF8C
add r4, #0x3c
add r0, r4, #0
add r1, r5, #0
bl ov49_02262DB8
b _02262AB8
_0226287C:
ldr r0, [sp, #0x14]
ldr r3, [sp, #0x10]
str r0, [sp]
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl ov49_02262CB4
cmp r0, #0
bne _022628C6
add r0, r5, #0
bl ov49_0225A0AC
cmp r0, #1
bne _022628C6
ldr r0, [sp, #0x10]
mov r1, #0x12
bl ov49_0225EF8C
b _02262AB8
_022628A4:
add r0, r5, #0
bl ov49_0225A294
ldr r0, [sp, #0x10]
mov r1, #0x13
bl ov49_0225EF8C
b _02262AB8
_022628B4:
add r0, r5, #0
bl ov49_0225A2C4
cmp r0, #0
beq _022628C8
cmp r0, #1
beq _022628DE
cmp r0, #2
beq _022628EE
_022628C6:
b _02262AB8
_022628C8:
add r0, r5, #0
bl ov49_0225A2F8
ldr r0, [sp, #0x10]
mov r1, #0x17
bl ov49_0225EF8C
ldr r0, [sp, #0x30]
bl ov45_0222A404
b _02262AB8
_022628DE:
add r0, r5, #0
bl ov49_0225A2F8
ldr r0, [sp, #0x10]
mov r1, #0x14
bl ov49_0225EF8C
b _02262AB8
_022628EE:
ldr r0, [sp, #0x14]
ldr r3, [sp, #0x10]
str r0, [sp]
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl ov49_02262CB4
cmp r0, #1
beq _02262904
b _02262AB8
_02262904:
add r0, r5, #0
bl ov49_0225A2F8
b _02262AB8
_0226290C:
ldrb r0, [r6, #1]
bl ov45_0222F3E8
strh r0, [r4]
mov r0, #0
ldrsh r0, [r4, r0]
add r1, r5, #0
mov r3, #1
str r0, [sp]
add r0, r4, #0
ldrb r2, [r6, #2]
add r0, #0x3c
bl ov49_02262D70
add r0, r4, #0
add r0, #0x3c
add r1, r5, #0
mov r2, #1
bl ov49_02262E04
mov r1, #0
ldrsh r2, [r4, r1]
ldr r0, _02262AC0 ; =0x0000014A
cmp r2, r0
ble _02262948
add r0, r5, #0
mov r2, #0xa
bl ov49_0225A30C
b _02262954
_02262948:
mov r0, #1
str r0, [r4, #0x14]
add r0, r5, #0
mov r2, #0xb
bl ov49_0225A30C
_02262954:
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A09C
add r0, r5, #0
bl ov49_0225A0BC
ldr r0, [sp, #0x10]
mov r1, #7
bl ov49_0225EF8C
b _02262AB8
_0226296C:
ldrb r0, [r6, #1]
bl ov45_0222F314
mov r1, #8
strb r1, [r6]
cmp r0, #4
bne _0226297E
mov r2, #0x10
b _02262980
_0226297E:
mov r2, #0x12
_02262980:
add r0, r5, #0
mov r1, #0
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A09C
add r0, r5, #0
bl ov49_0225A0BC
ldr r0, [sp, #0x10]
mov r1, #9
bl ov49_0225EF8C
mov r0, #0
str r0, [sp]
add r0, r4, #0
ldrb r2, [r6, #2]
add r0, #0x3c
add r1, r5, #0
mov r3, #1
bl ov49_02262D70
add r4, #0x3c
add r0, r4, #0
add r1, r5, #0
mov r2, #1
bl ov49_02262E04
b _02262AB8
_022629BE:
add r0, r5, #0
mov r1, #0
mov r2, #0x12
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A09C
add r0, r5, #0
bl ov49_0225A0BC
mov r0, #0
str r0, [sp]
add r0, r4, #0
ldrb r2, [r6, #2]
add r0, #0x3c
add r1, r5, #0
mov r3, #1
bl ov49_02262D70
add r0, r4, #0
add r0, #0x3c
mov r1, #0
bl ov49_02262DD4
add r4, #0x3c
add r0, r4, #0
add r1, r5, #0
mov r2, #1
bl ov49_02262DF8
ldr r0, [sp, #0x10]
mov r1, #8
bl ov49_0225EF8C
b _02262AB8
_02262A08:
bl sub_020343E4
bl sub_0203986C
ldr r0, [sp, #0x10]
mov r1, #0x18
bl ov49_0225EF8C
b _02262AB8
_02262A1A:
bl sub_0203988C
cmp r0, #0
bne _02262AB8
ldr r0, [sp, #0x10]
mov r1, #0x1c
bl ov49_0225EF8C
b _02262AB8
_02262A2C:
add r0, r5, #0
bl ov49_0225A0AC
cmp r0, #1
bne _02262AB8
ldrb r1, [r4, #4]
ldr r0, [sp, #0x10]
bl ov49_0225EF8C
b _02262AB8
_02262A40:
mov r0, #5
ldrsb r0, [r4, r0]
cmp r0, #0
ble _02262A4C
sub r0, r0, #1
strb r0, [r4, #5]
_02262A4C:
mov r0, #5
ldrsb r0, [r4, r0]
cmp r0, #0
bne _02262AB8
ldrb r0, [r4, #6]
bl sub_02037AC0
ldr r0, [sp, #0x10]
mov r1, #0x1b
bl ov49_0225EF8C
b _02262AB8
_02262A64:
ldrh r0, [r4, #0xa]
add r0, r0, #1
strh r0, [r4, #0xa]
ldrh r0, [r4, #0xa]
cmp r0, #0x96
blo _02262A7A
ldrb r0, [r4, #6]
bl sub_02037AC0
mov r0, #0
strh r0, [r4, #0xa]
_02262A7A:
ldrb r0, [r4, #6]
bl sub_02037B38
cmp r0, #0
beq _02262AB8
ldrb r1, [r4, #4]
ldr r0, [sp, #0x10]
bl ov49_0225EF8C
b _02262AB8
_02262A8E:
add r0, r5, #0
bl ov49_0225A0EC
add r0, r4, #0
add r1, r5, #0
bl ov49_02262CA8
add r4, #0x3c
add r0, r4, #0
add r1, r5, #0
bl ov49_02262DB8
add r0, r5, #0
bl ov49_0225A2F8
ldr r0, [sp, #0x10]
bl ov49_0225EF68
add sp, #0x38
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_02262AB8:
mov r0, #0
add sp, #0x38
pop {r3, r4, r5, r6, r7, pc}
nop
_02262AC0: .word 0x0000014A
thumb_func_end ov49_02262028
thumb_func_start ov49_02262AC4
ov49_02262AC4: ; 0x02262AC4
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
bl ov49_0225EF88
cmp r0, #0
beq _02262AD8
cmp r0, #1
beq _02262B02
b _02262B0E
_02262AD8:
mov r0, #0
add r1, r0, #0
bl sub_020398D4
bl sub_020392A0
cmp r0, #0
bne _02262AF0
bl sub_020343E4
bl sub_0203986C
_02262AF0:
add r0, r4, #0
mov r1, #1
bl ov49_0225A018
add r0, r5, #0
mov r1, #1
bl ov49_0225EF8C
b _02262B0E
_02262B02:
bl sub_020392A0
cmp r0, #1
bne _02262B0E
mov r0, #1
pop {r3, r4, r5, pc}
_02262B0E:
mov r0, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_02262AC4
thumb_func_start ov49_02262B14
ov49_02262B14: ; 0x02262B14
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r6, r0, #0
add r5, r1, #0
bl ov49_0225EF84
add r4, r0, #0
add r0, r6, #0
bl ov49_0225EF88
cmp r0, #0
beq _02262B32
cmp r0, #1
beq _02262BA8
b _02262BEC
_02262B32:
add r0, r6, #0
mov r1, #8
bl ov49_0225EF40
str r0, [sp, #4]
add r0, r5, #0
bl ov49_0225A040
cmp r0, #0x27
beq _02262B50
cmp r0, #0x28
beq _02262B56
cmp r0, #0x29
beq _02262B5C
b _02262B62
_02262B50:
mov r7, #0x2a
mov r4, #0
b _02262B6C
_02262B56:
mov r7, #0x29
mov r4, #1
b _02262B6C
_02262B5C:
mov r7, #0x2b
mov r4, #2
b _02262B6C
_02262B62:
bl GF_AssertFail
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_02262B6C:
add r0, r5, #0
add r1, r4, #0
mov r2, #0
bl ov49_0225A37C
add r0, r5, #0
mov r1, #1
add r2, r7, #0
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A0FC
mov r3, #0
ldr r0, [sp, #4]
add r1, r5, #0
add r2, r4, #0
str r3, [sp]
bl ov49_02262D70
ldr r0, [sp, #4]
add r1, r5, #0
mov r2, #1
bl ov49_02262E04
add r0, r6, #0
bl ov49_0225EF90
b _02262BEC
_02262BA8:
ldr r0, _02262BF4 ; =gSystem
ldr r1, [r0, #0x48]
mov r0, #0xf3
tst r0, r1
beq _02262BE2
add r0, r4, #0
add r1, r5, #0
bl ov49_02262DB8
add r0, r5, #0
bl ov49_0225A0EC
add r0, r5, #0
bl ov49_02259FF0
add r4, r0, #0
bl ov49_02258DAC
add r1, r0, #0
add r0, r4, #0
mov r2, #1
bl ov49_02258EEC
add r0, r6, #0
bl ov49_0225EF68
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_02262BE2:
add r0, r4, #0
add r1, r5, #0
mov r2, #0
bl ov49_02262E04
_02262BEC:
mov r0, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_02262BF4: .word gSystem
thumb_func_end ov49_02262B14
thumb_func_start ov49_02262BF8
ov49_02262BF8: ; 0x02262BF8
push {r4, r5, r6, lr}
add r6, r2, #0
add r5, r0, #0
add r4, r1, #0
add r0, r6, #0
mov r1, #0
add r2, r3, #0
bl ov49_0225A30C
add r1, r0, #0
add r0, r6, #0
bl ov49_0225A08C
ldr r0, [sp, #0x10]
mov r1, #0x19
strb r0, [r5, #4]
add r0, r4, #0
bl ov49_0225EF8C
pop {r4, r5, r6, pc}
thumb_func_end ov49_02262BF8
thumb_func_start ov49_02262C20
ov49_02262C20: ; 0x02262C20
strb r2, [r0, #4]
strb r3, [r0, #6]
mov r2, #0
strb r2, [r0, #5]
strh r2, [r0, #0xa]
add r0, r1, #0
ldr r3, _02262C34 ; =ov49_0225EF8C
mov r1, #0x1a
bx r3
nop
_02262C34: .word ov49_0225EF8C
thumb_func_end ov49_02262C20
thumb_func_start ov49_02262C38
ov49_02262C38: ; 0x02262C38
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r6, r2, #0
str r0, [sp]
add r0, r5, #0
add r1, r6, #0
add r7, r3, #0
bl ov49_0225A10C
ldr r0, [sp]
mov r4, #0
str r6, [r0, #0x38]
cmp r6, #0
bls _02262C6E
_02262C54:
add r0, r5, #0
mov r1, #0
add r2, r7, r4
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
add r2, r4, #0
bl ov49_0225A144
add r4, r4, #1
cmp r4, r6
blo _02262C54
_02262C6E:
ldr r2, [sp]
ldr r3, _02262CA4 ; =ov49_02269DFC
add r2, #0x18
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [sp]
ldr r1, [r0, #0x38]
strh r1, [r0, #0x28]
ldr r1, [r0, #0x38]
ldrh r0, [r0, #0x2a]
cmp r0, r1
bls _02262C96
ldr r0, [sp]
strh r1, [r0, #0x2a]
_02262C96:
add r0, r5, #0
bl ov49_0225A154
ldr r1, [sp]
str r0, [r1, #0x18]
pop {r3, r4, r5, r6, r7, pc}
nop
_02262CA4: .word ov49_02269DFC
thumb_func_end ov49_02262C38
thumb_func_start ov49_02262CA8
ov49_02262CA8: ; 0x02262CA8
ldr r3, _02262CB0 ; =ov49_0225A134
add r0, r1, #0
bx r3
nop
_02262CB0: .word ov49_0225A134
thumb_func_end ov49_02262CA8
thumb_func_start ov49_02262CB4
ov49_02262CB4: ; 0x02262CB4
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
add r4, r2, #0
add r0, r1, #0
add r6, r3, #0
bl ov49_02259FE8
str r0, [sp, #0x10]
bl sub_0203988C
add r7, r0, #0
ldrb r0, [r4, #1]
bl ov45_0222F314
add r2, r0, #0
cmp r7, #0
bne _02262CEA
mov r0, #4
strb r0, [r4]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
add sp, #0x14
mov r0, #1
pop {r4, r5, r6, r7, pc}
_02262CEA:
cmp r7, #2
bne _02262CFE
add r0, r6, #0
mov r1, #0x15
strh r2, [r5, #8]
bl ov49_0225EF8C
add sp, #0x14
mov r0, #1
pop {r4, r5, r6, r7, pc}
_02262CFE:
ldrb r0, [r5, #7]
cmp r0, r2
beq _02262D1E
strb r2, [r5, #7]
cmp r2, #4
beq _02262D1E
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
ldrb r1, [r4, #2]
ldr r0, [sp, #0x10]
ldr r3, [sp, #0x28]
bl ov45_0222AC14
_02262D1E:
ldrb r0, [r4, #1]
bl ov45_0222F3E8
strh r0, [r5]
mov r0, #0
ldrsh r2, [r5, r0]
cmp r2, #0
bne _02262D58
ldrb r0, [r4, #1]
bl ov45_0222F314
cmp r0, #1
bhi _02262D4A
mov r0, #3
strb r0, [r4]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
add sp, #0x14
mov r0, #1
pop {r4, r5, r6, r7, pc}
_02262D4A:
add r0, r6, #0
mov r1, #0x16
bl ov49_0225EF8C
add sp, #0x14
mov r0, #1
pop {r4, r5, r6, r7, pc}
_02262D58:
ldr r1, _02262D6C ; =0x0000014A
cmp r2, r1
bgt _02262D68
add r0, r6, #0
mov r1, #0x14
bl ov49_0225EF8C
mov r0, #1
_02262D68:
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_02262D6C: .word 0x0000014A
thumb_func_end ov49_02262CB4
thumb_func_start ov49_02262D70
ov49_02262D70: ; 0x02262D70
push {r3, r4, r5, r6, r7, lr}
add r4, r3, #0
add r5, r0, #0
add r7, r1, #0
add r6, r2, #0
cmp r4, #2
blo _02262D82
bl GF_AssertFail
_02262D82:
mov r0, #0
strb r0, [r5]
strb r0, [r5, #1]
strb r0, [r5, #2]
strb r0, [r5, #3]
strb r0, [r5, #4]
strb r0, [r5, #5]
strb r0, [r5, #6]
strb r0, [r5, #7]
strb r4, [r5, #6]
ldr r1, [sp, #0x18]
add r0, r5, #0
strb r6, [r5, #3]
bl ov49_02262DD4
ldr r0, _02262DB4 ; =ov49_02269DF8
mov r1, #0x12
ldrb r0, [r0, r4]
mov r2, #3
mov r3, #0xd
str r0, [sp]
add r0, r7, #0
bl ov49_0225A204
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02262DB4: .word ov49_02269DF8
thumb_func_end ov49_02262D70
thumb_func_start ov49_02262DB8
ov49_02262DB8: ; 0x02262DB8
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]
ldr r3, _02262DD0 ; =ov49_0225A22C
add r0, r1, #0
bx r3
.balign 4, 0
_02262DD0: .word ov49_0225A22C
thumb_func_end ov49_02262DB8
thumb_func_start ov49_02262DD4
ov49_02262DD4: ; 0x02262DD4
push {r4, lr}
add r4, r0, #0
add r0, r1, #0
mov r1, #0x1e
bl _s32_div_f
lsl r0, r0, #0x10
asr r1, r0, #0x10
mov r0, #4
ldrsh r0, [r4, r0]
cmp r1, r0
beq _02262DF6
strh r1, [r4, #4]
ldrb r1, [r4, #7]
mov r0, #8
orr r0, r1
strb r0, [r4, #7]
_02262DF6:
pop {r4, pc}
thumb_func_end ov49_02262DD4
thumb_func_start ov49_02262DF8
ov49_02262DF8: ; 0x02262DF8
push {r3, lr}
mov r3, #0
bl ov49_02262E10
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_02262DF8
thumb_func_start ov49_02262E04
ov49_02262E04: ; 0x02262E04
push {r3, lr}
mov r3, #1
bl ov49_02262E10
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_02262E04
thumb_func_start ov49_02262E10
ov49_02262E10: ; 0x02262E10
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
add r4, r1, #0
str r3, [sp, #4]
cmp r2, #0
beq _02262E22
mov r0, #0xff
strb r0, [r5, #7]
_02262E22:
ldrb r0, [r5, #3]
cmp r0, #0
beq _02262E32
cmp r0, #1
beq _02262E36
cmp r0, #2
beq _02262E3A
b _02262E3E
_02262E32:
mov r6, #0
b _02262E44
_02262E36:
mov r6, #1
b _02262E44
_02262E3A:
mov r6, #2
b _02262E44
_02262E3E:
bl GF_AssertFail
mov r6, #2
_02262E44:
add r0, r6, #0
bl ov45_0222F274
add r7, r0, #0
ldrb r0, [r5]
cmp r0, r7
beq _02262E5A
ldrb r1, [r5, #7]
mov r0, #4
orr r0, r1
strb r0, [r5, #7]
_02262E5A:
strb r7, [r5]
add r0, r6, #0
bl ov45_0222F294
ldrb r1, [r5, #2]
cmp r1, r0
beq _02262E70
ldrb r2, [r5, #7]
mov r1, #4
orr r1, r2
strb r1, [r5, #7]
_02262E70:
strb r0, [r5, #2]
cmp r7, #1
bne _02262E7E
add r0, r6, #0
bl ov45_0222F2D4
b _02262E80
_02262E7E:
mov r0, #4
_02262E80:
ldrb r1, [r5, #1]
cmp r1, r0
beq _02262E8E
ldrb r2, [r5, #7]
mov r1, #2
orr r1, r2
strb r1, [r5, #7]
_02262E8E:
strb r0, [r5, #1]
ldrb r1, [r5, #7]
mov r0, #1
tst r0, r1
beq _02262EC8
mov r0, #0x10
mov r1, #0
str r0, [sp]
add r0, r4, #0
add r2, r1, #0
mov r3, #0x68
bl ov49_0225A24C
ldrb r1, [r5, #3]
add r0, r4, #0
mov r2, #0
bl ov49_0225A37C
add r0, r4, #0
mov r1, #1
mov r2, #0x36
bl ov49_0225A30C
mov r2, #0
add r1, r0, #0
add r0, r4, #0
add r3, r2, #0
bl ov49_0225A23C
_02262EC8:
ldrb r1, [r5, #7]
mov r0, #4
tst r0, r1
beq _02262F18
mov r2, #0x10
add r0, r4, #0
mov r1, #0
mov r3, #0x68
str r2, [sp]
bl ov49_0225A24C
ldr r0, [sp, #4]
cmp r0, #1
bne _02262F18
ldrb r0, [r5, #2]
cmp r0, #0
bne _02262F18
ldrb r0, [r5]
cmp r0, #1
bne _02262F18
add r0, r4, #0
mov r1, #1
mov r2, #0x45
bl ov49_0225A30C
add r6, r0, #0
mov r0, #0
add r1, r6, #0
add r2, r0, #0
bl FontID_String_GetWidth
mov r1, #0x68
sub r0, r1, r0
lsl r0, r0, #0x18
lsr r2, r0, #0x18
add r0, r4, #0
add r1, r6, #0
mov r3, #0x10
bl ov49_0225A23C
_02262F18:
ldrb r1, [r5, #7]
mov r0, #2
tst r0, r1
beq _02262F68
mov r2, #0x20
add r0, r4, #0
mov r1, #0
mov r3, #0x68
str r2, [sp]
bl ov49_0225A24C
mov r0, #2
str r0, [sp]
mov r2, #1
ldrb r1, [r5, #1]
add r0, r4, #0
add r3, r2, #0
bl ov49_0225A31C
mov r0, #2
str r0, [sp]
ldrb r2, [r5, #1]
mov r1, #4
add r0, r4, #0
sub r1, r1, r2
mov r2, #1
mov r3, #0
bl ov49_0225A31C
add r0, r4, #0
mov r1, #1
mov r2, #0x44
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
mov r2, #0
mov r3, #0x20
bl ov49_0225A23C
_02262F68:
ldrb r0, [r5, #6]
cmp r0, #1
bne _02262FAC
ldrb r1, [r5, #7]
mov r0, #8
tst r0, r1
beq _02262FAC
mov r0, #0x10
str r0, [sp]
add r0, r4, #0
mov r1, #0
mov r2, #0x40
mov r3, #0x68
bl ov49_0225A24C
mov r2, #2
str r2, [sp]
mov r1, #4
ldrsh r1, [r5, r1]
add r0, r4, #0
mov r3, #0
bl ov49_0225A31C
add r0, r4, #0
mov r1, #0
mov r2, #0xf
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
mov r2, #0
mov r3, #0x40
bl ov49_0225A23C
_02262FAC:
mov r0, #0
strb r0, [r5, #7]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_02262E10
thumb_func_start ov49_02262FB4
ov49_02262FB4: ; 0x02262FB4
push {r4, r5, r6, r7, lr}
sub sp, #0x54
add r5, r1, #0
add r6, r0, #0
add r0, r5, #0
str r2, [sp, #0xc]
bl ov49_02259FE8
add r7, r0, #0
add r0, r5, #0
bl ov49_0225A010
str r0, [sp, #0x24]
add r0, r6, #0
bl ov49_0225EF84
add r4, r0, #0
add r0, r7, #0
bl ov45_0222B034
str r0, [sp, #0x20]
add r0, r7, #0
bl ov45_0222B040
str r0, [sp, #0x1c]
add r0, r7, #0
bl ov45_0222B06C
cmp r0, #0
beq _0226300C
cmp r4, #0
beq _0226300C
ldrh r0, [r4, #0xa]
cmp r0, #0
beq _0226300C
add r0, r6, #0
mov r1, #0x20
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
mov r0, #0
strh r0, [r4, #0xa]
_0226300C:
cmp r4, #0
beq _0226302E
add r0, r7, #0
bl ov45_0222A5C0
str r0, [sp, #0x18]
ldr r0, [r4, #0x10]
cmp r0, #0
beq _0226302A
ldrb r1, [r4, #3]
add r0, r7, #0
bl ov45_0222A578
str r0, [sp, #0x14]
b _0226302E
_0226302A:
mov r0, #0
str r0, [sp, #0x14]
_0226302E:
add r0, r6, #0
bl ov49_0225EF88
cmp r0, #0
beq _02263056
ldrh r0, [r4, #0xa]
cmp r0, #0
beq _02263056
ldr r0, [sp, #0x14]
cmp r0, #0
bne _02263056
add r0, r6, #0
mov r1, #0x20
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
mov r0, #0
strh r0, [r4, #0xa]
_02263056:
add r0, r6, #0
bl ov49_0225EF88
cmp r0, #0x26
bls _02263064
bl _02263B5E
_02263064:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02263070: ; jump table
.short _022630BE - _02263070 - 2 ; case 0
.short _02263184 - _02263070 - 2 ; case 1
.short _022631A8 - _02263070 - 2 ; case 2
.short _022631F0 - _02263070 - 2 ; case 3
.short _02263226 - _02263070 - 2 ; case 4
.short _02263256 - _02263070 - 2 ; case 5
.short _022632C8 - _02263070 - 2 ; case 6
.short _022632F6 - _02263070 - 2 ; case 7
.short _02263326 - _02263070 - 2 ; case 8
.short _0226335E - _02263070 - 2 ; case 9
.short _0226338C - _02263070 - 2 ; case 10
.short _022633BA - _02263070 - 2 ; case 11
.short _022633EA - _02263070 - 2 ; case 12
.short _02263466 - _02263070 - 2 ; case 13
.short _02263524 - _02263070 - 2 ; case 14
.short _02263554 - _02263070 - 2 ; case 15
.short _022635CC - _02263070 - 2 ; case 16
.short _02263618 - _02263070 - 2 ; case 17
.short _02263628 - _02263070 - 2 ; case 18
.short _02263696 - _02263070 - 2 ; case 19
.short _022636A8 - _02263070 - 2 ; case 20
.short _022636E8 - _02263070 - 2 ; case 21
.short _0226372A - _02263070 - 2 ; case 22
.short _0226375C - _02263070 - 2 ; case 23
.short _0226378A - _02263070 - 2 ; case 24
.short _022637E2 - _02263070 - 2 ; case 25
.short _02263828 - _02263070 - 2 ; case 26
.short _02263870 - _02263070 - 2 ; case 27
.short _022638B6 - _02263070 - 2 ; case 28
.short _02263914 - _02263070 - 2 ; case 29
.short _0226397C - _02263070 - 2 ; case 30
.short _022639AA - _02263070 - 2 ; case 31
.short _022639D8 - _02263070 - 2 ; case 32
.short _02263A42 - _02263070 - 2 ; case 33
.short _02263A74 - _02263070 - 2 ; case 34
.short _02263A9C - _02263070 - 2 ; case 35
.short _02263AD0 - _02263070 - 2 ; case 36
.short _02263ADA - _02263070 - 2 ; case 37
.short _02263AE6 - _02263070 - 2 ; case 38
_022630BE:
add r0, r6, #0
mov r1, #0x50
bl ov49_0225EF40
add r4, r0, #0
mov r1, #0
add r0, #0x44
strh r1, [r0]
add r0, r4, #0
add r0, #0x46
strh r1, [r0]
add r0, r4, #0
add r0, #0x38
str r1, [r4, #0x48]
bl ov49_0226526C
add r0, r5, #0
bl ov49_02259FF0
str r0, [sp, #0x28]
bl ov49_02258DAC
str r0, [sp, #0x2c]
ldr r0, [sp, #0x28]
ldr r1, [sp, #0x2c]
bl ov49_02258F40
str r0, [sp, #0x30]
cmp r0, #0
bne _0226310A
mov r0, #0
strh r0, [r4, #0xa]
add r0, r6, #0
mov r1, #0x26
bl ov49_0225EF8C
bl _02263B5E
_0226310A:
mov r1, #4
bl ov49_02258E60
str r0, [sp, #0x34]
ldr r0, [sp, #0x2c]
mov r1, #6
bl ov49_02258E60
bl ov42_022282A4
str r0, [sp, #0x38]
add r0, r7, #0
bl ov45_0222AE64
ldr r2, [sp, #0x34]
add r0, r4, #0
add r1, r7, #0
bl ov49_02264CA8
str r0, [sp, #0x3c]
ldr r0, [sp, #0x30]
mov r1, #0
str r0, [r4, #0x10]
bl ov49_02259130
ldr r0, [sp, #0x30]
ldr r1, [sp, #0x38]
bl ov49_02259160
ldr r0, [sp, #0x24]
ldr r1, [sp, #0x34]
mov r2, #0
bl ov49_0225EFF0
ldr r0, _022634A0 ; =0x000005E4
bl PlaySE
add r0, r7, #0
mov r1, #9
bl ov45_0222A5E8
ldr r0, [sp, #0x3c]
cmp r0, #1
bne _02263178
ldr r1, [sp, #0x34]
add r0, r5, #0
mov r2, #0
bl ov49_0225A428
add r0, r6, #0
mov r1, #1
bl ov49_0225EF8C
bl _02263B5E
_02263178:
add r0, r6, #0
mov r1, #0x22
bl ov49_0225EF8C
bl _02263B5E
_02263184:
ldrb r1, [r4, #3]
add r0, r7, #0
bl ov45_0222AE74
cmp r0, #1
bne _0226319C
add r0, r6, #0
mov r1, #2
bl ov49_0225EF8C
bl _02263B5E
_0226319C:
add r0, r6, #0
mov r1, #0x22
bl ov49_0225EF8C
bl _02263B5E
_022631A8:
ldr r0, [sp, #0x20]
cmp r0, #4
bhi _022631E4
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_022631BA: ; jump table
.short _022631D8 - _022631BA - 2 ; case 0
.short _02263B5E - _022631BA - 2 ; case 1
.short _022631C4 - _022631BA - 2 ; case 2
.short _022631E4 - _022631BA - 2 ; case 3
.short _022631E4 - _022631BA - 2 ; case 4
_022631C4:
ldrb r1, [r4, #3]
add r0, r7, #0
bl ov45_0222B0E8
add r0, r6, #0
mov r1, #3
bl ov49_0225EF8C
bl _02263B5E
_022631D8:
add r0, r6, #0
mov r1, #0x22
bl ov49_0225EF8C
bl _02263B5E
_022631E4:
add r0, r6, #0
mov r1, #0x20
bl ov49_0225EF8C
bl _02263B5E
_022631F0:
add r0, r7, #0
bl ov45_0222B0F8
add r0, r7, #0
mov r1, #7
bl ov45_0222B118
ldr r0, [sp, #0x18]
add r1, r7, #0
str r0, [sp]
ldr r0, [sp, #0x14]
add r2, r5, #0
str r0, [sp, #4]
ldrb r3, [r4, #4]
add r0, r4, #0
bl ov49_02264D4C
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #4
add r3, r6, #0
bl ov49_02264CFC
bl _02263B5E
_02263226:
ldr r0, [sp, #0x14]
add r1, r7, #0
str r0, [sp]
ldr r0, [sp, #0x18]
add r2, r5, #0
str r0, [sp, #4]
ldrb r3, [r4, #5]
add r0, r4, #0
bl ov49_02264D4C
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #5
add r3, r6, #0
bl ov49_02264CFC
add r0, r7, #0
mov r1, #0
bl ov45_0222AED8
bl _02263B5E
_02263256:
ldr r0, [sp, #0x20]
cmp r0, #4
bhi _022632B6
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02263268: ; jump table
.short _022632B6 - _02263268 - 2 ; case 0
.short _022632B6 - _02263268 - 2 ; case 1
.short _02263272 - _02263268 - 2 ; case 2
.short _0226329A - _02263268 - 2 ; case 3
.short _022632B6 - _02263268 - 2 ; case 4
_02263272:
add r0, r5, #0
bl ov49_0225A0CC
add r0, r7, #0
bl ov45_0222B028
cmp r0, #0
beq _0226328E
add r0, r6, #0
mov r1, #6
bl ov49_0225EF8C
bl _02263B5E
_0226328E:
add r0, r6, #0
mov r1, #8
bl ov49_0225EF8C
bl _02263B5E
_0226329A:
add r0, r5, #0
bl ov49_0225A0DC
cmp r0, #0
bne _022632AA
add r0, r5, #0
bl ov49_0225A0BC
_022632AA:
add r0, r4, #0
add r1, r5, #0
bl ov49_02264EC8
bl _02263B5E
_022632B6:
add r0, r6, #0
mov r1, #0x20
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
bl _02263B5E
_022632C8:
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl ov49_02264E20
cmp r0, #1
bne _022632EA
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #7
add r3, r6, #0
bl ov49_02264CFC
bl _02263B5E
_022632EA:
add r0, r6, #0
mov r1, #7
bl ov49_0225EF8C
bl _02263B5E
_022632F6:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x28
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #9
add r3, r6, #0
bl ov49_02264CFC
bl _02263B5E
_02263326:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrh r1, [r4, #8]
add r0, r5, #0
mov r2, #1
bl ov49_0225A334
ldrb r1, [r4, #3]
ldrh r2, [r4, #8]
add r0, r5, #0
bl ov49_02264C50
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #9
add r3, r6, #0
bl ov49_02264CFC
b _02263B5E
_0226335E:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x2e
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0xb
add r3, r6, #0
bl ov49_02264CFC
b _02263B5E
_0226338C:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x36
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0xb
add r3, r6, #0
bl ov49_02264CFC
b _02263B5E
_022633BA:
mov r0, #0
str r0, [sp]
add r0, r4, #0
ldr r3, _022634A4 ; =0x00000203
add r0, #0x14
add r1, r5, #0
mov r2, #3
bl ov49_02264F9C
add r1, r4, #0
mov r2, #0
add r0, r5, #0
add r1, #0x14
add r3, r2, #0
bl ov49_0225A174
add r0, r4, #0
bl ov49_02264F10
add r0, r6, #0
mov r1, #0xc
bl ov49_0225EF8C
b _02263B5E
_022633EA:
add r0, r5, #0
bl ov49_0225A1D4
cmp r0, #0
beq _022633FE
cmp r0, #1
beq _0226340A
cmp r0, #2
beq _02263428
b _0226343A
_022633FE:
add r0, r6, #0
mov r1, #0xd
bl ov49_0225EF8C
mov r0, #1
b _02263444
_0226340A:
add r0, r6, #0
mov r1, #0x13
bl ov49_0225EF8C
ldr r0, [r4, #0x10]
mov r1, #4
bl ov49_02258E60
add r2, r0, #0
ldr r1, [sp, #0xc]
add r0, r7, #0
bl ov45_0222AB94
mov r0, #1
b _02263444
_02263428:
add r0, r7, #0
bl ov45_0222AF80
add r0, r6, #0
mov r1, #0x21
bl ov49_0225EF8C
mov r0, #1
b _02263444
_0226343A:
add r0, r4, #0
add r1, r5, #0
bl ov49_02264F24
mov r0, #0
_02263444:
cmp r0, #1
beq _0226344A
b _02263B5E
_0226344A:
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl ov49_0225A1E4
add r0, r4, #0
add r0, #0x14
add r1, r5, #0
bl ov49_02265260
add r0, r4, #0
bl ov49_02264F1C
b _02263B5E
_02263466:
ldr r0, [sp, #0x18]
bl ov45_0222AAC8
str r0, [sp, #0x40]
ldr r0, [sp, #0x14]
bl ov45_0222AAC8
ldr r1, [sp, #0x40]
cmp r1, r0
bne _022634D4
mov r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
mov r0, #0
str r0, [sp]
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
mov r3, #1
bl ov49_02264E90
ldrb r1, [r4, #3]
ldr r2, _022634A8 ; =0x000001FB
b _022634AC
nop
_022634A0: .word 0x000005E4
_022634A4: .word 0x00000203
_022634A8: .word 0x000001FB
_022634AC:
add r0, r5, #0
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x12
add r3, r6, #0
bl ov49_02264CFC
add r0, r7, #0
mov r1, #4
bl ov45_0222AED8
b _02263B5E
_022634D4:
mov r2, #0
strb r2, [r4, #0xc]
ldrb r1, [r4, #3]
add r0, r5, #0
bl ov49_0225A334
mov r3, #1
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
str r3, [sp]
bl ov49_02264E90
mov r0, #0
str r0, [sp]
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
mov r3, #2
bl ov49_02264E90
mov r2, #0x7f
ldrb r1, [r4, #3]
add r0, r5, #0
lsl r2, r2, #2
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0xe
add r3, r6, #0
bl ov49_02264CFC
b _02263B5E
_02263524:
mov r0, #1
str r0, [sp]
add r0, r4, #0
ldr r3, _02263858 ; =0x00000206
add r0, #0x14
add r1, r5, #0
mov r2, #2
bl ov49_02264F9C
add r1, r4, #0
mov r2, #0
add r0, r5, #0
add r1, #0x14
add r3, r2, #0
bl ov49_0225A174
add r0, r4, #0
bl ov49_02264F10
add r0, r6, #0
mov r1, #0xf
bl ov49_0225EF8C
b _02263B5E
_02263554:
add r0, r5, #0
bl ov49_0225A1D4
cmp r0, #0
beq _02263564
cmp r0, #1
beq _02263594
b _022635A0
_02263564:
add r0, r7, #0
mov r1, #3
bl ov45_0222AED8
add r0, r6, #0
mov r1, #0x10
bl ov49_0225EF8C
ldr r0, [r4, #0x10]
mov r1, #4
bl ov49_02258E60
add r6, r0, #0
ldr r0, [sp, #0x14]
bl ov45_0222AAC8
add r3, r0, #0
ldr r1, [sp, #0xc]
add r0, r7, #0
add r2, r6, #0
bl ov45_0222ABD0
mov r0, #1
b _022635AA
_02263594:
add r0, r6, #0
mov r1, #0xa
bl ov49_0225EF8C
mov r0, #1
b _022635AA
_022635A0:
add r0, r4, #0
add r1, r5, #0
bl ov49_02264F24
mov r0, #0
_022635AA:
cmp r0, #1
beq _022635B0
b _02263B5E
_022635B0:
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl ov49_0225A1E4
add r0, r4, #0
add r0, #0x14
add r1, r5, #0
bl ov49_02265260
add r0, r4, #0
bl ov49_02264F1C
b _02263B5E
_022635CC:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
mov r0, #0
str r0, [sp]
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
mov r3, #1
bl ov49_02264E90
ldrb r1, [r4, #3]
ldr r2, _0226385C ; =0x000001FE
add r0, r5, #0
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x11
add r3, r6, #0
bl ov49_02264CFC
ldr r0, [sp, #0x14]
bl ov45_0222AAC8
add r1, r0, #0
add r0, r7, #0
bl ov45_0222A72C
b _02263B5E
_02263618:
ldr r0, _02263860 ; =0x000005BF
bl PlaySE
add r0, r6, #0
mov r1, #0x12
bl ov49_0225EF8C
b _02263B5E
_02263628:
ldr r0, [sp, #0x20]
cmp r0, #4
bhi _02263686
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0226363A: ; jump table
.short _02263686 - _0226363A - 2 ; case 0
.short _02263686 - _0226363A - 2 ; case 1
.short _02263644 - _0226363A - 2 ; case 2
.short _0226366C - _0226363A - 2 ; case 3
.short _02263686 - _0226363A - 2 ; case 4
_02263644:
ldr r1, [sp, #0x14]
add r0, r4, #0
bl ov49_02264F78
ldrb r0, [r4, #0xc]
cmp r0, #1
bne _0226365C
add r0, r6, #0
mov r1, #0x21
bl ov49_0225EF8C
b _02263664
_0226365C:
add r0, r6, #0
mov r1, #0xa
bl ov49_0225EF8C
_02263664:
add r0, r5, #0
bl ov49_0225A0CC
b _02263B5E
_0226366C:
add r0, r5, #0
bl ov49_0225A0DC
cmp r0, #0
bne _0226367C
add r0, r5, #0
bl ov49_0225A0BC
_0226367C:
add r0, r4, #0
add r1, r5, #0
bl ov49_02264EC8
b _02263B5E
_02263686:
add r0, r6, #0
mov r1, #0x20
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
b _02263B5E
_02263696:
add r0, r7, #0
mov r1, #5
bl ov45_0222AED8
add r0, r6, #0
mov r1, #0x14
bl ov49_0225EF8C
b _02263B5E
_022636A8:
ldr r0, _02263864 ; =0x00000207
add r1, r5, #0
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
add r0, r4, #0
add r0, #0x14
mov r2, #0x1e
mov r3, #4
bl ov49_02265044
mov r0, #8
str r0, [sp]
mov r0, #3
str r0, [sp, #4]
mov r0, #0x17
add r1, r4, #0
mov r2, #0
str r0, [sp, #8]
add r0, r5, #0
add r1, #0x14
add r3, r2, #0
bl ov49_0225A1A4
add r0, r6, #0
mov r1, #0x15
bl ov49_0225EF8C
add r0, r4, #0
bl ov49_02264F10
b _02263B5E
_022636E8:
add r0, r5, #0
bl ov49_0225A1D4
mov r1, #1
mvn r1, r1
str r0, [sp, #0x44]
cmp r0, r1
beq _022636FE
add r1, r1, #1
cmp r0, r1
bne _02263708
_022636FE:
add r0, r4, #0
add r1, r5, #0
bl ov49_02264F24
b _02263B5E
_02263708:
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl ov49_0225A1E4
add r0, r4, #0
add r0, #0x14
add r1, r5, #0
bl ov49_02265260
ldr r0, [sp, #0x44]
mov r1, #0x16
strb r0, [r4]
add r0, r6, #0
bl ov49_0225EF8C
b _02263B5E
_0226372A:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r3, [r4]
ldr r2, _02263868 ; =0x000001DD
ldrb r1, [r4, #3]
add r0, r5, #0
add r2, r3, r2
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x17
add r3, r6, #0
bl ov49_02264CFC
b _02263B5E
_0226375C:
mov r0, #0
str r0, [sp]
ldrb r3, [r4]
add r0, r4, #0
add r0, #0x14
lsl r3, r3, #2
add r1, r5, #0
mov r2, #4
add r3, #0x73
bl ov49_02264F9C
add r1, r4, #0
mov r2, #0
add r0, r5, #0
add r1, #0x14
add r3, r2, #0
bl ov49_0225A174
add r0, r6, #0
mov r1, #0x18
bl ov49_0225EF8C
b _02263B5E
_0226378A:
add r0, r5, #0
bl ov49_0225A1D4
str r0, [sp, #0x48]
cmp r0, #3
bhi _022637D8
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_022637A2: ; jump table
.short _022637AA - _022637A2 - 2 ; case 0
.short _022637AA - _022637A2 - 2 ; case 1
.short _022637AA - _022637A2 - 2 ; case 2
.short _022637AA - _022637A2 - 2 ; case 3
_022637AA:
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl ov49_0225A1E4
add r0, r4, #0
add r0, #0x14
add r1, r5, #0
bl ov49_02265260
add r0, r4, #0
bl ov49_02264F1C
ldrb r0, [r4]
lsl r1, r0, #2
ldr r0, [sp, #0x48]
add r0, r0, r1
strb r0, [r4, #1]
add r0, r6, #0
mov r1, #0x19
bl ov49_0225EF8C
b _02263B5E
_022637D8:
add r0, r4, #0
add r1, r5, #0
bl ov49_02264F24
b _02263B5E
_022637E2:
ldrb r2, [r4, #1]
add r0, r4, #0
add r0, #0x38
add r2, r2, #6
lsl r2, r2, #0x10
add r1, r7, #0
lsr r2, r2, #0x10
mov r3, #2
bl ov49_02265274
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r3, [r4, #1]
ldr r2, _0226386C ; =0x00000165
ldrb r1, [r4, #3]
add r0, r5, #0
add r2, r3, r2
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x1a
add r3, r6, #0
bl ov49_02264CFC
b _02263B5E
_02263828:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r2, [r4]
ldrb r1, [r4, #3]
add r0, r5, #0
add r2, #0x55
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x1b
add r3, r6, #0
bl ov49_02264CFC
b _02263B5E
.balign 4, 0
_02263858: .word 0x00000206
_0226385C: .word 0x000001FE
_02263860: .word 0x000005BF
_02263864: .word 0x00000207
_02263868: .word 0x000001DD
_0226386C: .word 0x00000165
_02263870:
add r0, r4, #0
add r0, #0x38
bl ov49_022652D0
cmp r0, #1
bne _022638A2
add r0, r4, #0
add r0, #0x38
bl ov49_022652E0
cmp r0, #2
bne _02263892
add r0, r6, #0
mov r1, #0x1c
bl ov49_0225EF8C
b _02263B5E
_02263892:
add r0, r6, #0
mov r1, #0x20
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
b _02263B5E
_022638A2:
add r0, r5, #0
bl ov49_0225A0DC
cmp r0, #0
beq _022638AE
b _02263B5E
_022638AE:
add r0, r5, #0
bl ov49_0225A0BC
b _02263B5E
_022638B6:
ldr r0, [sp, #0x20]
cmp r0, #4
bhi _02263904
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_022638C8: ; jump table
.short _02263904 - _022638C8 - 2 ; case 0
.short _02263904 - _022638C8 - 2 ; case 1
.short _022638D2 - _022638C8 - 2 ; case 2
.short _022638EA - _022638C8 - 2 ; case 3
.short _02263904 - _022638C8 - 2 ; case 4
_022638D2:
ldr r1, [sp, #0x14]
add r0, r4, #0
bl ov49_02264F78
add r0, r6, #0
mov r1, #0x1d
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
b _02263B5E
_022638EA:
add r0, r5, #0
bl ov49_0225A0DC
cmp r0, #0
bne _022638FA
add r0, r5, #0
bl ov49_0225A0BC
_022638FA:
add r0, r4, #0
add r1, r5, #0
bl ov49_02264EC8
b _02263B5E
_02263904:
add r0, r6, #0
mov r1, #0x20
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
b _02263B5E
_02263914:
ldr r0, [sp, #0x1c]
sub r0, r0, #6
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x10]
ldr r0, [sp, #0x1c]
cmp r0, #0x7e
bhs _02263928
cmp r0, #6
bhs _02263932
_02263928:
add r0, r6, #0
mov r1, #0x23
bl ov49_0225EF8C
b _02263B5E
_02263932:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldr r2, [sp, #0x10]
ldrb r1, [r4, #3]
add r0, r5, #0
add r2, #0xec
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
ldrb r1, [r4, #1]
ldr r0, [sp, #0x10]
cmp r0, r1
bne _0226396A
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x1e
add r3, r6, #0
bl ov49_02264CFC
b _02263B5E
_0226396A:
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x1f
add r3, r6, #0
bl ov49_02264CFC
b _02263B5E
_0226397C:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x33
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0xa
add r3, r6, #0
bl ov49_02264CFC
b _02263B5E
_022639AA:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x32
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x25
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0xa
add r3, r6, #0
bl ov49_02264CFC
b _02263B5E
_022639D8:
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl ov49_0225A1E4
add r0, r4, #0
add r0, #0x14
add r1, r5, #0
bl ov49_02265260
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x2d
bl ov49_02264C04
str r0, [sp, #0x4c]
ldr r1, [sp, #0x4c]
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0
strh r0, [r4, #0xa]
ldr r0, [sp, #0x4c]
bl String_GetLength
str r0, [sp, #0x50]
add r0, r5, #0
bl ov49_0225CB70
ldr r1, [sp, #0x50]
mul r0, r1
lsr r1, r0, #1
add r1, #0x3c
cmp r1, #0x80
bhs _02263A22
mov r1, #0x80
b _02263A28
_02263A22:
cmp r1, #0xff
bls _02263A28
mov r1, #0xff
_02263A28:
mov r0, #0x24
lsl r1, r1, #0x18
str r0, [sp]
add r0, r4, #0
lsr r1, r1, #0x18
mov r2, #0x26
add r3, r6, #0
bl ov49_02264CFC
add r0, r7, #0
bl ov45_0222AFC4
b _02263B5E
_02263A42:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x2b
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0
strh r0, [r4, #0xa]
mov r0, #0x24
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x26
add r3, r6, #0
bl ov49_02264CFC
b _02263B5E
_02263A74:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x2a
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0
strh r0, [r4, #0xa]
mov r0, #0x24
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x26
add r3, r6, #0
bl ov49_02264CFC
b _02263B5E
_02263A9C:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
mov r2, #0x59
ldrb r1, [r4, #3]
add r0, r5, #0
lsl r2, r2, #2
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0
strh r0, [r4, #0xa]
mov r0, #0x24
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x26
add r3, r6, #0
bl ov49_02264CFC
b _02263B5E
_02263AD0:
add r0, r4, #0
add r1, r6, #0
bl ov49_02264D14
b _02263B5E
_02263ADA:
add r0, r4, #0
add r1, r6, #0
add r2, r5, #0
bl ov49_02264D30
b _02263B5E
_02263AE6:
add r0, r4, #0
add r0, #0x44
ldrh r0, [r0]
cmp r0, #1
bne _02263AFE
add r1, r4, #0
add r1, #0x46
ldrh r1, [r1]
ldr r2, [r4, #0x48]
add r0, r7, #0
bl ov45_0222A704
_02263AFE:
add r0, r7, #0
bl ov45_0222AE64
add r0, r5, #0
bl ov49_0225A0EC
add r0, r7, #0
mov r1, #1
bl ov45_0222A5E8
add r0, r5, #0
bl ov49_02259FF0
add r7, r0, #0
bl ov49_02258DAC
add r1, r0, #0
add r0, r7, #0
mov r2, #1
bl ov49_02258EEC
ldr r0, [r4, #0x10]
cmp r0, #0
beq _02263B4C
mov r1, #1
bl ov49_02259130
ldr r0, [r4, #0x10]
mov r1, #4
bl ov49_02258E60
add r1, r0, #0
ldr r0, [sp, #0x24]
mov r2, #1
bl ov49_0225EFF0
add r0, r5, #0
bl ov49_0225A4D0
_02263B4C:
add r0, r4, #0
bl ov49_02264CF8
add r0, r6, #0
bl ov49_0225EF68
add sp, #0x54
mov r0, #1
pop {r4, r5, r6, r7, pc}
_02263B5E:
add r0, r4, #0
bl ov49_02264F60
add r4, #0x38
add r0, r4, #0
add r1, r7, #0
bl ov49_0226529C
mov r0, #0
add sp, #0x54
pop {r4, r5, r6, r7, pc}
thumb_func_end ov49_02262FB4
thumb_func_start ov49_02263B74
ov49_02263B74: ; 0x02263B74
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x28
add r5, r1, #0
add r6, r0, #0
add r0, r5, #0
bl ov49_02259FE8
add r7, r0, #0
add r0, r6, #0
bl ov49_0225EF84
add r4, r0, #0
add r0, r7, #0
bl ov45_0222B034
str r0, [sp, #0x14]
add r0, r7, #0
bl ov45_0222B040
str r0, [sp, #0x10]
add r0, r7, #0
bl ov45_0222B06C
cmp r0, #0
beq _02263BC2
cmp r4, #0
beq _02263BC2
ldrh r0, [r4, #0xa]
cmp r0, #1
bne _02263BC2
add r0, r6, #0
mov r1, #0x1a
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
mov r0, #0
strh r0, [r4, #0xa]
_02263BC2:
cmp r4, #0
beq _02263BD8
add r0, r7, #0
bl ov45_0222A5C0
str r0, [sp, #0xc]
ldrb r1, [r4, #3]
add r0, r7, #0
bl ov45_0222A578
str r0, [sp, #8]
_02263BD8:
add r0, r6, #0
bl ov49_0225EF88
cmp r0, #0
beq _02263C00
ldrh r0, [r4, #0xa]
cmp r0, #1
bne _02263C00
ldr r0, [sp, #8]
cmp r0, #0
bne _02263C00
add r0, r6, #0
mov r1, #0x1a
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
mov r0, #0
strh r0, [r4, #0xa]
_02263C00:
add r0, r6, #0
bl ov49_0225EF88
cmp r0, #0x1f
bhi _02263CCA
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02263C16: ; jump table
.short _02263C56 - _02263C16 - 2 ; case 0
.short _02263CC0 - _02263C16 - 2 ; case 1
.short _02263CF4 - _02263C16 - 2 ; case 2
.short _02263D28 - _02263C16 - 2 ; case 3
.short _02263D9A - _02263C16 - 2 ; case 4
.short _02263DC4 - _02263C16 - 2 ; case 5
.short _02263DF2 - _02263C16 - 2 ; case 6
.short _02263E2A - _02263C16 - 2 ; case 7
.short _02263E58 - _02263C16 - 2 ; case 8
.short _02263E86 - _02263C16 - 2 ; case 9
.short _02263F4C - _02263C16 - 2 ; case 10
.short _02263F88 - _02263C16 - 2 ; case 11
.short _02263FD0 - _02263C16 - 2 ; case 12
.short _0226400C - _02263C16 - 2 ; case 13
.short _0226405A - _02263C16 - 2 ; case 14
.short _0226409E - _02263C16 - 2 ; case 15
.short _022640CC - _02263C16 - 2 ; case 16
.short _0226412C - _02263C16 - 2 ; case 17
.short _0226417A - _02263C16 - 2 ; case 18
.short _022641AA - _02263C16 - 2 ; case 19
.short _022641DA - _02263C16 - 2 ; case 20
.short _0226420C - _02263C16 - 2 ; case 21
.short _02264240 - _02263C16 - 2 ; case 22
.short _022642CE - _02263C16 - 2 ; case 23
.short _0226431A - _02263C16 - 2 ; case 24
.short _02264364 - _02263C16 - 2 ; case 25
.short _02264392 - _02263C16 - 2 ; case 26
.short _022643FC - _02263C16 - 2 ; case 27
.short _0226442E - _02263C16 - 2 ; case 28
.short _0226445C - _02263C16 - 2 ; case 29
.short _02264466 - _02263C16 - 2 ; case 30
.short _02264472 - _02263C16 - 2 ; case 31
_02263C56:
add r0, r6, #0
mov r1, #0x50
bl ov49_0225EF40
add r4, r0, #0
mov r1, #0
add r0, #0x44
strh r1, [r0]
add r0, r4, #0
add r0, #0x46
strh r1, [r0]
add r0, r7, #0
str r1, [r4, #0x48]
bl ov45_0222B020
str r0, [sp, #0x18]
ldr r2, [sp, #0x18]
add r0, r4, #0
add r1, r7, #0
bl ov49_02264CA8
str r0, [sp, #0x1c]
ldr r0, _02263FC8 ; =0x000005E4
bl PlaySE
add r0, r7, #0
mov r1, #9
bl ov45_0222A5E8
ldr r0, [sp, #0x1c]
cmp r0, #1
bne _02263CB4
ldr r1, [sp, #0x18]
add r0, r5, #0
mov r2, #0
bl ov49_0225A428
ldr r1, [sp, #0x18]
add r0, r7, #0
bl ov45_0222B0E8
add r0, r6, #0
mov r1, #1
bl ov49_0225EF8C
bl _022644DA
_02263CB4:
add r0, r6, #0
mov r1, #0x1a
bl ov49_0225EF8C
bl _022644DA
_02263CC0:
add r0, r7, #0
bl ov45_0222B0B0
cmp r0, #0
bne _02263CCE
_02263CCA:
bl _022644DA
_02263CCE:
ldr r0, [sp, #8]
add r1, r7, #0
str r0, [sp]
ldr r0, [sp, #0xc]
add r2, r5, #0
str r0, [sp, #4]
ldrb r3, [r4, #5]
add r0, r4, #0
bl ov49_02264D4C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #2
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_02263CF4:
add r0, r7, #0
bl ov45_0222B0F8
add r0, r7, #0
mov r1, #7
bl ov45_0222B118
ldr r0, [sp, #0xc]
add r1, r7, #0
str r0, [sp]
ldr r0, [sp, #8]
add r2, r5, #0
str r0, [sp, #4]
ldrb r3, [r4, #4]
add r0, r4, #0
bl ov49_02264D4C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #3
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_02263D28:
ldr r0, [sp, #0x14]
cmp r0, #4
bhi _02263D8A
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02263D3A: ; jump table
.short _02263D8A - _02263D3A - 2 ; case 0
.short _02263D8A - _02263D3A - 2 ; case 1
.short _02263D70 - _02263D3A - 2 ; case 2
.short _02263D44 - _02263D3A - 2 ; case 3
.short _02263D8A - _02263D3A - 2 ; case 4
_02263D44:
add r0, r5, #0
bl ov49_0225A0CC
add r0, r7, #0
mov r1, #0
bl ov45_0222AED8
add r0, r7, #0
bl ov45_0222B028
cmp r0, #0
beq _02263D66
add r0, r6, #0
mov r1, #4
bl ov49_0225EF8C
b _022644DA
_02263D66:
add r0, r6, #0
mov r1, #6
bl ov49_0225EF8C
b _022644DA
_02263D70:
add r0, r5, #0
bl ov49_0225A0DC
cmp r0, #0
bne _02263D80
add r0, r5, #0
bl ov49_0225A0BC
_02263D80:
add r0, r4, #0
add r1, r5, #0
bl ov49_02264EC8
b _022644DA
_02263D8A:
add r0, r6, #0
mov r1, #0x1a
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
b _022644DA
_02263D9A:
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl ov49_02264E20
cmp r0, #1
bne _02263DBA
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #5
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_02263DBA:
add r0, r6, #0
mov r1, #5
bl ov49_0225EF8C
b _022644DA
_02263DC4:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x28
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #7
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_02263DF2:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrh r1, [r4, #8]
add r0, r5, #0
mov r2, #1
bl ov49_0225A334
ldrb r1, [r4, #3]
ldrh r2, [r4, #8]
add r0, r5, #0
bl ov49_02264C50
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #7
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_02263E2A:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x2f
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #9
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_02263E58:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x35
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #9
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_02263E86:
ldr r0, [sp, #0x14]
cmp r0, #4
bhi _02263F3C
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02263E98: ; jump table
.short _02263F2C - _02263E98 - 2 ; case 0
.short _02263F3C - _02263E98 - 2 ; case 1
.short _02263F12 - _02263E98 - 2 ; case 2
.short _02263EA2 - _02263E98 - 2 ; case 3
.short _02263F3C - _02263E98 - 2 ; case 4
_02263EA2:
ldr r0, [sp, #0x10]
cmp r0, #3
beq _02263EB2
cmp r0, #4
beq _02263ECE
cmp r0, #5
beq _02263EEA
b _02263EFC
_02263EB2:
add r0, r6, #0
mov r1, #0xa
bl ov49_0225EF8C
add r0, r7, #0
bl ov45_0222B0BC
mov r0, #1
str r0, [r4, #0x4c]
ldr r1, [sp, #8]
add r0, r4, #0
bl ov49_02264F78
b _02263F0A
_02263ECE:
add r0, r6, #0
mov r1, #0xe
bl ov49_0225EF8C
add r0, r7, #0
bl ov45_0222B0BC
mov r0, #1
str r0, [r4, #0x4c]
ldr r1, [sp, #8]
add r0, r4, #0
bl ov49_02264F78
b _02263F0A
_02263EEA:
add r0, r7, #0
mov r1, #1
bl ov45_0222AED8
add r0, r6, #0
mov r1, #0xf
bl ov49_0225EF8C
b _02263F0A
_02263EFC:
add r0, r6, #0
mov r1, #0x1a
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
_02263F0A:
add r0, r5, #0
bl ov49_0225A0CC
b _022644DA
_02263F12:
add r0, r5, #0
bl ov49_0225A0DC
cmp r0, #0
bne _02263F22
add r0, r5, #0
bl ov49_0225A0BC
_02263F22:
add r0, r4, #0
add r1, r5, #0
bl ov49_02264EC8
b _022644DA
_02263F2C:
add r0, r6, #0
mov r1, #0x1b
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
b _022644DA
_02263F3C:
add r0, r6, #0
mov r1, #0x1a
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
b _022644DA
_02263F4C:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
mov r3, #1
str r3, [sp]
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl ov49_02264E90
ldrb r1, [r4, #3]
ldr r2, _02263FCC ; =0x000001FF
add r0, r5, #0
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0xb
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_02263F88:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
mov r3, #1
str r3, [sp]
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl ov49_02264E90
mov r2, #2
ldrb r1, [r4, #3]
add r0, r5, #0
lsl r2, r2, #8
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0xc
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
nop
_02263FC8: .word 0x000005E4
_02263FCC: .word 0x000001FF
_02263FD0:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
mov r3, #1
str r3, [sp]
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl ov49_02264E90
ldrb r1, [r4, #3]
ldr r2, _02264348 ; =0x00000201
add r0, r5, #0
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0xd
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_0226400C:
ldr r0, _0226434C ; =0x000005BF
bl PlaySE
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
ldr r2, _02264350 ; =0x00000202
add r0, r5, #0
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #8
add r3, r6, #0
bl ov49_02264CFC
add r0, r7, #0
mov r1, #2
bl ov45_0222AED8
add r0, r7, #0
bl ov45_0222A5C0
bl ov45_0222AAC8
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A478
b _022644DA
_0226405A:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
mov r3, #1
str r3, [sp]
add r0, r4, #0
add r1, r7, #0
add r2, r5, #0
bl ov49_02264E90
ldrb r1, [r4, #3]
ldr r2, _02264354 ; =0x000001FB
add r0, r5, #0
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x1b
add r3, r6, #0
bl ov49_02264CFC
add r0, r7, #0
mov r1, #2
bl ov45_0222AED8
b _022644DA
_0226409E:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
ldr r2, _02264358 ; =0x000002AF
add r0, r5, #0
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x10
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_022640CC:
ldr r0, [sp, #0x14]
cmp r0, #4
bhi _0226411C
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_022640DE: ; jump table
.short _0226411C - _022640DE - 2 ; case 0
.short _0226411C - _022640DE - 2 ; case 1
.short _02264102 - _022640DE - 2 ; case 2
.short _022640E8 - _022640DE - 2 ; case 3
.short _0226411C - _022640DE - 2 ; case 4
_022640E8:
add r0, r6, #0
mov r1, #0x11
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
add r0, r7, #0
bl ov45_0222B0BC
mov r0, #1
str r0, [r4, #0x4c]
b _022644DA
_02264102:
add r0, r5, #0
bl ov49_0225A0DC
cmp r0, #0
bne _02264112
add r0, r5, #0
bl ov49_0225A0BC
_02264112:
add r0, r4, #0
add r1, r5, #0
bl ov49_02264EC8
b _022644DA
_0226411C:
add r0, r6, #0
mov r1, #0x1a
bl ov49_0225EF8C
add r0, r5, #0
bl ov49_0225A0CC
b _022644DA
_0226412C:
ldr r0, [sp, #0x10]
cmp r0, #6
blo _02264136
cmp r0, #0x7e
blo _02264140
_02264136:
add r0, r6, #0
mov r1, #0x1a
bl ov49_0225EF8C
b _022644DA
_02264140:
sub r0, r0, #6
strb r0, [r4, #2]
ldrb r0, [r4, #2]
mov r2, #0
lsr r0, r0, #2
strb r0, [r4]
ldrb r1, [r4, #3]
add r0, r5, #0
bl ov49_0225A334
ldrb r2, [r4]
ldrb r1, [r4, #3]
add r0, r5, #0
add r2, #0x37
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x12
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_0226417A:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r2, [r4]
ldrb r1, [r4, #3]
add r0, r5, #0
add r2, #0x55
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x13
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_022641AA:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r2, [r4, #2]
ldrb r1, [r4, #3]
add r0, r5, #0
add r2, #0xec
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x14
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_022641DA:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r3, [r4]
ldr r2, _0226435C ; =0x000001DD
ldrb r1, [r4, #3]
add r0, r5, #0
add r2, r3, r2
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x15
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_0226420C:
mov r0, #2
str r0, [sp]
ldrb r3, [r4]
add r0, r4, #0
add r0, #0x14
lsl r3, r3, #2
add r1, r5, #0
mov r2, #5
add r3, #0x73
bl ov49_02264F9C
add r1, r4, #0
mov r2, #0
add r0, r5, #0
add r1, #0x14
add r3, r2, #0
bl ov49_0225A174
add r0, r4, #0
bl ov49_02264F10
add r0, r6, #0
mov r1, #0x16
bl ov49_0225EF8C
b _022644DA
_02264240:
add r0, r5, #0
bl ov49_0225A1D4
cmp r0, #4
bhi _0226429A
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_02264256: ; jump table
.short _02264260 - _02264256 - 2 ; case 0
.short _02264260 - _02264256 - 2 ; case 1
.short _02264260 - _02264256 - 2 ; case 2
.short _02264260 - _02264256 - 2 ; case 3
.short _02264282 - _02264256 - 2 ; case 4
_02264260:
ldrb r1, [r4]
lsl r1, r1, #2
add r0, r0, r1
strb r0, [r4, #1]
ldrb r1, [r4, #1]
add r0, r7, #0
add r1, r1, #6
lsl r1, r1, #0x10
lsr r1, r1, #0x10
bl ov45_0222AED8
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
mov r0, #1
b _022642A4
_02264282:
mov r0, #0x7e
strb r0, [r4, #1]
ldrb r1, [r4, #1]
add r0, r7, #0
bl ov45_0222AED8
add r0, r6, #0
mov r1, #0x1c
bl ov49_0225EF8C
mov r0, #1
b _022642A4
_0226429A:
add r0, r4, #0
add r1, r5, #0
bl ov49_02264F24
mov r0, #0
_022642A4:
cmp r0, #0
bne _022642AA
b _022644DA
_022642AA:
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl ov49_0225A1E4
add r0, r4, #0
add r0, #0x14
add r1, r5, #0
bl ov49_02265260
add r0, r4, #0
bl ov49_02264F1C
ldr r1, [sp, #8]
add r0, r4, #0
bl ov49_02264F78
b _022644DA
_022642CE:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r3, [r4, #1]
ldr r2, _02264360 ; =0x00000165
ldrb r1, [r4, #3]
add r0, r5, #0
add r2, r3, r2
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
ldrb r1, [r4, #2]
ldrb r0, [r4, #1]
cmp r1, r0
bne _02264308
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x18
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_02264308:
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x19
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_0226431A:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x33
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x19
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
.balign 4, 0
_02264348: .word 0x00000201
_0226434C: .word 0x000005BF
_02264350: .word 0x00000202
_02264354: .word 0x000001FB
_02264358: .word 0x000002AF
_0226435C: .word 0x000001DD
_02264360: .word 0x00000165
_02264364:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x34
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #8
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_02264392:
mov r1, #0
add r0, r5, #0
add r2, r1, #0
bl ov49_0225A1E4
add r0, r4, #0
add r0, #0x14
add r1, r5, #0
bl ov49_02265260
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x2d
bl ov49_02264C04
str r0, [sp, #0x20]
ldr r1, [sp, #0x20]
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0
strh r0, [r4, #0xa]
ldr r0, [sp, #0x20]
bl String_GetLength
str r0, [sp, #0x24]
add r0, r5, #0
bl ov49_0225CB70
ldr r1, [sp, #0x24]
mul r0, r1
lsr r1, r0, #1
add r1, #0x3c
cmp r1, #0x80
bhs _022643DC
mov r1, #0x80
b _022643E2
_022643DC:
cmp r1, #0xff
bls _022643E2
mov r1, #0xff
_022643E2:
mov r0, #0x1d
lsl r1, r1, #0x18
str r0, [sp]
add r0, r4, #0
lsr r1, r1, #0x18
mov r2, #0x1f
add r3, r6, #0
bl ov49_02264CFC
add r0, r7, #0
bl ov45_0222AFC4
b _022644DA
_022643FC:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x2b
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0
strh r0, [r4, #0xa]
mov r0, #0x1d
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x1f
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_0226442E:
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r4, #3]
add r0, r5, #0
mov r2, #0x31
bl ov49_02264C04
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
mov r0, #0x1e
str r0, [sp]
add r0, r4, #0
mov r1, #0x80
mov r2, #0x1b
add r3, r6, #0
bl ov49_02264CFC
b _022644DA
_0226445C:
add r0, r4, #0
add r1, r6, #0
bl ov49_02264D14
b _022644DA
_02264466:
add r0, r4, #0
add r1, r6, #0
add r2, r5, #0
bl ov49_02264D30
b _022644DA
_02264472:
add r0, r4, #0
add r0, #0x44
ldrh r0, [r0]
cmp r0, #1
bne _0226448A
add r1, r4, #0
add r1, #0x46
ldrh r1, [r1]
ldr r2, [r4, #0x48]
add r0, r7, #0
bl ov45_0222A704
_0226448A:
ldr r0, [r4, #0x4c]
cmp r0, #0
bne _02264498
ldrb r1, [r4, #3]
add r0, r7, #0
bl ov45_0222B0D8
_02264498:
add r0, r7, #0
bl ov45_0222AE64
add r0, r5, #0
bl ov49_0225A0EC
add r0, r4, #0
bl ov49_02264CF8
add r0, r6, #0
bl ov49_0225EF68
add r0, r7, #0
mov r1, #1
bl ov45_0222A5E8
add r0, r5, #0
bl ov49_02259FF0
add r4, r0, #0
bl ov49_02258DAC
add r1, r0, #0
add r0, r4, #0
mov r2, #1
bl ov49_02258EEC
add r0, r5, #0
bl ov49_0225A4D0
add sp, #0x28
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_022644DA:
add r0, r4, #0
bl ov49_02264F60
mov r0, #0
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_02263B74
thumb_func_start ov49_022644E8
ov49_022644E8: ; 0x022644E8
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r4, r1, #0
add r6, r0, #0
bl ov49_0225EF84
add r5, r0, #0
add r0, r4, #0
bl ov49_02259FE8
add r7, r0, #0
add r0, r6, #0
bl ov49_0225EF88
cmp r0, #0x18
bls _0226450A
b _022649EA
_0226450A:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02264516: ; jump table
.short _02264548 - _02264516 - 2 ; case 0
.short _02264588 - _02264516 - 2 ; case 1
.short _022645A8 - _02264516 - 2 ; case 2
.short _022645C8 - _02264516 - 2 ; case 3
.short _022645E8 - _02264516 - 2 ; case 4
.short _02264608 - _02264516 - 2 ; case 5
.short _02264632 - _02264516 - 2 ; case 6
.short _022646E0 - _02264516 - 2 ; case 7
.short _02264700 - _02264516 - 2 ; case 8
.short _0226471E - _02264516 - 2 ; case 9
.short _02264796 - _02264516 - 2 ; case 10
.short _022647C0 - _02264516 - 2 ; case 11
.short _022647EA - _02264516 - 2 ; case 12
.short _02264814 - _02264516 - 2 ; case 13
.short _02264834 - _02264516 - 2 ; case 14
.short _02264854 - _02264516 - 2 ; case 15
.short _02264874 - _02264516 - 2 ; case 16
.short _02264898 - _02264516 - 2 ; case 17
.short _0226490E - _02264516 - 2 ; case 18
.short _0226492E - _02264516 - 2 ; case 19
.short _0226494E - _02264516 - 2 ; case 20
.short _0226496E - _02264516 - 2 ; case 21
.short _0226498E - _02264516 - 2 ; case 22
.short _022649AE - _02264516 - 2 ; case 23
.short _022649C2 - _02264516 - 2 ; case 24
_02264548:
add r0, r6, #0
mov r1, #0x28
bl ov49_0225EF40
ldr r0, _02264894 ; =0x000005DC
bl PlaySE
add r0, r7, #0
bl ov45_0222A330
cmp r0, #1
bne _0226456A
add r0, r6, #0
mov r1, #2
bl ov49_0225EF8C
b _022649EA
_0226456A:
add r0, r7, #0
bl ov45_0222A374
cmp r0, #1
bne _0226457E
add r0, r6, #0
mov r1, #1
bl ov49_0225EF8C
b _022649EA
_0226457E:
add r0, r6, #0
mov r1, #3
bl ov49_0225EF8C
b _022649EA
_02264588:
add r0, r4, #0
mov r1, #1
mov r2, #0x4e
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #0x18
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_022645A8:
add r0, r4, #0
mov r1, #1
mov r2, #3
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #0x18
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_022645C8:
add r0, r4, #0
mov r1, #1
mov r2, #0xf
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #4
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_022645E8:
add r0, r4, #0
mov r1, #1
mov r2, #0x10
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #5
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_02264608:
add r0, r5, #4
add r1, r4, #0
bl ov49_02265110
mov r0, #0x10
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0xf
mov r2, #0
str r0, [sp, #8]
add r0, r4, #0
add r1, r5, #4
add r3, r2, #0
bl ov49_0225A1A4
add r0, r6, #0
mov r1, #6
bl ov49_0225EF8C
b _022649EA
_02264632:
add r0, r4, #0
mov r7, #0
bl ov49_0225A1D4
cmp r0, #7
bhi _0226465A
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0226464A: ; jump table
.short _02264664 - _0226464A - 2 ; case 0
.short _02264670 - _0226464A - 2 ; case 1
.short _0226467C - _0226464A - 2 ; case 2
.short _02264688 - _0226464A - 2 ; case 3
.short _02264694 - _0226464A - 2 ; case 4
.short _022646A0 - _0226464A - 2 ; case 5
.short _022646AC - _0226464A - 2 ; case 6
.short _022646BE - _0226464A - 2 ; case 7
_0226465A:
mov r1, #1
mvn r1, r1
cmp r0, r1
beq _022646B8
b _022646C8
_02264664:
add r0, r6, #0
mov r1, #7
bl ov49_0225EF8C
mov r7, #1
b _022646C8
_02264670:
add r0, r6, #0
mov r1, #8
bl ov49_0225EF8C
mov r7, #1
b _022646C8
_0226467C:
add r0, r6, #0
mov r1, #0xd
bl ov49_0225EF8C
mov r7, #1
b _022646C8
_02264688:
add r0, r6, #0
mov r1, #0xe
bl ov49_0225EF8C
mov r7, #1
b _022646C8
_02264694:
add r0, r6, #0
mov r1, #0xf
bl ov49_0225EF8C
mov r7, #1
b _022646C8
_022646A0:
add r0, r6, #0
mov r1, #0x15
bl ov49_0225EF8C
mov r7, #1
b _022646C8
_022646AC:
add r0, r6, #0
mov r1, #0x10
bl ov49_0225EF8C
mov r7, #1
b _022646C8
_022646B8:
ldr r0, _02264894 ; =0x000005DC
bl PlaySE
_022646BE:
add r0, r6, #0
mov r1, #0x16
bl ov49_0225EF8C
mov r7, #1
_022646C8:
cmp r7, #1
bne _02264780
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl ov49_0225A1E4
add r0, r5, #4
add r1, r4, #0
bl ov49_02265260
b _022649EA
_022646E0:
add r0, r4, #0
mov r1, #1
mov r2, #0x17
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #4
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_02264700:
add r0, r5, #4
add r1, r4, #0
bl ov49_022651E8
mov r2, #0
add r0, r4, #0
add r1, r5, #4
add r3, r2, #0
bl ov49_0225A174
add r0, r6, #0
mov r1, #9
bl ov49_0225EF8C
b _022649EA
_0226471E:
add r0, r4, #0
mov r7, #0
bl ov49_0225A1D4
cmp r0, #3
bhi _0226473E
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_02264736: ; jump table
.short _02264748 - _02264736 - 2 ; case 0
.short _02264754 - _02264736 - 2 ; case 1
.short _02264760 - _02264736 - 2 ; case 2
.short _02264772 - _02264736 - 2 ; case 3
_0226473E:
mov r1, #1
mvn r1, r1
cmp r0, r1
beq _0226476C
b _0226477C
_02264748:
add r0, r6, #0
mov r1, #0xa
bl ov49_0225EF8C
mov r7, #1
b _0226477C
_02264754:
add r0, r6, #0
mov r1, #0xb
bl ov49_0225EF8C
mov r7, #1
b _0226477C
_02264760:
add r0, r6, #0
mov r1, #0xc
bl ov49_0225EF8C
mov r7, #1
b _0226477C
_0226476C:
ldr r0, _02264894 ; =0x000005DC
bl PlaySE
_02264772:
add r0, r6, #0
mov r1, #4
bl ov49_0225EF8C
mov r7, #1
_0226477C:
cmp r7, #1
beq _02264782
_02264780:
b _022649EA
_02264782:
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl ov49_0225A1E4
add r0, r5, #4
add r1, r4, #0
bl ov49_02265260
b _022649EA
_02264796:
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl ov49_0225A37C
add r0, r4, #0
mov r1, #1
mov r2, #0x18
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #4
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_022647C0:
add r0, r4, #0
mov r1, #1
mov r2, #0
bl ov49_0225A37C
add r0, r4, #0
mov r1, #1
mov r2, #0x19
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #4
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_022647EA:
add r0, r4, #0
mov r1, #2
mov r2, #0
bl ov49_0225A37C
add r0, r4, #0
mov r1, #1
mov r2, #0x1a
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #4
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_02264814:
add r0, r4, #0
mov r1, #1
mov r2, #0x12
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #4
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_02264834:
add r0, r4, #0
mov r1, #1
mov r2, #0x13
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #4
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_02264854:
add r0, r4, #0
mov r1, #1
mov r2, #0x14
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #4
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_02264874:
add r0, r5, #4
add r1, r4, #0
bl ov49_02265170
mov r2, #0
add r0, r4, #0
add r1, r5, #4
add r3, r2, #0
bl ov49_0225A174
add r0, r6, #0
mov r1, #0x11
bl ov49_0225EF8C
b _022649EA
nop
_02264894: .word 0x000005DC
_02264898:
add r0, r4, #0
mov r7, #0
bl ov49_0225A1D4
cmp r0, #3
bhi _022648B8
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_022648B0: ; jump table
.short _022648C2 - _022648B0 - 2 ; case 0
.short _022648CE - _022648B0 - 2 ; case 1
.short _022648DA - _022648B0 - 2 ; case 2
.short _022648EC - _022648B0 - 2 ; case 3
_022648B8:
mov r1, #1
mvn r1, r1
cmp r0, r1
beq _022648E6
b _022648F6
_022648C2:
add r0, r6, #0
mov r1, #0x12
bl ov49_0225EF8C
mov r7, #1
b _022648F6
_022648CE:
add r0, r6, #0
mov r1, #0x13
bl ov49_0225EF8C
mov r7, #1
b _022648F6
_022648DA:
add r0, r6, #0
mov r1, #0x14
bl ov49_0225EF8C
mov r7, #1
b _022648F6
_022648E6:
ldr r0, _022649F0 ; =0x000005DC
bl PlaySE
_022648EC:
add r0, r6, #0
mov r1, #4
bl ov49_0225EF8C
mov r7, #1
_022648F6:
cmp r7, #1
bne _022649EA
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl ov49_0225A1E4
add r0, r5, #4
add r1, r4, #0
bl ov49_02265260
b _022649EA
_0226490E:
add r0, r4, #0
mov r1, #1
mov r2, #0x1b
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #4
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_0226492E:
add r0, r4, #0
mov r1, #1
mov r2, #0x1c
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #4
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_0226494E:
add r0, r4, #0
mov r1, #1
mov r2, #0x1d
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #4
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_0226496E:
add r0, r4, #0
mov r1, #1
mov r2, #0x1e
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #4
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_0226498E:
add r0, r4, #0
mov r1, #1
mov r2, #0x16
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
mov r0, #0x18
str r0, [r5]
add r0, r6, #0
mov r1, #0x17
bl ov49_0225EF8C
b _022649EA
_022649AE:
add r0, r4, #0
bl ov49_0225A0AC
cmp r0, #0
beq _022649EA
ldr r1, [r5]
add r0, r6, #0
bl ov49_0225EF8C
b _022649EA
_022649C2:
add r0, r6, #0
bl ov49_0225EF68
add r0, r4, #0
bl ov49_0225A0EC
add r0, r4, #0
bl ov49_02259FF0
add r4, r0, #0
bl ov49_02258DAC
add r1, r0, #0
add r0, r4, #0
mov r2, #1
bl ov49_02258EEC
add sp, #0xc
mov r0, #1
pop {r4, r5, r6, r7, pc}
_022649EA:
mov r0, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_022649F0: .word 0x000005DC
thumb_func_end ov49_022644E8
thumb_func_start ov49_022649F4
ov49_022649F4: ; 0x022649F4
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
bl ov49_0225EF84
add r0, r4, #0
bl ov49_02259FE8
add r6, r0, #0
add r0, r5, #0
bl ov49_0225EF88
cmp r0, #0
beq _02264A1E
cmp r0, #1
bne _02264A16
b _02264B56
_02264A16:
cmp r0, #2
bne _02264A1C
b _02264B6A
_02264A1C:
b _02264B8A
_02264A1E:
ldr r0, _02264B90 ; =0x000005DC
bl PlaySE
add r0, r6, #0
bl ov45_0222A330
cmp r0, #0
bne _02264A54
add r0, r6, #0
bl ov45_0222A374
cmp r0, #1
bne _02264A70
add r0, r4, #0
mov r1, #1
mov r2, #0x4e
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
mov r1, #1
bl ov49_0225EF8C
b _02264B8A
_02264A54:
add r0, r4, #0
mov r1, #1
mov r2, #3
bl ov49_0225A30C
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
mov r1, #1
bl ov49_0225EF8C
b _02264B8A
_02264A70:
add r0, r6, #0
bl ov45_0222B134
cmp r0, #8
bhi _02264B3A
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02264A86: ; jump table
.short _02264A98 - _02264A86 - 2 ; case 0
.short _02264AB0 - _02264A86 - 2 ; case 1
.short _02264AC8 - _02264A86 - 2 ; case 2
.short _02264AE0 - _02264A86 - 2 ; case 3
.short _02264AF8 - _02264A86 - 2 ; case 4
.short _02264B10 - _02264A86 - 2 ; case 5
.short _02264B1E - _02264A86 - 2 ; case 6
.short _02264B2C - _02264A86 - 2 ; case 7
.short _02264B3A - _02264A86 - 2 ; case 8
_02264A98:
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl ov49_0225A37C
add r0, r4, #0
mov r1, #1
mov r2, #0x49
bl ov49_0225A30C
add r1, r0, #0
b _02264B46
_02264AB0:
add r0, r4, #0
mov r1, #1
mov r2, #0
bl ov49_0225A37C
add r0, r4, #0
mov r1, #1
mov r2, #0x49
bl ov49_0225A30C
add r1, r0, #0
b _02264B46
_02264AC8:
add r0, r4, #0
mov r1, #2
mov r2, #0
bl ov49_0225A37C
add r0, r4, #0
mov r1, #1
mov r2, #0x49
bl ov49_0225A30C
add r1, r0, #0
b _02264B46
_02264AE0:
add r0, r4, #0
mov r1, #5
mov r2, #0
bl ov49_0225A37C
add r0, r4, #0
mov r1, #1
mov r2, #0x4d
bl ov49_0225A30C
add r1, r0, #0
b _02264B46
_02264AF8:
add r0, r4, #0
mov r1, #6
mov r2, #0
bl ov49_0225A37C
add r0, r4, #0
mov r1, #1
mov r2, #0x4d
bl ov49_0225A30C
add r1, r0, #0
b _02264B46
_02264B10:
add r0, r4, #0
mov r1, #1
mov r2, #0x4a
bl ov49_0225A30C
add r1, r0, #0
b _02264B46
_02264B1E:
add r0, r4, #0
mov r1, #1
mov r2, #0x4f
bl ov49_0225A30C
add r1, r0, #0
b _02264B46
_02264B2C:
add r0, r4, #0
mov r1, #1
mov r2, #0x4b
bl ov49_0225A30C
add r1, r0, #0
b _02264B46
_02264B3A:
add r0, r4, #0
mov r1, #1
mov r2, #0x4c
bl ov49_0225A30C
add r1, r0, #0
_02264B46:
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
mov r1, #1
bl ov49_0225EF8C
b _02264B8A
_02264B56:
add r0, r4, #0
bl ov49_0225A0AC
cmp r0, #0
beq _02264B8A
add r0, r5, #0
mov r1, #2
bl ov49_0225EF8C
b _02264B8A
_02264B6A:
add r0, r4, #0
bl ov49_0225A0EC
add r0, r4, #0
bl ov49_02259FF0
add r4, r0, #0
bl ov49_02258DAC
add r1, r0, #0
add r0, r4, #0
mov r2, #1
bl ov49_02258EEC
mov r0, #1
pop {r4, r5, r6, pc}
_02264B8A:
mov r0, #0
pop {r4, r5, r6, pc}
nop
_02264B90: .word 0x000005DC
thumb_func_end ov49_022649F4
thumb_func_start ov49_02264B94
ov49_02264B94: ; 0x02264B94
push {r3, lr}
sub sp, #8
bl ov45_0222A9C8
str r0, [sp]
str r0, [sp, #4]
add r0, sp, #0
ldrb r0, [r0, #4]
cmp r0, #0x18
bhi _02264BF8
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02264BB4: ; jump table
.short _02264BF2 - _02264BB4 - 2 ; case 0
.short _02264BF2 - _02264BB4 - 2 ; case 1
.short _02264BF2 - _02264BB4 - 2 ; case 2
.short _02264BF2 - _02264BB4 - 2 ; case 3
.short _02264BE6 - _02264BB4 - 2 ; case 4
.short _02264BE6 - _02264BB4 - 2 ; case 5
.short _02264BE6 - _02264BB4 - 2 ; case 6
.short _02264BE6 - _02264BB4 - 2 ; case 7
.short _02264BE6 - _02264BB4 - 2 ; case 8
.short _02264BE6 - _02264BB4 - 2 ; case 9
.short _02264BE6 - _02264BB4 - 2 ; case 10
.short _02264BEC - _02264BB4 - 2 ; case 11
.short _02264BEC - _02264BB4 - 2 ; case 12
.short _02264BEC - _02264BB4 - 2 ; case 13
.short _02264BEC - _02264BB4 - 2 ; case 14
.short _02264BEC - _02264BB4 - 2 ; case 15
.short _02264BEC - _02264BB4 - 2 ; case 16
.short _02264BEC - _02264BB4 - 2 ; case 17
.short _02264BEC - _02264BB4 - 2 ; case 18
.short _02264BF2 - _02264BB4 - 2 ; case 19
.short _02264BF2 - _02264BB4 - 2 ; case 20
.short _02264BF2 - _02264BB4 - 2 ; case 21
.short _02264BF2 - _02264BB4 - 2 ; case 22
.short _02264BF2 - _02264BB4 - 2 ; case 23
.short _02264BF2 - _02264BB4 - 2 ; case 24
_02264BE6:
add sp, #8
mov r0, #0
pop {r3, pc}
_02264BEC:
add sp, #8
mov r0, #1
pop {r3, pc}
_02264BF2:
add sp, #8
mov r0, #2
pop {r3, pc}
_02264BF8:
bl GF_AssertFail
mov r0, #1
add sp, #8
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_02264B94
thumb_func_start ov49_02264C04
ov49_02264C04: ; 0x02264C04
push {r4, r5, r6, lr}
add r6, r1, #0
add r5, r0, #0
add r4, r2, #0
bl ov49_02259FE8
add r1, r6, #0
bl ov45_0222AB28
cmp r0, #1
bne _02264C36
ldr r3, _02264C44 ; =ov49_02269EC4
ldr r0, _02264C48 ; =0x00000163
mov r2, #0
_02264C20:
ldrh r1, [r3]
cmp r4, r1
bne _02264C2E
ldr r0, _02264C4C ; =ov49_02269EC6
lsl r1, r2, #2
ldrh r4, [r0, r1]
b _02264C36
_02264C2E:
add r2, r2, #1
add r3, r3, #4
cmp r2, r0
blo _02264C20
_02264C36:
add r0, r5, #0
mov r1, #3
add r2, r4, #0
bl ov49_0225A30C
pop {r4, r5, r6, pc}
nop
_02264C44: .word ov49_02269EC4
_02264C48: .word 0x00000163
_02264C4C: .word ov49_02269EC6
thumb_func_end ov49_02264C04
thumb_func_start ov49_02264C50
ov49_02264C50: ; 0x02264C50
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r4, r0, #0
add r6, r2, #0
bl ov49_02259FE8
add r7, r0, #0
add r1, r5, #0
bl ov45_0222AB28
add r5, r0, #0
add r0, r7, #0
add r1, r6, #0
bl ov45_0222AB28
mov r2, #0x29
cmp r5, #1
bne _02264C7C
cmp r0, #1
bne _02264C7C
ldr r2, _02264C9C ; =0x000002AA
b _02264C92
_02264C7C:
cmp r5, #1
bne _02264C88
cmp r0, #0
bne _02264C88
ldr r2, _02264CA0 ; =0x00000226
b _02264C92
_02264C88:
cmp r5, #0
bne _02264C92
cmp r0, #1
bne _02264C92
ldr r2, _02264CA4 ; =0x000002A9
_02264C92:
add r0, r4, #0
mov r1, #3
bl ov49_0225A30C
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02264C9C: .word 0x000002AA
_02264CA0: .word 0x00000226
_02264CA4: .word 0x000002A9
thumb_func_end ov49_02264C50
thumb_func_start ov49_02264CA8
ov49_02264CA8: ; 0x02264CA8
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #0
add r6, r2, #0
mvn r0, r0
add r4, r1, #0
cmp r6, r0
bne _02264CBC
bl GF_AssertFail
_02264CBC:
strb r6, [r5, #3]
add r0, r4, #0
bl ov45_0222A53C
strh r0, [r5, #8]
mov r0, #1
strh r0, [r5, #0xa]
add r0, r4, #0
bl ov45_0222A5C0
add r6, r0, #0
ldrb r1, [r5, #3]
add r0, r4, #0
bl ov45_0222A578
add r4, r0, #0
bne _02264CE2
mov r0, #0
pop {r4, r5, r6, pc}
_02264CE2:
add r0, r6, #0
bl ov49_02264B94
strb r0, [r5, #4]
add r0, r4, #0
bl ov49_02264B94
strb r0, [r5, #5]
mov r0, #1
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_02264CA8
thumb_func_start ov49_02264CF8
ov49_02264CF8: ; 0x02264CF8
bx lr
.balign 4, 0
thumb_func_end ov49_02264CF8
thumb_func_start ov49_02264CFC
ov49_02264CFC: ; 0x02264CFC
strb r1, [r0, #6]
ldr r1, _02264D0C ; =0xFFFFFFF0
strb r2, [r0, #7]
add r0, r3, #0
add r1, sp
ldr r3, _02264D10 ; =ov49_0225EF8C
ldrb r1, [r1, #0x10]
bx r3
.balign 4, 0
_02264D0C: .word 0xFFFFFFF0
_02264D10: .word ov49_0225EF8C
thumb_func_end ov49_02264CFC
thumb_func_start ov49_02264D14
ov49_02264D14: ; 0x02264D14
push {r3, lr}
add r2, r0, #0
ldrb r0, [r2, #6]
cmp r0, #0
beq _02264D24
sub r0, r0, #1
strb r0, [r2, #6]
pop {r3, pc}
_02264D24:
add r0, r1, #0
ldrb r1, [r2, #7]
bl ov49_0225EF8C
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_02264D14
thumb_func_start ov49_02264D30
ov49_02264D30: ; 0x02264D30
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r2, #0
add r4, r1, #0
bl ov49_0225A0AC
cmp r0, #0
beq _02264D48
ldrb r1, [r5, #7]
add r0, r4, #0
bl ov49_0225EF8C
_02264D48:
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end ov49_02264D30
thumb_func_start ov49_02264D4C
ov49_02264D4C: ; 0x02264D4C
push {r3, r4, r5, lr}
add r5, r2, #0
add r4, r3, #0
ldr r3, [sp, #0x10]
add r0, r5, #0
mov r1, #0
add r2, r4, #0
bl ov49_02264D9C
ldr r3, [sp, #0x14]
add r0, r5, #0
mov r1, #1
add r2, r4, #0
bl ov49_02264D9C
ldr r0, [sp, #0x10]
bl ov45_0222AA10
add r4, r0, #0
ldr r0, [sp, #0x14]
bl ov45_0222AA10
add r3, r0, #0
ldr r2, _02264D98 ; =ov49_02269E44
lsl r4, r4, #4
lsl r3, r3, #1
add r2, r2, r4
ldrh r2, [r3, r2]
add r0, r5, #0
mov r1, #3
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
bl ov49_0225A08C
pop {r3, r4, r5, pc}
nop
_02264D98: .word ov49_02269E44
thumb_func_end ov49_02264D4C
thumb_func_start ov49_02264D9C
ov49_02264D9C: ; 0x02264D9C
push {r4, r5, r6, lr}
add r4, r0, #0
add r0, r3, #0
add r5, r1, #0
add r6, r2, #0
bl ov45_0222AA10
cmp r0, #7
bhi _02264E12
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02264DBA: ; jump table
.short _02264E12 - _02264DBA - 2 ; case 0
.short _02264DCA - _02264DBA - 2 ; case 1
.short _02264DD6 - _02264DBA - 2 ; case 2
.short _02264DE2 - _02264DBA - 2 ; case 3
.short _02264DEE - _02264DBA - 2 ; case 4
.short _02264DFA - _02264DBA - 2 ; case 5
.short _02264E12 - _02264DBA - 2 ; case 6
.short _02264E06 - _02264DBA - 2 ; case 7
_02264DCA:
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl ov49_0225A3AC
pop {r4, r5, r6, pc}
_02264DD6:
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl ov49_0225A3BC
pop {r4, r5, r6, pc}
_02264DE2:
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl ov49_0225A3CC
pop {r4, r5, r6, pc}
_02264DEE:
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl ov49_0225A3DC
pop {r4, r5, r6, pc}
_02264DFA:
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl ov49_0225A3EC
pop {r4, r5, r6, pc}
_02264E06:
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl ov49_0225A3FC
pop {r4, r5, r6, pc}
_02264E12:
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl ov49_0225A3BC
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_02264D9C
thumb_func_start ov49_02264E20
ov49_02264E20: ; 0x02264E20
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
add r5, r0, #0
add r0, r6, #0
add r7, r2, #0
bl ov45_0222A5C0
str r0, [sp]
ldrb r1, [r5, #3]
add r0, r6, #0
bl ov45_0222A578
add r6, r0, #0
ldr r0, [sp]
bl ov45_0222AA28
cmp r0, #0
bne _02264E48
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_02264E48:
add r0, r6, #0
bl ov45_0222AA28
cmp r0, #0
bne _02264E56
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_02264E56:
ldrb r1, [r5, #5]
ldrb r0, [r5, #4]
cmp r0, r1
beq _02264E8C
cmp r1, #0
beq _02264E6C
cmp r1, #1
beq _02264E70
cmp r1, #2
beq _02264E74
b _02264E76
_02264E6C:
mov r4, #0x27
b _02264E76
_02264E70:
mov r4, #0x25
b _02264E76
_02264E74:
mov r4, #0x26
_02264E76:
add r0, r7, #0
mov r1, #3
add r2, r4, #0
bl ov49_0225A30C
add r1, r0, #0
add r0, r7, #0
bl ov49_0225A08C
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_02264E8C:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_02264E20
thumb_func_start ov49_02264E90
ov49_02264E90: ; 0x02264E90
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
add r6, r2, #0
add r7, r3, #0
bl ov45_0222A5C0
str r0, [sp]
ldrb r1, [r5, #3]
add r0, r4, #0
bl ov45_0222A578
ldr r1, [sp, #0x18]
cmp r1, #0
bne _02264EB6
bl ov45_0222AAC8
b _02264EBC
_02264EB6:
ldr r0, [sp]
bl ov45_0222AAC8
_02264EBC:
add r1, r0, #0
add r0, r6, #0
add r2, r7, #0
bl ov49_0225A39C
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_02264E90
thumb_func_start ov49_02264EC8
ov49_02264EC8: ; 0x02264EC8
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
bl ov49_02259FE8
bl ov45_0222B094
ldr r1, _02264F0C ; =0x000001C2
cmp r0, r1
bne _02264F08
add r0, r4, #0
bl ov49_0225A0CC
ldrb r1, [r5, #3]
add r0, r4, #0
mov r2, #0
bl ov49_0225A334
mov r2, #0xab
ldrb r1, [r5, #3]
add r0, r4, #0
lsl r2, r2, #2
bl ov49_02264C04
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
add r0, r4, #0
bl ov49_0225A0BC
_02264F08:
pop {r3, r4, r5, pc}
nop
_02264F0C: .word 0x000001C2
thumb_func_end ov49_02264EC8
thumb_func_start ov49_02264F10
ov49_02264F10: ; 0x02264F10
mov r1, #0
strh r1, [r0, #0xe]
mov r1, #1
strb r1, [r0, #0xd]
bx lr
.balign 4, 0
thumb_func_end ov49_02264F10
thumb_func_start ov49_02264F1C
ov49_02264F1C: ; 0x02264F1C
mov r1, #0
strh r1, [r0, #0xe]
strb r1, [r0, #0xd]
bx lr
thumb_func_end ov49_02264F1C
thumb_func_start ov49_02264F24
ov49_02264F24: ; 0x02264F24
push {r3, r4, r5, lr}
add r5, r0, #0
ldrb r0, [r5, #0xd]
add r4, r1, #0
cmp r0, #1
bne _02264F56
mov r0, #0xe
ldrsh r1, [r5, r0]
ldr r0, _02264F58 ; =0x000001C2
cmp r1, r0
bne _02264F56
ldrb r1, [r5, #3]
add r0, r4, #0
mov r2, #0
bl ov49_0225A334
ldrb r1, [r5, #3]
ldr r2, _02264F5C ; =0x000002AB
add r0, r4, #0
bl ov49_02264C04
add r1, r0, #0
add r0, r4, #0
bl ov49_0225A08C
_02264F56:
pop {r3, r4, r5, pc}
.balign 4, 0
_02264F58: .word 0x000001C2
_02264F5C: .word 0x000002AB
thumb_func_end ov49_02264F24
thumb_func_start ov49_02264F60
ov49_02264F60: ; 0x02264F60
ldrb r1, [r0, #0xd]
cmp r1, #1
bne _02264F76
mov r1, #0xe
ldrsh r2, [r0, r1]
mov r1, #0xe1
lsl r1, r1, #2
cmp r2, r1
bgt _02264F76
add r1, r2, #1
strh r1, [r0, #0xe]
_02264F76:
bx lr
thumb_func_end ov49_02264F60
thumb_func_start ov49_02264F78
ov49_02264F78: ; 0x02264F78
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
bl ov45_0222A9A4
add r1, r5, #0
mov r2, #1
add r1, #0x44
strh r2, [r1]
add r1, r5, #0
add r1, #0x46
strh r0, [r1]
add r0, r4, #0
bl ov45_0222A99C
str r0, [r5, #0x48]
pop {r3, r4, r5, pc}
thumb_func_end ov49_02264F78
thumb_func_start ov49_02264F9C
ov49_02264F9C: ; 0x02264F9C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r1, #0
add r7, r2, #0
str r0, [sp]
add r0, r5, #0
add r1, r7, #0
str r3, [sp, #4]
ldr r6, [sp, #0x20]
bl ov49_0225A10C
ldr r0, [sp]
mov r4, #0
str r7, [r0, #0x20]
cmp r7, #0
bls _02265006
sub r0, r7, #1
str r0, [sp, #8]
_02264FC0:
cmp r6, #0
beq _02264FEA
ldr r0, [sp, #8]
cmp r4, r0
bne _02264FEA
cmp r6, #1
bne _02264FDC
ldr r2, _0226503C ; =0x00000205
add r0, r5, #0
mov r1, #3
bl ov49_0225A30C
add r1, r0, #0
b _02264FF8
_02264FDC:
add r0, r5, #0
mov r1, #3
mov r2, #0xeb
bl ov49_0225A30C
add r1, r0, #0
b _02264FF8
_02264FEA:
ldr r2, [sp, #4]
add r0, r5, #0
mov r1, #3
add r2, r2, r4
bl ov49_0225A30C
add r1, r0, #0
_02264FF8:
add r0, r5, #0
add r2, r4, #0
bl ov49_0225A144
add r4, r4, #1
cmp r4, r7
blo _02264FC0
_02265006:
ldr r3, _02265040 ; =ov49_02269E24
ldr r2, [sp]
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [sp]
ldr r1, [r0, #0x20]
strh r1, [r0, #0x10]
ldr r1, [r0, #0x20]
ldrh r0, [r0, #0x12]
cmp r0, r1
bls _0226502C
ldr r0, [sp]
strh r1, [r0, #0x12]
_0226502C:
add r0, r5, #0
bl ov49_0225A154
ldr r1, [sp]
str r0, [r1]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_0226503C: .word 0x00000205
_02265040: .word ov49_02269E24
thumb_func_end ov49_02264F9C
thumb_func_start ov49_02265044
ov49_02265044: ; 0x02265044
push {r4, r5, r6, r7, lr}
sub sp, #0xc
str r0, [sp]
ldr r0, [sp, #0x20]
add r5, r1, #0
str r0, [sp, #0x20]
ldr r0, [sp, #0x24]
str r3, [sp, #4]
str r0, [sp, #0x24]
add r0, r5, #0
add r1, r3, #0
add r4, r2, #0
bl ov49_0225A120
ldr r1, [sp, #4]
ldr r0, [sp]
mov r7, #0
str r1, [r0, #0x20]
add r0, r1, #0
beq _022650D4
sub r0, r0, #1
str r0, [sp, #8]
_02265070:
ldr r0, [sp, #0x24]
cmp r0, #0
beq _022650A0
ldr r0, [sp, #8]
cmp r7, r0
bne _022650A0
ldr r0, [sp, #0x24]
add r6, r4, #0
cmp r0, #1
bne _02265092
ldr r2, _02265108 ; =0x00000205
add r0, r5, #0
mov r1, #3
bl ov49_0225A30C
add r1, r0, #0
b _022650C4
_02265092:
add r0, r5, #0
mov r1, #3
mov r2, #0xeb
bl ov49_0225A30C
add r1, r0, #0
b _022650C4
_022650A0:
bl MTRandom
add r1, r4, #0
bl _u32_div_f
add r0, r5, #0
add r6, r1, #0
bl ov49_0225A164
cmp r0, #1
beq _022650A0
ldr r2, [sp, #0x20]
add r0, r5, #0
mov r1, #3
add r2, r2, r6
bl ov49_0225A30C
add r1, r0, #0
_022650C4:
add r0, r5, #0
add r2, r6, #0
bl ov49_0225A144
ldr r0, [sp, #4]
add r7, r7, #1
cmp r7, r0
blo _02265070
_022650D4:
ldr r3, _0226510C ; =ov49_02269E24
ldr r2, [sp]
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [sp]
ldr r1, [r0, #0x20]
strh r1, [r0, #0x10]
ldr r1, [r0, #0x20]
ldrh r0, [r0, #0x12]
cmp r0, r1
bls _022650FA
ldr r0, [sp]
strh r1, [r0, #0x12]
_022650FA:
add r0, r5, #0
bl ov49_0225A154
ldr r1, [sp]
str r0, [r1]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_02265108: .word 0x00000205
_0226510C: .word ov49_02269E24
thumb_func_end ov49_02265044
thumb_func_start ov49_02265110
ov49_02265110: ; 0x02265110
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
add r7, r0, #0
add r0, r6, #0
mov r1, #8
bl ov49_0225A10C
mov r0, #8
ldr r5, _02265168 ; =ov49_02269E1C
str r0, [r7, #0x20]
mov r4, #0
_02265126:
ldrb r2, [r5]
add r0, r6, #0
mov r1, #1
bl ov49_0225A30C
add r1, r0, #0
add r0, r6, #0
add r2, r4, #0
bl ov49_0225A144
add r4, r4, #1
add r5, r5, #1
cmp r4, #8
blt _02265126
ldr r3, _0226516C ; =ov49_02269E24
add r2, r7, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r7, #0x20]
strh r0, [r7, #0x10]
ldr r0, [r7, #0x20]
strh r0, [r7, #0x12]
add r0, r6, #0
bl ov49_0225A154
str r0, [r7]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02265168: .word ov49_02269E1C
_0226516C: .word ov49_02269E24
thumb_func_end ov49_02265110
thumb_func_start ov49_02265170
ov49_02265170: ; 0x02265170
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r6, r0, #0
add r0, r5, #0
mov r1, #4
bl ov49_0225A10C
mov r0, #4
mov r4, #0
str r0, [r6, #0x20]
add r7, r4, #0
_02265186:
add r0, r5, #0
add r1, r4, #0
add r2, r7, #0
bl ov49_0225A38C
add r0, r5, #0
mov r1, #1
mov r2, #0x27
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
add r2, r4, #0
bl ov49_0225A144
add r4, r4, #1
cmp r4, #3
blt _02265186
add r0, r5, #0
mov r1, #1
mov r2, #0x25
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
mov r2, #3
bl ov49_0225A144
ldr r3, _022651E4 ; =ov49_02269E24
add r2, r6, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r6, #0x20]
strh r0, [r6, #0x10]
ldr r0, [r6, #0x20]
strh r0, [r6, #0x12]
add r0, r5, #0
bl ov49_0225A154
str r0, [r6]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_022651E4: .word ov49_02269E24
thumb_func_end ov49_02265170
thumb_func_start ov49_022651E8
ov49_022651E8: ; 0x022651E8
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
add r6, r0, #0
add r0, r5, #0
mov r1, #4
bl ov49_0225A10C
mov r0, #4
mov r4, #0
str r0, [r6, #0x20]
add r7, r4, #0
_022651FE:
add r0, r5, #0
add r1, r4, #0
add r2, r7, #0
bl ov49_0225A37C
add r0, r5, #0
mov r1, #1
mov r2, #0x26
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
add r2, r4, #0
bl ov49_0225A144
add r4, r4, #1
cmp r4, #3
blt _022651FE
add r0, r5, #0
mov r1, #1
mov r2, #0x25
bl ov49_0225A30C
add r1, r0, #0
add r0, r5, #0
mov r2, #3
bl ov49_0225A144
ldr r3, _0226525C ; =ov49_02269E24
add r2, r6, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r6, #0x20]
strh r0, [r6, #0x10]
ldr r0, [r6, #0x20]
strh r0, [r6, #0x12]
add r0, r5, #0
bl ov49_0225A154
str r0, [r6]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0226525C: .word ov49_02269E24
thumb_func_end ov49_022651E8
thumb_func_start ov49_02265260
ov49_02265260: ; 0x02265260
ldr r3, _02265268 ; =ov49_0225A134
add r0, r1, #0
bx r3
nop
_02265268: .word ov49_0225A134
thumb_func_end ov49_02265260
thumb_func_start ov49_0226526C
ov49_0226526C: ; 0x0226526C
mov r1, #0
strh r1, [r0]
bx lr
.balign 4, 0
thumb_func_end ov49_0226526C
thumb_func_start ov49_02265274
ov49_02265274: ; 0x02265274
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldrh r0, [r5]
add r7, r1, #0
add r4, r2, #0
add r6, r3, #0
cmp r0, #0
beq _02265288
bl GF_AssertFail
_02265288:
mov r0, #1
strh r0, [r5]
strh r4, [r5, #2]
add r0, r7, #0
strh r6, [r5, #4]
bl ov45_0222B034
strh r0, [r5, #6]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_02265274
thumb_func_start ov49_0226529C
ov49_0226529C: ; 0x0226529C
push {r3, r4, r5, lr}
add r5, r0, #0
ldrh r0, [r5]
add r4, r1, #0
cmp r0, #0
beq _022652CE
add r0, r4, #0
bl ov45_0222B034
str r0, [r5, #8]
ldrh r1, [r5, #4]
cmp r0, r1
bne _022652C4
ldrh r1, [r5, #2]
add r0, r4, #0
bl ov45_0222AED8
mov r0, #0
strh r0, [r5]
pop {r3, r4, r5, pc}
_022652C4:
ldrh r1, [r5, #6]
cmp r0, r1
beq _022652CE
mov r0, #0
strh r0, [r5]
_022652CE:
pop {r3, r4, r5, pc}
thumb_func_end ov49_0226529C
thumb_func_start ov49_022652D0
ov49_022652D0: ; 0x022652D0
ldrh r0, [r0]
cmp r0, #1
beq _022652DA
mov r0, #1
bx lr
_022652DA:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_end ov49_022652D0
thumb_func_start ov49_022652E0
ov49_022652E0: ; 0x022652E0
ldr r0, [r0, #8]
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bx lr
thumb_func_end ov49_022652E0
thumb_func_start ov49_022652E8
ov49_022652E8: ; 0x022652E8
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r6, r0, #0
add r7, r1, #0
ldr r0, [sp, #0x20]
ldr r1, _02265354 ; =0x0001082C
str r2, [sp]
str r3, [sp, #4]
ldr r5, [sp, #0x24]
bl AllocFromHeap
ldr r2, _02265354 ; =0x0001082C
mov r1, #0
add r4, r0, #0
bl memset
ldr r0, [sp, #4]
str r6, [r4]
str r0, [r4, #4]
ldr r0, [sp]
ldr r1, [sp, #0x20]
str r0, [r4, #8]
mov r0, #0xd1
str r7, [r4, #0xc]
bl NARC_New
add r6, r0, #0
ldr r0, _02265358 ; =0x0001081C
add r1, r5, #0
add r0, r4, r0
mov r2, #4
bl GF_ExpHeap_FndInitAllocator
add r0, r4, #0
add r1, r6, #0
add r2, r5, #0
bl ov49_02265698
add r0, r4, #0
add r1, r6, #0
add r2, r5, #0
bl ov49_02265738
add r0, r4, #0
add r1, r6, #0
add r2, r5, #0
bl ov49_022657B4
add r0, r6, #0
bl NARC_Delete
add r0, r4, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02265354: .word 0x0001082C
_02265358: .word 0x0001081C
thumb_func_end ov49_022652E8
thumb_func_start ov49_0226535C
ov49_0226535C: ; 0x0226535C
push {r4, lr}
add r4, r0, #0
bl ov49_0226571C
add r0, r4, #0
bl ov49_02265760
add r0, r4, #0
bl ov49_02265858
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
thumb_func_end ov49_0226535C
thumb_func_start ov49_02265378
ov49_02265378: ; 0x02265378
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
add r5, r6, #0
mov r7, #0xd1
mov r4, #0
add r5, #0x10
lsl r7, r7, #4
_02265386:
add r0, r6, #0
add r1, r5, #0
bl ov49_022658E4
add r4, r4, #1
add r5, r5, r7
cmp r4, #0x14
blt _02265386
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_02265378
thumb_func_start ov49_02265398
ov49_02265398: ; 0x02265398
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
ldr r0, [r6, #4]
bl ov49_02258DAC
add r5, r6, #0
mov r7, #0xd1
mov r4, #0
add r5, #0x10
lsl r7, r7, #4
_022653AC:
add r0, r6, #0
add r1, r5, #0
bl ov49_02265920
add r4, r4, #1
add r5, r5, r7
cmp r4, #0x14
blt _022653AC
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_02265398
thumb_func_start ov49_022653C0
ov49_022653C0: ; 0x022653C0
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r6, r2, #0
cmp r4, #0x14
blo _022653D0
bl GF_AssertFail
_022653D0:
ldr r0, [r5, #4]
add r1, r4, #0
bl ov49_02258D70
add r2, r0, #0
beq _022653EE
mov r1, #0xd1
lsl r1, r1, #4
add r0, r5, #0
add r5, #0x10
mul r1, r4
add r1, r5, r1
add r3, r6, #0
bl ov49_02265890
_022653EE:
pop {r4, r5, r6, pc}
thumb_func_end ov49_022653C0
thumb_func_start ov49_022653F0
ov49_022653F0: ; 0x022653F0
push {r3, lr}
mov r2, #0xd1
lsl r2, r2, #4
add r0, #0x10
mul r2, r1
add r0, r0, r2
bl ov49_02265958
cmp r0, #1
beq _02265408
mov r0, #1
pop {r3, pc}
_02265408:
mov r0, #0
pop {r3, pc}
thumb_func_end ov49_022653F0
thumb_func_start ov49_0226540C
ov49_0226540C: ; 0x0226540C
push {r3, r4}
ldr r4, [sp, #0x14]
sub r2, r2, r1
str r4, [r0]
str r1, [r0, #4]
str r2, [r0, #0x10]
str r1, [r0, #0x14]
ldr r1, [sp, #8]
str r3, [r0, #8]
sub r1, r1, r3
str r1, [r0, #0x18]
ldr r2, [sp, #0xc]
ldr r1, [sp, #0x10]
str r3, [r0, #0x1c]
str r2, [r0, #0xc]
sub r1, r1, r2
str r1, [r0, #0x20]
str r2, [r0, #0x24]
pop {r3, r4}
bx lr
thumb_func_end ov49_0226540C
thumb_func_start ov49_02265434
ov49_02265434: ; 0x02265434
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
ldr r0, [r5]
add r4, r1, #0
mov r7, #0
cmp r4, r0
ble _02265448
add r4, r0, #0
mov r7, #1
_02265448:
ldr r6, [r5, #0x10]
cmp r6, #0
beq _022654CC
cmp r0, #0
ble _02265466
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
str r0, [sp, #8]
b _02265476
_02265466:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
str r0, [sp, #8]
_02265476:
cmp r4, #0
ble _0226548C
lsl r0, r4, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _0226549A
_0226548C:
lsl r0, r4, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_0226549A:
bl _ffix
asr r1, r0, #0x1f
asr r3, r6, #0x1f
add r2, r6, #0
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r6, r2, #0xc
orr r6, r0
ldr r0, [sp, #8]
bl _ffix
add r1, r0, #0
add r0, r6, #0
bl FX_Div
ldr r1, [r5, #0x14]
add r0, r1, r0
str r0, [r5, #4]
_022654CC:
ldr r6, [r5, #0x18]
cmp r6, #0
beq _02265552
ldr r0, [r5]
cmp r0, #0
ble _022654EC
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
str r0, [sp, #4]
b _022654FC
_022654EC:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
str r0, [sp, #4]
_022654FC:
cmp r4, #0
ble _02265512
lsl r0, r4, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _02265520
_02265512:
lsl r0, r4, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_02265520:
bl _ffix
asr r1, r0, #0x1f
asr r3, r6, #0x1f
add r2, r6, #0
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r6, r2, #0xc
orr r6, r0
ldr r0, [sp, #4]
bl _ffix
add r1, r0, #0
add r0, r6, #0
bl FX_Div
ldr r1, [r5, #0x1c]
add r0, r1, r0
str r0, [r5, #8]
_02265552:
ldr r6, [r5, #0x20]
cmp r6, #0
beq _022655D8
ldr r0, [r5]
cmp r0, #0
ble _02265572
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
str r0, [sp]
b _02265582
_02265572:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
str r0, [sp]
_02265582:
cmp r4, #0
ble _02265598
lsl r0, r4, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _022655A6
_02265598:
lsl r0, r4, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_022655A6:
bl _ffix
asr r1, r0, #0x1f
asr r3, r6, #0x1f
add r2, r6, #0
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r4, r2, #0xc
orr r4, r0
ldr r0, [sp]
bl _ffix
add r1, r0, #0
add r0, r4, #0
bl FX_Div
ldr r1, [r5, #0x24]
add r0, r1, r0
str r0, [r5, #0xc]
_022655D8:
add r0, r7, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_02265434
thumb_func_start ov49_022655E0
ov49_022655E0: ; 0x022655E0
push {r3, r4}
ldr r4, [r0, #4]
str r4, [r1]
ldr r1, [r0, #8]
str r1, [r2]
ldr r0, [r0, #0xc]
str r0, [r3]
pop {r3, r4}
bx lr
.balign 4, 0
thumb_func_end ov49_022655E0
thumb_func_start ov49_022655F4
ov49_022655F4: ; 0x022655F4
push {r4, lr}
add r4, r0, #0
strh r1, [r4]
asr r0, r1, #4
lsl r1, r0, #2
ldr r0, _02265624 ; =FX_SinCosTable_
strh r2, [r4, #2]
ldrsh r0, [r0, r1]
add r2, r3, #0
str r3, [r4, #4]
asr r1, r0, #0x1f
asr r3, r2, #0x1f
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r1, r2, #0xc
orr r1, r0
str r1, [r4, #8]
pop {r4, pc}
.balign 4, 0
_02265624: .word FX_SinCosTable_
thumb_func_end ov49_022655F4
thumb_func_start ov49_02265628
ov49_02265628: ; 0x02265628
push {r4, lr}
add r4, r0, #0
ldrh r1, [r4]
ldrh r0, [r4, #2]
add r0, r1, r0
strh r0, [r4]
ldrh r0, [r4]
ldr r2, [r4, #4]
asr r0, r0, #4
lsl r1, r0, #2
ldr r0, _0226565C ; =FX_SinCosTable_
asr r3, r2, #0x1f
ldrsh r0, [r0, r1]
asr r1, r0, #0x1f
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r1, r2, #0xc
orr r1, r0
str r1, [r4, #8]
pop {r4, pc}
.balign 4, 0
_0226565C: .word FX_SinCosTable_
thumb_func_end ov49_02265628
thumb_func_start ov49_02265660
ov49_02265660: ; 0x02265660
ldr r0, [r0, #8]
str r0, [r1]
bx lr
.balign 4, 0
thumb_func_end ov49_02265660
thumb_func_start ov49_02265668
ov49_02265668: ; 0x02265668
push {r3, r4, r5, lr}
ldr r0, [r0, #4]
ldr r4, [r1, #8]
add r5, r2, #0
bl ov49_02258DAC
cmp r4, r0
bne _02265684
lsl r0, r5, #0x10
lsr r0, r0, #0x10
mov r1, #5
bl sub_0200606C
pop {r3, r4, r5, pc}
_02265684:
add r0, r4, #0
bl ov49_02258F70
cmp r0, #0
bne _02265696
lsl r0, r5, #0x10
lsr r0, r0, #0x10
bl PlaySE
_02265696:
pop {r3, r4, r5, pc}
thumb_func_end ov49_02265668
thumb_func_start ov49_02265698
ov49_02265698: ; 0x02265698
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
add r7, r2, #0
mov r4, #0
_022656A2:
mov r0, #0
add r1, r4, #0
str r0, [sp]
add r0, r6, #0
add r1, #0x81
mov r2, #0
add r3, r7, #0
bl GfGfxLoader_LoadFromOpenNarc
ldr r1, _0226570C ; =0x00010550
str r0, [r5, r1]
add r0, r1, #0
ldr r0, [r5, r0]
bl NNS_G3dGetMdlSet
ldr r1, _02265710 ; =0x00010554
str r0, [r5, r1]
add r0, r1, #0
ldr r1, [r5, r0]
cmp r1, #0
beq _022656EC
add r0, r1, #0
add r0, #8
beq _022656E0
ldrb r2, [r1, #9]
cmp r2, #0
bls _022656E0
ldrh r2, [r1, #0xe]
add r0, r0, r2
add r0, r0, #4
b _022656E2
_022656E0:
mov r0, #0
_022656E2:
cmp r0, #0
beq _022656EC
ldr r0, [r0]
add r1, r1, r0
b _022656EE
_022656EC:
mov r1, #0
_022656EE:
ldr r0, _02265714 ; =0x00010558
str r1, [r5, r0]
mov r1, #0
add r0, r0, #4
str r1, [r5, r0]
ldr r0, _02265714 ; =0x00010558
ldr r1, _02265718 ; =0x00007FFF
ldr r0, [r5, r0]
bl NNS_G3dMdlSetMdlEmiAll
add r4, r4, #1
add r5, #0x10
cmp r4, #0xf
blt _022656A2
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0226570C: .word 0x00010550
_02265710: .word 0x00010554
_02265714: .word 0x00010558
_02265718: .word 0x00007FFF
thumb_func_end ov49_02265698
thumb_func_start ov49_0226571C
ov49_0226571C: ; 0x0226571C
push {r4, r5, r6, lr}
ldr r6, _02265734 ; =0x00010550
add r5, r0, #0
mov r4, #0
_02265724:
ldr r0, [r5, r6]
bl FreeToHeap
add r4, r4, #1
add r5, #0x10
cmp r4, #0xf
blt _02265724
pop {r4, r5, r6, pc}
.balign 4, 0
_02265734: .word 0x00010550
thumb_func_end ov49_0226571C
thumb_func_start ov49_02265738
ov49_02265738: ; 0x02265738
push {r3, r4, r5, r6, r7, lr}
add r6, r1, #0
ldr r1, _0226575C ; =0x00010640
add r7, r2, #0
mov r4, #0
add r5, r0, r1
_02265744:
add r2, r4, #0
add r0, r5, #0
add r1, r6, #0
add r2, #0x90
add r3, r7, #0
bl ov49_02258830
add r4, r4, #1
add r5, r5, #4
cmp r4, #0x27
blt _02265744
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0226575C: .word 0x00010640
thumb_func_end ov49_02265738
thumb_func_start ov49_02265760
ov49_02265760: ; 0x02265760
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
ldr r7, _022657A8 ; =NNS_GfdDefaultFuncFreeTexVram
add r5, r0, #0
mov r4, #0
_0226576A:
ldr r0, _022657AC ; =0x00010640
ldr r0, [r5, r0]
bl NNS_G3dGetTex
add r1, sp, #4
add r2, sp, #0
add r6, r0, #0
bl NNS_G3dTexReleaseTexKey
ldr r0, [sp, #4]
ldr r1, [r7]
blx r1
ldr r0, [sp]
ldr r1, [r7]
blx r1
add r0, r6, #0
bl NNS_G3dPlttReleasePlttKey
ldr r1, _022657B0 ; =NNS_GfdDefaultFuncFreePlttVram
ldr r1, [r1]
blx r1
ldr r0, _022657AC ; =0x00010640
ldr r0, [r5, r0]
bl FreeToHeap
add r4, r4, #1
add r5, r5, #4
cmp r4, #0x27
blt _0226576A
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_022657A8: .word NNS_GfdDefaultFuncFreeTexVram
_022657AC: .word 0x00010640
_022657B0: .word NNS_GfdDefaultFuncFreePlttVram
thumb_func_end ov49_02265760
thumb_func_start ov49_022657B4
ov49_022657B4: ; 0x022657B4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r0, #0
mov r0, #0
ldr r4, _02265840 ; =ov49_0226A70C
str r1, [sp, #8]
str r2, [sp, #0xc]
str r0, [sp, #0x10]
_022657C4:
ldr r0, _02265844 ; =0x0001081C
mov r6, #0
add r0, r5, r0
str r0, [sp, #0x14]
ldr r0, _02265848 ; =0x000106DC
add r0, r5, r0
str r0, [sp, #0x18]
ldr r0, _0226584C ; =0x00010550
add r0, r5, r0
str r0, [sp, #0x1c]
_022657D8:
add r7, r4, r6
ldrb r1, [r7, #2]
cmp r1, #0x11
beq _0226582A
mov r0, #0x14
mul r0, r1
add r1, r5, r0
ldr r0, _02265848 ; =0x000106DC
ldr r0, [r1, r0]
cmp r0, #0
bne _0226582A
ldrb r0, [r4, #1]
lsl r0, r0, #2
add r1, r5, r0
ldr r0, _02265850 ; =0x00010640
ldr r0, [r1, r0]
bl NNS_G3dGetTex
ldrb r1, [r4]
lsl r1, r1, #4
add r2, r5, r1
ldr r1, _02265854 ; =0x0001055C
str r0, [r2, r1]
ldrb r3, [r7, #2]
ldr r0, [sp, #0xc]
str r0, [sp]
ldr r0, [sp, #0x14]
add r1, r3, #0
str r0, [sp, #4]
mov r0, #0x14
mul r1, r0
ldr r0, [sp, #0x18]
add r3, #0xb7
add r0, r0, r1
ldrb r1, [r4]
lsl r2, r1, #4
ldr r1, [sp, #0x1c]
add r1, r1, r2
ldr r2, [sp, #8]
bl sub_020180BC
_0226582A:
add r6, r6, #1
cmp r6, #2
blt _022657D8
ldr r0, [sp, #0x10]
add r4, r4, #4
add r0, r0, #1
str r0, [sp, #0x10]
cmp r0, #0x27
blt _022657C4
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02265840: .word ov49_0226A70C
_02265844: .word 0x0001081C
_02265848: .word 0x000106DC
_0226584C: .word 0x00010550
_02265850: .word 0x00010640
_02265854: .word 0x0001055C
thumb_func_end ov49_022657B4
thumb_func_start ov49_02265858
ov49_02265858: ; 0x02265858
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _02265888 ; =0x000106DC
mov r6, #0
add r4, r5, r0
ldr r0, _0226588C ; =0x0001081C
add r7, r5, r0
_02265866:
ldr r0, _02265888 ; =0x000106DC
ldr r0, [r5, r0]
cmp r0, #0
beq _0226587C
add r0, r4, #0
add r1, r7, #0
bl sub_020180F8
ldr r0, _02265888 ; =0x000106DC
mov r1, #0
str r1, [r5, r0]
_0226587C:
add r6, r6, #1
add r5, #0x14
add r4, #0x14
cmp r6, #0x10
blt _02265866
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02265888: .word 0x000106DC
_0226588C: .word 0x0001081C
thumb_func_end ov49_02265858
thumb_func_start ov49_02265890
ov49_02265890: ; 0x02265890
push {r3, r4, r5, r6, r7, lr}
add r7, r3, #0
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
cmp r7, #0x1b
blo _022658A2
bl GF_AssertFail
_022658A2:
add r0, r5, #0
add r1, r4, #0
bl ov49_02265948
str r6, [r4, #8]
add r0, r6, #0
mov r1, #5
strb r7, [r4]
bl ov49_02258E60
add r0, #0x28
str r0, [r4, #4]
ldrb r2, [r4]
add r0, r5, #0
add r1, r4, #0
lsl r3, r2, #2
ldr r2, _022658DC ; =ov49_0226A5A4
ldr r2, [r2, r3]
blx r2
ldrb r2, [r4]
add r0, r5, #0
add r1, r4, #0
lsl r3, r2, #2
ldr r2, _022658E0 ; =ov49_0226A610
ldr r2, [r2, r3]
bl ov49_02265668
pop {r3, r4, r5, r6, r7, pc}
nop
_022658DC: .word ov49_0226A5A4
_022658E0: .word ov49_0226A610
thumb_func_end ov49_02265890
thumb_func_start ov49_022658E4
ov49_022658E4: ; 0x022658E4
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
bl ov49_02265958
cmp r0, #0
beq _02265918
ldrb r0, [r4]
cmp r0, #0x1b
blo _022658FE
bl GF_AssertFail
_022658FE:
ldrb r2, [r4]
add r0, r5, #0
add r1, r4, #0
lsl r3, r2, #2
ldr r2, _0226591C ; =ov49_0226A538
ldr r2, [r2, r3]
blx r2
cmp r0, #1
bne _02265918
add r0, r5, #0
add r1, r4, #0
bl ov49_02265948
_02265918:
pop {r3, r4, r5, pc}
nop
_0226591C: .word ov49_0226A538
thumb_func_end ov49_022658E4
thumb_func_start ov49_02265920
ov49_02265920: ; 0x02265920
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
add r0, r4, #0
bl ov49_02265958
cmp r0, #0
bne _02265934
mov r0, #0
pop {r3, r4, r5, pc}
_02265934:
ldrb r0, [r4]
cmp r0, #0x1b
blo _0226593E
bl GF_AssertFail
_0226593E:
add r0, r5, #0
add r1, r4, #0
bl ov49_02266AF0
pop {r3, r4, r5, pc}
thumb_func_end ov49_02265920
thumb_func_start ov49_02265948
ov49_02265948: ; 0x02265948
ldr r3, _02265954 ; =memset
mov r2, #0xd1
add r0, r1, #0
mov r1, #0
lsl r2, r2, #4
bx r3
.balign 4, 0
_02265954: .word memset
thumb_func_end ov49_02265948
thumb_func_start ov49_02265958
ov49_02265958: ; 0x02265958
ldr r0, [r0, #8]
cmp r0, #0
beq _02265962
mov r0, #1
bx lr
_02265962:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_end ov49_02265958
thumb_func_start ov49_02265968
ov49_02265968: ; 0x02265968
lsl r1, r1, #2
add r1, r0, r1
ldr r0, _0226597C ; =0x0000087C
ldr r0, [r1, r0]
cmp r0, #0
beq _02265978
mov r0, #1
bx lr
_02265978:
mov r0, #0
bx lr
.balign 4, 0
_0226597C: .word 0x0000087C
thumb_func_end ov49_02265968
thumb_func_start ov49_02265980
ov49_02265980: ; 0x02265980
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r4, r2, #0
str r0, [sp]
add r5, r1, #0
add r6, r3, #0
cmp r4, #0x12
blo _02265994
bl GF_AssertFail
_02265994:
ldr r0, _022659C8 ; =0x0000087C
add r7, r5, r0
lsl r0, r4, #2
str r0, [sp, #4]
ldr r0, [r7, r0]
cmp r0, #0
beq _022659A6
bl GF_AssertFail
_022659A6:
ldr r0, [sp, #4]
ldr r2, _022659CC ; =0x00010550
ldr r1, [sp]
str r6, [r7, r0]
add r2, r1, r2
ldrb r1, [r6]
mov r0, #0x78
add r5, #0xc
mul r0, r4
lsl r1, r1, #4
add r0, r5, r0
add r1, r2, r1
bl sub_020181B0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_022659C8: .word 0x0000087C
_022659CC: .word 0x00010550
thumb_func_end ov49_02265980
thumb_func_start ov49_022659D0
ov49_022659D0: ; 0x022659D0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r2, #0
str r0, [sp]
lsl r7, r5, #2
add r0, r1, #0
str r1, [sp, #4]
add r1, r0, r7
ldr r0, _02265B04 ; =0x0000087C
ldr r0, [r1, r0]
cmp r0, #0
bne _022659EC
bl GF_AssertFail
_022659EC:
mov r0, #0x78
add r6, r5, #0
mul r6, r0
ldr r0, [sp, #4]
add r0, #0xc
add r0, r0, r6
bl sub_020182A4
cmp r0, #0
beq _02265AFE
ldr r0, [sp, #4]
add r1, r0, r7
ldr r0, _02265B04 ; =0x0000087C
ldr r2, [r1, r0]
ldr r0, _02265B08 ; =0x00010550
ldrb r3, [r2]
ldr r1, [sp]
add r1, r1, r0
lsl r3, r3, #4
add r1, r1, r3
str r1, [sp, #0xc]
ldrb r1, [r2, #1]
add r0, #0xf0
lsl r2, r1, #2
ldr r1, [sp]
add r1, r1, r2
ldr r0, [r1, r0]
bl NNS_G3dGetTex
ldr r1, [sp, #0xc]
mov r2, #0
str r0, [r1, #0xc]
add r0, r1, #0
ldr r0, [r0, #8]
ldr r1, [r1, #0xc]
add r3, r2, #0
bl NNS_G3dForceBindMdlTex
cmp r0, #0
bne _02265A40
bl GF_AssertFail
_02265A40:
ldr r0, [sp, #0xc]
ldr r1, [sp, #0xc]
mov r2, #0
ldr r0, [r0, #8]
ldr r1, [r1, #0xc]
add r3, r2, #0
bl NNS_G3dForceBindMdlPltt
cmp r0, #0
bne _02265A58
bl GF_AssertFail
_02265A58:
ldr r0, [sp, #4]
lsl r1, r5, #3
add r5, r0, r1
add r0, r0, r7
str r0, [sp, #8]
ldr r0, [sp, #4]
ldr r1, _02265B0C ; =0x000106DC
str r0, [sp, #0x10]
add r0, #0xc
str r0, [sp, #0x10]
ldr r0, [sp]
mov r4, #0
add r7, r0, r1
_02265A72:
ldr r1, [sp, #8]
ldr r0, _02265B04 ; =0x0000087C
ldr r0, [r1, r0]
add r0, r0, r4
ldrb r1, [r0, #2]
cmp r1, #0x11
beq _02265AA6
mov r0, #0x14
mul r0, r1
str r0, [sp, #0x14]
ldr r0, [sp, #0x10]
ldr r1, [sp, #0x14]
add r0, r0, r6
add r1, r7, r1
bl sub_020181D4
ldr r1, _02265B10 ; =0x000008C4
ldr r0, [sp, #0x14]
ldr r1, [r5, r1]
add r0, r7, r0
bl sub_02018198
add r4, r4, #1
add r5, r5, #4
cmp r4, #2
blt _02265A72
_02265AA6:
ldr r0, [sp, #0xc]
ldr r1, [sp, #4]
ldr r0, [r0, #8]
ldr r1, [r1, #4]
bl NNS_G3dMdlSetMdlPolygonIDAll
ldr r0, [sp, #4]
add r0, #0xc
str r0, [sp, #4]
add r0, r0, r6
bl sub_020181EC
ldr r1, _02265B0C ; =0x000106DC
ldr r0, [sp]
ldr r7, _02265B04 ; =0x0000087C
mov r4, #0
add r5, r0, r1
_02265AC8:
ldr r0, [sp, #8]
ldr r0, [r0, r7]
add r0, r0, r4
ldrb r1, [r0, #2]
cmp r1, #0x11
beq _02265AE8
ldr r0, [sp, #4]
mov r2, #0x14
mul r2, r1
add r0, r0, r6
add r1, r5, r2
bl sub_020181E0
add r4, r4, #1
cmp r4, #2
blt _02265AC8
_02265AE8:
ldr r0, [sp, #0xc]
ldr r0, [r0, #8]
bl NNS_G3dReleaseMdlTex
ldr r0, [sp, #0xc]
ldr r0, [r0, #8]
bl NNS_G3dReleaseMdlPltt
ldr r0, [sp, #0xc]
mov r1, #0
str r1, [r0, #0xc]
_02265AFE:
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
_02265B04: .word 0x0000087C
_02265B08: .word 0x00010550
_02265B0C: .word 0x000106DC
_02265B10: .word 0x000008C4
thumb_func_end ov49_022659D0
thumb_func_start ov49_02265B14
ov49_02265B14: ; 0x02265B14
push {r3, r4, lr}
sub sp, #4
mov r4, #2
lsl r4, r4, #0xc
str r4, [sp]
bl ov49_02265B3C
add sp, #4
pop {r3, r4, pc}
.balign 4, 0
thumb_func_end ov49_02265B14
thumb_func_start ov49_02265B28
ov49_02265B28: ; 0x02265B28
push {r3, r4, lr}
sub sp, #4
mov r4, #2
lsl r4, r4, #0xc
str r4, [sp]
bl ov49_02265B94
add sp, #4
pop {r3, r4, pc}
.balign 4, 0
thumb_func_end ov49_02265B28
thumb_func_start ov49_02265B3C
ov49_02265B3C: ; 0x02265B3C
push {r4, r5, r6, lr}
add r4, r1, #0
ldr r1, _02265B88 ; =0x000106DC
add r6, r2, #0
add r0, r0, r1
lsl r1, r6, #2
add r2, r4, r1
ldr r1, _02265B8C ; =0x0000087C
add r5, r3, #0
ldr r1, [r2, r1]
add r1, r1, r5
ldrb r2, [r1, #2]
mov r1, #0x14
mul r1, r2
add r0, r0, r1
bl sub_020181A4
add r1, r0, #0
ldr r0, _02265B90 ; =0x000008C4
lsl r2, r6, #3
add r0, r4, r0
add r4, r0, r2
lsl r5, r5, #2
ldr r2, [r4, r5]
ldr r0, [sp, #0x10]
add r0, r0, r2
cmp r0, r1
bge _02265B78
str r0, [r4, r5]
pop {r4, r5, r6, pc}
_02265B78:
mov r0, #2
lsl r0, r0, #0xc
add r0, r2, r0
bl _s32_div_f
str r1, [r4, r5]
pop {r4, r5, r6, pc}
nop
_02265B88: .word 0x000106DC
_02265B8C: .word 0x0000087C
_02265B90: .word 0x000008C4
thumb_func_end ov49_02265B3C
thumb_func_start ov49_02265B94
ov49_02265B94: ; 0x02265B94
push {r4, r5, r6, lr}
add r5, r1, #0
ldr r1, _02265BDC ; =0x000106DC
add r4, r2, #0
add r0, r0, r1
lsl r1, r4, #2
add r2, r5, r1
ldr r1, _02265BE0 ; =0x0000087C
add r6, r3, #0
ldr r1, [r2, r1]
add r1, r1, r6
ldrb r2, [r1, #2]
mov r1, #0x14
mul r1, r2
add r0, r0, r1
bl sub_020181A4
ldr r3, _02265BE4 ; =0x000008C4
lsl r1, r4, #3
add r2, r5, r3
add r2, r2, r1
lsl r1, r6, #2
ldr r5, [sp, #0x10]
ldr r4, [r2, r1]
add r4, r5, r4
cmp r4, r0
bge _02265BD0
str r4, [r2, r1]
mov r0, #0
pop {r4, r5, r6, pc}
_02265BD0:
sub r3, #0xc4
sub r0, r0, r3
str r0, [r2, r1]
mov r0, #1
pop {r4, r5, r6, pc}
nop
_02265BDC: .word 0x000106DC
_02265BE0: .word 0x0000087C
_02265BE4: .word 0x000008C4
thumb_func_end ov49_02265B94
thumb_func_start ov49_02265BE8
ov49_02265BE8: ; 0x02265BE8
push {r4, r5, r6, lr}
add r5, r1, #0
ldr r1, _02265C34 ; =0x000106DC
add r4, r2, #0
add r0, r0, r1
lsl r1, r4, #2
add r2, r5, r1
ldr r1, _02265C38 ; =0x0000087C
add r6, r3, #0
ldr r1, [r2, r1]
add r1, r1, r6
ldrb r2, [r1, #2]
mov r1, #0x14
mul r1, r2
add r0, r0, r1
bl sub_020181A4
ldr r1, [sp, #0x10]
cmp r0, r1
bge _02265C24
mov r1, #2
lsl r2, r4, #3
lsl r1, r1, #0xa
add r3, r5, r2
lsl r2, r6, #2
sub r0, r0, r1
add r2, r3, r2
add r1, #0xc4
str r0, [r2, r1]
pop {r4, r5, r6, pc}
_02265C24:
lsl r0, r4, #3
add r2, r5, r0
lsl r0, r6, #2
add r2, r2, r0
ldr r0, _02265C3C ; =0x000008C4
str r1, [r2, r0]
pop {r4, r5, r6, pc}
nop
_02265C34: .word 0x000106DC
_02265C38: .word 0x0000087C
_02265C3C: .word 0x000008C4
thumb_func_end ov49_02265BE8
thumb_func_start ov49_02265C40
ov49_02265C40: ; 0x02265C40
push {r4, lr}
lsl r2, r2, #2
add r2, r1, r2
ldr r1, _02265C60 ; =0x0000087C
ldr r4, _02265C64 ; =0x000106DC
ldr r1, [r2, r1]
add r0, r0, r4
add r1, r1, r3
ldrb r2, [r1, #2]
mov r1, #0x14
mul r1, r2
add r0, r0, r1
bl sub_020181A0
pop {r4, pc}
nop
_02265C60: .word 0x0000087C
_02265C64: .word 0x000106DC
thumb_func_end ov49_02265C40
thumb_func_start ov49_02265C68
ov49_02265C68: ; 0x02265C68
ldr r3, _02265C70 ; =ov49_02267A84
mov r2, #1
bx r3
nop
_02265C70: .word ov49_02267A84
thumb_func_end ov49_02265C68
thumb_func_start ov49_02265C74
ov49_02265C74: ; 0x02265C74
ldr r3, _02265C7C ; =ov49_02267A84
mov r2, #2
bx r3
nop
_02265C7C: .word ov49_02267A84
thumb_func_end ov49_02265C74
thumb_func_start ov49_02265C80
ov49_02265C80: ; 0x02265C80
ldr r3, _02265C88 ; =ov49_02267A84
mov r2, #3
bx r3
nop
_02265C88: .word ov49_02267A84
thumb_func_end ov49_02265C80
thumb_func_start ov49_02265C8C
ov49_02265C8C: ; 0x02265C8C
ldr r3, _02265C94 ; =ov49_02267C20
mov r2, #1
bx r3
nop
_02265C94: .word ov49_02267C20
thumb_func_end ov49_02265C8C
thumb_func_start ov49_02265C98
ov49_02265C98: ; 0x02265C98
ldr r3, _02265CA0 ; =ov49_02267C20
mov r2, #2
bx r3
nop
_02265CA0: .word ov49_02267C20
thumb_func_end ov49_02265C98
thumb_func_start ov49_02265CA4
ov49_02265CA4: ; 0x02265CA4
ldr r3, _02265CAC ; =ov49_02267C20
mov r2, #3
bx r3
nop
_02265CAC: .word ov49_02267C20
thumb_func_end ov49_02265CA4
thumb_func_start ov49_02265CB0
ov49_02265CB0: ; 0x02265CB0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r7, r1, #0
add r5, r7, #0
str r0, [sp]
mov r4, #0
add r5, #0xc
_02265CBE:
add r3, r4, #3
lsl r6, r3, #2
ldr r3, _02265D08 ; =ov49_0226A70C
ldr r0, [sp]
add r1, r7, #0
add r2, r4, #0
add r3, r3, r6
bl ov49_02265980
ldr r0, [r7, #8]
add r1, sp, #4
bl ov49_02259154
mov r0, #2
ldr r1, [sp, #8]
lsl r0, r0, #0xe
add r2, r1, r0
ldr r1, [sp, #4]
ldr r3, [sp, #0xc]
add r0, r5, #0
str r2, [sp, #8]
bl sub_020182A8
add r0, r5, #0
mov r1, #0
bl sub_020182A0
add r4, r4, #1
add r5, #0x78
cmp r4, #3
blt _02265CBE
ldr r0, _02265D0C ; =0x00000954
mov r1, #0xff
str r1, [r7, r0]
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
_02265D08: .word ov49_0226A70C
_02265D0C: .word 0x00000954
thumb_func_end ov49_02265CB0
thumb_func_start ov49_02265D10
ov49_02265D10: ; 0x02265D10
push {r3, r4, r5, lr}
sub sp, #0x18
ldr r3, _02265E40 ; =ov49_0226A730
mov r2, #1
add r5, r0, #0
add r4, r1, #0
bl ov49_02265980
ldr r3, _02265E44 ; =ov49_0226A73C
add r0, r5, #0
add r1, r4, #0
mov r2, #0
bl ov49_02265980
add r0, r4, #0
add r0, #0x84
mov r1, #0
bl sub_020182A0
ldr r0, [r4, #8]
add r1, sp, #0xc
bl ov49_02259154
mov r2, #1
ldr r0, [sp, #0x10]
lsl r2, r2, #0x10
add r0, r0, r2
str r0, [sp, #0x10]
ldr r1, [sp, #0xc]
lsr r0, r2, #1
add r0, r1, r0
add r5, sp, #0xc
str r0, [sp, #0xc]
ldmia r5!, {r0, r1}
add r3, sp, #0
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #8
str r0, [r3]
ldr r0, [sp, #4]
add r0, r0, r2
str r0, [sp, #4]
ldr r0, _02265E48 ; =0x00000958
str r1, [r4, r0]
ldr r0, [r4, #8]
mov r1, #6
bl ov49_02258E60
cmp r0, #3
bhi _02265E20
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02265D80: ; jump table
.short _02265D88 - _02265D80 - 2 ; case 0
.short _02265DA8 - _02265D80 - 2 ; case 1
.short _02265DCA - _02265D80 - 2 ; case 2
.short _02265DF6 - _02265D80 - 2 ; case 3
_02265D88:
mov r0, #7
ldr r1, [sp, #0x14]
lsl r0, r0, #0xe
sub r1, r1, r0
str r1, [sp, #0x14]
ldr r1, [sp, #8]
lsr r0, r0, #1
sub r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
ldr r1, _02265E4C ; =0x0000BFFF
add r0, #0x84
mov r2, #1
bl sub_020182E0
b _02265E20
_02265DA8:
mov r0, #6
ldr r1, [sp, #0x14]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0x14]
mov r0, #0xb
ldr r1, [sp, #8]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
ldr r1, _02265E50 ; =0x00003FFF
add r0, #0x84
mov r2, #1
bl sub_020182E0
b _02265E20
_02265DCA:
mov r0, #0x17
ldr r1, [sp, #0xc]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #0xc]
mov r0, #7
ldr r1, [sp]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp]
mov r0, #2
ldr r1, [sp, #8]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
add r0, #0x84
mov r1, #0
mov r2, #1
bl sub_020182E0
b _02265E20
_02265DF6:
mov r0, #0x17
ldr r1, [sp, #0xc]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0xc]
mov r0, #7
ldr r1, [sp]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp]
mov r1, #2
ldr r0, [sp, #8]
lsl r1, r1, #0xe
add r0, r0, r1
str r0, [sp, #8]
add r0, r4, #0
add r0, #0x84
sub r1, r1, #1
mov r2, #1
bl sub_020182E0
_02265E20:
add r0, r4, #0
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, #0x84
bl sub_020182A8
add r4, #0xc
ldr r1, [sp]
ldr r2, [sp, #4]
ldr r3, [sp, #8]
add r0, r4, #0
bl sub_020182A8
add sp, #0x18
pop {r3, r4, r5, pc}
.balign 4, 0
_02265E40: .word ov49_0226A730
_02265E44: .word ov49_0226A73C
_02265E48: .word 0x00000958
_02265E4C: .word 0x0000BFFF
_02265E50: .word 0x00003FFF
thumb_func_end ov49_02265D10
thumb_func_start ov49_02265E54
ov49_02265E54: ; 0x02265E54
push {r3, r4, r5, lr}
sub sp, #0x18
ldr r3, _02266058 ; =ov49_0226A730
mov r2, #1
add r5, r0, #0
add r4, r1, #0
bl ov49_02265980
ldr r3, _0226605C ; =ov49_0226A73C
add r0, r5, #0
add r1, r4, #0
mov r2, #0
bl ov49_02265980
ldr r3, _02266060 ; =ov49_0226A734
add r0, r5, #0
add r1, r4, #0
mov r2, #2
bl ov49_02265980
add r0, r4, #0
add r0, #0x84
mov r1, #0
bl sub_020182A0
ldr r0, [r4, #8]
add r1, sp, #0xc
bl ov49_02259154
mov r2, #1
ldr r0, [sp, #0x10]
lsl r2, r2, #0x10
add r0, r0, r2
str r0, [sp, #0x10]
ldr r1, [sp, #0xc]
lsr r0, r2, #1
add r0, r1, r0
add r5, sp, #0xc
str r0, [sp, #0xc]
ldmia r5!, {r0, r1}
add r3, sp, #0
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #8
str r0, [r3]
ldr r0, [sp, #4]
add r0, r0, r2
str r0, [sp, #4]
ldr r0, _02266064 ; =0x00000958
str r1, [r4, r0]
add r0, r0, #4
str r1, [r4, r0]
ldr r0, [r4, #8]
mov r1, #6
bl ov49_02258E60
cmp r0, #3
bls _02265ECA
b _02266046
_02265ECA:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02265ED6: ; jump table
.short _02265EDE - _02265ED6 - 2 ; case 0
.short _02265F32 - _02265ED6 - 2 ; case 1
.short _02265F88 - _02265ED6 - 2 ; case 2
.short _02265FE8 - _02265ED6 - 2 ; case 3
_02265EDE:
mov r0, #7
ldr r1, [sp, #0x14]
lsl r0, r0, #0xe
sub r1, r1, r0
str r1, [sp, #0x14]
ldr r1, [sp, #8]
lsr r0, r0, #1
sub r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
ldr r1, _02266068 ; =0x0000A38D
add r0, #0x84
mov r2, #1
bl sub_020182E0
add r0, r4, #0
ldr r1, _0226606C ; =0x0000DC70
add r0, #0xfc
mov r2, #1
bl sub_020182E0
mov r1, #2
add r0, r4, #0
ldr r2, [sp, #0xc]
lsl r1, r1, #0xe
add r1, r2, r1
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, #0x84
bl sub_020182A8
mov r1, #2
add r0, r4, #0
ldr r2, [sp, #0xc]
lsl r1, r1, #0xe
sub r1, r2, r1
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, #0xfc
bl sub_020182A8
b _02266046
_02265F32:
mov r0, #6
ldr r1, [sp, #0x14]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0x14]
mov r0, #0xb
ldr r1, [sp, #8]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
ldr r1, _02266070 ; =0x0000238E
add r0, #0x84
mov r2, #1
bl sub_020182E0
add r0, r4, #0
ldr r1, _02266074 ; =0x00005C71
add r0, #0xfc
mov r2, #1
bl sub_020182E0
mov r1, #2
add r0, r4, #0
ldr r2, [sp, #0xc]
lsl r1, r1, #0xe
sub r1, r2, r1
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, #0x84
bl sub_020182A8
mov r1, #2
add r0, r4, #0
ldr r2, [sp, #0xc]
lsl r1, r1, #0xe
add r1, r2, r1
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, #0xfc
bl sub_020182A8
b _02266046
_02265F88:
mov r0, #0x17
ldr r1, [sp, #0xc]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #0xc]
mov r0, #7
ldr r1, [sp]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp]
mov r0, #2
ldr r1, [sp, #8]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
ldr r1, _02266078 ; =0x0000E38F
add r0, #0x84
mov r2, #1
bl sub_020182E0
add r0, r4, #0
ldr r1, _0226607C ; =0x00001C71
add r0, #0xfc
mov r2, #1
bl sub_020182E0
mov r3, #2
add r0, r4, #0
ldr r5, [sp, #0x14]
lsl r3, r3, #0xe
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
add r0, #0x84
sub r3, r5, r3
bl sub_020182A8
mov r3, #2
add r0, r4, #0
ldr r5, [sp, #0x14]
lsl r3, r3, #0xe
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
add r0, #0xfc
add r3, r5, r3
bl sub_020182A8
b _02266046
_02265FE8:
mov r0, #0x17
ldr r1, [sp, #0xc]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0xc]
mov r0, #7
ldr r1, [sp]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp]
mov r0, #2
ldr r1, [sp, #8]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
ldr r1, _02266080 ; =0x0000638D
add r0, #0x84
mov r2, #1
bl sub_020182E0
add r0, r4, #0
ldr r1, _02266084 ; =0x00009C71
add r0, #0xfc
mov r2, #1
bl sub_020182E0
mov r3, #2
add r0, r4, #0
ldr r5, [sp, #0x14]
lsl r3, r3, #0xe
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
add r0, #0x84
add r3, r5, r3
bl sub_020182A8
mov r3, #2
add r0, r4, #0
ldr r5, [sp, #0x14]
lsl r3, r3, #0xe
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
add r0, #0xfc
sub r3, r5, r3
bl sub_020182A8
_02266046:
add r4, #0xc
ldr r1, [sp]
ldr r2, [sp, #4]
ldr r3, [sp, #8]
add r0, r4, #0
bl sub_020182A8
add sp, #0x18
pop {r3, r4, r5, pc}
.balign 4, 0
_02266058: .word ov49_0226A730
_0226605C: .word ov49_0226A73C
_02266060: .word ov49_0226A734
_02266064: .word 0x00000958
_02266068: .word 0x0000A38D
_0226606C: .word 0x0000DC70
_02266070: .word 0x0000238E
_02266074: .word 0x00005C71
_02266078: .word 0x0000E38F
_0226607C: .word 0x00001C71
_02266080: .word 0x0000638D
_02266084: .word 0x00009C71
thumb_func_end ov49_02265E54
thumb_func_start ov49_02266088
ov49_02266088: ; 0x02266088
push {r3, r4, r5, lr}
sub sp, #0x18
ldr r3, _02266314 ; =ov49_0226A730
mov r2, #1
add r5, r0, #0
add r4, r1, #0
bl ov49_02265980
ldr r3, _02266318 ; =ov49_0226A73C
add r0, r5, #0
add r1, r4, #0
mov r2, #0
bl ov49_02265980
ldr r3, _0226631C ; =ov49_0226A734
add r0, r5, #0
add r1, r4, #0
mov r2, #2
bl ov49_02265980
ldr r3, _02266320 ; =ov49_0226A738
add r0, r5, #0
add r1, r4, #0
mov r2, #3
bl ov49_02265980
add r0, r4, #0
add r0, #0x84
mov r1, #0
bl sub_020182A0
ldr r1, _02266324 ; =0x00000958
mov r2, #8
str r2, [r4, r1]
add r0, r1, #4
str r2, [r4, r0]
add r1, #8
str r2, [r4, r1]
ldr r0, [r4, #8]
add r1, sp, #0xc
bl ov49_02259154
mov r2, #1
ldr r0, [sp, #0x10]
lsl r2, r2, #0x10
add r0, r0, r2
str r0, [sp, #0x10]
ldr r1, [sp, #0xc]
lsr r0, r2, #1
add r0, r1, r0
add r5, sp, #0xc
str r0, [sp, #0xc]
ldmia r5!, {r0, r1}
add r3, sp, #0
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #6
str r0, [r3]
ldr r0, [sp, #4]
add r0, r0, r2
str r0, [sp, #4]
ldr r0, [r4, #8]
bl ov49_02258E60
cmp r0, #3
bls _0226610E
b _02266302
_0226610E:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0226611A: ; jump table
.short _02266122 - _0226611A - 2 ; case 0
.short _02266194 - _0226611A - 2 ; case 1
.short _02266208 - _0226611A - 2 ; case 2
.short _02266286 - _0226611A - 2 ; case 3
_02266122:
mov r0, #7
ldr r1, [sp, #0x14]
lsl r0, r0, #0xe
sub r1, r1, r0
str r1, [sp, #0x14]
ldr r1, [sp, #8]
lsr r0, r0, #1
sub r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
ldr r1, _02266328 ; =0x0000A38D
add r0, #0x84
mov r2, #1
bl sub_020182E0
add r0, r4, #0
ldr r1, _0226632C ; =0x0000DC70
add r0, #0xfc
mov r2, #1
bl sub_020182E0
mov r0, #0x5d
lsl r0, r0, #2
ldr r1, _02266330 ; =0x0000BFFF
add r0, r4, r0
mov r2, #1
bl sub_020182E0
mov r1, #2
add r0, r4, #0
ldr r2, [sp, #0xc]
lsl r1, r1, #0xe
add r1, r2, r1
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, #0x84
bl sub_020182A8
mov r1, #2
add r0, r4, #0
ldr r2, [sp, #0xc]
lsl r1, r1, #0xe
sub r1, r2, r1
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, #0xfc
bl sub_020182A8
mov r0, #0x5d
lsl r0, r0, #2
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, r4, r0
bl sub_020182A8
b _02266302
_02266194:
mov r0, #6
ldr r1, [sp, #0x14]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #0x14]
mov r0, #0xb
ldr r1, [sp, #8]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
ldr r1, _02266334 ; =0x0000238E
add r0, #0x84
mov r2, #1
bl sub_020182E0
add r0, r4, #0
ldr r1, _02266338 ; =0x00005C71
add r0, #0xfc
mov r2, #1
bl sub_020182E0
mov r0, #0x5d
lsl r0, r0, #2
ldr r1, _0226633C ; =0x00003FFF
add r0, r4, r0
mov r2, #1
bl sub_020182E0
mov r1, #2
add r0, r4, #0
ldr r2, [sp, #0xc]
lsl r1, r1, #0xe
sub r1, r2, r1
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, #0x84
bl sub_020182A8
mov r1, #2
add r0, r4, #0
ldr r2, [sp, #0xc]
lsl r1, r1, #0xe
add r1, r2, r1
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, #0xfc
bl sub_020182A8
mov r0, #0x5d
lsl r0, r0, #2
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, r4, r0
bl sub_020182A8
b _02266302
_02266208:
mov r0, #0x17
ldr r1, [sp, #0xc]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #0xc]
mov r0, #7
ldr r1, [sp]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp]
mov r0, #2
ldr r1, [sp, #8]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
ldr r1, _02266340 ; =0x0000E38F
add r0, #0x84
mov r2, #1
bl sub_020182E0
add r0, r4, #0
ldr r1, _02266344 ; =0x00001C71
add r0, #0xfc
mov r2, #1
bl sub_020182E0
mov r0, #0x5d
lsl r0, r0, #2
add r0, r4, r0
mov r1, #0
mov r2, #1
bl sub_020182E0
mov r3, #2
add r0, r4, #0
ldr r5, [sp, #0x14]
lsl r3, r3, #0xe
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
add r0, #0x84
sub r3, r5, r3
bl sub_020182A8
mov r3, #2
add r0, r4, #0
ldr r5, [sp, #0x14]
lsl r3, r3, #0xe
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
add r0, #0xfc
add r3, r5, r3
bl sub_020182A8
mov r0, #0x5d
lsl r0, r0, #2
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, r4, r0
bl sub_020182A8
b _02266302
_02266286:
mov r0, #0x17
ldr r1, [sp, #0xc]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0xc]
mov r0, #7
ldr r1, [sp]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp]
mov r0, #2
ldr r1, [sp, #8]
lsl r0, r0, #0xe
add r0, r1, r0
str r0, [sp, #8]
add r0, r4, #0
ldr r1, _02266348 ; =0x0000638D
add r0, #0x84
mov r2, #1
bl sub_020182E0
add r0, r4, #0
ldr r1, _0226634C ; =0x00009C71
add r0, #0xfc
mov r2, #1
bl sub_020182E0
mov r0, #0x5d
lsl r0, r0, #2
ldr r1, _02266350 ; =0x00007FFF
add r0, r4, r0
mov r2, #1
bl sub_020182E0
mov r3, #2
add r0, r4, #0
ldr r5, [sp, #0x14]
lsl r3, r3, #0xe
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
add r0, #0x84
add r3, r5, r3
bl sub_020182A8
mov r3, #2
add r0, r4, #0
ldr r5, [sp, #0x14]
lsl r3, r3, #0xe
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
add r0, #0xfc
sub r3, r5, r3
bl sub_020182A8
mov r0, #0x5d
lsl r0, r0, #2
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, r4, r0
bl sub_020182A8
_02266302:
add r4, #0xc
ldr r1, [sp]
ldr r2, [sp, #4]
ldr r3, [sp, #8]
add r0, r4, #0
bl sub_020182A8
add sp, #0x18
pop {r3, r4, r5, pc}
.balign 4, 0
_02266314: .word ov49_0226A730
_02266318: .word ov49_0226A73C
_0226631C: .word ov49_0226A734
_02266320: .word ov49_0226A738
_02266324: .word 0x00000958
_02266328: .word 0x0000A38D
_0226632C: .word 0x0000DC70
_02266330: .word 0x0000BFFF
_02266334: .word 0x0000238E
_02266338: .word 0x00005C71
_0226633C: .word 0x00003FFF
_02266340: .word 0x0000E38F
_02266344: .word 0x00001C71
_02266348: .word 0x0000638D
_0226634C: .word 0x00009C71
_02266350: .word 0x00007FFF
thumb_func_end ov49_02266088
thumb_func_start ov49_02266354
ov49_02266354: ; 0x02266354
ldr r3, _0226635C ; =ov49_02266B28
mov r2, #1
bx r3
nop
_0226635C: .word ov49_02266B28
thumb_func_end ov49_02266354
thumb_func_start ov49_02266360
ov49_02266360: ; 0x02266360
ldr r3, _02266368 ; =ov49_02266B28
mov r2, #2
bx r3
nop
_02266368: .word ov49_02266B28
thumb_func_end ov49_02266360
thumb_func_start ov49_0226636C
ov49_0226636C: ; 0x0226636C
ldr r3, _02266374 ; =ov49_02266B28
mov r2, #3
bx r3
nop
_02266374: .word ov49_02266B28
thumb_func_end ov49_0226636C
thumb_func_start ov49_02266378
ov49_02266378: ; 0x02266378
ldr r3, _02266380 ; =ov49_02267908
mov r2, #1
bx r3
nop
_02266380: .word ov49_02267908
thumb_func_end ov49_02266378
thumb_func_start ov49_02266384
ov49_02266384: ; 0x02266384
ldr r3, _0226638C ; =ov49_02267908
mov r2, #2
bx r3
nop
_0226638C: .word ov49_02267908
thumb_func_end ov49_02266384
thumb_func_start ov49_02266390
ov49_02266390: ; 0x02266390
ldr r3, _02266398 ; =ov49_02267908
mov r2, #4
bx r3
nop
_02266398: .word ov49_02267908
thumb_func_end ov49_02266390
thumb_func_start ov49_0226639C
ov49_0226639C: ; 0x0226639C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
ldr r5, _022663DC ; =ov49_0226A7A8
str r0, [sp, #8]
add r7, r1, #0
mov r4, #0
_022663A8:
ldrb r3, [r5]
ldr r0, [sp, #8]
add r1, r7, #0
lsl r6, r3, #2
ldr r3, _022663E0 ; =ov49_0226A70C
add r2, r4, #0
add r3, r3, r6
bl ov49_02265980
add r4, r4, #1
add r5, r5, #1
cmp r4, #0x10
blt _022663A8
mov r0, #0
str r0, [sp]
ldr r0, _022663E4 ; =0x00000954
ldr r1, _022663E8 ; =ov49_0226A454
add r0, r7, r0
mov r2, #2
mov r3, #0x21
str r7, [sp, #4]
bl ov49_02267D98
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_022663DC: .word ov49_0226A7A8
_022663E0: .word ov49_0226A70C
_022663E4: .word 0x00000954
_022663E8: .word ov49_0226A454
thumb_func_end ov49_0226639C
thumb_func_start ov49_022663EC
ov49_022663EC: ; 0x022663EC
push {r4, r5, r6, r7, lr}
sub sp, #0xc
ldr r5, _0226642C ; =ov49_0226A7B8
str r0, [sp, #8]
add r7, r1, #0
mov r4, #0
_022663F8:
ldrb r3, [r5]
ldr r0, [sp, #8]
add r1, r7, #0
lsl r6, r3, #2
ldr r3, _02266430 ; =ov49_0226A70C
add r2, r4, #0
add r3, r3, r6
bl ov49_02265980
add r4, r4, #1
add r5, r5, #1
cmp r4, #0x10
blt _022663F8
mov r0, #0
str r0, [sp]
ldr r0, _02266434 ; =0x00000954
ldr r1, _02266438 ; =ov49_0226A46C
add r0, r7, r0
mov r2, #2
mov r3, #0x21
str r7, [sp, #4]
bl ov49_02267D98
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_0226642C: .word ov49_0226A7B8
_02266430: .word ov49_0226A70C
_02266434: .word 0x00000954
_02266438: .word ov49_0226A46C
thumb_func_end ov49_022663EC
thumb_func_start ov49_0226643C
ov49_0226643C: ; 0x0226643C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
ldr r5, _0226647C ; =ov49_0226A7C8
str r0, [sp, #8]
add r7, r1, #0
mov r4, #0
_02266448:
ldrb r3, [r5]
ldr r0, [sp, #8]
add r1, r7, #0
lsl r6, r3, #2
ldr r3, _02266480 ; =ov49_0226A70C
add r2, r4, #0
add r3, r3, r6
bl ov49_02265980
add r4, r4, #1
add r5, r5, #1
cmp r4, #0x10
blt _02266448
mov r0, #0
str r0, [sp]
ldr r0, _02266484 ; =0x00000954
ldr r1, _02266488 ; =ov49_0226A4B4
add r0, r7, r0
mov r2, #3
mov r3, #0x21
str r7, [sp, #4]
bl ov49_02267D98
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_0226647C: .word ov49_0226A7C8
_02266480: .word ov49_0226A70C
_02266484: .word 0x00000954
_02266488: .word ov49_0226A4B4
thumb_func_end ov49_0226643C
thumb_func_start ov49_0226648C
ov49_0226648C: ; 0x0226648C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
ldr r5, _022664CC ; =ov49_0226A7A8
str r0, [sp, #8]
add r7, r1, #0
mov r4, #0
_02266498:
ldrb r3, [r5]
ldr r0, [sp, #8]
add r1, r7, #0
lsl r6, r3, #2
ldr r3, _022664D0 ; =ov49_0226A70C
add r2, r4, #0
add r3, r3, r6
bl ov49_02265980
add r4, r4, #1
add r5, r5, #1
cmp r4, #0x10
blt _02266498
mov r0, #1
str r0, [sp]
ldr r0, _022664D4 ; =0x00000954
ldr r1, _022664D8 ; =ov49_0226A464
add r0, r7, r0
mov r2, #2
mov r3, #0x21
str r7, [sp, #4]
bl ov49_02267D98
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_022664CC: .word ov49_0226A7A8
_022664D0: .word ov49_0226A70C
_022664D4: .word 0x00000954
_022664D8: .word ov49_0226A464
thumb_func_end ov49_0226648C
thumb_func_start ov49_022664DC
ov49_022664DC: ; 0x022664DC
push {r4, r5, r6, r7, lr}
sub sp, #0xc
ldr r5, _0226651C ; =ov49_0226A7B8
str r0, [sp, #8]
add r7, r1, #0
mov r4, #0
_022664E8:
ldrb r3, [r5]
ldr r0, [sp, #8]
add r1, r7, #0
lsl r6, r3, #2
ldr r3, _02266520 ; =ov49_0226A70C
add r2, r4, #0
add r3, r3, r6
bl ov49_02265980
add r4, r4, #1
add r5, r5, #1
cmp r4, #0x10
blt _022664E8
mov r0, #1
str r0, [sp]
ldr r0, _02266524 ; =0x00000954
ldr r1, _02266528 ; =ov49_0226A49C
add r0, r7, r0
mov r2, #3
mov r3, #0x29
str r7, [sp, #4]
bl ov49_02267D98
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_0226651C: .word ov49_0226A7B8
_02266520: .word ov49_0226A70C
_02266524: .word 0x00000954
_02266528: .word ov49_0226A49C
thumb_func_end ov49_022664DC
thumb_func_start ov49_0226652C
ov49_0226652C: ; 0x0226652C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
ldr r5, _0226656C ; =ov49_0226A7C8
str r0, [sp, #8]
add r7, r1, #0
mov r4, #0
_02266538:
ldrb r3, [r5]
ldr r0, [sp, #8]
add r1, r7, #0
lsl r6, r3, #2
ldr r3, _02266570 ; =ov49_0226A70C
add r2, r4, #0
add r3, r3, r6
bl ov49_02265980
add r4, r4, #1
add r5, r5, #1
cmp r4, #0x10
blt _02266538
mov r0, #1
str r0, [sp]
ldr r0, _02266574 ; =0x00000954
ldr r1, _02266578 ; =ov49_0226A4C0
add r0, r7, r0
mov r2, #3
mov r3, #0x21
str r7, [sp, #4]
bl ov49_02267D98
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_0226656C: .word ov49_0226A7C8
_02266570: .word ov49_0226A70C
_02266574: .word 0x00000954
_02266578: .word ov49_0226A4C0
thumb_func_end ov49_0226652C
thumb_func_start ov49_0226657C
ov49_0226657C: ; 0x0226657C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
ldr r5, _022665C0 ; =ov49_0226A7A8
str r0, [sp, #8]
add r7, r1, #0
mov r4, #0
_02266588:
ldrb r3, [r5]
ldr r0, [sp, #8]
add r1, r7, #0
lsl r6, r3, #2
ldr r3, _022665C4 ; =ov49_0226A70C
add r2, r4, #0
add r3, r3, r6
bl ov49_02265980
add r4, r4, #1
add r5, r5, #1
cmp r4, #0x10
blt _02266588
ldr r0, _022665C8 ; =0x00000954
mov r2, #2
str r2, [sp]
ldr r1, _022665CC ; =ov49_0226A47C
add r0, r7, r0
mov r3, #0x21
str r7, [sp, #4]
bl ov49_02267D98
ldr r0, [sp, #8]
add r1, r7, #0
bl ov49_02267C8C
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_022665C0: .word ov49_0226A7A8
_022665C4: .word ov49_0226A70C
_022665C8: .word 0x00000954
_022665CC: .word ov49_0226A47C
thumb_func_end ov49_0226657C
thumb_func_start ov49_022665D0
ov49_022665D0: ; 0x022665D0
push {r4, r5, r6, r7, lr}
sub sp, #0xc
ldr r5, _02266614 ; =ov49_0226A7B8
str r0, [sp, #8]
add r7, r1, #0
mov r4, #0
_022665DC:
ldrb r3, [r5]
ldr r0, [sp, #8]
add r1, r7, #0
lsl r6, r3, #2
ldr r3, _02266618 ; =ov49_0226A70C
add r2, r4, #0
add r3, r3, r6
bl ov49_02265980
add r4, r4, #1
add r5, r5, #1
cmp r4, #0x10
blt _022665DC
ldr r0, _0226661C ; =0x00000954
mov r2, #2
str r2, [sp]
ldr r1, _02266620 ; =ov49_0226A45C
add r0, r7, r0
mov r3, #0x21
str r7, [sp, #4]
bl ov49_02267D98
ldr r0, [sp, #8]
add r1, r7, #0
bl ov49_02267C8C
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_02266614: .word ov49_0226A7B8
_02266618: .word ov49_0226A70C
_0226661C: .word 0x00000954
_02266620: .word ov49_0226A45C
thumb_func_end ov49_022665D0
thumb_func_start ov49_02266624
ov49_02266624: ; 0x02266624
push {r4, r5, r6, r7, lr}
sub sp, #0xc
ldr r5, _02266668 ; =ov49_0226A7C8
str r0, [sp, #8]
add r7, r1, #0
mov r4, #0
_02266630:
ldrb r3, [r5]
ldr r0, [sp, #8]
add r1, r7, #0
lsl r6, r3, #2
ldr r3, _0226666C ; =ov49_0226A70C
add r2, r4, #0
add r3, r3, r6
bl ov49_02265980
add r4, r4, #1
add r5, r5, #1
cmp r4, #0x10
blt _02266630
ldr r0, _02266670 ; =0x00000954
mov r2, #2
str r2, [sp]
ldr r1, _02266674 ; =ov49_0226A474
add r0, r7, r0
mov r3, #0x21
str r7, [sp, #4]
bl ov49_02267D98
ldr r0, [sp, #8]
add r1, r7, #0
bl ov49_02267C8C
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_02266668: .word ov49_0226A7C8
_0226666C: .word ov49_0226A70C
_02266670: .word 0x00000954
_02266674: .word ov49_0226A474
thumb_func_end ov49_02266624
thumb_func_start ov49_02266678
ov49_02266678: ; 0x02266678
push {r4, r5, r6, r7, lr}
sub sp, #0xc
str r0, [sp, #4]
add r5, r1, #0
mov r0, #2
ldrsh r0, [r5, r0]
add r0, r0, #1
cmp r0, #0x36
bgt _0226668C
strh r0, [r5, #2]
_0226668C:
mov r0, #2
ldrsh r1, [r5, r0]
mov r0, #6
mul r0, r1
mov r1, #0x36
bl _s32_div_f
add r6, r0, #0
ldr r0, _02266740 ; =0x00000955
ldrsb r4, [r5, r0]
cmp r4, r6
bhs _022666CA
add r7, r5, #0
add r7, #0xc
_022666A8:
add r0, r4, #0
mov r1, #3
bl _s32_div_f
ldr r0, _02266744 ; =0x00000954
ldrsb r0, [r5, r0]
cmp r1, r0
bhs _022666C4
mov r0, #0x78
mul r0, r1
add r0, r7, r0
mov r1, #1
bl sub_020182A0
_022666C4:
add r4, r4, #1
cmp r4, r6
blo _022666A8
_022666CA:
ldr r1, _02266740 ; =0x00000955
mov r0, #1
str r0, [sp, #8]
strb r6, [r5, r1]
sub r0, r1, #1
ldrsb r0, [r5, r0]
mov r4, #0
cmp r0, #0
ble _02266724
add r7, r5, #0
add r7, #0xc
add r6, r7, #0
_022666E2:
add r0, r7, #0
bl sub_020182A4
cmp r0, #1
bne _02266716
ldr r0, [sp, #4]
add r1, r5, #0
add r2, r4, #0
mov r3, #0
bl ov49_02265B28
str r0, [sp, #8]
cmp r0, #0
beq _02266716
add r0, r6, #0
mov r1, #0
bl sub_020182A0
mov r0, #0
str r0, [sp]
ldr r0, [sp, #4]
add r1, r5, #0
add r2, r4, #0
mov r3, #0
bl ov49_02265BE8
_02266716:
ldr r0, _02266744 ; =0x00000954
add r4, r4, #1
ldrsb r0, [r5, r0]
add r7, #0x78
add r6, #0x78
cmp r4, r0
blt _022666E2
_02266724:
ldr r0, _02266740 ; =0x00000955
ldrsb r0, [r5, r0]
cmp r0, #6
blt _02266738
ldr r0, [sp, #8]
cmp r0, #1
bne _02266738
add sp, #0xc
mov r0, #1
pop {r4, r5, r6, r7, pc}
_02266738:
mov r0, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_02266740: .word 0x00000955
_02266744: .word 0x00000954
thumb_func_end ov49_02266678
thumb_func_start ov49_02266748
ov49_02266748: ; 0x02266748
ldr r3, _02266750 ; =ov49_02267AF0
mov r2, #0
bx r3
nop
_02266750: .word ov49_02267AF0
thumb_func_end ov49_02266748
thumb_func_start ov49_02266754
ov49_02266754: ; 0x02266754
ldr r3, _0226675C ; =ov49_02267AF0
mov r2, #1
bx r3
nop
_0226675C: .word ov49_02267AF0
thumb_func_end ov49_02266754
thumb_func_start ov49_02266760
ov49_02266760: ; 0x02266760
ldr r3, _02266768 ; =ov49_02267AF0
mov r2, #2
bx r3
nop
_02266768: .word ov49_02267AF0
thumb_func_end ov49_02266760
thumb_func_start ov49_0226676C
ov49_0226676C: ; 0x0226676C
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r5, r1, #0
mov r0, #2
ldrsh r1, [r5, r0]
lsl r0, r1, #1
add r1, r1, r0
asr r0, r1, #4
lsr r0, r0, #0x1b
add r0, r1, r0
asr r4, r0, #5
ldr r0, _02266818 ; =0x00000954
ldrsh r1, [r5, r0]
cmp r4, r1
beq _022667BA
strh r4, [r5, r0]
add r0, r0, #2
ldrsh r0, [r5, r0]
cmp r0, r4
bls _022667BA
cmp r4, #0
beq _022667AA
add r2, r5, #0
sub r1, r4, #1
mov r0, #0x78
mul r0, r1
add r2, #0xc
add r0, r2, r0
mov r1, #0
bl sub_020182A0
_022667AA:
add r1, r5, #0
mov r0, #0x78
add r1, #0xc
mul r0, r4
add r0, r1, r0
mov r1, #1
bl sub_020182A0
_022667BA:
mov r0, #2
ldrsh r0, [r5, r0]
cmp r0, #0x20
bge _022667C6
add r0, r0, #1
strh r0, [r5, #2]
_022667C6:
ldr r0, _0226681C ; =0x00000956
mov r4, #0
ldrsh r0, [r5, r0]
str r4, [sp]
cmp r0, #0
ble _02266812
add r6, r5, #0
add r6, #0xc
_022667D6:
add r0, r6, #0
bl sub_020182A4
cmp r0, #0
beq _02266806
ldr r0, _0226681C ; =0x00000956
ldrsh r0, [r5, r0]
sub r0, r0, #1
cmp r4, r0
bne _022667FA
add r0, r7, #0
add r1, r5, #0
add r2, r4, #0
mov r3, #0
bl ov49_02265B28
str r0, [sp]
b _02266806
_022667FA:
add r0, r7, #0
add r1, r5, #0
add r2, r4, #0
mov r3, #0
bl ov49_02265B14
_02266806:
ldr r0, _0226681C ; =0x00000956
add r4, r4, #1
ldrsh r0, [r5, r0]
add r6, #0x78
cmp r4, r0
blt _022667D6
_02266812:
ldr r0, [sp]
pop {r3, r4, r5, r6, r7, pc}
nop
_02266818: .word 0x00000954
_0226681C: .word 0x00000956
thumb_func_end ov49_0226676C
thumb_func_start ov49_02266820
ov49_02266820: ; 0x02266820
push {r4, r5, r6, r7, lr}
sub sp, #0xc
str r0, [sp, #4]
ldr r0, _02266968 ; =0x0000087C
add r5, r1, #0
ldr r0, [r5, r0]
ldrb r0, [r0, #2]
cmp r0, #0x11
bne _02266836
bl GF_AssertFail
_02266836:
ldr r0, _0226696C ; =0x00000954
ldr r1, [r5, r0]
cmp r1, #0
ble _0226684E
sub r1, r1, #1
str r1, [r5, r0]
add r0, r5, #0
add r0, #0xc
mov r1, #0
bl sub_020182A0
b _022668AA
_0226684E:
mov r0, #2
ldrsh r1, [r5, r0]
cmp r1, #3
bge _022668AA
add r0, r5, #0
add r1, r1, #1
bl ov49_02265968
cmp r0, #1
bne _022668AA
add r0, r5, #0
add r0, #0xc
mov r1, #1
bl sub_020182A0
mov r2, #0
ldr r0, [sp, #4]
add r1, r5, #0
add r3, r2, #0
bl ov49_02265B28
cmp r0, #1
bne _022668AA
mov r1, #2
ldrsh r0, [r5, r1]
mov r2, #3
add r0, r0, #1
strh r0, [r5, #2]
ldr r0, _0226696C ; =0x00000954
str r2, [r5, r0]
ldrsh r0, [r5, r1]
cmp r0, #3
bge _022668A0
mov r2, #0
ldr r0, [sp, #4]
add r1, r5, #0
add r3, r2, #0
str r2, [sp]
bl ov49_02265BE8
b _022668AA
_022668A0:
add r0, r5, #0
add r0, #0xc
mov r1, #0
bl sub_020182A0
_022668AA:
add r7, r5, #0
mov r4, #1
add r7, #0xc
str r4, [sp, #8]
add r7, #0x78
add r6, r5, #4
_022668B6:
add r0, r5, #0
add r1, r4, #0
bl ov49_02265968
cmp r0, #1
bne _02266956
mov r0, #2
ldrsh r1, [r5, r0]
sub r0, r4, #1
cmp r1, r0
ble _02266952
add r0, r7, #0
mov r1, #1
bl sub_020182A0
mov r0, #0xa
lsl r0, r0, #0xa
str r0, [sp]
ldr r0, [sp, #4]
add r1, r5, #0
add r2, r4, #0
mov r3, #0
bl ov49_02265B94
cmp r0, #0
bne _022668F0
mov r0, #0
str r0, [sp, #8]
b _02266956
_022668F0:
sub r0, r4, #1
lsl r0, r0, #2
add r1, r5, r0
ldr r0, _02266970 ; =0x00000958
ldr r0, [r1, r0]
cmp r0, #0
bne _0226691E
add r0, r7, #0
mov r1, #0
bl sub_020182A0
ldr r0, _02266968 ; =0x0000087C
ldr r0, [r6, r0]
ldrb r0, [r0]
lsl r1, r0, #4
ldr r0, [sp, #4]
add r1, r0, r1
ldr r0, _02266974 ; =0x00010558
ldr r0, [r1, r0]
mov r1, #0x1f
bl NNS_G3dMdlSetMdlAlphaAll
b _02266956
_0226691E:
ldr r0, _02266970 ; =0x00000958
ldr r0, [r1, r0]
sub r2, r0, #1
ldr r0, _02266970 ; =0x00000958
str r2, [r1, r0]
sub r0, #0xdc
ldr r0, [r6, r0]
ldrb r0, [r0]
lsl r2, r0, #4
ldr r0, [sp, #4]
add r2, r0, r2
ldr r0, _02266974 ; =0x00010558
ldr r0, [r2, r0]
ldr r2, _02266970 ; =0x00000958
ldr r1, [r1, r2]
mov r2, #0x14
mul r2, r1
asr r1, r2, #2
lsr r1, r1, #0x1d
add r1, r2, r1
asr r1, r1, #3
bl NNS_G3dMdlSetMdlAlphaAll
mov r0, #0
str r0, [sp, #8]
b _02266956
_02266952:
mov r0, #0
str r0, [sp, #8]
_02266956:
add r4, r4, #1
add r7, #0x78
add r6, r6, #4
cmp r4, #3
ble _022668B6
ldr r0, [sp, #8]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_02266968: .word 0x0000087C
_0226696C: .word 0x00000954
_02266970: .word 0x00000958
_02266974: .word 0x00010558
thumb_func_end ov49_02266820
thumb_func_start ov49_02266978
ov49_02266978: ; 0x02266978
push {r3, r4, r5, lr}
add r4, r1, #0
ldrb r2, [r4, #1]
add r5, r0, #0
cmp r2, #0
beq _0226698A
cmp r2, #1
beq _022669A0
b _022669AC
_0226698A:
bl ov49_02266D60
cmp r0, #0
beq _022669AC
mov r0, #1
strb r0, [r4, #1]
add r0, r5, #0
add r1, r4, #0
bl ov49_02266EF8
b _022669AC
_022669A0:
bl ov49_022670B8
cmp r0, #0
beq _022669AC
mov r0, #1
pop {r3, r4, r5, pc}
_022669AC:
mov r0, #0
pop {r3, r4, r5, pc}
thumb_func_end ov49_02266978
thumb_func_start ov49_022669B0
ov49_022669B0: ; 0x022669B0
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r1, #0
ldr r1, _02266A7C ; =0x00000955
str r0, [sp]
add r0, r1, #1
ldrsb r2, [r5, r1]
ldrb r0, [r5, r0]
cmp r2, r0
bge _02266A1C
sub r0, r1, #1
ldrsb r0, [r5, r0]
add r2, r0, #1
sub r0, r1, #1
strb r2, [r5, r0]
ldrsb r0, [r5, r0]
cmp r0, #8
blt _022669E0
mov r2, #0
sub r0, r1, #1
strb r2, [r5, r0]
ldrsb r0, [r5, r1]
add r0, r0, #1
strb r0, [r5, r1]
_022669E0:
ldr r0, _02266A80 ; =0x00000954
ldrsb r1, [r5, r0]
lsl r2, r1, #2
asr r1, r2, #2
lsr r1, r1, #0x1d
add r1, r2, r1
asr r2, r1, #3
add r1, r0, #1
ldrsb r1, [r5, r1]
add r0, r0, #3
ldrb r6, [r5, r0]
lsl r1, r1, #2
add r7, r2, r1
cmp r6, r7
bhs _02266A18
add r1, r5, #0
mov r0, #0x78
add r1, #0xc
mul r0, r6
add r4, r1, r0
_02266A08:
add r0, r4, #0
mov r1, #1
bl sub_020182A0
add r6, r6, #1
add r4, #0x78
cmp r6, r7
blo _02266A08
_02266A18:
ldr r0, _02266A84 ; =0x00000957
strb r7, [r5, r0]
_02266A1C:
ldr r0, _02266A84 ; =0x00000957
mov r4, #0
ldrb r0, [r5, r0]
cmp r0, #0
ble _02266A5C
add r7, r5, #0
add r7, #0xc
add r6, r7, #0
_02266A2C:
add r0, r7, #0
bl sub_020182A4
cmp r0, #1
bne _02266A4E
ldr r0, [sp]
add r1, r5, #0
add r2, r4, #0
bl ov49_02267A1C
str r0, [sp, #4]
cmp r0, #1
bne _02266A4E
add r0, r6, #0
mov r1, #0
bl sub_020182A0
_02266A4E:
ldr r0, _02266A84 ; =0x00000957
add r4, r4, #1
ldrb r0, [r5, r0]
add r7, #0x78
add r6, #0x78
cmp r4, r0
blt _02266A2C
_02266A5C:
ldr r0, _02266A7C ; =0x00000955
ldrsb r1, [r5, r0]
add r0, r0, #1
ldrb r0, [r5, r0]
cmp r1, r0
bne _02266A74
ldr r0, [sp, #4]
cmp r0, #1
bne _02266A74
add sp, #8
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_02266A74:
mov r0, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_02266A7C: .word 0x00000955
_02266A80: .word 0x00000954
_02266A84: .word 0x00000957
thumb_func_end ov49_022669B0
thumb_func_start ov49_02266A88
ov49_02266A88: ; 0x02266A88
push {r4, lr}
add r4, r1, #0
mov r1, #2
ldr r0, _02266AAC ; =0x00000954
ldrsh r1, [r4, r1]
add r0, r4, r0
bl ov49_02267E18
mov r1, #2
ldrsh r1, [r4, r1]
add r1, r1, #1
strh r1, [r4, #2]
cmp r0, #2
bne _02266AA8
mov r0, #1
pop {r4, pc}
_02266AA8:
mov r0, #0
pop {r4, pc}
.balign 4, 0
_02266AAC: .word 0x00000954
thumb_func_end ov49_02266A88
thumb_func_start ov49_02266AB0
ov49_02266AB0: ; 0x02266AB0
push {r4, r5, r6, lr}
add r5, r1, #0
mov r1, #2
add r6, r0, #0
ldr r0, _02266AEC ; =0x00000954
ldrsh r1, [r5, r1]
add r0, r5, r0
bl ov49_02267E18
add r4, r0, #0
mov r0, #2
ldrsh r0, [r5, r0]
add r0, r0, #1
strh r0, [r5, #2]
cmp r4, #1
bne _02266AD8
add r0, r6, #0
add r1, r5, #0
bl ov49_02267D00
_02266AD8:
add r0, r6, #0
add r1, r5, #0
bl ov49_02267D34
cmp r4, #2
bne _02266AE8
mov r0, #1
pop {r4, r5, r6, pc}
_02266AE8:
mov r0, #0
pop {r4, r5, r6, pc}
.balign 4, 0
_02266AEC: .word 0x00000954
thumb_func_end ov49_02266AB0
thumb_func_start ov49_02266AF0
ov49_02266AF0: ; 0x02266AF0
push {r4, r5, r6, lr}
add r5, r1, #0
add r6, r0, #0
ldr r0, [r5, #8]
bl ov49_02258F70
cmp r0, #1
bne _02266B04
mov r0, #0
pop {r4, r5, r6, pc}
_02266B04:
mov r4, #0
_02266B06:
add r0, r5, #0
add r1, r4, #0
bl ov49_02265968
cmp r0, #1
bne _02266B1C
add r0, r6, #0
add r1, r5, #0
add r2, r4, #0
bl ov49_022659D0
_02266B1C:
add r4, r4, #1
cmp r4, #0x12
blt _02266B06
mov r0, #1
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov49_02266AF0
thumb_func_start ov49_02266B28
ov49_02266B28: ; 0x02266B28
push {r4, r5, r6, lr}
sub sp, #8
add r5, r0, #0
ldr r0, [r5, #4]
add r4, r1, #0
add r6, r2, #0
bl ov49_02258DAC
ldr r1, [r4, #8]
cmp r1, r0
bne _02266B44
ldr r0, [r5, #8]
bl ov49_0225CC44
_02266B44:
ldr r0, [r4, #8]
bl ov49_02258E34
add r2, sp, #0
strh r0, [r2]
lsr r0, r0, #0x10
strh r0, [r2, #2]
ldrh r0, [r2]
mov r1, #4
strh r0, [r2, #4]
ldrh r0, [r2, #2]
strh r0, [r2, #6]
ldrsh r1, [r2, r1]
ldr r0, [r5, #0xc]
asr r3, r1, #3
lsr r3, r3, #0x1c
add r3, r1, r3
lsl r1, r3, #0xc
mov r3, #6
ldrsh r2, [r2, r3]
lsr r1, r1, #0x10
asr r3, r2, #3
lsr r3, r3, #0x1c
add r3, r2, r3
lsl r2, r3, #0xc
lsr r2, r2, #0x10
bl ov49_022589C4
cmp r0, #0x2a
bne _02266B84
mov r1, #1
b _02266B86
_02266B84:
mov r1, #0
_02266B86:
ldr r0, _02266C58 ; =0x00000965
cmp r6, #1
strb r1, [r4, r0]
beq _02266B96
cmp r6, #2
beq _02266BB0
cmp r6, #3
b _02266BE2
_02266B96:
ldr r3, _02266C5C ; =ov49_0226A74C
add r0, r5, #0
add r1, r4, #0
mov r2, #0
bl ov49_02265980
mov r2, #0
add r0, r5, #0
add r1, r4, #0
add r3, r2, #0
bl ov49_0226786C
b _02266C2A
_02266BB0:
ldr r3, _02266C5C ; =ov49_0226A74C
add r0, r5, #0
add r1, r4, #0
mov r2, #0
bl ov49_02265980
ldr r3, _02266C60 ; =ov49_0226A750
add r0, r5, #0
add r1, r4, #0
mov r2, #1
bl ov49_02265980
add r0, r5, #0
add r1, r4, #0
mov r2, #0
mov r3, #2
bl ov49_0226786C
mov r2, #1
add r0, r5, #0
add r1, r4, #0
add r3, r2, #0
bl ov49_0226786C
b _02266C2A
_02266BE2:
ldr r3, _02266C5C ; =ov49_0226A74C
add r0, r5, #0
add r1, r4, #0
mov r2, #0
bl ov49_02265980
ldr r3, _02266C60 ; =ov49_0226A750
add r0, r5, #0
add r1, r4, #0
mov r2, #1
bl ov49_02265980
ldr r3, _02266C64 ; =ov49_0226A754
add r0, r5, #0
add r1, r4, #0
mov r2, #2
bl ov49_02265980
mov r2, #0
add r0, r5, #0
add r1, r4, #0
add r3, r2, #0
bl ov49_0226786C
add r0, r5, #0
add r1, r4, #0
mov r2, #1
mov r3, #2
bl ov49_0226786C
add r0, r5, #0
add r1, r4, #0
mov r2, #2
mov r3, #1
bl ov49_0226786C
_02266C2A:
ldr r0, _02266C68 ; =0x00000955
mov r1, #0
strb r6, [r4, r0]
ldr r0, [r4, #8]
bl ov49_02259130
ldr r0, _02266C58 ; =0x00000965
ldrb r0, [r4, r0]
cmp r0, #0
bne _02266C4A
add r0, r5, #0
add r1, r4, #0
bl ov49_02266C6C
add sp, #8
pop {r4, r5, r6, pc}
_02266C4A:
add r0, r5, #0
add r1, r4, #0
bl ov49_02266D04
add sp, #8
pop {r4, r5, r6, pc}
nop
_02266C58: .word 0x00000965
_02266C5C: .word ov49_0226A74C
_02266C60: .word ov49_0226A750
_02266C64: .word ov49_0226A754
_02266C68: .word 0x00000955
thumb_func_end ov49_02266B28
thumb_func_start ov49_02266C6C
ov49_02266C6C: ; 0x02266C6C
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r1, #0
ldr r0, [r5, #8]
add r1, sp, #0x10
bl ov49_02259154
ldr r0, _02266CEC ; =0x00000955
ldrsb r0, [r5, r0]
sub r1, r0, #1
ldr r0, _02266CF0 ; =ov49_0226A450
ldrb r0, [r0, r1]
cmp r0, #0
beq _02266C9A
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _02266CA8
_02266C9A:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_02266CA8:
ldr r6, [sp, #0x14]
ldr r4, [sp, #0x18]
ldr r7, [sp, #0x10]
bl _ffix
add r0, r6, r0
str r0, [sp]
str r4, [sp, #4]
str r4, [sp, #8]
mov r0, #0x6c
str r0, [sp, #0xc]
ldr r0, _02266CF4 ; =0x00000A04
add r1, r7, #0
add r0, r5, r0
add r2, r7, #0
add r3, r6, #0
bl ov49_0226540C
ldr r0, _02266CF8 ; =0x00000A2C
mov r3, #2
ldr r2, _02266CFC ; =0x0000071C
add r0, r5, r0
mov r1, #0
lsl r3, r3, #0xe
bl ov49_022655F4
add r0, r5, #0
bl ov49_0226747C
ldr r0, _02266D00 ; =0x00000956
mov r1, #0
strh r1, [r5, r0]
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_02266CEC: .word 0x00000955
_02266CF0: .word ov49_0226A450
_02266CF4: .word 0x00000A04
_02266CF8: .word 0x00000A2C
_02266CFC: .word 0x0000071C
_02266D00: .word 0x00000956
thumb_func_end ov49_02266C6C
thumb_func_start ov49_02266D04
ov49_02266D04: ; 0x02266D04
push {r3, r4, lr}
sub sp, #0x1c
add r4, r1, #0
ldr r0, [r4, #8]
add r1, sp, #0x10
bl ov49_02259154
mov r0, #2
ldr r3, [sp, #0x14]
lsl r0, r0, #0xc
ldr r2, [sp, #0x18]
ldr r1, [sp, #0x10]
add r0, r3, r0
str r0, [sp]
str r2, [sp, #4]
str r2, [sp, #8]
mov r0, #2
str r0, [sp, #0xc]
ldr r0, _02266D50 ; =0x00000A04
add r2, r1, #0
add r0, r4, r0
bl ov49_0226540C
ldr r0, _02266D54 ; =0x00000A2C
mov r1, #0
ldr r2, _02266D58 ; =0x0000071C
add r0, r4, r0
add r3, r1, #0
bl ov49_022655F4
add r0, r4, #0
bl ov49_02267674
ldr r0, _02266D5C ; =0x00000956
mov r1, #0
strh r1, [r4, r0]
add sp, #0x1c
pop {r3, r4, pc}
.balign 4, 0
_02266D50: .word 0x00000A04
_02266D54: .word 0x00000A2C
_02266D58: .word 0x0000071C
_02266D5C: .word 0x00000956
thumb_func_end ov49_02266D04
thumb_func_start ov49_02266D60
ov49_02266D60: ; 0x02266D60
push {r3, lr}
ldr r2, _02266D78 ; =0x00000965
ldrb r2, [r1, r2]
cmp r2, #0
bne _02266D70
bl ov49_02266D7C
pop {r3, pc}
_02266D70:
bl ov49_02266E78
pop {r3, pc}
nop
_02266D78: .word 0x00000965
thumb_func_end ov49_02266D60
thumb_func_start ov49_02266D7C
ov49_02266D7C: ; 0x02266D7C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r1, #0
ldr r1, _02266E64 ; =0x00000A04
add r6, r0, #0
add r0, r5, r1
sub r1, #0xae
ldrsh r1, [r5, r1]
bl ov49_02265434
str r0, [sp]
ldr r0, _02266E68 ; =0x00000A2C
add r0, r5, r0
bl ov49_02265628
ldr r0, _02266E6C ; =0x00000956
ldrsh r1, [r5, r0]
add r1, r1, #1
strh r1, [r5, r0]
ldr r0, [r5, #8]
add r1, sp, #0xc
bl ov49_02259154
ldr r0, _02266E64 ; =0x00000A04
add r1, sp, #0xc
add r0, r5, r0
add r2, sp, #0x10
add r3, sp, #0x14
bl ov49_022655E0
ldr r0, _02266E68 ; =0x00000A2C
add r1, sp, #8
add r0, r5, r0
bl ov49_02265660
ldr r0, [sp]
cmp r0, #0
bne _02266DD0
ldr r1, [sp, #0xc]
ldr r0, [sp, #8]
add r0, r1, r0
str r0, [sp, #0xc]
_02266DD0:
ldr r0, [r5, #8]
add r1, sp, #0xc
bl ov49_02259148
add r0, r5, #0
bl ov49_0226747C
ldr r0, _02266E70 ; =0x00000955
mov r4, #0
ldrsb r0, [r5, r0]
cmp r0, #0
ble _02266DFC
ldr r7, _02266E70 ; =0x00000955
_02266DEA:
add r0, r6, #0
add r1, r5, #0
add r2, r4, #0
bl ov49_0226789C
ldrsb r0, [r5, r7]
add r4, r4, #1
cmp r4, r0
blt _02266DEA
_02266DFC:
ldr r0, [r6, #4]
ldr r7, [r5, #8]
bl ov49_02258DAC
cmp r7, r0
bne _02266E5E
ldr r0, _02266E74 ; =gSystem
mov r1, #0x40
ldr r0, [r0, #0x48]
mov r4, #4
tst r1, r0
beq _02266E16
mov r4, #0
_02266E16:
mov r1, #0x80
tst r1, r0
beq _02266E1E
mov r4, #1
_02266E1E:
mov r1, #0x10
tst r1, r0
beq _02266E26
mov r4, #3
_02266E26:
mov r1, #0x20
tst r0, r1
beq _02266E2E
mov r4, #2
_02266E2E:
cmp r4, #4
beq _02266E5E
add r0, r7, #0
add r1, r4, #0
bl ov49_02259160
ldr r0, [r5, #8]
bl ov49_02258E34
add r1, sp, #4
strh r0, [r1]
lsr r0, r0, #0x10
strh r0, [r1, #2]
mov r3, sp
ldrh r2, [r1]
ldr r0, [r5, #8]
sub r3, r3, #4
strh r2, [r3]
ldrh r1, [r1, #2]
add r2, r4, #0
strh r1, [r3, #2]
ldr r1, [r3]
bl ov49_02258E04
_02266E5E:
ldr r0, [sp]
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02266E64: .word 0x00000A04
_02266E68: .word 0x00000A2C
_02266E6C: .word 0x00000956
_02266E70: .word 0x00000955
_02266E74: .word gSystem
thumb_func_end ov49_02266D7C
thumb_func_start ov49_02266E78
ov49_02266E78: ; 0x02266E78
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r1, #0
ldr r1, _02266EE8 ; =0x00000A04
add r6, r0, #0
add r0, r5, r1
sub r1, #0xae
ldrsh r1, [r5, r1]
bl ov49_02265434
str r0, [sp]
ldr r0, _02266EEC ; =0x00000A2C
add r0, r5, r0
bl ov49_02265628
ldr r0, _02266EF0 ; =0x00000956
ldrsh r1, [r5, r0]
add r1, r1, #1
strh r1, [r5, r0]
ldr r0, [r5, #8]
add r1, sp, #4
bl ov49_02259154
ldr r0, _02266EE8 ; =0x00000A04
add r1, sp, #4
add r0, r5, r0
add r2, sp, #8
add r3, sp, #0xc
bl ov49_022655E0
ldr r0, [r5, #8]
add r1, sp, #4
bl ov49_02259148
add r0, r5, #0
bl ov49_02267674
ldr r0, _02266EF4 ; =0x00000955
mov r4, #0
ldrsb r0, [r5, r0]
cmp r0, #0
ble _02266EE0
ldr r7, _02266EF4 ; =0x00000955
_02266ECE:
add r0, r6, #0
add r1, r5, #0
add r2, r4, #0
bl ov49_0226789C
ldrsb r0, [r5, r7]
add r4, r4, #1
cmp r4, r0
blt _02266ECE
_02266EE0:
ldr r0, [sp]
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
_02266EE8: .word 0x00000A04
_02266EEC: .word 0x00000A2C
_02266EF0: .word 0x00000956
_02266EF4: .word 0x00000955
thumb_func_end ov49_02266E78
thumb_func_start ov49_02266EF8
ov49_02266EF8: ; 0x02266EF8
push {r3, lr}
ldr r2, _02266F10 ; =0x00000965
ldrb r2, [r1, r2]
cmp r2, #0
bne _02266F08
bl ov49_02266F14
pop {r3, pc}
_02266F08:
bl ov49_02267074
pop {r3, pc}
nop
_02266F10: .word 0x00000965
thumb_func_end ov49_02266EF8
thumb_func_start ov49_02266F14
ov49_02266F14: ; 0x02266F14
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x30
add r5, r1, #0
str r0, [sp, #0x10]
ldr r0, [r5, #8]
add r1, sp, #0x24
bl ov49_02259154
ldr r0, _0226705C ; =0x00000955
ldrsb r0, [r5, r0]
sub r1, r0, #1
ldr r0, _02267060 ; =ov49_0226A450
ldrb r0, [r0, r1]
cmp r0, #0
beq _02266F44
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _02266F52
_02266F44:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_02266F52:
ldr r6, [sp, #0x28]
ldr r4, [sp, #0x2c]
ldr r7, [sp, #0x24]
bl _ffix
sub r0, r6, r0
str r0, [sp]
str r4, [sp, #4]
str r4, [sp, #8]
mov r0, #0xa
str r0, [sp, #0xc]
ldr r0, _02267064 ; =0x00000A04
add r1, r7, #0
add r0, r5, r0
add r2, r7, #0
add r3, r6, #0
bl ov49_0226540C
ldr r1, _02267068 ; =0x00000956
mov r4, #0
strh r4, [r5, r1]
sub r0, r1, #2
strb r4, [r5, r0]
sub r0, r1, #1
ldrsb r0, [r5, r0]
cmp r0, #0
ble _02267052
add r0, r5, #0
str r0, [sp, #0x14]
add r0, #0xc
str r0, [sp, #0x14]
add r0, r1, #0
add r0, #0x36
add r1, #0x12
add r7, r5, r0
add r6, r5, r1
_02266F9A:
ldr r0, [sp, #0x14]
add r1, sp, #0x24
add r2, sp, #0x28
add r3, sp, #0x2c
bl sub_020182B0
mov r0, #0x96
add r1, r5, r4
lsl r0, r0, #4
ldrb r0, [r1, r0]
cmp r0, #0
beq _02266FBC
cmp r0, #1
beq _02266FD6
cmp r0, #2
beq _02266FF0
b _02267008
_02266FBC:
ldr r0, [sp, #0x24]
ldr r1, [sp, #0x28]
str r0, [sp, #0x20]
mov r0, #1
lsl r0, r0, #0x12
add r0, r1, r0
str r0, [sp, #0x1c]
mov r0, #1
ldr r1, [sp, #0x2c]
lsl r0, r0, #0x12
sub r0, r1, r0
str r0, [sp, #0x18]
b _02267008
_02266FD6:
mov r0, #1
ldr r1, [sp, #0x24]
lsl r0, r0, #0x12
add r0, r1, r0
str r0, [sp, #0x20]
mov r0, #1
ldr r1, [sp, #0x28]
lsl r0, r0, #0x12
add r0, r1, r0
str r0, [sp, #0x1c]
ldr r0, [sp, #0x2c]
str r0, [sp, #0x18]
b _02267008
_02266FF0:
mov r0, #1
ldr r1, [sp, #0x24]
lsl r0, r0, #0x12
sub r0, r1, r0
str r0, [sp, #0x20]
mov r0, #1
ldr r1, [sp, #0x28]
lsl r0, r0, #0x12
add r0, r1, r0
str r0, [sp, #0x1c]
ldr r0, [sp, #0x2c]
str r0, [sp, #0x18]
_02267008:
ldr r0, [sp, #0x1c]
ldr r2, [sp, #0x20]
str r0, [sp]
ldr r0, [sp, #0x2c]
str r0, [sp, #4]
ldr r0, [sp, #0x18]
str r0, [sp, #8]
mov r0, #0x1a
str r0, [sp, #0xc]
ldr r1, [sp, #0x24]
ldr r3, [sp, #0x28]
add r0, r7, #0
bl ov49_0226540C
mov r3, #6
ldr r2, _0226706C ; =0x00000AAA
add r0, r6, #0
mov r1, #0
lsl r3, r3, #0xc
bl ov49_022655F4
ldr r0, [sp, #0x10]
add r1, r5, #0
add r2, r4, #0
mov r3, #3
bl ov49_0226786C
ldr r0, [sp, #0x14]
add r4, r4, #1
add r0, #0x78
str r0, [sp, #0x14]
ldr r0, _0226705C ; =0x00000955
add r7, #0x28
ldrsb r0, [r5, r0]
add r6, #0xc
cmp r4, r0
blt _02266F9A
_02267052:
ldr r0, _02267070 ; =0x00000964
mov r1, #0
strb r1, [r5, r0]
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0226705C: .word 0x00000955
_02267060: .word ov49_0226A450
_02267064: .word 0x00000A04
_02267068: .word 0x00000956
_0226706C: .word 0x00000AAA
_02267070: .word 0x00000964
thumb_func_end ov49_02266F14
thumb_func_start ov49_02267074
ov49_02267074: ; 0x02267074
push {r3, r4, lr}
sub sp, #0x1c
add r4, r1, #0
ldr r0, [r4, #8]
add r1, sp, #0x10
bl ov49_02259154
mov r0, #2
ldr r3, [sp, #0x14]
lsl r0, r0, #0xc
ldr r2, [sp, #0x18]
ldr r1, [sp, #0x10]
sub r0, r3, r0
str r0, [sp]
str r2, [sp, #4]
str r2, [sp, #8]
mov r0, #1
str r0, [sp, #0xc]
ldr r0, _022670B0 ; =0x00000A04
add r2, r1, #0
add r0, r4, r0
bl ov49_0226540C
ldr r0, _022670B4 ; =0x00000956
mov r1, #0
strh r1, [r4, r0]
sub r0, r0, #2
strb r1, [r4, r0]
add sp, #0x1c
pop {r3, r4, pc}
.balign 4, 0
_022670B0: .word 0x00000A04
_022670B4: .word 0x00000956
thumb_func_end ov49_02267074
thumb_func_start ov49_022670B8
ov49_022670B8: ; 0x022670B8
push {r3, lr}
ldr r2, _022670D0 ; =0x00000965
ldrb r2, [r1, r2]
cmp r2, #0
bne _022670C8
bl ov49_022670D4
pop {r3, pc}
_022670C8:
bl ov49_02267328
pop {r3, pc}
nop
_022670D0: .word 0x00000965
thumb_func_end ov49_022670B8
thumb_func_start ov49_022670D4
ov49_022670D4: ; 0x022670D4
push {r4, r5, r6, r7, lr}
sub sp, #0x3c
add r4, r1, #0
ldr r1, _02267300 ; =0x00000954
add r6, r0, #0
ldrsb r0, [r4, r1]
cmp r0, #4
bhi _0226710A
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_022670F0: ; jump table
.short _022670FA - _022670F0 - 2 ; case 0
.short _02267112 - _022670F0 - 2 ; case 1
.short _02267128 - _022670F0 - 2 ; case 2
.short _0226715E - _022670F0 - 2 ; case 3
.short _022671B6 - _022670F0 - 2 ; case 4
_022670FA:
add r0, r1, #2
ldrsh r0, [r4, r0]
add r2, r0, #1
add r0, r1, #2
strh r2, [r4, r0]
ldrsh r0, [r4, r0]
cmp r0, #8
bge _0226710C
_0226710A:
b _02267230
_0226710C:
mov r0, #1
strb r0, [r4, r1]
b _02267230
_02267112:
ldr r0, [r4, #8]
mov r1, #1
bl ov49_0225919C
ldr r0, _02267304 ; =0x00000956
mov r1, #0x10
strh r1, [r4, r0]
mov r1, #2
sub r0, r0, #2
strb r1, [r4, r0]
b _02267230
_02267128:
add r0, r1, #2
ldrsh r0, [r4, r0]
sub r2, r0, #1
add r0, r1, #2
strh r2, [r4, r0]
ldrsh r0, [r4, r0]
cmp r0, #0
bgt _02267230
ldr r0, [r4, #8]
mov r1, #0
bl ov49_0225919C
ldr r0, _02267300 ; =0x00000954
mov r1, #3
strb r1, [r4, r0]
mov r1, #0
add r0, r0, #2
strh r1, [r4, r0]
ldr r0, [r4, #8]
mov r1, #6
bl ov49_02258E60
add r1, r0, #0
ldr r0, [r4, #8]
bl ov49_02259160
b _02267230
_0226715E:
add r0, r1, #0
add r1, r1, #2
add r0, #0xb0
ldrsh r1, [r4, r1]
add r0, r4, r0
bl ov49_02265434
add r5, r0, #0
ldr r0, _02267304 ; =0x00000956
ldrsh r1, [r4, r0]
add r1, r1, #1
strh r1, [r4, r0]
ldr r0, [r4, #8]
add r1, sp, #0x30
bl ov49_02259154
ldr r0, _02267308 ; =0x00000A04
add r1, sp, #0x30
add r0, r4, r0
add r2, sp, #0x34
add r3, sp, #0x38
bl ov49_022655E0
ldr r0, [r4, #8]
add r1, sp, #0x30
bl ov49_02259148
cmp r5, #1
bne _02267230
ldr r0, _02267300 ; =0x00000954
mov r1, #4
strb r1, [r4, r0]
add r1, r0, #2
mov r2, #0
strh r2, [r4, r1]
ldr r1, [sp, #0x34]
add r0, r0, #4
str r1, [r4, r0]
ldr r2, _0226730C ; =0x000005C2
add r0, r6, #0
add r1, r4, #0
bl ov49_02265668
b _02267230
_022671B6:
add r0, r1, #2
ldrsh r1, [r4, r0]
ldr r0, _02267310 ; =0x00007FFF
mul r0, r1
mov r1, #0xa
bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
asr r0, r0, #4
lsl r1, r0, #2
ldr r0, _02267314 ; =FX_SinCosTable_
ldrsh r2, [r0, r1]
asr r0, r2, #0x1f
lsr r1, r2, #0x11
lsl r0, r0, #0xf
orr r0, r1
mov r1, #2
lsl r3, r2, #0xf
mov r2, #0
lsl r1, r1, #0xa
add r1, r3, r1
adc r0, r2
lsr r5, r1, #0xc
lsl r0, r0, #0x14
orr r5, r0
ldr r0, [r4, #8]
add r1, sp, #0x24
bl ov49_02259154
ldr r0, _02267318 ; =0x00000958
add r1, sp, #0x24
ldr r0, [r4, r0]
add r0, r0, r5
str r0, [sp, #0x28]
ldr r0, [r4, #8]
bl ov49_02259148
ldr r0, _02267304 ; =0x00000956
ldrsh r1, [r4, r0]
add r1, r1, #1
cmp r1, #0xa
ble _0226722E
ldr r0, [r4, #8]
mov r1, #1
bl ov49_02259130
ldr r0, [r6, #4]
ldr r4, [r4, #8]
bl ov49_02258DAC
cmp r4, r0
bne _02267228
ldr r0, [r6, #8]
add r1, r4, #0
bl ov49_0225CC40
_02267228:
add sp, #0x3c
mov r0, #1
pop {r4, r5, r6, r7, pc}
_0226722E:
strh r1, [r4, r0]
_02267230:
ldr r1, _0226731C ; =0x00000964
mov r5, #0
ldrb r0, [r4, r1]
add r0, r0, #1
strb r0, [r4, r1]
add r0, r1, #0
sub r0, #0xf
ldrsb r0, [r4, r0]
cmp r0, #0
ble _022672F8
add r0, r1, #0
add r0, #0x28
add r7, r4, r0
add r0, r1, #4
add r0, r4, r0
str r0, [sp, #0x10]
add r0, r4, #0
str r0, [sp, #0xc]
add r0, #0xc
str r0, [sp, #0xc]
ldr r0, [sp, #0x10]
str r7, [sp, #8]
str r0, [sp, #4]
ldr r0, [sp, #0xc]
str r0, [sp]
_02267262:
ldr r1, _0226731C ; =0x00000964
add r0, r7, #0
ldrb r1, [r4, r1]
bl ov49_02265434
cmp r0, #0
bne _022672AA
ldr r0, [sp, #0x10]
bl ov49_02265628
ldr r0, [sp, #0xc]
add r1, sp, #0x18
add r2, sp, #0x1c
add r3, sp, #0x20
bl sub_020182B0
ldr r0, [sp, #8]
add r1, sp, #0x18
add r2, sp, #0x1c
add r3, sp, #0x20
bl ov49_022655E0
ldr r0, [sp, #4]
add r1, sp, #0x14
bl ov49_02265660
ldr r1, [sp, #0x18]
ldr r0, [sp, #0x14]
ldr r2, [sp, #0x1c]
add r1, r1, r0
ldr r0, [sp]
ldr r3, [sp, #0x20]
str r1, [sp, #0x18]
bl sub_020182A8
b _022672C4
_022672AA:
add r0, r6, #0
add r1, r4, #0
add r2, r5, #0
mov r3, #4
bl ov49_0226786C
cmp r0, #1
bne _022672C4
ldr r2, _02267320 ; =0x000005A8
add r0, r6, #0
add r1, r4, #0
bl ov49_02265668
_022672C4:
add r0, r6, #0
add r1, r4, #0
add r2, r5, #0
bl ov49_0226789C
ldr r0, [sp, #0x10]
add r5, r5, #1
add r0, #0xc
str r0, [sp, #0x10]
ldr r0, [sp, #0xc]
add r7, #0x28
add r0, #0x78
str r0, [sp, #0xc]
ldr r0, [sp, #8]
add r0, #0x28
str r0, [sp, #8]
ldr r0, [sp, #4]
add r0, #0xc
str r0, [sp, #4]
ldr r0, [sp]
add r0, #0x78
str r0, [sp]
ldr r0, _02267324 ; =0x00000955
ldrsb r0, [r4, r0]
cmp r5, r0
blt _02267262
_022672F8:
mov r0, #0
add sp, #0x3c
pop {r4, r5, r6, r7, pc}
nop
_02267300: .word 0x00000954
_02267304: .word 0x00000956
_02267308: .word 0x00000A04
_0226730C: .word 0x000005C2
_02267310: .word 0x00007FFF
_02267314: .word FX_SinCosTable_
_02267318: .word 0x00000958
_0226731C: .word 0x00000964
_02267320: .word 0x000005A8
_02267324: .word 0x00000955
thumb_func_end ov49_022670D4
thumb_func_start ov49_02267328
ov49_02267328: ; 0x02267328
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r6, r0, #0
ldr r0, _02267464 ; =0x00000955
add r4, r1, #0
ldrsb r0, [r4, r0]
mov r5, #0
cmp r0, #0
ble _0226734E
ldr r7, _02267464 ; =0x00000955
_0226733C:
add r0, r6, #0
add r1, r4, #0
add r2, r5, #0
bl ov49_0226789C
ldrsb r0, [r4, r7]
add r5, r5, #1
cmp r5, r0
blt _0226733C
_0226734E:
ldr r1, _02267468 ; =0x00000954
ldrsb r0, [r4, r1]
cmp r0, #3
bls _02267358
b _0226745C
_02267358:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02267364: ; jump table
.short _0226736C - _02267364 - 2 ; case 0
.short _0226739E - _02267364 - 2 ; case 1
.short _022673B4 - _02267364 - 2 ; case 2
.short _022673EA - _02267364 - 2 ; case 3
_0226736C:
ldr r2, _0226746C ; =0x000005A8
add r0, r6, #0
add r1, r4, #0
bl ov49_02265668
ldr r0, _02267464 ; =0x00000955
mov r5, #0
ldrsb r0, [r4, r0]
cmp r0, #0
ble _02267396
ldr r7, _02267464 ; =0x00000955
_02267382:
add r0, r6, #0
add r1, r4, #0
add r2, r5, #0
mov r3, #4
bl ov49_0226786C
ldrsb r0, [r4, r7]
add r5, r5, #1
cmp r5, r0
blt _02267382
_02267396:
ldr r0, _02267468 ; =0x00000954
mov r1, #1
strb r1, [r4, r0]
b _0226745C
_0226739E:
ldr r0, [r4, #8]
mov r1, #1
bl ov49_0225919C
ldr r0, _02267470 ; =0x00000956
mov r1, #8
strh r1, [r4, r0]
mov r1, #2
sub r0, r0, #2
strb r1, [r4, r0]
b _0226745C
_022673B4:
add r0, r1, #2
ldrsh r0, [r4, r0]
sub r2, r0, #1
add r0, r1, #2
strh r2, [r4, r0]
ldrsh r0, [r4, r0]
cmp r0, #0
bgt _0226745C
ldr r0, [r4, #8]
mov r1, #0
bl ov49_0225919C
ldr r0, _02267468 ; =0x00000954
mov r1, #3
strb r1, [r4, r0]
mov r1, #0
add r0, r0, #2
strh r1, [r4, r0]
ldr r0, [r4, #8]
mov r1, #6
bl ov49_02258E60
add r1, r0, #0
ldr r0, [r4, #8]
bl ov49_02259160
b _0226745C
_022673EA:
add r0, r1, #0
add r1, r1, #2
add r0, #0xb0
ldrsh r1, [r4, r1]
add r0, r4, r0
bl ov49_02265434
add r5, r0, #0
ldr r0, _02267470 ; =0x00000956
ldrsh r1, [r4, r0]
add r1, r1, #1
strh r1, [r4, r0]
ldr r0, [r4, #8]
add r1, sp, #0
bl ov49_02259154
ldr r0, _02267474 ; =0x00000A04
add r1, sp, #0
add r0, r4, r0
add r2, sp, #4
add r3, sp, #8
bl ov49_022655E0
ldr r0, [r4, #8]
add r1, sp, #0
bl ov49_02259148
cmp r5, #1
bne _0226745C
ldr r0, _02267470 ; =0x00000956
mov r1, #0
strh r1, [r4, r0]
ldr r1, [sp, #4]
add r0, r0, #2
str r1, [r4, r0]
ldr r2, _02267478 ; =0x000005C2
add r0, r6, #0
add r1, r4, #0
bl ov49_02265668
ldr r0, [r4, #8]
mov r1, #1
bl ov49_02259130
ldr r0, [r6, #4]
ldr r4, [r4, #8]
bl ov49_02258DAC
cmp r4, r0
bne _02267456
ldr r0, [r6, #8]
add r1, r4, #0
bl ov49_0225CC40
_02267456:
add sp, #0xc
mov r0, #1
pop {r4, r5, r6, r7, pc}
_0226745C:
mov r0, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_02267464: .word 0x00000955
_02267468: .word 0x00000954
_0226746C: .word 0x000005A8
_02267470: .word 0x00000956
_02267474: .word 0x00000A04
_02267478: .word 0x000005C2
thumb_func_end ov49_02267328
thumb_func_start ov49_0226747C
ov49_0226747C: ; 0x0226747C
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r0, #0
ldr r0, [r5, #8]
add r1, sp, #0
bl ov49_02259154
ldr r0, _02267670 ; =0x00000955
ldrsb r0, [r5, r0]
cmp r0, #1
beq _0226749A
cmp r0, #2
beq _022674EA
cmp r0, #3
b _02267586
_0226749A:
mov r0, #0xf
lsl r0, r0, #0xe
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
add r6, r0, #0
mov r0, #2
lsl r0, r0, #0xe
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
bl _ffix
add r4, r0, #0
add r0, r6, #0
bl _ffix
ldr r1, [sp]
ldr r2, [sp, #4]
add r3, r0, #0
add r1, r1, r4
add r2, r2, r3
mov r3, #1
add r5, #0xc
ldr r4, [sp, #8]
lsl r3, r3, #0xc
add r0, r5, #0
add r3, r4, r3
bl sub_020182A8
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_022674EA:
mov r0, #0xe
lsl r0, r0, #0xe
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
add r6, r0, #0
mov r0, #2
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
bl _ffix
add r4, r0, #0
add r0, r6, #0
bl _ffix
ldr r1, [sp]
add r3, r0, #0
ldr r2, [sp, #4]
add r1, r1, r4
add r2, r2, r3
mov r3, #1
add r0, r5, #0
ldr r4, [sp, #8]
lsl r3, r3, #0xc
add r0, #0xc
add r3, r4, r3
bl sub_020182A8
mov r0, #0xe
lsl r0, r0, #0xe
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
add r6, r0, #0
mov r0, #0xe
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
bl _ffix
add r4, r0, #0
add r0, r6, #0
bl _ffix
ldr r1, [sp]
ldr r2, [sp, #4]
add r3, r0, #0
add r1, r1, r4
add r2, r2, r3
mov r3, #1
add r5, #0x84
ldr r4, [sp, #8]
lsl r3, r3, #0xc
add r0, r5, #0
add r3, r4, r3
bl sub_020182A8
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_02267586:
mov r0, #0xf
lsl r0, r0, #0xe
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
add r6, r0, #0
mov r0, #2
lsl r0, r0, #0xe
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
bl _ffix
add r4, r0, #0
add r0, r6, #0
bl _ffix
ldr r1, [sp]
add r3, r0, #0
ldr r2, [sp, #4]
add r1, r1, r4
add r2, r2, r3
mov r3, #1
add r0, r5, #0
ldr r4, [sp, #8]
lsl r3, r3, #0xc
add r0, #0xc
add r3, r4, r3
bl sub_020182A8
mov r0, #0xe
lsl r0, r0, #0xe
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
add r6, r0, #0
mov r0, #2
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
bl _ffix
add r4, r0, #0
add r0, r6, #0
bl _ffix
ldr r1, [sp]
add r3, r0, #0
ldr r2, [sp, #4]
add r1, r1, r4
add r2, r2, r3
mov r3, #1
add r0, r5, #0
ldr r4, [sp, #8]
lsl r3, r3, #0xc
add r0, #0x84
add r3, r4, r3
bl sub_020182A8
mov r0, #0xe
lsl r0, r0, #0xe
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
add r6, r0, #0
mov r0, #0xe
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
bl _ffix
add r4, r0, #0
add r0, r6, #0
bl _ffix
ldr r1, [sp]
ldr r2, [sp, #4]
add r3, r0, #0
add r1, r1, r4
add r2, r2, r3
mov r3, #1
add r5, #0xfc
ldr r4, [sp, #8]
lsl r3, r3, #0xc
add r0, r5, #0
add r3, r4, r3
bl sub_020182A8
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_02267670: .word 0x00000955
thumb_func_end ov49_0226747C
thumb_func_start ov49_02267674
ov49_02267674: ; 0x02267674
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r0, #0
ldr r0, [r5, #8]
add r1, sp, #0
bl ov49_02259154
ldr r0, _02267868 ; =0x00000955
ldrsb r0, [r5, r0]
cmp r0, #1
beq _02267692
cmp r0, #2
beq _022676E2
cmp r0, #3
b _0226777E
_02267692:
mov r0, #3
lsl r0, r0, #0x10
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
add r6, r0, #0
mov r0, #2
lsl r0, r0, #0xe
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
bl _ffix
add r4, r0, #0
add r0, r6, #0
bl _ffix
ldr r1, [sp]
ldr r2, [sp, #4]
add r3, r0, #0
add r1, r1, r4
add r2, r2, r3
mov r3, #2
add r5, #0xc
ldr r4, [sp, #8]
lsl r3, r3, #0xe
add r0, r5, #0
sub r3, r4, r3
bl sub_020182A8
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_022676E2:
mov r0, #0xb
lsl r0, r0, #0xe
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
add r6, r0, #0
mov r0, #2
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
bl _ffix
add r4, r0, #0
add r0, r6, #0
bl _ffix
ldr r1, [sp]
add r3, r0, #0
ldr r2, [sp, #4]
add r1, r1, r4
add r2, r2, r3
mov r3, #2
add r0, r5, #0
ldr r4, [sp, #8]
lsl r3, r3, #0xe
add r0, #0xc
sub r3, r4, r3
bl sub_020182A8
mov r0, #0xb
lsl r0, r0, #0xe
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
add r6, r0, #0
mov r0, #0xe
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
bl _ffix
add r4, r0, #0
add r0, r6, #0
bl _ffix
ldr r1, [sp]
ldr r2, [sp, #4]
add r3, r0, #0
add r1, r1, r4
add r2, r2, r3
mov r3, #2
add r5, #0x84
ldr r4, [sp, #8]
lsl r3, r3, #0xe
add r0, r5, #0
sub r3, r4, r3
bl sub_020182A8
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_0226777E:
mov r0, #3
lsl r0, r0, #0x10
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
add r6, r0, #0
mov r0, #2
lsl r0, r0, #0xe
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
bl _ffix
add r4, r0, #0
add r0, r6, #0
bl _ffix
ldr r1, [sp]
add r3, r0, #0
ldr r2, [sp, #4]
add r1, r1, r4
add r2, r2, r3
mov r3, #2
add r0, r5, #0
ldr r4, [sp, #8]
lsl r3, r3, #0xe
add r0, #0xc
sub r3, r4, r3
bl sub_020182A8
mov r0, #0xb
lsl r0, r0, #0xe
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
add r6, r0, #0
mov r0, #2
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
bl _ffix
add r4, r0, #0
add r0, r6, #0
bl _ffix
ldr r1, [sp]
add r3, r0, #0
ldr r2, [sp, #4]
add r1, r1, r4
add r2, r2, r3
mov r3, #2
add r0, r5, #0
ldr r4, [sp, #8]
lsl r3, r3, #0xe
add r0, #0x84
sub r3, r4, r3
bl sub_020182A8
mov r0, #0xb
lsl r0, r0, #0xe
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
add r6, r0, #0
mov r0, #0xe
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
bl _ffix
add r4, r0, #0
add r0, r6, #0
bl _ffix
ldr r1, [sp]
ldr r2, [sp, #4]
add r3, r0, #0
add r1, r1, r4
add r2, r2, r3
mov r3, #2
add r5, #0xfc
ldr r4, [sp, #8]
lsl r3, r3, #0xe
add r0, r5, #0
sub r3, r4, r3
bl sub_020182A8
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_02267868: .word 0x00000955
thumb_func_end ov49_02267674
thumb_func_start ov49_0226786C
ov49_0226786C: ; 0x0226786C
push {r3, r4, r5, r6, lr}
sub sp, #4
mov r6, #0x96
lsl r6, r6, #4
add r5, r1, r6
add r4, r3, #0
ldrb r3, [r5, r2]
cmp r4, r3
beq _02267896
strb r4, [r5, r2]
mov r3, #0
add r5, r1, r2
sub r6, r6, #4
strb r3, [r5, r6]
lsl r4, r4, #0xd
str r4, [sp]
bl ov49_02265BE8
add sp, #4
mov r0, #1
pop {r3, r4, r5, r6, pc}
_02267896:
mov r0, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
thumb_func_end ov49_0226786C
thumb_func_start ov49_0226789C
ov49_0226789C: ; 0x0226789C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
mov r3, #0x96
add r7, r1, #0
add r5, r2, #0
add r4, r7, r5
lsl r3, r3, #4
ldrb r6, [r4, r3]
sub r3, r3, #4
add r4, r7, r3
ldrb r3, [r4, r5]
str r0, [sp, #4]
cmp r3, #0
bne _022678FC
mov r3, #0
bl ov49_02265C40
lsl r1, r6, #0xd
str r0, [sp, #8]
cmp r0, r1
bne _022678D0
mov r0, #1
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #8]
b _022678E8
_022678D0:
cmp r6, #4
beq _022678D8
str r1, [sp, #8]
b _022678E8
_022678D8:
add r1, r7, #0
mov r0, #0x78
add r1, #0xc
mul r0, r5
add r0, r1, r0
mov r1, #0
bl sub_020182A0
_022678E8:
ldr r0, [sp, #8]
add r1, r7, #0
str r0, [sp]
ldr r0, [sp, #4]
add r2, r5, #0
mov r3, #0
bl ov49_02265BE8
mov r0, #8
strb r0, [r4, r5]
_022678FC:
ldrb r0, [r4, r5]
sub r0, r0, #1
strb r0, [r4, r5]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_0226789C
thumb_func_start ov49_02267908
ov49_02267908: ; 0x02267908
push {r4, r5, r6, r7, lr}
sub sp, #0x5c
str r0, [sp, #0x10]
add r0, r1, #0
str r1, [sp, #0x14]
ldr r0, [r0, #8]
add r1, sp, #0x50
str r2, [sp, #0x18]
bl ov49_02259154
mov r0, #0
str r0, [sp, #0x20]
ldr r0, [sp, #0x18]
cmp r0, #0
bls _022679E6
ldr r0, [sp, #0x20]
str r0, [sp, #0x1c]
_0226792A:
ldr r1, [sp, #0x20]
add r1, #0xd
cmp r1, #0xf
bls _02267934
mov r1, #0xf
_02267934:
ldr r0, _02267A04 ; =ov49_0226A4D8
ldr r7, _02267A08 ; =ov49_0226A508
str r0, [sp, #0x34]
lsl r0, r1, #2
str r0, [sp, #0x24]
ldr r0, [sp, #0x14]
ldr r1, _02267A0C ; =0x00000968
str r0, [sp, #0x28]
add r0, #0xc
str r0, [sp, #0x28]
ldr r0, [sp, #0x14]
mov r4, #0
add r0, r0, r1
str r0, [sp, #0x30]
_02267950:
ldr r0, [sp, #0x1c]
ldr r6, _02267A10 ; =ov49_0226A70C
add r5, r4, r0
ldr r3, [sp, #0x24]
ldr r0, [sp, #0x10]
ldr r1, [sp, #0x14]
add r2, r5, #0
add r3, r6, r3
bl ov49_02265980
ldr r1, [sp, #0x34]
add r0, sp, #0x50
add r2, sp, #0x44
bl VEC_Add
add r0, sp, #0x44
add r1, r7, #0
add r2, sp, #0x38
bl VEC_Add
mov r0, #0x78
mul r0, r5
ldr r1, [sp, #0x28]
str r0, [sp, #0x2c]
add r0, r1, r0
ldr r1, [sp, #0x44]
ldr r2, [sp, #0x48]
ldr r3, [sp, #0x4c]
bl sub_020182A8
ldr r1, [sp, #0x28]
ldr r0, [sp, #0x2c]
add r0, r1, r0
mov r1, #0
bl sub_020182A0
ldr r0, [sp, #0x14]
mov r1, #0
add r2, r0, r5
ldr r0, _02267A14 ; =0x00000958
strb r1, [r2, r0]
ldr r0, [sp, #0x3c]
add r1, r5, #0
str r0, [sp]
ldr r0, [sp, #0x4c]
str r0, [sp, #4]
ldr r0, [sp, #0x40]
str r0, [sp, #8]
mov r0, #0xe
str r0, [sp, #0xc]
mov r0, #0x28
mul r1, r0
ldr r0, [sp, #0x30]
ldr r2, [sp, #0x38]
add r0, r0, r1
ldr r1, [sp, #0x44]
ldr r3, [sp, #0x48]
bl ov49_0226540C
ldr r0, [sp, #0x34]
add r4, r4, #1
add r0, #0xc
add r7, #0xc
str r0, [sp, #0x34]
cmp r4, #4
blt _02267950
ldr r0, [sp, #0x1c]
add r0, r0, #4
str r0, [sp, #0x1c]
ldr r0, [sp, #0x20]
add r1, r0, #1
ldr r0, [sp, #0x18]
str r1, [sp, #0x20]
cmp r1, r0
blo _0226792A
_022679E6:
ldr r2, _02267A18 ; =0x00000956
ldr r1, [sp, #0x18]
ldr r0, [sp, #0x14]
sub r3, r2, #1
strb r1, [r0, r2]
ldr r1, [sp, #0x14]
mov r0, #0
strb r0, [r1, r3]
sub r3, r2, #2
strb r0, [r1, r3]
add r2, r2, #1
strb r0, [r1, r2]
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
nop
_02267A04: .word ov49_0226A4D8
_02267A08: .word ov49_0226A508
_02267A0C: .word 0x00000968
_02267A10: .word ov49_0226A70C
_02267A14: .word 0x00000958
_02267A18: .word 0x00000956
thumb_func_end ov49_02267908
thumb_func_start ov49_02267A1C
ov49_02267A1C: ; 0x02267A1C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r4, r2, #0
ldr r2, _02267A7C ; =0x00000958
add r5, r1, #0
add r1, r5, r2
add r7, r0, #0
ldrsb r0, [r1, r4]
add r6, r4, #0
add r2, #0x10
add r0, r0, #1
strb r0, [r1, r4]
mov r0, #0x28
mul r6, r0
add r0, r5, r2
ldrsb r1, [r1, r4]
add r0, r0, r6
bl ov49_02265434
str r0, [sp]
ldr r0, _02267A80 ; =0x00000968
add r1, sp, #4
add r0, r5, r0
add r0, r0, r6
add r2, sp, #8
add r3, sp, #0xc
bl ov49_022655E0
add r1, r5, #0
mov r0, #0x78
add r1, #0xc
mul r0, r4
add r0, r1, r0
ldr r1, [sp, #4]
ldr r2, [sp, #8]
ldr r3, [sp, #0xc]
bl sub_020182A8
add r0, r7, #0
add r1, r5, #0
add r2, r4, #0
mov r3, #0
bl ov49_02265B14
ldr r0, [sp]
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
_02267A7C: .word 0x00000958
_02267A80: .word 0x00000968
thumb_func_end ov49_02267A1C
thumb_func_start ov49_02267A84
ov49_02267A84: ; 0x02267A84
push {r4, r5, r6, r7, lr}
sub sp, #0x14
str r0, [sp]
add r7, r1, #0
mov r6, #0
str r2, [sp, #4]
add r0, r2, #0
beq _02267ADE
add r5, r7, #0
ldr r4, _02267AE8 ; =ov49_0226A70C
add r5, #0xc
_02267A9A:
ldr r0, [sp]
add r1, r7, #0
add r2, r6, #0
add r3, r4, #0
bl ov49_02265980
ldr r0, [r7, #8]
add r1, sp, #8
bl ov49_02259154
mov r0, #2
ldr r1, [sp, #0xc]
lsl r0, r0, #0xe
add r2, r1, r0
mov r0, #6
ldr r1, [sp, #0x10]
lsl r0, r0, #0xc
add r3, r1, r0
ldr r1, [sp, #8]
add r0, r5, #0
str r2, [sp, #0xc]
str r3, [sp, #0x10]
bl sub_020182A8
add r0, r5, #0
mov r1, #0
bl sub_020182A0
ldr r0, [sp, #4]
add r6, r6, #1
add r4, r4, #4
add r5, #0x78
cmp r6, r0
blo _02267A9A
_02267ADE:
ldr r1, _02267AEC ; =0x00000954
ldr r0, [sp, #4]
strb r0, [r7, r1]
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_02267AE8: .word ov49_0226A70C
_02267AEC: .word 0x00000954
thumb_func_end ov49_02267A84
thumb_func_start ov49_02267AF0
ov49_02267AF0: ; 0x02267AF0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
str r0, [sp, #4]
add r5, r1, #0
mov r0, #2
ldrsh r1, [r5, r0]
mov r0, #0xc
add r6, r2, #0
mul r0, r1
mov r1, #0x30
bl _s32_div_f
add r4, r0, #0
ldr r0, _02267C14 ; =0x00000954
ldr r1, [r5, r0]
cmp r4, r1
beq _02267BF4
str r4, [r5, r0]
cmp r4, #0
beq _02267B42
mov r0, #0x30
add r2, r6, #0
mul r2, r0
ldr r0, _02267C18 ; =ov49_0226A678
lsl r1, r4, #2
add r0, r0, r2
add r2, r1, r0
ldrh r0, [r1, r0]
add r1, sp, #8
strh r0, [r1, #4]
ldrh r0, [r2, #2]
strh r0, [r1, #6]
ldrh r2, [r1, #4]
add r0, r5, #0
mov r1, #0x78
add r0, #0xc
mul r1, r2
add r0, r0, r1
mov r1, #0
bl sub_020182A0
_02267B42:
mov r0, #0x30
add r2, r6, #0
mul r2, r0
ldr r0, _02267C1C ; =ov49_0226A67C
lsl r1, r4, #2
add r0, r0, r2
add r2, r1, r0
ldrh r1, [r1, r0]
add r0, sp, #8
strh r1, [r0]
ldrh r4, [r2, #2]
strh r4, [r0, #2]
cmp r4, #0
beq _02267BE2
beq _02267B74
lsl r7, r4, #0xc
add r0, r7, #0
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _02267B84
_02267B74:
lsl r7, r4, #0xc
add r0, r7, #0
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_02267B84:
add r1, sp, #8
ldrh r6, [r1]
bl _ffix
str r0, [sp]
ldr r0, [sp, #4]
add r1, r5, #0
add r2, r6, #0
mov r3, #0
bl ov49_02265BE8
cmp r4, #0
beq _02267BB0
add r0, r7, #0
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _02267BBE
_02267BB0:
add r0, r7, #0
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_02267BBE:
bl _ffix
str r0, [sp]
ldr r0, [sp, #4]
add r1, r5, #0
add r2, r6, #0
mov r3, #1
bl ov49_02265BE8
add r1, r5, #0
mov r0, #0x78
add r1, #0xc
mul r0, r6
add r0, r1, r0
mov r1, #1
bl sub_020182A0
b _02267BF4
_02267BE2:
ldrh r1, [r0]
add r2, r5, #0
mov r0, #0x78
mul r0, r1
add r2, #0xc
add r0, r2, r0
mov r1, #0
bl sub_020182A0
_02267BF4:
mov r0, #2
ldrsh r0, [r5, r0]
cmp r0, #0x30
bge _02267C00
add r0, r0, #1
strh r0, [r5, #2]
_02267C00:
mov r0, #2
ldrsh r0, [r5, r0]
cmp r0, #0x30
blt _02267C0E
add sp, #0x10
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_02267C0E:
mov r0, #0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02267C14: .word 0x00000954
_02267C18: .word ov49_0226A678
_02267C1C: .word ov49_0226A67C
thumb_func_end ov49_02267AF0
thumb_func_start ov49_02267C20
ov49_02267C20: ; 0x02267C20
push {r4, r5, r6, r7, lr}
sub sp, #0x14
str r0, [sp]
add r7, r1, #0
mov r4, #0
str r2, [sp, #4]
add r0, r2, #0
beq _02267C74
add r5, r7, #0
add r5, #0xc
_02267C34:
add r3, r4, #6
lsl r6, r3, #2
ldr r3, _02267C84 ; =ov49_0226A70C
ldr r0, [sp]
add r1, r7, #0
add r2, r4, #0
add r3, r3, r6
bl ov49_02265980
ldr r0, [r7, #8]
add r1, sp, #8
bl ov49_02259154
mov r0, #2
ldr r1, [sp, #0xc]
lsl r0, r0, #0xe
add r2, r1, r0
ldr r1, [sp, #8]
ldr r3, [sp, #0x10]
add r0, r5, #0
str r2, [sp, #0xc]
bl sub_020182A8
add r0, r5, #0
mov r1, #0
bl sub_020182A0
ldr r0, [sp, #4]
add r4, r4, #1
add r5, #0x78
cmp r4, r0
blo _02267C34
_02267C74:
ldr r0, _02267C88 ; =0x00000954
mov r1, #0xff
strh r1, [r7, r0]
add r1, r0, #2
ldr r0, [sp, #4]
strh r0, [r7, r1]
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_02267C84: .word ov49_0226A70C
_02267C88: .word 0x00000954
thumb_func_end ov49_02267C20
thumb_func_start ov49_02267C8C
ov49_02267C8C: ; 0x02267C8C
push {r4, r5, r6, r7, lr}
sub sp, #0x14
str r0, [sp]
ldr r0, [r1, #8]
str r1, [sp, #4]
add r1, sp, #8
bl ov49_02259154
mov r0, #0xa
ldr r7, [sp, #4]
mov r4, #0
ldr r1, [sp, #0x10]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #0x10]
mov r0, #1
ldr r1, [sp, #8]
lsl r0, r0, #0xe
sub r1, r1, r0
str r1, [sp, #8]
ldr r1, [sp, #0xc]
lsl r0, r0, #2
add r0, r1, r0
str r0, [sp, #0xc]
add r5, r4, #0
add r7, #0xc
_02267CC0:
add r3, r4, #0
add r3, #0x25
lsl r6, r3, #2
ldr r3, _02267CFC ; =ov49_0226A70C
add r2, r4, #0
ldr r0, [sp]
ldr r1, [sp, #4]
add r2, #0x10
add r3, r3, r6
bl ov49_02265980
add r1, r4, #0
add r1, #0x10
mov r0, #0x78
mul r0, r1
ldr r1, [sp, #8]
ldr r2, [sp, #0xc]
ldr r3, [sp, #0x10]
add r0, r7, r0
add r1, r1, r5
bl sub_020182A8
mov r0, #6
lsl r0, r0, #0xe
add r4, r4, #1
add r5, r5, r0
cmp r4, #2
blt _02267CC0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_02267CFC: .word ov49_0226A70C
thumb_func_end ov49_02267C8C
thumb_func_start ov49_02267D00
ov49_02267D00: ; 0x02267D00
push {r3, r4, r5, r6, r7, lr}
ldr r0, _02267D30 ; =0x00000D0C
mov r2, #1
strh r2, [r1, r0]
add r4, r1, #0
mov r5, #0
add r0, r0, #2
strh r5, [r1, r0]
add r4, #0xc
add r7, r2, #0
mov r6, #0x78
_02267D16:
add r0, r5, #0
add r0, #0x10
add r1, r0, #0
mul r1, r6
add r0, r4, r1
add r1, r7, #0
bl sub_020182A0
add r5, r5, #1
cmp r5, #2
blt _02267D16
pop {r3, r4, r5, r6, r7, pc}
nop
_02267D30: .word 0x00000D0C
thumb_func_end ov49_02267D00
thumb_func_start ov49_02267D34
ov49_02267D34: ; 0x02267D34
push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0
ldr r1, _02267D90 ; =0x00000D0C
add r7, r0, #0
ldrh r0, [r5, r1]
cmp r0, #0
beq _02267D8E
add r0, r1, #2
ldrh r0, [r5, r0]
cmp r0, #0xd
bhs _02267D56
add r0, r1, #2
ldrh r0, [r5, r0]
add r2, r0, #1
add r0, r1, #2
strh r2, [r5, r0]
b _02267D5A
_02267D56:
mov r0, #0
strh r0, [r5, r1]
_02267D5A:
add r6, r5, #0
mov r4, #0
add r6, #0xc
_02267D60:
ldr r0, _02267D94 ; =0x00000D0E
ldrh r0, [r5, r0]
cmp r0, #0xd
bhs _02267D78
add r2, r4, #0
add r0, r7, #0
add r1, r5, #0
add r2, #0x10
mov r3, #0
bl ov49_02265B14
b _02267D88
_02267D78:
add r1, r4, #0
add r1, #0x10
mov r0, #0x78
mul r0, r1
add r0, r6, r0
mov r1, #0
bl sub_020182A0
_02267D88:
add r4, r4, #1
cmp r4, #2
blt _02267D60
_02267D8E:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02267D90: .word 0x00000D0C
_02267D94: .word 0x00000D0E
thumb_func_end ov49_02267D34
thumb_func_start ov49_02267D98
ov49_02267D98: ; 0x02267D98
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r0, #0
ldr r0, [sp, #0x30]
mov r7, #2
str r0, [sp, #0x30]
ldr r0, [sp, #0x34]
mov r6, #1
str r0, [sp, #0x34]
mov r0, #0x3b
lsl r0, r0, #4
str r1, [r5, r0]
add r1, r0, #4
ldr r4, [sp, #0x34]
strh r2, [r5, r1]
add r0, r0, #6
strh r3, [r5, r0]
mov r0, #0
str r0, [sp, #0x14]
mov r0, #3
str r0, [sp, #0x10]
ldr r0, [sp, #0x14]
add r4, #0xc
str r0, [sp, #0xc]
_02267DC8:
ldr r1, [sp, #0x10]
mov r0, #0x78
mul r0, r1
add r0, r4, r0
str r0, [sp]
ldr r0, [sp, #0x34]
ldr r2, [sp, #0xc]
ldr r0, [r0, #8]
mov r1, #0x78
mul r1, r2
str r0, [sp, #4]
ldr r0, [sp, #0x30]
mov r2, #0x78
mov r3, #0x78
mul r2, r6
mul r3, r7
str r0, [sp, #8]
add r0, r5, #0
add r1, r4, r1
add r2, r4, r2
add r3, r4, r3
bl ov49_02267EBC
ldr r0, [sp, #0x10]
add r7, r7, #4
add r0, r0, #4
str r0, [sp, #0x10]
ldr r0, [sp, #0xc]
add r6, r6, #4
add r0, r0, #4
str r0, [sp, #0xc]
ldr r0, [sp, #0x14]
add r5, #0xec
add r0, r0, #1
str r0, [sp, #0x14]
cmp r0, #4
blt _02267DC8
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_02267D98
thumb_func_start ov49_02267E18
ov49_02267E18: ; 0x02267E18
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
mov r0, #0
str r0, [sp, #8]
str r0, [sp, #0xc]
mov r0, #0xed
lsl r0, r0, #2
ldrh r0, [r5, r0]
str r1, [sp]
cmp r0, #0
ble _02267E86
ldr r4, [sp, #8]
add r6, sp, #0x10
_02267E34:
mov r0, #0x3b
lsl r0, r0, #4
ldr r0, [r5, r0]
add r1, r0, r4
ldrh r0, [r0, r4]
strh r0, [r6]
ldrh r0, [r1, #2]
strh r0, [r6, #2]
ldrh r1, [r6]
ldr r0, [sp]
cmp r1, r0
bne _02267E72
ldrb r7, [r6, #2]
cmp r7, #4
blo _02267E56
bl GF_AssertFail
_02267E56:
ldrb r0, [r6, #3]
str r0, [sp, #4]
cmp r0, #4
bls _02267E62
bl GF_AssertFail
_02267E62:
mov r0, #0xec
mul r0, r7
ldr r1, [sp, #4]
add r0, r5, r0
bl ov49_02267EF8
mov r0, #1
str r0, [sp, #8]
_02267E72:
ldr r0, [sp, #0xc]
add r4, r4, #4
add r0, r0, #1
str r0, [sp, #0xc]
mov r0, #0xed
lsl r0, r0, #2
ldrh r1, [r5, r0]
ldr r0, [sp, #0xc]
cmp r0, r1
blt _02267E34
_02267E86:
mov r7, #1
mov r6, #0
add r4, r5, #0
_02267E8C:
add r0, r4, #0
bl ov49_02267F40
cmp r0, #0
bne _02267E98
mov r7, #0
_02267E98:
add r6, r6, #1
add r4, #0xec
cmp r6, #4
blt _02267E8C
ldr r0, _02267EB8 ; =0x000003B6
ldrh r1, [r5, r0]
ldr r0, [sp]
cmp r1, r0
bhi _02267EB2
cmp r7, #1
bne _02267EB2
mov r0, #2
str r0, [sp, #8]
_02267EB2:
ldr r0, [sp, #8]
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_02267EB8: .word 0x000003B6
thumb_func_end ov49_02267E18
thumb_func_start ov49_02267EBC
ov49_02267EBC: ; 0x02267EBC
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [sp, #0x20]
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
cmp r0, #3
blo _02267ED0
bl GF_AssertFail
_02267ED0:
add r0, r5, #0
add r0, #0xd8
str r4, [r0]
add r0, r5, #0
add r0, #0xdc
str r6, [r0]
add r0, r5, #0
add r0, #0xe0
str r7, [r0]
add r0, r5, #0
ldr r1, [sp, #0x18]
add r0, #0xe4
str r1, [r0]
add r0, r5, #0
ldr r1, [sp, #0x1c]
add r0, #0xe8
str r1, [r0]
ldr r0, [sp, #0x20]
strh r0, [r5, #2]
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_02267EBC
thumb_func_start ov49_02267EF8
ov49_02267EF8: ; 0x02267EF8
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r6, r1, #0
ldr r4, _02267F38 ; =0x00000000
beq _02267F18
add r5, r7, #0
_02267F04:
add r0, r5, #0
add r0, #0xd8
ldr r0, [r0]
mov r1, #1
bl sub_020182A0
add r4, r4, #1
add r5, r5, #4
cmp r4, r6
blo _02267F04
_02267F18:
mov r0, #0
strh r0, [r7]
mov r0, #1
strb r0, [r7, #6]
strh r6, [r7, #4]
ldrh r2, [r7, #2]
add r1, r7, #0
add r1, #0xe8
lsl r3, r2, #2
ldr r2, _02267F3C ; =ov49_0226A4CC
ldr r1, [r1]
ldr r2, [r2, r3]
add r0, r7, #0
blx r2
pop {r3, r4, r5, r6, r7, pc}
nop
_02267F38: .word 0x00000000
_02267F3C: .word ov49_0226A4CC
thumb_func_end ov49_02267EF8
thumb_func_start ov49_02267F40
ov49_02267F40: ; 0x02267F40
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldrb r1, [r5, #6]
cmp r1, #0
bne _02267F4E
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_02267F4E:
ldrh r1, [r5, #2]
lsl r2, r1, #2
ldr r1, _02267F90 ; =ov49_0226A484
ldr r1, [r1, r2]
blx r1
mov r6, #0
str r0, [sp]
ldrsh r0, [r5, r6]
add r0, r0, #1
strh r0, [r5]
ldr r0, [sp]
cmp r0, #1
bne _02267F8C
ldrh r0, [r5, #4]
cmp r0, #0
ble _02267F88
add r4, r5, #0
add r7, r6, #0
_02267F72:
add r0, r4, #0
add r0, #0xd8
ldr r0, [r0]
add r1, r7, #0
bl sub_020182A0
ldrh r0, [r5, #4]
add r6, r6, #1
add r4, r4, #4
cmp r6, r0
blt _02267F72
_02267F88:
mov r0, #0
strb r0, [r5, #6]
_02267F8C:
ldr r0, [sp]
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02267F90: .word ov49_0226A484
thumb_func_end ov49_02267F40
thumb_func_start ov49_02267F94
ov49_02267F94: ; 0x02267F94
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x30
str r0, [sp, #0x10]
add r0, r1, #0
add r1, sp, #0x24
bl ov49_02259154
mov r1, #2
ldr r0, [sp, #0x24]
lsl r1, r1, #0xe
add r0, r0, r1
str r0, [sp, #0x24]
ldr r2, [sp, #0x28]
lsl r0, r1, #1
add r0, r2, r0
str r0, [sp, #0x28]
ldr r0, [sp, #0x2c]
mov r4, #0
sub r0, r0, r1
str r0, [sp, #0x2c]
ldr r0, [sp, #0x10]
ldrh r0, [r0, #4]
cmp r0, #0
ble _022680A8
ldr r0, [sp, #0x10]
str r0, [sp, #0x1c]
add r0, #8
str r0, [sp, #0x1c]
ldr r0, [sp, #0x10]
str r0, [sp, #0x18]
add r0, #0xa8
str r0, [sp, #0x18]
ldr r0, [sp, #0x10]
str r0, [sp, #0x14]
_02267FD8:
cmp r4, #3
bhi _02268056
add r0, r4, r4
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02267FE8: ; jump table
.short _02267FF0 - _02267FE8 - 2 ; case 0
.short _02268008 - _02267FE8 - 2 ; case 1
.short _02268020 - _02267FE8 - 2 ; case 2
.short _0226803C - _02267FE8 - 2 ; case 3
_02267FF0:
mov r0, #3
ldr r1, [sp, #0x24]
lsl r0, r0, #0xe
sub r7, r1, r0
mov r0, #1
ldr r1, [sp, #0x28]
lsl r0, r0, #0x10
add r6, r1, r0
ldr r5, [sp, #0x2c]
mov r0, #0
str r0, [sp, #0x20]
b _02268056
_02268008:
mov r0, #3
ldr r1, [sp, #0x24]
lsl r0, r0, #0xe
add r7, r1, r0
mov r0, #1
ldr r1, [sp, #0x28]
lsl r0, r0, #0x10
add r6, r1, r0
ldr r5, [sp, #0x2c]
ldr r0, _022680AC ; =0x00007FFF
str r0, [sp, #0x20]
b _02268056
_02268020:
mov r0, #2
ldr r1, [sp, #0x24]
lsl r0, r0, #0xe
sub r7, r1, r0
ldr r1, [sp, #0x28]
lsl r0, r0, #1
add r6, r1, r0
mov r0, #6
ldr r1, [sp, #0x2c]
lsl r0, r0, #0xc
sub r5, r1, r0
ldr r0, _022680AC ; =0x00007FFF
str r0, [sp, #0x20]
b _02268056
_0226803C:
mov r0, #2
ldr r1, [sp, #0x24]
lsl r0, r0, #0xe
add r7, r1, r0
ldr r1, [sp, #0x28]
lsl r0, r0, #1
add r6, r1, r0
mov r0, #6
ldr r1, [sp, #0x2c]
lsl r0, r0, #0xc
sub r5, r1, r0
mov r0, #0
str r0, [sp, #0x20]
_02268056:
str r6, [sp]
ldr r0, [sp, #0x2c]
add r2, r7, #0
str r0, [sp, #4]
str r5, [sp, #8]
mov r0, #0x12
str r0, [sp, #0xc]
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x24]
ldr r3, [sp, #0x28]
bl ov49_0226540C
mov r3, #6
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x20]
ldr r2, _022680B0 ; =0x00000CCC
lsl r3, r3, #0xc
bl ov49_022655F4
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x24]
add r0, #0xd8
ldr r0, [r0]
ldr r2, [sp, #0x28]
ldr r3, [sp, #0x2c]
bl sub_020182A8
ldr r0, [sp, #0x1c]
add r4, r4, #1
add r0, #0x28
str r0, [sp, #0x1c]
ldr r0, [sp, #0x18]
add r0, #0xc
str r0, [sp, #0x18]
ldr r0, [sp, #0x14]
add r0, r0, #4
str r0, [sp, #0x14]
ldr r0, [sp, #0x10]
ldrh r0, [r0, #4]
cmp r4, r0
blt _02267FD8
_022680A8:
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_022680AC: .word 0x00007FFF
_022680B0: .word 0x00000CCC
thumb_func_end ov49_02267F94
thumb_func_start ov49_022680B4
ov49_022680B4: ; 0x022680B4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
str r0, [sp]
mov r0, #0
str r0, [sp, #0xc]
ldr r0, [sp]
ldrh r0, [r0, #4]
cmp r0, #0
ble _02268134
ldr r0, [sp]
ldr r6, [sp]
str r0, [sp, #4]
add r0, #0xa8
add r6, #8
ldr r5, [sp]
str r0, [sp, #4]
add r4, r0, #0
add r7, r6, #0
_022680D8:
ldr r0, [sp, #4]
bl ov49_02265628
ldr r2, [sp]
mov r1, #0
ldrsh r1, [r2, r1]
add r0, r6, #0
bl ov49_02265434
str r0, [sp, #8]
add r0, r4, #0
add r1, sp, #0x10
bl ov49_02265660
add r0, r7, #0
add r1, sp, #0x14
add r2, sp, #0x18
add r3, sp, #0x1c
bl ov49_022655E0
ldr r1, [sp, #0x14]
ldr r0, [sp, #0x10]
ldr r2, [sp, #0x18]
add r1, r1, r0
add r0, r5, #0
str r1, [sp, #0x14]
add r0, #0xd8
ldr r0, [r0]
ldr r3, [sp, #0x1c]
bl sub_020182A8
ldr r0, [sp, #4]
add r6, #0x28
add r0, #0xc
str r0, [sp, #4]
ldr r0, [sp, #0xc]
add r4, #0xc
add r0, r0, #1
str r0, [sp, #0xc]
ldr r0, [sp]
add r7, #0x28
ldrh r1, [r0, #4]
ldr r0, [sp, #0xc]
add r5, r5, #4
cmp r0, r1
blt _022680D8
_02268134:
ldr r0, [sp, #8]
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_022680B4
thumb_func_start ov49_0226813C
ov49_0226813C: ; 0x0226813C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x28
str r0, [sp, #0x10]
add r0, r1, #0
add r1, sp, #0x1c
bl ov49_02259154
mov r0, #2
ldr r1, [sp, #0x1c]
lsl r0, r0, #0xe
add r1, r1, r0
str r1, [sp, #0x1c]
ldr r1, [sp, #0x20]
mov r4, #0
add r1, r1, r0
str r1, [sp, #0x20]
ldr r1, [sp, #0x24]
sub r0, r1, r0
str r0, [sp, #0x24]
ldr r0, [sp, #0x10]
ldrh r0, [r0, #4]
cmp r0, #0
ble _0226821E
ldr r1, [sp, #0x10]
str r1, [sp, #0x18]
add r1, #8
str r1, [sp, #0x18]
ldr r1, [sp, #0x10]
str r1, [sp, #0x14]
add r1, #0xa8
str r1, [sp, #0x14]
_0226817A:
cmp r4, #3
bhi _022681E2
add r1, r4, r4
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0226818A: ; jump table
.short _02268192 - _0226818A - 2 ; case 0
.short _022681A2 - _0226818A - 2 ; case 1
.short _022681B2 - _0226818A - 2 ; case 2
.short _022681D4 - _0226818A - 2 ; case 3
_02268192:
mov r0, #1
ldr r1, [sp, #0x1c]
lsl r0, r0, #0x10
sub r7, r1, r0
ldr r1, [sp, #0x24]
ldr r6, [sp, #0x20]
add r5, r1, r0
b _022681E2
_022681A2:
mov r0, #1
ldr r1, [sp, #0x1c]
lsl r0, r0, #0x10
add r7, r1, r0
ldr r1, [sp, #0x24]
ldr r6, [sp, #0x20]
add r5, r1, r0
b _022681E2
_022681B2:
cmp r0, #3
bne _022681C4
mov r0, #2
ldr r1, [sp, #0x24]
lsl r0, r0, #0x10
ldr r7, [sp, #0x1c]
ldr r6, [sp, #0x20]
sub r5, r1, r0
b _022681E2
_022681C4:
mov r0, #1
ldr r1, [sp, #0x1c]
lsl r0, r0, #0x10
sub r7, r1, r0
ldr r1, [sp, #0x24]
ldr r6, [sp, #0x20]
sub r5, r1, r0
b _022681E2
_022681D4:
mov r0, #1
ldr r1, [sp, #0x1c]
lsl r0, r0, #0x10
add r7, r1, r0
ldr r1, [sp, #0x24]
ldr r6, [sp, #0x20]
sub r5, r1, r0
_022681E2:
str r6, [sp]
ldr r0, [sp, #0x24]
add r2, r7, #0
str r0, [sp, #4]
str r5, [sp, #8]
mov r0, #0x13
str r0, [sp, #0xc]
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x1c]
ldr r3, [sp, #0x20]
bl ov49_0226540C
mov r3, #2
ldr r0, [sp, #0x14]
ldr r1, _02268228 ; =0x00001555
ldr r2, _0226822C ; =0x0000071C
lsl r3, r3, #0x10
bl ov49_022655F4
ldr r0, [sp, #0x18]
add r4, r4, #1
add r0, #0x28
str r0, [sp, #0x18]
ldr r0, [sp, #0x14]
add r0, #0xc
str r0, [sp, #0x14]
ldr r0, [sp, #0x10]
ldrh r0, [r0, #4]
cmp r4, r0
blt _0226817A
_0226821E:
ldr r0, [sp, #0x10]
bl ov49_02268230
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02268228: .word 0x00001555
_0226822C: .word 0x0000071C
thumb_func_end ov49_0226813C
thumb_func_start ov49_02268230
ov49_02268230: ; 0x02268230
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
mov r0, #0
str r0, [sp, #8]
ldrh r0, [r5, #4]
cmp r0, #0
ble _022682C2
add r4, r5, #0
add r0, r5, #0
add r4, #0xa8
str r0, [sp, #4]
add r0, #8
str r0, [sp, #4]
str r4, [sp]
add r6, r0, #0
add r7, r5, #0
_02268252:
mov r0, #0
ldrsh r0, [r5, r0]
cmp r0, #0xe
bne _0226826A
mov r3, #3
ldr r2, _022682D0 ; =0x00000E38
add r0, r4, #0
mov r1, #0
lsl r3, r3, #0xe
bl ov49_022655F4
b _02268270
_0226826A:
add r0, r4, #0
bl ov49_02265628
_02268270:
mov r1, #0
ldrsh r1, [r5, r1]
ldr r0, [sp, #4]
bl ov49_02265434
ldr r0, [sp]
add r1, sp, #0xc
bl ov49_02265660
add r0, r6, #0
add r1, sp, #0x10
add r2, sp, #0x14
add r3, sp, #0x18
bl ov49_022655E0
ldr r1, [sp, #0x14]
ldr r0, [sp, #0xc]
ldr r3, [sp, #0x18]
add r2, r1, r0
add r0, r7, #0
str r2, [sp, #0x14]
add r0, #0xd8
ldr r0, [r0]
ldr r1, [sp, #0x10]
bl sub_020182A8
ldr r0, [sp, #4]
ldrh r1, [r5, #4]
add r0, #0x28
str r0, [sp, #4]
ldr r0, [sp]
add r4, #0xc
add r0, #0xc
str r0, [sp]
ldr r0, [sp, #8]
add r6, #0x28
add r0, r0, #1
add r7, r7, #4
str r0, [sp, #8]
cmp r0, r1
blt _02268252
_022682C2:
mov r0, #0
ldrsh r1, [r5, r0]
cmp r1, #0x16
blt _022682CC
mov r0, #1
_022682CC:
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_022682D0: .word 0x00000E38
thumb_func_end ov49_02268230
thumb_func_start ov49_022682D4
ov49_022682D4: ; 0x022682D4
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
add r0, r1, #0
add r1, sp, #0x10
bl ov49_02259154
mov r1, #2
ldr r0, [sp, #0x10]
lsl r1, r1, #0xe
add r0, r0, r1
str r0, [sp, #0x10]
mov r0, #5
ldr r2, [sp, #0x14]
lsl r0, r0, #0xe
add r0, r2, r0
str r0, [sp, #0x14]
ldr r0, [sp, #0x18]
mov r4, #0
sub r0, r0, r1
str r0, [sp, #0x18]
ldrh r0, [r5, #4]
cmp r0, #0
ble _02268330
mov r6, #5
mov r7, #7
lsl r6, r6, #0xc
lsl r7, r7, #0xc
_0226830C:
str r6, [sp]
mov r0, #0xe
mov r3, #0xd
str r7, [sp, #4]
lsl r0, r0, #0xc
str r0, [sp, #8]
mov r0, #8
str r0, [sp, #0xc]
add r0, r5, #0
add r1, r4, #0
add r2, sp, #0x10
lsl r3, r3, #0xc
bl ov49_022683FC
ldrh r0, [r5, #4]
add r4, r4, #1
cmp r4, r0
blt _0226830C
_02268330:
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
thumb_func_end ov49_022682D4
thumb_func_start ov49_02268334
ov49_02268334: ; 0x02268334
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r5, r0, #0
ldrh r0, [r5, #4]
mov r6, #0
cmp r0, #0
ble _022683D6
add r4, r5, #0
str r4, [sp, #0x10]
add r4, #8
str r4, [sp, #0x10]
add r7, r5, #0
_0226834C:
mov r1, #0
ldrsh r1, [r5, r1]
ldr r0, [sp, #0x10]
bl ov49_02265434
str r0, [sp, #0x14]
add r0, r4, #0
add r1, sp, #0x18
add r2, sp, #0x1c
add r3, sp, #0x20
bl ov49_022655E0
add r0, r7, #0
add r0, #0xd8
ldr r0, [r0]
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x1c]
ldr r3, [sp, #0x20]
bl sub_020182A8
ldr r0, [sp, #0x14]
cmp r0, #1
bne _022683C4
ldrb r0, [r5, #7]
add r2, sp, #0x18
cmp r0, #0
bne _022683A2
mov r0, #1
lsl r0, r0, #0xe
str r0, [sp]
ldr r0, _022683F8 ; =0xFFFFD000
ldr r3, _022683F8 ; =0xFFFFD000
str r0, [sp, #4]
mov r0, #3
lsl r0, r0, #0xc
str r0, [sp, #8]
mov r0, #3
str r0, [sp, #0xc]
add r0, r5, #0
add r1, r6, #0
bl ov49_022683FC
b _022683C4
_022683A2:
mov r0, #5
lsl r0, r0, #0xc
str r0, [sp]
mov r0, #6
lsl r0, r0, #0xc
str r0, [sp, #4]
mov r0, #0xa
lsl r0, r0, #0xc
str r0, [sp, #8]
mov r0, #4
mov r3, #0xa
str r0, [sp, #0xc]
add r0, r5, #0
add r1, r6, #0
lsl r3, r3, #0xc
bl ov49_022683FC
_022683C4:
ldr r0, [sp, #0x10]
add r6, r6, #1
add r0, #0x28
str r0, [sp, #0x10]
ldrh r0, [r5, #4]
add r4, #0x28
add r7, r7, #4
cmp r6, r0
blt _0226834C
_022683D6:
ldr r0, [sp, #0x14]
cmp r0, #1
bne _022683F2
ldrb r0, [r5, #7]
add r0, r0, #1
cmp r0, #3
bge _022683EC
strb r0, [r5, #7]
mov r0, #0
strh r0, [r5]
b _022683F2
_022683EC:
add sp, #0x24
mov r0, #1
pop {r4, r5, r6, r7, pc}
_022683F2:
mov r0, #0
add sp, #0x24
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_022683F8: .word 0xFFFFD000
thumb_func_end ov49_02268334
thumb_func_start ov49_022683FC
ov49_022683FC: ; 0x022683FC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r1, #0
add r7, r0, #0
add r4, r2, #0
add r6, r3, #0
cmp r5, #3
bhi _0226845A
add r3, r5, r5
add r3, pc
ldrh r3, [r3, #6]
lsl r3, r3, #0x10
asr r3, r3, #0x10
add pc, r3
_02268418: ; jump table
.short _02268420 - _02268418 - 2 ; case 0
.short _0226842E - _02268418 - 2 ; case 1
.short _0226843C - _02268418 - 2 ; case 2
.short _0226844C - _02268418 - 2 ; case 3
_02268420:
ldr r0, [r4]
ldr r1, [r4, #4]
sub r2, r0, r6
ldr r0, [sp, #0x28]
add r0, r1, r0
ldr r1, [r4, #8]
b _0226845A
_0226842E:
ldr r0, [r4]
ldr r1, [r4, #4]
add r2, r0, r6
ldr r0, [sp, #0x28]
add r0, r1, r0
ldr r1, [r4, #8]
b _0226845A
_0226843C:
ldr r1, [r4]
ldr r0, [sp, #0x2c]
sub r2, r1, r0
ldr r1, [r4, #4]
ldr r0, [sp, #0x30]
add r0, r1, r0
ldr r1, [r4, #8]
b _0226845A
_0226844C:
ldr r1, [r4]
ldr r0, [sp, #0x2c]
add r2, r1, r0
ldr r1, [r4, #4]
ldr r0, [sp, #0x30]
add r0, r1, r0
ldr r1, [r4, #8]
_0226845A:
str r0, [sp]
ldr r0, [r4, #8]
str r0, [sp, #4]
str r1, [sp, #8]
ldr r0, [sp, #0x34]
add r1, r7, #0
str r0, [sp, #0xc]
mov r0, #0x28
add r1, #8
mul r0, r5
add r0, r1, r0
ldr r1, [r4]
ldr r3, [r4, #4]
bl ov49_0226540C
lsl r0, r5, #2
add r0, r7, r0
add r0, #0xd8
ldr r0, [r0]
ldr r1, [r4]
ldr r2, [r4, #4]
ldr r3, [r4, #8]
bl sub_020182A8
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_022683FC
thumb_func_start ov49_02268490
ov49_02268490: ; 0x02268490
push {r4, r5, r6, lr}
add r5, r1, #0
mov r1, #0x60
add r6, r2, #0
bl AllocFromHeap
mov r1, #0
mov r2, #0x60
add r4, r0, #0
bl memset
mov r1, #0xa
ldr r2, _022684EC ; =ov49_0226A7E0
mul r1, r5
add r0, r4, #0
add r1, r2, r1
bl ov49_022686C0
ldr r2, _022684F0 ; =ov49_0226A7D8
lsl r1, r6, #1
add r0, r4, #0
add r1, r2, r1
bl ov49_022686E4
mov r1, #0
add r2, r4, #0
mov r0, #0x3c
_022684C6:
add r1, r1, #1
str r0, [r2, #0x48]
add r2, r2, #4
cmp r1, #2
blt _022684C6
mov r2, #0
add r1, r4, #0
mov r0, #0x3c
_022684D6:
add r2, r2, #1
str r0, [r1, #0x50]
add r1, r1, #4
cmp r2, #4
blt _022684D6
add r0, r4, #0
bl ov49_022686F0
add r0, r4, #0
pop {r4, r5, r6, pc}
nop
_022684EC: .word ov49_0226A7E0
_022684F0: .word ov49_0226A7D8
thumb_func_end ov49_02268490
thumb_func_start ov49_022684F4
ov49_022684F4: ; 0x022684F4
ldr r3, _022684F8 ; =FreeToHeap
bx r3
.balign 4, 0
_022684F8: .word FreeToHeap
thumb_func_end ov49_022684F4
thumb_func_start ov49_022684FC
ov49_022684FC: ; 0x022684FC
push {r4, r5, r6, r7, lr}
sub sp, #0xc
str r0, [sp, #4]
ldr r4, [sp, #4]
mov r0, #0
add r6, r4, #0
add r5, r4, #0
add r7, r0, #0
add r6, #0x30
add r5, #0x18
_02268510:
ldr r1, [r4, #0x48]
add r1, r1, #1
cmp r1, #0x3c
bgt _0226852C
str r1, [r4, #0x48]
mov r0, #0x3c
str r0, [sp]
ldr r3, [r4, #0x48]
add r0, r5, #0
add r1, r6, #0
add r2, r4, #0
bl ov49_02268664
mov r0, #1
_0226852C:
add r7, r7, #1
add r4, r4, #4
add r6, r6, #4
add r5, r5, #4
cmp r7, #2
blt _02268510
ldr r4, [sp, #4]
mov r1, #0
add r7, r4, #0
add r6, r4, #0
add r5, r4, #0
str r1, [sp, #8]
add r7, #8
add r6, #0x38
add r5, #0x20
_0226854A:
ldr r1, [r4, #0x50]
add r1, r1, #1
cmp r1, #0x3c
bgt _02268566
str r1, [r4, #0x50]
mov r0, #0x3c
str r0, [sp]
ldr r3, [r4, #0x50]
add r0, r5, #0
add r1, r6, #0
add r2, r7, #0
bl ov49_02268664
mov r0, #1
_02268566:
ldr r1, [sp, #8]
add r4, r4, #4
add r1, r1, #1
add r7, r7, #4
add r6, r6, #4
add r5, r5, #4
str r1, [sp, #8]
cmp r1, #4
blt _0226854A
cmp r0, #0
beq _02268582
ldr r0, [sp, #4]
bl ov49_022686F0
_02268582:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_022684FC
thumb_func_start ov49_02268588
ov49_02268588: ; 0x02268588
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldrb r0, [r5]
ldr r2, _022685F4 ; =ov49_0226A7E0
strb r0, [r5, #0x18]
ldrb r0, [r5, #1]
strb r0, [r5, #0x19]
ldrb r0, [r5, #2]
strb r0, [r5, #0x1a]
ldrb r0, [r5, #3]
strb r0, [r5, #0x1b]
mov r0, #0
str r0, [r5, #0x48]
mov r0, #0xa
mul r0, r1
add r4, r2, r0
add r0, r5, #0
add r0, #0x30
add r1, r4, #0
bl ov49_02268640
add r6, r4, #2
add r4, r5, #0
mov r7, #0
add r4, #0x38
_022685BA:
ldrb r1, [r5, #8]
add r0, r5, #0
add r0, #0x20
strb r1, [r0]
add r0, r5, #0
ldrb r1, [r5, #9]
add r0, #0x21
strb r1, [r0]
add r0, r5, #0
ldrb r1, [r5, #0xa]
add r0, #0x22
strb r1, [r0]
add r0, r5, #0
ldrb r1, [r5, #0xb]
add r0, #0x23
strb r1, [r0]
mov r0, #0
str r0, [r5, #0x50]
add r0, r4, #0
add r1, r6, #0
bl ov49_02268640
add r7, r7, #1
add r5, r5, #4
add r6, r6, #2
add r4, r4, #4
cmp r7, #4
blt _022685BA
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_022685F4: .word ov49_0226A7E0
thumb_func_end ov49_02268588
thumb_func_start ov49_022685F8
ov49_022685F8: ; 0x022685F8
ldrb r2, [r0, #4]
ldr r3, _02268618 ; =ov49_02268640
lsl r1, r1, #1
strb r2, [r0, #0x1c]
ldrb r2, [r0, #5]
strb r2, [r0, #0x1d]
ldrb r2, [r0, #6]
strb r2, [r0, #0x1e]
ldrb r2, [r0, #7]
strb r2, [r0, #0x1f]
mov r2, #0
str r2, [r0, #0x4c]
ldr r2, _0226861C ; =ov49_0226A7D8
add r0, #0x34
add r1, r2, r1
bx r3
.balign 4, 0
_02268618: .word ov49_02268640
_0226861C: .word ov49_0226A7D8
thumb_func_end ov49_022685F8
thumb_func_start ov49_02268620
ov49_02268620: ; 0x02268620
bx lr
.balign 4, 0
thumb_func_end ov49_02268620
thumb_func_start ov49_02268624
ov49_02268624: ; 0x02268624
push {r3, r4}
mov r3, #0
mov r2, #2
ldrsb r4, [r0, r3]
ldrsb r2, [r0, r2]
mov r3, #1
ldrsb r0, [r0, r3]
lsl r2, r2, #0xa
lsl r0, r0, #5
orr r0, r4
orr r0, r2
strh r0, [r1]
pop {r3, r4}
bx lr
thumb_func_end ov49_02268624
thumb_func_start ov49_02268640
ov49_02268640: ; 0x02268640
push {r3, r4}
ldrh r3, [r1]
mov r2, #0x1f
and r3, r2
strb r3, [r0]
ldrh r4, [r1]
lsl r3, r2, #5
and r3, r4
asr r3, r3, #5
strb r3, [r0, #1]
ldrh r3, [r1]
lsl r1, r2, #0xa
and r1, r3
asr r1, r1, #0xa
strb r1, [r0, #2]
pop {r3, r4}
bx lr
.balign 4, 0
thumb_func_end ov49_02268640
thumb_func_start ov49_02268664
ov49_02268664: ; 0x02268664
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
mov r0, #1
add r4, r2, #0
ldrsb r2, [r1, r0]
ldrsb r0, [r5, r0]
add r6, r3, #0
sub r0, r2, r0
str r0, [sp, #4]
mov r0, #2
ldrsb r2, [r1, r0]
ldrsb r0, [r5, r0]
sub r0, r2, r0
str r0, [sp]
mov r0, #0
ldrsb r7, [r5, r0]
ldrsb r0, [r1, r0]
ldr r1, [sp, #0x20]
sub r0, r0, r7
mul r0, r6
bl _s32_div_f
add r0, r7, r0
strb r0, [r4]
ldr r0, [sp, #4]
ldr r1, [sp, #0x20]
mul r0, r6
bl _s32_div_f
mov r1, #1
ldrsb r1, [r5, r1]
add r0, r1, r0
strb r0, [r4, #1]
ldr r0, [sp]
ldr r1, [sp, #0x20]
mul r0, r6
bl _s32_div_f
mov r1, #2
ldrsb r1, [r5, r1]
add r0, r1, r0
strb r0, [r4, #2]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_02268664
thumb_func_start ov49_022686C0
ov49_022686C0: ; 0x022686C0
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
bl ov49_02268640
mov r6, #0
add r4, r4, #2
add r5, #8
_022686D0:
add r0, r5, #0
add r1, r4, #0
bl ov49_02268640
add r6, r6, #1
add r4, r4, #2
add r5, r5, #4
cmp r6, #4
blt _022686D0
pop {r4, r5, r6, pc}
thumb_func_end ov49_022686C0
thumb_func_start ov49_022686E4
ov49_022686E4: ; 0x022686E4
ldr r3, _022686EC ; =ov49_02268640
add r0, r0, #4
bx r3
nop
_022686EC: .word ov49_02268640
thumb_func_end ov49_022686E4
thumb_func_start ov49_022686F0
ov49_022686F0: ; 0x022686F0
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r7, sp, #4
str r0, [sp]
mov r4, #0
add r5, r0, #0
add r7, #2
add r6, sp, #4
_02268700:
add r0, r5, #0
add r1, r7, #0
bl ov49_02268624
ldrh r1, [r6, #2]
add r0, r4, #0
bl NNS_G3dGlbLightColor
add r4, r4, #1
add r5, r5, #4
cmp r4, #2
blt _02268700
ldr r0, [sp]
add r1, sp, #4
add r0, #8
add r1, #2
bl ov49_02268624
ldr r0, [sp]
add r1, sp, #4
add r0, #0xc
bl ov49_02268624
add r1, sp, #4
ldrh r0, [r1, #2]
ldrh r1, [r1]
mov r2, #0
bl NNS_G3dGlbMaterialColorDiffAmb
ldr r0, [sp]
add r1, sp, #4
add r0, #0x10
add r1, #2
bl ov49_02268624
ldr r0, [sp]
add r1, sp, #4
add r0, #0x14
str r0, [sp]
bl ov49_02268624
add r1, sp, #4
ldrh r0, [r1, #2]
ldrh r1, [r1]
mov r2, #0
bl NNS_G3dGlbMaterialColorSpecEmi
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_022686F0
thumb_func_start ov49_02268764
ov49_02268764: ; 0x02268764
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r1, #0
mov r1, #0x1c
add r6, r0, #0
bl AllocFromHeap
add r4, r0, #0
add r2, r4, #0
mov r1, #0x1c
mov r0, #0
_0226877A:
strb r0, [r2]
add r2, r2, #1
sub r1, r1, #1
bne _0226877A
str r5, [r4]
add r0, r5, #0
bl ov49_02259FE8
str r0, [r4, #4]
add r0, r5, #0
bl ov49_02259FF8
str r0, [r4, #8]
add r0, r5, #0
bl ov49_02259FF0
str r0, [r4, #0xc]
ldr r0, [r4, #4]
bl ov45_0222A3BC
bl ov49_02268974
add r7, r0, #0
ldr r0, [r4, #4]
bl ov45_0222A3D4
bl ov49_022689A0
str r0, [sp, #4]
ldr r0, [r4, #4]
bl ov45_0222A3EC
bl ov49_022689D4
add r3, r0, #0
ldr r2, [sp, #4]
add r0, r6, #0
add r1, r7, #0
bl ov49_02268490
str r0, [r4, #0x10]
add r0, r5, #0
add r1, r6, #0
bl ov49_02268FAC
str r0, [r4, #0x14]
ldr r0, [r4, #4]
ldr r1, [r4, #8]
add r2, r6, #0
bl ov49_02268A0C
str r0, [r4, #0x18]
ldr r0, [r4, #0xc]
add r1, r7, #0
bl ov49_02258BEC
ldr r0, [r4, #4]
bl ov45_0222A35C
add r5, r0, #0
ldr r0, [r4, #4]
bl ov45_0222A324
ldr r0, [r4, #4]
bl ov45_0222A374
str r0, [sp]
ldr r0, [r4, #4]
bl ov45_0222A3A0
add r7, r0, #0
ldr r0, [r4, #4]
bl ov45_0222A330
add r6, r0, #0
ldr r0, [r4, #4]
bl ov45_0222A394
cmp r5, #2
bne _02268820
ldr r0, [r4, #8]
bl ov49_0225E714
_02268820:
cmp r5, #1
beq _02268834
cmp r5, #0
bne _02268834
cmp r7, #1
bne _02268834
ldr r0, [r4, #8]
mov r1, #3
bl ov49_0225E760
_02268834:
ldr r0, [sp]
cmp r0, #1
bne _02268840
ldr r0, [r4, #8]
bl ov49_0225E574
_02268840:
cmp r6, #1
bne _0226884A
add r0, r4, #0
bl ov49_02268A00
_0226884A:
add r0, r4, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_02268764
thumb_func_start ov49_02268850
ov49_02268850: ; 0x02268850
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x18]
bl ov49_02268A6C
ldr r0, [r4, #0x14]
bl ov49_02269090
ldr r0, [r4, #0x10]
bl ov49_022684F4
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_02268850
thumb_func_start ov49_02268870
ov49_02268870: ; 0x02268870
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #4]
mov r1, #1
bl ov45_0222A288
cmp r0, #0
beq _0226889C
ldr r0, [r5, #4]
bl ov45_0222A3BC
bl ov49_02268974
add r4, r0, #0
ldr r0, [r5, #0x10]
add r1, r4, #0
bl ov49_02268588
ldr r0, [r5, #0xc]
add r1, r4, #0
bl ov49_02258C08
_0226889C:
ldr r0, [r5, #4]
mov r1, #2
bl ov45_0222A288
cmp r0, #0
beq _022688BA
ldr r0, [r5, #4]
bl ov45_0222A3D4
bl ov49_022689A0
add r1, r0, #0
ldr r0, [r5, #0x10]
bl ov49_022685F8
_022688BA:
ldr r0, [r5, #4]
mov r1, #3
bl ov45_0222A288
cmp r0, #0
beq _022688D8
ldr r0, [r5, #4]
bl ov45_0222A3EC
bl ov49_022689D4
add r1, r0, #0
ldr r0, [r5, #0x10]
bl ov49_02268620
_022688D8:
ldr r0, [r5, #4]
bl ov45_0222A3A0
cmp r0, #1
bne _022688FE
ldr r0, [r5, #4]
bl ov45_0222A35C
cmp r0, #0
bne _022688FE
ldr r0, [r5, #8]
bl ov49_0225E824
cmp r0, #0
bne _022688FE
ldr r0, [r5, #8]
mov r1, #1
bl ov49_0225E760
_022688FE:
ldr r0, [r5, #4]
mov r1, #5
bl ov45_0222A288
cmp r0, #0
beq _02268922
ldr r0, [r5, #4]
bl ov45_0222A35C
cmp r0, #1
bne _02268922
ldr r0, [r5, #8]
bl ov49_0225E714
ldr r0, [r5, #8]
mov r1, #2
bl ov49_0225E760
_02268922:
ldr r0, [r5, #4]
mov r1, #6
bl ov45_0222A288
cmp r0, #0
beq _0226893E
ldr r0, [r5, #4]
bl ov45_0222A374
cmp r0, #1
bne _0226893E
ldr r0, [r5, #8]
bl ov49_0225E574
_0226893E:
ldr r0, [r5, #4]
bl ov45_0222A330
cmp r0, #1
bne _02268954
ldr r0, [r5, #8]
bl ov49_0225E580
add r0, r5, #0
bl ov49_02268A00
_02268954:
ldr r0, [r5, #0x10]
bl ov49_022684FC
ldr r0, [r5, #0x14]
bl ov49_02269098
ldr r0, [r5, #0x18]
bl ov49_02268A7C
pop {r3, r4, r5, pc}
thumb_func_end ov49_02268870
thumb_func_start ov49_02268968
ov49_02268968: ; 0x02268968
ldr r3, _02268970 ; =ov49_02269154
ldr r0, [r0, #0x14]
bx r3
nop
_02268970: .word ov49_02269154
thumb_func_end ov49_02268968
thumb_func_start ov49_02268974
ov49_02268974: ; 0x02268974
push {r3, lr}
cmp r0, #6
bhi _02268998
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_02268986: ; jump table
.short _02268998 - _02268986 - 2 ; case 0
.short _02268994 - _02268986 - 2 ; case 1
.short _02268994 - _02268986 - 2 ; case 2
.short _02268994 - _02268986 - 2 ; case 3
.short _02268994 - _02268986 - 2 ; case 4
.short _02268994 - _02268986 - 2 ; case 5
.short _02268994 - _02268986 - 2 ; case 6
_02268994:
sub r0, r0, #1
pop {r3, pc}
_02268998:
bl GF_AssertFail
mov r0, #0
pop {r3, pc}
thumb_func_end ov49_02268974
thumb_func_start ov49_022689A0
ov49_022689A0: ; 0x022689A0
push {r3, lr}
cmp r0, #0xa
bhi _022689CC
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_022689B2: ; jump table
.short _022689CC - _022689B2 - 2 ; case 0
.short _022689CC - _022689B2 - 2 ; case 1
.short _022689CC - _022689B2 - 2 ; case 2
.short _022689CC - _022689B2 - 2 ; case 3
.short _022689CC - _022689B2 - 2 ; case 4
.short _022689CC - _022689B2 - 2 ; case 5
.short _022689CC - _022689B2 - 2 ; case 6
.short _022689C8 - _022689B2 - 2 ; case 7
.short _022689C8 - _022689B2 - 2 ; case 8
.short _022689C8 - _022689B2 - 2 ; case 9
.short _022689C8 - _022689B2 - 2 ; case 10
_022689C8:
sub r0, r0, #7
pop {r3, pc}
_022689CC:
bl GF_AssertFail
mov r0, #0
pop {r3, pc}
thumb_func_end ov49_022689A0
thumb_func_start ov49_022689D4
ov49_022689D4: ; 0x022689D4
push {r3, lr}
add r1, r0, #0
sub r1, #0xb
cmp r1, #3
bhi _022689F6
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_022689EA: ; jump table
.short _022689F2 - _022689EA - 2 ; case 0
.short _022689F2 - _022689EA - 2 ; case 1
.short _022689F2 - _022689EA - 2 ; case 2
.short _022689F2 - _022689EA - 2 ; case 3
_022689F2:
sub r0, #0xb
pop {r3, pc}
_022689F6:
bl GF_AssertFail
mov r0, #0
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_022689D4
thumb_func_start ov49_02268A00
ov49_02268A00: ; 0x02268A00
ldr r3, _02268A08 ; =NNS_G3dGlbLightColor
mov r0, #2
mov r1, #0
bx r3
.balign 4, 0
_02268A08: .word NNS_G3dGlbLightColor
thumb_func_end ov49_02268A00
thumb_func_start ov49_02268A0C
ov49_02268A0C: ; 0x02268A0C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
add r0, r2, #0
mov r1, #0x10
bl AllocFromHeap
add r4, r0, #0
add r2, r4, #0
mov r1, #0x10
mov r0, #0
_02268A22:
strb r0, [r2]
add r2, r2, #1
sub r1, r1, #1
bne _02268A22
str r5, [r4]
add r0, r5, #0
str r6, [r4, #4]
bl ov45_0222B1DC
add r7, r0, #0
add r0, r5, #0
bl ov45_0222A35C
strh r0, [r4, #0xa]
ldrh r0, [r4, #0xa]
cmp r0, #0
beq _02268A66
cmp r7, #0
beq _02268A66
add r0, r6, #0
mov r1, #1
bl ov49_0225E624
add r0, r4, #0
bl ov49_02268D94
add r0, r5, #0
bl ov45_0222B1EC
add r2, r0, #0
add r0, r4, #0
add r1, r7, #0
bl ov49_02268C74
_02268A66:
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_02268A0C
thumb_func_start ov49_02268A6C
ov49_02268A6C: ; 0x02268A6C
push {r4, lr}
add r4, r0, #0
bl ov49_02268DB0
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
thumb_func_end ov49_02268A6C
thumb_func_start ov49_02268A7C
ov49_02268A7C: ; 0x02268A7C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5]
bl ov45_0222B1DC
add r4, r0, #0
ldr r0, [r5]
bl ov45_0222B1EC
add r7, r0, #0
ldr r0, [r5]
bl ov45_0222A35C
add r6, r0, #0
ldrh r0, [r5, #0xa]
cmp r0, r6
beq _02268ABC
strh r6, [r5, #0xa]
cmp r6, #1
bne _02268ABC
ldr r0, [r5, #4]
mov r1, #1
bl ov49_0225E624
add r0, r5, #0
add r1, r4, #0
add r2, r7, #0
bl ov49_02268C74
add r0, r5, #0
bl ov49_02268D94
_02268ABC:
cmp r6, #0
beq _02268ADA
ldrb r0, [r5, #8]
cmp r0, r4
beq _02268AD0
add r0, r5, #0
add r1, r4, #0
add r2, r7, #0
bl ov49_02268C74
_02268AD0:
add r0, r5, #0
add r1, r4, #0
add r2, r7, #0
bl ov49_02268ADC
_02268ADA:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_02268A7C
thumb_func_start ov49_02268ADC
ov49_02268ADC: ; 0x02268ADC
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r6, r2, #0
cmp r4, #6
blo _02268AEC
bl GF_AssertFail
_02268AEC:
cmp r4, #6
bhs _02268AFC
ldr r2, _02268B00 ; =ov49_0226A84C
lsl r3, r4, #2
ldr r2, [r2, r3]
add r0, r5, #0
add r1, r6, #0
blx r2
_02268AFC:
pop {r4, r5, r6, pc}
nop
_02268B00: .word ov49_0226A84C
thumb_func_end ov49_02268ADC
thumb_func_start ov49_02268B04
ov49_02268B04: ; 0x02268B04
bx lr
.balign 4, 0
thumb_func_end ov49_02268B04
thumb_func_start ov49_02268B08
ov49_02268B08: ; 0x02268B08
bx lr
.balign 4, 0
thumb_func_end ov49_02268B08
thumb_func_start ov49_02268B0C
ov49_02268B0C: ; 0x02268B0C
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r0, r1, #0
mov r1, #0xe
bl _u32_div_f
cmp r1, #0
bne _02268B86
ldr r5, _02268B88 ; =ov49_0226A8B4
mov r4, #0
_02268B20:
ldr r0, [r7, #0xc]
add r1, r4, #0
lsl r2, r0, #3
ldr r0, _02268B8C ; =ov49_0226A894
mov r6, #0
add r3, r0, r2
mov r0, #3
and r1, r0
ldr r0, _02268B8C ; =ov49_0226A894
ldr r0, [r0, r2]
cmp r1, r0
bne _02268B40
mov r0, #1
str r0, [sp]
add r6, r0, #0
b _02268B4C
_02268B40:
ldr r0, [r3, #4]
cmp r1, r0
bne _02268B4C
add r0, r6, #0
str r0, [sp]
mov r6, #1
_02268B4C:
cmp r6, #1
bne _02268B72
cmp r4, #0x11
bhs _02268B6E
ldrb r1, [r5]
mov r3, #1
ldr r0, [r7, #4]
ldr r2, [sp]
lsl r3, r3, #0xc
bl ov49_0225E85C
add r6, r0, #0
cmp r6, #1
beq _02268B74
bl GF_AssertFail
b _02268B74
_02268B6E:
mov r6, #0
b _02268B74
_02268B72:
mov r6, #1
_02268B74:
add r5, r5, #1
add r4, r4, #1
cmp r6, #1
beq _02268B20
ldr r0, [r7, #0xc]
add r1, r0, #1
mov r0, #3
and r0, r1
str r0, [r7, #0xc]
_02268B86:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02268B88: .word ov49_0226A8B4
_02268B8C: .word ov49_0226A894
thumb_func_end ov49_02268B0C
thumb_func_start ov49_02268B90
ov49_02268B90: ; 0x02268B90
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
add r0, r1, #0
mov r1, #6
bl _u32_div_f
cmp r1, #0
bne _02268C20
ldr r0, [r5, #0xc]
lsl r1, r0, #1
ldr r0, _02268C24 ; =ov49_0226A83C
ldrb r0, [r0, r1]
str r0, [sp]
ldr r0, _02268C28 ; =ov49_0226A83D
ldrb r0, [r0, r1]
add r1, sp, #4
bl ov49_02268D0C
ldr r0, [sp, #8]
mov r4, #0
cmp r0, #0
bls _02268BE2
mov r7, #1
add r6, r4, #0
lsl r7, r7, #0xc
_02268BC4:
ldr r1, [sp, #4]
ldr r0, [r5, #4]
ldrb r1, [r1, r4]
add r2, r6, #0
add r3, r7, #0
bl ov49_0225E85C
cmp r0, #1
beq _02268BDA
bl GF_AssertFail
_02268BDA:
ldr r0, [sp, #8]
add r4, r4, #1
cmp r4, r0
blo _02268BC4
_02268BE2:
ldr r0, [sp]
add r1, sp, #4
bl ov49_02268D0C
ldr r0, [sp, #8]
mov r4, #0
cmp r0, #0
bls _02268C14
mov r6, #1
lsl r7, r6, #0xc
_02268BF6:
ldr r1, [sp, #4]
ldr r0, [r5, #4]
ldrb r1, [r1, r4]
add r2, r6, #0
add r3, r7, #0
bl ov49_0225E85C
cmp r0, #1
beq _02268C0C
bl GF_AssertFail
_02268C0C:
ldr r0, [sp, #8]
add r4, r4, #1
cmp r4, r0
blo _02268BF6
_02268C14:
ldr r0, [r5, #0xc]
mov r1, #7
add r0, r0, #1
bl _u32_div_f
str r1, [r5, #0xc]
_02268C20:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_02268C24: .word ov49_0226A83C
_02268C28: .word ov49_0226A83D
thumb_func_end ov49_02268B90
thumb_func_start ov49_02268C2C
ov49_02268C2C: ; 0x02268C2C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
cmp r0, #3
bhs _02268C64
lsl r2, r0, #3
ldr r0, _02268C68 ; =ov49_0226A864
ldr r0, [r0, r2]
cmp r0, r1
bhs _02268C64
ldr r1, _02268C6C ; =ov49_0226A868
ldr r0, [r4, #4]
ldr r1, [r1, r2]
bl ov49_0225E894
ldr r1, [r4, #0xc]
ldr r0, [r4, #4]
lsl r2, r1, #3
ldr r1, _02268C6C ; =ov49_0226A868
ldr r1, [r1, r2]
bl ov49_0225E6E0
ldr r0, _02268C70 ; =0x000005B4
bl PlaySE
ldr r0, [r4, #0xc]
add r0, r0, #1
str r0, [r4, #0xc]
_02268C64:
pop {r4, pc}
nop
_02268C68: .word ov49_0226A864
_02268C6C: .word ov49_0226A868
_02268C70: .word 0x000005B4
thumb_func_end ov49_02268C2C
thumb_func_start ov49_02268C74
ov49_02268C74: ; 0x02268C74
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r6, r2, #0
cmp r4, #6
blo _02268C84
bl GF_AssertFail
_02268C84:
cmp r4, #6
bhs _02268CA4
add r1, r5, #0
mov r0, #0
add r1, #0xc
strb r0, [r5, #0xc]
strb r0, [r1, #1]
strb r0, [r1, #2]
strb r0, [r1, #3]
ldr r2, _02268CA8 ; =ov49_0226A87C
lsl r3, r4, #2
ldr r2, [r2, r3]
add r0, r5, #0
add r1, r6, #0
blx r2
strb r4, [r5, #8]
_02268CA4:
pop {r4, r5, r6, pc}
nop
_02268CA8: .word ov49_0226A87C
thumb_func_end ov49_02268C74
thumb_func_start ov49_02268CAC
ov49_02268CAC: ; 0x02268CAC
ldr r3, _02268CB8 ; =ov49_0225E82C
mov r2, #1
ldr r0, [r0, #4]
mov r1, #0
lsl r2, r2, #0xc
bx r3
.balign 4, 0
_02268CB8: .word ov49_0225E82C
thumb_func_end ov49_02268CAC
thumb_func_start ov49_02268CBC
ov49_02268CBC: ; 0x02268CBC
ldr r3, _02268CC8 ; =ov49_0225E82C
mov r1, #1
ldr r0, [r0, #4]
lsl r2, r1, #0xc
bx r3
nop
_02268CC8: .word ov49_0225E82C
thumb_func_end ov49_02268CBC
thumb_func_start ov49_02268CCC
ov49_02268CCC: ; 0x02268CCC
ldr r3, _02268CD8 ; =ov49_0225E82C
mov r2, #1
ldr r0, [r0, #4]
mov r1, #0
lsl r2, r2, #0xc
bx r3
.balign 4, 0
_02268CD8: .word ov49_0225E82C
thumb_func_end ov49_02268CCC
thumb_func_start ov49_02268CDC
ov49_02268CDC: ; 0x02268CDC
ldr r3, _02268CE8 ; =ov49_0225E82C
mov r2, #1
ldr r0, [r0, #4]
mov r1, #0
lsl r2, r2, #0xc
bx r3
.balign 4, 0
_02268CE8: .word ov49_0225E82C
thumb_func_end ov49_02268CDC
thumb_func_start ov49_02268CEC
ov49_02268CEC: ; 0x02268CEC
push {r4, lr}
add r4, r0, #0
bl ov49_02268DB0
mov r2, #1
ldr r0, [r4, #4]
mov r1, #0
lsl r2, r2, #0xc
bl ov49_0225E82C
ldr r0, [r4, #4]
mov r1, #0
bl ov49_0225E624
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_02268CEC
thumb_func_start ov49_02268D0C
ov49_02268D0C: ; 0x02268D0C
push {r3, lr}
cmp r0, #6
bhi _02268D72
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02268D1E: ; jump table
.short _02268D2C - _02268D1E - 2 ; case 0
.short _02268D36 - _02268D1E - 2 ; case 1
.short _02268D40 - _02268D1E - 2 ; case 2
.short _02268D4A - _02268D1E - 2 ; case 3
.short _02268D54 - _02268D1E - 2 ; case 4
.short _02268D5E - _02268D1E - 2 ; case 5
.short _02268D68 - _02268D1E - 2 ; case 6
_02268D2C:
mov r0, #6
str r0, [r1, #4]
ldr r0, _02268D78 ; =ov49_0226A834
str r0, [r1]
pop {r3, pc}
_02268D36:
mov r0, #2
str r0, [r1, #4]
ldr r0, _02268D7C ; =ov49_0226A82C
str r0, [r1]
pop {r3, pc}
_02268D40:
mov r0, #2
str r0, [r1, #4]
ldr r0, _02268D80 ; =ov49_0226A824
str r0, [r1]
pop {r3, pc}
_02268D4A:
mov r0, #1
str r0, [r1, #4]
ldr r0, _02268D84 ; =ov49_0226A81C
str r0, [r1]
pop {r3, pc}
_02268D54:
mov r0, #1
str r0, [r1, #4]
ldr r0, _02268D88 ; =ov49_0226A820
str r0, [r1]
pop {r3, pc}
_02268D5E:
mov r0, #2
str r0, [r1, #4]
ldr r0, _02268D8C ; =ov49_0226A828
str r0, [r1]
pop {r3, pc}
_02268D68:
mov r0, #3
str r0, [r1, #4]
ldr r0, _02268D90 ; =ov49_0226A830
str r0, [r1]
pop {r3, pc}
_02268D72:
bl GF_AssertFail
pop {r3, pc}
.balign 4, 0
_02268D78: .word ov49_0226A834
_02268D7C: .word ov49_0226A82C
_02268D80: .word ov49_0226A824
_02268D84: .word ov49_0226A81C
_02268D88: .word ov49_0226A820
_02268D8C: .word ov49_0226A828
_02268D90: .word ov49_0226A830
thumb_func_end ov49_02268D0C
thumb_func_start ov49_02268D94
ov49_02268D94: ; 0x02268D94
push {r4, lr}
add r4, r0, #0
ldrb r0, [r4, #9]
cmp r0, #0
bne _02268DA8
ldr r0, _02268DAC ; =0x000005B5
bl PlaySE
mov r0, #1
strb r0, [r4, #9]
_02268DA8:
pop {r4, pc}
nop
_02268DAC: .word 0x000005B5
thumb_func_end ov49_02268D94
thumb_func_start ov49_02268DB0
ov49_02268DB0: ; 0x02268DB0
push {r4, lr}
add r4, r0, #0
ldrb r0, [r4, #9]
cmp r0, #0
beq _02268DC6
ldr r0, _02268DC8 ; =0x000005B5
mov r1, #0
bl StopSE
mov r0, #0
strb r0, [r4, #9]
_02268DC6:
pop {r4, pc}
.balign 4, 0
_02268DC8: .word 0x000005B5
thumb_func_end ov49_02268DB0
thumb_func_start ov49_02268DCC
ov49_02268DCC: ; 0x02268DCC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r4, r1, #0
add r5, r0, #0
bl ov49_0225EF84
add r6, r0, #0
add r0, r4, #0
bl ov49_02259FE8
str r0, [sp]
add r0, r4, #0
bl ov49_02259FF0
str r0, [sp, #4]
bl ov49_02258DB0
add r7, r0, #0
ldr r0, [sp, #4]
bl ov49_02258DAC
str r0, [sp, #8]
add r0, r5, #0
bl ov49_0225EF88
cmp r0, #5
bls _02268E04
b _02268F9E
_02268E04:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02268E10: ; jump table
.short _02268E1C - _02268E10 - 2 ; case 0
.short _02268EF2 - _02268E10 - 2 ; case 1
.short _02268F02 - _02268E10 - 2 ; case 2
.short _02268F34 - _02268E10 - 2 ; case 3
.short _02268F54 - _02268E10 - 2 ; case 4
.short _02268F8A - _02268E10 - 2 ; case 5
_02268E1C:
add r0, r5, #0
mov r1, #4
bl ov49_0225EF40
add r6, r0, #0
ldr r0, _02268FA8 ; =0x000005DC
bl PlaySE
ldr r0, [sp, #8]
mov r1, #6
bl ov49_02258E60
bl ov42_022282A4
str r0, [sp, #0xc]
ldr r0, [sp, #4]
add r1, r7, #0
mov r2, #0
bl ov49_02258EEC
add r0, r7, #0
mov r1, #0
bl ov49_02259130
ldr r1, [sp, #0xc]
add r0, r7, #0
bl ov49_02259160
ldr r0, [sp]
bl ov45_0222A330
cmp r0, #0
beq _02268E7E
add r0, r4, #0
mov r1, #1
mov r2, #3
bl ov49_0225A30C
add r1, r0, #0
mov r0, #4
str r0, [r6]
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
mov r1, #5
bl ov49_0225EF8C
b _02268FA2
_02268E7E:
ldr r0, [sp]
bl ov45_0222A3A0
cmp r0, #1
bne _02268EA8
add r0, r4, #0
mov r1, #1
mov r2, #0x58
bl ov49_0225A30C
add r1, r0, #0
mov r0, #4
str r0, [r6]
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
mov r1, #5
bl ov49_0225EF8C
b _02268FA2
_02268EA8:
ldr r0, [sp]
bl ov45_0222A2E0
cmp r0, #1
bne _02268ED2
add r0, r4, #0
mov r1, #1
mov r2, #0x57
bl ov49_0225A30C
add r1, r0, #0
mov r0, #4
str r0, [r6]
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
mov r1, #5
bl ov49_0225EF8C
b _02268FA2
_02268ED2:
add r0, r4, #0
mov r1, #1
mov r2, #0x51
bl ov49_0225A30C
add r1, r0, #0
mov r0, #1
str r0, [r6]
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
mov r1, #5
bl ov49_0225EF8C
b _02268FA2
_02268EF2:
add r0, r4, #0
bl ov49_0225A264
add r0, r5, #0
mov r1, #2
bl ov49_0225EF8C
b _02268FA2
_02268F02:
add r0, r4, #0
bl ov49_0225A2C4
cmp r0, #0
beq _02268F14
cmp r0, #1
beq _02268F24
cmp r0, #2
b _02268FA2
_02268F14:
add r0, r5, #0
mov r1, #3
bl ov49_0225EF8C
add r0, r4, #0
bl ov49_0225A2F8
b _02268FA2
_02268F24:
add r0, r5, #0
mov r1, #4
bl ov49_0225EF8C
add r0, r4, #0
bl ov49_0225A2F8
b _02268FA2
_02268F34:
add r0, r4, #0
mov r1, #1
mov r2, #0x55
bl ov49_0225A30C
add r1, r0, #0
mov r0, #4
str r0, [r6]
add r0, r4, #0
bl ov49_0225A08C
add r0, r5, #0
mov r1, #5
bl ov49_0225EF8C
b _02268FA2
_02268F54:
add r0, r4, #0
bl ov49_0225A0EC
add r0, r4, #0
bl ov49_0225A2F8
ldr r0, [sp, #4]
ldr r1, [sp, #8]
mov r2, #1
bl ov49_02258EEC
add r0, r5, #0
bl ov49_0225EF68
add r0, r7, #0
mov r1, #1
bl ov49_02259130
ldr r0, [sp, #4]
add r1, r7, #0
mov r2, #0
mov r3, #1
bl ov49_02258EAC
add sp, #0x10
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_02268F8A:
add r0, r4, #0
bl ov49_0225A0AC
cmp r0, #1
bne _02268FA2
ldr r1, [r6]
add r0, r5, #0
bl ov49_0225EF8C
b _02268FA2
_02268F9E:
bl GF_AssertFail
_02268FA2:
mov r0, #0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02268FA8: .word 0x000005DC
thumb_func_end ov49_02268DCC
thumb_func_start ov49_02268FAC
ov49_02268FAC: ; 0x02268FAC
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
add r0, r1, #0
mov r1, #0xc4
bl AllocFromHeap
add r4, r0, #0
mov r1, #0
mov r2, #0xc4
bl memset
str r5, [r4]
add r0, r5, #0
bl ov49_02259FE8
str r0, [r4, #4]
add r0, r5, #0
bl ov49_02259FF8
str r0, [r4, #8]
add r0, r5, #0
bl ov49_0225A000
str r0, [r4, #0xc]
bl ov49_022589A8
add r1, r0, #6
add r0, r4, #0
add r0, #0xbc
str r1, [r0]
add r0, r4, #0
add r0, #0xbc
ldr r1, [r0]
mov r0, #7
mvn r0, r0
sub r1, r0, r1
add r0, r4, #0
add r0, #0xc0
str r1, [r0]
add r0, r4, #0
add r0, #0xbc
ldr r0, [r0]
ldr r6, _0226908C ; =ov49_0226A8C8
lsl r1, r0, #0x10
add r0, r4, #0
add r0, #0xbc
str r1, [r0]
add r0, r4, #0
add r0, #0xc0
ldr r0, [r0]
mov r7, #0
lsl r1, r0, #0x10
add r0, r4, #0
add r0, #0xc0
str r1, [r0]
add r5, r4, #0
_0226901E:
mov r0, #0
str r0, [sp]
ldrb r1, [r6]
add r2, sp, #4
ldr r0, [r4, #0xc]
add r2, #2
add r3, sp, #4
bl ov49_022589D8
add r0, sp, #4
ldrh r0, [r0, #2]
add r7, r7, #1
add r6, r6, #1
lsl r1, r0, #4
add r0, r5, #0
add r0, #0xaa
strh r1, [r0]
add r0, sp, #4
ldrh r0, [r0]
lsl r1, r0, #4
add r0, r5, #0
add r0, #0xac
add r5, r5, #4
strh r1, [r0]
cmp r7, #3
blt _0226901E
mov r5, #0
_02269054:
add r2, r4, #0
add r2, #0xbc
ldr r0, [r4, #8]
ldr r2, [r2]
add r1, r5, #0
bl ov49_0225E3B8
ldr r0, [r4, #4]
add r1, r5, #0
bl ov45_0222AD80
cmp r0, #1
bne _0226907E
add r0, r4, #0
add r1, r5, #0
bl ov49_02269178
add r0, r4, #0
add r1, r5, #0
bl ov49_022695C4
_0226907E:
add r5, r5, #1
cmp r5, #9
blt _02269054
add r0, r4, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_0226908C: .word ov49_0226A8C8
thumb_func_end ov49_02268FAC
thumb_func_start ov49_02269090
ov49_02269090: ; 0x02269090
ldr r3, _02269094 ; =FreeToHeap
bx r3
.balign 4, 0
_02269094: .word FreeToHeap
thumb_func_end ov49_02269090
thumb_func_start ov49_02269098
ov49_02269098: ; 0x02269098
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
ldr r0, [r5, #4]
bl ov45_0222A53C
add r1, r0, #0
ldr r0, [r5, #4]
bl ov45_0222ADA8
mov r1, #0
mvn r1, r1
str r0, [sp, #8]
cmp r0, r1
bne _022690BA
mov r6, #0
b _022690C4
_022690BA:
add r1, sp, #8
add r2, sp, #4
bl ov45_0222AE08
mov r6, #1
_022690C4:
mov r4, #0
_022690C6:
ldr r0, [r5, #4]
add r1, r4, #0
bl ov45_0222AD80
cmp r0, #1
ldr r0, [r5, #8]
bne _0226910E
add r1, r4, #0
mov r2, #1
bl ov49_0225E4CC
add r0, r5, #0
add r1, r4, #0
bl ov49_02269178
add r0, r5, #0
add r1, r4, #0
bl ov49_022695C4
cmp r6, #0
beq _022690FC
ldr r0, [sp, #8]
cmp r0, r4
bne _022690FA
mov r7, #1
b _022690FC
_022690FA:
mov r7, #0
_022690FC:
ldr r0, [sp, #4]
add r1, r4, #0
str r0, [sp]
add r0, r5, #0
add r2, r6, #0
add r3, r7, #0
bl ov49_02269240
b _02269116
_0226910E:
add r1, r4, #0
mov r2, #0
bl ov49_0225E4CC
_02269116:
add r4, r4, #1
cmp r4, #9
blt _022690C6
add r7, r5, #0
mov r6, #0
add r4, r5, #0
add r7, #0x2c
_02269124:
ldr r0, [r5, #8]
add r1, r6, #0
bl ov49_0225E524
strb r0, [r4, #0x10]
ldr r1, [r5, #8]
add r0, r7, #0
add r2, r6, #0
bl ov49_02269430
strb r0, [r4, #0x11]
ldr r0, [r5, #8]
add r1, r6, #0
bl ov49_0225E54C
strb r0, [r4, #0x12]
add r6, r6, #1
add r4, r4, #3
add r7, #0xe
cmp r6, #9
blt _02269124
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov49_02269098
thumb_func_start ov49_02269154
ov49_02269154: ; 0x02269154
push {r4, r5, r6, lr}
add r5, r1, #0
add r6, r0, #0
add r4, r2, #0
cmp r5, #9
blo _02269164
bl GF_AssertFail
_02269164:
cmp r4, #3
blt _0226916C
bl GF_AssertFail
_0226916C:
lsl r0, r5, #1
add r0, r5, r0
add r0, r6, r0
add r0, r0, r4
ldrb r0, [r0, #0x10]
pop {r4, r5, r6, pc}
thumb_func_end ov49_02269154
thumb_func_start ov49_02269178
ov49_02269178: ; 0x02269178
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, [r5, #4]
str r1, [sp]
bl ov45_0222AD90
add r4, r0, #0
ldr r0, [r5, #4]
bl ov45_0222ADA0
add r6, r0, #0
add r0, r5, #0
add r0, #0xc0
mov r1, #2
ldr r0, [r0]
lsl r1, r1, #0xc
bl FX_Div
add r7, r0, #0
cmp r6, #0
ble _022691B4
lsl r0, r6, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _022691C2
_022691B4:
lsl r0, r6, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_022691C2:
add r6, r0, #0
cmp r4, #0
ble _022691DA
lsl r0, r4, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _022691E8
_022691DA:
lsl r0, r4, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_022691E8:
bl _ffix
asr r1, r0, #0x1f
asr r3, r7, #0x1f
add r2, r7, #0
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r4, r2, #0xc
orr r4, r0
add r0, r6, #0
bl _ffix
add r1, r0, #0
add r0, r4, #0
bl FX_Div
asr r2, r0, #0x1f
lsl r3, r2, #0xd
lsr r1, r0, #0x13
lsl r2, r0, #0xd
mov r0, #2
orr r3, r1
mov r1, #0
lsl r0, r0, #0xa
add r2, r2, r0
adc r3, r1
lsl r0, r3, #0x14
lsr r3, r2, #0xc
orr r3, r0
add r0, r5, #0
add r0, #0xbc
ldr r2, [r0]
ldr r0, [r5, #8]
ldr r1, [sp]
add r2, r3, r2
bl ov49_0225E3B8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov49_02269178
thumb_func_start ov49_02269240
ov49_02269240: ; 0x02269240
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r7, r0, #0
ldr r0, [sp, #0x30]
str r1, [sp]
str r0, [sp, #0x30]
ldr r0, [r7, #4]
str r2, [sp, #4]
add r5, r3, #0
bl ov45_0222AD3C
add r6, r0, #0
ldr r0, [r7, #4]
bl ov45_0222AD2C
ldr r0, [sp]
mov r4, #0
lsl r1, r0, #1
add r0, r0, r1
str r0, [sp, #0x10]
ldr r0, [sp]
mov r1, #3
bl _u32_div_f
str r1, [sp, #8]
mov r0, #0xc
ldr r1, _02269398 ; =ov49_0226A8DC
mul r0, r6
add r0, r1, r0
str r0, [sp, #0xc]
add r0, r7, #0
str r0, [sp, #0x14]
add r0, #0x2c
str r0, [sp, #0x14]
ldr r0, [sp]
mov r1, #0xe
mul r1, r0
str r1, [sp, #0x18]
_0226928C:
ldr r1, [sp, #0x10]
ldr r0, [r7, #4]
add r1, r4, r1
bl ov45_0222ADE8
mov r6, #0
cmp r5, #1
bne _022692A4
ldr r1, [sp, #0x30]
cmp r4, r1
bne _022692A4
mov r6, #1
_022692A4:
cmp r0, #1
bne _0226938A
cmp r4, #0
beq _022692B6
cmp r4, #1
beq _0226931A
cmp r4, #2
beq _02269350
b _0226938A
_022692B6:
ldr r0, [r7, #8]
ldr r1, [sp]
bl ov49_0225E47C
cmp r0, #1
bne _0226938A
ldr r0, [sp, #8]
cmp r0, #2
bne _022692EC
ldr r3, [sp, #0xc]
ldr r0, [sp, #4]
ldrh r3, [r3, #2]
add r1, r5, #0
add r2, r6, #0
bl ov49_022693D4
ldr r0, [sp, #0xc]
ldrh r3, [r0, #8]
ldr r0, _0226939C ; =0x0000FFFE
cmp r3, r0
beq _0226930E
ldr r0, [sp, #4]
add r1, r5, #0
add r2, r6, #0
bl ov49_022693A4
b _0226930E
_022692EC:
ldr r3, [sp, #0xc]
ldr r0, [sp, #4]
ldrh r3, [r3]
add r1, r5, #0
add r2, r6, #0
bl ov49_022693D4
ldr r0, [sp, #0xc]
ldrh r3, [r0, #4]
ldr r0, _0226939C ; =0x0000FFFE
cmp r3, r0
beq _0226930E
ldr r0, [sp, #4]
add r1, r5, #0
add r2, r6, #0
bl ov49_022693A4
_0226930E:
ldr r1, [sp, #0x10]
ldr r0, [r7, #4]
add r1, r4, r1
bl ov45_0222ADF8
b _0226938A
_0226931A:
ldr r0, [sp, #8]
cmp r0, #2
bne _02269324
mov r1, #1
b _02269326
_02269324:
mov r1, #0
_02269326:
ldr r2, [sp, #0x14]
ldr r0, [sp, #0x18]
ldr r3, [sp]
add r0, r2, r0
ldr r2, [r7, #8]
bl ov49_022693F8
cmp r0, #1
bne _0226938A
ldr r1, [sp, #0x10]
ldr r0, [r7, #4]
add r1, r4, r1
bl ov45_0222ADF8
ldr r0, [sp, #4]
ldr r3, _022693A0 ; =0x000005C6
add r1, r5, #0
add r2, r6, #0
bl ov49_022693A4
b _0226938A
_02269350:
ldr r0, [r7, #8]
ldr r1, [sp]
bl ov49_0225E4A4
cmp r0, #1
bne _0226938A
ldr r1, [sp, #0x10]
ldr r0, [r7, #4]
add r1, r4, r1
bl ov45_0222ADF8
ldr r0, [sp, #8]
cmp r0, #2
bne _0226937C
ldr r3, [sp, #0xc]
ldr r0, [sp, #4]
ldrh r3, [r3, #0xa]
add r1, r5, #0
add r2, r6, #0
bl ov49_022693A4
b _0226938A
_0226937C:
ldr r3, [sp, #0xc]
ldr r0, [sp, #4]
ldrh r3, [r3, #6]
add r1, r5, #0
add r2, r6, #0
bl ov49_022693A4
_0226938A:
add r4, r4, #1
cmp r4, #3
bge _02269392
b _0226928C
_02269392:
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_02269398: .word ov49_0226A8DC
_0226939C: .word 0x0000FFFE
_022693A0: .word 0x000005C6
thumb_func_end ov49_02269240
thumb_func_start ov49_022693A4
ov49_022693A4: ; 0x022693A4
push {r3, lr}
cmp r0, #0
beq _022693C8
cmp r1, #0
beq _022693D0
cmp r2, #0
beq _022693BE
lsl r0, r3, #0x10
lsr r0, r0, #0x10
mov r1, #5
bl sub_0200606C
pop {r3, pc}
_022693BE:
lsl r0, r3, #0x10
lsr r0, r0, #0x10
bl PlaySE
pop {r3, pc}
_022693C8:
lsl r0, r3, #0x10
lsr r0, r0, #0x10
bl PlaySE
_022693D0:
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_022693A4
thumb_func_start ov49_022693D4
ov49_022693D4: ; 0x022693D4
push {r3, lr}
cmp r0, #0
beq _022693EA
cmp r1, #0
beq _022693F4
lsl r0, r3, #0x10
lsr r0, r0, #0x10
mov r1, #0
bl PlayCry
pop {r3, pc}
_022693EA:
lsl r0, r3, #0x10
lsr r0, r0, #0x10
mov r1, #0
bl PlayCry
_022693F4:
pop {r3, pc}
.balign 4, 0
thumb_func_end ov49_022693D4
thumb_func_start ov49_022693F8
ov49_022693F8: ; 0x022693F8
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, #2
blo _0226940A
bl GF_AssertFail
_0226940A:
ldrh r0, [r5]
cmp r0, #1
bne _02269414
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_02269414:
ldr r3, _0226942C ; =ov49_0226A8D4
strh r4, [r5, #2]
lsl r4, r4, #2
mov r0, #1
strh r0, [r5]
ldr r3, [r3, r4]
add r0, r5, #0
add r1, r6, #0
add r2, r7, #0
blx r3
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0226942C: .word ov49_0226A8D4
thumb_func_end ov49_022693F8
thumb_func_start ov49_02269430
ov49_02269430: ; 0x02269430
push {r3, r4, r5, lr}
add r4, r0, #0
ldrh r3, [r4]
cmp r3, #0
beq _0226946A
ldrh r3, [r4, #2]
lsl r5, r3, #2
ldr r3, _02269470 ; =ov49_0226A8CC
ldr r3, [r3, r5]
blx r3
cmp r0, #1
bne _02269466
mov r0, #0
strb r0, [r4]
strb r0, [r4, #1]
strb r0, [r4, #2]
strb r0, [r4, #3]
strb r0, [r4, #4]
strb r0, [r4, #5]
strb r0, [r4, #6]
strb r0, [r4, #7]
strb r0, [r4, #8]
strb r0, [r4, #9]
strb r0, [r4, #0xa]
strb r0, [r4, #0xb]
strb r0, [r4, #0xc]
strb r0, [r4, #0xd]
_02269466:
mov r0, #1
pop {r3, r4, r5, pc}
_0226946A:
mov r0, #0
pop {r3, r4, r5, pc}
nop
_02269470: .word ov49_0226A8CC
thumb_func_end ov49_02269430
thumb_func_start ov49_02269474
ov49_02269474: ; 0x02269474
push {r4, lr}
add r4, r0, #0
mov r0, #0
strh r0, [r4, #4]
mov r0, #8
strh r0, [r4, #6]
mov r0, #5
bl GF_DegreeToSinCosIdx
strh r0, [r4, #8]
mov r0, #2
strh r0, [r4, #0xa]
mov r0, #4
strh r0, [r4, #0xc]
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_02269474
thumb_func_start ov49_02269494
ov49_02269494: ; 0x02269494
push {r4, lr}
add r4, r0, #0
mov r0, #0
strh r0, [r4, #4]
mov r0, #0x10
strh r0, [r4, #6]
mov r0, #0xa
bl GF_DegreeToSinCosIdx
strh r0, [r4, #8]
mov r0, #4
strh r0, [r4, #0xa]
mov r0, #2
strh r0, [r4, #0xc]
pop {r4, pc}
.balign 4, 0
thumb_func_end ov49_02269494
thumb_func_start ov49_022694B4
ov49_022694B4: ; 0x022694B4
push {r3, r4, r5, r6, lr}
sub sp, #0x1c
add r5, r0, #0
add r0, sp, #0x10
mov r4, #0
str r4, [r0]
str r4, [r0, #4]
str r4, [r0, #8]
mov r0, #4
ldrsh r0, [r5, r0]
str r1, [sp]
str r2, [sp, #4]
add r1, r0, #1
mov r0, #6
ldrsh r0, [r5, r0]
cmp r1, r0
bge _022694DA
strh r1, [r5, #4]
b _022694EC
_022694DA:
strh r4, [r5, #4]
mov r0, #0xc
ldrsh r0, [r5, r0]
sub r0, r0, #1
cmp r0, #0
ble _022694EA
strh r0, [r5, #0xc]
b _022694EC
_022694EA:
mov r4, #1
_022694EC:
mov r0, #4
ldrsh r1, [r5, r0]
ldr r0, _022695BC ; =0x0000FFFF
mul r0, r1
mov r1, #6
ldrsh r1, [r5, r1]
bl _s32_div_f
lsl r0, r0, #0x10
lsr r6, r0, #0x10
ldrh r0, [r5, #8]
cmp r0, #0
beq _02269518
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _02269526
_02269518:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_02269526:
bl _ffix
add r2, r0, #0
asr r0, r6, #4
lsl r1, r0, #2
ldr r0, _022695C0 ; =FX_SinCosTable_
asr r3, r2, #0x1f
ldrsh r0, [r0, r1]
str r0, [sp, #8]
asr r0, r0, #0x1f
str r0, [sp, #0xc]
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r1, r2, #0xc
orr r1, r0
lsl r0, r1, #4
lsr r6, r0, #0x10
mov r0, #0xa
ldrsh r0, [r5, r0]
cmp r0, #0
ble _02269572
lsl r0, r0, #0xc
bl _fflt
add r1, r0, #0
mov r0, #0x3f
lsl r0, r0, #0x18
bl _fadd
b _02269580
_02269572:
lsl r0, r0, #0xc
bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
bl _fsub
_02269580:
bl _ffix
add r2, r0, #0
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
asr r3, r2, #0x1f
bl _ll_mul
mov r2, #2
mov r3, #0
lsl r2, r2, #0xa
add r2, r0, r2
adc r1, r3
lsl r0, r1, #0x14
lsr r1, r2, #0xc
orr r1, r0
str r1, [sp, #0x14]
ldr r0, [sp]
ldr r1, [sp, #4]
add r2, r6, #0
bl ov49_0225E4F8
ldr r0, [sp]
ldr r1, [sp, #4]
add r2, sp, #0x10
bl ov49_0225E3F4
add r0, r4, #0
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
.balign 4, 0
_022695BC: .word 0x0000FFFF
_022695C0: .word FX_SinCosTable_
thumb_func_end ov49_022694B4
thumb_func_start ov49_022695C4
ov49_022695C4: ; 0x022695C4
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r7, r0, #0
str r1, [sp]
add r0, r1, #0
lsl r1, r0, #1
ldr r0, [sp]
mov r6, #0
add r0, r0, r1
str r0, [sp, #4]
_022695D8:
ldr r1, [sp, #4]
ldr r0, [r7, #4]
add r1, r6, r1
bl ov45_0222AE34
add r4, r0, #0
ldr r0, [r7, #8]
ldr r1, [sp]
add r2, r6, #0
add r3, sp, #8
bl ov49_0225E420
cmp r4, #3
bge _0226961A
lsl r0, r4, #2
add r5, r7, r0
_022695F8:
mov r0, #0xaa
ldrsh r0, [r5, r0]
add r0, #0x10
lsl r1, r0, #0xc
ldr r0, [sp, #8]
cmp r1, r0
ble _02269612
ldr r1, [sp, #4]
ldr r0, [r7, #4]
add r1, r6, r1
add r2, r4, #0
bl ov45_0222AE24
_02269612:
add r4, r4, #1
add r5, r5, #4
cmp r4, #3
blt _022695F8
_0226961A:
add r6, r6, #1
cmp r6, #3
blt _022695D8
add sp, #0x14
pop {r4, r5, r6, r7, pc}
thumb_func_end ov49_022695C4
.rodata
_02269624:
.byte 0x27, 0x28, 0x29, 0x00
ov49_02269628: ; 0x02269628
.byte 0x02, 0x03, 0x04, 0x05
ov49_0226962C: ; 0x0226962C
.byte 0x24, 0x25, 0x26, 0x27
.byte 0x28, 0x29, 0x2B, 0x00
ov49_02269634: ; 0x02269634
.byte 0x01, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10
.byte 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20
.byte 0x21, 0x22, 0x23, 0x2C
ov49_02269654: ; 0x02269654
.byte 0x03, 0x02, 0x01, 0x00
ov49_02269658: ; 0x02269658
.byte 0x20, 0x40, 0x80, 0x90
ov49_0226965C: ; 0x0226965C
.byte 0x00, 0x01, 0x02, 0x03
ov49_02269660: ; 0x02269660
.byte 0x10, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov49_02269678: ; 0x02269678
.byte 0x40, 0x02, 0x1E, 0x01, 0xFF, 0x00, 0x00, 0x00
.byte 0x41, 0x01, 0x1E, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x42, 0x01, 0x1D, 0x01, 0xFF, 0x00, 0x00, 0x00
.byte 0x61, 0x01, 0x1D, 0x01, 0xFE, 0x00, 0x00, 0x00
ov49_02269698: ; 0x02269698
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.word ov49_022599F8
ov49_022696C0: ; 0x022696C0
.word ov49_0225940C
.word ov49_02259410
.word ov49_022594D8
.word ov49_022595CC
.word ov49_0225967C
.word ov49_0225974C
.word ov49_02259758
.word ov49_02259734
.word ov49_02259740
.word ov49_0225991C
ov49_022696E8: ; 0x022696E8
.byte 0x14, 0x88, 0x00, 0x00
ov49_022696EC: ; 0x022696EC
.byte 0x00, 0x01, 0x00, 0x00
ov49_022696F0: ; 0x022696F0
.byte 0x00, 0x09, 0x06, 0x00
ov49_022696F4: ; 0x022696F4
.byte 0x20, 0xA0, 0x28, 0xD8
ov49_022696F8: ; 0x022696F8
.byte 0xE4, 0x02, 0xEC, 0x02
ov49_022696FC: ; 0x022696FC
.byte 0x03, 0x00, 0x69, 0x00
.byte 0x34, 0x00, 0x38, 0x00
ov49_02269704: ; 0x02269704
.byte 0x02, 0x00, 0x68, 0x00, 0x33, 0x00, 0x37, 0x00
ov49_0226970C: ; 0x0226970C
.byte 0x05, 0x01, 0x00, 0x18
.byte 0x03, 0x05, 0xD0, 0x01
ov49_02269714: ; 0x02269714
.byte 0x08, 0x03, 0x00, 0x00, 0x09, 0x03, 0x00, 0x00, 0x20, 0x03, 0x00, 0x00
.byte 0xFE, 0x02, 0x00, 0x00
ov49_02269724: ; 0x02269724
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
ov49_02269734: ; 0x02269734
.byte 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
ov49_02269744: ; 0x02269744
.byte 0x18, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
.byte 0x77, 0x00, 0x00, 0x00
ov49_02269754: ; 0x02269754
.byte 0x00, 0x00, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10
.byte 0x84, 0x10, 0x84, 0x10
ov49_02269764: ; 0x02269764
.byte 0x02, 0x00, 0x32, 0x00, 0xF8, 0xFF, 0xFA, 0xFF, 0x03, 0x00, 0x36, 0x00
.byte 0xF8, 0xFF, 0xFA, 0xFF
ov49_02269774: ; 0x02269774
.byte 0xD7, 0x00, 0x00, 0x00, 0x08, 0x00, 0xD1, 0x00, 0x66, 0x00, 0x02, 0x00
.byte 0xD7, 0x00, 0x31, 0x00, 0x01, 0x00, 0xD7, 0x00, 0x35, 0x00, 0x01, 0x00
ov49_0226978C: ; 0x0226978C
.byte 0xE4, 0x02, 0xE5, 0x02
.byte 0xE6, 0x02, 0xE7, 0x02, 0xE8, 0x02, 0xE9, 0x02, 0xEA, 0x02, 0xEB, 0x02, 0xEC, 0x02, 0xED, 0x02
.byte 0xEE, 0x02, 0xEF, 0x02, 0xF0, 0x02, 0xF1, 0x02, 0xF2, 0x02, 0xF3, 0x02
ov49_022697AC: ; 0x022697AC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00
.byte 0x00, 0x08, 0x00, 0x10, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov49_022697CC: ; 0x022697CC
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00
ov49_022697F4: ; 0x022697F4
.byte 0x06, 0x08, 0x02, 0x10, 0x04, 0x05, 0x40, 0x01, 0x06, 0x01, 0x07, 0x1E
.byte 0x06, 0x05, 0x80, 0x01, 0x06, 0x01, 0x0E, 0x13, 0x04, 0x05, 0x34, 0x02, 0x06, 0x01, 0x13, 0x13
.byte 0x04, 0x05, 0x80, 0x02, 0x06, 0x00, 0x0E, 0x16, 0x08, 0x05, 0x34, 0x02
ov49_0226981C: ; 0x0226981C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0F, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0F, 0x00, 0x00, 0x02, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov49_0226988C: ; 0x0226988C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x21, 0x00, 0x23, 0x00, 0x61, 0x00, 0x01, 0x00, 0x26, 0x00, 0x24, 0x00, 0x03, 0x00, 0x3C, 0x00
.byte 0x26, 0x00, 0x19, 0x00, 0x05, 0x00, 0x06, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x0B, 0x00, 0x18, 0x00
.byte 0x26, 0x00, 0x2C, 0x00, 0x1F, 0x00, 0x39, 0x00, 0x28, 0x00, 0x28, 0x00, 0x32, 0x00, 0x30, 0x00
.byte 0x2C, 0x00, 0x1A, 0x00, 0x33, 0x00, 0x0E, 0x00, 0x2C, 0x00, 0x25, 0x00, 0x3E, 0x00, 0x20, 0x00
.byte 0x1D, 0x00, 0x28, 0x00, 0x46, 0x00, 0x31, 0x00, 0x2A, 0x00, 0x2C, 0x00, 0x06, 0x00, 0x03, 0x00
.byte 0x27, 0x00, 0x22, 0x00, 0x07, 0x00, 0x0A, 0x00, 0x28, 0x00, 0x24, 0x00, 0x0D, 0x00, 0x24, 0x00
.byte 0x26, 0x00, 0x29, 0x00, 0x0E, 0x00, 0x19, 0x00, 0x24, 0x00, 0x2A, 0x00, 0x23, 0x00, 0x55, 0x00
.byte 0x26, 0x00, 0x26, 0x00, 0x25, 0x00, 0x23, 0x00, 0x26, 0x00, 0x27, 0x00, 0x2A, 0x00, 0x12, 0x00
.byte 0x26, 0x00, 0x23, 0x00, 0x3F, 0x00, 0x21, 0x00, 0x28, 0x00, 0x2C, 0x00
ov49_0226991C: ; 0x0226991C
.byte 0x00, 0x00, 0x02, 0x00
.byte 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x19, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x80, 0x06, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00
.byte 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x09, 0x00, 0x00, 0x00, 0x19, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00
.byte 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x06, 0x00, 0x00, 0x00, 0x1B, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x80, 0x09, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00
ov49_022699AC: ; 0x022699AC
.byte 0x00, 0x00, 0x01, 0x00
.byte 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x06, 0x04, 0x00, 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x01, 0x07, 0x00
.byte 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x02, 0x0A, 0x00, 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x06, 0x0D, 0x00
.byte 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x05, 0x10, 0x00, 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x03, 0x13, 0x00
.byte 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x04, 0x16, 0x00, 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x00, 0x19, 0x00
.byte 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x07, 0x1C, 0x00, 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x04, 0x1F, 0x00
.byte 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x01, 0x22, 0x00, 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x05, 0x25, 0x00
.byte 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x05, 0x28, 0x00, 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x02, 0x2B, 0x00
.byte 0xF8, 0xFF, 0xFA, 0xFF, 0x00, 0x03, 0x2E, 0x00, 0xF8, 0xFF, 0xFA, 0xFF, 0x01, 0x00, 0x67, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x6A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6D, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x73, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x79, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00
ov49_02269A6C: ; 0x02269A6C
.byte 0x02, 0xD6, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
ov49_02269A74: ; 0x02269A74
.byte 0xF5, 0xFF, 0xFF, 0xFF, 0x0C, 0x00, 0x00, 0x00
ov49_02269A7C: ; 0x02269A7C
.byte 0xFE, 0xFF
ov49_02269A7E: ; 0x02269A7E
.byte 0x0A, 0x00
.byte 0x0E, 0x00, 0x0A, 0x00, 0x1E, 0x00, 0x0A, 0x00
ov49_02269A88: ; 0x02269A88
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00
ov49_02269AAC: ; 0x02269AAC
.byte 0x18, 0x00, 0x00, 0x00
.byte 0x19, 0x00, 0x01, 0x00, 0x1A, 0x00, 0x02, 0x00, 0x1B, 0x00, 0x03, 0x00, 0x1B, 0x00, 0x03, 0x00
.byte 0x1C, 0x00, 0x04, 0x00, 0x21, 0x00, 0x05, 0x00, 0x46, 0x00, 0x06, 0x00, 0x47, 0x00, 0x07, 0x00
.byte 0x48, 0x00, 0x08, 0x00, 0x4C, 0x00, 0x09, 0x00, 0x49, 0x00, 0x0A, 0x00, 0x4A, 0x00, 0x0A, 0x00
.byte 0x4B, 0x00, 0x0A, 0x00, 0x4D, 0x00, 0x0B, 0x00, 0x4E, 0x00, 0x0C, 0x00, 0x4D, 0x00, 0x0D, 0x00
.byte 0x4E, 0x00, 0x0D, 0x00, 0x4D, 0x00, 0x0E, 0x00, 0x4E, 0x00, 0x0E, 0x00, 0x19, 0x00, 0x0F, 0x00
.byte 0x1A, 0x00, 0x0F, 0x00, 0x1B, 0x00, 0x0F, 0x00, 0x1B, 0x00, 0x0F, 0x00, 0x1C, 0x00, 0x0F, 0x00
.byte 0x19, 0x00, 0x10, 0x00, 0x1A, 0x00, 0x10, 0x00, 0x1B, 0x00, 0x10, 0x00, 0x1B, 0x00, 0x10, 0x00
.byte 0x1C, 0x00, 0x10, 0x00, 0x5C, 0x00, 0x0D, 0x00, 0x5D, 0x00, 0x0D, 0x00, 0x5C, 0x00, 0x0E, 0x00
.byte 0x5D, 0x00, 0x0E, 0x00, 0x62, 0x00, 0x11, 0x00
ov49_02269B38: ; 0x02269B38
.word ov49_0225FDCC
.word ov49_02260230
ov49_02269B40: ; 0x02269B40
.word ov49_02261720, 0
ov49_02269B48: ; 0x02269B48
.word ov49_022618C0, 0
ov49_02269B50: ; 0x02269B50
.word ov49_02261930, 0
ov49_02269B58: ; 0x02269B58
.word ov49_02261B74, 0
ov49_02269B60: ; 0x02269B60
.word ov49_02262FB4, 0
ov49_02269B68: ; 0x02269B68
.word ov49_02262AC4, 0
ov49_02269B70: ; 0x02269B70
.word ov49_02263B74, 0
ov49_02269B78: ; 0x02269B78
.word ov49_0226154C, 0
ov49_02269B80: ; 0x02269B80
.word ov49_0225F448, 0
ov49_02269B88: ; 0x02269B88
.word ov49_02262028, 0
ov49_02269B90: ; 0x02269B90
.byte 0x4F, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00
ov49_02269BA0: ; 0x02269BA0
.byte 0x57, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00
ov49_02269BB0: ; 0x02269BB0
.byte 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00
ov49_02269BC0: ; 0x02269BC0
.byte 0x53, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00
ov49_02269BD0: ; 0x02269BD0
.byte 0x36, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00
ov49_02269BE0: ; 0x02269BE0
.word ov49_0225F518, 0
.word ov49_0225FA14, 0
.word ov49_0225FB5C, 0
.word ov49_0225FCA8, 0
ov49_02269C00: ; 0x02269C00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x12, 0x00, 0x07, 0x00, 0x00, 0x08, 0x00, 0x10, 0x2F, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
ov49_02269C20: ; 0x02269C20
.byte 0x22, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00
.byte 0x26, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00
ov49_02269C40: ; 0x02269C40
.byte 0x2A, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00
.byte 0x2E, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00
ov49_02269C60: ; 0x02269C60
.byte 0x27, 0x28, 0x29, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.word ov49_02262B14
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.word 0
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov49_02269C90: ; 0x02269C90
.byte 0x24, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.word ov49_02260D90
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x25, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.word ov49_022644E8
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x26, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.word ov49_022649F4
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x27, 0x28, 0x29, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.word ov49_02262B14
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x2B, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.word ov49_02268DCC
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.word 0
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov49_02269D20: ; 0x02269D20
.byte 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.word ov49_02260254
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x16, 0x17, 0x18, 0x19, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.word ov49_02260428
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x1A, 0x1B, 0x1C, 0x1D, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.word ov49_02260428
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x00, 0x00, 0x00, 0x00
.word ov49_02260428
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x00, 0x00, 0x00, 0x00
.word ov49_02260428
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x21, 0x22, 0x23, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.word ov49_02260E2C
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x1E, 0x1F, 0x20, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.word ov49_022607C4
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x2C, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.word ov49_02260A68
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.word 0
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov49_02269DF8: ; 0x02269DF8
.byte 0x08, 0x0A, 0x00, 0x00
ov49_02269DFC: ; 0x02269DFC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00
.byte 0x00, 0x08, 0x00, 0x10, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
ov49_02269E1C: ; 0x02269E1C
.byte 0x1F, 0x20, 0x21, 0x22
.byte 0x23, 0x28, 0x24, 0x25
ov49_02269E24: ; 0x02269E24
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x08, 0x00, 0x10, 0x2F, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
ov49_02269E44: ; 0x02269E44
.byte 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00
.byte 0x1F, 0x00, 0x1F, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x05, 0x00, 0x07, 0x00
.byte 0x01, 0x00, 0x09, 0x00, 0x20, 0x00, 0x02, 0x00, 0x20, 0x00, 0x0B, 0x00, 0x0D, 0x00, 0x0F, 0x00
.byte 0x20, 0x00, 0x11, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x0C, 0x00, 0x21, 0x00, 0x13, 0x00, 0x15, 0x00
.byte 0x0C, 0x00, 0x17, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x22, 0x00, 0x19, 0x00
.byte 0x0E, 0x00, 0x1B, 0x00, 0x10, 0x00, 0x08, 0x00, 0x10, 0x00, 0x16, 0x00, 0x1A, 0x00, 0x23, 0x00
.byte 0x10, 0x00, 0x1D, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00
.byte 0x1F, 0x00, 0x1F, 0x00, 0x12, 0x00, 0x0A, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1C, 0x00, 0x1E, 0x00
.byte 0x12, 0x00, 0x24, 0x00
ov49_02269EC4: ; 0x02269EC4
.byte 0x28, 0x00
ov49_02269EC6: ; 0x02269EC6
.byte 0x25, 0x02, 0x29, 0x00, 0x26, 0x02, 0x2B, 0x00, 0x27, 0x02
.byte 0x2C, 0x00, 0x28, 0x02, 0x2E, 0x00, 0x2A, 0x02, 0x2F, 0x00, 0x2B, 0x02, 0x30, 0x00, 0x2C, 0x02
.byte 0x31, 0x00, 0x2D, 0x02, 0x32, 0x00, 0x2E, 0x02, 0x33, 0x00, 0x2F, 0x02, 0x34, 0x00, 0x30, 0x02
.byte 0x35, 0x00, 0x31, 0x02, 0x36, 0x00, 0x32, 0x02, 0x37, 0x00, 0x33, 0x02, 0x38, 0x00, 0x34, 0x02
.byte 0x39, 0x00, 0x35, 0x02, 0x3A, 0x00, 0x36, 0x02, 0x3B, 0x00, 0x37, 0x02, 0x3C, 0x00, 0x38, 0x02
.byte 0x3D, 0x00, 0x39, 0x02, 0x3E, 0x00, 0x3A, 0x02, 0x3F, 0x00, 0x3B, 0x02, 0x40, 0x00, 0x3C, 0x02
.byte 0x55, 0x00, 0x3D, 0x02, 0x56, 0x00, 0x3E, 0x02, 0x57, 0x00, 0x3F, 0x02, 0x58, 0x00, 0x40, 0x02
.byte 0x59, 0x00, 0x41, 0x02, 0x5A, 0x00, 0x42, 0x02, 0x5B, 0x00, 0x43, 0x02, 0x5C, 0x00, 0x44, 0x02
.byte 0x5D, 0x00, 0x45, 0x02, 0x5E, 0x00, 0x46, 0x02, 0xEC, 0x00, 0x47, 0x02, 0xED, 0x00, 0x48, 0x02
.byte 0xEE, 0x00, 0x49, 0x02, 0xEF, 0x00, 0x4A, 0x02, 0xF0, 0x00, 0x4B, 0x02, 0xF1, 0x00, 0x4C, 0x02
.byte 0xF2, 0x00, 0x4D, 0x02, 0xF3, 0x00, 0x4E, 0x02, 0xF4, 0x00, 0x4F, 0x02, 0xF5, 0x00, 0x50, 0x02
.byte 0xF6, 0x00, 0x51, 0x02, 0xF7, 0x00, 0x52, 0x02, 0xF8, 0x00, 0x53, 0x02, 0xF9, 0x00, 0x54, 0x02
.byte 0xFA, 0x00, 0x55, 0x02, 0xFB, 0x00, 0x56, 0x02, 0xFC, 0x00, 0x57, 0x02, 0xFD, 0x00, 0x58, 0x02
.byte 0xFE, 0x00, 0x59, 0x02, 0xFF, 0x00, 0x5A, 0x02, 0x00, 0x01, 0x5B, 0x02, 0x01, 0x01, 0x5C, 0x02
.byte 0x02, 0x01, 0x5D, 0x02, 0x03, 0x01, 0x5E, 0x02, 0x04, 0x01, 0x5F, 0x02, 0x05, 0x01, 0x60, 0x02
.byte 0x06, 0x01, 0x61, 0x02, 0x07, 0x01, 0x62, 0x02, 0x08, 0x01, 0x63, 0x02, 0x09, 0x01, 0x64, 0x02
.byte 0x0A, 0x01, 0x65, 0x02, 0x0B, 0x01, 0x66, 0x02, 0x0C, 0x01, 0x67, 0x02, 0x0D, 0x01, 0x68, 0x02
.byte 0x0E, 0x01, 0x69, 0x02, 0x0F, 0x01, 0x6A, 0x02, 0x10, 0x01, 0x6B, 0x02, 0x11, 0x01, 0x6C, 0x02
.byte 0x12, 0x01, 0x6D, 0x02, 0x13, 0x01, 0x6E, 0x02, 0x64, 0x01, 0x6F, 0x02, 0x65, 0x01, 0x70, 0x02
.byte 0x66, 0x01, 0x71, 0x02, 0x67, 0x01, 0x72, 0x02, 0x68, 0x01, 0x73, 0x02, 0x69, 0x01, 0x74, 0x02
.byte 0x6A, 0x01, 0x75, 0x02, 0x6B, 0x01, 0x76, 0x02, 0x6C, 0x01, 0x77, 0x02, 0x6D, 0x01, 0x78, 0x02
.byte 0x6E, 0x01, 0x79, 0x02, 0x6F, 0x01, 0x7A, 0x02, 0x70, 0x01, 0x7B, 0x02, 0x71, 0x01, 0x7C, 0x02
.byte 0x72, 0x01, 0x7D, 0x02, 0x73, 0x01, 0x7E, 0x02, 0x74, 0x01, 0x7F, 0x02, 0x75, 0x01, 0x80, 0x02
.byte 0x76, 0x01, 0x81, 0x02, 0x77, 0x01, 0x82, 0x02, 0x78, 0x01, 0x83, 0x02, 0x79, 0x01, 0x84, 0x02
.byte 0x7A, 0x01, 0x85, 0x02, 0x7B, 0x01, 0x86, 0x02, 0x7C, 0x01, 0x87, 0x02, 0x7D, 0x01, 0x88, 0x02
.byte 0x7E, 0x01, 0x89, 0x02, 0x7F, 0x01, 0x8A, 0x02, 0x80, 0x01, 0x8B, 0x02, 0x81, 0x01, 0x8C, 0x02
.byte 0x82, 0x01, 0x8D, 0x02, 0x83, 0x01, 0x8E, 0x02, 0x84, 0x01, 0x8F, 0x02, 0x85, 0x01, 0x90, 0x02
.byte 0x86, 0x01, 0x91, 0x02, 0x87, 0x01, 0x92, 0x02, 0x88, 0x01, 0x93, 0x02, 0x89, 0x01, 0x94, 0x02
.byte 0x8A, 0x01, 0x95, 0x02, 0x8B, 0x01, 0x96, 0x02, 0x8C, 0x01, 0x97, 0x02, 0xDD, 0x01, 0x98, 0x02
.byte 0xDE, 0x01, 0x99, 0x02, 0xDF, 0x01, 0x9A, 0x02, 0xE0, 0x01, 0x9B, 0x02, 0xE1, 0x01, 0x9C, 0x02
.byte 0xE2, 0x01, 0x9D, 0x02, 0xE3, 0x01, 0x9E, 0x02, 0xE4, 0x01, 0x9F, 0x02, 0xE5, 0x01, 0xA0, 0x02
.byte 0xE6, 0x01, 0xA1, 0x02, 0xFB, 0x01, 0xA2, 0x02, 0xFC, 0x01, 0xA3, 0x02, 0xFD, 0x01, 0xA4, 0x02
.byte 0xFE, 0x01, 0xA5, 0x02, 0xFF, 0x01, 0xA6, 0x02, 0x00, 0x02, 0xA7, 0x02, 0x01, 0x02, 0x8D, 0x03
.byte 0x02, 0x02, 0xA8, 0x02, 0xAB, 0x02, 0xAD, 0x02, 0xAC, 0x02, 0xAE, 0x02, 0xAF, 0x02, 0xB0, 0x02
.byte 0x41, 0x00, 0xB1, 0x02, 0x42, 0x00, 0xB2, 0x02, 0x43, 0x00, 0xB3, 0x02, 0x44, 0x00, 0xB4, 0x02
.byte 0x45, 0x00, 0xB5, 0x02, 0x46, 0x00, 0xB6, 0x02, 0x47, 0x00, 0xB7, 0x02, 0x48, 0x00, 0xB8, 0x02
.byte 0x49, 0x00, 0xB9, 0x02, 0x4A, 0x00, 0xBA, 0x02, 0x4B, 0x00, 0xBB, 0x02, 0x4C, 0x00, 0xBC, 0x02
.byte 0x4D, 0x00, 0xBD, 0x02, 0x4E, 0x00, 0xBE, 0x02, 0x4F, 0x00, 0xBF, 0x02, 0x50, 0x00, 0xC0, 0x02
.byte 0x51, 0x00, 0xC1, 0x02, 0x52, 0x00, 0xC2, 0x02, 0x53, 0x00, 0xC3, 0x02, 0x54, 0x00, 0xC4, 0x02
.byte 0x5F, 0x00, 0xC5, 0x02, 0x60, 0x00, 0xC6, 0x02, 0x61, 0x00, 0xC7, 0x02, 0x62, 0x00, 0xC8, 0x02
.byte 0x63, 0x00, 0xC9, 0x02, 0x64, 0x00, 0xCA, 0x02, 0x65, 0x00, 0xCB, 0x02, 0x66, 0x00, 0xCC, 0x02
.byte 0x67, 0x00, 0xCD, 0x02, 0x68, 0x00, 0xCE, 0x02, 0x69, 0x00, 0xCF, 0x02, 0x6A, 0x00, 0xD0, 0x02
.byte 0x6B, 0x00, 0xD1, 0x02, 0x6C, 0x00, 0xD2, 0x02, 0x6D, 0x00, 0xD3, 0x02, 0x6E, 0x00, 0xD4, 0x02
.byte 0x6F, 0x00, 0xD5, 0x02, 0x70, 0x00, 0xD6, 0x02, 0x71, 0x00, 0xD7, 0x02, 0x72, 0x00, 0xD8, 0x02
.byte 0x14, 0x01, 0xD9, 0x02, 0x15, 0x01, 0xDA, 0x02, 0x16, 0x01, 0xDB, 0x02, 0x17, 0x01, 0xDC, 0x02
.byte 0x18, 0x01, 0xDD, 0x02, 0x19, 0x01, 0xDE, 0x02, 0x1A, 0x01, 0xDF, 0x02, 0x1B, 0x01, 0xE0, 0x02
.byte 0x1C, 0x01, 0xE1, 0x02, 0x1D, 0x01, 0xE2, 0x02, 0x1E, 0x01, 0xE3, 0x02, 0x1F, 0x01, 0xE4, 0x02
.byte 0x20, 0x01, 0xE5, 0x02, 0x21, 0x01, 0xE6, 0x02, 0x22, 0x01, 0xE7, 0x02, 0x23, 0x01, 0xE8, 0x02
.byte 0x24, 0x01, 0xE9, 0x02, 0x25, 0x01, 0xEA, 0x02, 0x26, 0x01, 0xEB, 0x02, 0x27, 0x01, 0xEC, 0x02
.byte 0x28, 0x01, 0xED, 0x02, 0x29, 0x01, 0xEE, 0x02, 0x2A, 0x01, 0xEF, 0x02, 0x2B, 0x01, 0xF0, 0x02
.byte 0x2C, 0x01, 0xF1, 0x02, 0x2D, 0x01, 0xF2, 0x02, 0x2E, 0x01, 0xF3, 0x02, 0x2F, 0x01, 0xF4, 0x02
.byte 0x30, 0x01, 0xF5, 0x02, 0x31, 0x01, 0xF6, 0x02, 0x32, 0x01, 0xF7, 0x02, 0x33, 0x01, 0xF8, 0x02
.byte 0x34, 0x01, 0xF9, 0x02, 0x35, 0x01, 0xFA, 0x02, 0x36, 0x01, 0xFB, 0x02, 0x37, 0x01, 0xFC, 0x02
.byte 0x38, 0x01, 0xFD, 0x02, 0x39, 0x01, 0xFE, 0x02, 0x3A, 0x01, 0xFF, 0x02, 0x3B, 0x01, 0x00, 0x03
.byte 0x3C, 0x01, 0x01, 0x03, 0x3D, 0x01, 0x02, 0x03, 0x3E, 0x01, 0x03, 0x03, 0x3F, 0x01, 0x04, 0x03
.byte 0x40, 0x01, 0x05, 0x03, 0x41, 0x01, 0x06, 0x03, 0x42, 0x01, 0x07, 0x03, 0x43, 0x01, 0x08, 0x03
.byte 0x44, 0x01, 0x09, 0x03, 0x45, 0x01, 0x0A, 0x03, 0x46, 0x01, 0x0B, 0x03, 0x47, 0x01, 0x0C, 0x03
.byte 0x48, 0x01, 0x0D, 0x03, 0x49, 0x01, 0x0E, 0x03, 0x4A, 0x01, 0x0F, 0x03, 0x4B, 0x01, 0x10, 0x03
.byte 0x4C, 0x01, 0x11, 0x03, 0x4D, 0x01, 0x12, 0x03, 0x4E, 0x01, 0x13, 0x03, 0x4F, 0x01, 0x14, 0x03
.byte 0x50, 0x01, 0x15, 0x03, 0x51, 0x01, 0x16, 0x03, 0x52, 0x01, 0x17, 0x03, 0x53, 0x01, 0x18, 0x03
.byte 0x54, 0x01, 0x19, 0x03, 0x55, 0x01, 0x1A, 0x03, 0x56, 0x01, 0x1B, 0x03, 0x57, 0x01, 0x1C, 0x03
.byte 0x58, 0x01, 0x1D, 0x03, 0x59, 0x01, 0x1E, 0x03, 0x5A, 0x01, 0x1F, 0x03, 0x5B, 0x01, 0x20, 0x03
.byte 0x5C, 0x01, 0x21, 0x03, 0x5D, 0x01, 0x22, 0x03, 0x5E, 0x01, 0x23, 0x03, 0x5F, 0x01, 0x24, 0x03
.byte 0x60, 0x01, 0x25, 0x03, 0x61, 0x01, 0x26, 0x03, 0x62, 0x01, 0x27, 0x03, 0x63, 0x01, 0x28, 0x03
.byte 0x8D, 0x01, 0x29, 0x03, 0x8E, 0x01, 0x2A, 0x03, 0x8F, 0x01, 0x2B, 0x03, 0x90, 0x01, 0x2C, 0x03
.byte 0x91, 0x01, 0x2D, 0x03, 0x92, 0x01, 0x2E, 0x03, 0x93, 0x01, 0x2F, 0x03, 0x94, 0x01, 0x30, 0x03
.byte 0x95, 0x01, 0x31, 0x03, 0x96, 0x01, 0x32, 0x03, 0x97, 0x01, 0x33, 0x03, 0x98, 0x01, 0x34, 0x03
.byte 0x99, 0x01, 0x35, 0x03, 0x9A, 0x01, 0x36, 0x03, 0x9B, 0x01, 0x37, 0x03, 0x9C, 0x01, 0x38, 0x03
.byte 0x9D, 0x01, 0x39, 0x03, 0x9E, 0x01, 0x3A, 0x03, 0x9F, 0x01, 0x3B, 0x03, 0xA0, 0x01, 0x3C, 0x03
.byte 0xA1, 0x01, 0x3D, 0x03, 0xA2, 0x01, 0x3E, 0x03, 0xA3, 0x01, 0x3F, 0x03, 0xA4, 0x01, 0x40, 0x03
.byte 0xA5, 0x01, 0x41, 0x03, 0xA6, 0x01, 0x42, 0x03, 0xA7, 0x01, 0x43, 0x03, 0xA8, 0x01, 0x44, 0x03
.byte 0xA9, 0x01, 0x45, 0x03, 0xAA, 0x01, 0x46, 0x03, 0xAB, 0x01, 0x47, 0x03, 0xAC, 0x01, 0x48, 0x03
.byte 0xAD, 0x01, 0x49, 0x03, 0xAE, 0x01, 0x4A, 0x03, 0xAF, 0x01, 0x4B, 0x03, 0xB0, 0x01, 0x4C, 0x03
.byte 0xB1, 0x01, 0x4D, 0x03, 0xB2, 0x01, 0x4E, 0x03, 0xB3, 0x01, 0x4F, 0x03, 0xB4, 0x01, 0x50, 0x03
.byte 0xB5, 0x01, 0x51, 0x03, 0xB6, 0x01, 0x52, 0x03, 0xB7, 0x01, 0x53, 0x03, 0xB8, 0x01, 0x54, 0x03
.byte 0xB9, 0x01, 0x55, 0x03, 0xBA, 0x01, 0x56, 0x03, 0xBB, 0x01, 0x57, 0x03, 0xBC, 0x01, 0x58, 0x03
.byte 0xBD, 0x01, 0x59, 0x03, 0xBE, 0x01, 0x5A, 0x03, 0xBF, 0x01, 0x5B, 0x03, 0xC0, 0x01, 0x5C, 0x03
.byte 0xC1, 0x01, 0x5D, 0x03, 0xC2, 0x01, 0x5E, 0x03, 0xC3, 0x01, 0x5F, 0x03, 0xC4, 0x01, 0x60, 0x03
.byte 0xC5, 0x01, 0x61, 0x03, 0xC6, 0x01, 0x62, 0x03, 0xC7, 0x01, 0x63, 0x03, 0xC8, 0x01, 0x64, 0x03
.byte 0xC9, 0x01, 0x65, 0x03, 0xCA, 0x01, 0x66, 0x03, 0xCB, 0x01, 0x67, 0x03, 0xCC, 0x01, 0x68, 0x03
.byte 0xCD, 0x01, 0x69, 0x03, 0xCE, 0x01, 0x6A, 0x03, 0xCF, 0x01, 0x6B, 0x03, 0xD0, 0x01, 0x6C, 0x03
.byte 0xD1, 0x01, 0x6D, 0x03, 0xD2, 0x01, 0x6E, 0x03, 0xD3, 0x01, 0x6F, 0x03, 0xD4, 0x01, 0x70, 0x03
.byte 0xD5, 0x01, 0x71, 0x03, 0xD6, 0x01, 0x72, 0x03, 0xD7, 0x01, 0x73, 0x03, 0xD8, 0x01, 0x74, 0x03
.byte 0xD9, 0x01, 0x75, 0x03, 0xDA, 0x01, 0x76, 0x03, 0xDB, 0x01, 0x77, 0x03, 0xDC, 0x01, 0x78, 0x03
.byte 0xE7, 0x01, 0x79, 0x03, 0xE8, 0x01, 0x7A, 0x03, 0xE9, 0x01, 0x7B, 0x03, 0xEA, 0x01, 0x7C, 0x03
.byte 0xEB, 0x01, 0x7D, 0x03, 0xEC, 0x01, 0x7E, 0x03, 0xED, 0x01, 0x7F, 0x03, 0xEE, 0x01, 0x80, 0x03
.byte 0xEF, 0x01, 0x81, 0x03, 0xF0, 0x01, 0x82, 0x03, 0xF1, 0x01, 0x83, 0x03, 0xF2, 0x01, 0x84, 0x03
.byte 0xF3, 0x01, 0x85, 0x03, 0xF4, 0x01, 0x86, 0x03, 0xF5, 0x01, 0x87, 0x03, 0xF6, 0x01, 0x88, 0x03
.byte 0xF7, 0x01, 0x89, 0x03, 0xF8, 0x01, 0x8A, 0x03, 0xF9, 0x01, 0x8B, 0x03, 0xFA, 0x01, 0x8C, 0x03
ov49_0226A450: ; 0x0226A450
.byte 0x30, 0x54, 0x80, 0x00
ov49_0226A454: ; 0x0226A454
.byte 0x00, 0x00, 0x00, 0x02, 0x18, 0x00, 0x02, 0x02
ov49_0226A45C: ; 0x0226A45C
.byte 0x00, 0x00, 0x00, 0x02
.byte 0x18, 0x00, 0x02, 0x02
ov49_0226A464: ; 0x0226A464
.byte 0x00, 0x00, 0x00, 0x02, 0x18, 0x00, 0x02, 0x02
ov49_0226A46C: ; 0x0226A46C
.byte 0x00, 0x00, 0x00, 0x03
.byte 0x18, 0x00, 0x02, 0x03
ov49_0226A474: ; 0x0226A474
.byte 0x00, 0x00, 0x00, 0x04, 0x14, 0x00, 0x02, 0x04
ov49_0226A47C: ; 0x0226A47C
.byte 0x00, 0x00, 0x00, 0x02
.byte 0x18, 0x00, 0x01, 0x02
ov49_0226A484: ; 0x0226A484
.word ov49_022680B4
.word ov49_02268230
.word ov49_02268334
.byte 0x02, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x38, 0x00, 0x08, 0x00, 0x3C, 0x00
ov49_0226A49C: ; 0x0226A49C
.byte 0x00, 0x00, 0x00, 0x03
.byte 0x10, 0x00, 0x02, 0x03, 0x28, 0x00, 0x00, 0x03, 0x02, 0x00, 0x2C, 0x00, 0x0E, 0x00, 0x2C, 0x00
.byte 0x08, 0x00, 0x30, 0x00
ov49_0226A4B4: ; 0x0226A4B4
.byte 0x00, 0x00, 0x00, 0x04, 0x10, 0x00, 0x02, 0x04, 0x20, 0x00, 0x00, 0x04
ov49_0226A4C0: ; 0x0226A4C0
.byte 0x00, 0x00, 0x00, 0x04, 0x10, 0x00, 0x02, 0x04, 0x23, 0x00, 0x00, 0x04
ov49_0226A4CC: ; 0x0226A4CC
.word ov49_02267F94
.word ov49_0226813C
.word ov49_022682D4
ov49_0226A4D8: ; 0x0226A4D8
.byte 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
.byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xFF
.byte 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xE0, 0xFE, 0xFF, 0x00, 0xE0, 0xFF, 0xFF
.byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xFF
ov49_0226A508: ; 0x0226A508
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF
.byte 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x00, 0x80, 0xFF, 0xFF, 0x00, 0x80, 0xFF, 0xFF
.byte 0x00, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00
ov49_0226A538: ; 0x0226A538
.word ov49_02266A88
.word ov49_02266A88
.word ov49_02266A88
.word ov49_02266A88
.word ov49_02266A88
.word ov49_02266A88
.word ov49_02266AB0
.word ov49_02266AB0
.word ov49_02266AB0
.word ov49_02266678
.word ov49_02266678
.word ov49_02266678
.word ov49_02266748
.word ov49_02266754
.word ov49_02266760
.word ov49_0226676C
.word ov49_0226676C
.word ov49_0226676C
.word ov49_02266820
.word ov49_02266820
.word ov49_02266820
.word ov49_022669B0
.word ov49_022669B0
.word ov49_022669B0
.word ov49_02266978
.word ov49_02266978
.word ov49_02266978
ov49_0226A5A4: ; 0x0226A5A4
.word ov49_0226639C
.word ov49_022663EC
.word ov49_0226643C
.word ov49_0226648C
.word ov49_022664DC
.word ov49_0226652C
.word ov49_0226657C
.word ov49_022665D0
.word ov49_02266624
.word ov49_02265C68
.word ov49_02265C74
.word ov49_02265C80
.word ov49_02265CB0
.word ov49_02265CB0
.word ov49_02265CB0
.word ov49_02265C8C
.word ov49_02265C98
.word ov49_02265CA4
.word ov49_02265D10
.word ov49_02265E54
.word ov49_02266088
.word ov49_02266378
.word ov49_02266384
.word ov49_02266390
.word ov49_02266354
.word ov49_02266360
.word ov49_0226636C
ov49_0226A610: ; 0x0226A610
.byte 0x9C, 0x05, 0x00, 0x00, 0x9D, 0x05, 0x00, 0x00, 0x9E, 0x05, 0x00, 0x00, 0xA2, 0x05, 0x00, 0x00
.byte 0xA3, 0x05, 0x00, 0x00, 0xA4, 0x05, 0x00, 0x00, 0x9F, 0x05, 0x00, 0x00, 0xA0, 0x05, 0x00, 0x00
.byte 0xA1, 0x05, 0x00, 0x00, 0xAA, 0x05, 0x00, 0x00, 0xAB, 0x05, 0x00, 0x00, 0xAC, 0x05, 0x00, 0x00
.byte 0xB0, 0x05, 0x00, 0x00, 0xB1, 0x05, 0x00, 0x00, 0xB2, 0x05, 0x00, 0x00, 0xA5, 0x05, 0x00, 0x00
.byte 0xA6, 0x05, 0x00, 0x00, 0xA7, 0x05, 0x00, 0x00, 0xB6, 0x05, 0x00, 0x00, 0xB7, 0x05, 0x00, 0x00
.byte 0xB8, 0x05, 0x00, 0x00, 0xB9, 0x05, 0x00, 0x00, 0xBA, 0x05, 0x00, 0x00, 0xBB, 0x05, 0x00, 0x00
.byte 0xA9, 0x05, 0x00, 0x00, 0xA9, 0x05, 0x00, 0x00
ov49_0226A678: ; 0x0226A678
.byte 0xA9, 0x05, 0x00, 0x00
ov49_0226A67C: ; 0x0226A67C
.byte 0x00, 0x00, 0x01, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00
.byte 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00
ov49_0226A70C: ; 0x0226A70C
.byte 0x00, 0x00, 0x00, 0x11
.byte 0x00, 0x01, 0x00, 0x11, 0x00, 0x02, 0x00, 0x11, 0x01, 0x03, 0x01, 0x02, 0x01, 0x04, 0x01, 0x02
.byte 0x01, 0x05, 0x01, 0x02, 0x01, 0x06, 0x03, 0x11, 0x01, 0x07, 0x03, 0x11, 0x01, 0x08, 0x03, 0x11
ov49_0226A730: ; 0x0226A730
.byte 0x05, 0x0B, 0x06, 0x11
ov49_0226A734: ; 0x0226A734
.byte 0x03, 0x09, 0x04, 0x11
ov49_0226A738: ; 0x0226A738
.byte 0x04, 0x0A, 0x05, 0x11
ov49_0226A73C: ; 0x0226A73C
.byte 0x06, 0x0C, 0x07, 0x11
.byte 0x07, 0x0D, 0x08, 0x11, 0x08, 0x0E, 0x09, 0x11, 0x09, 0x0F, 0x0A, 0x11
ov49_0226A74C: ; 0x0226A74C
.byte 0x0A, 0x10, 0x0B, 0x11
ov49_0226A750: ; 0x0226A750
.byte 0x0B, 0x11, 0x0C, 0x11
ov49_0226A754: ; 0x0226A754
.byte 0x0C, 0x12, 0x0D, 0x11, 0x02, 0x13, 0x11, 0x11, 0x02, 0x14, 0x11, 0x11
.byte 0x02, 0x15, 0x11, 0x11, 0x02, 0x16, 0x11, 0x11, 0x02, 0x17, 0x11, 0x11, 0x02, 0x18, 0x11, 0x11
.byte 0x02, 0x19, 0x11, 0x11, 0x02, 0x1A, 0x11, 0x11, 0x02, 0x1B, 0x11, 0x11, 0x02, 0x1C, 0x11, 0x11
.byte 0x02, 0x1D, 0x11, 0x11, 0x02, 0x1E, 0x11, 0x11, 0x02, 0x1F, 0x11, 0x11, 0x02, 0x20, 0x11, 0x11
.byte 0x02, 0x21, 0x11, 0x11, 0x02, 0x22, 0x11, 0x11, 0x02, 0x23, 0x11, 0x11, 0x02, 0x24, 0x11, 0x11
.byte 0x0D, 0x25, 0x0E, 0x11, 0x0E, 0x26, 0x0F, 0x11
ov49_0226A7A8: ; 0x0226A7A8
.byte 0x13, 0x14, 0x13, 0x14, 0x13, 0x14, 0x13, 0x14
.byte 0x13, 0x14, 0x13, 0x14, 0x13, 0x14, 0x13, 0x14
ov49_0226A7B8: ; 0x0226A7B8
.byte 0x13, 0x14, 0x15, 0x13, 0x1C, 0x1D, 0x1B, 0x19
.byte 0x19, 0x1D, 0x14, 0x13, 0x1D, 0x1B, 0x17, 0x13
ov49_0226A7C8: ; 0x0226A7C8
.byte 0x13, 0x14, 0x1F, 0x23, 0x20, 0x22, 0x1B, 0x1E
.byte 0x24, 0x1D, 0x18, 0x21, 0x1E, 0x15, 0x22, 0x1F
ov49_0226A7D8: ; 0x0226A7D8
.byte 0xCE, 0x39, 0x94, 0x52, 0xFF, 0x7F, 0x08, 0x21
ov49_0226A7E0: ; 0x0226A7E0
.byte 0xF7, 0x66, 0x10, 0x42, 0xCE, 0x39, 0x94, 0x52, 0x10, 0x42, 0x4A, 0x41, 0x10, 0x42, 0xCE, 0x39
.byte 0x94, 0x52, 0x10, 0x42, 0x08, 0x31, 0x10, 0x42, 0xCE, 0x39, 0x94, 0x52, 0x10, 0x42, 0xA5, 0x20
.byte 0x10, 0x42, 0xAD, 0x39, 0x94, 0x52, 0x10, 0x42, 0x63, 0x1C, 0x10, 0x42, 0x4A, 0x31, 0x94, 0x52
.byte 0xCE, 0x41, 0x00, 0x18, 0x10, 0x42, 0x08, 0x29, 0x94, 0x52, 0x8C, 0x41
ov49_0226A81C: ; 0x0226A81C
.byte 0x04, 0x00, 0x00, 0x00
ov49_0226A820: ; 0x0226A820
.byte 0x03, 0x00, 0x00, 0x00
ov49_0226A824: ; 0x0226A824
.byte 0x0F, 0x10, 0x00, 0x00
ov49_0226A828: ; 0x0226A828
.byte 0x09, 0x0A, 0x00, 0x00
ov49_0226A82C: ; 0x0226A82C
.byte 0x0B, 0x0C, 0x00, 0x00
ov49_0226A830: ; 0x0226A830
.byte 0x01, 0x02, 0x00, 0x00
ov49_0226A834: ; 0x0226A834
.byte 0x05, 0x0D, 0x06, 0x07, 0x0E, 0x08, 0x00, 0x00
ov49_0226A83C: ; 0x0226A83C
.byte 0x00
ov49_0226A83D: ; 0x0226A83D
.byte 0x05, 0x01, 0x06
.byte 0x02, 0x00, 0x03, 0x01, 0x04, 0x02, 0x05, 0x03, 0x06, 0x04, 0x00, 0x00
ov49_0226A84C: ; 0x0226A84C
.word ov49_02268B04
.word ov49_02268B04
.word ov49_02268B08
.word ov49_02268B0C
.word ov49_02268B90
.word ov49_02268C2C
ov49_0226A864: ; 0x0226A864
.byte 0x0A, 0x00, 0x00, 0x00
ov49_0226A868: ; 0x0226A868
.byte 0x00, 0x10, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00
.byte 0x00, 0x10, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
ov49_0226A87C: ; 0x0226A87C
.word ov49_02268CAC
.word ov49_02268CAC
.word ov49_02268CBC
.word ov49_02268CCC
.word ov49_02268CDC
.word ov49_02268CEC
ov49_0226A894: ; 0x0226A894
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
ov49_0226A8B4: ; 0x0226A8B4
.byte 0x06, 0x0D, 0x05, 0x0B, 0x07, 0x0E, 0x08, 0x0C, 0x01, 0x00, 0x02, 0x0A
.byte 0x10, 0x09, 0x04, 0x03, 0x0F, 0x00, 0x00, 0x00
ov49_0226A8C8: ; 0x0226A8C8
.byte 0x3F, 0x3E, 0x3D, 0x00
ov49_0226A8CC: ; 0x0226A8CC
.word ov49_022694B4
.word ov49_022694B4
ov49_0226A8D4: ; 0x0226A8D4
.word ov49_02269474
.word ov49_02269494
ov49_0226A8DC: ; 0x0226A8DC
.byte 0xFF, 0x00, 0x06, 0x00
.byte 0xFE, 0xFF, 0xCB, 0x05, 0xCE, 0x05, 0xC5, 0x05, 0x89, 0x01, 0x82, 0x00, 0xCB, 0x05, 0xCD, 0x05
.byte 0xCF, 0x05, 0xCB, 0x05, 0x19, 0x00, 0xCE, 0x01, 0xFE, 0xFF, 0xCB, 0x05, 0xFE, 0xFF, 0xD0, 0x05
.byte 0x01, 0x00, 0xC7, 0x01, 0xD1, 0x05, 0xCC, 0x05, 0xC5, 0x05, 0xCB, 0x05, 0x97, 0x00, 0x97, 0x00
.byte 0xFE, 0xFF, 0xCB, 0x05, 0xD2, 0x05, 0xCB, 0x05
; 0x0226A918