pokeheartgold/asm/overlay_42.s
2021-06-27 08:46:42 -04:00

5993 lines
110 KiB
ArmAsm

thumb_func_start ov42_02227060
ov42_02227060: @ 0x02227060
push {r3, r4, r5, r6, r7, lr}
adds r5, r1, #0
adds r6, r3, #0
adds r4, r0, #0
ldr r1, _02227100 @ =0x0000230C
adds r0, r6, #0
str r2, [sp]
bl FUN_0201AA8C
ldr r2, _02227100 @ =0x0000230C
adds r7, r0, #0
movs r1, #0
blx FUN_020E5B44
str r4, [r7]
movs r0, #0xb3
adds r1, r6, #0
str r5, [r7, #4]
bl FUN_02007688
ldr r1, _02227104 @ =0x00002304
str r0, [r7, r1]
movs r0, #0xba
adds r1, r6, #0
bl FUN_02007688
ldr r1, _02227108 @ =0x00002308
movs r4, #0
str r0, [r7, r1]
adds r5, r7, #0
_0222709C:
movs r0, #0x9a
adds r1, r4, #0
adds r2, r6, #0
bl FUN_0200A090
ldr r1, _0222710C @ =0x000022F0
adds r4, r4, #1
str r0, [r5, r1]
adds r5, r5, #4
cmp r4, #2
blt _0222709C
movs r5, #0
adds r4, r7, #0
_022270B6:
movs r0, #0x17
adds r1, r5, #2
adds r2, r6, #0
bl FUN_0200A090
ldr r1, _02227110 @ =0x000022F8
adds r5, r5, #1
str r0, [r4, r1]
adds r4, r4, #4
cmp r5, #2
blt _022270B6
movs r4, #0
_022270CE:
adds r0, r7, #0
adds r1, r4, #0
adds r2, r6, #0
bl ov42_02227570
adds r4, r4, #1
cmp r4, #3
blt _022270CE
ldr r0, [sp]
ldr r2, [sp]
movs r1, #0x18
str r0, [r7, #0xc]
adds r0, r6, #0
muls r1, r2, r1
bl FUN_0201AA8C
str r0, [r7, #8]
ldr r3, [r7, #0xc]
movs r2, #0x18
movs r1, #0
muls r2, r3, r2
blx FUN_020E5B44
adds r0, r7, #0
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_02227100: .4byte 0x0000230C
_02227104: .4byte 0x00002304
_02227108: .4byte 0x00002308
_0222710C: .4byte 0x000022F0
_02227110: .4byte 0x000022F8
thumb_func_end ov42_02227060
thumb_func_start ov42_02227114
ov42_02227114: @ 0x02227114
push {r3, r4, r5, r6, r7, lr}
adds r5, r0, #0
ldr r0, [r5, #0xc]
movs r6, #0
cmp r0, #0
bls _02227140
adds r4, r6, #0
_02227122:
ldr r0, [r5, #8]
adds r0, r0, r4
bl ov42_02227E68
cmp r0, #0
bne _02227136
ldr r0, [r5, #8]
adds r0, r0, r4
bl ov42_0222740C
_02227136:
ldr r0, [r5, #0xc]
adds r6, r6, #1
adds r4, #0x18
cmp r6, r0
blo _02227122
_02227140:
movs r4, #0
_02227142:
adds r0, r5, #0
adds r1, r4, #0
bl ov42_02227604
adds r4, r4, #1
cmp r4, #3
blt _02227142
adds r0, r5, #0
bl ov42_022271F8
ldr r0, _02227188 @ =0x00002304
ldr r0, [r5, r0]
bl FUN_0200770C
ldr r0, _0222718C @ =0x00002308
ldr r0, [r5, r0]
bl FUN_0200770C
ldr r7, _02227190 @ =0x000022F0
movs r6, #0
adds r4, r5, #0
_0222716C:
ldr r0, [r4, r7]
bl FUN_0200A0D0
adds r6, r6, #1
adds r4, r4, #4
cmp r6, #4
blt _0222716C
ldr r0, [r5, #8]
bl FUN_0201AB0C
adds r0, r5, #0
bl FUN_0201AB0C
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_02227188: .4byte 0x00002304
_0222718C: .4byte 0x00002308
_02227190: .4byte 0x000022F0
thumb_func_end ov42_02227114
thumb_func_start ov42_02227194
ov42_02227194: @ 0x02227194
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
adds r4, r1, #0
adds r7, r3, #0
adds r5, r0, #0
adds r0, r4, #0
adds r1, r7, #0
adds r6, r2, #0
bl ov42_02227680
cmp r0, #0
bne _022271B0
bl GF_AssertFail
_022271B0:
adds r0, r4, #0
bl ov42_02227654
adds r1, r0, #0
ldr r0, [sp, #0x20]
adds r2, r6, #0
str r0, [sp]
movs r0, #0
str r0, [sp, #4]
adds r0, r5, #0
adds r3, r7, #0
bl ov42_022276DC
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end ov42_02227194
thumb_func_start ov42_022271D0
ov42_022271D0: @ 0x022271D0
push {r4, lr}
adds r4, r0, #0
adds r0, r1, #0
bl ov42_02227654
adds r1, r0, #0
adds r0, r4, #0
bl ov42_02227948
pop {r4, pc}
thumb_func_end ov42_022271D0
thumb_func_start ov42_022271E4
ov42_022271E4: @ 0x022271E4
push {r4, lr}
adds r4, r0, #0
adds r0, r1, #0
bl ov42_02227654
adds r1, r0, #0
adds r0, r4, #0
bl ov42_022279E8
pop {r4, pc}
thumb_func_end ov42_022271E4
thumb_func_start ov42_022271F8
ov42_022271F8: @ 0x022271F8
push {r3, r4, r5, lr}
movs r1, #0x23
adds r4, r0, #0
lsls r1, r1, #8
ldr r1, [r4, r1]
cmp r1, #0
beq _0222720A
bl ov42_02227274
_0222720A:
movs r5, #0
_0222720C:
adds r0, r4, #0
adds r1, r5, #0
bl ov42_022279E8
cmp r0, #1
bne _02227220
adds r0, r4, #0
adds r1, r5, #0
bl ov42_02227948
_02227220:
adds r5, r5, #1
cmp r5, #0x99
blt _0222720C
pop {r3, r4, r5, pc}
thumb_func_end ov42_022271F8
thumb_func_start ov42_02227228
ov42_02227228: @ 0x02227228
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
adds r7, r0, #0
adds r6, r3, #0
str r1, [sp, #8]
str r2, [sp, #0xc]
adds r0, r2, #0
bne _0222723C
bl GF_AssertFail
_0222723C:
ldr r1, [sp, #8]
adds r0, r7, #0
adds r2, r6, #0
bl ov42_02227B6C
adds r0, r7, #0
adds r1, r6, #0
bl ov42_02227C18
ldr r5, _02227270 @ =0x02229B10
movs r4, #0
_02227252:
str r6, [sp]
movs r0, #1
str r0, [sp, #4]
ldrb r1, [r5]
ldr r2, [sp, #8]
ldr r3, [sp, #0xc]
adds r0, r7, #0
bl ov42_022276DC
adds r4, r4, #1
adds r5, r5, #1
cmp r4, #0x10
blt _02227252
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_02227270: .4byte 0x02229B10
thumb_func_end ov42_02227228
thumb_func_start ov42_02227274
ov42_02227274: @ 0x02227274
push {r4, r5, r6, lr}
adds r6, r0, #0
bl ov42_02227BE0
adds r0, r6, #0
bl ov42_02227CA8
ldr r5, _02227298 @ =0x02229B10
movs r4, #0
_02227286:
ldrb r1, [r5]
adds r0, r6, #0
bl ov42_02227948
adds r4, r4, #1
adds r5, r5, #1
cmp r4, #0x10
blt _02227286
pop {r4, r5, r6, pc}
.align 2, 0
_02227298: .4byte 0x02229B10
thumb_func_end ov42_02227274
thumb_func_start ov42_0222729C
ov42_0222729C: @ 0x0222729C
push {r3, r4, r5, lr}
adds r4, r2, #0
adds r2, r3, #0
adds r5, r0, #0
bl ov42_022279FC
ldr r0, _022272B0 @ =0x000022EC
str r4, [r5, r0]
pop {r3, r4, r5, pc}
nop
_022272B0: .4byte 0x000022EC
thumb_func_end ov42_0222729C
thumb_func_start ov42_022272B4
ov42_022272B4: @ 0x022272B4
ldr r3, _022272B8 @ =ov42_02227B04
bx r3
.align 2, 0
_022272B8: .4byte ov42_02227B04
thumb_func_end ov42_022272B4
thumb_func_start ov42_022272BC
ov42_022272BC: @ 0x022272BC
push {r4, r5, r6, r7, lr}
sub sp, #0x3c
adds r7, r2, #0
adds r5, r0, #0
adds r6, r1, #0
str r3, [sp]
bl ov42_02227CF8
adds r4, r0, #0
adds r0, r7, #0
bl ov42_02227654
str r0, [sp, #4]
ldr r1, [sp, #4]
adds r0, r5, #0
bl ov42_022279E8
cmp r0, #1
beq _022272E6
bl GF_AssertFail
_022272E6:
movs r0, #0
add r2, sp, #0xc
adds r1, r0, #0
stm r2!, {r0, r1}
stm r2!, {r0, r1}
stm r2!, {r0, r1}
stm r2!, {r0, r1}
stm r2!, {r0, r1}
stm r2!, {r0, r1}
ldr r1, [r5]
movs r2, #0x38
str r1, [sp, #0xc]
ldr r1, [sp, #4]
adds r7, r1, #0
adds r1, r5, #0
muls r7, r2, r7
adds r1, #0x24
adds r1, r1, r7
str r1, [sp, #0x10]
ldrsh r0, [r6, r0]
lsls r0, r0, #0xc
str r0, [sp, #0x14]
movs r0, #2
ldrsh r1, [r6, r0]
lsls r1, r1, #0xc
str r1, [sp, #0x18]
lsls r1, r0, #0xb
str r1, [sp, #0x20]
str r1, [sp, #0x24]
str r1, [sp, #0x28]
movs r1, #4
ldrsh r1, [r6, r1]
str r1, [sp, #0x30]
ldr r1, [sp]
str r1, [sp, #0x38]
adds r1, r5, #0
str r1, [sp, #8]
adds r1, #0x1c
str r1, [sp, #8]
ldr r1, [r1, r7]
cmp r1, #3
beq _0222733E
cmp r1, #1
bne _02227344
_0222733E:
movs r0, #1
str r0, [sp, #0x34]
b _02227346
_02227344:
str r0, [sp, #0x34]
_02227346:
add r0, sp, #0xc
bl FUN_02024624
str r0, [r4, #4]
movs r1, #6
ldrsh r1, [r6, r1]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl FUN_02024A04
adds r0, r5, r7
ldr r0, [r0, #0x20]
cmp r0, #1
ldr r0, [r4, #4]
bne _0222736C
movs r1, #6
bl FUN_020248F0
b _02227372
_0222736C:
movs r1, #1
bl FUN_020248F0
_02227372:
movs r0, #9
str r0, [r4, #0xc]
movs r0, #0
strh r0, [r4, #0x14]
movs r0, #1
str r0, [r4, #0x10]
adds r0, r5, #0
adds r0, #0x10
adds r0, r0, r7
str r0, [r4]
ldr r0, _02227404 @ =0x000022B8
adds r0, r5, r0
bl ov42_02227B5C
cmp r0, #0
beq _022273F8
movs r0, #0
add r2, sp, #0xc
adds r1, r0, #0
stm r2!, {r0, r1}
stm r2!, {r0, r1}
stm r2!, {r0, r1}
stm r2!, {r0, r1}
stm r2!, {r0, r1}
stm r2!, {r0, r1}
ldr r1, [r5]
str r1, [sp, #0xc]
ldr r1, _02227408 @ =0x000022C8
adds r2, r5, r1
str r2, [sp, #0x10]
ldrsh r0, [r6, r0]
adds r1, #0x24
lsls r0, r0, #0xc
str r0, [sp, #0x14]
movs r0, #2
ldrsh r2, [r6, r0]
lsls r2, r2, #0xc
str r2, [sp, #0x18]
lsls r2, r0, #0xb
str r2, [sp, #0x20]
str r2, [sp, #0x24]
str r2, [sp, #0x28]
ldr r1, [r5, r1]
str r1, [sp, #0x30]
ldr r1, [sp]
str r1, [sp, #0x38]
ldr r1, [sp, #8]
ldr r1, [r1, r7]
cmp r1, #3
beq _022273DA
cmp r1, #1
bne _022273E0
_022273DA:
movs r0, #1
str r0, [sp, #0x34]
b _022273E2
_022273E0:
str r0, [sp, #0x34]
_022273E2:
add r0, sp, #0xc
bl FUN_02024624
str r0, [r4, #8]
movs r1, #6
ldrsh r1, [r6, r1]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl FUN_02024A04
b _022273FC
_022273F8:
movs r0, #0
str r0, [r4, #8]
_022273FC:
adds r0, r4, #0
add sp, #0x3c
pop {r4, r5, r6, r7, pc}
nop
_02227404: .4byte 0x000022B8
_02227408: .4byte 0x000022C8
thumb_func_end ov42_022272BC
thumb_func_start ov42_0222740C
ov42_0222740C: @ 0x0222740C
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #8]
cmp r0, #0
beq _0222741A
bl FUN_02024758
_0222741A:
ldr r0, [r4, #4]
bl FUN_02024758
movs r1, #0x18
movs r0, #0
_02227424:
strb r0, [r4]
adds r4, r4, #1
subs r1, r1, #1
bne _02227424
pop {r4, pc}
.align 2, 0
thumb_func_end ov42_0222740C
thumb_func_start ov42_02227430
ov42_02227430: @ 0x02227430
ldr r0, [r0, #4]
bx lr
thumb_func_end ov42_02227430
thumb_func_start ov42_02227434
ov42_02227434: @ 0x02227434
push {r3, r4, lr}
sub sp, #0xc
adds r4, r0, #0
lsls r0, r1, #0xc
str r0, [sp]
lsls r0, r2, #0xc
str r0, [sp, #4]
movs r0, #0
str r0, [sp, #8]
ldr r0, [r4, #4]
add r1, sp, #0
bl FUN_020247D4
ldr r0, [r4, #8]
cmp r0, #0
beq _02227470
movs r0, #2
ldr r1, [sp]
lsls r0, r0, #0xe
adds r0, r1, r0
str r0, [sp]
movs r0, #0xe
ldr r1, [sp, #4]
lsls r0, r0, #0xc
adds r0, r1, r0
str r0, [sp, #4]
ldr r0, [r4, #8]
add r1, sp, #0
bl FUN_020247D4
_02227470:
add sp, #0xc
pop {r3, r4, pc}
thumb_func_end ov42_02227434
thumb_func_start ov42_02227474
ov42_02227474: @ 0x02227474
ldr r3, _0222747C @ =FUN_02024ADC
ldr r0, [r0, #4]
bx r3
nop
_0222747C: .4byte FUN_02024ADC
thumb_func_end ov42_02227474
thumb_func_start ov42_02227480
ov42_02227480: @ 0x02227480
push {r3, lr}
ldr r0, [r0, #4]
bl FUN_02024AF8
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
pop {r3, pc}
.align 2, 0
thumb_func_end ov42_02227480
thumb_func_start ov42_02227490
ov42_02227490: @ 0x02227490
push {r3, r4, r5, lr}
adds r5, r0, #0
ldr r0, [r5, #4]
adds r4, r1, #0
bl FUN_02024830
ldr r0, [r5, #8]
cmp r0, #0
beq _022274A8
adds r1, r4, #0
bl FUN_02024830
_022274A8:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end ov42_02227490
thumb_func_start ov42_022274AC
ov42_022274AC: @ 0x022274AC
ldr r3, _022274B4 @ =FUN_020248B8
ldr r0, [r0, #4]
bx r3
nop
_022274B4: .4byte FUN_020248B8
thumb_func_end ov42_022274AC
thumb_func_start ov42_022274B8
ov42_022274B8: @ 0x022274B8
ldr r0, [r0]
ldr r0, [r0, #0x10]
bx lr
.align 2, 0
thumb_func_end ov42_022274B8
thumb_func_start ov42_022274C0
ov42_022274C0: @ 0x022274C0
ldr r0, [r0, #0xc]
bx lr
thumb_func_end ov42_022274C0
thumb_func_start ov42_022274C4
ov42_022274C4: @ 0x022274C4
ldr r3, _022274CC @ =FUN_020249D4
ldr r0, [r0, #4]
bx r3
nop
_022274CC: .4byte FUN_020249D4
thumb_func_end ov42_022274C4
thumb_func_start ov42_022274D0
ov42_022274D0: @ 0x022274D0
ldr r3, _022274D8 @ =FUN_020249F8
ldr r0, [r0, #4]
bx r3
nop
_022274D8: .4byte FUN_020249F8
thumb_func_end ov42_022274D0
thumb_func_start ov42_022274DC
ov42_022274DC: @ 0x022274DC
push {lr}
sub sp, #0xc
ldr r3, [r0, #8]
cmp r3, #0
beq _022274FE
adds r1, #8
lsls r1, r1, #0xc
adds r2, #0xe
str r1, [sp]
lsls r1, r2, #0xc
str r1, [sp, #4]
movs r1, #0
str r1, [sp, #8]
ldr r0, [r0, #8]
add r1, sp, #0
bl FUN_020247D4
_022274FE:
add sp, #0xc
pop {pc}
.align 2, 0
thumb_func_end ov42_022274DC
thumb_func_start ov42_02227504
ov42_02227504: @ 0x02227504
push {r4, r5, r6, lr}
adds r4, r1, #0
adds r5, r0, #0
adds r6, r2, #0
cmp r4, #0xa
blt _02227514
bl GF_AssertFail
_02227514:
cmp r6, #4
blt _0222751C
bl GF_AssertFail
_0222751C:
str r4, [r5, #0xc]
movs r0, #0
strh r0, [r5, #0x14]
ldr r0, _02227534 @ =0x02229B20
lsls r1, r4, #2
ldr r2, [r0, r1]
cmp r2, #0
beq _02227532
adds r0, r5, #0
adds r1, r6, #0
blx r2
_02227532:
pop {r4, r5, r6, pc}
.align 2, 0
_02227534: .4byte 0x02229B20
thumb_func_end ov42_02227504
thumb_func_start ov42_02227538
ov42_02227538: @ 0x02227538
push {r4, lr}
adds r4, r0, #0
ldr r2, [r4, #0xc]
ldr r1, _0222756C @ =0x02229B04
movs r0, #0
ldrb r2, [r1, r2]
cmp r2, #0xff
bne _0222754C
movs r0, #1
b _02227558
_0222754C:
movs r1, #0x14
ldrsh r1, [r4, r1]
adds r1, r1, #1
cmp r2, r1
blt _02227558
movs r0, #1
_02227558:
cmp r0, #1
bne _0222756A
adds r0, r4, #0
bl ov42_02227D30
movs r0, #0x14
ldrsh r0, [r4, r0]
adds r0, r0, #1
strh r0, [r4, #0x14]
_0222756A:
pop {r4, pc}
.align 2, 0
_0222756C: .4byte 0x02229B04
thumb_func_end ov42_02227538
thumb_func_start ov42_02227570
ov42_02227570: @ 0x02227570
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
str r0, [sp, #0xc]
adds r0, r1, #0
lsls r5, r0, #4
ldr r0, [sp, #0xc]
str r1, [sp, #0x10]
adds r1, r0, r5
ldr r0, _022275F0 @ =0x00002188
str r2, [sp, #0x14]
ldr r0, [r1, r0]
cmp r0, #0
beq _0222758E
bl GF_AssertFail
_0222758E:
ldr r0, _022275F4 @ =0x02229B70
ldr r6, _022275F8 @ =_02229AF8
adds r4, r0, r5
ldr r0, [sp, #0xc]
movs r7, #0
adds r5, r0, r5
ldr r0, [sp, #0x10]
lsls r1, r0, #1
movs r0, #1
lsls r0, r0, #8
adds r0, r1, r0
str r0, [sp, #0x18]
_022275A6:
lsrs r2, r7, #0x1f
lsls r1, r7, #0x1f
subs r1, r1, r2
movs r0, #0x1f
rors r1, r0
adds r0, r2, r1
ldrb r2, [r6]
ldr r1, [sp, #0x18]
adds r0, r0, #2
adds r1, r2, r1
str r1, [sp]
ldr r1, [sp, #0x14]
str r0, [sp, #4]
str r1, [sp, #8]
lsls r1, r0, #2
ldr r0, [sp, #0xc]
ldr r2, [sp, #0xc]
adds r1, r0, r1
ldr r0, _022275FC @ =0x000022F0
movs r3, #0
ldr r0, [r1, r0]
ldr r1, _02227600 @ =0x00002304
ldr r1, [r2, r1]
ldr r2, [r4]
bl FUN_0200A540
ldr r1, _022275F0 @ =0x00002188
adds r7, r7, #1
str r0, [r5, r1]
adds r6, r6, #1
adds r4, r4, #4
adds r5, r5, #4
cmp r7, #4
blt _022275A6
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
_022275F0: .4byte 0x00002188
_022275F4: .4byte 0x02229B70
_022275F8: .4byte _02229AF8
_022275FC: .4byte 0x000022F0
_02227600: .4byte 0x00002304
thumb_func_end ov42_02227570
thumb_func_start ov42_02227604
ov42_02227604: @ 0x02227604
push {r3, r4, r5, r6, r7, lr}
adds r6, r0, #0
lsls r5, r1, #4
ldr r0, _0222764C @ =0x00002188
adds r1, r6, r5
ldr r0, [r1, r0]
cmp r0, #0
bne _02227618
bl GF_AssertFail
_02227618:
movs r4, #0
adds r5, r6, r5
adds r7, r4, #0
_0222761E:
lsrs r2, r4, #0x1f
lsls r1, r4, #0x1f
subs r1, r1, r2
movs r0, #0x1f
rors r1, r0
adds r0, r2, r1
adds r0, r0, #2
lsls r0, r0, #2
adds r1, r6, r0
ldr r0, _02227650 @ =0x000022F0
ldr r0, [r1, r0]
ldr r1, _0222764C @ =0x00002188
ldr r1, [r5, r1]
bl FUN_0200A75C
ldr r0, _0222764C @ =0x00002188
adds r4, r4, #1
str r7, [r5, r0]
adds r5, r5, #4
cmp r4, #4
blt _0222761E
pop {r3, r4, r5, r6, r7, pc}
nop
_0222764C: .4byte 0x00002188
_02227650: .4byte 0x000022F0
thumb_func_end ov42_02227604
thumb_func_start ov42_02227654
ov42_02227654: @ 0x02227654
push {r3, lr}
ldr r3, _02227678 @ =0x02229BA0
movs r2, #0
_0222765A:
ldrh r1, [r3]
cmp r0, r1
bne _02227668
ldr r0, _0222767C @ =0x02229BA2
lsls r1, r2, #2
ldrh r0, [r0, r1]
pop {r3, pc}
_02227668:
adds r2, r2, #1
adds r3, r3, #4
cmp r2, #0x99
blt _0222765A
bl GF_AssertFail
movs r0, #0
pop {r3, pc}
.align 2, 0
_02227678: .4byte 0x02229BA0
_0222767C: .4byte 0x02229BA2
thumb_func_end ov42_02227654
thumb_func_start ov42_02227680
ov42_02227680: @ 0x02227680
cmp r1, #0
bne _022276A4
cmp r0, #0
beq _0222769C
cmp r0, #0x61
beq _0222769C
cmp r0, #0xee
beq _0222769C
cmp r0, #0xef
beq _0222769C
ldr r1, _022276A8 @ =0x00000127
subs r0, r0, r1
cmp r0, #1
bhi _022276A0
_0222769C:
movs r0, #1
bx lr
_022276A0:
movs r0, #0
bx lr
_022276A4:
movs r0, #1
bx lr
.align 2, 0
_022276A8: .4byte 0x00000127
thumb_func_end ov42_02227680
thumb_func_start ov42_022276AC
ov42_022276AC: @ 0x022276AC
push {r4, r5, r6, lr}
adds r4, r1, #0
adds r5, r0, #0
adds r6, r2, #0
cmp r4, #2
beq _022276C0
cmp r4, #3
beq _022276C0
bl GF_AssertFail
_022276C0:
subs r1, r4, #2
cmp r6, #0
bne _022276C8
adds r1, r1, #2
_022276C8:
ldr r0, _022276D8 @ =_02229AF8
ldrb r2, [r0, r1]
movs r0, #1
lsls r1, r5, #1
lsls r0, r0, #8
adds r0, r1, r0
adds r0, r2, r0
pop {r4, r5, r6, pc}
.align 2, 0
_022276D8: .4byte _02229AF8
thumb_func_end ov42_022276AC
thumb_func_start ov42_022276DC
ov42_022276DC: @ 0x022276DC
push {r3, r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r4, r1, #0
movs r0, #0x38
muls r0, r4, r0
adds r0, r5, r0
ldr r0, [r0, #0x14]
adds r6, r2, #0
adds r7, r3, #0
cmp r0, #0
beq _022276F6
bl GF_AssertFail
_022276F6:
ldr r0, [sp, #0x1c]
cmp r0, #0
bne _0222770E
ldr r0, [sp, #0x18]
adds r1, r4, #0
str r0, [sp]
adds r0, r5, #0
adds r2, r6, #0
adds r3, r7, #0
bl ov42_02227720
pop {r3, r4, r5, r6, r7, pc}
_0222770E:
ldr r0, [sp, #0x18]
adds r1, r4, #0
str r0, [sp]
adds r0, r5, #0
adds r2, r6, #0
adds r3, r7, #0
bl ov42_02227874
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov42_022276DC
thumb_func_start ov42_02227720
ov42_02227720: @ 0x02227720
push {r4, r5, r6, r7, lr}
sub sp, #0x44
adds r5, r0, #0
ldr r0, [sp, #0x58]
adds r6, r5, #0
str r0, [sp, #0x40]
movs r0, #2
lsls r0, r0, #8
adds r0, r1, r0
str r0, [sp, #0x38]
lsls r0, r1, #1
str r0, [sp, #0x3c]
adds r4, r1, #0
movs r0, #0x38
muls r4, r0, r4
ldr r0, [sp, #0x38]
str r3, [sp, #0x30]
str r0, [sp]
adds r0, r2, #0
str r0, [sp, #4]
ldr r0, [sp, #0x40]
str r2, [sp, #0x2c]
ldr r2, [sp, #0x3c]
ldr r1, _0222786C @ =0x000022F0
str r0, [sp, #8]
ldr r0, [r5, r1]
adds r1, #0x14
ldr r1, [r5, r1]
adds r6, #0x14
adds r2, #0xe
movs r3, #0
bl FUN_0200A3C8
str r0, [r6, r4]
ldr r0, [sp, #0x38]
ldr r2, [sp, #0x3c]
str r0, [sp]
ldr r0, [sp, #0x2c]
adds r7, r5, #0
str r0, [sp, #4]
movs r0, #1
str r0, [sp, #8]
ldr r0, [sp, #0x40]
adds r2, #0xd
ldr r1, _02227870 @ =0x000022F4
str r0, [sp, #0xc]
ldr r0, [r5, r1]
adds r1, #0x10
ldr r1, [r5, r1]
adds r7, #0x18
movs r3, #0
str r2, [sp, #0x3c]
bl FUN_0200A480
str r0, [r7, r4]
ldr r0, [r6, r4]
bl FUN_0200A810
movs r1, #6
ldr r2, [r0, #0x10]
lsls r1, r1, #0xa
cmp r2, r1
beq _022277A4
movs r1, #1
str r1, [sp, #0x34]
b _022277A8
_022277A4:
movs r1, #0
str r1, [sp, #0x34]
_022277A8:
ldr r1, [sp, #0x30]
cmp r1, #2
bne _022277B6
movs r1, #2
lsls r1, r1, #0xa
str r1, [r0, #0x10]
b _022277CE
_022277B6:
cmp r1, #1
bne _022277CE
ldr r1, [sp, #0x34]
cmp r1, #0
beq _022277C8
movs r1, #5
lsls r1, r1, #0xa
str r1, [r0, #0x10]
b _022277CE
_022277C8:
movs r1, #6
lsls r1, r1, #0xa
str r1, [r0, #0x10]
_022277CE:
ldr r0, [r6, r4]
bl FUN_0200AE18
cmp r0, #0
bne _022277DC
bl GF_AssertFail
_022277DC:
ldr r0, [r7, r4]
bl FUN_0200B00C
cmp r0, #0
bne _022277EA
bl GF_AssertFail
_022277EA:
ldr r0, [r5, #4]
cmp r0, #0
beq _022277FA
ldr r1, [r7, r4]
adds r0, r5, #0
movs r2, #1
bl ov42_02227E78
_022277FA:
ldr r0, [r6, r4]
bl FUN_0200A740
ldr r0, [r7, r4]
bl FUN_0200A740
ldr r0, [sp, #0x2c]
adds r1, r5, r4
str r0, [r1, #0x1c]
ldr r0, [sp, #0x30]
ldr r2, [sp, #0x34]
str r0, [r1, #0x20]
movs r0, #0
str r0, [r1, #0x10]
ldr r0, [sp, #0x30]
movs r1, #2
bl ov42_022276AC
adds r6, r0, #0
ldr r0, [sp, #0x30]
ldr r2, [sp, #0x34]
movs r1, #3
bl ov42_022276AC
str r0, [sp]
movs r0, #0
mvns r0, r0
str r0, [sp, #4]
str r0, [sp, #8]
movs r0, #0
str r0, [sp, #0xc]
ldr r2, _0222786C @ =0x000022F0
str r0, [sp, #0x10]
ldr r1, [r5, r2]
adds r3, r6, #0
str r1, [sp, #0x14]
adds r1, r2, #4
ldr r1, [r5, r1]
str r1, [sp, #0x18]
adds r1, r2, #0
adds r1, #8
ldr r1, [r5, r1]
adds r2, #0xc
str r1, [sp, #0x1c]
ldr r1, [r5, r2]
adds r5, #0x24
str r1, [sp, #0x20]
ldr r1, [sp, #0x38]
str r0, [sp, #0x24]
str r0, [sp, #0x28]
adds r0, r5, r4
adds r2, r1, #0
bl FUN_02009D48
add sp, #0x44
pop {r4, r5, r6, r7, pc}
nop
_0222786C: .4byte 0x000022F0
_02227870: .4byte 0x000022F4
thumb_func_end ov42_02227720
thumb_func_start ov42_02227874
ov42_02227874: @ 0x02227874
push {r4, r5, r6, r7, lr}
sub sp, #0x3c
adds r7, r1, #0
adds r5, r0, #0
subs r0, r7, #2
str r0, [sp, #0x38]
movs r0, #2
lsls r0, r0, #8
adds r0, r7, r0
str r0, [sp, #0x34]
movs r0, #0x38
adds r4, r7, #0
muls r4, r0, r4
ldr r0, [sp, #0x34]
adds r6, r5, #0
str r0, [sp]
adds r0, r2, #0
str r0, [sp, #4]
ldr r0, [sp, #0x50]
str r2, [sp, #0x2c]
str r3, [sp, #0x30]
ldr r1, _02227940 @ =0x000022F0
str r0, [sp, #8]
ldr r0, [r5, r1]
adds r1, #0x18
ldr r1, [r5, r1]
adds r6, #0x14
subs r2, r7, #1
movs r3, #0
bl FUN_0200A3C8
str r0, [r6, r4]
ldr r0, [sp, #0x30]
cmp r0, #2
bne _022278C8
ldr r0, [r6, r4]
bl FUN_0200A810
movs r1, #2
lsls r1, r1, #0xa
str r1, [r0, #0x10]
b _022278D8
_022278C8:
cmp r0, #1
bne _022278D8
ldr r0, [r6, r4]
bl FUN_0200A810
movs r1, #5
lsls r1, r1, #0xa
str r1, [r0, #0x10]
_022278D8:
ldr r0, [r6, r4]
bl FUN_0200AE18
cmp r0, #0
bne _022278E6
bl GF_AssertFail
_022278E6:
ldr r0, [r6, r4]
bl FUN_0200A740
movs r0, #0
adds r2, r5, r4
ldr r1, [sp, #0x2c]
str r0, [r2, #0x18]
str r1, [r2, #0x1c]
ldr r1, [sp, #0x30]
movs r6, #1
str r1, [r2, #0x20]
str r6, [r2, #0x10]
movs r2, #6
ldr r1, [sp, #0x38]
lsls r2, r2, #6
adds r3, r1, r2
str r3, [sp]
subs r1, r6, #2
str r1, [sp, #4]
str r1, [sp, #8]
str r0, [sp, #0xc]
ldr r2, _02227940 @ =0x000022F0
str r0, [sp, #0x10]
ldr r1, [r5, r2]
str r1, [sp, #0x14]
adds r1, r2, #4
ldr r1, [r5, r1]
str r1, [sp, #0x18]
adds r1, r2, #0
adds r1, #8
ldr r1, [r5, r1]
adds r2, #0xc
str r1, [sp, #0x1c]
ldr r1, [r5, r2]
adds r5, #0x24
str r1, [sp, #0x20]
str r0, [sp, #0x24]
str r0, [sp, #0x28]
ldr r1, [sp, #0x34]
ldr r2, _02227944 @ =0x00000402
adds r0, r5, r4
bl FUN_02009D48
add sp, #0x3c
pop {r4, r5, r6, r7, pc}
.align 2, 0
_02227940: .4byte 0x000022F0
_02227944: .4byte 0x00000402
thumb_func_end ov42_02227874
thumb_func_start ov42_02227948
ov42_02227948: @ 0x02227948
push {r4, r5, r6, lr}
adds r6, r1, #0
adds r5, r0, #0
movs r0, #0x38
adds r4, r6, #0
muls r4, r0, r4
adds r0, r5, r4
ldr r0, [r0, #0x14]
cmp r0, #0
bne _02227960
bl GF_AssertFail
_02227960:
adds r0, r5, r4
ldr r0, [r0, #0x10]
cmp r0, #0
bne _02227972
adds r0, r5, #0
adds r1, r6, #0
bl ov42_0222797C
pop {r4, r5, r6, pc}
_02227972:
adds r0, r5, #0
adds r1, r6, #0
bl ov42_022279C0
pop {r4, r5, r6, pc}
thumb_func_end ov42_02227948
thumb_func_start ov42_0222797C
ov42_0222797C: @ 0x0222797C
push {r3, r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r6, r5, #0
movs r0, #0x38
adds r4, r1, #0
muls r4, r0, r4
adds r6, #0x14
ldr r0, [r6, r4]
bl FUN_0200AEB0
adds r7, r5, #0
adds r7, #0x18
ldr r0, [r7, r4]
bl FUN_0200B0A8
ldr r0, _022279B8 @ =0x000022F0
ldr r1, [r6, r4]
ldr r0, [r5, r0]
bl FUN_0200A75C
ldr r0, _022279BC @ =0x000022F4
ldr r1, [r7, r4]
ldr r0, [r5, r0]
bl FUN_0200A75C
movs r0, #0
str r0, [r6, r4]
str r0, [r7, r4]
pop {r3, r4, r5, r6, r7, pc}
nop
_022279B8: .4byte 0x000022F0
_022279BC: .4byte 0x000022F4
thumb_func_end ov42_0222797C
thumb_func_start ov42_022279C0
ov42_022279C0: @ 0x022279C0
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r5, r6, #0
movs r0, #0x38
adds r4, r1, #0
adds r5, #0x14
muls r4, r0, r4
ldr r0, [r5, r4]
bl FUN_0200AEB0
ldr r0, _022279E4 @ =0x000022F0
ldr r1, [r5, r4]
ldr r0, [r6, r0]
bl FUN_0200A75C
movs r0, #0
str r0, [r5, r4]
pop {r4, r5, r6, pc}
.align 2, 0
_022279E4: .4byte 0x000022F0
thumb_func_end ov42_022279C0
thumb_func_start ov42_022279E8
ov42_022279E8: @ 0x022279E8
movs r2, #0x38
muls r2, r1, r2
adds r0, r0, r2
ldr r0, [r0, #0x14]
cmp r0, #0
beq _022279F8
movs r0, #1
bx lr
_022279F8:
movs r0, #0
bx lr
thumb_func_end ov42_022279E8
thumb_func_start ov42_022279FC
ov42_022279FC: @ 0x022279FC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x38
adds r6, r0, #0
ldr r0, _02227AF0 @ =0x000022B8
str r1, [sp, #0x2c]
ldr r0, [r6, r0]
adds r7, r2, #0
cmp r0, #0
beq _02227A12
bl GF_AssertFail
_02227A12:
movs r4, #0
ldr r5, _02227AF4 @ =0x02229AFC
str r4, [sp, #0x34]
_02227A18:
ldrb r1, [r5]
adds r0, r6, #0
bl ov42_022279E8
cmp r0, #1
bne _02227A30
ldr r0, _02227AF4 @ =0x02229AFC
ldrb r0, [r0, r4]
str r0, [sp, #0x30]
movs r0, #1
str r0, [sp, #0x34]
b _02227A38
_02227A30:
adds r4, r4, #1
adds r5, r5, #1
cmp r4, #6
blt _02227A18
_02227A38:
ldr r0, [sp, #0x34]
cmp r0, #1
beq _02227A42
bl GF_AssertFail
_02227A42:
movs r5, #0
adds r4, r6, #0
_02227A46:
movs r0, #0x12
lsls r0, r0, #4
str r0, [sp]
adds r0, r5, #2
str r0, [sp, #4]
ldr r0, _02227AF8 @ =0x000022F8
str r7, [sp, #8]
ldr r1, _02227AFC @ =0x00002304
ldr r0, [r4, r0]
ldr r1, [r6, r1]
adds r2, r5, #0
movs r3, #0
bl FUN_0200A540
movs r1, #0x8b
lsls r1, r1, #6
str r0, [r4, r1]
adds r5, r5, #1
adds r4, r4, #4
cmp r5, #2
blt _02227A46
movs r0, #0x12
lsls r0, r0, #4
str r0, [sp]
ldr r0, [sp, #0x2c]
adds r1, #0x30
str r0, [sp, #4]
str r7, [sp, #8]
ldr r0, [r6, r1]
adds r1, #0x14
ldr r1, [r6, r1]
movs r2, #2
movs r3, #0
bl FUN_0200A3C8
ldr r1, _02227AF0 @ =0x000022B8
str r0, [r6, r1]
ldr r0, [r6, r1]
bl FUN_0200AE18
cmp r0, #0
bne _02227A9E
bl GF_AssertFail
_02227A9E:
ldr r0, _02227AF0 @ =0x000022B8
ldr r0, [r6, r0]
bl FUN_0200A740
movs r1, #0x12
lsls r1, r1, #4
movs r0, #0
str r1, [sp]
mvns r0, r0
str r0, [sp, #4]
str r0, [sp, #8]
movs r0, #0
str r0, [sp, #0xc]
ldr r3, _02227B00 @ =0x000022F0
str r0, [sp, #0x10]
ldr r2, [r6, r3]
str r2, [sp, #0x14]
adds r2, r3, #4
ldr r2, [r6, r2]
str r2, [sp, #0x18]
adds r2, r3, #0
adds r2, #8
ldr r2, [r6, r2]
str r2, [sp, #0x1c]
adds r2, r3, #0
adds r2, #0xc
ldr r2, [r6, r2]
subs r3, #0x28
str r2, [sp, #0x20]
str r0, [sp, #0x24]
str r0, [sp, #0x28]
adds r0, r6, r3
adds r3, r1, #0
ldr r2, [sp, #0x30]
adds r3, #0xe0
adds r2, r2, r3
adds r3, r1, #0
bl FUN_02009D48
add sp, #0x38
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_02227AF0: .4byte 0x000022B8
_02227AF4: .4byte 0x02229AFC
_02227AF8: .4byte 0x000022F8
_02227AFC: .4byte 0x00002304
_02227B00: .4byte 0x000022F0
thumb_func_end ov42_022279FC
thumb_func_start ov42_02227B04
ov42_02227B04: @ 0x02227B04
push {r3, r4, r5, r6, r7, lr}
adds r5, r0, #0
ldr r0, _02227B50 @ =0x000022B8
adds r0, r5, r0
bl ov42_02227B5C
cmp r0, #1
bne _02227B4C
ldr r0, _02227B50 @ =0x000022B8
ldr r0, [r5, r0]
bl FUN_0200AEB0
ldr r1, _02227B54 @ =0x000022F0
ldr r0, [r5, r1]
subs r1, #0x38
ldr r1, [r5, r1]
bl FUN_0200A75C
ldr r0, _02227B50 @ =0x000022B8
movs r4, #0
adds r7, r0, #0
str r4, [r5, r0]
adds r6, r4, #0
adds r7, #8
_02227B34:
ldr r0, _02227B58 @ =0x000022F8
movs r1, #0x8b
lsls r1, r1, #6
ldr r0, [r5, r0]
ldr r1, [r5, r1]
bl FUN_0200A75C
str r6, [r5, r7]
adds r4, r4, #1
adds r5, r5, #4
cmp r4, #2
blt _02227B34
_02227B4C:
pop {r3, r4, r5, r6, r7, pc}
nop
_02227B50: .4byte 0x000022B8
_02227B54: .4byte 0x000022F0
_02227B58: .4byte 0x000022F8
thumb_func_end ov42_02227B04
thumb_func_start ov42_02227B5C
ov42_02227B5C: @ 0x02227B5C
ldr r0, [r0]
cmp r0, #0
beq _02227B66
movs r0, #1
bx lr
_02227B66:
movs r0, #0
bx lr
.align 2, 0
thumb_func_end ov42_02227B5C
thumb_func_start ov42_02227B6C
ov42_02227B6C: @ 0x02227B6C
push {r4, r5, r6, lr}
sub sp, #0x10
adds r5, r0, #0
movs r0, #0x23
lsls r0, r0, #8
ldr r0, [r5, r0]
adds r4, r1, #0
adds r6, r2, #0
cmp r0, #0
beq _02227B84
bl GF_AssertFail
_02227B84:
ldr r0, _02227BD8 @ =0x00000402
movs r2, #0
str r0, [sp]
str r4, [sp, #4]
movs r0, #8
str r0, [sp, #8]
ldr r1, _02227BDC @ =0x000022F4
str r6, [sp, #0xc]
ldr r0, [r5, r1]
adds r1, #0x14
ldr r1, [r5, r1]
adds r3, r2, #0
bl FUN_0200A480
movs r1, #0x23
lsls r1, r1, #8
str r0, [r5, r1]
ldr r0, [r5, r1]
bl FUN_0200B00C
cmp r0, #0
bne _02227BB4
bl GF_AssertFail
_02227BB4:
ldr r0, [r5, #4]
cmp r0, #0
beq _02227BC8
movs r1, #0x23
lsls r1, r1, #8
ldr r1, [r5, r1]
adds r0, r5, #0
movs r2, #8
bl ov42_02227E78
_02227BC8:
movs r0, #0x23
lsls r0, r0, #8
ldr r0, [r5, r0]
bl FUN_0200A740
add sp, #0x10
pop {r4, r5, r6, pc}
nop
_02227BD8: .4byte 0x00000402
_02227BDC: .4byte 0x000022F4
thumb_func_end ov42_02227B6C
thumb_func_start ov42_02227BE0
ov42_02227BE0: @ 0x02227BE0
push {r4, lr}
adds r4, r0, #0
movs r0, #0x23
lsls r0, r0, #8
ldr r0, [r4, r0]
cmp r0, #0
bne _02227BF2
bl GF_AssertFail
_02227BF2:
movs r0, #0x23
lsls r0, r0, #8
ldr r0, [r4, r0]
bl FUN_0200B0A8
ldr r1, _02227C14 @ =0x000022F4
ldr r0, [r4, r1]
adds r1, #0xc
ldr r1, [r4, r1]
bl FUN_0200A75C
movs r0, #0x23
movs r1, #0
lsls r0, r0, #8
str r1, [r4, r0]
pop {r4, pc}
nop
_02227C14: .4byte 0x000022F4
thumb_func_end ov42_02227BE0
thumb_func_start ov42_02227C18
ov42_02227C18: @ 0x02227C18
push {r4, r5, r6, r7, lr}
sub sp, #0x14
adds r5, r0, #0
ldr r0, _02227C94 @ =0x000021B8
str r1, [sp, #0xc]
ldr r0, [r5, r0]
cmp r0, #0
beq _02227C2C
bl GF_AssertFail
_02227C2C:
movs r0, #0x11
movs r4, #0
str r0, [sp, #0x10]
adds r6, r5, #0
movs r7, #0x12
_02227C36:
movs r0, #6
lsls r0, r0, #6
adds r0, r4, r0
str r0, [sp]
movs r0, #2
str r0, [sp, #4]
ldr r0, [sp, #0xc]
ldr r1, _02227C98 @ =0x00002308
str r0, [sp, #8]
ldr r0, _02227C9C @ =0x000022F8
ldr r1, [r5, r1]
ldr r0, [r5, r0]
ldr r2, [sp, #0x10]
movs r3, #0
bl FUN_0200A540
ldr r1, _02227C94 @ =0x000021B8
adds r2, r7, #0
str r0, [r6, r1]
movs r0, #6
lsls r0, r0, #6
adds r0, r4, r0
str r0, [sp]
movs r0, #3
str r0, [sp, #4]
ldr r0, [sp, #0xc]
ldr r1, _02227C98 @ =0x00002308
str r0, [sp, #8]
ldr r0, _02227CA0 @ =0x000022FC
ldr r1, [r5, r1]
ldr r0, [r5, r0]
movs r3, #0
bl FUN_0200A540
ldr r1, _02227CA4 @ =0x000021BC
adds r4, r4, #1
str r0, [r6, r1]
ldr r0, [sp, #0x10]
adds r6, #0x10
adds r0, r0, #2
adds r7, r7, #2
str r0, [sp, #0x10]
cmp r4, #0x10
blt _02227C36
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
_02227C94: .4byte 0x000021B8
_02227C98: .4byte 0x00002308
_02227C9C: .4byte 0x000022F8
_02227CA0: .4byte 0x000022FC
_02227CA4: .4byte 0x000021BC
thumb_func_end ov42_02227C18
thumb_func_start ov42_02227CA8
ov42_02227CA8: @ 0x02227CA8
push {r3, r4, r5, r6, r7, lr}
adds r5, r0, #0
ldr r0, _02227CE8 @ =0x000021B8
ldr r0, [r5, r0]
cmp r0, #0
bne _02227CB8
bl GF_AssertFail
_02227CB8:
movs r6, #0
adds r4, r5, #0
adds r7, r6, #0
_02227CBE:
ldr r0, _02227CEC @ =0x000022F8
ldr r1, _02227CE8 @ =0x000021B8
ldr r0, [r5, r0]
ldr r1, [r4, r1]
bl FUN_0200A75C
ldr r0, _02227CF0 @ =0x000022FC
ldr r1, _02227CF4 @ =0x000021BC
ldr r0, [r5, r0]
ldr r1, [r4, r1]
bl FUN_0200A75C
ldr r0, _02227CE8 @ =0x000021B8
adds r6, r6, #1
str r7, [r4, r0]
adds r0, r0, #4
str r7, [r4, r0]
adds r4, #0x10
cmp r6, #0x10
blt _02227CBE
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_02227CE8: .4byte 0x000021B8
_02227CEC: .4byte 0x000022F8
_02227CF0: .4byte 0x000022FC
_02227CF4: .4byte 0x000021BC
thumb_func_end ov42_02227CA8
thumb_func_start ov42_02227CF8
ov42_02227CF8: @ 0x02227CF8
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r0, [r5, #0xc]
movs r6, #0
cmp r0, #0
bls _02227D26
adds r4, r6, #0
_02227D06:
ldr r0, [r5, #8]
adds r0, r0, r4
bl ov42_02227E68
cmp r0, #1
bne _02227D1C
movs r0, #0x18
ldr r1, [r5, #8]
muls r0, r6, r0
adds r0, r1, r0
pop {r4, r5, r6, pc}
_02227D1C:
ldr r0, [r5, #0xc]
adds r6, r6, #1
adds r4, #0x18
cmp r6, r0
blo _02227D06
_02227D26:
bl GF_AssertFail
movs r0, #0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end ov42_02227CF8
thumb_func_start ov42_02227D30
ov42_02227D30: @ 0x02227D30
push {r3, lr}
ldr r1, [r0, #0xc]
lsls r2, r1, #2
ldr r1, _02227D44 @ =0x02229B48
ldr r1, [r1, r2]
cmp r1, #0
beq _02227D40
blx r1
_02227D40:
pop {r3, pc}
nop
_02227D44: .4byte 0x02229B48
thumb_func_end ov42_02227D30
thumb_func_start ov42_02227D48
ov42_02227D48: @ 0x02227D48
ldr r3, _02227D50 @ =FUN_02024950
str r1, [r0, #0x10]
ldr r0, [r0, #4]
bx r3
.align 2, 0
_02227D50: .4byte FUN_02024950
thumb_func_end ov42_02227D48
thumb_func_start ov42_02227D54
ov42_02227D54: @ 0x02227D54
ldr r3, _02227D60 @ =FUN_02024950
str r1, [r0, #0x10]
ldr r0, [r0, #4]
movs r1, #4
bx r3
nop
_02227D60: .4byte FUN_02024950
thumb_func_end ov42_02227D54
thumb_func_start ov42_02227D64
ov42_02227D64: @ 0x02227D64
ldr r3, _02227D70 @ =FUN_02024950
str r1, [r0, #0x10]
ldr r0, [r0, #4]
adds r1, r1, #5
bx r3
nop
_02227D70: .4byte FUN_02024950
thumb_func_end ov42_02227D64
thumb_func_start ov42_02227D74
ov42_02227D74: @ 0x02227D74
push {r3, r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
ldr r1, [r5, #0x10]
ldr r0, [r5, #4]
adds r1, r1, #5
bl FUN_02024950
str r4, [r5, #0x10]
pop {r3, r4, r5, pc}
thumb_func_end ov42_02227D74
thumb_func_start ov42_02227D88
ov42_02227D88: @ 0x02227D88
ldr r3, _02227D94 @ =FUN_02024950
str r1, [r0, #0x10]
ldr r0, [r0, #4]
adds r1, #9
bx r3
nop
_02227D94: .4byte FUN_02024950
thumb_func_end ov42_02227D88
thumb_func_start ov42_02227D98
ov42_02227D98: @ 0x02227D98
ldr r3, _02227DA4 @ =FUN_02024950
str r1, [r0, #0x10]
ldr r0, [r0, #4]
adds r1, r1, #5
bx r3
nop
_02227DA4: .4byte FUN_02024950
thumb_func_end ov42_02227D98
thumb_func_start ov42_02227DA8
ov42_02227DA8: @ 0x02227DA8
ldr r3, _02227DB4 @ =FUN_02024950
str r1, [r0, #0x10]
ldr r0, [r0, #4]
adds r1, r1, #5
bx r3
nop
_02227DB4: .4byte FUN_02024950
thumb_func_end ov42_02227DA8
thumb_func_start ov42_02227DB8
ov42_02227DB8: @ 0x02227DB8
ldr r3, _02227DC4 @ =FUN_02024950
str r1, [r0, #0x10]
ldr r0, [r0, #4]
adds r1, r1, #5
bx r3
nop
_02227DC4: .4byte FUN_02024950
thumb_func_end ov42_02227DB8
thumb_func_start ov42_02227DC8
ov42_02227DC8: @ 0x02227DC8
ldr r3, _02227DD4 @ =FUN_02024950
str r1, [r0, #0x10]
ldr r0, [r0, #4]
adds r1, r1, #5
bx r3
nop
_02227DD4: .4byte FUN_02024950
thumb_func_end ov42_02227DC8
thumb_func_start ov42_02227DD8
ov42_02227DD8: @ 0x02227DD8
ldr r3, _02227DE4 @ =FUN_020249B0
movs r1, #2
ldr r0, [r0, #4]
lsls r1, r1, #0xc
bx r3
nop
_02227DE4: .4byte FUN_020249B0
thumb_func_end ov42_02227DD8
thumb_func_start ov42_02227DE8
ov42_02227DE8: @ 0x02227DE8
ldr r3, _02227DF4 @ =FUN_020249B0
movs r1, #2
ldr r0, [r0, #4]
lsls r1, r1, #0xc
bx r3
nop
_02227DF4: .4byte FUN_020249B0
thumb_func_end ov42_02227DE8
thumb_func_start ov42_02227DF8
ov42_02227DF8: @ 0x02227DF8
push {r3, lr}
adds r1, r0, #0
movs r0, #0x14
ldrsh r0, [r1, r0]
cmp r0, #0
ldr r0, [r1, #4]
bne _02227E0E
movs r1, #1
bl FUN_020249D4
pop {r3, pc}
_02227E0E:
ldr r1, [r1, #0x10]
adds r1, r1, #5
bl FUN_020248F0
pop {r3, pc}
thumb_func_end ov42_02227DF8
thumb_func_start ov42_02227E18
ov42_02227E18: @ 0x02227E18
ldr r3, _02227E24 @ =FUN_020249B0
movs r1, #2
ldr r0, [r0, #4]
lsls r1, r1, #0xc
bx r3
nop
_02227E24: .4byte FUN_020249B0
thumb_func_end ov42_02227E18
thumb_func_start ov42_02227E28
ov42_02227E28: @ 0x02227E28
ldr r3, _02227E34 @ =FUN_020249B0
movs r1, #1
ldr r0, [r0, #4]
lsls r1, r1, #0xc
bx r3
nop
_02227E34: .4byte FUN_020249B0
thumb_func_end ov42_02227E28
thumb_func_start ov42_02227E38
ov42_02227E38: @ 0x02227E38
ldr r3, _02227E44 @ =FUN_020249B0
movs r1, #1
ldr r0, [r0, #4]
lsls r1, r1, #0xc
bx r3
nop
_02227E44: .4byte FUN_020249B0
thumb_func_end ov42_02227E38
thumb_func_start ov42_02227E48
ov42_02227E48: @ 0x02227E48
ldr r3, _02227E54 @ =FUN_020249B0
movs r1, #2
ldr r0, [r0, #4]
lsls r1, r1, #0xe
bx r3
nop
_02227E54: .4byte FUN_020249B0
thumb_func_end ov42_02227E48
thumb_func_start ov42_02227E58
ov42_02227E58: @ 0x02227E58
ldr r3, _02227E64 @ =FUN_020249B0
movs r1, #6
ldr r0, [r0, #4]
lsls r1, r1, #0xc
bx r3
nop
_02227E64: .4byte FUN_020249B0
thumb_func_end ov42_02227E58
thumb_func_start ov42_02227E68
ov42_02227E68: @ 0x02227E68
ldr r0, [r0, #4]
cmp r0, #0
bne _02227E72
movs r0, #1
bx lr
_02227E72:
movs r0, #0
bx lr
.align 2, 0
thumb_func_end ov42_02227E68
thumb_func_start ov42_02227E78
ov42_02227E78: @ 0x02227E78
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
adds r6, r1, #0
adds r5, r0, #0
adds r0, r6, #0
adds r4, r2, #0
bl FUN_0200A828
str r0, [sp, #4]
adds r0, r6, #0
movs r1, #1
bl FUN_0200B12C
adds r7, r0, #0
adds r0, r6, #0
movs r1, #2
bl FUN_0200B12C
adds r6, r0, #0
movs r0, #0
mvns r0, r0
cmp r7, r0
beq _02227EBC
lsls r0, r4, #0x15
lsrs r0, r0, #0x10
str r0, [sp]
ldr r1, [sp, #4]
lsls r3, r7, #0x14
ldr r0, [r5, #4]
ldr r1, [r1, #0xc]
movs r2, #2
lsrs r3, r3, #0x10
bl FUN_0200316C
_02227EBC:
movs r0, #0
mvns r0, r0
cmp r6, r0
beq _02227EDA
lsls r0, r4, #0x15
lsrs r0, r0, #0x10
str r0, [sp]
ldr r1, [sp, #4]
lsls r3, r6, #0x14
ldr r0, [r5, #4]
ldr r1, [r1, #0xc]
movs r2, #3
lsrs r3, r3, #0x10
bl FUN_0200316C
_02227EDA:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end ov42_02227E78
thumb_func_start ov42_02227EE0
ov42_02227EE0: @ 0x02227EE0
push {r3, r4, r5, r6, r7, lr}
adds r7, r2, #0
adds r5, r0, #0
adds r6, r1, #0
adds r0, r7, #0
movs r1, #8
bl FUN_0201AA8C
adds r4, r0, #0
bne _02227EF8
bl GF_AssertFail
_02227EF8:
strh r5, [r4]
strh r6, [r4, #2]
ldrh r2, [r4]
ldrh r1, [r4, #2]
adds r0, r7, #0
muls r1, r2, r1
lsls r1, r1, #2
bl FUN_0201AA8C
str r0, [r4, #4]
cmp r0, #0
bne _02227F14
bl GF_AssertFail
_02227F14:
ldrh r3, [r4]
ldrh r2, [r4, #2]
ldr r0, [r4, #4]
movs r1, #0
muls r2, r3, r2
lsls r2, r2, #2
blx FUN_020E5B44
adds r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov42_02227EE0
thumb_func_start ov42_02227F28
ov42_02227F28: @ 0x02227F28
push {r4, lr}
adds r4, r0, #0
bne _02227F32
bl GF_AssertFail
_02227F32:
ldr r0, [r4, #4]
bl FUN_0201AB0C
adds r0, r4, #0
bl FUN_0201AB0C
pop {r4, pc}
thumb_func_end ov42_02227F28
thumb_func_start ov42_02227F40
ov42_02227F40: @ 0x02227F40
ldrh r0, [r0]
bx lr
thumb_func_end ov42_02227F40
thumb_func_start ov42_02227F44
ov42_02227F44: @ 0x02227F44
ldrh r0, [r0, #2]
bx lr
thumb_func_end ov42_02227F44
thumb_func_start ov42_02227F48
ov42_02227F48: @ 0x02227F48
push {r3, r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
cmp r4, #0
bne _02227F56
bl GF_AssertFail
_02227F56:
ldrh r3, [r4]
ldrh r2, [r4, #2]
ldr r0, [r4, #4]
adds r1, r5, #0
muls r2, r3, r2
lsls r2, r2, #2
blx FUN_020E5AD8
pop {r3, r4, r5, pc}
thumb_func_end ov42_02227F48
thumb_func_start ov42_02227F68
ov42_02227F68: @ 0x02227F68
push {r3, r4, r5, r6, lr}
sub sp, #4
adds r5, r0, #0
ldr r0, _02227FA0 @ =0x02229E04
adds r4, r1, #0
ldr r0, [r0]
adds r6, r2, #0
str r0, [sp]
cmp r5, #0
bne _02227F80
bl GF_AssertFail
_02227F80:
ldrh r2, [r5]
cmp r2, r4
bls _02227F9A
ldrh r0, [r5, #2]
cmp r0, r6
bls _02227F9A
adds r0, r2, #0
muls r0, r6, r0
adds r0, r4, r0
ldr r1, [r5, #4]
lsls r0, r0, #2
ldr r0, [r1, r0]
str r0, [sp]
_02227F9A:
ldr r0, [sp]
add sp, #4
pop {r3, r4, r5, r6, pc}
.align 2, 0
_02227FA0: .4byte 0x02229E04
thumb_func_end ov42_02227F68
thumb_func_start ov42_02227FA4
ov42_02227FA4: @ 0x02227FA4
push {r4, r5, r6, lr}
sub sp, #8
adds r5, r0, #0
adds r4, r1, #0
adds r6, r2, #0
cmp r5, #0
bne _02227FB6
bl GF_AssertFail
_02227FB6:
adds r0, r5, #0
adds r1, r4, #0
adds r2, r6, #0
bl ov42_02227F68
movs r1, #0
mvns r1, r1
str r0, [sp]
str r0, [sp, #4]
cmp r0, r1
bne _02227FD2
add sp, #8
movs r0, #1
pop {r4, r5, r6, pc}
_02227FD2:
lsls r0, r0, #0x1f
lsrs r0, r0, #0x1f
add sp, #8
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end ov42_02227FA4
thumb_func_start ov42_02227FDC
ov42_02227FDC: @ 0x02227FDC
push {r4, r5, r6, lr}
sub sp, #8
adds r5, r0, #0
adds r4, r1, #0
adds r6, r2, #0
cmp r5, #0
bne _02227FEE
bl GF_AssertFail
_02227FEE:
adds r0, r5, #0
adds r1, r4, #0
adds r2, r6, #0
bl ov42_02227F68
movs r1, #0
mvns r1, r1
str r0, [sp]
str r0, [sp, #4]
cmp r0, r1
bne _0222800A
add sp, #8
movs r0, #0
pop {r4, r5, r6, pc}
_0222800A:
lsrs r0, r0, #1
add sp, #8
pop {r4, r5, r6, pc}
thumb_func_end ov42_02227FDC
thumb_func_start ov42_02228010
ov42_02228010: @ 0x02228010
push {r4, r5, r6, lr}
adds r6, r1, #0
adds r5, r0, #0
adds r0, r6, #0
movs r1, #8
bl FUN_0201AA8C
adds r4, r0, #0
bne _02228026
bl GF_AssertFail
_02228026:
movs r1, #0x18
adds r0, r6, #0
muls r1, r5, r1
str r5, [r4, #4]
bl FUN_0201AA8C
str r0, [r4]
cmp r0, #0
bne _0222803C
bl GF_AssertFail
_0222803C:
ldr r3, [r4, #4]
movs r2, #0x18
ldr r0, [r4]
movs r1, #0
muls r2, r3, r2
blx FUN_020E5B44
adds r0, r4, #0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end ov42_02228010
thumb_func_start ov42_02228050
ov42_02228050: @ 0x02228050
push {r4, lr}
adds r4, r0, #0
bne _0222805A
bl GF_AssertFail
_0222805A:
ldr r0, [r4]
bl FUN_0201AB0C
adds r0, r4, #0
bl FUN_0201AB0C
pop {r4, pc}
thumb_func_end ov42_02228050
thumb_func_start ov42_02228068
ov42_02228068: @ 0x02228068
push {r4, lr}
adds r4, r1, #0
ldrb r1, [r4, #7]
bl ov42_02228110
adds r1, r4, #0
bl ov42_02228548
pop {r4, pc}
.align 2, 0
thumb_func_end ov42_02228068
thumb_func_start ov42_0222807C
ov42_0222807C: @ 0x0222807C
push {r4, r5, r6, lr}
adds r6, r0, #0
bl ov42_022280A8
adds r5, r0, #0
ldr r4, _022280A4 @ =0x00000000
beq _022280A2
_0222808A:
lsls r1, r4, #0x10
adds r0, r6, #0
lsrs r1, r1, #0x10
bl ov42_02228148
cmp r0, #0
beq _0222809C
bl ov42_02228574
_0222809C:
adds r4, r4, #1
cmp r4, r5
blo _0222808A
_022280A2:
pop {r4, r5, r6, pc}
.align 2, 0
_022280A4: .4byte 0x00000000
thumb_func_end ov42_0222807C
thumb_func_start ov42_022280A8
ov42_022280A8: @ 0x022280A8
push {r4, lr}
adds r4, r0, #0
bne _022280B2
bl GF_AssertFail
_022280B2:
ldr r0, [r4, #4]
pop {r4, pc}
.align 2, 0
thumb_func_end ov42_022280A8
thumb_func_start ov42_022280B8
ov42_022280B8: @ 0x022280B8
push {r3, r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
cmp r5, #0
bne _022280C6
bl GF_AssertFail
_022280C6:
cmp r4, #0
bne _022280CE
bl GF_AssertFail
_022280CE:
adds r0, r5, #0
bl ov42_022282B0
movs r1, #0
ldrsh r2, [r4, r1]
strh r2, [r0, #4]
movs r2, #2
ldrsh r3, [r4, r2]
strh r3, [r0, #6]
ldrsh r1, [r4, r1]
strh r1, [r0, #8]
ldrsh r1, [r4, r2]
strh r1, [r0, #0xa]
ldrh r1, [r4, #4]
strh r1, [r0, #0xc]
ldrh r1, [r4, #6]
strb r1, [r0, #0x15]
ldrh r1, [r4, #8]
strb r1, [r0, #0x14]
ldrh r1, [r4, #0xa]
strh r1, [r0, #0xe]
movs r1, #1
str r1, [r0]
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end ov42_022280B8
thumb_func_start ov42_02228100
ov42_02228100: @ 0x02228100
movs r2, #0x18
movs r1, #0
_02228104:
strb r1, [r0]
adds r0, r0, #1
subs r2, r2, #1
bne _02228104
bx lr
.align 2, 0
thumb_func_end ov42_02228100
thumb_func_start ov42_02228110
ov42_02228110: @ 0x02228110
push {r3, r4, r5, r6}
ldr r5, [r0, #4]
movs r2, #0
cmp r5, #0
bls _02228142
ldr r4, [r0]
adds r3, r2, #0
adds r0, r4, #0
_02228120:
ldr r6, [r0]
cmp r6, #1
bne _02228138
adds r6, r4, r3
ldrh r6, [r6, #0xc]
cmp r1, r6
bne _02228138
movs r0, #0x18
muls r0, r2, r0
adds r0, r4, r0
pop {r3, r4, r5, r6}
bx lr
_02228138:
adds r2, r2, #1
adds r0, #0x18
adds r3, #0x18
cmp r2, r5
blo _02228120
_02228142:
movs r0, #0
pop {r3, r4, r5, r6}
bx lr
thumb_func_end ov42_02228110
thumb_func_start ov42_02228148
ov42_02228148: @ 0x02228148
push {r3, r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
cmp r5, #0
bne _02228156
bl GF_AssertFail
_02228156:
ldr r0, [r5, #4]
cmp r4, r0
blo _02228160
bl GF_AssertFail
_02228160:
ldr r2, [r5]
movs r0, #0x18
adds r1, r4, #0
muls r1, r0, r1
ldr r0, [r2, r1]
cmp r0, #1
bne _02228172
adds r0, r2, r1
pop {r3, r4, r5, pc}
_02228172:
movs r0, #0
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end ov42_02228148
thumb_func_start ov42_02228178
ov42_02228178: @ 0x02228178
ldr r3, _0222817C @ =ov42_02228110
bx r3
.align 2, 0
_0222817C: .4byte ov42_02228110
thumb_func_end ov42_02228178
thumb_func_start ov42_02228180
ov42_02228180: @ 0x02228180
ldr r3, _02228184 @ =ov42_02228148
bx r3
.align 2, 0
_02228184: .4byte ov42_02228148
thumb_func_end ov42_02228180
thumb_func_start ov42_02228188
ov42_02228188: @ 0x02228188
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
cmp r4, #0
bne _02228196
bl GF_AssertFail
_02228196:
cmp r6, #0xa
bhi _022281F0
adds r0, r6, r6
add r0, pc
ldrh r0, [r0, #6]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
add pc, r0
_022281A6: @ jump table
.2byte _022281BC - _022281A6 - 2 @ case 0
.2byte _022281C2 - _022281A6 - 2 @ case 1
.2byte _022281C8 - _022281A6 - 2 @ case 2
.2byte _022281CE - _022281A6 - 2 @ case 3
.2byte _022281D4 - _022281A6 - 2 @ case 4
.2byte _022281D8 - _022281A6 - 2 @ case 5
.2byte _022281DC - _022281A6 - 2 @ case 6
.2byte _022281E0 - _022281A6 - 2 @ case 7
.2byte _022281E4 - _022281A6 - 2 @ case 8
.2byte _022281E8 - _022281A6 - 2 @ case 9
.2byte _022281EC - _022281A6 - 2 @ case 10
_022281BC:
movs r0, #4
ldrsh r5, [r4, r0]
b _022281F4
_022281C2:
movs r0, #6
ldrsh r5, [r4, r0]
b _022281F4
_022281C8:
movs r0, #8
ldrsh r5, [r4, r0]
b _022281F4
_022281CE:
movs r0, #0xa
ldrsh r5, [r4, r0]
b _022281F4
_022281D4:
ldrh r5, [r4, #0xc]
b _022281F4
_022281D8:
ldrb r5, [r4, #0x15]
b _022281F4
_022281DC:
ldrb r5, [r4, #0x14]
b _022281F4
_022281E0:
ldrh r5, [r4, #0xe]
b _022281F4
_022281E4:
ldrh r5, [r4, #0x10]
b _022281F4
_022281E8:
ldrh r5, [r4, #0x12]
b _022281F4
_022281EC:
ldrh r5, [r4, #0x16]
b _022281F4
_022281F0:
bl GF_AssertFail
_022281F4:
adds r0, r5, #0
pop {r4, r5, r6, pc}
thumb_func_end ov42_02228188
thumb_func_start ov42_022281F8
ov42_022281F8: @ 0x022281F8
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
adds r4, r2, #0
cmp r5, #0
bne _02228208
bl GF_AssertFail
_02228208:
cmp r6, #0xa
bhi _0222826A
adds r0, r6, r6
add r0, pc
ldrh r0, [r0, #6]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
add pc, r0
_02228218: @ jump table
.2byte _0222822E - _02228218 - 2 @ case 0
.2byte _02228232 - _02228218 - 2 @ case 1
.2byte _02228236 - _02228218 - 2 @ case 2
.2byte _0222823A - _02228218 - 2 @ case 3
.2byte _0222823E - _02228218 - 2 @ case 4
.2byte _02228242 - _02228218 - 2 @ case 5
.2byte _0222824E - _02228218 - 2 @ case 6
.2byte _0222825A - _02228218 - 2 @ case 7
.2byte _0222825E - _02228218 - 2 @ case 8
.2byte _02228262 - _02228218 - 2 @ case 9
.2byte _02228266 - _02228218 - 2 @ case 10
_0222822E:
strh r4, [r5, #4]
pop {r4, r5, r6, pc}
_02228232:
strh r4, [r5, #6]
pop {r4, r5, r6, pc}
_02228236:
strh r4, [r5, #8]
pop {r4, r5, r6, pc}
_0222823A:
strh r4, [r5, #0xa]
pop {r4, r5, r6, pc}
_0222823E:
strh r4, [r5, #0xc]
pop {r4, r5, r6, pc}
_02228242:
cmp r4, #0xc
blt _0222824A
bl GF_AssertFail
_0222824A:
strb r4, [r5, #0x15]
pop {r4, r5, r6, pc}
_0222824E:
cmp r4, #4
blt _02228256
bl GF_AssertFail
_02228256:
strb r4, [r5, #0x14]
pop {r4, r5, r6, pc}
_0222825A:
strh r4, [r5, #0xe]
pop {r4, r5, r6, pc}
_0222825E:
strh r4, [r5, #0x10]
pop {r4, r5, r6, pc}
_02228262:
strh r4, [r5, #0x12]
pop {r4, r5, r6, pc}
_02228266:
strh r4, [r5, #0x16]
pop {r4, r5, r6, pc}
_0222826A:
bl GF_AssertFail
pop {r4, r5, r6, pc}
thumb_func_end ov42_022281F8
thumb_func_start ov42_02228270
ov42_02228270: @ 0x02228270
push {r0, r1, r2, r3}
lsls r0, r1, #1
add r2, sp, #0
movs r1, #0
ldrsh r3, [r2, r1]
ldr r1, _0222829C @ =0x02229E0C
ldrsb r1, [r1, r0]
adds r1, r3, r1
strh r1, [r2]
movs r1, #2
ldrsh r3, [r2, r1]
ldr r1, _022282A0 @ =0x02229E0D
ldrsb r0, [r1, r0]
adds r0, r3, r0
strh r0, [r2, #2]
ldrh r1, [r2, #2]
ldrh r0, [r2]
lsls r1, r1, #0x10
orrs r0, r1
add sp, #0x10
bx lr
nop
_0222829C: .4byte 0x02229E0C
_022282A0: .4byte 0x02229E0D
thumb_func_end ov42_02228270
thumb_func_start ov42_022282A4
ov42_022282A4: @ 0x022282A4
ldr r1, _022282AC @ =0x02229E08
ldrb r0, [r1, r0]
bx lr
nop
_022282AC: .4byte 0x02229E08
thumb_func_end ov42_022282A4
thumb_func_start ov42_022282B0
ov42_022282B0: @ 0x022282B0
push {r4, lr}
ldr r4, [r0, #4]
movs r1, #0
cmp r4, #0
bls _022282D4
ldr r3, [r0]
adds r2, r3, #0
_022282BE:
ldr r0, [r2]
cmp r0, #0
bne _022282CC
movs r0, #0x18
muls r0, r1, r0
adds r0, r3, r0
pop {r4, pc}
_022282CC:
adds r1, r1, #1
adds r2, #0x18
cmp r1, r4
blo _022282BE
_022282D4:
bl GF_AssertFail
movs r0, #0
pop {r4, pc}
thumb_func_end ov42_022282B0
thumb_func_start ov42_022282DC
ov42_022282DC: @ 0x022282DC
ldrh r1, [r0, #6]
ldrh r0, [r0, #4]
lsls r1, r1, #0x10
orrs r0, r1
bx lr
.align 2, 0
thumb_func_end ov42_022282DC
thumb_func_start ov42_022282E8
ov42_022282E8: @ 0x022282E8
ldrh r1, [r0, #0xa]
ldrh r0, [r0, #8]
lsls r1, r1, #0x10
orrs r0, r1
bx lr
.align 2, 0
thumb_func_end ov42_022282E8
thumb_func_start ov42_022282F4
ov42_022282F4: @ 0x022282F4
push {r4, r5, r6, lr}
sub sp, #0x10
adds r5, r0, #0
movs r1, #8
bl ov42_02228188
adds r4, r0, #0
adds r0, r5, #0
movs r1, #9
bl ov42_02228188
adds r6, r0, #0
adds r0, r5, #0
bl ov42_022282DC
add r1, sp, #0
strh r0, [r1, #4]
lsrs r0, r0, #0x10
strh r0, [r1, #6]
ldrh r0, [r1, #4]
strh r0, [r1, #0xc]
ldrh r0, [r1, #6]
strh r0, [r1, #0xe]
adds r0, r5, #0
bl ov42_022282E8
add r1, sp, #0
strh r0, [r1]
lsrs r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
movs r2, #8
strh r0, [r1, #8]
ldrh r0, [r1, #2]
strh r0, [r1, #0xa]
movs r0, #0xc
ldrsh r3, [r1, r0]
ldrsh r2, [r1, r2]
subs r2, r3, r2
strh r2, [r1, #0xc]
movs r2, #0xa
ldrsh r5, [r1, r2]
movs r2, #0xe
ldrsh r2, [r1, r2]
subs r2, r2, r5
strh r2, [r1, #0xe]
cmp r4, #0
ble _02228372
ldrsh r0, [r1, r0]
adds r1, r6, #0
muls r0, r4, r0
blx FUN_020F2998
add r1, sp, #0
strh r0, [r1, #0xc]
movs r0, #0xe
ldrsh r0, [r1, r0]
adds r1, r6, #0
muls r0, r4, r0
blx FUN_020F2998
add r1, sp, #0
b _02228376
_02228372:
movs r0, #0
strh r0, [r1, #0xc]
_02228376:
strh r0, [r1, #0xe]
add r1, sp, #0
movs r0, #0xc
ldrsh r2, [r1, r0]
movs r0, #8
ldrsh r0, [r1, r0]
adds r0, r2, r0
strh r0, [r1, #0xc]
movs r0, #0xe
ldrsh r0, [r1, r0]
adds r0, r0, r5
strh r0, [r1, #0xe]
ldrh r2, [r1, #0xe]
ldrh r0, [r1, #0xc]
lsls r1, r2, #0x10
orrs r0, r1
add sp, #0x10
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end ov42_022282F4
thumb_func_start ov42_0222839C
ov42_0222839C: @ 0x0222839C
push {r0, r1, r2, r3}
add r1, sp, #0
ldrh r2, [r1, #4]
strh r2, [r0, #4]
ldrh r1, [r1, #6]
strh r1, [r0, #6]
add sp, #0x10
bx lr
thumb_func_end ov42_0222839C
thumb_func_start ov42_022283AC
ov42_022283AC: @ 0x022283AC
push {r0, r1, r2, r3}
add r1, sp, #0
ldrh r2, [r1, #4]
strh r2, [r0, #8]
ldrh r1, [r1, #6]
strh r1, [r0, #0xa]
add sp, #0x10
bx lr
thumb_func_end ov42_022283AC
thumb_func_start ov42_022283BC
ov42_022283BC: @ 0x022283BC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x30
adds r5, r0, #0
str r1, [sp]
adds r4, r2, #0
bl ov42_022282DC
add r1, sp, #0x10
strh r0, [r1, #0xc]
lsrs r0, r0, #0x10
strh r0, [r1, #0xe]
ldrh r0, [r1, #0xc]
mov r2, sp
subs r2, r2, #4
strh r0, [r1, #0x1c]
ldrh r0, [r1, #0xe]
strh r0, [r1, #0x1e]
ldrh r0, [r1, #0x1c]
strh r0, [r2]
ldrh r0, [r1, #0x1e]
adds r1, r4, #0
strh r0, [r2, #2]
ldr r0, [r2]
bl ov42_02228270
add r1, sp, #0x10
strh r0, [r1, #8]
lsrs r0, r0, #0x10
strh r0, [r1, #0xa]
ldrh r0, [r1, #8]
strh r0, [r1, #0x14]
ldrh r0, [r1, #0xa]
strh r0, [r1, #0x16]
adds r0, r5, #0
movs r1, #4
bl ov42_02228188
str r0, [sp, #4]
ldr r0, [sp]
bl ov42_022280A8
movs r5, #0
str r0, [sp, #8]
cmp r0, #0
bls _0222849C
add r4, sp, #0x10
movs r0, #0x16
ldrsh r7, [r4, r0]
movs r0, #0x14
ldrsh r0, [r4, r0]
str r0, [sp, #0xc]
_02228422:
lsls r1, r5, #0x10
ldr r0, [sp]
lsrs r1, r1, #0x10
bl ov42_02228180
adds r6, r0, #0
beq _02228494
movs r1, #4
bl ov42_02228188
ldr r1, [sp, #4]
cmp r0, r1
beq _02228494
adds r0, r6, #0
bl ov42_022282DC
strh r0, [r4, #4]
lsrs r0, r0, #0x10
strh r0, [r4, #6]
ldrh r0, [r4, #4]
strh r0, [r4, #0x18]
ldrh r0, [r4, #6]
strh r0, [r4, #0x1a]
movs r0, #0x18
ldrsh r1, [r4, r0]
ldr r0, [sp, #0xc]
cmp r1, r0
bne _02228468
movs r0, #0x1a
ldrsh r0, [r4, r0]
cmp r0, r7
bne _02228468
add sp, #0x30
adds r0, r6, #0
pop {r3, r4, r5, r6, r7, pc}
_02228468:
adds r0, r6, #0
bl ov42_022282E8
strh r0, [r4]
lsrs r0, r0, #0x10
strh r0, [r4, #2]
ldrh r0, [r4]
strh r0, [r4, #0x10]
ldrh r0, [r4, #2]
strh r0, [r4, #0x12]
movs r0, #0x10
ldrsh r1, [r4, r0]
ldr r0, [sp, #0xc]
cmp r1, r0
bne _02228494
movs r0, #0x12
ldrsh r0, [r4, r0]
cmp r0, r7
bne _02228494
add sp, #0x30
adds r0, r6, #0
pop {r3, r4, r5, r6, r7, pc}
_02228494:
ldr r0, [sp, #8]
adds r5, r5, #1
cmp r5, r0
blo _02228422
_0222849C:
movs r0, #0
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end ov42_022283BC
thumb_func_start ov42_022284A4
ov42_022284A4: @ 0x022284A4
push {r0, r1, r2, r3}
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r2, sp, #0x30
movs r1, #6
str r0, [sp]
ldrsh r6, [r2, r1]
bl ov42_022280A8
movs r5, #0
str r0, [sp, #8]
cmp r0, #0
bls _0222853C
add r1, sp, #0x30
movs r0, #4
ldrsh r7, [r1, r0]
add r4, sp, #0xc
_022284C6:
lsls r1, r5, #0x10
ldr r0, [sp]
lsrs r1, r1, #0x10
bl ov42_02228180
str r0, [sp, #4]
cmp r0, #0
beq _02228534
bl ov42_022282DC
strh r0, [r4, #4]
lsrs r0, r0, #0x10
strh r0, [r4, #6]
ldrh r0, [r4, #4]
strh r0, [r4, #0xc]
ldrh r0, [r4, #6]
strh r0, [r4, #0xe]
movs r0, #0xc
ldrsh r0, [r4, r0]
cmp r0, r7
bne _02228504
movs r0, #0xe
ldrsh r0, [r4, r0]
cmp r0, r6
bne _02228504
ldr r0, [sp, #4]
add sp, #0x1c
pop {r4, r5, r6, r7}
pop {r3}
add sp, #0x10
bx r3
_02228504:
ldr r0, [sp, #4]
bl ov42_022282E8
strh r0, [r4]
lsrs r0, r0, #0x10
strh r0, [r4, #2]
ldrh r0, [r4]
strh r0, [r4, #8]
ldrh r0, [r4, #2]
strh r0, [r4, #0xa]
movs r0, #8
ldrsh r0, [r4, r0]
cmp r0, r7
bne _02228534
movs r0, #0xa
ldrsh r0, [r4, r0]
cmp r0, r6
bne _02228534
ldr r0, [sp, #4]
add sp, #0x1c
pop {r4, r5, r6, r7}
pop {r3}
add sp, #0x10
bx r3
_02228534:
ldr r0, [sp, #8]
adds r5, r5, #1
cmp r5, r0
blo _022284C6
_0222853C:
movs r0, #0
add sp, #0x1c
pop {r4, r5, r6, r7}
pop {r3}
add sp, #0x10
bx r3
thumb_func_end ov42_022284A4
thumb_func_start ov42_02228548
ov42_02228548: @ 0x02228548
push {r3, r4, r5, lr}
adds r3, r1, #0
ldrh r1, [r3]
mov r2, sp
subs r2, r2, #4
strh r1, [r2]
ldrh r1, [r3, #2]
adds r4, r0, #0
strh r1, [r2, #2]
ldr r1, [r2]
ldrb r2, [r3, #6]
ldrh r3, [r3, #4]
lsls r5, r3, #2
ldr r3, _02228570 @ =0x02229E14
ldr r3, [r3, r5]
blx r3
movs r0, #0
strh r0, [r4, #0x16]
pop {r3, r4, r5, pc}
nop
_02228570: .4byte 0x02229E14
thumb_func_end ov42_02228548
thumb_func_start ov42_02228574
ov42_02228574: @ 0x02228574
push {r4, lr}
movs r1, #5
adds r4, r0, #0
bl ov42_02228188
adds r1, r0, #0
lsls r2, r1, #2
ldr r1, _022285A0 @ =0x02229E44
adds r0, r4, #0
ldr r1, [r1, r2]
blx r1
ldrh r1, [r4, #0x16]
adds r1, r1, #1
strh r1, [r4, #0x16]
cmp r0, #1
bne _0222859E
adds r0, r4, #0
bl ov42_02228C40
movs r0, #0
strh r0, [r4, #0x16]
_0222859E:
pop {r4, pc}
.align 2, 0
_022285A0: .4byte 0x02229E44
thumb_func_end ov42_02228574
thumb_func_start ov42_022285A4
ov42_022285A4: @ 0x022285A4
push {r0, r1, r2, r3}
push {r3, r4, r5, lr}
adds r5, r0, #0
adds r4, r2, #0
cmp r5, #0
bne _022285B4
bl GF_AssertFail
_022285B4:
add r1, sp, #0x10
ldrh r2, [r1, #4]
mov r3, sp
subs r3, r3, #4
strh r2, [r3]
ldrh r1, [r1, #6]
adds r0, r5, #0
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_0222839C
add r1, sp, #0x10
mov r3, sp
ldrh r2, [r1, #4]
subs r3, r3, #4
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
adds r0, r5, #0
movs r1, #6
adds r2, r4, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #5
movs r2, #0
bl ov42_022281F8
pop {r3, r4, r5}
pop {r3}
add sp, #0x10
bx r3
thumb_func_end ov42_022285A4
thumb_func_start ov42_022285FC
ov42_022285FC: @ 0x022285FC
push {r0, r1, r2, r3}
push {r3, r4, r5, lr}
adds r5, r0, #0
adds r4, r2, #0
cmp r5, #0
bne _0222860C
bl GF_AssertFail
_0222860C:
add r1, sp, #0x10
ldrh r2, [r1, #4]
mov r3, sp
subs r3, r3, #4
strh r2, [r3]
ldrh r1, [r1, #6]
adds r0, r5, #0
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_0222839C
add r1, sp, #0x10
mov r3, sp
ldrh r2, [r1, #4]
subs r3, r3, #4
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
adds r0, r5, #0
movs r1, #6
adds r2, r4, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #5
movs r2, #1
bl ov42_022281F8
adds r0, r5, #0
movs r1, #8
movs r2, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #9
movs r2, #2
bl ov42_022281F8
pop {r3, r4, r5}
pop {r3}
add sp, #0x10
bx r3
thumb_func_end ov42_022285FC
thumb_func_start ov42_02228668
ov42_02228668: @ 0x02228668
push {r0, r1, r2, r3}
push {r3, r4, r5, lr}
sub sp, #8
adds r5, r0, #0
adds r4, r2, #0
cmp r5, #0
bne _0222867A
bl GF_AssertFail
_0222867A:
add r0, sp, #0x18
ldrh r1, [r0, #4]
mov r2, sp
subs r2, r2, #4
strh r1, [r2]
ldrh r0, [r0, #6]
adds r1, r4, #0
strh r0, [r2, #2]
ldr r0, [r2]
bl ov42_02228BDC
add r1, sp, #0
strh r0, [r1]
lsrs r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
mov r3, sp
subs r3, r3, #4
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
add r1, sp, #0x18
ldrh r2, [r1, #4]
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
add r1, sp, #0
mov r3, sp
ldrh r2, [r1, #4]
subs r3, r3, #4
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_0222839C
adds r0, r5, #0
movs r1, #6
adds r2, r4, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #5
movs r2, #2
bl ov42_022281F8
adds r0, r5, #0
movs r1, #8
movs r2, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #9
movs r2, #8
bl ov42_022281F8
add sp, #8
pop {r3, r4, r5}
pop {r3}
add sp, #0x10
bx r3
.align 2, 0
thumb_func_end ov42_02228668
thumb_func_start ov42_02228700
ov42_02228700: @ 0x02228700
push {r0, r1, r2, r3}
push {r3, r4, r5, lr}
sub sp, #8
adds r5, r0, #0
adds r4, r2, #0
cmp r5, #0
bne _02228712
bl GF_AssertFail
_02228712:
add r0, sp, #0x18
ldrh r1, [r0, #4]
mov r2, sp
subs r2, r2, #4
strh r1, [r2]
ldrh r0, [r0, #6]
adds r1, r4, #0
strh r0, [r2, #2]
ldr r0, [r2]
bl ov42_02228BDC
add r1, sp, #0
strh r0, [r1]
lsrs r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
mov r3, sp
subs r3, r3, #4
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
add r1, sp, #0x18
ldrh r2, [r1, #4]
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
add r1, sp, #0
mov r3, sp
ldrh r2, [r1, #4]
subs r3, r3, #4
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_0222839C
adds r0, r5, #0
movs r1, #6
adds r2, r4, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #5
movs r2, #3
bl ov42_022281F8
adds r0, r5, #0
movs r1, #8
movs r2, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #9
movs r2, #4
bl ov42_022281F8
add sp, #8
pop {r3, r4, r5}
pop {r3}
add sp, #0x10
bx r3
.align 2, 0
thumb_func_end ov42_02228700
thumb_func_start ov42_02228798
ov42_02228798: @ 0x02228798
push {r0, r1, r2, r3}
push {r3, r4, r5, lr}
adds r5, r0, #0
adds r4, r2, #0
cmp r5, #0
bne _022287A8
bl GF_AssertFail
_022287A8:
add r1, sp, #0x10
ldrh r2, [r1, #4]
mov r3, sp
subs r3, r3, #4
strh r2, [r3]
ldrh r1, [r1, #6]
adds r0, r5, #0
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_0222839C
add r1, sp, #0x10
mov r3, sp
ldrh r2, [r1, #4]
subs r3, r3, #4
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
adds r0, r5, #0
movs r1, #6
adds r2, r4, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #5
movs r2, #4
bl ov42_022281F8
pop {r3, r4, r5}
pop {r3}
add sp, #0x10
bx r3
thumb_func_end ov42_02228798
thumb_func_start ov42_022287F0
ov42_022287F0: @ 0x022287F0
push {r0, r1, r2, r3}
push {r3, r4, r5, lr}
adds r5, r0, #0
adds r4, r2, #0
cmp r5, #0
bne _02228800
bl GF_AssertFail
_02228800:
add r1, sp, #0x10
ldrh r2, [r1, #4]
mov r3, sp
subs r3, r3, #4
strh r2, [r3]
ldrh r1, [r1, #6]
adds r0, r5, #0
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_0222839C
add r1, sp, #0x10
mov r3, sp
ldrh r2, [r1, #4]
subs r3, r3, #4
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
adds r0, r5, #0
movs r1, #6
adds r2, r4, #0
bl ov42_022281F8
movs r1, #5
adds r0, r5, #0
adds r2, r1, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #8
movs r2, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #9
movs r2, #0x10
bl ov42_022281F8
pop {r3, r4, r5}
pop {r3}
add sp, #0x10
bx r3
thumb_func_end ov42_022287F0
thumb_func_start ov42_0222885C
ov42_0222885C: @ 0x0222885C
push {r0, r1, r2, r3}
push {r3, r4, r5, lr}
sub sp, #8
adds r5, r0, #0
adds r4, r2, #0
cmp r5, #0
bne _0222886E
bl GF_AssertFail
_0222886E:
add r0, sp, #0x18
ldrh r1, [r0, #4]
mov r2, sp
subs r2, r2, #4
strh r1, [r2]
ldrh r0, [r0, #6]
adds r1, r4, #0
strh r0, [r2, #2]
ldr r0, [r2]
bl ov42_02228BDC
add r1, sp, #0
strh r0, [r1]
lsrs r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
mov r3, sp
subs r3, r3, #4
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
add r1, sp, #0x18
ldrh r2, [r1, #4]
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
add r1, sp, #0
mov r3, sp
ldrh r2, [r1, #4]
subs r3, r3, #4
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_0222839C
adds r0, r5, #0
movs r1, #6
adds r2, r4, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #5
movs r2, #6
bl ov42_022281F8
adds r0, r5, #0
movs r1, #8
movs r2, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #9
movs r2, #0x10
bl ov42_022281F8
add sp, #8
pop {r3, r4, r5}
pop {r3}
add sp, #0x10
bx r3
.align 2, 0
thumb_func_end ov42_0222885C
thumb_func_start ov42_022288F4
ov42_022288F4: @ 0x022288F4
push {r0, r1, r2, r3}
push {r3, r4, r5, lr}
sub sp, #8
adds r5, r0, #0
adds r4, r2, #0
cmp r5, #0
bne _02228906
bl GF_AssertFail
_02228906:
add r0, sp, #0x18
ldrh r1, [r0, #4]
mov r2, sp
subs r2, r2, #4
strh r1, [r2]
ldrh r0, [r0, #6]
adds r1, r4, #0
strh r0, [r2, #2]
ldr r0, [r2]
bl ov42_02228BDC
add r1, sp, #0
strh r0, [r1]
lsrs r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
mov r3, sp
subs r3, r3, #4
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
add r1, sp, #0x18
ldrh r2, [r1, #4]
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
add r1, sp, #0
mov r3, sp
ldrh r2, [r1, #4]
subs r3, r3, #4
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_0222839C
adds r0, r5, #0
movs r1, #6
adds r2, r4, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #5
movs r2, #7
bl ov42_022281F8
adds r0, r5, #0
movs r1, #8
movs r2, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #9
movs r2, #4
bl ov42_022281F8
add sp, #8
pop {r3, r4, r5}
pop {r3}
add sp, #0x10
bx r3
.align 2, 0
thumb_func_end ov42_022288F4
thumb_func_start ov42_0222898C
ov42_0222898C: @ 0x0222898C
push {r0, r1, r2, r3}
push {r3, r4, r5, lr}
adds r5, r0, #0
adds r4, r2, #0
cmp r5, #0
bne _0222899C
bl GF_AssertFail
_0222899C:
add r1, sp, #0x10
ldrh r2, [r1, #4]
mov r3, sp
subs r3, r3, #4
strh r2, [r3]
ldrh r1, [r1, #6]
adds r0, r5, #0
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
add r1, sp, #0x10
mov r3, sp
ldrh r2, [r1, #4]
subs r3, r3, #4
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_0222839C
adds r0, r5, #0
movs r1, #6
adds r2, r4, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #5
movs r2, #8
bl ov42_022281F8
adds r0, r5, #0
movs r1, #8
movs r2, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #9
movs r2, #2
bl ov42_022281F8
pop {r3, r4, r5}
pop {r3}
add sp, #0x10
bx r3
thumb_func_end ov42_0222898C
thumb_func_start ov42_022289F8
ov42_022289F8: @ 0x022289F8
push {r0, r1, r2, r3}
push {r3, r4, r5, lr}
adds r5, r0, #0
adds r4, r2, #0
cmp r5, #0
bne _02228A08
bl GF_AssertFail
_02228A08:
add r1, sp, #0x10
ldrh r2, [r1, #4]
mov r3, sp
subs r3, r3, #4
strh r2, [r3]
ldrh r1, [r1, #6]
adds r0, r5, #0
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
add r1, sp, #0x10
mov r3, sp
ldrh r2, [r1, #4]
subs r3, r3, #4
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_0222839C
adds r0, r5, #0
movs r1, #6
adds r2, r4, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #5
movs r2, #9
bl ov42_022281F8
adds r0, r5, #0
movs r1, #8
movs r2, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #9
movs r2, #4
bl ov42_022281F8
pop {r3, r4, r5}
pop {r3}
add sp, #0x10
bx r3
thumb_func_end ov42_022289F8
thumb_func_start ov42_02228A64
ov42_02228A64: @ 0x02228A64
push {r0, r1, r2, r3}
push {r3, r4, r5, lr}
adds r5, r0, #0
adds r4, r2, #0
cmp r5, #0
bne _02228A74
bl GF_AssertFail
_02228A74:
add r1, sp, #0x10
ldrh r2, [r1, #4]
mov r3, sp
subs r3, r3, #4
strh r2, [r3]
ldrh r1, [r1, #6]
adds r0, r5, #0
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
add r1, sp, #0x10
mov r3, sp
ldrh r2, [r1, #4]
subs r3, r3, #4
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_0222839C
adds r0, r5, #0
movs r1, #6
adds r2, r4, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #5
movs r2, #0xa
bl ov42_022281F8
adds r0, r5, #0
movs r1, #8
movs r2, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #9
movs r2, #8
bl ov42_022281F8
pop {r3, r4, r5}
pop {r3}
add sp, #0x10
bx r3
thumb_func_end ov42_02228A64
thumb_func_start ov42_02228AD0
ov42_02228AD0: @ 0x02228AD0
push {r0, r1, r2, r3}
push {r3, r4, r5, lr}
adds r5, r0, #0
adds r4, r2, #0
cmp r5, #0
bne _02228AE0
bl GF_AssertFail
_02228AE0:
add r1, sp, #0x10
ldrh r2, [r1, #4]
mov r3, sp
subs r3, r3, #4
strh r2, [r3]
ldrh r1, [r1, #6]
adds r0, r5, #0
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
add r1, sp, #0x10
mov r3, sp
ldrh r2, [r1, #4]
subs r3, r3, #4
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_0222839C
adds r0, r5, #0
movs r1, #6
adds r2, r4, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #5
movs r2, #0xb
bl ov42_022281F8
adds r0, r5, #0
movs r1, #8
movs r2, #0
bl ov42_022281F8
adds r0, r5, #0
movs r1, #9
movs r2, #0x10
bl ov42_022281F8
pop {r3, r4, r5}
pop {r3}
add sp, #0x10
bx r3
thumb_func_end ov42_02228AD0
thumb_func_start ov42_02228B3C
ov42_02228B3C: @ 0x02228B3C
movs r0, #0
bx lr
thumb_func_end ov42_02228B3C
thumb_func_start ov42_02228B40
ov42_02228B40: @ 0x02228B40
ldr r3, _02228B44 @ =ov42_02228C0C
bx r3
.align 2, 0
_02228B44: .4byte ov42_02228C0C
thumb_func_end ov42_02228B40
thumb_func_start ov42_02228B48
ov42_02228B48: @ 0x02228B48
push {r3, r4, r5, lr}
sub sp, #8
adds r5, r0, #0
bl ov42_02228C0C
adds r4, r0, #0
cmp r4, #1
bne _02228B82
adds r0, r5, #0
bl ov42_022282DC
add r1, sp, #0
strh r0, [r1]
lsrs r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
mov r3, sp
subs r3, r3, #4
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
ldrh r2, [r1, #4]
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
_02228B82:
adds r0, r4, #0
add sp, #8
pop {r3, r4, r5, pc}
thumb_func_end ov42_02228B48
thumb_func_start ov42_02228B88
ov42_02228B88: @ 0x02228B88
push {r3, r4, r5, lr}
sub sp, #8
adds r5, r0, #0
bl ov42_02228C0C
adds r4, r0, #0
cmp r4, #1
bne _02228BC2
adds r0, r5, #0
bl ov42_022282DC
add r1, sp, #0
strh r0, [r1]
lsrs r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
mov r3, sp
subs r3, r3, #4
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
ldrh r2, [r1, #4]
adds r0, r5, #0
strh r2, [r3]
ldrh r1, [r1, #6]
strh r1, [r3, #2]
ldr r1, [r3]
bl ov42_022283AC
_02228BC2:
adds r0, r4, #0
add sp, #8
pop {r3, r4, r5, pc}
thumb_func_end ov42_02228B88
thumb_func_start ov42_02228BC8
ov42_02228BC8: @ 0x02228BC8
movs r0, #0
bx lr
thumb_func_end ov42_02228BC8
thumb_func_start ov42_02228BCC
ov42_02228BCC: @ 0x02228BCC
ldr r3, _02228BD0 @ =ov42_02228C0C
bx r3
.align 2, 0
_02228BD0: .4byte ov42_02228C0C
thumb_func_end ov42_02228BCC
thumb_func_start ov42_02228BD4
ov42_02228BD4: @ 0x02228BD4
ldr r3, _02228BD8 @ =ov42_02228C0C
bx r3
.align 2, 0
_02228BD8: .4byte ov42_02228C0C
thumb_func_end ov42_02228BD4
thumb_func_start ov42_02228BDC
ov42_02228BDC: @ 0x02228BDC
push {r0, r1, r2, r3}
push {r3, lr}
add r0, sp, #8
ldrh r2, [r0]
mov r3, sp
subs r3, r3, #4
strh r2, [r3]
ldrh r0, [r0, #2]
strh r0, [r3, #2]
ldr r0, [r3]
bl ov42_02228270
add r1, sp, #0
strh r0, [r1]
lsrs r0, r0, #0x10
strh r0, [r1, #2]
ldrh r2, [r1, #2]
ldrh r0, [r1]
lsls r1, r2, #0x10
orrs r0, r1
pop {r3}
pop {r3}
add sp, #0x10
bx r3
thumb_func_end ov42_02228BDC
thumb_func_start ov42_02228C0C
ov42_02228C0C: @ 0x02228C0C
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r1, #8
bl ov42_02228188
adds r4, r0, #0
adds r0, r5, #0
movs r1, #9
bl ov42_02228188
adds r6, r0, #0
cmp r4, r6
bge _02228C3A
adds r0, r5, #0
movs r1, #8
adds r2, r4, #1
bl ov42_022281F8
adds r0, r4, #1
cmp r0, r6
bge _02228C3A
movs r0, #0
pop {r4, r5, r6, pc}
_02228C3A:
movs r0, #1
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end ov42_02228C0C
thumb_func_start ov42_02228C40
ov42_02228C40: @ 0x02228C40
push {r4, lr}
sub sp, #8
adds r4, r0, #0
bl ov42_022282DC
add r1, sp, #0
strh r0, [r1]
lsrs r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
adds r0, r4, #0
movs r1, #6
bl ov42_02228188
add r1, sp, #0
adds r2, r0, #0
adds r0, r4, #0
mov r4, sp
ldrh r3, [r1, #4]
subs r4, r4, #4
strh r3, [r4]
ldrh r1, [r1, #6]
strh r1, [r4, #2]
ldr r1, [r4]
bl ov42_022285A4
add sp, #8
pop {r4, pc}
.align 2, 0
thumb_func_end ov42_02228C40
thumb_func_start ov42_02228C80
ov42_02228C80: @ 0x02228C80
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
adds r7, r0, #0
adds r5, r1, #0
adds r4, r2, #0
adds r6, r3, #0
cmp r7, #0
bne _02228C94
bl GF_AssertFail
_02228C94:
cmp r5, #0
bne _02228C9C
bl GF_AssertFail
_02228C9C:
cmp r4, #0
bne _02228CA4
bl GF_AssertFail
_02228CA4:
cmp r6, #0
bne _02228CAC
bl GF_AssertFail
_02228CAC:
ldrb r1, [r4, #3]
adds r0, r5, #0
bl ov42_02228178
str r0, [sp, #4]
cmp r0, #0
bne _02228CBE
bl GF_AssertFail
_02228CBE:
str r6, [sp]
adds r3, r4, #0
ldrh r4, [r4]
adds r2, r5, #0
ldr r0, [sp, #4]
lsls r5, r4, #2
ldr r4, _02228CD8 @ =0x02229E74
adds r1, r7, #0
ldr r4, [r4, r5]
blx r4
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
_02228CD8: .4byte 0x02229E74
thumb_func_end ov42_02228C80
thumb_func_start ov42_02228CDC
ov42_02228CDC: @ 0x02228CDC
push {r3, r4, r5, lr}
movs r1, #5
adds r5, r0, #0
adds r4, r3, #0
bl ov42_02228188
cmp r0, #0
beq _02228CF0
cmp r0, #4
bne _02228D04
_02228CF0:
ldrb r0, [r4, #2]
adds r1, r5, #0
str r0, [sp]
ldrh r2, [r4]
ldrb r3, [r4, #3]
ldr r0, [sp, #0x10]
bl ov42_02228EB0
movs r0, #1
pop {r3, r4, r5, pc}
_02228D04:
movs r0, #0
pop {r3, r4, r5, pc}
thumb_func_end ov42_02228CDC
thumb_func_start ov42_02228D08
ov42_02228D08: @ 0x02228D08
push {r3, r4, r5, r6, lr}
sub sp, #4
adds r5, r0, #0
movs r1, #5
adds r4, r3, #0
bl ov42_02228188
adds r6, r0, #0
adds r0, r5, #0
movs r1, #6
bl ov42_02228188
cmp r6, #0
bne _02228D3E
ldrb r1, [r4, #2]
cmp r0, r1
beq _02228D3E
str r1, [sp]
ldrh r2, [r4]
ldrb r3, [r4, #3]
ldr r0, [sp, #0x18]
adds r1, r5, #0
bl ov42_02228EB0
add sp, #4
movs r0, #1
pop {r3, r4, r5, r6, pc}
_02228D3E:
movs r0, #0
add sp, #4
pop {r3, r4, r5, r6, pc}
thumb_func_end ov42_02228D08
thumb_func_start ov42_02228D44
ov42_02228D44: @ 0x02228D44
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
adds r7, r1, #0
movs r1, #5
adds r5, r0, #0
str r2, [sp, #4]
adds r4, r3, #0
bl ov42_02228188
adds r6, r0, #0
bne _02228D8C
ldrb r2, [r4, #2]
adds r0, r5, #0
adds r1, r7, #0
bl ov42_02228E34
cmp r0, #1
beq _02228D8C
ldrb r2, [r4, #2]
ldr r1, [sp, #4]
adds r0, r5, #0
bl ov42_02228E9C
cmp r0, #1
beq _02228D8C
ldrb r0, [r4, #2]
adds r1, r5, #0
str r0, [sp]
ldrh r2, [r4]
ldrb r3, [r4, #3]
ldr r0, [sp, #0x20]
bl ov42_02228EB0
add sp, #8
movs r0, #1
pop {r3, r4, r5, r6, r7, pc}
_02228D8C:
cmp r6, #0
bne _02228DB2
adds r0, r5, #0
movs r1, #0xa
bl ov42_02228188
cmp r0, #8
blt _02228DB2
ldrb r0, [r4, #2]
adds r1, r5, #0
movs r2, #5
str r0, [sp]
ldrb r3, [r4, #3]
ldr r0, [sp, #0x20]
bl ov42_02228EB0
add sp, #8
movs r0, #1
pop {r3, r4, r5, r6, r7, pc}
_02228DB2:
movs r0, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov42_02228D44
thumb_func_start ov42_02228DB8
ov42_02228DB8: @ 0x02228DB8
push {r3, r4, lr}
sub sp, #4
ldr r4, [sp, #0x10]
str r4, [sp]
bl ov42_02228D44
add sp, #4
pop {r3, r4, pc}
thumb_func_end ov42_02228DB8
thumb_func_start ov42_02228DC8
ov42_02228DC8: @ 0x02228DC8
push {r3, r4, r5, lr}
movs r1, #5
adds r5, r0, #0
adds r4, r3, #0
bl ov42_02228188
cmp r0, #0
bne _02228DEC
ldrb r0, [r4, #2]
adds r1, r5, #0
str r0, [sp]
ldrh r2, [r4]
ldrb r3, [r4, #3]
ldr r0, [sp, #0x10]
bl ov42_02228EB0
movs r0, #1
pop {r3, r4, r5, pc}
_02228DEC:
movs r0, #0
pop {r3, r4, r5, pc}
thumb_func_end ov42_02228DC8
thumb_func_start ov42_02228DF0
ov42_02228DF0: @ 0x02228DF0
push {r3, lr}
bl GF_AssertFail
movs r0, #0
pop {r3, pc}
.align 2, 0
thumb_func_end ov42_02228DF0
thumb_func_start ov42_02228DFC
ov42_02228DFC: @ 0x02228DFC
push {r3, r4, lr}
sub sp, #4
ldr r4, [sp, #0x10]
str r4, [sp]
bl ov42_02228D44
add sp, #4
pop {r3, r4, pc}
thumb_func_end ov42_02228DFC
thumb_func_start ov42_02228E0C
ov42_02228E0C: @ 0x02228E0C
push {r3, r4, r5, lr}
movs r1, #5
adds r5, r0, #0
adds r4, r3, #0
bl ov42_02228188
cmp r0, #0
bne _02228E30
ldrb r0, [r4, #2]
adds r1, r5, #0
str r0, [sp]
ldrh r2, [r4]
ldrb r3, [r4, #3]
ldr r0, [sp, #0x10]
bl ov42_02228EB0
movs r0, #1
pop {r3, r4, r5, pc}
_02228E30:
movs r0, #0
pop {r3, r4, r5, pc}
thumb_func_end ov42_02228E0C
thumb_func_start ov42_02228E34
ov42_02228E34: @ 0x02228E34
push {r3, r4, r5, lr}
sub sp, #0x10
adds r4, r1, #0
adds r5, r2, #0
bl ov42_022282DC
add r1, sp, #0
strh r0, [r1, #4]
lsrs r0, r0, #0x10
strh r0, [r1, #6]
ldrh r0, [r1, #4]
mov r2, sp
subs r2, r2, #4
strh r0, [r1, #0xc]
ldrh r0, [r1, #6]
strh r0, [r1, #0xe]
ldrh r0, [r1, #0xc]
strh r0, [r2]
ldrh r0, [r1, #0xe]
adds r1, r5, #0
strh r0, [r2, #2]
ldr r0, [r2]
bl ov42_02228270
add r2, sp, #0
strh r0, [r2]
lsrs r0, r0, #0x10
strh r0, [r2, #2]
ldrh r0, [r2]
movs r1, #8
strh r0, [r2, #8]
ldrh r0, [r2, #2]
strh r0, [r2, #0xa]
ldrsh r3, [r2, r1]
adds r0, r4, #0
asrs r1, r3, #3
lsrs r1, r1, #0x1c
adds r1, r3, r1
movs r3, #0xa
ldrsh r3, [r2, r3]
lsls r1, r1, #0xc
lsrs r1, r1, #0x10
asrs r2, r3, #3
lsrs r2, r2, #0x1c
adds r2, r3, r2
lsls r2, r2, #0xc
lsrs r2, r2, #0x10
bl ov42_02227FA4
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end ov42_02228E34
thumb_func_start ov42_02228E9C
ov42_02228E9C: @ 0x02228E9C
push {r3, lr}
bl ov42_022283BC
cmp r0, #0
beq _02228EAA
movs r0, #1
pop {r3, pc}
_02228EAA:
movs r0, #0
pop {r3, pc}
.align 2, 0
thumb_func_end ov42_02228E9C
thumb_func_start ov42_02228EB0
ov42_02228EB0: @ 0x02228EB0
push {r3, r4, r5, r6, lr}
sub sp, #4
adds r5, r0, #0
adds r0, r1, #0
adds r4, r2, #0
adds r6, r3, #0
bl ov42_022282DC
add r1, sp, #0
strh r0, [r1]
lsrs r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
strh r0, [r5]
ldrh r0, [r1, #2]
strh r0, [r5, #2]
strh r4, [r5, #4]
ldr r0, [sp, #0x18]
strb r6, [r5, #7]
strb r0, [r5, #6]
add sp, #4
pop {r3, r4, r5, r6, pc}
thumb_func_end ov42_02228EB0
thumb_func_start ov42_02228EDC
ov42_02228EDC: @ 0x02228EDC
push {r3, r4, r5, r6, r7, lr}
adds r7, r0, #0
str r1, [sp]
ldr r0, [sp, #0x18]
movs r1, #0xc
adds r5, r2, #0
adds r6, r3, #0
bl FUN_0201AA8C
adds r4, r0, #0
ldr r1, [sp]
ldr r3, [sp, #0x18]
adds r0, r7, #0
adds r2, r5, #0
bl ov42_02227060
str r0, [r4]
strh r5, [r4, #8]
ldrh r2, [r4, #8]
movs r1, #0x14
ldr r0, [sp, #0x18]
muls r1, r2, r1
bl FUN_0201AA8C
str r0, [r4, #4]
ldrh r3, [r4, #8]
movs r2, #0x14
movs r1, #0
muls r2, r3, r2
blx FUN_020E5B44
movs r0, #2
strb r0, [r4, #0xa]
strb r6, [r4, #0xb]
adds r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov42_02228EDC
thumb_func_start ov42_02228F24
ov42_02228F24: @ 0x02228F24
push {r4, r5, r6, r7, lr}
sub sp, #0xc
ldr r5, [sp, #0x28]
adds r7, r0, #0
str r1, [sp, #4]
adds r0, r5, #0
movs r1, #0xc
adds r6, r2, #0
str r3, [sp, #8]
bl FUN_0201AA8C
adds r4, r0, #0
ldr r1, [sp, #4]
adds r0, r7, #0
adds r2, r6, #0
adds r3, r5, #0
bl ov42_02227060
str r0, [r4]
strh r6, [r4, #8]
ldrh r2, [r4, #8]
movs r1, #0x14
adds r0, r5, #0
muls r1, r2, r1
bl FUN_0201AA8C
str r0, [r4, #4]
ldrh r3, [r4, #8]
movs r2, #0x14
movs r1, #0
muls r2, r3, r2
blx FUN_020E5B44
movs r0, #2
strb r0, [r4, #0xa]
ldr r0, [sp, #0x24]
ldr r1, [sp, #8]
strb r0, [r4, #0xb]
str r5, [sp]
ldrb r2, [r4, #0xb]
ldr r0, [r4]
ldr r3, [sp, #0x20]
bl ov42_02227194
ldrb r1, [r4, #0xb]
ldr r0, [r4]
ldr r2, _02228F90 @ =0x00009C41
adds r3, r5, #0
bl ov42_0222729C
adds r0, r4, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
_02228F90: .4byte 0x00009C41
thumb_func_end ov42_02228F24
thumb_func_start ov42_02228F94
ov42_02228F94: @ 0x02228F94
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrh r0, [r5, #8]
movs r6, #0
cmp r0, #0
ble _02228FC0
adds r4, r6, #0
_02228FA2:
ldr r0, [r5, #4]
adds r0, r0, r4
bl ov42_02229274
cmp r0, #0
bne _02228FB6
ldr r0, [r5, #4]
adds r0, r0, r4
bl ov42_022290C4
_02228FB6:
ldrh r0, [r5, #8]
adds r6, r6, #1
adds r4, #0x14
cmp r6, r0
blt _02228FA2
_02228FC0:
ldr r0, [r5]
bl ov42_022272B4
adds r0, r5, #0
bl ov42_0222901C
ldr r0, [r5]
bl ov42_02227114
ldr r0, [r5, #4]
bl FUN_0201AB0C
adds r0, r5, #0
bl FUN_0201AB0C
pop {r4, r5, r6, pc}
thumb_func_end ov42_02228F94
thumb_func_start ov42_02228FE0
ov42_02228FE0: @ 0x02228FE0
push {r3, r4, r5, r6, r7, lr}
adds r5, r0, #0
ldr r0, [r5]
adds r6, r1, #0
adds r7, r2, #0
adds r4, r3, #0
bl ov42_022271E4
cmp r0, #0
bne _02229002
str r4, [sp]
ldrb r2, [r5, #0xb]
ldr r0, [r5]
adds r1, r6, #0
adds r3, r7, #0
bl ov42_02227194
_02229002:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov42_02228FE0
thumb_func_start ov42_02229004
ov42_02229004: @ 0x02229004
ldr r3, _0222900C @ =ov42_022271D0
ldr r0, [r0]
bx r3
nop
_0222900C: .4byte ov42_022271D0
thumb_func_end ov42_02229004
thumb_func_start ov42_02229010
ov42_02229010: @ 0x02229010
ldr r3, _02229018 @ =ov42_022271E4
ldr r0, [r0]
bx r3
nop
_02229018: .4byte ov42_022271E4
thumb_func_end ov42_02229010
thumb_func_start ov42_0222901C
ov42_0222901C: @ 0x0222901C
ldr r3, _02229024 @ =ov42_022271F8
ldr r0, [r0]
bx r3
nop
_02229024: .4byte ov42_022271F8
thumb_func_end ov42_0222901C
thumb_func_start ov42_02229028
ov42_02229028: @ 0x02229028
push {r3, r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
ldrb r1, [r5, #0xb]
adds r3, r2, #0
ldr r0, [r5]
adds r2, r4, #0
bl ov42_02227228
pop {r3, r4, r5, pc}
thumb_func_end ov42_02229028
thumb_func_start ov42_0222903C
ov42_0222903C: @ 0x0222903C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
adds r5, r1, #0
adds r6, r0, #0
adds r7, r2, #0
str r3, [sp]
bl ov42_02229284
adds r4, r0, #0
adds r0, r5, #0
movs r1, #5
bl ov42_02228188
strh r0, [r4, #8]
adds r0, r5, #0
movs r1, #6
bl ov42_02228188
strh r0, [r4, #0xa]
adds r0, r5, #0
movs r1, #4
bl ov42_02228188
strh r0, [r4, #0xc]
str r5, [r4]
strb r7, [r4, #0x12]
movs r0, #1
strb r0, [r4, #0x13]
movs r1, #0
strh r1, [r4, #0xe]
adds r0, r5, #0
strh r1, [r4, #0x10]
bl ov42_02228188
add r1, sp, #4
strh r0, [r1]
adds r0, r5, #0
movs r1, #1
bl ov42_02228188
add r1, sp, #4
strh r0, [r1, #2]
movs r0, #2
ldrsh r0, [r1, r0]
ldrb r1, [r4, #0x12]
bl ov42_0222922C
add r1, sp, #4
strh r0, [r1, #4]
ldrb r0, [r6, #0xa]
strh r0, [r1, #6]
adds r0, r5, #0
movs r1, #7
bl ov42_02228188
adds r2, r0, #0
ldr r0, [r6]
ldr r3, [sp]
add r1, sp, #4
bl ov42_022272BC
str r0, [r4, #4]
adds r0, r4, #0
bl ov42_0222910C
adds r0, r4, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
thumb_func_end ov42_0222903C
thumb_func_start ov42_022290C4
ov42_022290C4: @ 0x022290C4
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #4]
bl ov42_0222740C
movs r1, #0x14
movs r0, #0
_022290D2:
strb r0, [r4]
adds r4, r4, #1
subs r1, r1, #1
bne _022290D2
pop {r4, pc}
thumb_func_end ov42_022290C4
thumb_func_start ov42_022290DC
ov42_022290DC: @ 0x022290DC
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrh r0, [r5, #8]
movs r6, #0
cmp r0, #0
ble _02229108
adds r4, r6, #0
_022290EA:
ldr r0, [r5, #4]
adds r0, r0, r4
bl ov42_02229274
cmp r0, #0
bne _022290FE
ldr r0, [r5, #4]
adds r0, r0, r4
bl ov42_0222910C
_022290FE:
ldrh r0, [r5, #8]
adds r6, r6, #1
adds r4, #0x14
cmp r6, r0
blt _022290EA
_02229108:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end ov42_022290DC
thumb_func_start ov42_0222910C
ov42_0222910C: @ 0x0222910C
push {r3, r4, r5, r6, lr}
sub sp, #4
adds r5, r0, #0
ldrb r0, [r5, #0x13]
cmp r0, #0
beq _02229196
ldr r0, [r5]
movs r1, #5
bl ov42_02228188
adds r6, r0, #0
ldr r0, [r5]
movs r1, #6
bl ov42_02228188
adds r4, r0, #0
ldr r0, [r5]
movs r1, #8
bl ov42_02228188
lsls r0, r0, #0x10
asrs r1, r0, #0x10
ldrh r0, [r5, #8]
cmp r0, r6
bne _02229148
ldrh r0, [r5, #0xa]
cmp r0, r4
bne _02229148
cmp r1, #0
bne _0222915E
_02229148:
strh r6, [r5, #8]
strh r4, [r5, #0xa]
ldr r0, [r5, #4]
adds r1, r6, #0
bl ov42_022292BC
adds r1, r0, #0
adds r0, r5, #0
adds r2, r4, #0
bl ov42_02229308
_0222915E:
add r1, sp, #0
adds r0, r5, #0
adds r1, #2
add r2, sp, #0
bl ov42_022292D8
add r3, sp, #0
movs r1, #2
movs r2, #0
ldrsh r1, [r3, r1]
ldrsh r2, [r3, r2]
ldr r0, [r5, #4]
bl ov42_02227434
add r1, sp, #0
movs r0, #0
ldrsh r0, [r1, r0]
ldrb r1, [r5, #0x12]
bl ov42_0222922C
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
ldr r0, [r5, #4]
bl ov42_02227474
ldr r0, [r5, #4]
bl ov42_02227538
_02229196:
add sp, #4
pop {r3, r4, r5, r6, pc}
.align 2, 0
thumb_func_end ov42_0222910C
thumb_func_start ov42_0222919C
ov42_0222919C: @ 0x0222919C
strb r1, [r0, #0x13]
bx lr
thumb_func_end ov42_0222919C
thumb_func_start ov42_022291A0
ov42_022291A0: @ 0x022291A0
ldr r3, _022291A8 @ =ov42_02229308
movs r1, #1
ldrh r2, [r0, #0xa]
bx r3
.align 2, 0
_022291A8: .4byte ov42_02229308
thumb_func_end ov42_022291A0
thumb_func_start ov42_022291AC
ov42_022291AC: @ 0x022291AC
ldr r3, _022291B4 @ =ov42_02227538
ldr r0, [r0, #4]
bx r3
nop
_022291B4: .4byte ov42_02227538
thumb_func_end ov42_022291AC
thumb_func_start ov42_022291B8
ov42_022291B8: @ 0x022291B8
push {r4, lr}
adds r4, r0, #0
ldrh r1, [r4, #8]
ldr r0, [r4, #4]
bl ov42_022292BC
adds r1, r0, #0
ldrh r2, [r4, #0xa]
adds r0, r4, #0
bl ov42_02229308
adds r0, r4, #0
bl ov42_0222910C
pop {r4, pc}
.align 2, 0
thumb_func_end ov42_022291B8
thumb_func_start ov42_022291D8
ov42_022291D8: @ 0x022291D8
push {r0, r1, r2, r3}
push {r3, lr}
add r3, sp, #8
movs r1, #4
movs r2, #6
ldrsh r1, [r3, r1]
ldrsh r2, [r3, r2]
ldr r0, [r0, #4]
bl ov42_02227434
pop {r3}
pop {r3}
add sp, #0x10
bx r3
thumb_func_end ov42_022291D8
thumb_func_start ov42_022291F4
ov42_022291F4: @ 0x022291F4
ldr r3, _022291FC @ =ov42_022274AC
ldr r0, [r0, #4]
bx r3
nop
_022291FC: .4byte ov42_022274AC
thumb_func_end ov42_022291F4
thumb_func_start ov42_02229200
ov42_02229200: @ 0x02229200
ldr r3, _02229208 @ =ov42_02227490
ldr r0, [r0, #4]
bx r3
nop
_02229208: .4byte ov42_02227490
thumb_func_end ov42_02229200
thumb_func_start ov42_0222920C
ov42_0222920C: @ 0x0222920C
ldr r3, _02229214 @ =ov42_02227480
ldr r0, [r0, #4]
bx r3
nop
_02229214: .4byte ov42_02227480
thumb_func_end ov42_0222920C
thumb_func_start ov42_02229218
ov42_02229218: @ 0x02229218
push {r4, lr}
adds r2, r1, #0
adds r4, r0, #0
movs r1, #0
bl ov42_02229308
ldr r0, [r4, #4]
bl ov42_02227538
pop {r4, pc}
thumb_func_end ov42_02229218
thumb_func_start ov42_0222922C
ov42_0222922C: @ 0x0222922C
cmp r1, #1
bne _02229238
lsls r1, r0, #1
ldr r0, _02229240 @ =0x00009C40
subs r0, r0, r1
bx lr
_02229238:
lsls r1, r0, #1
ldr r0, _02229244 @ =0x00009C41
subs r0, r0, r1
bx lr
.align 2, 0
_02229240: .4byte 0x00009C40
_02229244: .4byte 0x00009C41
thumb_func_end ov42_0222922C
thumb_func_start ov42_02229248
ov42_02229248: @ 0x02229248
push {r3, lr}
ldr r0, [r0, #4]
bl ov42_02227430
bl FUN_02024ACC
pop {r3, pc}
.align 2, 0
thumb_func_end ov42_02229248
thumb_func_start ov42_02229258
ov42_02229258: @ 0x02229258
push {r0, r1, r2, r3}
push {r3, lr}
add r3, sp, #8
movs r1, #4
movs r2, #6
ldrsh r1, [r3, r1]
ldrsh r2, [r3, r2]
ldr r0, [r0, #4]
bl ov42_022274DC
pop {r3}
pop {r3}
add sp, #0x10
bx r3
thumb_func_end ov42_02229258
thumb_func_start ov42_02229274
ov42_02229274: @ 0x02229274
ldr r0, [r0, #4]
cmp r0, #0
bne _0222927E
movs r0, #1
bx lr
_0222927E:
movs r0, #0
bx lr
.align 2, 0
thumb_func_end ov42_02229274
thumb_func_start ov42_02229284
ov42_02229284: @ 0x02229284
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrh r0, [r5, #8]
movs r6, #0
cmp r0, #0
ble _022292B2
adds r4, r6, #0
_02229292:
ldr r0, [r5, #4]
adds r0, r0, r4
bl ov42_02229274
cmp r0, #1
bne _022292A8
movs r0, #0x14
ldr r1, [r5, #4]
muls r0, r6, r0
adds r0, r1, r0
pop {r4, r5, r6, pc}
_022292A8:
ldrh r0, [r5, #8]
adds r6, r6, #1
adds r4, #0x14
cmp r6, r0
blt _02229292
_022292B2:
bl GF_AssertFail
movs r0, #0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end ov42_02229284
thumb_func_start ov42_022292BC
ov42_022292BC: @ 0x022292BC
push {r4, lr}
adds r4, r1, #0
bl ov42_022274B8
cmp r0, #2
bne _022292CC
movs r0, #0
pop {r4, pc}
_022292CC:
ldr r0, _022292D4 @ =0x02229EB0
ldrb r0, [r0, r4]
pop {r4, pc}
nop
_022292D4: .4byte 0x02229EB0
thumb_func_end ov42_022292BC
thumb_func_start ov42_022292D8
ov42_022292D8: @ 0x022292D8
push {r3, r4, r5, lr}
sub sp, #8
ldr r0, [r0]
adds r5, r1, #0
adds r4, r2, #0
bl ov42_022282F4
add r1, sp, #0
strh r0, [r1]
lsrs r0, r0, #0x10
strh r0, [r1, #2]
ldrh r0, [r1]
strh r0, [r1, #4]
ldrh r0, [r1, #2]
strh r0, [r1, #6]
movs r0, #4
ldrsh r0, [r1, r0]
strh r0, [r5]
movs r0, #6
ldrsh r0, [r1, r0]
strh r0, [r4]
add sp, #8
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end ov42_022292D8
thumb_func_start ov42_02229308
ov42_02229308: @ 0x02229308
push {r3, r4, r5, r6, r7, lr}
adds r5, r0, #0
ldr r0, [r5, #4]
adds r4, r1, #0
str r2, [sp]
bl ov42_022274D0
adds r7, r0, #0
ldr r0, [r5, #4]
bl ov42_022274C0
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
ldr r0, [r5, #4]
ldr r2, [sp]
adds r1, r4, #0
bl ov42_02227504
cmp r6, r4
beq _02229352
ldr r0, _02229354 @ =0x02229EA4
ldrb r0, [r0, r4]
cmp r0, #1
bne _02229346
ldrh r0, [r5, #0x10]
cmp r0, r4
bne _02229346
ldrh r1, [r5, #0xe]
ldr r0, [r5, #4]
bl ov42_022274C4
_02229346:
ldr r0, _02229354 @ =0x02229EA4
ldrb r0, [r0, r6]
cmp r0, #1
bne _02229352
strh r6, [r5, #0x10]
strh r7, [r5, #0xe]
_02229352:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_02229354: .4byte 0x02229EA4
thumb_func_end ov42_02229308
thumb_func_start ov42_02229358
ov42_02229358: @ 0x02229358
push {r4, lr}
sub sp, #8
adds r4, r0, #0
adds r0, r1, #0
bl ov42_022282F4
add r3, sp, #0
strh r0, [r3]
lsrs r0, r0, #0x10
strh r0, [r3, #2]
ldrh r0, [r3]
movs r1, #6
movs r2, #4
strh r0, [r3, #4]
ldrh r0, [r3, #2]
strh r0, [r3, #6]
ldrsh r1, [r3, r1]
ldrsh r2, [r3, r2]
adds r0, r4, #0
subs r1, #0x60
subs r2, #0x70
lsls r1, r1, #0x10
lsls r2, r2, #0x10
asrs r1, r1, #0x10
asrs r2, r2, #0x10
bl ov42_022293A0
add sp, #8
pop {r4, pc}
.align 2, 0
thumb_func_end ov42_02229358
thumb_func_start ov42_02229394
ov42_02229394: @ 0x02229394
movs r1, #0
strb r1, [r0]
strb r1, [r0, #1]
strb r1, [r0, #2]
strb r1, [r0, #3]
bx lr
thumb_func_end ov42_02229394
thumb_func_start ov42_022293A0
ov42_022293A0: @ 0x022293A0
strh r1, [r0]
strh r2, [r0, #2]
bx lr
.align 2, 0
thumb_func_end ov42_022293A0
thumb_func_start ov42_022293A8
ov42_022293A8: @ 0x022293A8
movs r1, #0
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
thumb_func_end ov42_022293A8
thumb_func_start ov42_022293B0
ov42_022293B0: @ 0x022293B0
movs r1, #2
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
thumb_func_end ov42_022293B0
thumb_func_start ov42_022293B8
ov42_022293B8: @ 0x022293B8
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
adds r6, r0, #0
adds r7, r1, #0
adds r0, r3, #0
movs r1, #0x1c
adds r5, r2, #0
str r3, [sp, #4]
bl FUN_0201AA8C
adds r4, r0, #0
adds r2, r4, #0
movs r1, #0x1c
movs r0, #0
_022293D4:
strb r0, [r2]
adds r2, r2, #1
subs r1, r1, #1
bne _022293D4
str r6, [r4]
str r7, [r4, #4]
ldrb r0, [r5]
adds r2, r5, #0
str r0, [r4, #0x10]
ldrb r1, [r5, #1]
str r1, [r4, #0x14]
ldr r0, [r4, #4]
bl ov42_02229514
ldr r0, [sp, #4]
adds r3, r4, #0
str r0, [sp]
ldrb r0, [r5, #8]
ldrb r1, [r5, #9]
ldrb r2, [r5, #0xa]
adds r3, #0xc
bl FUN_020079D8
str r0, [r4, #8]
adds r0, r4, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end ov42_022293B8
thumb_func_start ov42_0222940C
ov42_0222940C: @ 0x0222940C
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #8]
bl FUN_0201AB0C
adds r0, r4, #0
bl FUN_0201AB0C
pop {r4, pc}
.align 2, 0
thumb_func_end ov42_0222940C
thumb_func_start ov42_02229420
ov42_02229420: @ 0x02229420
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
adds r4, r1, #0
adds r6, r0, #0
adds r0, r4, #0
bl ov42_022293A8
adds r5, r0, #0
adds r0, r4, #0
bl ov42_022293B0
adds r4, r0, #0
ldr r0, [r6, #0x10]
cmp r0, #0
bne _022294A0
cmp r5, #0
ble _02229454
lsls r0, r5, #0xc
blx FUN_020F2178
adds r1, r0, #0
movs r0, #0x3f
lsls r0, r0, #0x18
blx FUN_020F1520
b _02229462
_02229454:
lsls r0, r5, #0xc
blx FUN_020F2178
movs r1, #0x3f
lsls r1, r1, #0x18
blx FUN_020F24C8
_02229462:
adds r7, r0, #0
cmp r4, #0
ble _0222947A
lsls r0, r4, #0xc
blx FUN_020F2178
adds r1, r0, #0
movs r0, #0x3f
lsls r0, r0, #0x18
blx FUN_020F1520
b _02229488
_0222947A:
lsls r0, r4, #0xc
blx FUN_020F2178
movs r1, #0x3f
lsls r1, r1, #0x18
blx FUN_020F24C8
_02229488:
blx FUN_020F2104
str r0, [sp]
adds r0, r7, #0
blx FUN_020F2104
adds r2, r0, #0
ldr r0, [r6]
ldr r1, [sp]
bl FUN_02009FA8
b _02229506
_022294A0:
cmp r5, #0
ble _022294B6
lsls r0, r5, #0xc
blx FUN_020F2178
adds r1, r0, #0
movs r0, #0x3f
lsls r0, r0, #0x18
blx FUN_020F1520
b _022294C4
_022294B6:
lsls r0, r5, #0xc
blx FUN_020F2178
movs r1, #0x3f
lsls r1, r1, #0x18
blx FUN_020F24C8
_022294C4:
adds r7, r0, #0
cmp r4, #0
ble _022294DC
lsls r0, r4, #0xc
blx FUN_020F2178
adds r1, r0, #0
movs r0, #0x3f
lsls r0, r0, #0x18
blx FUN_020F1520
b _022294EA
_022294DC:
lsls r0, r4, #0xc
blx FUN_020F2178
movs r1, #0x3f
lsls r1, r1, #0x18
blx FUN_020F24C8
_022294EA:
blx FUN_020F2104
str r0, [sp, #4]
adds r0, r7, #0
blx FUN_020F2104
movs r2, #3
adds r3, r0, #0
lsls r2, r2, #0x12
ldr r0, [r6]
ldr r1, [sp, #4]
adds r2, r3, r2
bl FUN_02009FC8
_02229506:
adds r0, r6, #0
adds r1, r4, #0
adds r2, r5, #0
bl ov42_02229570
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov42_02229420
thumb_func_start ov42_02229514
ov42_02229514: @ 0x02229514
push {r3, r4, r5, r6, lr}
sub sp, #0x1c
ldr r6, _0222956C @ =0x02229EBC
adds r5, r0, #0
adds r4, r1, #0
ldm r6!, {r0, r1}
add r3, sp, #0
stm r3!, {r0, r1}
ldm r6!, {r0, r1}
stm r3!, {r0, r1}
ldm r6!, {r0, r1}
stm r3!, {r0, r1}
ldr r0, [r6]
str r0, [r3]
ldrb r1, [r2, #2]
add r0, sp, #0
strb r1, [r0, #0x11]
ldrb r1, [r2, #3]
strb r1, [r0, #0x12]
ldrb r1, [r2, #4]
strb r1, [r0, #0x13]
ldrb r1, [r2, #5]
strb r1, [r0, #0x14]
ldrb r1, [r2, #6]
strb r1, [r0, #0x15]
movs r1, #0
strb r1, [r0, #0x16]
ldrb r0, [r2, #7]
lsls r1, r4, #0x18
lsrs r1, r1, #0x18
str r0, [sp, #0x18]
adds r0, r5, #0
bl FUN_0201BB4C
lsls r1, r4, #0x18
adds r0, r5, #0
lsrs r1, r1, #0x18
add r2, sp, #0
movs r3, #0
bl FUN_0201B1E4
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
nop
_0222956C: .4byte 0x02229EBC
thumb_func_end ov42_02229514
thumb_func_start ov42_02229570
ov42_02229570: @ 0x02229570
push {r3, r4, r5, r6, lr}
sub sp, #4
adds r5, r0, #0
asrs r0, r1, #2
lsrs r0, r0, #0x1d
adds r0, r1, r0
lsls r0, r0, #0xd
asrs r3, r0, #0x10
asrs r0, r2, #2
lsrs r0, r0, #0x1d
adds r0, r2, r0
lsrs r4, r1, #0x1f
lsls r6, r1, #0x1d
subs r6, r6, r4
movs r1, #0x1d
rors r6, r1
adds r4, r4, r6
lsls r4, r4, #0x10
asrs r6, r4, #0x10
lsrs r4, r2, #0x1f
lsls r2, r2, #0x1d
subs r2, r2, r4
rors r2, r1
adds r1, r4, r2
lsls r1, r1, #0x10
asrs r4, r1, #0x10
lsls r0, r0, #0xd
ldrh r1, [r5, #0x18]
asrs r0, r0, #0x10
cmp r3, r1
bne _022295B4
ldrh r1, [r5, #0x1a]
cmp r0, r1
beq _022295DC
_022295B4:
strh r3, [r5, #0x18]
strh r0, [r5, #0x1a]
rsbs r0, r0, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
str r0, [sp]
rsbs r3, r3, #0
lsls r3, r3, #0x10
ldr r0, [r5, #4]
ldr r1, [r5, #0x14]
ldr r2, [r5, #0xc]
asrs r3, r3, #0x10
bl ov42_02229600
ldr r1, [r5, #0x14]
ldr r0, [r5, #4]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl FUN_0201EFBC
_022295DC:
ldr r1, [r5, #0x14]
ldr r0, [r5, #4]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
movs r2, #0
adds r3, r6, #0
bl FUN_0201F238
ldr r1, [r5, #0x14]
ldr r0, [r5, #4]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
movs r2, #3
adds r3, r4, #0
bl FUN_0201F238
add sp, #4
pop {r3, r4, r5, r6, pc}
thumb_func_end ov42_02229570
thumb_func_start ov42_02229600
ov42_02229600: @ 0x02229600
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x38
str r0, [sp, #0x1c]
adds r0, r2, #0
ldrh r0, [r0]
ldr r4, [sp, #0x50]
adds r5, r3, #0
lsls r0, r0, #0xd
asrs r0, r0, #0x10
str r0, [sp, #0x34]
adds r0, r2, #0
ldrh r0, [r0, #2]
str r1, [sp, #0x20]
str r2, [sp, #0x24]
lsls r0, r0, #0xd
asrs r0, r0, #0x10
str r0, [sp, #0x30]
cmp r5, #0
bge _02229630
rsbs r0, r5, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
str r0, [sp, #0x2c]
b _02229634
_02229630:
movs r0, #0
str r0, [sp, #0x2c]
_02229634:
cmp r4, #0
bge _02229642
rsbs r0, r4, #0
lsls r0, r0, #0x10
asrs r0, r0, #0x10
str r0, [sp, #0x28]
b _02229646
_02229642:
movs r0, #0
str r0, [sp, #0x28]
_02229646:
cmp r5, #0
bgt _0222964C
movs r5, #0
_0222964C:
cmp r4, #0
bgt _02229652
movs r4, #0
_02229652:
movs r0, #0x21
subs r0, r0, r5
lsls r0, r0, #0x10
asrs r7, r0, #0x10
movs r0, #0x19
subs r0, r0, r4
lsls r0, r0, #0x10
asrs r6, r0, #0x10
ldr r0, [sp, #0x2c]
adds r1, r0, r7
ldr r0, [sp, #0x34]
cmp r0, r1
bge _02229674
subs r0, r1, r0
subs r0, r7, r0
lsls r0, r0, #0x10
asrs r7, r0, #0x10
_02229674:
ldr r0, [sp, #0x28]
adds r1, r0, r6
ldr r0, [sp, #0x30]
cmp r0, r1
bge _02229686
subs r0, r1, r0
subs r0, r6, r0
lsls r0, r0, #0x10
asrs r6, r0, #0x10
_02229686:
movs r2, #0
str r2, [sp]
movs r0, #0x21
str r0, [sp, #4]
movs r0, #0x19
ldr r1, [sp, #0x20]
str r0, [sp, #8]
movs r0, #0x11
str r0, [sp, #0xc]
lsls r1, r1, #0x18
ldr r0, [sp, #0x1c]
lsrs r1, r1, #0x18
adds r3, r2, #0
bl FUN_0201C8C4
lsls r0, r7, #0x18
lsrs r0, r0, #0x18
str r0, [sp]
lsls r0, r6, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #4]
ldr r0, [sp, #0x24]
ldr r1, [sp, #0x20]
adds r0, #0xc
str r0, [sp, #0x24]
str r0, [sp, #8]
ldr r0, [sp, #0x2c]
lsls r1, r1, #0x18
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #0xc]
ldr r0, [sp, #0x28]
lsls r2, r5, #0x18
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #0x10]
ldr r0, [sp, #0x34]
lsls r3, r4, #0x18
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #0x14]
ldr r0, [sp, #0x30]
lsrs r1, r1, #0x18
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #0x18]
ldr r0, [sp, #0x1c]
lsrs r2, r2, #0x18
lsrs r3, r3, #0x18
bl ov42_022296F0
add sp, #0x38
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov42_02229600
thumb_func_start ov42_022296F0
ov42_022296F0: @ 0x022296F0
push {r4, r5, r6, r7, lr}
sub sp, #0x54
str r0, [sp, #0x1c]
str r1, [sp, #0x20]
ldr r0, [sp, #0x70]
str r3, [sp, #0x24]
str r0, [sp, #0x70]
ldr r0, [sp, #0x78]
adds r4, r2, #0
str r0, [sp, #0x78]
ldr r0, [sp, #0x7c]
str r0, [sp, #0x7c]
ldr r0, [sp, #0x80]
str r0, [sp, #0x80]
ldr r0, [sp, #0x7c]
ldr r1, [sp, #0x80]
bl ov42_02229880
str r0, [sp, #0x40]
cmp r0, #0
add r1, sp, #0x58
bne _02229748
ldrb r0, [r1, #0x10]
adds r2, r4, #0
str r0, [sp]
ldrb r0, [r1, #0x14]
str r0, [sp, #4]
ldr r0, [sp, #0x70]
str r0, [sp, #8]
ldrb r0, [r1, #0x1c]
str r0, [sp, #0xc]
ldr r0, [sp, #0x78]
str r0, [sp, #0x10]
ldr r0, [sp, #0x7c]
str r0, [sp, #0x14]
ldr r0, [sp, #0x80]
str r0, [sp, #0x18]
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x20]
ldr r3, [sp, #0x24]
bl FUN_0201C4EC
add sp, #0x54
pop {r4, r5, r6, r7, pc}
_02229748:
movs r0, #0x14
ldrsb r0, [r1, r0]
str r0, [sp, #0x48]
cmp r0, #0
bgt _02229754
b _0222987A
_02229754:
movs r0, #0x10
ldrsb r0, [r1, r0]
str r0, [sp, #0x3c]
movs r0, #0x1c
ldrsb r0, [r1, r0]
str r0, [sp, #0x38]
lsls r0, r4, #0x18
asrs r0, r0, #0x18
str r0, [sp, #0x34]
_02229766:
ldr r0, [sp, #0x78]
lsrs r2, r0, #0x1f
lsls r1, r0, #0x1b
subs r1, r1, r2
movs r0, #0x1b
rors r1, r0
adds r0, r2, r1
ldr r1, [sp, #0x48]
adds r1, r0, r1
cmp r1, #0x20
bgt _02229786
ldr r1, [sp, #0x48]
str r1, [sp, #0x44]
movs r1, #0
str r1, [sp, #0x48]
b _0222979A
_02229786:
movs r1, #0x20
subs r1, r1, r0
lsls r1, r1, #0x18
asrs r1, r1, #0x18
str r1, [sp, #0x44]
ldr r2, [sp, #0x48]
subs r1, r2, r1
lsls r1, r1, #0x18
asrs r1, r1, #0x18
str r1, [sp, #0x48]
_0222979A:
ldr r1, [sp, #0x78]
ldr r4, [sp, #0x3c]
lsls r1, r1, #0x13
asrs r2, r1, #0x18
adds r1, r4, #0
ldr r5, [sp, #0x38]
ldr r7, [sp, #0x34]
cmp r1, #0
ble _0222985A
lsls r1, r2, #0x18
lsrs r1, r1, #0x18
str r1, [sp, #0x30]
ldr r1, [sp, #0x44]
lsls r0, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
lsrs r0, r0, #0x18
str r1, [sp, #0x2c]
str r0, [sp, #0x4c]
_022297C0:
lsrs r2, r5, #0x1f
lsls r1, r5, #0x1b
subs r1, r1, r2
movs r0, #0x1b
rors r1, r0
adds r0, r2, r1
str r0, [sp, #0x28]
adds r0, r0, r4
cmp r0, #0x20
bgt _022297DA
adds r6, r4, #0
movs r4, #0
b _022297EA
_022297DA:
ldr r0, [sp, #0x28]
movs r1, #0x20
subs r0, r1, r0
lsls r0, r0, #0x18
asrs r6, r0, #0x18
subs r0, r4, r6
lsls r0, r0, #0x18
asrs r4, r0, #0x18
_022297EA:
ldr r0, [sp, #0x7c]
asrs r1, r5, #4
str r0, [sp]
ldr r0, [sp, #0x80]
lsrs r1, r1, #0x1b
adds r1, r5, r1
str r0, [sp, #4]
add r0, sp, #0x50
str r0, [sp, #8]
lsls r1, r1, #0x13
asrs r1, r1, #0x18
lsls r1, r1, #0x18
ldr r0, [sp, #0x70]
ldr r2, [sp, #0x30]
ldr r3, [sp, #0x40]
lsrs r1, r1, #0x18
bl ov42_022298B4
lsls r1, r6, #0x18
lsrs r1, r1, #0x18
str r1, [sp]
ldr r1, [sp, #0x2c]
lsls r2, r7, #0x18
str r1, [sp, #4]
str r0, [sp, #8]
ldr r0, [sp, #0x28]
add r1, sp, #0x50
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #0xc]
ldr r0, [sp, #0x4c]
lsrs r2, r2, #0x18
str r0, [sp, #0x10]
movs r0, #0
ldrsh r0, [r1, r0]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #0x14]
movs r0, #2
ldrsh r0, [r1, r0]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #0x18]
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x20]
ldr r3, [sp, #0x24]
bl FUN_0201C4EC
adds r0, r5, r6
lsls r0, r0, #0x18
asrs r5, r0, #0x18
adds r0, r7, r6
lsls r0, r0, #0x18
asrs r7, r0, #0x18
cmp r4, #0
bgt _022297C0
_0222985A:
ldr r1, [sp, #0x78]
ldr r0, [sp, #0x44]
adds r0, r1, r0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #0x78]
ldr r1, [sp, #0x24]
ldr r0, [sp, #0x44]
adds r0, r1, r0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
str r0, [sp, #0x24]
ldr r0, [sp, #0x48]
cmp r0, #0
ble _0222987A
b _02229766
_0222987A:
add sp, #0x54
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end ov42_022296F0
thumb_func_start ov42_02229880
ov42_02229880: @ 0x02229880
push {r3, r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
cmp r5, #0x40
bls _0222988E
bl GF_AssertFail
_0222988E:
cmp r4, #0x40
bls _02229896
bl GF_AssertFail
_02229896:
cmp r5, #0x20
bhi _022298A6
cmp r4, #0x20
bhi _022298A2
movs r0, #0
pop {r3, r4, r5, pc}
_022298A2:
movs r0, #2
pop {r3, r4, r5, pc}
_022298A6:
cmp r4, #0x20
bhi _022298AE
movs r0, #1
pop {r3, r4, r5, pc}
_022298AE:
movs r0, #3
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end ov42_02229880
thumb_func_start ov42_022298B4
ov42_022298B4: @ 0x022298B4
push {r4, r5, r6, lr}
adds r5, r3, #0
adds r6, r2, #0
ldr r4, [sp, #0x10]
ldr r3, [sp, #0x14]
ldr r2, [sp, #0x18]
cmp r5, #3
bhi _02229968
adds r5, r5, r5
add r5, pc
ldrh r5, [r5, #6]
lsls r5, r5, #0x10
asrs r5, r5, #0x10
add pc, r5
_022298D0: @ jump table
.2byte _022298D8 - _022298D0 - 2 @ case 0
.2byte _022298DE - _022298D0 - 2 @ case 1
.2byte _022298FC - _022298D0 - 2 @ case 2
.2byte _0222991A - _022298D0 - 2 @ case 3
_022298D8:
strh r4, [r2]
strh r3, [r2, #2]
pop {r4, r5, r6, pc}
_022298DE:
adds r5, r1, #1
lsls r5, r5, #5
cmp r5, r4
bgt _022298EA
movs r4, #0x20
b _022298EE
_022298EA:
lsls r5, r1, #5
subs r4, r4, r5
_022298EE:
strh r4, [r2]
strh r3, [r2, #2]
lsls r2, r3, #0x16
asrs r2, r2, #0x10
muls r2, r1, r2
adds r0, r0, r2
pop {r4, r5, r6, pc}
_022298FC:
adds r1, r6, #1
lsls r1, r1, #5
strh r4, [r2]
cmp r1, r3
bgt _0222990A
movs r1, #0x20
b _0222990E
_0222990A:
lsls r1, r6, #5
subs r1, r3, r1
_0222990E:
strh r1, [r2, #2]
lsls r1, r4, #0x16
asrs r1, r1, #0x10
muls r1, r6, r1
adds r0, r0, r1
pop {r4, r5, r6, pc}
_0222991A:
adds r5, r1, #1
lsls r5, r5, #5
cmp r5, r4
bgt _02229926
movs r5, #0x20
b _0222992A
_02229926:
lsls r5, r1, #5
subs r5, r4, r5
_0222992A:
strh r5, [r2]
adds r5, r6, #1
lsls r5, r5, #5
cmp r5, r3
bgt _02229938
movs r5, #0x20
b _0222993C
_02229938:
lsls r5, r6, #5
subs r5, r3, r5
_0222993C:
strh r5, [r2, #2]
cmp r6, #0
bne _02229954
movs r2, #0
cmp r1, #0
beq _02229964
movs r1, #2
lsls r1, r1, #0xa
adds r1, r2, r1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
b _02229964
_02229954:
lsls r2, r4, #0x16
lsrs r2, r2, #0x10
cmp r1, #0
beq _02229964
lsls r1, r3, #6
adds r1, r2, r1
lsls r1, r1, #0x10
lsrs r2, r1, #0x10
_02229964:
adds r0, r0, r2
pop {r4, r5, r6, pc}
_02229968:
bl GF_AssertFail
bl GF_AssertFail
movs r0, #0
pop {r4, r5, r6, pc}
thumb_func_end ov42_022298B4
thumb_func_start ov42_02229974
ov42_02229974: @ 0x02229974
push {r4, r5, r6, lr}
adds r6, r1, #0
adds r5, r0, #0
adds r0, r6, #0
movs r1, #0xc
bl FUN_0201AA8C
adds r4, r0, #0
bne _0222998A
bl GF_AssertFail
_0222998A:
adds r1, r5, #1
str r1, [r4, #4]
adds r0, r6, #0
lsls r1, r1, #3
bl FUN_0201AA8C
str r0, [r4]
ldr r2, [r4, #4]
movs r1, #0
lsls r2, r2, #3
blx FUN_020E5B44
movs r0, #0
strh r0, [r4, #8]
strh r0, [r4, #0xa]
adds r0, r4, #0
pop {r4, r5, r6, pc}
thumb_func_end ov42_02229974
thumb_func_start ov42_022299AC
ov42_022299AC: @ 0x022299AC
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4]
bl FUN_0201AB0C
adds r0, r4, #0
bl FUN_0201AB0C
pop {r4, pc}
.align 2, 0
thumb_func_end ov42_022299AC
thumb_func_start ov42_022299C0
ov42_022299C0: @ 0x022299C0
push {r3, r4, r5, lr}
sub sp, #8
adds r5, r0, #0
ldrh r0, [r5, #0xa]
adds r4, r1, #0
ldr r1, [r5, #4]
adds r0, r0, #1
blx FUN_020F2BA4
ldrh r0, [r5, #8]
cmp r0, r1
bne _022299E0
adds r0, r5, #0
add r1, sp, #0
bl ov42_02229A08
_022299E0:
ldrh r0, [r5, #0xa]
ldr r3, [r5]
lsls r2, r0, #3
ldrh r0, [r4]
adds r1, r3, r2
strh r0, [r3, r2]
ldrh r0, [r4, #2]
strh r0, [r1, #2]
ldrh r0, [r4, #4]
strh r0, [r1, #4]
ldrh r0, [r4, #6]
strh r0, [r1, #6]
ldrh r0, [r5, #0xa]
ldr r1, [r5, #4]
adds r0, r0, #1
blx FUN_020F2BA4
strh r1, [r5, #0xa]
add sp, #8
pop {r3, r4, r5, pc}
thumb_func_end ov42_022299C0
thumb_func_start ov42_02229A08
ov42_02229A08: @ 0x02229A08
push {r4, lr}
adds r4, r0, #0
ldrh r2, [r4, #8]
ldrh r0, [r4, #0xa]
cmp r0, r2
bne _02229A18
movs r0, #0
pop {r4, pc}
_02229A18:
ldr r3, [r4]
lsls r0, r2, #3
adds r2, r3, r0
ldrh r0, [r3, r0]
strh r0, [r1]
ldrh r0, [r2, #2]
strh r0, [r1, #2]
ldrh r0, [r2, #4]
strh r0, [r1, #4]
ldrh r0, [r2, #6]
strh r0, [r1, #6]
ldrh r0, [r4, #8]
ldr r1, [r4, #4]
adds r0, r0, #1
blx FUN_020F2BA4
strh r1, [r4, #8]
movs r0, #1
pop {r4, pc}
.align 2, 0
thumb_func_end ov42_02229A08
thumb_func_start ov42_02229A40
ov42_02229A40: @ 0x02229A40
push {r4, r5, r6, lr}
adds r6, r1, #0
adds r5, r0, #0
adds r0, r6, #0
movs r1, #0xc
bl FUN_0201AA8C
adds r4, r0, #0
bne _02229A56
bl GF_AssertFail
_02229A56:
adds r1, r5, #1
str r1, [r4, #4]
adds r0, r6, #0
lsls r1, r1, #2
bl FUN_0201AA8C
str r0, [r4]
ldr r2, [r4, #4]
movs r1, #0
lsls r2, r2, #2
blx FUN_020E5B44
movs r0, #0
strh r0, [r4, #8]
strh r0, [r4, #0xa]
adds r0, r4, #0
pop {r4, r5, r6, pc}
thumb_func_end ov42_02229A40
thumb_func_start ov42_02229A78
ov42_02229A78: @ 0x02229A78
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4]
bl FUN_0201AB0C
adds r0, r4, #0
bl FUN_0201AB0C
pop {r4, pc}
.align 2, 0
thumb_func_end ov42_02229A78
thumb_func_start ov42_02229A8C
ov42_02229A8C: @ 0x02229A8C
push {r3, r4, r5, lr}
adds r5, r0, #0
ldrh r0, [r5, #0xa]
adds r4, r1, #0
ldr r1, [r5, #4]
adds r0, r0, #1
blx FUN_020F2BA4
ldrh r0, [r5, #8]
cmp r0, r1
bne _02229AAA
adds r0, r5, #0
add r1, sp, #0
bl ov42_02229AC8
_02229AAA:
ldrh r0, [r5, #0xa]
ldr r3, [r5]
lsls r2, r0, #2
ldrh r0, [r4]
adds r1, r3, r2
strh r0, [r3, r2]
ldrh r0, [r4, #2]
strh r0, [r1, #2]
ldrh r0, [r5, #0xa]
ldr r1, [r5, #4]
adds r0, r0, #1
blx FUN_020F2BA4
strh r1, [r5, #0xa]
pop {r3, r4, r5, pc}
thumb_func_end ov42_02229A8C
thumb_func_start ov42_02229AC8
ov42_02229AC8: @ 0x02229AC8
push {r4, lr}
adds r4, r0, #0
ldrh r2, [r4, #8]
ldrh r0, [r4, #0xa]
cmp r0, r2
bne _02229AD8
movs r0, #0
pop {r4, pc}
_02229AD8:
ldr r3, [r4]
lsls r0, r2, #2
adds r2, r3, r0
ldrh r0, [r3, r0]
strh r0, [r1]
ldrh r0, [r2, #2]
strh r0, [r1, #2]
ldrh r0, [r4, #8]
ldr r1, [r4, #4]
adds r0, r0, #1
blx FUN_020F2BA4
strh r1, [r4, #8]
movs r0, #1
pop {r4, pc}
.align 2, 0
thumb_func_end ov42_02229AC8
.rodata
_02229AF8:
.byte 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x95, 0x96
.byte 0x97, 0x98, 0x00, 0x00, 0x01, 0xFF, 0x08, 0x02, 0x04, 0x10, 0x10, 0x02, 0x04, 0x00, 0x00, 0x00
.byte 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11
.byte 0x49, 0x7D, 0x22, 0x02, 0x55, 0x7D, 0x22, 0x02, 0x65, 0x7D, 0x22, 0x02, 0x75, 0x7D, 0x22, 0x02
.byte 0x89, 0x7D, 0x22, 0x02, 0x99, 0x7D, 0x22, 0x02, 0xA9, 0x7D, 0x22, 0x02, 0xB9, 0x7D, 0x22, 0x02
.byte 0xC9, 0x7D, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 0x7D, 0x22, 0x02
.byte 0xE9, 0x7D, 0x22, 0x02, 0xF9, 0x7D, 0x22, 0x02, 0x19, 0x7E, 0x22, 0x02, 0x29, 0x7E, 0x22, 0x02
.byte 0x39, 0x7E, 0x22, 0x02, 0x49, 0x7E, 0x22, 0x02, 0x59, 0x7E, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
.byte 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x05, 0x00, 0x03, 0x00, 0x0B, 0x00, 0x04, 0x00
.byte 0x1F, 0x00, 0x05, 0x00, 0x32, 0x00, 0x06, 0x00, 0x33, 0x00, 0x07, 0x00, 0x3E, 0x00, 0x08, 0x00
.byte 0x46, 0x00, 0x09, 0x00, 0x61, 0x00, 0x01, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x07, 0x00, 0x0B, 0x00
.byte 0x0D, 0x00, 0x0C, 0x00, 0x0E, 0x00, 0x0D, 0x00, 0x23, 0x00, 0x0E, 0x00, 0x25, 0x00, 0x0F, 0x00
.byte 0x2A, 0x00, 0x10, 0x00, 0x3F, 0x00, 0x11, 0x00, 0x04, 0x00, 0x12, 0x00, 0x08, 0x00, 0x13, 0x00
.byte 0x34, 0x00, 0x14, 0x00, 0x35, 0x00, 0x15, 0x00, 0x02, 0x00, 0x16, 0x00, 0x0F, 0x00, 0x17, 0x00
.byte 0x10, 0x00, 0x18, 0x00, 0x3B, 0x00, 0x19, 0x00, 0x3C, 0x00, 0x1A, 0x00, 0x09, 0x00, 0x1B, 0x00
.byte 0x0C, 0x00, 0x1C, 0x00, 0x17, 0x00, 0x1D, 0x00, 0x16, 0x00, 0x1E, 0x00, 0x29, 0x00, 0x1F, 0x00
.byte 0x26, 0x00, 0x20, 0x00, 0x27, 0x00, 0x21, 0x00, 0x11, 0x00, 0x22, 0x00, 0x44, 0x00, 0x23, 0x00
.byte 0x45, 0x00, 0x24, 0x00, 0x01, 0x00, 0x25, 0x00, 0x2D, 0x00, 0x26, 0x00, 0x36, 0x00, 0x27, 0x00
.byte 0x38, 0x00, 0x28, 0x00, 0x14, 0x00, 0x29, 0x00, 0x0A, 0x00, 0x2A, 0x00, 0x13, 0x00, 0x2B, 0x00
.byte 0x1D, 0x00, 0x2C, 0x00, 0x24, 0x00, 0x2D, 0x00, 0x28, 0x00, 0x2E, 0x00, 0x2B, 0x00, 0x2F, 0x00
.byte 0x22, 0x00, 0x30, 0x00, 0x37, 0x00, 0x31, 0x00, 0x47, 0x00, 0x32, 0x00, 0x8D, 0x00, 0x33, 0x00
.byte 0x8E, 0x00, 0x34, 0x00, 0x8F, 0x00, 0x35, 0x00, 0x90, 0x00, 0x36, 0x00, 0x91, 0x00, 0x37, 0x00
.byte 0xA9, 0x00, 0x38, 0x00, 0x2C, 0x00, 0x3A, 0x00, 0x1E, 0x00, 0x3B, 0x00, 0xAF, 0x00, 0x5E, 0x00
.byte 0x12, 0x00, 0x67, 0x00, 0x94, 0x00, 0x72, 0x00, 0x54, 0x00, 0x73, 0x00, 0x18, 0x00, 0x74, 0x00
.byte 0x19, 0x00, 0x75, 0x00, 0xA8, 0x00, 0x84, 0x00, 0x56, 0x00, 0x87, 0x00, 0x15, 0x01, 0x8B, 0x00
.byte 0x16, 0x01, 0x8C, 0x00, 0x17, 0x01, 0x8D, 0x00, 0x18, 0x01, 0x8E, 0x00, 0x19, 0x01, 0x8F, 0x00
.byte 0x1A, 0x01, 0x90, 0x00, 0x1B, 0x01, 0x91, 0x00, 0x1C, 0x01, 0x92, 0x00, 0x1D, 0x01, 0x93, 0x00
.byte 0x1E, 0x01, 0x94, 0x00, 0xEE, 0x00, 0x95, 0x00, 0xEF, 0x00, 0x96, 0x00, 0x27, 0x01, 0x97, 0x00
.byte 0x28, 0x01, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x03, 0x02, 0x00, 0xF0, 0x00, 0x10
.byte 0xF0, 0x00, 0x10, 0x00, 0xA5, 0x85, 0x22, 0x02, 0xFD, 0x85, 0x22, 0x02, 0x69, 0x86, 0x22, 0x02
.byte 0x01, 0x87, 0x22, 0x02, 0x99, 0x87, 0x22, 0x02, 0xF1, 0x87, 0x22, 0x02, 0x5D, 0x88, 0x22, 0x02
.byte 0xF5, 0x88, 0x22, 0x02, 0x8D, 0x89, 0x22, 0x02, 0xF9, 0x89, 0x22, 0x02, 0x65, 0x8A, 0x22, 0x02
.byte 0xD1, 0x8A, 0x22, 0x02, 0x3D, 0x8B, 0x22, 0x02, 0x41, 0x8B, 0x22, 0x02, 0x49, 0x8B, 0x22, 0x02
.byte 0x89, 0x8B, 0x22, 0x02, 0xC9, 0x8B, 0x22, 0x02, 0xCD, 0x8B, 0x22, 0x02, 0x49, 0x8B, 0x22, 0x02
.byte 0x49, 0x8B, 0x22, 0x02, 0xD5, 0x8B, 0x22, 0x02, 0xD5, 0x8B, 0x22, 0x02, 0xD5, 0x8B, 0x22, 0x02
.byte 0xD5, 0x8B, 0x22, 0x02, 0xDD, 0x8C, 0x22, 0x02, 0x09, 0x8D, 0x22, 0x02, 0x45, 0x8D, 0x22, 0x02
.byte 0xB9, 0x8D, 0x22, 0x02, 0xC9, 0x8D, 0x22, 0x02, 0xF1, 0x8D, 0x22, 0x02, 0xFD, 0x8D, 0x22, 0x02
.byte 0x45, 0x8D, 0x22, 0x02, 0x0D, 0x8E, 0x22, 0x02, 0x0D, 0x8E, 0x22, 0x02, 0x0D, 0x8E, 0x22, 0x02
.byte 0x0D, 0x8E, 0x22, 0x02, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x03, 0x02, 0x04, 0x00, 0x05, 0x06, 0x08, 0x07, 0x08, 0x02, 0x06, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00