Files
pokediamond/arm9/modules/41/asm/module_41.s
2020-05-29 09:40:48 -04:00

2062 lines
37 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD41_02254840
MOD41_02254840: ; 0x02254840
ldr r3, _02254848 ; =MOD20_02252978
ldr r0, _0225484C ; =MOD41_02254854
ldr r1, _02254850 ; =MOD41_02254AD8
bx r3
.align 2, 0
_02254848: .word MOD20_02252978
_0225484C: .word MOD41_02254854
_02254850: .word MOD41_02254AD8
thumb_func_end MOD41_02254840
thumb_func_start MOD41_02254854
MOD41_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
mov r0, #8
mov r1, #0x90
add r7, r2, #0
str r3, [sp]
bl AllocFromHeap
add r4, r0, #0
beq _02254892
ldr r3, [sp]
add r1, r6, #0
add r2, r7, #0
bl MOD41_02254990
cmp r0, #0
beq _0225488C
ldr r0, _02254898 ; =MOD41_02254A88
add r1, r4, #0
mov r2, #1
bl FUN_0200CA44
cmp r0, #0
beq _0225488C
str r4, [r5]
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_0225488C:
add r0, r4, #0
bl FreeToHeap
_02254892:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
nop
_02254898: .word MOD41_02254A88
thumb_func_end MOD41_02254854
thumb_func_start MOD41_0225489C
MOD41_0225489C: ; 0x0225489C
push {r4, r5}
mov r4, #0
add r5, r0, #0
mov r3, #1
add r2, r4, #0
_022548A6:
add r1, r0, r4
str r3, [r5, #0x5c]
add r1, #0x4c
add r4, r4, #1
add r5, r5, #4
strb r2, [r1]
cmp r4, #3
blt _022548A6
str r3, [r0, #0x44]
pop {r4, r5}
bx lr
thumb_func_end MOD41_0225489C
thumb_func_start MOD41_022548BC
MOD41_022548BC: ; 0x022548BC
lsl r3, r1, #2
add r3, r0, r3
str r2, [r3, #0x5c]
cmp r2, #0
beq _022548CA
mov r2, #0
b _022548CC
_022548CA:
mov r2, #1
_022548CC:
add r1, r0, r1
add r1, #0x4c
strb r2, [r1]
mov r1, #1
str r1, [r0, #0x44]
bx lr
thumb_func_end MOD41_022548BC
thumb_func_start MOD41_022548D8
MOD41_022548D8: ; 0x022548D8
lsl r3, r1, #2
add r3, r0, r3
ldr r3, [r3, #0x5c]
cmp r3, #0
beq _022548EC
add r1, r0, r1
add r1, #0x4c
strb r2, [r1]
mov r1, #1
str r1, [r0, #0x44]
_022548EC:
bx lr
.align 2, 0
thumb_func_end MOD41_022548D8
thumb_func_start MOD41_022548F0
MOD41_022548F0: ; 0x022548F0
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #8]
add r4, r1, #0
bl MOD41_0225578C
str r0, [r4, #0x10]
ldr r0, [r5, #4]
add r1, r4, #0
mov r2, #0x48
bl FUN_020893F0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD41_022548F0
thumb_func_start MOD41_0225490C
MOD41_0225490C: ; 0x0225490C
push {r4, lr}
add r4, r0, #0
add r1, r4, #0
ldr r0, [r4, #4]
add r1, #0x48
mov r2, #0x48
bl FUN_02089418
cmp r0, #0
beq _0225494C
add r0, r4, #0
add r0, #0x8c
ldr r0, [r0]
cmp r0, #2
bne _02254952
add r0, r4, #0
bl MOD41_02255108
add r0, r4, #0
bl MOD41_022550F8
cmp r0, #0
beq _02254952
add r0, r4, #0
mov r1, #4
add r0, #0x8c
str r1, [r0]
mov r0, #0
str r0, [r4, #0x50]
mov r0, #2
str r0, [r4, #0x54]
pop {r4, pc}
_0225494C:
add r0, r4, #0
bl MOD41_02254954
_02254952:
pop {r4, pc}
thumb_func_end MOD41_0225490C
thumb_func_start MOD41_02254954
MOD41_02254954: ; 0x02254954
push {r4, lr}
add r4, r0, #0
add r1, r4, #0
add r3, r4, #0
mov r2, #1
add r1, #0x8c
str r2, [r1]
mov r1, #0
add r3, #0x48
strb r1, [r3]
add r3, r4, #0
add r3, #0x49
strb r1, [r3]
add r3, r4, #0
add r3, #0x4a
strb r1, [r3]
add r3, r4, #0
add r3, #0x4b
strb r1, [r3]
str r2, [r4, #0x50]
str r1, [r4, #0x54]
str r1, [r4, #0x58]
bl MOD41_0225489C
add r0, r4, #0
mov r1, #1
mov r2, #0
bl MOD41_022548BC
pop {r4, pc}
thumb_func_end MOD41_02254954
thumb_func_start MOD41_02254990
MOD41_02254990: ; 0x02254990
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
str r3, [r5, #4]
bl MOD41_0225490C
add r0, r5, #0
add r1, r5, #0
add r0, #8
add r1, #0x48
add r2, r6, #0
bl MOD41_0225524C
cmp r0, #0
beq _02254A28
mov r0, #0
strb r0, [r5]
strb r0, [r5, #1]
strb r0, [r5, #3]
mov r0, #8
str r0, [sp]
ldr r0, _02254A30 ; =0x022557B0
ldr r2, _02254A34 ; =MOD41_02254A58
mov r1, #0xb
add r3, r5, #0
bl MOD20_02254130
str r0, [r5, #0x10]
mov r0, #0
str r0, [r5, #0x18]
ldr r0, [r5, #0x10]
mov r1, #3
mov r2, #4
bl MOD20_022542C0
ldr r0, [r5, #0x10]
mov r1, #5
mov r2, #4
bl MOD20_022542C0
mov r1, #4
ldr r0, [r5, #0x10]
add r2, r1, #0
bl MOD20_022542C0
ldr r0, [r5, #0x10]
mov r1, #6
mov r2, #4
bl MOD20_022542C0
ldr r0, [r5, #0x10]
mov r1, #7
mov r2, #4
bl MOD20_022542C0
ldr r0, [r5, #0x10]
mov r1, #9
mov r2, #4
bl MOD20_022542C0
ldr r0, [r5, #0x10]
mov r1, #8
mov r2, #4
bl MOD20_022542C0
ldr r0, [r5, #0x10]
mov r1, #0xa
mov r2, #4
bl MOD20_022542C0
add sp, #4
str r4, [r5, #0xc]
mov r0, #1
pop {r3, r4, r5, r6, pc}
_02254A28:
mov r0, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
_02254A30: .word 0x022557B0
_02254A34: .word MOD41_02254A58
thumb_func_end MOD41_02254990
thumb_func_start MOD41_02254A38
MOD41_02254A38: ; 0x02254A38
push {r4, lr}
add r4, r0, #0
add r1, r4, #0
add r1, #0x48
bl MOD41_022548F0
ldr r0, [r4, #0x10]
bl MOD20_02254198
ldr r0, [r4, #8]
bl MOD41_0225528C
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
thumb_func_end MOD41_02254A38
thumb_func_start MOD41_02254A58
MOD41_02254A58: ; 0x02254A58
push {r3, lr}
add r2, r0, #0
str r2, [r3, #0x14]
str r1, [r3, #0x18]
cmp r2, #3
bhs _02254A84
cmp r1, #1
bne _02254A74
add r1, r2, #0
add r0, r3, #0
mov r2, #1
bl MOD41_022548D8
pop {r3, pc}
_02254A74:
sub r0, r1, #2
cmp r0, #1
bhi _02254A84
add r1, r2, #0
add r0, r3, #0
mov r2, #0
bl MOD41_022548D8
_02254A84:
pop {r3, pc}
.align 2, 0
thumb_func_end MOD41_02254A58
thumb_func_start MOD41_02254A88
MOD41_02254A88: ; 0x02254A88
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldrb r0, [r4]
cmp r0, #7
bhs _02254AD0
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x10]
bl MOD20_02252C14
ldr r0, [r4, #0x44]
cmp r0, #0
beq _02254AAE
ldr r0, [r4, #8]
mov r1, #4
bl MOD41_022553A4
mov r0, #0
str r0, [r4, #0x44]
_02254AAE:
ldrb r1, [r4]
add r0, r4, #0
lsl r2, r1, #2
ldr r1, _02254AD4 ; =0x02255794
ldr r1, [r1, r2]
blx r1
cmp r0, #0
beq _02254AD0
add r0, r4, #0
bl MOD41_02254A38
add r0, r5, #0
bl FUN_0200CAB4
ldr r0, [r4, #0xc]
bl MOD20_022529A0
_02254AD0:
pop {r3, r4, r5, pc}
nop
_02254AD4: .word 0x02255794
thumb_func_end MOD41_02254A88
thumb_func_start MOD41_02254AD8
MOD41_02254AD8: ; 0x02254AD8
mov r1, #1
strb r1, [r0, #3]
bx lr
.align 2, 0
thumb_func_end MOD41_02254AD8
thumb_func_start MOD41_02254AE0
MOD41_02254AE0: ; 0x02254AE0
ldrb r3, [r0, #3]
ldrb r2, [r0]
cmp r3, #0
beq _02254AEA
mov r1, #6
_02254AEA:
strb r1, [r0]
cmp r1, #0
beq _02254AFA
cmp r1, #6
beq _02254AFA
add r3, r0, #0
add r3, #0x8c
str r2, [r3]
_02254AFA:
cmp r1, #6
bhi _02254B50
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_02254B0A: ; jump table
.short _02254B50 - _02254B0A - 2 ; case 0
.short _02254B18 - _02254B0A - 2 ; case 1
.short _02254B22 - _02254B0A - 2 ; case 2
.short _02254B2C - _02254B0A - 2 ; case 3
.short _02254B36 - _02254B0A - 2 ; case 4
.short _02254B40 - _02254B0A - 2 ; case 5
.short _02254B4A - _02254B0A - 2 ; case 6
_02254B18:
mov r1, #1
str r1, [r0, #0x50]
mov r1, #0
str r1, [r0, #0x54]
b _02254B50
_02254B22:
mov r1, #0
str r1, [r0, #0x50]
mov r1, #1
str r1, [r0, #0x54]
b _02254B50
_02254B2C:
mov r1, #0
str r1, [r0, #0x50]
mov r1, #1
str r1, [r0, #0x54]
b _02254B50
_02254B36:
mov r1, #0
str r1, [r0, #0x50]
mov r1, #2
str r1, [r0, #0x54]
b _02254B50
_02254B40:
mov r1, #0
str r1, [r0, #0x50]
mov r1, #3
str r1, [r0, #0x54]
b _02254B50
_02254B4A:
add r1, r0, #0
add r1, #0x8c
str r2, [r1]
_02254B50:
mov r1, #0
strb r1, [r0, #1]
bx lr
.align 2, 0
thumb_func_end MOD41_02254AE0
thumb_func_start MOD41_02254B58
MOD41_02254B58: ; 0x02254B58
push {r4, lr}
add r4, r0, #0
ldrb r0, [r4, #1]
cmp r0, #0
beq _02254B68
cmp r0, #1
beq _02254B78
b _02254B94
_02254B68:
ldr r0, [r4, #8]
mov r1, #0
bl MOD41_022553A4
ldrb r0, [r4, #1]
add r0, r0, #1
strb r0, [r4, #1]
b _02254B94
_02254B78:
ldr r0, [r4, #8]
mov r1, #0
bl MOD41_022553C8
cmp r0, #0
beq _02254B94
ldr r0, [r4, #0xc]
bl MOD20_0225298C
add r0, r4, #0
add r4, #0x8c
ldr r1, [r4]
bl MOD41_02254AE0
_02254B94:
mov r0, #0
pop {r4, pc}
thumb_func_end MOD41_02254B58
thumb_func_start MOD41_02254B98
MOD41_02254B98: ; 0x02254B98
push {r4, lr}
add r4, r0, #0
ldrb r1, [r4, #3]
cmp r1, #0
beq _02254BAC
mov r1, #6
bl MOD41_02254AE0
mov r0, #0
pop {r4, pc}
_02254BAC:
ldr r0, [r4, #8]
bl MOD41_022553D4
cmp r0, #0
bne _02254BBA
mov r0, #0
pop {r4, pc}
_02254BBA:
ldr r1, [r4, #0x18]
cmp r1, #1
bne _02254C36
ldr r0, [r4, #0x14]
cmp r0, #2
bhi _02254C36
mov r0, #0
str r0, [r4, #0x18]
ldr r0, [r4, #0x14]
cmp r0, #0
beq _02254BEE
cmp r0, #1
beq _02254C2C
cmp r0, #2
bne _02254C32
add r0, r4, #0
bl MOD41_02255170
ldr r0, [r4, #8]
mov r1, #5
bl MOD41_022553A4
ldr r0, _02254D18 ; =0x00000663
bl MOD20_02252B28
b _02254C32
_02254BEE:
ldr r0, _02254D18 ; =0x00000663
bl MOD20_02252B28
add r0, r4, #0
bl MOD41_0225504C
mov r3, #0
mov r2, #0
eor r1, r3
eor r0, r2
orr r0, r1
beq _02254C32
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl MOD41_022548BC
mov r1, #1
add r0, r4, #0
add r2, r1, #0
bl MOD41_022548BC
ldr r0, [r4, #8]
mov r1, #3
bl MOD41_022553A4
add r0, r4, #0
mov r1, #2
bl MOD41_02254AE0
b _02254C32
_02254C2C:
ldr r0, _02254D1C ; =0x0000066E
bl MOD20_02252B28
_02254C32:
mov r0, #0
pop {r4, pc}
_02254C36:
cmp r1, #1
beq _02254C3E
cmp r1, #7
bne _02254D12
_02254C3E:
ldr r1, [r4, #0x14]
add r0, r4, #0
add r0, #0x48
cmp r1, #0xa
bhi _02254D06
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_02254C54: ; jump table
.short _02254D06 - _02254C54 - 2 ; case 0
.short _02254D06 - _02254C54 - 2 ; case 1
.short _02254D06 - _02254C54 - 2 ; case 2
.short _02254C6A - _02254C54 - 2 ; case 3
.short _02254C7C - _02254C54 - 2 ; case 4
.short _02254C90 - _02254C54 - 2 ; case 5
.short _02254CA4 - _02254C54 - 2 ; case 6
.short _02254CB8 - _02254C54 - 2 ; case 7
.short _02254CCC - _02254C54 - 2 ; case 8
.short _02254CE0 - _02254C54 - 2 ; case 9
.short _02254CF4 - _02254C54 - 2 ; case 10
_02254C6A:
mov r1, #0
ldrsb r2, [r0, r1]
add r2, r2, #1
strb r2, [r0]
ldrsb r2, [r0, r1]
cmp r2, #9
ble _02254D06
strb r1, [r0]
b _02254D06
_02254C7C:
mov r1, #1
ldrsb r2, [r0, r1]
add r2, r2, #1
strb r2, [r0, #1]
ldrsb r1, [r0, r1]
cmp r1, #9
ble _02254D06
mov r1, #0
strb r1, [r0, #1]
b _02254D06
_02254C90:
mov r1, #0
ldrsb r2, [r0, r1]
sub r2, r2, #1
strb r2, [r0]
ldrsb r1, [r0, r1]
cmp r1, #0
bge _02254D06
mov r1, #9
strb r1, [r0]
b _02254D06
_02254CA4:
mov r1, #1
ldrsb r2, [r0, r1]
sub r2, r2, #1
strb r2, [r0, #1]
ldrsb r1, [r0, r1]
cmp r1, #0
bge _02254D06
mov r1, #9
strb r1, [r0, #1]
b _02254D06
_02254CB8:
mov r1, #2
ldrsb r2, [r0, r1]
add r2, r2, #1
strb r2, [r0, #2]
ldrsb r1, [r0, r1]
cmp r1, #5
ble _02254D06
mov r1, #0
strb r1, [r0, #2]
b _02254D06
_02254CCC:
mov r1, #3
ldrsb r2, [r0, r1]
add r2, r2, #1
strb r2, [r0, #3]
ldrsb r1, [r0, r1]
cmp r1, #9
ble _02254D06
mov r1, #0
strb r1, [r0, #3]
b _02254D06
_02254CE0:
mov r1, #2
ldrsb r2, [r0, r1]
sub r2, r2, #1
strb r2, [r0, #2]
ldrsb r1, [r0, r1]
cmp r1, #0
bge _02254D06
mov r1, #5
strb r1, [r0, #2]
b _02254D06
_02254CF4:
mov r1, #3
ldrsb r2, [r0, r1]
sub r2, r2, #1
strb r2, [r0, #3]
ldrsb r1, [r0, r1]
cmp r1, #0
bge _02254D06
mov r1, #9
strb r1, [r0, #3]
_02254D06:
ldr r0, [r4, #8]
mov r1, #5
bl MOD41_022553A4
mov r0, #0
str r0, [r4, #0x18]
_02254D12:
mov r0, #0
pop {r4, pc}
nop
_02254D18: .word 0x00000663
_02254D1C: .word 0x0000066E
thumb_func_end MOD41_02254B98
thumb_func_start MOD41_02254D20
MOD41_02254D20: ; 0x02254D20
push {r4, lr}
add r4, r0, #0
ldrb r1, [r4, #3]
cmp r1, #0
beq _02254D34
mov r1, #6
bl MOD41_02254AE0
mov r0, #0
pop {r4, pc}
_02254D34:
bl MOD41_02255108
cmp r0, #0
beq _02254D6C
ldr r0, [r4, #8]
mov r1, #5
bl MOD41_022553A4
add r0, r4, #0
bl MOD41_022550F8
cmp r0, #0
beq _02254D6C
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl MOD41_022548BC
ldr r0, [r4, #8]
mov r1, #6
bl MOD41_022553A4
add r0, r4, #0
mov r1, #4
bl MOD41_02254AE0
mov r0, #0
pop {r4, pc}
_02254D6C:
ldr r0, [r4, #0x18]
cmp r0, #1
bne _02254E00
mov r0, #0
str r0, [r4, #0x18]
ldr r0, [r4, #0x14]
cmp r0, #0
beq _02254D86
cmp r0, #1
beq _02254D8E
cmp r0, #2
beq _02254DC0
b _02254E00
_02254D86:
ldr r0, _02254E04 ; =0x0000066E
bl MOD20_02252B28
b _02254E00
_02254D8E:
ldr r0, _02254E08 ; =0x00000663
bl MOD20_02252B28
add r0, r4, #0
mov r1, #1
mov r2, #0
bl MOD41_022548BC
add r0, r4, #0
mov r1, #0
mov r2, #1
bl MOD41_022548BC
add r0, r4, #0
bl MOD41_022550BC
ldr r0, [r4, #8]
mov r1, #4
bl MOD41_022553A4
add r0, r4, #0
mov r1, #3
bl MOD41_02254AE0
b _02254E00
_02254DC0:
ldr r0, _02254E08 ; =0x00000663
bl MOD20_02252B28
add r0, r4, #0
mov r1, #0
mov r2, #1
bl MOD41_022548BC
add r0, r4, #0
mov r1, #1
mov r2, #0
bl MOD41_022548BC
add r0, r4, #0
bl MOD41_02255170
ldr r0, [r4, #8]
mov r1, #4
bl MOD41_022553A4
ldr r0, [r4, #8]
mov r1, #5
bl MOD41_022553A4
ldr r0, [r4, #8]
mov r1, #2
bl MOD41_022553A4
add r0, r4, #0
mov r1, #1
bl MOD41_02254AE0
_02254E00:
mov r0, #0
pop {r4, pc}
.align 2, 0
_02254E04: .word 0x0000066E
_02254E08: .word 0x00000663
thumb_func_end MOD41_02254D20
thumb_func_start MOD41_02254E0C
MOD41_02254E0C: ; 0x02254E0C
push {r4, lr}
add r4, r0, #0
ldrb r1, [r4, #3]
cmp r1, #0
beq _02254E20
mov r1, #6
bl MOD41_02254AE0
mov r0, #0
pop {r4, pc}
_02254E20:
ldr r0, [r4, #0x18]
cmp r0, #1
bne _02254EAC
mov r0, #0
str r0, [r4, #0x18]
ldr r0, [r4, #0x14]
cmp r0, #0
beq _02254E3A
cmp r0, #1
beq _02254E64
cmp r0, #2
beq _02254E6C
b _02254EAC
_02254E3A:
ldr r0, _02254EB0 ; =0x00000663
bl MOD20_02252B28
mov r1, #1
add r0, r4, #0
add r2, r1, #0
bl MOD41_022548BC
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl MOD41_022548BC
add r0, r4, #0
bl MOD41_022550D0
add r0, r4, #0
mov r1, #2
bl MOD41_02254AE0
b _02254EAC
_02254E64:
ldr r0, _02254EB4 ; =0x0000066E
bl MOD20_02252B28
b _02254EAC
_02254E6C:
ldr r0, _02254EB0 ; =0x00000663
bl MOD20_02252B28
add r0, r4, #0
mov r1, #0
mov r2, #1
bl MOD41_022548BC
add r0, r4, #0
mov r1, #1
mov r2, #0
bl MOD41_022548BC
add r0, r4, #0
bl MOD41_02255170
ldr r0, [r4, #8]
mov r1, #4
bl MOD41_022553A4
ldr r0, [r4, #8]
mov r1, #5
bl MOD41_022553A4
ldr r0, [r4, #8]
mov r1, #2
bl MOD41_022553A4
add r0, r4, #0
mov r1, #1
bl MOD41_02254AE0
_02254EAC:
mov r0, #0
pop {r4, pc}
.align 2, 0
_02254EB0: .word 0x00000663
_02254EB4: .word 0x0000066E
thumb_func_end MOD41_02254E0C
thumb_func_start MOD41_02254EB8
MOD41_02254EB8: ; 0x02254EB8
push {r4, lr}
add r4, r0, #0
ldrb r1, [r4, #3]
cmp r1, #0
beq _02254ECC
mov r1, #6
bl MOD41_02254AE0
mov r0, #0
pop {r4, pc}
_02254ECC:
ldr r0, [r4, #0x18]
cmp r0, #1
bne _02254F52
mov r0, #0
str r0, [r4, #0x18]
ldr r0, [r4, #0x14]
cmp r0, #0
beq _02254EE6
cmp r0, #1
beq _02254EEE
cmp r0, #2
beq _02254F20
b _02254F52
_02254EE6:
ldr r0, _02254F58 ; =0x0000066E
bl MOD20_02252B28
b _02254F52
_02254EEE:
ldr r0, _02254F5C ; =0x00000663
bl MOD20_02252B28
add r0, r4, #0
mov r1, #0
mov r2, #1
bl MOD41_022548BC
add r0, r4, #0
mov r1, #1
mov r2, #0
bl MOD41_022548BC
ldr r0, [r4, #8]
mov r1, #7
bl MOD41_022553A4
add r0, r4, #0
mov r1, #5
bl MOD41_02254AE0
ldrb r0, [r4, #1]
add r0, r0, #1
strb r0, [r4, #1]
b _02254F52
_02254F20:
ldr r0, _02254F5C ; =0x00000663
bl MOD20_02252B28
add r0, r4, #0
mov r1, #0
mov r2, #1
bl MOD41_022548BC
add r0, r4, #0
mov r1, #1
mov r2, #0
bl MOD41_022548BC
ldr r0, [r4, #8]
mov r1, #7
bl MOD41_022553A4
ldr r0, [r4, #8]
mov r1, #2
bl MOD41_022553A4
add r0, r4, #0
mov r1, #1
bl MOD41_02254AE0
_02254F52:
mov r0, #0
pop {r4, pc}
nop
_02254F58: .word 0x0000066E
_02254F5C: .word 0x00000663
thumb_func_end MOD41_02254EB8
thumb_func_start MOD41_02254F60
MOD41_02254F60: ; 0x02254F60
push {r4, lr}
add r4, r0, #0
ldrb r1, [r4, #3]
cmp r1, #0
beq _02254F74
mov r1, #6
bl MOD41_02254AE0
mov r0, #0
pop {r4, pc}
_02254F74:
ldr r0, [r4, #0x18]
cmp r0, #1
bne _0225500A
mov r0, #0
str r0, [r4, #0x18]
ldr r0, [r4, #0x14]
cmp r0, #0
beq _02254F8E
cmp r0, #1
beq _02254FBA
cmp r0, #2
beq _02254FC2
b _0225500A
_02254F8E:
ldr r0, _02255010 ; =0x00000663
bl MOD20_02252B28
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl MOD41_022548BC
mov r1, #1
add r0, r4, #0
add r2, r1, #0
bl MOD41_022548BC
ldr r0, [r4, #8]
mov r1, #6
bl MOD41_022553A4
add r0, r4, #0
mov r1, #4
bl MOD41_02254AE0
b _0225500A
_02254FBA:
ldr r0, _02255014 ; =0x0000066E
bl MOD20_02252B28
b _0225500A
_02254FC2:
ldr r0, _02255010 ; =0x00000663
bl MOD20_02252B28
add r0, r4, #0
mov r1, #0
mov r2, #1
bl MOD41_022548BC
add r0, r4, #0
mov r1, #1
mov r2, #0
bl MOD41_022548BC
add r0, r4, #0
bl MOD41_02255170
ldr r0, [r4, #8]
mov r1, #7
bl MOD41_022553A4
ldr r0, [r4, #8]
mov r1, #4
bl MOD41_022553A4
ldr r0, [r4, #8]
mov r1, #5
bl MOD41_022553A4
ldr r0, [r4, #8]
mov r1, #2
bl MOD41_022553A4
add r0, r4, #0
mov r1, #1
bl MOD41_02254AE0
_0225500A:
mov r0, #0
pop {r4, pc}
nop
_02255010: .word 0x00000663
_02255014: .word 0x0000066E
thumb_func_end MOD41_02254F60
thumb_func_start MOD41_02255018
MOD41_02255018: ; 0x02255018
push {r4, lr}
add r4, r0, #0
ldrb r0, [r4, #1]
cmp r0, #0
beq _02255028
cmp r0, #1
beq _02255038
b _02255046
_02255028:
ldr r0, [r4, #8]
mov r1, #1
bl MOD41_022553A4
ldrb r0, [r4, #1]
add r0, r0, #1
strb r0, [r4, #1]
b _02255046
_02255038:
ldr r0, [r4, #8]
bl MOD41_022553D4
cmp r0, #0
beq _02255046
mov r0, #1
pop {r4, pc}
_02255046:
mov r0, #0
pop {r4, pc}
.align 2, 0
thumb_func_end MOD41_02255018
thumb_func_start MOD41_0225504C
MOD41_0225504C: ; 0x0225504C
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r5, #0
add r4, #0x48
bl FUN_02020BF4
str r0, [r5, #0x68]
str r1, [r5, #0x6c]
mov r2, #0
str r2, [r5, #0x70]
add r0, r5, #0
str r2, [r5, #0x74]
mov r1, #1
add r0, #0x88
str r1, [r0]
str r2, [r5, #0x78]
str r2, [r5, #0x7c]
mov r2, #2
ldrsb r3, [r4, r2]
mov r0, #3
ldrsb r0, [r4, r0]
add r6, r3, #0
ldrsb r3, [r4, r1]
mov r1, #0x48
mov r2, #0xa
mul r6, r2
ldrsb r1, [r5, r1]
add r0, r0, r6
mul r2, r1
add r2, r3, r2
mov r1, #0x3c
mul r1, r2
add r2, r0, r1
add r0, r5, #0
add r0, #0x80
str r2, [r0]
add r0, r5, #0
asr r1, r2, #0x1f
add r0, #0x84
str r1, [r0]
add r1, r5, #0
add r2, r5, #0
add r1, #0x80
add r2, #0x84
ldr r1, [r1]
ldr r2, [r2]
add r0, r5, #0
bl MOD41_02255190
add r0, r5, #0
add r0, #0x80
add r5, #0x84
ldr r0, [r0]
ldr r1, [r5]
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD41_0225504C
thumb_func_start MOD41_022550BC
MOD41_022550BC: ; 0x022550BC
push {r4, lr}
add r4, r0, #0
mov r1, #0
add r0, #0x88
str r1, [r0]
bl FUN_02020BF4
str r0, [r4, #0x70]
str r1, [r4, #0x74]
pop {r4, pc}
thumb_func_end MOD41_022550BC
thumb_func_start MOD41_022550D0
MOD41_022550D0: ; 0x022550D0
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
bl FUN_02020BF4
add r5, r4, #0
add r5, #0x68
ldr r7, [r4, #0x70]
ldr r2, [r4, #0x68]
ldr r6, [r4, #0x74]
sub r0, r0, r7
sbc r1, r6
ldr r3, [r5, #4]
add r0, r2, r0
adc r3, r1
str r0, [r4, #0x68]
str r3, [r5, #4]
mov r0, #1
add r4, #0x88
str r0, [r4]
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD41_022550D0
thumb_func_start MOD41_022550F8
MOD41_022550F8: ; 0x022550F8
add r0, #0x88
ldr r0, [r0]
cmp r0, #0
bne _02255104
mov r0, #1
bx lr
_02255104:
mov r0, #0
bx lr
thumb_func_end MOD41_022550F8
thumb_func_start MOD41_02255108
MOD41_02255108: ; 0x02255108
push {r4, r5, r6, lr}
add r4, r0, #0
add r0, #0x88
ldr r0, [r0]
cmp r0, #0
beq _0225516A
bl FUN_02020BF4
ldr r3, [r4, #0x68]
ldr r2, [r4, #0x6c]
sub r0, r0, r3
sbc r1, r2
bl FUN_02020C14
add r5, r0, #0
add r0, r4, #0
add r0, #0x80
add r6, r1, #0
ldr r1, [r0]
add r0, r4, #0
add r0, #0x84
ldr r2, [r0]
sub r0, r5, r1
mov ip, r6
mov r0, ip
sbc r0, r2
blo _02255148
add r0, r4, #0
bl MOD41_02255170
mov r0, #1
pop {r4, r5, r6, pc}
_02255148:
ldr r3, [r4, #0x78]
ldr r0, [r4, #0x7c]
eor r3, r5
eor r0, r6
orr r0, r3
beq _02255166
add r0, r4, #0
sub r1, r1, r5
sbc r2, r6
bl MOD41_02255190
str r5, [r4, #0x78]
str r6, [r4, #0x7c]
mov r0, #1
pop {r4, r5, r6, pc}
_02255166:
mov r0, #0
pop {r4, r5, r6, pc}
_0225516A:
mov r0, #0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD41_02255108
thumb_func_start MOD41_02255170
MOD41_02255170: ; 0x02255170
add r1, r0, #0
mov r2, #0
add r1, #0x88
str r2, [r1]
add r1, r0, #0
add r1, #0x48
strb r2, [r1]
add r1, r0, #0
add r1, #0x49
strb r2, [r1]
add r1, r0, #0
add r1, #0x4a
strb r2, [r1]
add r0, #0x4b
strb r2, [r0]
bx lr
thumb_func_end MOD41_02255170
thumb_func_start MOD41_02255190
MOD41_02255190: ; 0x02255190
push {r3, r4, r5, r6}
add r3, r0, #0
ldr r0, _02255240 ; =0x04000280
mov r4, #1
strh r4, [r0]
add r4, r0, #0
add r4, #0x10
str r1, [r4]
str r2, [r4, #4]
add r1, r0, #0
mov r4, #0x3c
add r1, #0x18
mov r2, #0
str r4, [r1]
str r2, [r1, #4]
lsr r1, r0, #0xb
_022551B0:
ldrh r2, [r0]
tst r2, r1
bne _022551B0
ldr r0, _02255244 ; =0x040002A0
ldr r6, _02255240 ; =0x04000280
ldr r0, [r0]
lsr r1, r6, #0xb
_022551BE:
ldrh r2, [r6]
tst r2, r1
bne _022551BE
ldr r5, _02255248 ; =0x040002A8
mov r4, #0
ldr r2, [r5]
add r1, r5, #0
strh r4, [r6]
sub r1, #0x18
str r0, [r1]
mov r0, #0xa
sub r5, #0x10
str r0, [r5]
str r4, [r5, #4]
ldr r4, _02255240 ; =0x04000280
lsr r0, r4, #0xb
_022551DE:
ldrh r1, [r4]
tst r1, r0
bne _022551DE
ldr r0, _02255244 ; =0x040002A0
ldr r1, [r0]
add r0, r3, #0
add r0, #0x48
strb r1, [r0]
ldr r1, _02255240 ; =0x04000280
lsr r0, r1, #0xb
_022551F2:
ldrh r4, [r1]
tst r4, r0
bne _022551F2
ldr r0, _02255248 ; =0x040002A8
add r4, r3, #0
ldr r5, [r0]
add r4, #0x49
strb r5, [r4]
mov r4, #0
strh r4, [r1]
add r1, r0, #0
sub r1, #0x18
str r2, [r1]
mov r1, #0xa
sub r0, #0x10
str r1, [r0]
ldr r2, _02255240 ; =0x04000280
str r4, [r0, #4]
lsr r0, r2, #0xb
_02255218:
ldrh r1, [r2]
tst r1, r0
bne _02255218
ldr r0, _02255244 ; =0x040002A0
ldr r2, _02255240 ; =0x04000280
ldr r1, [r0]
add r0, r3, #0
add r0, #0x4a
strb r1, [r0]
lsr r0, r2, #0xb
_0225522C:
ldrh r1, [r2]
tst r1, r0
bne _0225522C
ldr r0, _02255248 ; =0x040002A8
add r3, #0x4b
ldr r0, [r0]
strb r0, [r3]
pop {r3, r4, r5, r6}
bx lr
nop
_02255240: .word 0x04000280
_02255244: .word 0x040002A0
_02255248: .word 0x040002A8
thumb_func_end MOD41_02255190
thumb_func_start MOD41_0225524C
MOD41_0225524C: ; 0x0225524C
push {r4, r5, r6, lr}
add r6, r0, #0
add r5, r1, #0
mov r0, #8
mov r1, #0xac
bl AllocFromHeap
add r4, r0, #0
beq _02255288
add r0, #8
mov r1, #8
bl MOD20_022536F4
str r5, [r4]
bl MOD20_02252D34
str r0, [r4, #4]
bl MOD20_02252D24
str r0, [r4, #0x30]
add r0, r4, #0
add r1, r5, #0
bl MOD41_022552A0
ldr r0, [r4, #4]
cmp r0, #0
beq _02255288
str r4, [r6]
mov r0, #1
pop {r4, r5, r6, pc}
_02255288:
mov r0, #0
pop {r4, r5, r6, pc}
thumb_func_end MOD41_0225524C
thumb_func_start MOD41_0225528C
MOD41_0225528C: ; 0x0225528C
push {r4, lr}
add r4, r0, #0
beq _0225529C
bl MOD41_02255374
add r0, r4, #0
bl FreeToHeap
_0225529C:
pop {r4, pc}
.align 2, 0
thumb_func_end MOD41_0225528C
thumb_func_start MOD41_022552A0
MOD41_022552A0: ; 0x022552A0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
mov r3, #0
str r3, [sp]
mov r2, #1
add r7, r0, #0
str r1, [sp, #0xc]
str r2, [sp, #4]
mov r0, #8
str r0, [sp, #8]
mov r0, #0xc
mov r1, #2
bl FUN_02006A34
mov r0, #0
str r0, [sp]
mov r2, #1
mov r3, #0xa
str r2, [sp, #4]
mov r0, #8
str r0, [sp, #8]
mov r0, #0xc
mov r1, #0x5e
lsl r3, r3, #8
bl FUN_02006A34
mov r0, #8
str r0, [sp]
add r0, r7, #0
add r0, #0x78
mov r1, #0xc
mov r2, #0x5c
mov r3, #0x5d
bl MOD20_02253FBC
mov r0, #8
str r0, [sp]
add r0, r7, #0
add r0, #0x8c
mov r1, #0xc
mov r2, #3
mov r3, #4
bl MOD20_02253FBC
add r0, r7, #0
str r0, [sp, #0x14]
add r0, #0x78
str r0, [sp, #0x14]
add r0, r7, #0
str r0, [sp, #0x10]
add r0, #0x8c
ldr r6, _02255370 ; =0x02255864
mov r4, #0
add r5, r7, #0
str r0, [sp, #0x10]
_0225530E:
cmp r4, #0xd
blt _02255324
cmp r4, #0x10
bgt _02255324
ldr r0, [r7, #0x30]
ldr r2, [sp, #0x10]
add r1, r6, #0
bl MOD20_02253E74
str r0, [r5, #0x34]
b _02255336
_02255324:
ldr r0, [r7, #0x30]
ldr r2, [sp, #0x14]
add r1, r6, #0
bl MOD20_02253E74
mov r1, #0x50
str r0, [r5, #0x34]
bl MOD20_02253FA4
_02255336:
add r4, r4, #1
add r6, #0x10
add r5, r5, #4
cmp r4, #0x11
blt _0225530E
ldr r1, [sp, #0xc]
add r0, r7, #0
bl MOD41_022556D4
ldr r1, [sp, #0xc]
add r0, r7, #0
bl MOD41_02255714
ldr r0, [sp, #0xc]
ldr r0, [r0, #8]
cmp r0, #0
bne _0225535C
mov r1, #1
b _0225535E
_0225535C:
mov r1, #0
_0225535E:
add r0, r7, #0
bl MOD41_02255744
mov r0, #0
add r7, #0xa8
str r0, [r7]
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
_02255370: .word 0x02255864
thumb_func_end MOD41_022552A0
thumb_func_start MOD41_02255374
MOD41_02255374: ; 0x02255374
push {r4, r5, r6, lr}
add r6, r0, #0
mov r4, #0
add r5, r6, #0
_0225537C:
ldr r1, [r5, #0x34]
cmp r1, #0
beq _02255388
ldr r0, [r6, #0x30]
bl MOD20_02253F14
_02255388:
add r4, r4, #1
add r5, r5, #4
cmp r4, #0x11
blt _0225537C
add r0, r6, #0
add r0, #0x78
bl MOD20_02254014
add r6, #0x8c
add r0, r6, #0
bl MOD20_02254014
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD41_02255374
thumb_func_start MOD41_022553A4
MOD41_022553A4: ; 0x022553A4
push {lr}
sub sp, #0xc
add r2, r0, #0
add r0, #8
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #8
str r0, [sp, #8]
ldr r0, _022553C4 ; =0x022557F8
ldr r3, [r2]
bl MOD20_022537E0
add sp, #0xc
pop {pc}
nop
_022553C4: .word 0x022557F8
thumb_func_end MOD41_022553A4
thumb_func_start MOD41_022553C8
MOD41_022553C8: ; 0x022553C8
ldr r3, _022553D0 ; =MOD20_02253794
add r0, #8
bx r3
nop
_022553D0: .word MOD20_02253794
thumb_func_end MOD41_022553C8
thumb_func_start MOD41_022553D4
MOD41_022553D4: ; 0x022553D4
ldr r3, _022553DC ; =MOD20_022537B8
add r0, #8
bx r3
nop
_022553DC: .word MOD20_022537B8
thumb_func_end MOD41_022553D4
thumb_func_start MOD41_022553E0
MOD41_022553E0: ; 0x022553E0
push {r4, lr}
add r4, r0, #0
bl MOD20_022538A0
add r0, #8
add r1, r4, #0
bl MOD20_02253888
pop {r4, pc}
.align 2, 0
thumb_func_end MOD41_022553E0
thumb_func_start MOD41_022553F4
MOD41_022553F4: ; 0x022553F4
push {r4, r5, lr}
sub sp, #0x14
add r5, r1, #0
add r0, r5, #0
bl MOD20_022538A0
add r4, r0, #0
ldr r0, [r4, #4]
ldr r2, _022554CC ; =0x022557DC
mov r1, #6
mov r3, #0
bl FUN_02016C18
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #8
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0xc
mov r1, #0x5b
mov r3, #6
bl FUN_0200687C
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
mov r0, #1
str r0, [sp, #8]
mov r0, #8
str r0, [sp, #0xc]
ldr r2, [r4, #4]
mov r0, #0xc
mov r1, #0x5a
mov r3, #6
bl FUN_020068C8
mov r0, #0
add r1, r0, #0
bl MOD20_02252D7C
ldr r0, [r4, #4]
mov r1, #6
bl FUN_02017CD0
ldr r1, _022554D0 ; =0x04001000
ldr r0, _022554D4 ; =0xFFFFE0FF
ldr r3, [r1]
ldr r2, [r1]
str r3, [sp, #0x10]
and r0, r2
lsl r2, r3, #0x13
lsr r3, r2, #0x1b
mov r2, #4
orr r2, r3
lsl r2, r2, #8
orr r0, r2
str r0, [r1]
ldr r1, [r4]
ldr r0, [r1, #0xc]
cmp r0, #1
beq _02255488
cmp r0, #2
beq _0225547E
cmp r0, #3
beq _0225549A
b _022554C0
_0225547E:
add r0, r4, #0
mov r1, #6
bl MOD41_022553A4
b _022554C0
_02255488:
ldr r0, [r4, #0x34]
mov r1, #3
bl MOD20_02253F28
ldr r0, [r4, #0x38]
mov r1, #1
bl MOD20_02253F28
b _022554C0
_0225549A:
ldr r0, [r1, #0x10]
cmp r0, #0
ldr r0, [r4, #0x34]
beq _022554B2
mov r1, #2
bl MOD20_02253F28
ldr r0, [r4, #0x38]
mov r1, #1
bl MOD20_02253F28
b _022554C0
_022554B2:
mov r1, #3
bl MOD20_02253F28
ldr r0, [r4, #0x38]
mov r1, #0
bl MOD20_02253F28
_022554C0:
add r0, r5, #0
bl MOD41_022553E0
add sp, #0x14
pop {r4, r5, pc}
nop
_022554CC: .word 0x022557DC
_022554D0: .word 0x04001000
_022554D4: .word 0xFFFFE0FF
thumb_func_end MOD41_022553F4
thumb_func_start MOD41_022554D8
MOD41_022554D8: ; 0x022554D8
push {r3, r4, r5, lr}
add r5, r1, #0
add r0, r5, #0
bl MOD20_022538A0
add r4, r0, #0
add r0, r5, #0
bl MOD20_022538A4
add r0, r5, #0
bl MOD20_022538AC
cmp r0, #0
beq _022554FA
cmp r0, #1
beq _02255508
pop {r3, r4, r5, pc}
_022554FA:
add r0, r4, #0
mov r1, #1
add r0, #0xa0
str r1, [r0]
add r0, r5, #0
bl MOD20_022538B0
_02255508:
add r0, r4, #0
mov r1, #6
bl MOD41_022553C8
cmp r0, #0
beq _02255522
ldr r0, [r4, #4]
mov r1, #6
bl FUN_020178A0
add r0, r5, #0
bl MOD41_022553E0
_02255522:
pop {r3, r4, r5, pc}
thumb_func_end MOD41_022554D8
thumb_func_start MOD41_02255524
MOD41_02255524: ; 0x02255524
push {r3, r4, r5, lr}
add r5, r1, #0
add r0, r5, #0
bl MOD20_022538A0
add r4, r0, #0
add r0, r5, #0
bl MOD20_022538A4
add r0, r4, #0
mov r1, #0
bl MOD41_02255744
ldr r0, [r4, #0x34]
mov r1, #2
bl MOD20_02253F28
ldr r0, [r4, #0x38]
mov r1, #0
bl MOD20_02253F28
add r0, r5, #0
bl MOD41_022553E0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD41_02255524
thumb_func_start MOD41_02255558
MOD41_02255558: ; 0x02255558
push {r3, r4, r5, lr}
add r5, r1, #0
add r0, r5, #0
bl MOD20_022538A0
add r4, r0, #0
add r0, r5, #0
bl MOD20_022538A4
add r0, r4, #0
mov r1, #1
bl MOD41_02255744
ldr r0, [r4, #0x34]
mov r1, #3
bl MOD20_02253F28
ldr r0, [r4, #0x38]
mov r1, #1
bl MOD20_02253F28
add r0, r5, #0
bl MOD41_022553E0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD41_02255558
thumb_func_start MOD41_0225558C
MOD41_0225558C: ; 0x0225558C
push {r3, r4, r5, lr}
add r5, r1, #0
add r0, r5, #0
bl MOD20_022538A0
add r4, r0, #0
add r0, r5, #0
bl MOD20_022538A4
add r1, r0, #0
add r0, r4, #0
bl MOD41_022556D4
add r0, r5, #0
bl MOD41_022553E0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD41_0225558C
thumb_func_start MOD41_022555B0
MOD41_022555B0: ; 0x022555B0
push {r3, r4, r5, lr}
add r5, r1, #0
add r0, r5, #0
bl MOD20_022538A0
add r4, r0, #0
add r0, r5, #0
bl MOD20_022538A4
add r1, r0, #0
add r0, r4, #0
bl MOD41_02255714
add r0, r5, #0
bl MOD41_022553E0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD41_022555B0
thumb_func_start MOD41_022555D4
MOD41_022555D4: ; 0x022555D4
push {r3, r4, r5, lr}
add r5, r1, #0
add r0, r5, #0
bl MOD20_022538A0
add r4, r0, #0
add r0, r5, #0
bl MOD20_022538A4
add r0, r5, #0
bl MOD20_022538AC
cmp r0, #0
beq _022555F6
cmp r0, #1
beq _0225561A
pop {r3, r4, r5, pc}
_022555F6:
ldr r0, [r4, #0x34]
mov r1, #2
bl MOD20_02253F28
ldr r0, [r4, #0x38]
mov r1, #0
bl MOD20_02253F28
add r0, r4, #0
mov r1, #0
add r0, #0xa4
str r1, [r0]
add r0, r4, #0
add r0, #0xa0
str r1, [r0]
add r0, r5, #0
bl MOD20_022538B0
_0225561A:
add r0, r4, #0
add r0, #0xa0
ldr r0, [r0]
cmp r0, #0
beq _0225562C
add r0, r5, #0
bl MOD41_022553E0
pop {r3, r4, r5, pc}
_0225562C:
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
add r1, r0, #1
add r0, r4, #0
add r0, #0xa4
str r1, [r0]
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
cmp r0, #8
blo _0225568A
add r0, r4, #0
add r0, #0xa8
ldr r1, [r0]
mov r0, #1
eor r1, r0
add r0, r4, #0
add r0, #0xa8
str r1, [r0]
add r0, r4, #0
add r0, #0xa8
ldr r0, [r0]
cmp r0, #0
ldr r0, [r4, #0x34]
beq _02255670
mov r1, #2
bl MOD20_02253F28
ldr r0, [r4, #0x38]
mov r1, #1
bl MOD20_02253F28
b _0225567E
_02255670:
mov r1, #3
bl MOD20_02253F28
ldr r0, [r4, #0x38]
mov r1, #0
bl MOD20_02253F28
_0225567E:
ldr r0, _0225568C ; =0x00000677
bl MOD20_02252B28
mov r0, #0
add r4, #0xa4
str r0, [r4]
_0225568A:
pop {r3, r4, r5, pc}
.align 2, 0
_0225568C: .word 0x00000677
thumb_func_end MOD41_022555D4
thumb_func_start MOD41_02255690
MOD41_02255690: ; 0x02255690
push {r3, r4, r5, lr}
add r5, r1, #0
add r0, r5, #0
bl MOD20_022538A0
add r4, r0, #0
add r0, r5, #0
bl MOD20_022538A4
add r0, r5, #0
bl MOD20_022538AC
cmp r0, #0
beq _022556B2
cmp r0, #1
beq _022556C0
pop {r3, r4, r5, pc}
_022556B2:
add r0, r4, #0
mov r1, #1
add r0, #0xa0
str r1, [r0]
add r0, r5, #0
bl MOD20_022538B0
_022556C0:
add r0, r4, #0
mov r1, #6
bl MOD41_022553C8
cmp r0, #0
beq _022556D2
add r0, r5, #0
bl MOD41_022553E0
_022556D2:
pop {r3, r4, r5, pc}
thumb_func_end MOD41_02255690
thumb_func_start MOD41_022556D4
MOD41_022556D4: ; 0x022556D4
push {r3, r4, r5, lr}
add r4, r1, #0
add r5, r0, #0
ldrb r0, [r4, #4]
cmp r0, #0
beq _022556E4
mov r1, #6
b _022556E6
_022556E4:
mov r1, #5
_022556E6:
ldr r0, [r5, #0x3c]
bl MOD20_02253F28
ldrb r0, [r4, #5]
cmp r0, #0
beq _022556F6
mov r1, #8
b _022556F8
_022556F6:
mov r1, #7
_022556F8:
ldr r0, [r5, #0x40]
bl MOD20_02253F28
ldrb r0, [r4, #6]
cmp r0, #0
beq _02255708
mov r1, #0xa
b _0225570A
_02255708:
mov r1, #9
_0225570A:
ldr r0, [r5, #0x44]
bl MOD20_02253F28
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD41_022556D4
thumb_func_start MOD41_02255714
MOD41_02255714: ; 0x02255714
push {r3, r4, r5, lr}
add r4, r1, #0
mov r1, #0
add r5, r0, #0
ldrsb r1, [r4, r1]
ldr r0, [r5, #0x68]
bl MOD20_02253F28
mov r1, #1
ldrsb r1, [r4, r1]
ldr r0, [r5, #0x6c]
bl MOD20_02253F28
mov r1, #2
ldrsb r1, [r4, r1]
ldr r0, [r5, #0x70]
bl MOD20_02253F28
mov r1, #3
ldrsb r1, [r4, r1]
ldr r0, [r5, #0x74]
bl MOD20_02253F28
pop {r3, r4, r5, pc}
thumb_func_end MOD41_02255714
thumb_func_start MOD41_02255744
MOD41_02255744: ; 0x02255744
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5, #0x48]
add r4, r1, #0
bl MOD20_02253F78
ldr r0, [r5, #0x4c]
add r1, r4, #0
bl MOD20_02253F78
ldr r0, [r5, #0x50]
add r1, r4, #0
bl MOD20_02253F78
ldr r0, [r5, #0x54]
add r1, r4, #0
bl MOD20_02253F78
ldr r0, [r5, #0x58]
add r1, r4, #0
bl MOD20_02253F78
ldr r0, [r5, #0x5c]
add r1, r4, #0
bl MOD20_02253F78
ldr r0, [r5, #0x60]
add r1, r4, #0
bl MOD20_02253F78
ldr r0, [r5, #0x64]
add r1, r4, #0
bl MOD20_02253F78
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD41_02255744
thumb_func_start MOD41_0225578C
MOD41_0225578C: ; 0x0225578C
add r0, #0xa8
ldr r0, [r0]
bx lr
.align 2, 0
thumb_func_end MOD41_0225578C
.section .rodata
; 0x02255794
.byte 0x59, 0x4B, 0x25, 0x02, 0x99, 0x4B, 0x25, 0x02, 0x21, 0x4D, 0x25, 0x02, 0x0D, 0x4E, 0x25, 0x02
.byte 0xB9, 0x4E, 0x25, 0x02, 0x61, 0x4F, 0x25, 0x02, 0x19, 0x50, 0x25, 0x02, 0x90, 0xB0, 0x10, 0x50
.byte 0x90, 0xB0, 0x50, 0x90, 0x90, 0xB0, 0x90, 0xD0, 0x50, 0x60, 0x48, 0x58, 0x50, 0x60, 0x58, 0x68
.byte 0x80, 0x90, 0x48, 0x58, 0x80, 0x90, 0x58, 0x68, 0x50, 0x60, 0x78, 0x88, 0x50, 0x60, 0x88, 0x98
.byte 0x80, 0x90, 0x78, 0x88, 0x80, 0x90, 0x88, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x00, 0x00, 0x02, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x53, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0xD9, 0x54, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x25, 0x55, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x59, 0x55, 0x25, 0x02
.byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x8D, 0x55, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x05, 0x00, 0x00, 0x00, 0xB1, 0x55, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0xD5, 0x55, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x91, 0x56, 0x25, 0x02
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x02, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x0B, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x05, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x07, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x09, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x05, 0x00, 0x00, 0x80, 0x05, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x06, 0x00, 0x00, 0x80, 0x05, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x05, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x09, 0x00, 0x00, 0x80, 0x05, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x05, 0x00, 0x00, 0x80, 0x08, 0x00, 0x04, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x06, 0x00, 0x00, 0x80, 0x08, 0x00, 0x04, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x08, 0x00, 0x04, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x09, 0x00, 0x00, 0x80, 0x08, 0x00, 0x04, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
; .section .sinit
.global SDK_OVERLAY.MODULE_41.SINIT_START
.global SDK_OVERLAY.MODULE_41.SINIT_END
SDK_OVERLAY.MODULE_41.SINIT_START:
.word MOD41_02254840
.word 0
SDK_OVERLAY.MODULE_41.SINIT_END: