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

4501 lines
84 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD82_0222D5C0
MOD82_0222D5C0: ; 0x0222D5C0
push {r3, r4}
ldr r3, _0222D5D8 ; =0x0222FB00
mov r4, #1
str r4, [r3]
mov r4, #0
str r4, [r3, #4]
str r0, [r3, #8]
str r1, [r3, #0xc]
str r2, [r3, #0x10]
pop {r3, r4}
bx lr
nop
_0222D5D8: .word 0x0222FB00
thumb_func_end MOD82_0222D5C0
thumb_func_start MOD82_0222D5DC
MOD82_0222D5DC: ; 0x0222D5DC
push {r3, lr}
ldr r1, _0222D7B8 ; =0x0222FB00
ldr r0, [r1]
cmp r0, #0xa
bls _0222D5E8
b _0222D7B4
_0222D5E8:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0222D5F4: ; jump table
.short _0222D7B4 - _0222D5F4 - 2 ; case 0
.short _0222D7B4 - _0222D5F4 - 2 ; case 1
.short _0222D60A - _0222D5F4 - 2 ; case 2
.short _0222D7A8 - _0222D5F4 - 2 ; case 3
.short _0222D654 - _0222D5F4 - 2 ; case 4
.short _0222D7A8 - _0222D5F4 - 2 ; case 5
.short _0222D6C4 - _0222D5F4 - 2 ; case 6
.short _0222D7A8 - _0222D5F4 - 2 ; case 7
.short _0222D736 - _0222D5F4 - 2 ; case 8
.short _0222D7A8 - _0222D5F4 - 2 ; case 9
.short _0222D7B4 - _0222D5F4 - 2 ; case 10
_0222D60A:
bl MOD79_022123A8
cmp r0, #1
beq _0222D618
cmp r0, #7
beq _0222D630
pop {r3, pc}
_0222D618:
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
bl MOD79_02212474
bl MOD82_0222D99C
ldr r1, _0222D7B8 ; =0x0222FB00
str r0, [r1, #4]
bl MOD56_0221244C
pop {r3, pc}
_0222D630:
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
bl MOD79_02212480
cmp r0, #0
ble _0222D646
ldr r0, _0222D7BC ; =0x0222FC00
ldrb r1, [r0, #3]
ldr r0, _0222D7B8 ; =0x0222FB00
b _0222D64C
_0222D646:
mov r1, #1
ldr r0, _0222D7B8 ; =0x0222FB00
mvn r1, r1
_0222D64C:
str r1, [r0, #4]
bl MOD56_0221244C
pop {r3, pc}
_0222D654:
bl MOD79_022123A8
cmp r0, #1
beq _0222D662
cmp r0, #7
beq _0222D67A
pop {r3, pc}
_0222D662:
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
bl MOD79_02212474
bl MOD82_0222D99C
ldr r1, _0222D7B8 ; =0x0222FB00
str r0, [r1, #4]
bl MOD56_0221244C
pop {r3, pc}
_0222D67A:
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
bl MOD79_02212480
ldr r1, _0222D7C0 ; =0x00000A38
cmp r0, r1
bne _0222D692
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0
str r1, [r0, #4]
b _0222D6BE
_0222D692:
ldr r0, _0222D7BC ; =0x0222FC00
ldr r0, [r0, #8]
ldrb r0, [r0]
cmp r0, #2
beq _0222D6A2
cmp r0, #5
beq _0222D6AC
b _0222D6B6
_0222D6A2:
mov r1, #2
ldr r0, _0222D7B8 ; =0x0222FB00
mvn r1, r1
str r1, [r0, #4]
b _0222D6BE
_0222D6AC:
mov r1, #1
ldr r0, _0222D7B8 ; =0x0222FB00
mvn r1, r1
str r1, [r0, #4]
b _0222D6BE
_0222D6B6:
mov r1, #4
ldr r0, _0222D7B8 ; =0x0222FB00
mvn r1, r1
str r1, [r0, #4]
_0222D6BE:
bl MOD56_0221244C
pop {r3, pc}
_0222D6C4:
bl MOD79_022123A8
cmp r0, #1
beq _0222D6D2
cmp r0, #7
beq _0222D6EA
pop {r3, pc}
_0222D6D2:
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
bl MOD79_02212474
bl MOD82_0222D99C
ldr r1, _0222D7B8 ; =0x0222FB00
str r0, [r1, #4]
bl MOD56_0221244C
pop {r3, pc}
_0222D6EA:
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0xa
ldr r2, _0222D7BC ; =0x0222FC00
str r1, [r0]
ldrb r2, [r2, #3]
cmp r2, #5
bhi _0222D728
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_0222D704: ; jump table
.short _0222D728 - _0222D704 - 2 ; case 0
.short _0222D710 - _0222D704 - 2 ; case 1
.short _0222D716 - _0222D704 - 2 ; case 2
.short _0222D728 - _0222D704 - 2 ; case 3
.short _0222D71C - _0222D704 - 2 ; case 4
.short _0222D722 - _0222D704 - 2 ; case 5
_0222D710:
mov r1, #0
str r1, [r0, #4]
b _0222D730
_0222D716:
sub r1, #0xd
str r1, [r0, #4]
b _0222D730
_0222D71C:
sub r1, #0xb
str r1, [r0, #4]
b _0222D730
_0222D722:
sub r1, #0xc
str r1, [r0, #4]
b _0222D730
_0222D728:
mov r1, #4
ldr r0, _0222D7B8 ; =0x0222FB00
mvn r1, r1
str r1, [r0, #4]
_0222D730:
bl MOD56_0221244C
pop {r3, pc}
_0222D736:
bl MOD79_022123A8
cmp r0, #1
beq _0222D744
cmp r0, #7
beq _0222D75C
pop {r3, pc}
_0222D744:
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
bl MOD79_02212474
bl MOD82_0222D99C
ldr r1, _0222D7B8 ; =0x0222FB00
str r0, [r1, #4]
bl MOD56_0221244C
pop {r3, pc}
_0222D75C:
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0xa
ldr r2, _0222D7BC ; =0x0222FC00
str r1, [r0]
ldrb r2, [r2, #3]
cmp r2, #5
bhi _0222D79A
add r2, r2, r2
add r2, pc
ldrh r2, [r2, #6]
lsl r2, r2, #0x10
asr r2, r2, #0x10
add pc, r2
_0222D776: ; jump table
.short _0222D79A - _0222D776 - 2 ; case 0
.short _0222D782 - _0222D776 - 2 ; case 1
.short _0222D79A - _0222D776 - 2 ; case 2
.short _0222D788 - _0222D776 - 2 ; case 3
.short _0222D78E - _0222D776 - 2 ; case 4
.short _0222D794 - _0222D776 - 2 ; case 5
_0222D782:
mov r1, #0
str r1, [r0, #4]
b _0222D7A2
_0222D788:
mov r1, #1
str r1, [r0, #4]
b _0222D7A2
_0222D78E:
mov r1, #2
str r1, [r0, #4]
b _0222D7A2
_0222D794:
sub r1, #0xc
str r1, [r0, #4]
b _0222D7A2
_0222D79A:
mov r1, #4
ldr r0, _0222D7B8 ; =0x0222FB00
mvn r1, r1
str r1, [r0, #4]
_0222D7A2:
bl MOD56_0221244C
pop {r3, pc}
_0222D7A8:
mov r0, #0xa
str r0, [r1]
sub r0, #0xe
str r0, [r1, #4]
bl MOD56_0221244C
_0222D7B4:
pop {r3, pc}
nop
_0222D7B8: .word 0x0222FB00
_0222D7BC: .word 0x0222FC00
_0222D7C0: .word 0x00000A38
thumb_func_end MOD82_0222D5DC
thumb_func_start MOD82_0222D7C4
MOD82_0222D7C4: ; 0x0222D7C4
ldr r1, _0222D7E0 ; =0x0222FB00
ldr r0, [r1]
cmp r0, #1
beq _0222D7D2
cmp r0, #0xa
beq _0222D7D6
b _0222D7DC
_0222D7D2:
mov r0, #1
bx lr
_0222D7D6:
mov r0, #1
str r0, [r1]
bx lr
_0222D7DC:
mov r0, #0
bx lr
.align 2, 0
_0222D7E0: .word 0x0222FB00
thumb_func_end MOD82_0222D7C4
thumb_func_start MOD82_0222D7E4
MOD82_0222D7E4: ; 0x0222D7E4
ldr r0, _0222D7EC ; =0x0222FB00
ldr r0, [r0, #4]
bx lr
nop
_0222D7EC: .word 0x0222FB00
thumb_func_end MOD82_0222D7E4
thumb_func_start MOD82_0222D7F0
MOD82_0222D7F0: ; 0x0222D7F0
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
bl MOD79_022122E4
ldr r0, _0222D830 ; =0x0222FB00
sub r1, r4, #1
strb r1, [r0, #0x14]
mov r0, #2
str r0, [sp]
ldr r0, _0222D834 ; =0x0222F8E0
ldr r1, _0222D838 ; =0x0222FB14
ldr r3, _0222D83C ; =0x0222FC03
mov r2, #1
bl MOD82_0222D964
cmp r0, #0
beq _0222D81E
ldr r0, _0222D830 ; =0x0222FB00
mov r1, #2
str r1, [r0]
add sp, #4
pop {r3, r4, pc}
_0222D81E:
ldr r0, _0222D830 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
sub r1, #0xf
str r1, [r0, #4]
bl MOD56_0221244C
add sp, #4
pop {r3, r4, pc}
.align 2, 0
_0222D830: .word 0x0222FB00
_0222D834: .word 0x0222F8E0
_0222D838: .word 0x0222FB14
_0222D83C: .word 0x0222FC03
thumb_func_end MOD82_0222D7F0
thumb_func_start MOD82_0222D840
MOD82_0222D840: ; 0x0222D840
push {r3, r4, r5, r6, lr}
sub sp, #4
add r5, r0, #0
ldr r0, _0222D88C ; =0x0222FC00
add r6, r2, #0
add r4, r1, #0
str r6, [r0, #8]
bl MOD79_022122E4
ldr r0, _0222D890 ; =0x0222FB00
sub r1, r5, #1
strb r1, [r0, #0x14]
sub r1, r4, #1
strb r1, [r0, #0x15]
ldr r0, _0222D894 ; =0x00000A38
ldr r1, _0222D898 ; =0x0222FB14
str r0, [sp]
ldr r0, _0222D89C ; =0x0222F92C
mov r2, #2
add r3, r6, #0
bl MOD82_0222D964
cmp r0, #0
beq _0222D87A
ldr r0, _0222D890 ; =0x0222FB00
mov r1, #4
str r1, [r0]
add sp, #4
pop {r3, r4, r5, r6, pc}
_0222D87A:
ldr r0, _0222D890 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
sub r1, #0xf
str r1, [r0, #4]
bl MOD56_0221244C
add sp, #4
pop {r3, r4, r5, r6, pc}
.align 2, 0
_0222D88C: .word 0x0222FC00
_0222D890: .word 0x0222FB00
_0222D894: .word 0x00000A38
_0222D898: .word 0x0222FB14
_0222D89C: .word 0x0222F92C
thumb_func_end MOD82_0222D840
thumb_func_start MOD82_0222D8A0
MOD82_0222D8A0: ; 0x0222D8A0
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
bl MOD79_022122E4
ldr r0, _0222D904 ; =0x0222FB14
add r1, r7, #0
mov r2, #0xe4
bl memcpy
ldr r0, _0222D908 ; =0x0222FBE0
sub r1, r5, #1
strb r1, [r0, #0x18]
sub r1, r4, #1
strb r1, [r0, #0x19]
ldr r3, _0222D90C ; =0x0222FBFB
ldr r2, _0222D910 ; =0x0222FB0C
strb r6, [r0, #0x1a]
mov r1, #8
_0222D8CA:
ldrb r0, [r2]
add r2, r2, #1
strb r0, [r3]
add r3, r3, #1
sub r1, r1, #1
bne _0222D8CA
mov r0, #2
str r0, [sp]
ldr r0, _0222D914 ; =0x0222F978
ldr r1, _0222D904 ; =0x0222FB14
ldr r3, _0222D918 ; =0x0222FC03
mov r2, #0xef
bl MOD82_0222D964
cmp r0, #0
beq _0222D8F2
ldr r0, _0222D91C ; =0x0222FB00
mov r1, #6
str r1, [r0]
pop {r3, r4, r5, r6, r7, pc}
_0222D8F2:
ldr r0, _0222D91C ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
sub r1, #0xf
str r1, [r0, #4]
bl MOD56_0221244C
pop {r3, r4, r5, r6, r7, pc}
nop
_0222D904: .word 0x0222FB14
_0222D908: .word 0x0222FBE0
_0222D90C: .word 0x0222FBFB
_0222D910: .word 0x0222FB0C
_0222D914: .word 0x0222F978
_0222D918: .word 0x0222FC03
_0222D91C: .word 0x0222FB00
thumb_func_end MOD82_0222D8A0
thumb_func_start MOD82_0222D920
MOD82_0222D920: ; 0x0222D920
push {r3, lr}
bl MOD79_022122E4
mov r0, #2
str r0, [sp]
ldr r0, _0222D954 ; =0x0222F9C4
ldr r1, _0222D958 ; =0x0222FB14
ldr r3, _0222D95C ; =0x0222FC03
mov r2, #0
bl MOD82_0222D964
cmp r0, #0
beq _0222D942
ldr r0, _0222D960 ; =0x0222FB00
mov r1, #8
str r1, [r0]
pop {r3, pc}
_0222D942:
ldr r0, _0222D960 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
sub r1, #0xf
str r1, [r0, #4]
bl MOD56_0221244C
pop {r3, pc}
nop
_0222D954: .word 0x0222F9C4
_0222D958: .word 0x0222FB14
_0222D95C: .word 0x0222FC03
_0222D960: .word 0x0222FB00
thumb_func_end MOD82_0222D920
thumb_func_start MOD82_0222D964
MOD82_0222D964: ; 0x0222D964
push {r3, r4, r5, lr}
sub sp, #8
add r5, r1, #0
ldr r1, [sp, #0x18]
str r3, [sp]
str r1, [sp, #4]
add r4, r2, #0
ldr r1, _0222D998 ; =0x0222FB00
add r2, r5, #0
ldr r1, [r1, #8]
add r3, r4, #0
bl MOD79_02212308
cmp r0, #0
beq _0222D98A
cmp r0, #1
beq _0222D990
cmp r0, #2
b _0222D990
_0222D98A:
add sp, #8
mov r0, #1
pop {r3, r4, r5, pc}
_0222D990:
mov r0, #0
add sp, #8
pop {r3, r4, r5, pc}
nop
_0222D998: .word 0x0222FB00
thumb_func_end MOD82_0222D964
thumb_func_start MOD82_0222D99C
MOD82_0222D99C: ; 0x0222D99C
push {r4, lr}
cmp r0, #0x20
bhi _0222DA14
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0222D9AE: ; jump table
.short _0222D9F0 - _0222D9AE - 2 ; case 0
.short _0222D9F0 - _0222D9AE - 2 ; case 1
.short _0222D9F6 - _0222D9AE - 2 ; case 2
.short _0222D9F0 - _0222D9AE - 2 ; case 3
.short _0222D9F0 - _0222D9AE - 2 ; case 4
.short _0222D9F0 - _0222D9AE - 2 ; case 5
.short _0222D9F0 - _0222D9AE - 2 ; case 6
.short _0222DA14 - _0222D9AE - 2 ; case 7
.short _0222D9F6 - _0222D9AE - 2 ; case 8
.short _0222D9F0 - _0222D9AE - 2 ; case 9
.short _0222D9F0 - _0222D9AE - 2 ; case 10
.short _0222D9FC - _0222D9AE - 2 ; case 11
.short _0222DA02 - _0222D9AE - 2 ; case 12
.short _0222DA02 - _0222D9AE - 2 ; case 13
.short _0222D9F0 - _0222D9AE - 2 ; case 14
.short _0222DA0E - _0222D9AE - 2 ; case 15
.short _0222DA08 - _0222D9AE - 2 ; case 16
.short _0222DA08 - _0222D9AE - 2 ; case 17
.short _0222DA08 - _0222D9AE - 2 ; case 18
.short _0222DA08 - _0222D9AE - 2 ; case 19
.short _0222D9F0 - _0222D9AE - 2 ; case 20
.short _0222D9F0 - _0222D9AE - 2 ; case 21
.short _0222D9F0 - _0222D9AE - 2 ; case 22
.short _0222D9F0 - _0222D9AE - 2 ; case 23
.short _0222DA14 - _0222D9AE - 2 ; case 24
.short _0222D9F6 - _0222D9AE - 2 ; case 25
.short _0222DA08 - _0222D9AE - 2 ; case 26
.short _0222DA08 - _0222D9AE - 2 ; case 27
.short _0222DA08 - _0222D9AE - 2 ; case 28
.short _0222DA08 - _0222D9AE - 2 ; case 29
.short _0222DA0E - _0222D9AE - 2 ; case 30
.short _0222DA08 - _0222D9AE - 2 ; case 31
.short _0222D9F0 - _0222D9AE - 2 ; case 32
_0222D9F0:
mov r4, #4
mvn r4, r4
b _0222DA18
_0222D9F6:
mov r4, #4
mvn r4, r4
b _0222DA18
_0222D9FC:
mov r4, #6
mvn r4, r4
b _0222DA18
_0222DA02:
mov r4, #6
mvn r4, r4
b _0222DA18
_0222DA08:
mov r4, #1
mvn r4, r4
b _0222DA18
_0222DA0E:
mov r4, #1
mvn r4, r4
b _0222DA18
_0222DA14:
mov r4, #4
mvn r4, r4
_0222DA18:
mov r0, #4
mvn r0, r0
cmp r4, r0
beq _0222DA30
bl WCM_GetPhase
cmp r0, #9
beq _0222DA2C
mov r4, #5
mvn r4, r4
_0222DA2C:
bl MOD04_021DD6F0
_0222DA30:
add r0, r4, #0
pop {r4, pc}
thumb_func_end MOD82_0222D99C
thumb_func_start MOD82_0222DA34
MOD82_0222DA34: ; 0x0222DA34
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r1, #0
add r6, r0, #0
ldr r0, [r5]
cmp r0, #0
beq _0222DA48
cmp r0, #1
beq _0222DB34
b _0222DB4A
_0222DA48:
mov r0, #0
add r1, r0, #0
bl FUN_02015F10
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _0222DB50 ; =0xFFFFE0FF
and r1, r0
str r1, [r2]
ldr r2, _0222DB54 ; =0x04001000
ldr r1, [r2]
and r0, r1
str r0, [r2]
mov r2, #5
mov r0, #3
mov r1, #0x44
lsl r2, r2, #0x10
bl FUN_0201681C
ldr r1, _0222DB58 ; =0x00000EC8
add r0, r6, #0
mov r2, #0x44
bl FUN_02006268
ldr r2, _0222DB58 ; =0x00000EC8
mov r1, #0
add r4, r0, #0
bl memset
mov r0, #0x44
bl FUN_02016B94
str r0, [r4, #4]
ldr r0, _0222DB5C ; =0x0222FC0C
add r2, sp, #0
ldr r3, _0222DB60 ; =0x0222F814
str r4, [r0]
add r7, r2, #0
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
add r0, r7, #0
bl FUN_02016BBC
mov r0, #0xb
mov r1, #0x20
mov r2, #0x44
bl FUN_0200AA90
ldr r1, _0222DB64 ; =0x00000B78
ldr r2, _0222DB68 ; =0x0000024E
str r0, [r4, r1]
mov r0, #0
mov r1, #0x1a
mov r3, #0x44
bl FUN_0200A86C
ldr r1, _0222DB6C ; =0x00000B7C
mov r2, #0x25
str r0, [r4, r1]
mov r0, #0
mov r1, #0x1a
lsl r2, r2, #4
mov r3, #0x44
bl FUN_0200A86C
mov r1, #0x2e
lsl r1, r1, #6
str r0, [r4, r1]
ldr r2, _0222DB70 ; =0x00000265
mov r0, #0
mov r1, #0x1a
mov r3, #0x44
bl FUN_0200A86C
ldr r1, _0222DB74 ; =0x00000B84
str r0, [r4, r1]
mov r0, #4
mov r1, #8
bl FUN_0201669C
add r0, r4, #0
add r1, r6, #0
bl MOD82_0222DD04
add r0, r4, #0
bl MOD82_0222DFD4
mov r1, #0
mov r0, #0x34
add r2, r1, #0
bl FUN_0200433C
ldr r1, _0222DB78 ; =0x00020020
mov r0, #0x44
bl AllocFromHeap
str r0, [r4, #0x24]
add r0, #0x1f
mov r1, #0x1f
bic r0, r1
mov r1, #2
lsl r1, r1, #0x10
mov r2, #0
bl tempName_NNS_FndCreateExpHeapEx
str r0, [r4, #0x28]
mov r0, #1
str r0, [r5]
b _0222DB4A
_0222DB34:
bl FUN_02088858
bl FUN_020888BC
bl FUN_0202E49C
mov r0, #0
str r0, [r5]
add sp, #0x10
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_0222DB4A:
mov r0, #0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0222DB50: .word 0xFFFFE0FF
_0222DB54: .word 0x04001000
_0222DB58: .word 0x00000EC8
_0222DB5C: .word 0x0222FC0C
_0222DB60: .word 0x0222F814
_0222DB64: .word 0x00000B78
_0222DB68: .word 0x0000024E
_0222DB6C: .word 0x00000B7C
_0222DB70: .word 0x00000265
_0222DB74: .word 0x00000B84
_0222DB78: .word 0x00020020
thumb_func_end MOD82_0222DA34
thumb_func_start MOD82_0222DB7C
MOD82_0222DB7C: ; 0x0222DB7C
push {r4, r5, r6, lr}
add r4, r1, #0
bl FUN_02006278
add r5, r0, #0
bl MOD04_021DD984
bl MOD82_0222D5DC
bl MOD04_021DD984
ldr r1, [r4]
cmp r1, #5
bhi _0222DC24
add r0, r1, r1
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0222DBA4: ; jump table
.short _0222DBB0 - _0222DBA4 - 2 ; case 0
.short _0222DBCC - _0222DBA4 - 2 ; case 1
.short _0222DBE0 - _0222DBA4 - 2 ; case 2
.short _0222DBEE - _0222DBA4 - 2 ; case 3
.short _0222DC02 - _0222DBA4 - 2 ; case 4
.short _0222DC20 - _0222DBA4 - 2 ; case 5
_0222DBB0:
bl FUN_0202E4C8
cmp r0, #0
beq _0222DC24
ldr r1, [r5, #0x28]
ldr r0, _0222DC38 ; =0x0222FC0C
str r1, [r0, #4]
ldr r0, _0222DC3C ; =MOD82_0222DF74
ldr r1, _0222DC40 ; =MOD82_0222DF9C
bl MOD04_021DD968
mov r0, #1
str r0, [r4]
b _0222DC24
_0222DBCC:
ldr r3, [r5, #0x10]
mov r2, #0xc
add r6, r3, #0
mul r6, r2
ldr r2, _0222DC44 ; =0x0222FA0C
add r0, r5, #0
ldr r2, [r2, r6]
blx r2
str r0, [r4]
b _0222DC24
_0222DBE0:
bl FUN_0200E308
cmp r0, #0
beq _0222DC24
mov r0, #3
str r0, [r4]
b _0222DC24
_0222DBEE:
ldr r3, [r5, #0x10]
mov r2, #0xc
add r6, r3, #0
mul r6, r2
ldr r2, _0222DC48 ; =0x0222FA10
add r0, r5, #0
ldr r2, [r2, r6]
blx r2
str r0, [r4]
b _0222DC24
_0222DC02:
bl FUN_0200E308
cmp r0, #0
beq _0222DC24
ldr r3, [r5, #0x10]
mov r2, #0xc
add r6, r3, #0
mul r6, r2
ldr r2, _0222DC4C ; =0x0222FA14
ldr r1, [r4]
ldr r2, [r2, r6]
add r0, r5, #0
blx r2
str r0, [r4]
b _0222DC24
_0222DC20:
mov r0, #1
pop {r4, r5, r6, pc}
_0222DC24:
mov r0, #0xba
lsl r0, r0, #4
ldr r0, [r5, r0]
cmp r0, #0
beq _0222DC32
bl FUN_0201FDEC
_0222DC32:
mov r0, #0
pop {r4, r5, r6, pc}
nop
_0222DC38: .word 0x0222FC0C
_0222DC3C: .word MOD82_0222DF74
_0222DC40: .word MOD82_0222DF9C
_0222DC44: .word 0x0222FA0C
_0222DC48: .word 0x0222FA10
_0222DC4C: .word 0x0222FA14
thumb_func_end MOD82_0222DB7C
thumb_func_start MOD82_0222DC50
MOD82_0222DC50: ; 0x0222DC50
push {r3, r4, r5, lr}
add r5, r0, #0
bl FUN_02006278
add r4, r0, #0
ldr r0, [r4, #0x24]
bl FreeToHeap
bl FUN_020888CC
bl FUN_02088868
add r0, r4, #0
bl MOD82_0222DFFC
ldr r0, _0222DCB8 ; =0x00000B84
ldr r0, [r4, r0]
bl FUN_0200A8B8
mov r0, #0x2e
lsl r0, r0, #6
ldr r0, [r4, r0]
bl FUN_0200A8B8
ldr r0, _0222DCBC ; =0x00000B7C
ldr r0, [r4, r0]
bl FUN_0200A8B8
ldr r0, _0222DCC0 ; =0x00000B78
ldr r0, [r4, r0]
bl FUN_0200AB18
add r0, r4, #0
bl MOD82_0222DD20
bl FUN_0202E4F0
ldr r0, [r4, #4]
bl FreeToHeap
add r0, r5, #0
bl FUN_0200627C
mov r0, #0
add r1, r0, #0
bl FUN_02015F10
mov r0, #0x44
bl FUN_020168D0
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
_0222DCB8: .word 0x00000B84
_0222DCBC: .word 0x00000B7C
_0222DCC0: .word 0x00000B78
thumb_func_end MOD82_0222DC50
thumb_func_start MOD82_0222DCC4
MOD82_0222DCC4: ; 0x0222DCC4
push {r3, lr}
bl FUN_0201C30C
bl FUN_02009F80
ldr r3, _0222DCDC ; =0x027E0000
ldr r1, _0222DCE0 ; =0x00003FF8
mov r0, #1
ldr r2, [r3, r1]
orr r0, r2
str r0, [r3, r1]
pop {r3, pc}
.align 2, 0
_0222DCDC: .word 0x027E0000
_0222DCE0: .word 0x00003FF8
thumb_func_end MOD82_0222DCC4
thumb_func_start MOD82_0222DCE4
MOD82_0222DCE4: ; 0x0222DCE4
push {r4, lr}
sub sp, #0x28
ldr r4, _0222DD00 ; =0x0222F834
add r3, sp, #0
mov r2, #5
_0222DCEE:
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
sub r2, r2, #1
bne _0222DCEE
add r0, sp, #0
bl FUN_0201E66C
add sp, #0x28
pop {r4, pc}
.align 2, 0
_0222DD00: .word 0x0222F834
thumb_func_end MOD82_0222DCE4
thumb_func_start MOD82_0222DD04
MOD82_0222DD04: ; 0x0222DD04
push {r4, lr}
add r4, r0, #0
add r0, r1, #0
bl FUN_0200628C
mov r1, #0
str r0, [r4]
add r0, r4, #0
add r2, r1, #0
str r1, [r4, #0x10]
bl MOD82_0222DFCC
pop {r4, pc}
.align 2, 0
thumb_func_end MOD82_0222DD04
thumb_func_start MOD82_0222DD20
MOD82_0222DD20: ; 0x0222DD20
bx lr
.align 2, 0
thumb_func_end MOD82_0222DD20
thumb_func_start MOD82_0222DD24
MOD82_0222DD24: ; 0x0222DD24
push {r4, lr}
sub sp, #0x10
ldr r4, _0222DD50 ; =0x0222F824
add r3, sp, #0
add r2, r3, #0
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
bl FUN_0201D040
mov r0, #0x14
mov r1, #0x44
bl FUN_0201E00C
bl FUN_0201D168
bl FUN_0201E0BC
add sp, #0x10
pop {r4, pc}
.align 2, 0
_0222DD50: .word 0x0222F824
thumb_func_end MOD82_0222DD24
thumb_func_start MOD82_0222DD54
MOD82_0222DD54: ; 0x0222DD54
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r6, r0, #0
bl FUN_020B0FC0
mov r0, #0
str r0, [sp]
mov r1, #0x7e
str r1, [sp, #4]
str r0, [sp, #8]
mov r3, #0x20
str r3, [sp, #0xc]
mov r2, #0x44
str r2, [sp, #0x10]
add r2, r0, #0
bl FUN_02009EAC
ldr r1, _0222DE40 ; =0x00000BA4
mov r0, #0xa
add r1, r6, r1
mov r2, #0x44
bl FUN_02008C9C
mov r1, #0xba
lsl r1, r1, #4
str r0, [r6, r1]
add r0, r1, #4
mov r2, #1
add r0, r6, r0
mov r1, #0
lsl r2, r2, #0x14
bl FUN_02008D24
ldr r7, _0222DE44 ; =0x00000CCC
mov r4, #0
add r5, r6, #0
_0222DD9C:
mov r0, #2
add r1, r4, #0
mov r2, #0x44
bl FUN_02008DEC
str r0, [r5, r7]
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _0222DD9C
mov r0, #0
str r0, [sp]
mov r3, #1
str r3, [sp, #4]
mov r0, #0x44
str r0, [sp, #8]
ldr r0, _0222DE44 ; =0x00000CCC
mov r1, #0x68
ldr r0, [r6, r0]
mov r2, #0x23
bl FUN_02008F34
ldr r1, _0222DE48 ; =0x00000CDC
mov r3, #0
str r0, [r6, r1]
str r3, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #3
str r0, [sp, #8]
mov r0, #0x44
sub r1, #0xc
str r0, [sp, #0xc]
ldr r0, [r6, r1]
mov r1, #0x68
mov r2, #9
bl FUN_02008FEC
mov r1, #0xce
lsl r1, r1, #4
str r0, [r6, r1]
mov r0, #0
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
mov r0, #0x44
sub r1, #0xc
str r0, [sp, #8]
ldr r0, [r6, r1]
mov r1, #0x68
mov r2, #0x24
mov r3, #1
bl FUN_020090AC
ldr r1, _0222DE4C ; =0x00000CE4
mov r2, #0x25
str r0, [r6, r1]
mov r0, #0
str r0, [sp]
mov r0, #3
str r0, [sp, #4]
mov r0, #0x44
sub r1, #0xc
str r0, [sp, #8]
ldr r0, [r6, r1]
mov r1, #0x68
mov r3, #1
bl FUN_020090AC
ldr r1, _0222DE50 ; =0x00000CE8
str r0, [r6, r1]
sub r1, #0xc
ldr r0, [r6, r1]
bl FUN_02009A50
mov r0, #0xce
lsl r0, r0, #4
ldr r0, [r6, r0]
bl FUN_02009CF0
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0222DE40: .word 0x00000BA4
_0222DE44: .word 0x00000CCC
_0222DE48: .word 0x00000CDC
_0222DE4C: .word 0x00000CE4
_0222DE50: .word 0x00000CE8
thumb_func_end MOD82_0222DD54
thumb_func_start MOD82_0222DE54
MOD82_0222DE54: ; 0x0222DE54
push {r3, r4}
mov r4, #0xba
lsl r4, r4, #4
ldr r1, [r1, r4]
str r1, [r0]
str r2, [r0, #4]
mov r2, #0
mov r1, #1
str r2, [r0, #0x10]
lsl r1, r1, #0xc
str r1, [r0, #0x14]
str r1, [r0, #0x18]
str r1, [r0, #0x1c]
strh r2, [r0, #0x20]
mov r1, #1
str r1, [r0, #0x24]
str r3, [r0, #0x28]
mov r1, #0x44
str r1, [r0, #0x2c]
pop {r3, r4}
bx lr
.align 2, 0
thumb_func_end MOD82_0222DE54
thumb_func_start MOD82_0222DE80
MOD82_0222DE80: ; 0x0222DE80
push {r4, r5, r6, r7, lr}
sub sp, #0x5c
mov r1, #0
add r5, r0, #0
str r1, [sp]
sub r0, r1, #1
str r0, [sp, #4]
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r2, _0222DF28 ; =0x00000CCC
str r1, [sp, #0x10]
ldr r0, [r5, r2]
add r3, r1, #0
str r0, [sp, #0x14]
add r0, r2, #4
ldr r0, [r5, r0]
str r0, [sp, #0x18]
add r0, r2, #0
add r0, #8
ldr r0, [r5, r0]
str r0, [sp, #0x1c]
add r0, r2, #0
add r0, #0xc
ldr r0, [r5, r0]
add r2, #0x40
str r0, [sp, #0x20]
str r1, [sp, #0x24]
add r0, r5, r2
add r2, r1, #0
str r1, [sp, #0x28]
bl FUN_02008AA4
ldr r2, _0222DF2C ; =0x00000D0C
add r0, sp, #0x2c
add r1, r5, #0
add r2, r5, r2
mov r3, #1
bl MOD82_0222DE54
ldr r4, _0222DF30 ; =0x0222F80C
ldr r7, _0222DF34 ; =0x00000D78
mov r6, #0
_0222DED4:
ldrh r0, [r4]
lsl r0, r0, #0xc
str r0, [sp, #0x34]
ldrh r0, [r4, #2]
lsl r0, r0, #0xc
str r0, [sp, #0x38]
add r0, sp, #0x2c
bl FUN_0201FE94
ldr r1, _0222DF34 ; =0x00000D78
str r0, [r5, r1]
add r0, r1, #0
ldr r0, [r5, r0]
mov r1, #1
bl FUN_020200BC
ldr r0, _0222DF34 ; =0x00000D78
add r1, r6, #0
ldr r0, [r5, r0]
bl FUN_02020130
ldr r0, [r5, r7]
mov r1, #0
bl FUN_020200A0
add r6, r6, #1
add r4, r4, #4
add r5, r5, #4
cmp r6, #2
blt _0222DED4
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
mov r0, #0x10
mov r1, #1
bl FUN_0201E74C
bl FUN_02033E74
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0222DF28: .word 0x00000CCC
_0222DF2C: .word 0x00000D0C
_0222DF30: .word 0x0222F80C
_0222DF34: .word 0x00000D78
thumb_func_end MOD82_0222DE80
thumb_func_start MOD82_0222DF38
MOD82_0222DF38: ; 0x0222DF38
push {r3, r4, r5, r6, lr}
sub sp, #0xc
ldr r5, _0222DF68 ; =0x0222F804
add r4, sp, #4
ldrh r6, [r5]
add r3, sp, #4
strh r6, [r4]
ldrh r6, [r5, #2]
strh r6, [r4, #2]
ldrh r6, [r5, #4]
ldrh r5, [r5, #6]
strh r6, [r4, #4]
strh r5, [r4, #6]
strb r1, [r4, #2]
strh r2, [r4, #6]
mov r1, #0x44
str r1, [sp]
add r1, r3, #0
mov r2, #0x1f
mov r3, #0xb
bl FUN_02002198
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.align 2, 0
_0222DF68: .word 0x0222F804
thumb_func_end MOD82_0222DF38
thumb_func_start MOD82_0222DF6C
MOD82_0222DF6C: ; 0x0222DF6C
str r1, [r0, #0x1c]
str r2, [r0, #0x20]
bx lr
.align 2, 0
thumb_func_end MOD82_0222DF6C
thumb_func_start MOD82_0222DF74
MOD82_0222DF74: ; 0x0222DF74
push {r4, r5, r6, lr}
add r5, r1, #0
add r4, r2, #0
bl OS_DisableInterrupts
add r6, r0, #0
ldr r0, _0222DF98 ; =0x0222FC0C
add r1, r5, #0
ldr r0, [r0, #4]
add r2, r4, #0
bl tempName_NNS_FndAllocFromExpHeapEx
add r4, r0, #0
add r0, r6, #0
bl OS_RestoreInterrupts
add r0, r4, #0
pop {r4, r5, r6, pc}
.align 2, 0
_0222DF98: .word 0x0222FC0C
thumb_func_end MOD82_0222DF74
thumb_func_start MOD82_0222DF9C
MOD82_0222DF9C: ; 0x0222DF9C
push {r3, r4, r5, lr}
add r5, r1, #0
beq _0222DFB8
bl OS_DisableInterrupts
add r4, r0, #0
ldr r0, _0222DFBC ; =0x0222FC0C
add r1, r5, #0
ldr r0, [r0, #4]
bl FUN_020ADDF0
add r0, r4, #0
bl OS_RestoreInterrupts
_0222DFB8:
pop {r3, r4, r5, pc}
nop
_0222DFBC: .word 0x0222FC0C
thumb_func_end MOD82_0222DF9C
thumb_func_start MOD82_0222DFC0
MOD82_0222DFC0: ; 0x0222DFC0
push {r3, lr}
bl MOD04_021DDB08
mov r1, #3
sub r0, r1, r0
pop {r3, pc}
thumb_func_end MOD82_0222DFC0
thumb_func_start MOD82_0222DFCC
MOD82_0222DFCC: ; 0x0222DFCC
str r1, [r0, #0x14]
str r2, [r0, #0x18]
bx lr
.align 2, 0
thumb_func_end MOD82_0222DFCC
thumb_func_start MOD82_0222DFD4
MOD82_0222DFD4: ; 0x0222DFD4
push {r4, lr}
add r4, r0, #0
bl MOD82_0222DCE4
bl MOD82_0222DD24
add r0, r4, #0
bl MOD82_0222DD54
add r0, r4, #0
bl MOD82_0222DE80
ldr r0, _0222DFF8 ; =MOD82_0222DCC4
mov r1, #0
bl FUN_02015F10
pop {r4, pc}
nop
_0222DFF8: .word MOD82_0222DCC4
thumb_func_end MOD82_0222DFD4
thumb_func_start MOD82_0222DFFC
MOD82_0222DFFC: ; 0x0222DFFC
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
ldr r0, _0222E048 ; =0x00000CDC
ldr r0, [r6, r0]
bl FUN_02009C0C
mov r0, #0xce
lsl r0, r0, #4
ldr r0, [r6, r0]
bl FUN_02009E04
ldr r7, _0222E04C ; =0x00000CCC
mov r4, #0
add r5, r6, #0
_0222E018:
ldr r0, [r5, r7]
bl FUN_02008E2C
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _0222E018
mov r0, #0xba
lsl r0, r0, #4
ldr r0, [r6, r0]
bl FUN_0201FD58
mov r0, #0xba
mov r1, #0
lsl r0, r0, #4
str r1, [r6, r0]
bl FUN_02009FA0
bl FUN_0201D12C
bl FUN_0201E08C
pop {r3, r4, r5, r6, r7, pc}
nop
_0222E048: .word 0x00000CDC
_0222E04C: .word 0x00000CCC
thumb_func_end MOD82_0222DFFC
thumb_func_start MOD82_0222E050
MOD82_0222E050: ; 0x0222E050
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
bl MOD82_0222E4AC
mov r0, #8
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r0, #0x44
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl FUN_0200E1D0
ldr r0, [r4, #4]
bl MOD82_0222E15C
add r0, r4, #0
bl MOD82_0222E264
add r0, r4, #0
bl MOD82_0222E35C
mov r0, #1
add r1, r0, #0
bl FUN_0201E6E4
mov r0, #2
mov r1, #1
bl FUN_0201E6E4
mov r0, #1
add r1, r0, #0
bl FUN_0201E74C
mov r0, #2
mov r1, #1
bl FUN_0201E74C
ldr r0, [r4]
ldr r0, [r0, #0xc]
bl FUN_02033288
add r0, r4, #0
bl MOD82_0222F6D0
ldr r0, [r4]
mov r1, #0
ldr r0, [r0]
bl FUN_0202A444
str r0, [r4, #0x38]
str r0, [r4, #0x3c]
mov r0, #1
str r0, [r4, #0x44]
ldr r0, _0222E110 ; =0x00000EB4
mov r1, #0
str r1, [r4, r0]
bl MOD04_021DDD7C
cmp r0, #0
bne _0222E104
ldr r0, [r4]
ldr r0, [r0, #0x24]
cmp r0, #0
beq _0222E0FE
ldr r0, _0222E114 ; =0x00000F0F
mov r1, #0x2e
str r0, [sp]
lsl r1, r1, #6
mov r2, #1
ldr r1, [r4, r1]
add r0, r4, #0
add r3, r2, #0
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2d
mov r2, #2
bl MOD82_0222DF6C
add r0, r4, #0
bl MOD82_0222F700
b _0222E108
_0222E0FE:
mov r0, #0
str r0, [r4, #0x1c]
b _0222E108
_0222E104:
mov r0, #0x31
str r0, [r4, #0x1c]
_0222E108:
mov r0, #2
add sp, #0xc
pop {r3, r4, pc}
nop
_0222E110: .word 0x00000EB4
_0222E114: .word 0x00000F0F
thumb_func_end MOD82_0222E050
thumb_func_start MOD82_0222E118
MOD82_0222E118: ; 0x0222E118
push {r4, lr}
add r4, r0, #0
bl MOD82_0222DFC0
bl FUN_02033EEC
ldr r1, [r4, #0x1c]
add r0, r4, #0
lsl r2, r1, #2
ldr r1, _0222E134 ; =0x0222FA18
ldr r1, [r1, r2]
blx r1
pop {r4, pc}
nop
_0222E134: .word 0x0222FA18
thumb_func_end MOD82_0222E118
thumb_func_start MOD82_0222E138
MOD82_0222E138: ; 0x0222E138
push {r4, lr}
add r4, r0, #0
bl MOD82_0222E504
add r0, r4, #0
bl MOD82_0222E474
ldr r0, [r4, #4]
bl MOD82_0222E240
ldr r0, [r4, #0x14]
str r0, [r4, #0x10]
cmp r0, #0
bne _0222E158
mov r0, #5
pop {r4, pc}
_0222E158:
mov r0, #1
pop {r4, pc}
thumb_func_end MOD82_0222E138
thumb_func_start MOD82_0222E15C
MOD82_0222E15C: ; 0x0222E15C
push {r3, r4, r5, lr}
sub sp, #0x70
ldr r5, _0222E230 ; =0x0222F894
add r4, r0, #0
ldmia r5!, {r0, r1}
add r3, sp, #0x54
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #0
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
bl FUN_02016C18
mov r0, #1
mov r1, #0
bl FUN_0201E6E4
add r0, r4, #0
mov r1, #0
bl FUN_02018744
ldr r5, _0222E234 ; =0x0222F878
add r3, sp, #0x38
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #1
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
mov r0, #2
mov r1, #0
bl FUN_0201E6E4
ldr r5, _0222E238 ; =0x0222F8B0
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #4
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
mov r0, #1
mov r1, #0
bl FUN_0201E74C
add r0, r4, #0
mov r1, #4
bl FUN_02018744
ldr r5, _0222E23C ; =0x0222F85C
add r3, sp, #0
ldmia r5!, {r0, r1}
add r2, r3, #0
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
ldr r0, [r5]
mov r1, #5
str r0, [r3]
add r0, r4, #0
mov r3, #0
bl FUN_02016C18
mov r0, #2
mov r1, #0
bl FUN_0201E74C
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x44
bl FUN_02017F18
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x44
bl FUN_02017F18
add sp, #0x70
pop {r3, r4, r5, pc}
nop
_0222E230: .word 0x0222F894
_0222E234: .word 0x0222F878
_0222E238: .word 0x0222F8B0
_0222E23C: .word 0x0222F85C
thumb_func_end MOD82_0222E15C
thumb_func_start MOD82_0222E240
MOD82_0222E240: ; 0x0222E240
push {r4, lr}
add r4, r0, #0
mov r1, #5
bl FUN_020178A0
add r0, r4, #0
mov r1, #4
bl FUN_020178A0
add r0, r4, #0
mov r1, #1
bl FUN_020178A0
add r0, r4, #0
mov r1, #0
bl FUN_020178A0
pop {r4, pc}
thumb_func_end MOD82_0222E240
thumb_func_start MOD82_0222E264
MOD82_0222E264: ; 0x0222E264
push {r3, r4, r5, lr}
sub sp, #0x10
add r5, r0, #0
ldr r4, [r5, #4]
mov r2, #0
str r2, [sp]
mov r0, #0x44
str r0, [sp, #4]
mov r0, #0x5c
mov r1, #3
add r3, r2, #0
bl FUN_02006930
mov r3, #0
str r3, [sp]
mov r0, #0x44
str r0, [sp, #4]
mov r0, #0x5c
mov r1, #3
mov r2, #4
bl FUN_02006930
mov r1, #0x1a
mov r0, #0
lsl r1, r1, #4
mov r2, #0x44
bl FUN_02002EEC
mov r1, #0x1a
mov r0, #4
lsl r1, r1, #4
mov r2, #0x44
bl FUN_02002EEC
ldr r0, [r5]
ldr r0, [r0, #0x10]
bl FUN_02025084
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
mov r0, #0x44
str r0, [sp, #4]
add r0, r4, #0
mov r1, #0
mov r2, #1
mov r3, #0xa
bl FUN_0200CD68
mov r1, #0
str r1, [sp]
mov r0, #0x44
str r0, [sp, #4]
add r0, r4, #0
mov r2, #0x1f
mov r3, #0xb
bl FUN_0200CB00
mov r1, #0
mov r0, #0x36
str r1, [sp]
lsl r0, r0, #6
str r0, [sp, #4]
str r1, [sp, #8]
mov r0, #0x44
str r0, [sp, #0xc]
mov r0, #0x5c
mov r1, #2
add r2, r4, #0
mov r3, #1
bl FUN_0200687C
mov r1, #0
mov r0, #6
str r1, [sp]
lsl r0, r0, #8
str r0, [sp, #4]
str r1, [sp, #8]
mov r0, #0x44
str r0, [sp, #0xc]
mov r0, #0x5c
mov r1, #4
add r2, r4, #0
mov r3, #1
bl FUN_020068C8
mov r1, #0
mov r0, #0x36
str r1, [sp]
lsl r0, r0, #6
str r0, [sp, #4]
str r1, [sp, #8]
mov r0, #0x44
str r0, [sp, #0xc]
mov r0, #0x5c
mov r1, #9
add r2, r4, #0
mov r3, #5
bl FUN_0200687C
mov r1, #0
mov r0, #6
str r1, [sp]
lsl r0, r0, #8
str r0, [sp, #4]
str r1, [sp, #8]
mov r0, #0x44
str r0, [sp, #0xc]
mov r0, #0x5c
mov r1, #0xa
add r2, r4, #0
mov r3, #5
bl FUN_020068C8
mov r0, #0
add r1, r0, #0
bl FUN_02017FE4
mov r0, #4
mov r1, #0
bl FUN_02017FE4
add sp, #0x10
pop {r3, r4, r5, pc}
thumb_func_end MOD82_0222E264
thumb_func_start MOD82_0222E35C
MOD82_0222E35C: ; 0x0222E35C
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, #0xd
str r0, [sp, #0xc]
mov r0, #0xa4
mov r1, #0x37
str r0, [sp, #0x10]
lsl r1, r1, #6
ldr r0, [r4, #4]
add r1, r4, r1
mov r2, #0
bl FUN_02019064
mov r0, #0x37
lsl r0, r0, #6
add r0, r4, r0
mov r1, #0
bl FUN_02019620
mov r0, #0xe
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #0x94
mov r1, #0xda
str r0, [sp, #0x10]
lsl r1, r1, #4
ldr r0, [r4, #4]
add r1, r4, r1
mov r2, #0
mov r3, #0x1a
bl FUN_02019064
mov r0, #0xda
lsl r0, r0, #4
add r0, r4, r0
mov r1, #0xf
bl FUN_02019620
mov r0, #0xe
str r0, [sp]
mov r0, #4
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #0x9c
mov r1, #0xd9
str r0, [sp, #0x10]
lsl r1, r1, #4
ldr r0, [r4, #4]
add r1, r4, r1
mov r2, #0
mov r3, #0x1a
bl FUN_02019064
mov r0, #0xd9
lsl r0, r0, #4
add r0, r4, r0
mov r1, #0xf
bl FUN_02019620
mov r2, #1
mov r1, #0xdb
lsl r1, r1, #4
str r2, [sp]
mov r0, #0x18
str r0, [sp, #4]
mov r0, #2
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
mov r0, #0x85
lsl r0, r0, #2
str r0, [sp, #0x10]
ldr r0, [r4, #4]
add r1, r4, r1
mov r3, #4
bl FUN_02019064
mov r0, #0xdb
lsl r0, r0, #4
add r0, r4, r0
mov r1, #6
bl FUN_02019620
mov r3, #1
ldr r0, _0222E46C ; =0x00010406
str r3, [sp]
str r0, [sp, #4]
ldr r1, _0222E470 ; =0x00000B8C
mov r0, #0xdb
lsl r0, r0, #4
ldr r1, [r4, r1]
add r0, r4, r0
mov r2, #0
bl MOD82_0222F62C
mov r0, #0x13
str r0, [sp]
mov r1, #0x1b
str r1, [sp, #4]
mov r0, #4
str r0, [sp, #8]
mov r0, #0xd
str r0, [sp, #0xc]
mov r0, #0x28
str r0, [sp, #0x10]
lsl r1, r1, #7
ldr r0, [r4, #4]
add r1, r4, r1
mov r2, #0
mov r3, #2
bl FUN_02019064
mov r0, #0x36
lsl r0, r0, #6
add r0, r4, r0
mov r1, #0xf
bl FUN_02019620
add sp, #0x14
pop {r3, r4, pc}
nop
_0222E46C: .word 0x00010406
_0222E470: .word 0x00000B8C
thumb_func_end MOD82_0222E35C
thumb_func_start MOD82_0222E474
MOD82_0222E474: ; 0x0222E474
push {r4, lr}
add r4, r0, #0
mov r0, #0x36
lsl r0, r0, #6
add r0, r4, r0
bl FUN_02019178
mov r0, #0xdb
lsl r0, r0, #4
add r0, r4, r0
bl FUN_02019178
mov r0, #0xd9
lsl r0, r0, #4
add r0, r4, r0
bl FUN_02019178
mov r0, #0xda
lsl r0, r0, #4
add r0, r4, r0
bl FUN_02019178
mov r0, #0x37
lsl r0, r0, #6
add r0, r4, r0
bl FUN_02019178
pop {r4, pc}
thumb_func_end MOD82_0222E474
thumb_func_start MOD82_0222E4AC
MOD82_0222E4AC: ; 0x0222E4AC
push {r4, lr}
add r4, r0, #0
mov r0, #0xb4
mov r1, #0x44
bl FUN_020219F4
ldr r1, _0222E4F4 ; =0x00000B88
str r0, [r4, r1]
mov r0, #4
mov r1, #0x44
bl FUN_020219F4
mov r1, #0xb9
lsl r1, r1, #4
str r0, [r4, r1]
mov r0, #3
mov r1, #0x44
bl FUN_020219F4
ldr r1, _0222E4F8 ; =0x00000B94
str r0, [r4, r1]
sub r1, #0x18
ldr r0, [r4, r1]
mov r1, #0xa
bl FUN_0200A914
ldr r1, _0222E4FC ; =0x00000B8C
str r0, [r4, r1]
mov r0, #1
lsl r0, r0, #8
mov r1, #0x44
bl FUN_020219F4
ldr r1, _0222E500 ; =0x00000B98
str r0, [r4, r1]
pop {r4, pc}
.align 2, 0
_0222E4F4: .word 0x00000B88
_0222E4F8: .word 0x00000B94
_0222E4FC: .word 0x00000B8C
_0222E500: .word 0x00000B98
thumb_func_end MOD82_0222E4AC
thumb_func_start MOD82_0222E504
MOD82_0222E504: ; 0x0222E504
push {r4, lr}
add r4, r0, #0
ldr r0, _0222E534 ; =0x00000B98
ldr r0, [r4, r0]
bl FUN_02021A20
ldr r0, _0222E538 ; =0x00000B8C
ldr r0, [r4, r0]
bl FUN_02021A20
ldr r0, _0222E53C ; =0x00000B94
ldr r0, [r4, r0]
bl FUN_02021A20
mov r0, #0xb9
lsl r0, r0, #4
ldr r0, [r4, r0]
bl FUN_02021A20
ldr r0, _0222E540 ; =0x00000B88
ldr r0, [r4, r0]
bl FUN_02021A20
pop {r4, pc}
.align 2, 0
_0222E534: .word 0x00000B98
_0222E538: .word 0x00000B8C
_0222E53C: .word 0x00000B94
_0222E540: .word 0x00000B88
thumb_func_end MOD82_0222E504
thumb_func_start MOD82_0222E544
MOD82_0222E544: ; 0x0222E544
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222E56C ; =0x00000F0F
add r4, r0, #0
str r1, [sp]
ldr r1, _0222E570 ; =0x00000B84
mov r2, #0x10
ldr r1, [r4, r1]
mov r3, #1
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2e
mov r2, #1
bl MOD82_0222DF6C
mov r0, #3
add sp, #4
pop {r3, r4, pc}
nop
_0222E56C: .word 0x00000F0F
_0222E570: .word 0x00000B84
thumb_func_end MOD82_0222E544
thumb_func_start MOD82_0222E574
MOD82_0222E574: ; 0x0222E574
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
mov r0, #0xeb
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0x44
bl FUN_020021AC
mov r1, #0
mvn r1, r1
cmp r0, r1
beq _0222E5CC
sub r1, r1, #1
cmp r0, r1
bne _0222E5A8
bl FUN_020332DC
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl MOD82_0222DFCC
mov r0, #0x2c
str r0, [r4, #0x1c]
b _0222E5CC
_0222E5A8:
ldr r0, _0222E5D4 ; =0x00000F0F
mov r1, #0x2e
str r0, [sp]
lsl r1, r1, #6
mov r2, #1
ldr r1, [r4, r1]
add r0, r4, #0
add r3, r2, #0
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2d
mov r2, #2
bl MOD82_0222DF6C
add r0, r4, #0
bl MOD82_0222F700
_0222E5CC:
mov r0, #3
add sp, #4
pop {r3, r4, pc}
nop
_0222E5D4: .word 0x00000F0F
thumb_func_end MOD82_0222E574
thumb_func_start MOD82_0222E5D8
MOD82_0222E5D8: ; 0x0222E5D8
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222E600 ; =0x00000F0F
add r4, r0, #0
str r1, [sp]
mov r1, #0x2e
lsl r1, r1, #6
ldr r1, [r4, r1]
mov r2, #8
mov r3, #1
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2e
mov r2, #0x32
bl MOD82_0222DF6C
mov r0, #3
add sp, #4
pop {r3, r4, pc}
.align 2, 0
_0222E600: .word 0x00000F0F
thumb_func_end MOD82_0222E5D8
thumb_func_start MOD82_0222E604
MOD82_0222E604: ; 0x0222E604
push {r4, lr}
add r4, r0, #0
mov r0, #0xeb
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0x44
bl FUN_020021AC
mov r1, #0
mvn r1, r1
cmp r0, r1
beq _0222E656
sub r1, r1, #1
cmp r0, r1
bne _0222E636
bl MOD04_021DDD7C
cmp r0, #0
bne _0222E630
mov r0, #0
str r0, [r4, #0x1c]
b _0222E656
_0222E630:
mov r0, #0x27
str r0, [r4, #0x1c]
b _0222E656
_0222E636:
bl MOD04_021DDD7C
cmp r0, #0
bne _0222E64C
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl MOD82_0222DFCC
mov r0, #0x2c
b _0222E64E
_0222E64C:
mov r0, #0x27
_0222E64E:
str r0, [r4, #0x1c]
ldr r0, [r4]
mov r1, #1
str r1, [r0, #0x20]
_0222E656:
mov r0, #3
pop {r4, pc}
.align 2, 0
thumb_func_end MOD82_0222E604
thumb_func_start MOD82_0222E65C
MOD82_0222E65C: ; 0x0222E65C
push {r4, lr}
add r4, r0, #0
add r0, #0x2c
mov r1, #2
mov r2, #1
mov r3, #0x14
bl MOD04_021DDEE0
mov r0, #2
bl MOD04_021DDE7C
bl MOD04_021DDDCC
mov r0, #3
str r0, [r4, #0x1c]
pop {r4, pc}
thumb_func_end MOD82_0222E65C
thumb_func_start MOD82_0222E67C
MOD82_0222E67C: ; 0x0222E67C
push {r3, r4, lr}
sub sp, #0x44
add r4, r0, #0
bl MOD04_021DDCE8
bl MOD04_021DDD7C
cmp r0, #0
beq _0222E6E8
bl MOD04_021DDC1C
cmp r0, #4
beq _0222E6DE
cmp r0, #7
beq _0222E6A0
cmp r0, #8
beq _0222E6C4
b _0222E6E8
_0222E6A0:
add r0, sp, #4
bl MOD04_021DD808
ldr r1, _0222E6F0 ; =0x00000EB8
str r0, [r4, r1]
ldr r2, [sp, #4]
add r0, r1, #4
str r2, [r4, r0]
bl MOD04_021DD6F0
bl MOD04_021DDBBC
add r0, r4, #0
bl MOD82_0222F724
mov r0, #0x35
str r0, [r4, #0x1c]
b _0222E6E8
_0222E6C4:
add r0, sp, #0
bl MOD04_021DD808
add r0, r4, #0
bl MOD82_0222F724
mov r1, #0x33
mov r0, #0x3b
str r1, [r4, #0x1c]
sub r1, #0x35
lsl r0, r0, #6
str r1, [r4, r0]
b _0222E6E8
_0222E6DE:
add r0, sp, #8
bl MOD04_021DD9DC
mov r0, #4
str r0, [r4, #0x1c]
_0222E6E8:
mov r0, #3
add sp, #0x44
pop {r3, r4, pc}
nop
_0222E6F0: .word 0x00000EB8
thumb_func_end MOD82_0222E67C
thumb_func_start MOD82_0222E6F4
MOD82_0222E6F4: ; 0x0222E6F4
push {r4, lr}
add r4, r0, #0
bl MOD04_021DE05C
cmp r0, #0
beq _0222E704
mov r0, #5
str r0, [r4, #0x1c]
_0222E704:
mov r0, #3
pop {r4, pc}
thumb_func_end MOD82_0222E6F4
thumb_func_start MOD82_0222E708
MOD82_0222E708: ; 0x0222E708
push {r4, lr}
sub sp, #8
add r4, r0, #0
bl MOD04_021DDF4C
cmp r0, #3
beq _0222E720
cmp r0, #4
beq _0222E726
cmp r0, #5
beq _0222E726
b _0222E794
_0222E720:
mov r0, #6
str r0, [r4, #0x1c]
b _0222E794
_0222E726:
add r0, r4, #0
bl MOD82_0222F724
add r0, sp, #4
add r1, sp, #0
bl MOD04_021DD718
ldr r1, _0222E79C ; =0x00000EB8
str r0, [r4, r1]
ldr r2, [sp, #4]
add r0, r1, #4
str r2, [r4, r0]
bl MOD04_021DD6F0
bl MOD04_021DDBBC
ldr r0, [sp]
cmp r0, #7
bhi _0222E782
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0222E758: ; jump table
.short _0222E782 - _0222E758 - 2 ; case 0
.short _0222E768 - _0222E758 - 2 ; case 1
.short _0222E768 - _0222E758 - 2 ; case 2
.short _0222E782 - _0222E758 - 2 ; case 3
.short _0222E76E - _0222E758 - 2 ; case 4
.short _0222E782 - _0222E758 - 2 ; case 5
.short _0222E778 - _0222E758 - 2 ; case 6
.short _0222E77E - _0222E758 - 2 ; case 7
_0222E768:
mov r0, #0x35
str r0, [r4, #0x1c]
b _0222E782
_0222E76E:
bl MOD04_021EB550
mov r0, #0x35
str r0, [r4, #0x1c]
b _0222E782
_0222E778:
mov r0, #0x35
str r0, [r4, #0x1c]
b _0222E782
_0222E77E:
bl FUN_020335E0
_0222E782:
ldr r1, [sp, #4]
ldr r0, _0222E7A0 ; =0xFFFFB1E0
cmp r1, r0
bge _0222E794
ldr r0, _0222E7A4 ; =0xFFFF8AD1
cmp r1, r0
blt _0222E794
mov r0, #0x35
str r0, [r4, #0x1c]
_0222E794:
mov r0, #3
add sp, #8
pop {r4, pc}
nop
_0222E79C: .word 0x00000EB8
_0222E7A0: .word 0xFFFFB1E0
_0222E7A4: .word 0xFFFF8AD1
thumb_func_end MOD82_0222E708
thumb_func_start MOD82_0222E7A8
MOD82_0222E7A8: ; 0x0222E7A8
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0, #8]
bl FUN_02023830
cmp r0, #0
bne _0222E7C2
ldr r1, [r5]
ldr r0, [r1, #8]
ldr r1, [r1, #0x1c]
bl FUN_02023834
_0222E7C2:
ldr r0, [r5]
ldr r0, [r0, #8]
bl FUN_02023830
add r4, r0, #0
ldr r0, [r5]
ldr r0, [r0, #0x14]
bl DWC_CreateFriendKey
add r3, r0, #0
add r2, r1, #0
add r0, r4, #0
add r1, r3, #0
bl MOD82_0222D5C0
mov r0, #7
str r0, [r5, #0x1c]
mov r0, #3
pop {r3, r4, r5, pc}
thumb_func_end MOD82_0222E7A8
thumb_func_start MOD82_0222E7E8
MOD82_0222E7E8: ; 0x0222E7E8
push {r4, lr}
add r4, r0, #0
bl MOD82_0222D920
mov r0, #8
str r0, [r4, #0x1c]
mov r0, #3
pop {r4, pc}
thumb_func_end MOD82_0222E7E8
thumb_func_start MOD82_0222E7F8
MOD82_0222E7F8: ; 0x0222E7F8
push {r4, lr}
add r4, r0, #0
bl MOD82_0222D7C4
cmp r0, #0
beq _0222E8AA
bl MOD82_0222D7E4
add r1, r0, #7
cmp r1, #9
bhi _0222E8AA
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0222E81A: ; jump table
.short _0222E882 - _0222E81A - 2 ; case 0
.short _0222E894 - _0222E81A - 2 ; case 1
.short _0222E8A6 - _0222E81A - 2 ; case 2
.short _0222E882 - _0222E81A - 2 ; case 3
.short _0222E8AA - _0222E81A - 2 ; case 4
.short _0222E894 - _0222E81A - 2 ; case 5
.short _0222E870 - _0222E81A - 2 ; case 6
.short _0222E82E - _0222E81A - 2 ; case 7
.short _0222E85E - _0222E81A - 2 ; case 8
.short _0222E870 - _0222E81A - 2 ; case 9
_0222E82E:
add r0, r4, #0
bl MOD82_0222F724
ldr r0, [r4]
ldr r0, [r0, #0x18]
cmp r0, #0
beq _0222E846
cmp r0, #1
beq _0222E852
cmp r0, #2
beq _0222E858
b _0222E8AA
_0222E846:
add r0, r4, #0
mov r1, #9
mov r2, #0xb
bl MOD82_0222DF6C
b _0222E8AA
_0222E852:
mov r0, #0x17
str r0, [r4, #0x1c]
b _0222E8AA
_0222E858:
mov r0, #0x1b
str r0, [r4, #0x1c]
b _0222E8AA
_0222E85E:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222E8AA
_0222E870:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222E8AA
_0222E882:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222E8AA
_0222E894:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222E8AA
_0222E8A6:
bl FUN_020335E0
_0222E8AA:
mov r0, #3
pop {r4, pc}
.align 2, 0
thumb_func_end MOD82_0222E7F8
thumb_func_start MOD82_0222E8B0
MOD82_0222E8B0: ; 0x0222E8B0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x38]
bl MOD82_0222D7F0
mov r0, #0xa
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F700
mov r0, #3
pop {r4, pc}
thumb_func_end MOD82_0222E8B0
thumb_func_start MOD82_0222E8C8
MOD82_0222E8C8: ; 0x0222E8C8
push {r4, lr}
add r4, r0, #0
bl MOD82_0222D7C4
cmp r0, #0
beq _0222E954
bl MOD82_0222D7E4
add r1, r0, #7
cmp r1, #6
bhi _0222E944
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0222E8EA: ; jump table
.short _0222E928 - _0222E8EA - 2 ; case 0
.short _0222E91C - _0222E8EA - 2 ; case 1
.short _0222E934 - _0222E8EA - 2 ; case 2
.short _0222E928 - _0222E8EA - 2 ; case 3
.short _0222E910 - _0222E8EA - 2 ; case 4
.short _0222E904 - _0222E8EA - 2 ; case 5
.short _0222E8F8 - _0222E8EA - 2 ; case 6
_0222E8F8:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
b _0222E94E
_0222E904:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
b _0222E94E
_0222E910:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
b _0222E94E
_0222E91C:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
b _0222E94E
_0222E928:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
b _0222E94E
_0222E934:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
bl FUN_020335E0
b _0222E94E
_0222E944:
cmp r0, #0
ble _0222E94E
str r0, [r4, #0x40]
ldr r0, [r4, #0x20]
str r0, [r4, #0x1c]
_0222E94E:
add r0, r4, #0
bl MOD82_0222F724
_0222E954:
mov r0, #3
pop {r4, pc}
thumb_func_end MOD82_0222E8C8
thumb_func_start MOD82_0222E958
MOD82_0222E958: ; 0x0222E958
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222E980 ; =0x00000F0F
add r4, r0, #0
str r1, [sp]
ldr r1, _0222E984 ; =0x00000B7C
mov r2, #0
ldr r1, [r4, r1]
mov r3, #1
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2d
mov r2, #0xc
bl MOD82_0222DF6C
mov r0, #3
add sp, #4
pop {r3, r4, pc}
nop
_0222E980: .word 0x00000F0F
_0222E984: .word 0x00000B7C
thumb_func_end MOD82_0222E958
thumb_func_start MOD82_0222E988
MOD82_0222E988: ; 0x0222E988
push {r4, lr}
add r4, r0, #0
mov r0, #0xda
lsl r0, r0, #4
add r0, r4, r0
mov r1, #0
mov r2, #0x1f
mov r3, #0xa
bl FUN_0200CCA4
mov r1, #0xb9
mov r0, #0xda
lsl r1, r1, #4
lsl r0, r0, #4
ldr r1, [r4, r1]
ldr r2, [r4, #0x44]
add r0, r4, r0
mov r3, #3
bl MOD82_0222F694
add r0, r4, #0
mov r1, #0
mov r2, #1
bl MOD82_0222F6D8
mov r0, #0xda
lsl r0, r0, #4
add r0, r4, r0
bl FUN_020191D0
mov r0, #0xd
str r0, [r4, #0x1c]
mov r0, #3
pop {r4, pc}
thumb_func_end MOD82_0222E988
thumb_func_start MOD82_0222E9CC
MOD82_0222E9CC: ; 0x0222E9CC
push {r3, r4, lr}
sub sp, #0x1c
ldr r2, _0222EA9C ; =0x021C48B8
mov r1, #0x40
ldr r3, [r2, #0x4c]
add r4, r0, #0
tst r1, r3
beq _0222EA08
ldr r0, [r4, #0x44]
add r1, r0, #1
str r1, [r4, #0x44]
ldr r0, [r4, #0x40]
cmp r1, r0
ble _0222E9EC
mov r0, #1
str r0, [r4, #0x44]
_0222E9EC:
mov r1, #0xb9
mov r0, #0xda
lsl r1, r1, #4
lsl r0, r0, #4
ldr r1, [r4, r1]
ldr r2, [r4, #0x44]
add r0, r4, r0
mov r3, #3
bl MOD82_0222F694
ldr r0, _0222EAA0 ; =0x000005DC
bl FUN_020054C8
b _0222EA94
_0222EA08:
mov r1, #0x80
tst r1, r3
beq _0222EA38
ldr r0, [r4, #0x44]
sub r0, r0, #1
str r0, [r4, #0x44]
cmp r0, #1
bge _0222EA1C
ldr r0, [r4, #0x40]
str r0, [r4, #0x44]
_0222EA1C:
mov r1, #0xb9
mov r0, #0xda
lsl r1, r1, #4
lsl r0, r0, #4
ldr r1, [r4, r1]
ldr r2, [r4, #0x44]
add r0, r4, r0
mov r3, #3
bl MOD82_0222F694
ldr r0, _0222EAA0 ; =0x000005DC
bl FUN_020054C8
b _0222EA94
_0222EA38:
ldr r2, [r2, #0x48]
mov r1, #1
tst r1, r2
beq _0222EA7C
add r0, sp, #0
add r1, sp, #0x10
bl MOD04_021DE1F8
ldr r0, [r4]
ldr r1, [r4, #0x3c]
ldr r2, [r4, #0x44]
lsl r1, r1, #0x18
lsl r2, r2, #0x18
ldr r0, [r0, #4]
lsr r1, r1, #0x18
lsr r2, r2, #0x18
add r3, sp, #0
bl FUN_0202A6B4
cmp r0, #0
beq _0222EA66
mov r0, #0x12
b _0222EA68
_0222EA66:
mov r0, #0xe
_0222EA68:
mov r1, #0
str r0, [r4, #0x1c]
add r0, r4, #0
add r2, r1, #0
bl MOD82_0222F6D8
ldr r0, _0222EAA0 ; =0x000005DC
bl FUN_020054C8
b _0222EA94
_0222EA7C:
mov r1, #2
tst r1, r2
beq _0222EA94
mov r1, #0
add r2, r1, #0
bl MOD82_0222F6D8
mov r0, #0x13
str r0, [r4, #0x1c]
ldr r0, _0222EAA0 ; =0x000005DC
bl FUN_020054C8
_0222EA94:
mov r0, #3
add sp, #0x1c
pop {r3, r4, pc}
nop
_0222EA9C: .word 0x021C48B8
_0222EAA0: .word 0x000005DC
thumb_func_end MOD82_0222E9CC
thumb_func_start MOD82_0222EAA4
MOD82_0222EAA4: ; 0x0222EAA4
push {r4, lr}
sub sp, #8
add r4, r0, #0
mov r0, #2
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, _0222EB00 ; =0x00000B78
ldr r2, [r4, #0x44]
ldr r0, [r4, r0]
mov r1, #0
mov r3, #3
bl FUN_0200AD38
mov r3, #2
str r3, [sp]
mov r1, #1
str r1, [sp, #4]
ldr r0, _0222EB00 ; =0x00000B78
ldr r2, [r4, #0x3c]
ldr r0, [r4, r0]
bl FUN_0200AD38
ldr r0, _0222EB04 ; =0x00000F0F
mov r2, #1
str r0, [sp]
ldr r1, _0222EB08 ; =0x00000B7C
add r0, r4, #0
ldr r1, [r4, r1]
add r3, r2, #0
bl MOD82_0222F4D8
add r0, r4, #0
mov r1, #0x2d
mov r2, #0xf
bl MOD82_0222DF6C
add r4, #0x48
ldr r2, _0222EB0C ; =0x00000A38
mov r0, #0
add r1, r4, #0
bl MIi_CpuClearFast
mov r0, #3
add sp, #8
pop {r4, pc}
.align 2, 0
_0222EB00: .word 0x00000B78
_0222EB04: .word 0x00000F0F
_0222EB08: .word 0x00000B7C
_0222EB0C: .word 0x00000A38
thumb_func_end MOD82_0222EAA4
thumb_func_start MOD82_0222EB10
MOD82_0222EB10: ; 0x0222EB10
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222EB38 ; =0x00000F0F
add r4, r0, #0
str r1, [sp]
ldr r1, _0222EB3C ; =0x00000B7C
mov r2, #2
ldr r1, [r4, r1]
mov r3, #1
bl MOD82_0222F4D8
add r0, r4, #0
mov r1, #0x2d
mov r2, #0xb
bl MOD82_0222DF6C
mov r0, #3
add sp, #4
pop {r3, r4, pc}
nop
_0222EB38: .word 0x00000F0F
_0222EB3C: .word 0x00000B7C
thumb_func_end MOD82_0222EB10
thumb_func_start MOD82_0222EB40
MOD82_0222EB40: ; 0x0222EB40
push {r4, lr}
add r4, r0, #0
add r2, r4, #0
ldr r0, [r4, #0x38]
ldr r1, [r4, #0x44]
add r2, #0x48
bl MOD82_0222D840
add r0, r4, #0
bl MOD82_0222F700
mov r0, #0x10
str r0, [r4, #0x1c]
mov r0, #3
pop {r4, pc}
.align 2, 0
thumb_func_end MOD82_0222EB40
thumb_func_start MOD82_0222EB60
MOD82_0222EB60: ; 0x0222EB60
push {r3, r4, lr}
sub sp, #0x1c
add r4, r0, #0
bl MOD82_0222D7C4
cmp r0, #0
beq _0222EC44
bl MOD82_0222D7E4
add r1, r0, #7
cmp r1, #7
bhi _0222EC44
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0222EB84: ; jump table
.short _0222EC1E - _0222EB84 - 2 ; case 0
.short _0222EC0C - _0222EB84 - 2 ; case 1
.short _0222EC30 - _0222EB84 - 2 ; case 2
.short _0222EBFA - _0222EB84 - 2 ; case 3
.short _0222EBFA - _0222EB84 - 2 ; case 4
.short _0222EBE8 - _0222EB84 - 2 ; case 5
.short _0222EBD6 - _0222EB84 - 2 ; case 6
.short _0222EB94 - _0222EB84 - 2 ; case 7
_0222EB94:
ldr r0, [r4]
ldr r2, [r4, #0x38]
ldr r3, [r4, #0x44]
add r1, r4, #0
lsl r2, r2, #0x18
lsl r3, r3, #0x18
ldr r0, [r0, #4]
add r1, #0x48
lsr r2, r2, #0x18
lsr r3, r3, #0x18
bl FUN_0202A754
add r0, r4, #0
mov r1, #0x25
mov r2, #0x11
bl MOD82_0222DF6C
add r0, sp, #0
add r1, sp, #0x10
bl MOD04_021DE1F8
ldr r0, [r4]
ldr r1, [r4, #0x3c]
ldr r2, [r4, #0x44]
lsl r1, r1, #0x18
lsl r2, r2, #0x18
ldr r0, [r0, #4]
lsr r1, r1, #0x18
lsr r2, r2, #0x18
add r3, sp, #0
bl FUN_0202A60C
b _0222EC44
_0222EBD6:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222EC44
_0222EBE8:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222EC44
_0222EBFA:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #9
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222EC44
_0222EC0C:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222EC44
_0222EC1E:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222EC44
_0222EC30:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
bl FUN_020335E0
_0222EC44:
mov r0, #3
add sp, #0x1c
pop {r3, r4, pc}
.align 2, 0
thumb_func_end MOD82_0222EB60
thumb_func_start MOD82_0222EC4C
MOD82_0222EC4C: ; 0x0222EC4C
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222EC80 ; =0x00000F0F
add r4, r0, #0
str r1, [sp]
ldr r1, _0222EC84 ; =0x00000B7C
mov r2, #3
ldr r1, [r4, r1]
mov r3, #1
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2d
mov r2, #0x2b
bl MOD82_0222DF6C
add r0, r4, #0
bl MOD82_0222F724
ldr r0, [r4]
mov r1, #0
str r1, [r0, #0x20]
mov r0, #3
add sp, #4
pop {r3, r4, pc}
nop
_0222EC80: .word 0x00000F0F
_0222EC84: .word 0x00000B7C
thumb_func_end MOD82_0222EC4C
thumb_func_start MOD82_0222EC88
MOD82_0222EC88: ; 0x0222EC88
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222ECB4 ; =0x00000F0F
add r4, r0, #0
str r1, [sp]
ldr r1, _0222ECB8 ; =0x00000B7C
mov r2, #7
ldr r1, [r4, r1]
mov r3, #1
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2d
mov r2, #0x18
bl MOD82_0222DF6C
add r0, r4, #0
bl MOD82_0222F700
mov r0, #3
add sp, #4
pop {r3, r4, pc}
.align 2, 0
_0222ECB4: .word 0x00000F0F
_0222ECB8: .word 0x00000B7C
thumb_func_end MOD82_0222EC88
thumb_func_start MOD82_0222ECBC
MOD82_0222ECBC: ; 0x0222ECBC
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0]
bl FUN_0202A524
add r4, r0, #0
ldr r0, [r5]
add r1, sp, #0
ldr r0, [r0, #4]
bl FUN_0202A784
ldr r0, [r5]
mov r2, #0x2a
lsl r2, r2, #6
ldr r0, [r0, #0xc]
mov r1, #1
add r2, r5, r2
bl FUN_02066840
add r1, sp, #0
ldrb r0, [r1]
mov r3, #0x2a
lsl r3, r3, #6
ldrb r1, [r1, #1]
add r2, r4, #0
add r3, r5, r3
bl MOD82_0222D8A0
mov r0, #0x19
str r0, [r5, #0x1c]
mov r0, #3
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD82_0222ECBC
thumb_func_start MOD82_0222ED00
MOD82_0222ED00: ; 0x0222ED00
push {r4, lr}
add r4, r0, #0
bl MOD82_0222D7C4
cmp r0, #0
beq _0222EDB8
bl MOD82_0222D7E4
add r1, r0, #7
cmp r1, #7
bhi _0222EDB8
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0222ED22: ; jump table
.short _0222ED92 - _0222ED22 - 2 ; case 0
.short _0222ED80 - _0222ED22 - 2 ; case 1
.short _0222EDA4 - _0222ED22 - 2 ; case 2
.short _0222ED92 - _0222ED22 - 2 ; case 3
.short _0222ED6E - _0222ED22 - 2 ; case 4
.short _0222ED5C - _0222ED22 - 2 ; case 5
.short _0222ED4A - _0222ED22 - 2 ; case 6
.short _0222ED32 - _0222ED22 - 2 ; case 7
_0222ED32:
ldr r0, [r4]
mov r1, #5
ldr r0, [r0]
mov r2, #2
bl FUN_0202A578
add r0, r4, #0
mov r1, #0x25
mov r2, #0x1a
bl MOD82_0222DF6C
b _0222EDB8
_0222ED4A:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222EDB8
_0222ED5C:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222EDB8
_0222ED6E:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222EDB8
_0222ED80:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222EDB8
_0222ED92:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222EDB8
_0222EDA4:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
bl FUN_020335E0
_0222EDB8:
mov r0, #3
pop {r4, pc}
thumb_func_end MOD82_0222ED00
thumb_func_start MOD82_0222EDBC
MOD82_0222EDBC: ; 0x0222EDBC
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222EDF0 ; =0x00000F0F
add r4, r0, #0
str r1, [sp]
ldr r1, _0222EDF4 ; =0x00000B7C
mov r2, #8
ldr r1, [r4, r1]
mov r3, #1
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2d
mov r2, #0x2b
bl MOD82_0222DF6C
add r0, r4, #0
bl MOD82_0222F724
ldr r0, [r4]
mov r1, #0
str r1, [r0, #0x20]
mov r0, #3
add sp, #4
pop {r3, r4, pc}
nop
_0222EDF0: .word 0x00000F0F
_0222EDF4: .word 0x00000B7C
thumb_func_end MOD82_0222EDBC
thumb_func_start MOD82_0222EDF8
MOD82_0222EDF8: ; 0x0222EDF8
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222EE20 ; =0x00000F0F
add r4, r0, #0
str r1, [sp]
ldr r1, _0222EE24 ; =0x00000B7C
mov r2, #5
ldr r1, [r4, r1]
mov r3, #1
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2d
mov r2, #0x1c
bl MOD82_0222DF6C
mov r0, #3
add sp, #4
pop {r3, r4, pc}
nop
_0222EE20: .word 0x00000F0F
_0222EE24: .word 0x00000B7C
thumb_func_end MOD82_0222EDF8
thumb_func_start MOD82_0222EE28
MOD82_0222EE28: ; 0x0222EE28
push {r4, lr}
add r4, r0, #0
mov r0, #1
str r0, [r4, #0x3c]
mov r0, #0xd9
lsl r0, r0, #4
add r0, r4, r0
mov r1, #0
mov r2, #0x1f
mov r3, #0xa
bl FUN_0200CCA4
ldr r1, _0222EE70 ; =0x00000B94
mov r0, #0xd9
lsl r0, r0, #4
ldr r1, [r4, r1]
ldr r2, [r4, #0x3c]
add r0, r4, r0
mov r3, #2
bl MOD82_0222F694
mov r1, #1
add r0, r4, #0
add r2, r1, #0
bl MOD82_0222F6D8
mov r0, #0xd9
lsl r0, r0, #4
add r0, r4, r0
bl FUN_020191D0
mov r0, #0x1d
str r0, [r4, #0x1c]
mov r0, #3
pop {r4, pc}
nop
_0222EE70: .word 0x00000B94
thumb_func_end MOD82_0222EE28
thumb_func_start MOD82_0222EE74
MOD82_0222EE74: ; 0x0222EE74
push {r4, lr}
ldr r2, _0222EF18 ; =0x021C48B8
mov r1, #0x40
ldr r3, [r2, #0x4c]
add r4, r0, #0
tst r1, r3
beq _0222EEAA
ldr r0, [r4, #0x3c]
add r0, r0, #1
str r0, [r4, #0x3c]
cmp r0, #0xa
ble _0222EE90
mov r0, #1
str r0, [r4, #0x3c]
_0222EE90:
ldr r1, _0222EF1C ; =0x00000B94
mov r0, #0xd9
lsl r0, r0, #4
ldr r1, [r4, r1]
ldr r2, [r4, #0x3c]
add r0, r4, r0
mov r3, #2
bl MOD82_0222F694
ldr r0, _0222EF20 ; =0x000005DC
bl FUN_020054C8
b _0222EF12
_0222EEAA:
mov r1, #0x80
tst r1, r3
beq _0222EED8
ldr r0, [r4, #0x3c]
sub r0, r0, #1
str r0, [r4, #0x3c]
cmp r0, #1
bge _0222EEBE
mov r0, #0xa
str r0, [r4, #0x3c]
_0222EEBE:
ldr r1, _0222EF1C ; =0x00000B94
mov r0, #0xd9
lsl r0, r0, #4
ldr r1, [r4, r1]
ldr r2, [r4, #0x3c]
add r0, r4, r0
mov r3, #2
bl MOD82_0222F694
ldr r0, _0222EF20 ; =0x000005DC
bl FUN_020054C8
b _0222EF12
_0222EED8:
ldr r2, [r2, #0x48]
mov r1, #1
tst r1, r2
beq _0222EEFA
mov r1, #0
add r2, r1, #0
bl MOD82_0222F6D8
add r0, r4, #0
mov r1, #9
mov r2, #0x1e
bl MOD82_0222DF6C
ldr r0, _0222EF20 ; =0x000005DC
bl FUN_020054C8
b _0222EF12
_0222EEFA:
mov r1, #2
tst r1, r2
beq _0222EF12
mov r1, #0
add r2, r1, #0
bl MOD82_0222F6D8
mov r0, #0x15
str r0, [r4, #0x1c]
ldr r0, _0222EF20 ; =0x000005DC
bl FUN_020054C8
_0222EF12:
mov r0, #3
pop {r4, pc}
nop
_0222EF18: .word 0x021C48B8
_0222EF1C: .word 0x00000B94
_0222EF20: .word 0x000005DC
thumb_func_end MOD82_0222EE74
thumb_func_start MOD82_0222EF24
MOD82_0222EF24: ; 0x0222EF24
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222EF4C ; =0x00000F0F
add r4, r0, #0
str r1, [sp]
ldr r1, _0222EF50 ; =0x00000B7C
mov r2, #6
ldr r1, [r4, r1]
mov r3, #1
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2d
mov r2, #0x1f
bl MOD82_0222DF6C
mov r0, #3
add sp, #4
pop {r3, r4, pc}
nop
_0222EF4C: .word 0x00000F0F
_0222EF50: .word 0x00000B7C
thumb_func_end MOD82_0222EF24
thumb_func_start MOD82_0222EF54
MOD82_0222EF54: ; 0x0222EF54
push {r4, lr}
add r4, r0, #0
mov r0, #1
str r0, [r4, #0x44]
mov r0, #0xda
lsl r0, r0, #4
add r0, r4, r0
mov r1, #0
mov r2, #0x1f
mov r3, #0xa
bl FUN_0200CCA4
mov r1, #0xb9
mov r0, #0xda
lsl r1, r1, #4
lsl r0, r0, #4
ldr r1, [r4, r1]
ldr r2, [r4, #0x44]
add r0, r4, r0
mov r3, #3
bl MOD82_0222F694
add r0, r4, #0
mov r1, #0
mov r2, #1
bl MOD82_0222F6D8
mov r0, #0xda
lsl r0, r0, #4
add r0, r4, r0
bl FUN_020191D0
mov r0, #0x20
str r0, [r4, #0x1c]
mov r0, #3
pop {r4, pc}
thumb_func_end MOD82_0222EF54
thumb_func_start MOD82_0222EF9C
MOD82_0222EF9C: ; 0x0222EF9C
push {r4, lr}
ldr r2, _0222F040 ; =0x021C48B8
mov r1, #0x40
ldr r3, [r2, #0x4c]
add r4, r0, #0
tst r1, r3
beq _0222EFD8
ldr r0, [r4, #0x44]
add r1, r0, #1
str r1, [r4, #0x44]
ldr r0, [r4, #0x40]
add r0, r0, #1
cmp r1, r0
bne _0222EFBC
mov r0, #1
str r0, [r4, #0x44]
_0222EFBC:
mov r1, #0xb9
mov r0, #0xda
lsl r1, r1, #4
lsl r0, r0, #4
ldr r1, [r4, r1]
ldr r2, [r4, #0x44]
add r0, r4, r0
mov r3, #3
bl MOD82_0222F694
ldr r0, _0222F044 ; =0x000005DC
bl FUN_020054C8
b _0222F03C
_0222EFD8:
mov r1, #0x80
tst r1, r3
beq _0222F008
ldr r0, [r4, #0x44]
sub r0, r0, #1
str r0, [r4, #0x44]
cmp r0, #1
bge _0222EFEC
ldr r0, [r4, #0x40]
str r0, [r4, #0x44]
_0222EFEC:
mov r1, #0xb9
mov r0, #0xda
lsl r1, r1, #4
lsl r0, r0, #4
ldr r1, [r4, r1]
ldr r2, [r4, #0x44]
add r0, r4, r0
mov r3, #3
bl MOD82_0222F694
ldr r0, _0222F044 ; =0x000005DC
bl FUN_020054C8
b _0222F03C
_0222F008:
ldr r2, [r2, #0x48]
mov r1, #1
tst r1, r2
beq _0222F024
mov r1, #0
add r2, r1, #0
bl MOD82_0222F6D8
mov r0, #0x21
str r0, [r4, #0x1c]
ldr r0, _0222F044 ; =0x000005DC
bl FUN_020054C8
b _0222F03C
_0222F024:
mov r1, #2
tst r1, r2
beq _0222F03C
mov r1, #0
add r2, r1, #0
bl MOD82_0222F6D8
mov r0, #0x1b
str r0, [r4, #0x1c]
ldr r0, _0222F044 ; =0x000005DC
bl FUN_020054C8
_0222F03C:
mov r0, #3
pop {r4, pc}
.align 2, 0
_0222F040: .word 0x021C48B8
_0222F044: .word 0x000005DC
thumb_func_end MOD82_0222EF9C
thumb_func_start MOD82_0222F048
MOD82_0222F048: ; 0x0222F048
push {r4, lr}
sub sp, #8
add r4, r0, #0
mov r0, #2
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, _0222F09C ; =0x00000B78
ldr r2, [r4, #0x44]
ldr r0, [r4, r0]
mov r1, #0
mov r3, #3
bl FUN_0200AD38
mov r3, #2
str r3, [sp]
mov r1, #1
str r1, [sp, #4]
ldr r0, _0222F09C ; =0x00000B78
ldr r2, [r4, #0x3c]
ldr r0, [r4, r0]
bl FUN_0200AD38
ldr r0, _0222F0A0 ; =0x00000F0F
mov r2, #1
str r0, [sp]
ldr r1, _0222F0A4 ; =0x00000B7C
add r0, r4, #0
ldr r1, [r4, r1]
add r3, r2, #0
bl MOD82_0222F4D8
add r0, r4, #0
mov r1, #0x2d
mov r2, #0x22
bl MOD82_0222DF6C
mov r0, #0x22
str r0, [r4, #0x1c]
mov r0, #3
add sp, #8
pop {r4, pc}
.align 2, 0
_0222F09C: .word 0x00000B78
_0222F0A0: .word 0x00000F0F
_0222F0A4: .word 0x00000B7C
thumb_func_end MOD82_0222F048
thumb_func_start MOD82_0222F0A8
MOD82_0222F0A8: ; 0x0222F0A8
push {r4, lr}
add r4, r0, #0
add r2, r4, #0
ldr r0, [r4, #0x3c]
ldr r1, [r4, #0x44]
add r2, #0x48
bl MOD82_0222D840
mov r0, #0x23
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F700
mov r0, #3
pop {r4, pc}
.align 2, 0
thumb_func_end MOD82_0222F0A8
thumb_func_start MOD82_0222F0C8
MOD82_0222F0C8: ; 0x0222F0C8
push {r4, lr}
add r4, r0, #0
bl MOD82_0222D7C4
cmp r0, #0
beq _0222F18C
bl MOD82_0222D7E4
add r1, r0, #7
cmp r1, #7
bhi _0222F18C
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0222F0EA: ; jump table
.short _0222F166 - _0222F0EA - 2 ; case 0
.short _0222F154 - _0222F0EA - 2 ; case 1
.short _0222F178 - _0222F0EA - 2 ; case 2
.short _0222F166 - _0222F0EA - 2 ; case 3
.short _0222F142 - _0222F0EA - 2 ; case 4
.short _0222F130 - _0222F0EA - 2 ; case 5
.short _0222F11E - _0222F0EA - 2 ; case 6
.short _0222F0FA - _0222F0EA - 2 ; case 7
_0222F0FA:
ldr r0, [r4]
ldr r2, [r4, #0x3c]
ldr r3, [r4, #0x44]
ldr r1, _0222F190 ; =0x00000684
lsl r2, r2, #0x18
lsl r3, r3, #0x18
ldr r0, [r0, #4]
add r1, r4, r1
lsr r2, r2, #0x18
lsr r3, r3, #0x18
bl FUN_0202A838
add r0, r4, #0
mov r1, #0x25
mov r2, #0x24
bl MOD82_0222DF6C
b _0222F18C
_0222F11E:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222F18C
_0222F130:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222F18C
_0222F142:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #9
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222F18C
_0222F154:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
b _0222F18C
_0222F166:
mov r1, #9
str r1, [r4, #0x1c]
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
add r0, r4, #0
bl MOD82_0222F724
b _0222F18C
_0222F178:
mov r1, #0x3b
lsl r1, r1, #6
str r0, [r4, r1]
mov r0, #0x33
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
bl FUN_020335E0
_0222F18C:
mov r0, #3
pop {r4, pc}
.align 2, 0
_0222F190: .word 0x00000684
thumb_func_end MOD82_0222F0C8
thumb_func_start MOD82_0222F194
MOD82_0222F194: ; 0x0222F194
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222F1C8 ; =0x00000F0F
add r4, r0, #0
str r1, [sp]
ldr r1, _0222F1CC ; =0x00000B7C
mov r2, #3
ldr r1, [r4, r1]
mov r3, #1
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2d
mov r2, #0x2b
bl MOD82_0222DF6C
add r0, r4, #0
bl MOD82_0222F724
ldr r0, [r4]
mov r1, #0
str r1, [r0, #0x20]
mov r0, #3
add sp, #4
pop {r3, r4, pc}
nop
_0222F1C8: .word 0x00000F0F
_0222F1CC: .word 0x00000B7C
thumb_func_end MOD82_0222F194
thumb_func_start MOD82_0222F1D0
MOD82_0222F1D0: ; 0x0222F1D0
mov r1, #0x27
str r1, [r0, #0x1c]
mov r0, #3
bx lr
thumb_func_end MOD82_0222F1D0
thumb_func_start MOD82_0222F1D8
MOD82_0222F1D8: ; 0x0222F1D8
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
mov r1, #2
ldr r0, [r0, #0xc]
bl FUN_02022840
mov r0, #0x26
str r0, [r4, #0x1c]
mov r0, #3
pop {r4, pc}
.align 2, 0
thumb_func_end MOD82_0222F1D8
thumb_func_start MOD82_0222F1F0
MOD82_0222F1F0: ; 0x0222F1F0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
ldr r0, [r0, #0xc]
bl FUN_02022854
cmp r0, #2
bne _0222F20A
ldr r0, [r4, #0x20]
str r0, [r4, #0x1c]
add r0, r4, #0
bl MOD82_0222F724
_0222F20A:
mov r0, #3
pop {r4, pc}
.align 2, 0
thumb_func_end MOD82_0222F1F0
thumb_func_start MOD82_0222F210
MOD82_0222F210: ; 0x0222F210
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222F238 ; =0x00000F0F
add r4, r0, #0
str r1, [sp]
ldr r1, _0222F23C ; =0x00000B7C
mov r2, #4
ldr r1, [r4, r1]
mov r3, #1
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2e
mov r2, #0x14
bl MOD82_0222DF6C
mov r0, #3
add sp, #4
pop {r3, r4, pc}
nop
_0222F238: .word 0x00000F0F
_0222F23C: .word 0x00000B7C
thumb_func_end MOD82_0222F210
thumb_func_start MOD82_0222F240
MOD82_0222F240: ; 0x0222F240
push {r4, lr}
add r4, r0, #0
mov r0, #0xeb
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0x44
bl FUN_020021AC
mov r1, #0
mvn r1, r1
cmp r0, r1
beq _0222F26E
sub r1, r1, #1
cmp r0, r1
bne _0222F264
mov r0, #0xb
str r0, [r4, #0x1c]
b _0222F26E
_0222F264:
mov r0, #0x27
str r0, [r4, #0x1c]
ldr r0, [r4]
mov r1, #1
str r1, [r0, #0x20]
_0222F26E:
mov r0, #3
pop {r4, pc}
.align 2, 0
thumb_func_end MOD82_0222F240
thumb_func_start MOD82_0222F274
MOD82_0222F274: ; 0x0222F274
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222F29C ; =0x00000F0F
add r4, r0, #0
str r1, [sp]
ldr r1, _0222F2A0 ; =0x00000B7C
mov r2, #9
ldr r1, [r4, r1]
mov r3, #1
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2e
mov r2, #0x16
bl MOD82_0222DF6C
mov r0, #3
add sp, #4
pop {r3, r4, pc}
nop
_0222F29C: .word 0x00000F0F
_0222F2A0: .word 0x00000B7C
thumb_func_end MOD82_0222F274
thumb_func_start MOD82_0222F2A4
MOD82_0222F2A4: ; 0x0222F2A4
push {r4, lr}
add r4, r0, #0
mov r0, #0xeb
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0x44
bl FUN_020021AC
mov r1, #0
mvn r1, r1
cmp r0, r1
beq _0222F2D2
sub r1, r1, #1
cmp r0, r1
bne _0222F2C8
mov r0, #0x1b
str r0, [r4, #0x1c]
b _0222F2D2
_0222F2C8:
mov r0, #0x27
str r0, [r4, #0x1c]
ldr r0, [r4]
mov r1, #1
str r1, [r0, #0x20]
_0222F2D2:
mov r0, #3
pop {r4, pc}
.align 2, 0
thumb_func_end MOD82_0222F2A4
thumb_func_start MOD82_0222F2D8
MOD82_0222F2D8: ; 0x0222F2D8
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222F300 ; =0x00000F0F
add r4, r0, #0
str r1, [sp]
ldr r1, _0222F304 ; =0x00000B84
mov r2, #0x19
ldr r1, [r4, r1]
mov r3, #1
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2d
mov r2, #0x28
bl MOD82_0222DF6C
mov r0, #3
add sp, #4
pop {r3, r4, pc}
nop
_0222F300: .word 0x00000F0F
_0222F304: .word 0x00000B84
thumb_func_end MOD82_0222F2D8
thumb_func_start MOD82_0222F308
MOD82_0222F308: ; 0x0222F308
push {r4, lr}
add r4, r0, #0
bl MOD04_021DDBBC
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl MOD82_0222DFCC
mov r0, #0x29
str r0, [r4, #0x1c]
mov r0, #3
pop {r4, pc}
.align 2, 0
thumb_func_end MOD82_0222F308
thumb_func_start MOD82_0222F324
MOD82_0222F324: ; 0x0222F324
push {r3, r4, lr}
sub sp, #4
ldr r1, _0222F350 ; =0x00000F0F
add r4, r0, #0
str r1, [sp]
ldr r1, _0222F354 ; =0x00000B84
mov r2, #0x1a
ldr r1, [r4, r1]
mov r3, #1
bl MOD82_0222F59C
add r0, r4, #0
mov r1, #0x2f
mov r2, #0x2c
bl MOD82_0222DF6C
ldr r0, _0222F358 ; =0x00000EC4
mov r1, #0
str r1, [r4, r0]
mov r0, #3
add sp, #4
pop {r3, r4, pc}
.align 2, 0
_0222F350: .word 0x00000F0F
_0222F354: .word 0x00000B84
_0222F358: .word 0x00000EC4
thumb_func_end MOD82_0222F324
thumb_func_start MOD82_0222F35C
MOD82_0222F35C: ; 0x0222F35C
mov r0, #3
bx lr
thumb_func_end MOD82_0222F35C
thumb_func_start MOD82_0222F360
MOD82_0222F360: ; 0x0222F360
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
bl FUN_02033ED0
bl FUN_020332DC
mov r0, #8
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
mov r0, #0x44
str r0, [sp, #8]
mov r0, #0
add r1, r0, #0
add r2, r0, #0
add r3, r0, #0
bl FUN_0200E1D0
mov r0, #0
str r0, [r4, #0x1c]
mov r0, #4
add sp, #0xc
pop {r3, r4, pc}
thumb_func_end MOD82_0222F360
thumb_func_start MOD82_0222F390
MOD82_0222F390: ; 0x0222F390
push {r4, lr}
add r4, r0, #0
mov r0, #0xeb
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #0x44
bl FUN_020021AC
mov r1, #0
mvn r1, r1
cmp r0, r1
beq _0222F3B8
sub r1, r1, #1
cmp r0, r1
bne _0222F3B4
mov r0, #0
str r0, [r4, #0x1c]
b _0222F3B8
_0222F3B4:
mov r0, #0x27
str r0, [r4, #0x1c]
_0222F3B8:
mov r0, #3
pop {r4, pc}
thumb_func_end MOD82_0222F390
thumb_func_start MOD82_0222F3BC
MOD82_0222F3BC: ; 0x0222F3BC
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x3b
lsl r0, r0, #6
ldr r0, [r5, r0]
mov r4, #0
add r0, r0, #7
cmp r0, #9
bhi _0222F400
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_0222F3DA: ; jump table
.short _0222F3FA - _0222F3DA - 2 ; case 0
.short _0222F3EE - _0222F3DA - 2 ; case 1
.short _0222F400 - _0222F3DA - 2 ; case 2
.short _0222F3FA - _0222F3DA - 2 ; case 3
.short _0222F3FE - _0222F3DA - 2 ; case 4
.short _0222F3EE - _0222F3DA - 2 ; case 5
.short _0222F3F6 - _0222F3DA - 2 ; case 6
.short _0222F400 - _0222F3DA - 2 ; case 7
.short _0222F3F2 - _0222F3DA - 2 ; case 8
.short _0222F3F6 - _0222F3DA - 2 ; case 9
_0222F3EE:
mov r4, #0xd
b _0222F400
_0222F3F2:
mov r4, #0xb
b _0222F400
_0222F3F6:
mov r4, #0xc
b _0222F400
_0222F3FA:
mov r4, #0xe
b _0222F400
_0222F3FE:
mov r4, #0xf
_0222F400:
add r0, r5, #0
bl MOD82_0222F724
ldr r0, _0222F428 ; =0x00000F0F
ldr r1, _0222F42C ; =0x00000B7C
str r0, [sp]
ldr r1, [r5, r1]
add r0, r5, #0
add r2, r4, #0
mov r3, #1
bl MOD82_0222F59C
add r0, r5, #0
mov r1, #0x2d
mov r2, #0x34
bl MOD82_0222DF6C
mov r0, #3
pop {r3, r4, r5, pc}
nop
_0222F428: .word 0x00000F0F
_0222F42C: .word 0x00000B7C
thumb_func_end MOD82_0222F3BC
thumb_func_start MOD82_0222F430
MOD82_0222F430: ; 0x0222F430
push {r4, lr}
add r4, r0, #0
bl FUN_020332DC
bl MOD04_021DDBBC
mov r1, #0
add r0, r4, #0
add r2, r1, #0
bl MOD82_0222DFCC
mov r0, #0x2c
str r0, [r4, #0x1c]
mov r0, #3
pop {r4, pc}
.align 2, 0
thumb_func_end MOD82_0222F430
thumb_func_start MOD82_0222F450
MOD82_0222F450: ; 0x0222F450
push {r4, lr}
add r4, r0, #0
ldr r0, _0222F46C ; =0x00000B9C
ldr r0, [r4, r0]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD70
cmp r0, #0
bne _0222F468
ldr r0, [r4, #0x20]
str r0, [r4, #0x1c]
_0222F468:
mov r0, #3
pop {r4, pc}
.align 2, 0
_0222F46C: .word 0x00000B9C
thumb_func_end MOD82_0222F450
thumb_func_start MOD82_0222F470
MOD82_0222F470: ; 0x0222F470
push {r4, lr}
add r4, r0, #0
ldr r0, _0222F49C ; =0x00000B9C
ldr r0, [r4, r0]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD70
cmp r0, #0
bne _0222F498
ldr r0, _0222F4A0 ; =0x00000EC4
ldr r0, [r4, r0]
cmp r0, #0x1e
ble _0222F490
ldr r0, [r4, #0x20]
str r0, [r4, #0x1c]
_0222F490:
ldr r0, _0222F4A0 ; =0x00000EC4
ldr r1, [r4, r0]
add r1, r1, #1
str r1, [r4, r0]
_0222F498:
mov r0, #3
pop {r4, pc}
.align 2, 0
_0222F49C: .word 0x00000B9C
_0222F4A0: .word 0x00000EC4
thumb_func_end MOD82_0222F470
thumb_func_start MOD82_0222F4A4
MOD82_0222F4A4: ; 0x0222F4A4
push {r4, lr}
add r4, r0, #0
ldr r0, _0222F4D4 ; =0x00000B9C
ldr r0, [r4, r0]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_0201BD70
cmp r0, #0
bne _0222F4CE
mov r2, #0x91
ldr r0, [r4, #4]
mov r1, #0xd
lsl r2, r2, #2
bl MOD82_0222DF38
mov r1, #0xeb
lsl r1, r1, #4
str r0, [r4, r1]
ldr r0, [r4, #0x20]
str r0, [r4, #0x1c]
_0222F4CE:
mov r0, #3
pop {r4, pc}
nop
_0222F4D4: .word 0x00000B9C
thumb_func_end MOD82_0222F4A4
thumb_func_start MOD82_0222F4D8
MOD82_0222F4D8: ; 0x0222F4D8
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r0, #0
add r0, r1, #0
add r1, r2, #0
add r4, r3, #0
bl FUN_0200A914
add r6, r0, #0
ldr r1, _0222F53C ; =0x00000B78
add r2, r6, #0
ldr r0, [r5, r1]
add r1, #0x10
ldr r1, [r5, r1]
bl FUN_0200B7B8
mov r0, #0x36
lsl r0, r0, #6
add r0, r5, r0
mov r1, #0xf
bl FUN_02019620
mov r0, #0x36
lsl r0, r0, #6
add r0, r5, r0
mov r1, #0
mov r2, #1
mov r3, #0xa
bl FUN_0200D0BC
mov r3, #0
str r3, [sp]
str r4, [sp, #4]
mov r0, #0x36
lsl r0, r0, #6
ldr r2, _0222F540 ; =0x00000B88
str r3, [sp, #8]
ldr r2, [r5, r2]
add r0, r5, r0
mov r1, #1
bl FUN_0201BD84
ldr r1, _0222F544 ; =0x00000B9C
str r0, [r5, r1]
add r0, r6, #0
bl FUN_02021A20
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
_0222F53C: .word 0x00000B78
_0222F540: .word 0x00000B88
_0222F544: .word 0x00000B9C
thumb_func_end MOD82_0222F4D8
thumb_func_start MOD82_0222F548
MOD82_0222F548: ; 0x0222F548
push {r4, lr}
add r4, r0, #0
ldr r0, _0222F56C ; =0x00000EBC
ldr r0, [r4, r0]
neg r0, r0
bl MOD04_021D80E0
ldr r2, _0222F56C ; =0x00000EBC
add r1, r0, #0
ldr r2, [r4, r2]
add r0, r4, #0
neg r2, r2
bl MOD82_0222F7C0
mov r0, #0x36
str r0, [r4, #0x1c]
mov r0, #3
pop {r4, pc}
.align 2, 0
_0222F56C: .word 0x00000EBC
thumb_func_end MOD82_0222F548
thumb_func_start MOD82_0222F570
MOD82_0222F570: ; 0x0222F570
push {r4, lr}
add r4, r0, #0
ldr r0, _0222F598 ; =0x021C48B8
ldr r1, [r0, #0x48]
mov r0, #1
tst r0, r1
bne _0222F584
mov r0, #2
tst r0, r1
beq _0222F594
_0222F584:
mov r0, #0x37
lsl r0, r0, #6
add r0, r4, r0
mov r1, #0
bl FUN_0200CCF8
mov r0, #0
str r0, [r4, #0x1c]
_0222F594:
mov r0, #3
pop {r4, pc}
.align 2, 0
_0222F598: .word 0x021C48B8
thumb_func_end MOD82_0222F570
thumb_func_start MOD82_0222F59C
MOD82_0222F59C: ; 0x0222F59C
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
add r0, r1, #0
add r1, r2, #0
ldr r2, _0222F5EC ; =0x00000B88
add r4, r3, #0
ldr r2, [r5, r2]
bl FUN_0200A8E0
mov r0, #0x36
lsl r0, r0, #6
add r0, r5, r0
mov r1, #0xf
bl FUN_02019620
mov r0, #0x36
lsl r0, r0, #6
add r0, r5, r0
mov r1, #0
mov r2, #1
mov r3, #0xa
bl FUN_0200D0BC
mov r3, #0
str r3, [sp]
str r4, [sp, #4]
mov r0, #0x36
lsl r0, r0, #6
ldr r2, _0222F5EC ; =0x00000B88
str r3, [sp, #8]
ldr r2, [r5, r2]
add r0, r5, r0
mov r1, #1
bl FUN_0201BD84
ldr r1, _0222F5F0 ; =0x00000B9C
str r0, [r5, r1]
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
_0222F5EC: .word 0x00000B88
_0222F5F0: .word 0x00000B9C
thumb_func_end MOD82_0222F59C
thumb_func_start MOD82_0222F5F4
MOD82_0222F5F4: ; 0x0222F5F4
push {r4, lr}
add r4, r0, #0
cmp r3, #1
beq _0222F602
cmp r3, #2
beq _0222F618
b _0222F626
_0222F602:
ldr r0, [sp, #0xc]
mov r2, #0
bl FUN_02002E14
ldrb r1, [r4, #7]
lsl r1, r1, #3
sub r1, r1, r0
lsr r0, r1, #0x1f
add r0, r1, r0
asr r2, r0, #1
b _0222F626
_0222F618:
ldr r0, [sp, #0xc]
mov r2, #0
bl FUN_02002E14
ldrb r1, [r4, #7]
lsl r1, r1, #3
sub r2, r1, r0
_0222F626:
add r0, r2, #0
pop {r4, pc}
.align 2, 0
thumb_func_end MOD82_0222F5F4
thumb_func_start MOD82_0222F62C
MOD82_0222F62C: ; 0x0222F62C
push {r4, r5, r6, lr}
sub sp, #0x10
add r4, r3, #0
ldr r3, [sp, #0x24]
add r5, r0, #0
str r3, [sp]
mov r3, #1
str r3, [sp, #4]
ldr r3, [sp, #0x20]
add r6, r1, #0
bl MOD82_0222F5F4
add r3, r0, #0
str r4, [sp]
mov r1, #0
ldr r0, [sp, #0x24]
str r1, [sp, #4]
str r0, [sp, #8]
str r1, [sp, #0xc]
add r0, r5, #0
mov r1, #1
add r2, r6, #0
bl FUN_0201BDE0
add sp, #0x10
pop {r4, r5, r6, pc}
thumb_func_end MOD82_0222F62C
thumb_func_start MOD82_0222F660
MOD82_0222F660: ; 0x0222F660
push {r4, r5, r6, lr}
sub sp, #0x10
add r4, r3, #0
ldr r3, [sp, #0x24]
add r5, r0, #0
str r3, [sp]
mov r3, #0
str r3, [sp, #4]
ldr r3, [sp, #0x20]
add r6, r1, #0
bl MOD82_0222F5F4
add r3, r0, #0
str r4, [sp]
mov r1, #0
ldr r0, [sp, #0x24]
str r1, [sp, #4]
str r0, [sp, #8]
add r0, r5, #0
add r2, r6, #0
str r1, [sp, #0xc]
bl FUN_0201BDE0
add sp, #0x10
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD82_0222F660
thumb_func_start MOD82_0222F694
MOD82_0222F694: ; 0x0222F694
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r4, r1, #0
mov r1, #0xf
add r5, r0, #0
add r6, r2, #0
add r7, r3, #0
bl FUN_02019620
mov r0, #1
str r0, [sp]
add r0, r4, #0
add r1, r6, #0
add r2, r7, #0
mov r3, #2
bl FUN_02021B04
mov r3, #1
ldr r0, _0222F6CC ; =0x00010200
str r3, [sp]
str r0, [sp, #4]
add r0, r5, #0
add r1, r4, #0
mov r2, #0
bl MOD82_0222F660
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0222F6CC: .word 0x00010200
thumb_func_end MOD82_0222F694
thumb_func_start MOD82_0222F6D0
MOD82_0222F6D0: ; 0x0222F6D0
ldr r3, _0222F6D4 ; =FUN_02033E74
bx r3
.align 2, 0
_0222F6D4: .word FUN_02033E74
thumb_func_end MOD82_0222F6D0
thumb_func_start MOD82_0222F6D8
MOD82_0222F6D8: ; 0x0222F6D8
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r2, #0
cmp r1, #1
bhi _0222F6F6
ldr r0, _0222F6F8 ; =0x00000D78
add r1, r4, #0
ldr r0, [r5, r0]
bl FUN_020200A0
ldr r0, _0222F6FC ; =0x00000D7C
add r1, r4, #0
ldr r0, [r5, r0]
bl FUN_020200A0
_0222F6F6:
pop {r3, r4, r5, pc}
.align 2, 0
_0222F6F8: .word 0x00000D78
_0222F6FC: .word 0x00000D7C
thumb_func_end MOD82_0222F6D8
thumb_func_start MOD82_0222F700
MOD82_0222F700: ; 0x0222F700
push {r4, lr}
add r4, r0, #0
ldr r0, _0222F720 ; =0x00000EB4
ldr r0, [r4, r0]
cmp r0, #0
bne _0222F71C
mov r0, #0x36
lsl r0, r0, #6
add r0, r4, r0
mov r1, #1
bl FUN_0200D858
ldr r1, _0222F720 ; =0x00000EB4
str r0, [r4, r1]
_0222F71C:
pop {r4, pc}
nop
_0222F720: .word 0x00000EB4
thumb_func_end MOD82_0222F700
thumb_func_start MOD82_0222F724
MOD82_0222F724: ; 0x0222F724
push {r4, lr}
add r4, r0, #0
ldr r0, _0222F73C ; =0x00000EB4
ldr r0, [r4, r0]
cmp r0, #0
beq _0222F73A
bl FUN_0200DBFC
ldr r0, _0222F73C ; =0x00000EB4
mov r1, #0
str r1, [r4, r0]
_0222F73A:
pop {r4, pc}
.align 2, 0
_0222F73C: .word 0x00000EB4
thumb_func_end MOD82_0222F724
thumb_func_start MOD82_0222F740
MOD82_0222F740: ; 0x0222F740
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #1
add r6, r1, #0
lsl r0, r0, #8
mov r1, #0x44
bl FUN_020219F4
add r4, r0, #0
ldr r0, _0222F7B0 ; =0x00000B84
add r1, r6, #0
ldr r0, [r5, r0]
add r2, r4, #0
bl FUN_0200A8E0
ldr r1, _0222F7B4 ; =0x00000B78
add r2, r4, #0
ldr r0, [r5, r1]
add r1, #0x20
ldr r1, [r5, r1]
bl FUN_0200B7B8
mov r0, #0x37
lsl r0, r0, #6
add r0, r5, r0
mov r1, #0xf
bl FUN_02019620
mov r0, #0x37
lsl r0, r0, #6
add r0, r5, r0
mov r1, #1
mov r2, #0x1f
mov r3, #0xb
bl FUN_0200CCA4
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
mov r0, #0x37
lsl r0, r0, #6
ldr r2, _0222F7B8 ; =0x00000B98
str r3, [sp, #8]
ldr r2, [r5, r2]
add r0, r5, r0
mov r1, #1
bl FUN_0201BD84
ldr r1, _0222F7BC ; =0x00000B9C
str r0, [r5, r1]
add r0, r4, #0
bl FUN_02021A20
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.align 2, 0
_0222F7B0: .word 0x00000B84
_0222F7B4: .word 0x00000B78
_0222F7B8: .word 0x00000B98
_0222F7BC: .word 0x00000B9C
thumb_func_end MOD82_0222F740
thumb_func_start MOD82_0222F7C0
MOD82_0222F7C0: ; 0x0222F7C0
push {r3, r4, r5, lr}
sub sp, #8
add r5, r0, #0
mov r0, #0
add r4, r1, #0
mvn r0, r0
cmp r4, r0
bne _0222F7D2
mov r4, #0xb
_0222F7D2:
mov r0, #2
str r0, [sp]
mov r0, #1
str r0, [sp, #4]
ldr r0, _0222F800 ; =0x00000B78
mov r1, #0
ldr r0, [r5, r0]
mov r3, #5
bl FUN_0200AD38
mov r0, #0x36
lsl r0, r0, #6
add r0, r5, r0
mov r1, #1
bl FUN_0200D0E0
add r0, r5, #0
add r1, r4, #0
bl MOD82_0222F740
add sp, #8
pop {r3, r4, r5, pc}
nop
_0222F800: .word 0x00000B78
thumb_func_end MOD82_0222F7C0
.section .rodata
; 0x0222F804
.byte 0x00, 0x17, 0x0D, 0x07, 0x04, 0x0D, 0x00, 0x00, 0xE0, 0x00, 0x6F, 0x00, 0xE0, 0x00, 0x81, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1B, 0x02, 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, 0x1E, 0x02, 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, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x04
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.section .data
; 0x0222F8E0
.byte 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x67, 0x61, 0x6D, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73
.byte 0x32, 0x2E, 0x67, 0x73, 0x2E, 0x6E, 0x69, 0x6E, 0x74, 0x65, 0x6E, 0x64, 0x6F, 0x77, 0x69, 0x66
.byte 0x69, 0x2E, 0x6E, 0x65, 0x74, 0x2F, 0x70, 0x6F, 0x6B, 0x65, 0x6D, 0x6F, 0x6E, 0x64, 0x70, 0x64
.byte 0x73, 0x2F, 0x62, 0x61, 0x74, 0x74, 0x6C, 0x65, 0x74, 0x6F, 0x77, 0x65, 0x72, 0x2F, 0x72, 0x6F
.byte 0x6F, 0x6D, 0x6E, 0x75, 0x6D, 0x2E, 0x61, 0x73, 0x70, 0x00, 0x00, 0x00, 0x68, 0x74, 0x74, 0x70
.byte 0x3A, 0x2F, 0x2F, 0x67, 0x61, 0x6D, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x32, 0x2E, 0x67, 0x73
.byte 0x2E, 0x6E, 0x69, 0x6E, 0x74, 0x65, 0x6E, 0x64, 0x6F, 0x77, 0x69, 0x66, 0x69, 0x2E, 0x6E, 0x65
.byte 0x74, 0x2F, 0x70, 0x6F, 0x6B, 0x65, 0x6D, 0x6F, 0x6E, 0x64, 0x70, 0x64, 0x73, 0x2F, 0x62, 0x61
.byte 0x74, 0x74, 0x6C, 0x65, 0x74, 0x6F, 0x77, 0x65, 0x72, 0x2F, 0x64, 0x6F, 0x77, 0x6E, 0x6C, 0x6F
.byte 0x61, 0x64, 0x2E, 0x61, 0x73, 0x70, 0x00, 0x00, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x67
.byte 0x61, 0x6D, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x32, 0x2E, 0x67, 0x73, 0x2E, 0x6E, 0x69, 0x6E
.byte 0x74, 0x65, 0x6E, 0x64, 0x6F, 0x77, 0x69, 0x66, 0x69, 0x2E, 0x6E, 0x65, 0x74, 0x2F, 0x70, 0x6F
.byte 0x6B, 0x65, 0x6D, 0x6F, 0x6E, 0x64, 0x70, 0x64, 0x73, 0x2F, 0x62, 0x61, 0x74, 0x74, 0x6C, 0x65
.byte 0x74, 0x6F, 0x77, 0x65, 0x72, 0x2F, 0x75, 0x70, 0x6C, 0x6F, 0x61, 0x64, 0x2E, 0x61, 0x73, 0x70
.byte 0x00, 0x00, 0x00, 0x00, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x67, 0x61, 0x6D, 0x65, 0x73
.byte 0x74, 0x61, 0x74, 0x73, 0x32, 0x2E, 0x67, 0x73, 0x2E, 0x6E, 0x69, 0x6E, 0x74, 0x65, 0x6E, 0x64
.byte 0x6F, 0x77, 0x69, 0x66, 0x69, 0x2E, 0x6E, 0x65, 0x74, 0x2F, 0x70, 0x6F, 0x6B, 0x65, 0x6D, 0x6F
.byte 0x6E, 0x64, 0x70, 0x64, 0x73, 0x2F, 0x62, 0x61, 0x74, 0x74, 0x6C, 0x65, 0x74, 0x6F, 0x77, 0x65
.byte 0x72, 0x2F, 0x69, 0x6E, 0x66, 0x6F, 0x2E, 0x61, 0x73, 0x70, 0x00, 0x00, 0x51, 0xE0, 0x22, 0x02
.byte 0x19, 0xE1, 0x22, 0x02, 0x39, 0xE1, 0x22, 0x02, 0x45, 0xE5, 0x22, 0x02, 0x75, 0xE5, 0x22, 0x02
.byte 0x5D, 0xE6, 0x22, 0x02, 0x7D, 0xE6, 0x22, 0x02, 0xF5, 0xE6, 0x22, 0x02, 0x09, 0xE7, 0x22, 0x02
.byte 0xA9, 0xE7, 0x22, 0x02, 0xE9, 0xE7, 0x22, 0x02, 0xF9, 0xE7, 0x22, 0x02, 0xB1, 0xE8, 0x22, 0x02
.byte 0xC9, 0xE8, 0x22, 0x02, 0x59, 0xE9, 0x22, 0x02, 0x89, 0xE9, 0x22, 0x02, 0xCD, 0xE9, 0x22, 0x02
.byte 0xA5, 0xEA, 0x22, 0x02, 0x41, 0xEB, 0x22, 0x02, 0x61, 0xEB, 0x22, 0x02, 0x4D, 0xEC, 0x22, 0x02
.byte 0x11, 0xEB, 0x22, 0x02, 0x11, 0xF2, 0x22, 0x02, 0x41, 0xF2, 0x22, 0x02, 0x75, 0xF2, 0x22, 0x02
.byte 0xA5, 0xF2, 0x22, 0x02, 0x89, 0xEC, 0x22, 0x02, 0xBD, 0xEC, 0x22, 0x02, 0x01, 0xED, 0x22, 0x02
.byte 0xBD, 0xED, 0x22, 0x02, 0xF9, 0xED, 0x22, 0x02, 0x29, 0xEE, 0x22, 0x02, 0x75, 0xEE, 0x22, 0x02
.byte 0x25, 0xEF, 0x22, 0x02, 0x55, 0xEF, 0x22, 0x02, 0x9D, 0xEF, 0x22, 0x02, 0x49, 0xF0, 0x22, 0x02
.byte 0xA9, 0xF0, 0x22, 0x02, 0xC9, 0xF0, 0x22, 0x02, 0x95, 0xF1, 0x22, 0x02, 0xD9, 0xF1, 0x22, 0x02
.byte 0xF1, 0xF1, 0x22, 0x02, 0xD9, 0xF2, 0x22, 0x02, 0x09, 0xF3, 0x22, 0x02, 0x25, 0xF3, 0x22, 0x02
.byte 0x5D, 0xF3, 0x22, 0x02, 0xD1, 0xF1, 0x22, 0x02, 0x61, 0xF3, 0x22, 0x02, 0x51, 0xF4, 0x22, 0x02
.byte 0xA5, 0xF4, 0x22, 0x02, 0x71, 0xF4, 0x22, 0x02, 0x91, 0xF3, 0x22, 0x02, 0xD9, 0xE5, 0x22, 0x02
.byte 0x05, 0xE6, 0x22, 0x02, 0xBD, 0xF3, 0x22, 0x02, 0x31, 0xF4, 0x22, 0x02, 0x49, 0xF5, 0x22, 0x02
.byte 0x71, 0xF5, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.section .bss
; 0x0222FB00
.space 0x120