pmd-sky/asm/overlay_09.s
AnonymousRandomPerson 3e371e1eef Matched overlay 8
2023-07-15 21:59:57 -04:00

2503 lines
63 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_09.inc"
.text
arm_func_start ov09_0233CA80
ov09_0233CA80: ; 0x0233CA80
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
bl sub_02003BAC
bl sub_02017B70
mov r0, #0x314
mov r1, #8
bl MemAlloc
ldr r2, _0233CBB8 ; =0x0233F7E0
mov r1, #0
str r0, [r2]
str r1, [r0, #0x3c]
arm_func_end ov09_0233CA80
arm_func_start ov09_0233CAA8
ov09_0233CAA8: ; 0x0233CAA8
ldr r0, [r2]
sub r3, r1, #2
strb r3, [r0]
ldr r0, [r2]
ldr r7, _0233CBBC ; =0x0233F61C
strb r3, [r0, #1]
ldr r0, [r2]
strb r3, [r0, #2]
ldr r0, [r2]
strb r3, [r0, #3]
ldr r0, [r2]
strb r3, [r0, #4]
arm_func_end ov09_0233CAA8
arm_func_start ov09_0233CAD8
ov09_0233CAD8: ; 0x0233CAD8
ldr r0, [r2]
ldr r3, _0233CBC0 ; =0x0233F664
add r6, r0, #0x4c
add r8, r0, #0x284
mov r2, r1
_0233CAEC:
mov r4, r1, lsl #1
add r0, r1, #0xfe
add r5, r0, #0x400
ldrh r0, [r3, r4]
strh r5, [r6]
add r1, r1, #1
strh r0, [r6, #2]
cmp r1, #0x8d
strb r2, [r8], #1
arm_func_end ov09_0233CAD8
arm_func_start ov09_0233CB10
ov09_0233CB10: ; 0x0233CB10
add r6, r6, #4
blt _0233CAEC
strh r2, [r6]
strh r2, [r6, #2]
ldr r6, _0233CBC4 ; =0x000004FD
mov r5, #0
mov r4, #1
ldr sb, _0233CBB8 ; =0x0233F7E0
mvn r8, #0
b _0233CB90
_0233CB38:
ldr r0, [r7]
arm_func_end ov09_0233CB10
arm_func_start ov09_0233CB3C
ov09_0233CB3C: ; 0x0233CB3C
bl sub_0204CA1C
cmp r0, #0
bne _0233CB8C
ldr r2, [sb]
ldmib r7, {r0, r1}
add r3, r2, #0x4c
add r2, r2, #0x284
cmp r0, r1
add r3, r3, r0, lsl #2
add r2, r2, r0
bgt _0233CB8C
b _0233CB80
_0233CB6C:
strh r6, [r3]
strh r5, [r3, #2]
strb r4, [r2], #1
add r0, r0, #1
add r3, r3, #4
_0233CB80:
ldr r1, [r7, #8]
cmp r0, r1
ble _0233CB6C
_0233CB8C:
add r7, r7, #0xc
_0233CB90:
ldr r0, [r7]
cmp r0, r8
bne _0233CB38
ldr r0, _0233CBB8 ; =0x0233F7E0
ldr r1, [r0]
add r0, r1, #8
add r1, r1, #0x4c
bl ov09_0233D964
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
_0233CBB8: .word 0x0233F7E0
_0233CBBC: .word 0x0233F61C
_0233CBC0: .word 0x0233F664
_0233CBC4: .word 0x000004FD
arm_func_end ov09_0233CB3C
arm_func_start ov09_0233CBC8
ov09_0233CBC8: ; 0x0233CBC8
stmdb sp!, {r3, lr}
ldr r0, _0233CBF4 ; =0x0233F7E0
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl MemFree
ldr r0, _0233CBF4 ; =0x0233F7E0
mov r1, #0
str r1, [r0]
bl sub_02003BC8
ldmia sp!, {r3, pc}
.align 2, 0
_0233CBF4: .word 0x0233F7E0
arm_func_end ov09_0233CBC8
_0233CBF8:
.byte 0x38, 0x40, 0x2D, 0xE9, 0x18, 0xD0, 0x4D, 0xE2
.byte 0x01, 0xDA, 0x4D, 0xE2, 0x1C, 0x0D, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x3C, 0x00, 0x93, 0xE5
.byte 0x0D, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x3E, 0x03, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA
.byte 0x1C, 0x00, 0x00, 0xEA, 0x34, 0x00, 0x00, 0xEA, 0x41, 0x00, 0x00, 0xEA, 0x91, 0x00, 0x00, 0xEA
.byte 0xDC, 0x00, 0x00, 0xEA, 0xEF, 0x00, 0x00, 0xEA, 0x22, 0x01, 0x00, 0xEA, 0x8F, 0x01, 0x00, 0xEA
.byte 0x49, 0x02, 0x00, 0xEA, 0x5C, 0x02, 0x00, 0xEA, 0xC8, 0x02, 0x00, 0xEA, 0xD6, 0x02, 0x00, 0xEA
.byte 0x27, 0x03, 0x00, 0xEA, 0x3C, 0xC7, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x2D, 0x03, 0x00, 0x1A
.byte 0x86, 0x06, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x2A, 0x03, 0x00, 0x1A, 0x1E, 0x00, 0xA0, 0xE3
.byte 0x54, 0x06, 0xFE, 0xEB, 0x61, 0xD0, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x1A
.byte 0x49, 0xC8, 0xFF, 0xEB, 0x9C, 0x0C, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5
.byte 0x3C, 0x10, 0x80, 0xE5, 0x1F, 0x03, 0x00, 0xEA, 0x2B, 0xC7, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3
.byte 0x1C, 0x03, 0x00, 0x1A, 0x75, 0x06, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x19, 0x03, 0x00, 0x1A
.byte 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x68, 0x0C, 0x9F, 0xE5
.byte 0x01, 0x20, 0xA0, 0xE1, 0x01, 0x30, 0xA0, 0xE1, 0x04, 0x10, 0x8D, 0xE5, 0xE3, 0x54, 0xF4, 0xEB
.byte 0x1E, 0x00, 0xA0, 0xE3, 0x28, 0x06, 0xFE, 0xEB, 0x48, 0xD0, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3
.byte 0x00, 0x00, 0x00, 0x1A, 0x49, 0xCD, 0xFF, 0xEB, 0x38, 0x0C, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3
.byte 0x00, 0x00, 0x90, 0xE5, 0x3C, 0x10, 0x80, 0xE5, 0x06, 0x03, 0x00, 0xEA, 0x12, 0xC7, 0xFF, 0xEB
.byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x03, 0x00, 0x1A, 0x5C, 0x06, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3
.byte 0x00, 0x03, 0x00, 0x1A, 0x0C, 0x0C, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5
.byte 0x00, 0x10, 0xA0, 0xE3, 0x3C, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x48, 0x10, 0x80, 0xE5
.byte 0xF8, 0x02, 0x00, 0xEA, 0xD2, 0x00, 0xD3, 0xE1, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1
.byte 0x0A, 0x00, 0x00, 0x0A, 0xEC, 0x07, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF1, 0x02, 0x00, 0x1A
.byte 0xD0, 0x0B, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0xBD, 0x07, 0x00, 0xEB
.byte 0xC0, 0x0B, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x02, 0x10, 0xC0, 0xE5
.byte 0xB0, 0x0B, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x00, 0xD0, 0xE1
.byte 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0xFC, 0xC8, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3
.byte 0xE0, 0x02, 0x00, 0x1A, 0x8C, 0x0B, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x00, 0xD0, 0xE1
.byte 0xE8, 0xC8, 0xF3, 0xEB, 0x7C, 0x0B, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5
.byte 0x03, 0x10, 0xC0, 0xE5, 0x6C, 0x0B, 0x9F, 0xE5, 0x00, 0x50, 0x90, 0xE5, 0x48, 0x00, 0x95, 0xE5
.byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x40, 0xC2
arm_func_start ov09_0233CDC8
ov09_0233CDC8: ; 0x0233CDC8
strgt r0, [r5, #0x48]
bgt _0233D918
add r3, sp, #0xf00
ldr r4, _0233D930 ; =0x000004EF
arm_func_end ov09_0233CDC8
arm_func_start ov09_0233CDD8
ov09_0233CDD8: ; 0x0233CDD8
add r3, r3, #8
strh r4, [r3, #0x80]
add ip, r5, #0x284
arm_func_end ov09_0233CDD8
arm_func_start ov09_0233CDE4
ov09_0233CDE4: ; 0x0233CDE4
mov lr, #0x10
str ip, [sp, #0xfe0]
ldr r0, _0233D934 ; =0x0233F58C
ldr r1, _0233D938 ; =0x00401A13
add r2, sp, #0xf80
str lr, [sp, #0xf8c]
mov ip, #6
add r3, r5, #8
str ip, [sp]
bl ov09_0233E030
ldr r1, _0233D928 ; =0x0233F7E0
ldr r2, [r1]
strb r0, [r2]
ldr r1, [r1]
ldrb r0, [r1, #0x1c]
cmp r0, #0
mvneq r0, #0
streq r0, [r1, #0x14]
ldr r0, _0233D93C ; =0x0233F59C
bl CreateDBox
ldr r3, _0233D928 ; =0x0233F7E0
ldr r1, _0233D940 ; =0x00000404
ldr ip, [r3]
add r2, r1, #0xed
strb r0, [ip, #1]
ldr r0, [r3]
mov r3, #0
ldrsb r0, [r0, #1]
bl ShowMessageInDBox
ldr r0, _0233D928 ; =0x0233F7E0
mov r3, #0
ldr r2, [r0]
mov r1, #4
strb r3, [r2, #0x44]
ldr r0, [r0]
str r1, [r0, #0x3c]
b _0233D918
_0233CE78:
.byte 0x44, 0x00, 0xD3, 0xE5, 0x00, 0x00, 0x50, 0xE3
.byte 0x30, 0x00, 0x93, 0xE5, 0x0B, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x50, 0xE3, 0x14, 0x00, 0x00, 0xCA
.byte 0xA8, 0x1A, 0x9F, 0xE5, 0xD1, 0x00, 0xD3, 0xE1, 0xED, 0x20, 0x81, 0xE2, 0x00, 0x30, 0xA0, 0xE3
.byte 0xC3, 0xC8, 0xF3, 0xEB, 0x7C, 0x0A, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5
.byte 0x44, 0x10, 0xC0, 0xE5, 0x0A, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0xDA
.byte 0x78, 0x1A, 0x9F, 0xE5, 0xD1, 0x00, 0xD3, 0xE1, 0xEE, 0x20, 0x81, 0xE2, 0x00, 0x30, 0xA0, 0xE3
.byte 0xB7, 0xC8, 0xF3, 0xEB, 0x4C, 0x0A, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5
.byte 0x44, 0x10, 0xC0, 0xE5, 0x3C, 0x0A, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1
.byte 0x23, 0x05, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x1B, 0x00, 0x00, 0x1A, 0x24, 0x0A, 0x9F, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x25, 0x05, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3
.byte 0x11, 0x00, 0x00, 0xBA, 0x0C, 0x0A, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x10, 0x20, 0x93, 0xE5
.byte 0x14, 0x10, 0x93, 0xE5, 0x02, 0x00, 0x51, 0xE1, 0x03, 0x00, 0x00, 0x0A, 0x14, 0x20, 0x83, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE2, 0xAE, 0x02, 0x00, 0xEB, 0xE4, 0x09, 0x9F, 0xE5
.byte 0x07, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x0A, 0x10, 0xA0, 0xE3, 0x3C, 0x30, 0x82, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0x48, 0x10, 0x80, 0xE5, 0x03, 0x00, 0x00, 0xEA, 0xC4, 0x09, 0x9F, 0xE5
.byte 0x0B, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x3C, 0x10, 0x80, 0xE5, 0xB4, 0x09, 0x9F, 0xE5
.byte 0x00, 0x10, 0x90, 0xE5, 0x1D, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x65, 0x02, 0x00, 0x0A
.byte 0xD0, 0x00, 0xD1, 0xE1, 0xDF, 0x04, 0x00, 0xEB, 0x98, 0x09, 0x9F, 0xE5, 0x05, 0x30, 0xA0, 0xE3
.byte 0x00, 0x20, 0x90, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x3C, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0x48, 0x10, 0x80, 0xE5, 0x5B, 0x02, 0x00, 0xEA, 0x48, 0x00, 0x93, 0xE5, 0x00, 0x00, 0x50, 0xE3
.byte 0x01, 0x00, 0x40, 0xC2, 0x48, 0x00, 0x83, 0xC5, 0x56, 0x02, 0x00, 0xCA, 0x80, 0xC9, 0x9F, 0xE5
.byte 0x0E, 0x2C, 0x8D, 0xE2, 0x7C, 0x09, 0x9F, 0xE5, 0xE8, 0x20, 0x82, 0xE2, 0x08, 0x30, 0x83, 0xE2
.byte 0x13, 0x10, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5, 0x8C, 0x08, 0x00, 0xEB, 0x44, 0x19, 0x9F, 0xE5
.byte 0x06, 0x20, 0xA0, 0xE3, 0x00, 0x30, 0x91, 0xE5, 0x04, 0x00, 0xC3, 0xE5, 0x00, 0x00, 0x91, 0xE5
.byte 0x3C, 0x20, 0x80, 0xE5, 0x47, 0x02, 0x00, 0xEA, 0xD4, 0x00, 0xD3, 0xE1, 0xF6, 0x08, 0x00, 0xEB
.byte 0x00, 0x00, 0x50, 0xE3, 0x11, 0x00, 0x00, 0x1A, 0x18, 0x09, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3
.byte 0x00, 0x10, 0x90, 0xE5, 0x04, 0x20, 0xA0, 0xE3, 0x1D, 0x30, 0xC1, 0xE5, 0x00, 0x10, 0x90, 0xE5
.byte 0x3C, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD4, 0x00, 0xD0, 0xE1, 0xE3, 0x08, 0x00, 0xEB
.byte 0xF0, 0x08, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x04, 0x20, 0xC1, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0xA1, 0x04, 0x00, 0xEB, 0x31, 0x02, 0x00, 0xEA
.byte 0xD0, 0x08, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x44, 0x00, 0xD2, 0xE5, 0x00, 0x00, 0x50, 0xE3
.byte 0x30, 0x00, 0x92, 0xE5, 0x0B, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x50, 0xE3, 0x29, 0x02, 0x00, 0xCA
.byte 0xC8, 0x18, 0x9F, 0xE5, 0xD1, 0x00, 0xD2, 0xE1, 0xED, 0x20, 0x81, 0xE2, 0x00, 0x30, 0xA0, 0xE3
.byte 0x4B, 0xC8, 0xF3, 0xEB, 0x9C, 0x08, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5
.byte 0x44, 0x10, 0xC0, 0xE5, 0x1F, 0x02, 0x00, 0xEA, 0x00, 0x00, 0x50, 0xE3, 0x1D, 0x02, 0x00, 0xDA
.byte 0x98, 0x18, 0x9F, 0xE5, 0xD1, 0x00, 0xD2, 0xE1, 0xEE, 0x20, 0x81, 0xE2, 0x00, 0x30, 0xA0, 0xE3
.byte 0x3F, 0xC8, 0xF3, 0xEB, 0x6C, 0x08, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5
.byte 0x44, 0x10, 0xC0, 0xE5, 0x13, 0x02, 0x00, 0xEA, 0xD0, 0x00, 0xD3, 0xE1, 0x01, 0x10, 0xE0, 0xE3
.byte 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0xA9, 0x04, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3
.byte 0x0C, 0x02, 0x00, 0x1A, 0x3C, 0x08, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1
.byte 0x95, 0x04, 0x00, 0xEB, 0x2C, 0x08, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5
.byte 0x00, 0x10, 0xC0, 0xE5, 0x1C, 0x08, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5
.byte 0xD1, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0x17, 0xC8, 0xF3, 0xEB
.byte 0x00, 0x00, 0x50, 0xE3, 0xFB, 0x01, 0x00, 0x1A, 0xF8, 0x07, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0xD1, 0x00, 0xD0, 0xE1, 0x03, 0xC8, 0xF3, 0xEB, 0xE8, 0x07, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3
.byte 0x00, 0x00, 0x90, 0xE5, 0x01, 0x10, 0xC0, 0xE5, 0xD8, 0x07, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5
.byte 0x48, 0x00, 0x93, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x40, 0xC2, 0x48, 0x00, 0x83, 0xC5
.byte 0xEC, 0x01, 0x00, 0xCA, 0x00, 0x00, 0xA0, 0xE3, 0xDC, 0x17, 0x9F, 0xE5, 0x50, 0x0E, 0x8D, 0xE5
.byte 0x00, 0x10, 0x8D, 0xE5, 0xD4, 0xC7, 0x9F, 0xE5, 0xD4, 0x17, 0x9F, 0xE5, 0xE5, 0x2E, 0x8D, 0xE2
.byte 0x08, 0x30, 0x83, 0xE2, 0x04, 0xC0, 0x8D, 0xE5, 0xE2, 0x05, 0x00, 0xEB, 0x94, 0x17, 0x9F, 0xE5
.byte 0x00, 0x10, 0x91, 0xE5, 0x02, 0x00, 0xC1, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0xC3, 0xC7, 0xF3, 0xEB
.byte 0x80, 0x17, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x03, 0x00, 0xC2, 0xE5, 0x00, 0x30, 0x91, 0xE5
.byte 0x88, 0x00, 0x8D, 0xE2, 0x14, 0x20, 0x93, 0xE5, 0x40, 0x20, 0x83, 0xE5, 0x00, 0x20, 0x91, 0xE5
.byte 0x40, 0x10, 0x92, 0xE5, 0x01, 0x11, 0x82, 0xE0, 0xBC, 0x14, 0xD1, 0xE1, 0xB9, 0xA1, 0xF3, 0xEB
.byte 0x0E, 0x0C, 0x8D, 0xE2, 0x2D, 0x99, 0xF3, 0xEB, 0x48, 0x07, 0x9F, 0xE5, 0x88, 0x30, 0x8D, 0xE2
.byte 0x00, 0xE0, 0x90, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x40, 0xC0, 0x9E, 0xE5, 0x4C, 0x17, 0x9F, 0xE5
.byte 0x38, 0x3E, 0x8D, 0xE5, 0x01, 0x30, 0x8C, 0xE2, 0x24, 0x3E, 0x8D, 0xE5, 0x38, 0x20, 0x8E, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0xF6, 0x20, 0x81, 0xE2, 0xD3, 0x00, 0xD0, 0xE1, 0x0E, 0x3C, 0x8D, 0xE2
.byte 0xE7, 0xC7, 0xF3, 0xEB, 0x0E, 0x1C, 0x8D, 0xE2, 0x00, 0x10, 0x8D, 0xE5, 0x34, 0x27, 0x9F, 0xE5
.byte 0x34, 0x37, 0x9F, 0xE5, 0x0A, 0x0C, 0x8D, 0xE2, 0x01, 0x1C, 0xA0, 0xE3, 0xE1, 0x98, 0xF3, 0xEB
.byte 0x0A, 0x0C, 0x8D, 0xE2, 0x03, 0x00, 0x00, 0xEA, 0x5D, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x80, 0x02
.byte 0x03, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x80, 0xE2, 0x00, 0x10, 0xD0, 0xE5, 0x00, 0x00, 0x51, 0xE3
.byte 0xF8, 0xFF, 0xFF, 0x1A, 0xD3, 0xA4, 0xF3, 0xEB, 0xC8, 0x16, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3
.byte 0x00, 0xC0, 0x91, 0xE5, 0x08, 0x20, 0xA0, 0xE3, 0x38, 0x00, 0x8C, 0xE5, 0x00, 0x00, 0x91, 0xE5
.byte 0x44, 0x30, 0xC0, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x3C, 0x20, 0x80, 0xE5, 0xA5, 0x01, 0x00, 0xEA
.byte 0xD2, 0x00, 0xD3, 0xE1, 0x9C, 0x06, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x55, 0x00, 0x00, 0x1A
.byte 0x90, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x9E, 0x06, 0x00, 0xEB
.byte 0x07, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x46, 0x00, 0x00, 0xEA, 0x45, 0x00, 0x00, 0xEA
.byte 0x44, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA, 0x14, 0x00, 0x00, 0xEA
.byte 0x1C, 0x00, 0x00, 0xEA, 0x24, 0x00, 0x00, 0xEA, 0x35, 0x00, 0x00, 0xEA, 0x54, 0x06, 0x9F, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE2, 0xC6, 0x01, 0x00, 0xEB, 0x44, 0x06, 0x9F, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x4C, 0x06, 0x00, 0xEB, 0x89, 0x01, 0x00, 0xEA
.byte 0x30, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE2, 0xD2, 0x01, 0x00, 0xEB
.byte 0x20, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x43, 0x06, 0x00, 0xEB
.byte 0x80, 0x01, 0x00, 0xEA, 0x0C, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE2
.byte 0xD2, 0x01, 0x00, 0xEB, 0xFC, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1
.byte 0x3A, 0x06, 0x00, 0xEB, 0x77, 0x01, 0x00, 0xEA, 0xE8, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0x08, 0x00, 0x80, 0xE2, 0xE1, 0x01, 0x00, 0xEB, 0xD8, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0xD2, 0x00, 0xD0, 0xE1, 0x31, 0x06, 0x00, 0xEB, 0x6E, 0x01, 0x00, 0xEA, 0xC4, 0x05, 0x9F, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE2, 0xF9, 0x01, 0x00, 0xEB, 0xB4, 0x05, 0x9F, 0xE5
.byte 0x00, 0x20, 0x90, 0xE5, 0x1D, 0x10, 0xD2, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0x0A
.byte 0x09, 0x10, 0xA0, 0xE3, 0x3C, 0x10, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0xA0, 0xE3
.byte 0x48, 0x10, 0x80, 0xE5, 0x5F, 0x01, 0x00, 0xEA, 0xD2, 0x00, 0xD2, 0xE1, 0x1F, 0x06, 0x00, 0xEB
.byte 0x5C, 0x01, 0x00, 0xEA, 0x7C, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE2
.byte 0xED, 0x01, 0x00, 0xEB, 0x6C, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1
.byte 0x16, 0x06, 0x00, 0xEB, 0x53, 0x01, 0x00, 0xEA, 0x58, 0x05, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3
.byte 0x00, 0x20, 0x90, 0xE5, 0x0A, 0x10, 0xA0, 0xE3, 0x3C, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0x48, 0x10, 0x80, 0xE5, 0x4B, 0x01, 0x00, 0xEA, 0x38, 0x05, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5
.byte 0x1D, 0x10, 0xD2, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x09, 0x00, 0x00, 0x0A, 0xD2, 0x00, 0xD2, 0xE1
.byte 0x24, 0x06, 0x00, 0xEB, 0x1C, 0x05, 0x9F, 0xE5, 0x09, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5
.byte 0x00, 0x10, 0xA0, 0xE3, 0x3C, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x48, 0x10, 0x80, 0xE5
.byte 0x3C, 0x01, 0x00, 0xEA, 0x44, 0x10, 0xD2, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x30, 0x10, 0x92, 0xE5
.byte 0x07, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x51, 0xE3, 0x15, 0x00, 0x00, 0xCA, 0x00, 0x10, 0xE0, 0xE3
.byte 0x40, 0x10, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x44, 0x10, 0xC0, 0xE5
.byte 0x0F, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x51, 0xE3, 0x0D, 0x00, 0x00, 0xDA, 0x00, 0x30, 0xA0, 0xE3
.byte 0x38, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x14, 0x9F, 0xE5, 0xD3, 0x00, 0xD0, 0xE1
.byte 0xF7, 0x20, 0x81, 0xE2, 0x4E, 0xC7, 0xF3, 0xEB, 0xA8, 0x04, 0x9F, 0xE5, 0x00, 0x30, 0xE0, 0xE3
.byte 0x00, 0x20, 0x90, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x40, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0x44, 0x10, 0xC0, 0xE5, 0x8C, 0x04, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x44, 0x10, 0xD3, 0xE5
.byte 0x00, 0x00, 0x51, 0xE3, 0x1B, 0x01, 0x00, 0x1A, 0x14, 0x20, 0x93, 0xE5, 0x40, 0x10, 0x93, 0xE5
.byte 0x02, 0x00, 0x51, 0xE1, 0x17, 0x01, 0x00, 0x0A, 0x40, 0x20, 0x83, 0xE5, 0x00, 0x20, 0x90, 0xE5
.byte 0x48, 0x00, 0x8D, 0xE2, 0x40, 0x10, 0x92, 0xE5, 0x01, 0x11, 0x82, 0xE0, 0xBC, 0x14, 0xD1, 0xE1
.byte 0xF8, 0xA0, 0xF3, 0xEB, 0x9B, 0x0E, 0x8D, 0xE2, 0x6C, 0x98, 0xF3, 0xEB, 0x44, 0x04, 0x9F, 0xE5
.byte 0x48, 0x30, 0x8D, 0xE2, 0x00, 0xE0, 0x90, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x40, 0xC0, 0x9E, 0xE5
.byte 0x48, 0x14, 0x9F, 0xE5, 0xE8, 0x39, 0x8D, 0xE5, 0x01, 0x30, 0x8C, 0xE2, 0xD4, 0x39, 0x8D, 0xE5
.byte 0x38, 0x20, 0x8E, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x9B, 0x3E, 0x8D, 0xE2, 0xD3, 0x00, 0xD0, 0xE1
.byte 0xF6, 0x20, 0x81, 0xE2, 0x26, 0xC7, 0xF3, 0xEB, 0x9B, 0x1E, 0x8D, 0xE2, 0x00, 0x10, 0x8D, 0xE5
.byte 0x30, 0x24, 0x9F, 0xE5, 0x30, 0x34, 0x9F, 0xE5, 0x5B, 0x0E, 0x8D, 0xE2, 0x01, 0x1C, 0xA0, 0xE3
.byte 0x20, 0x98, 0xF3, 0xEB, 0x5B, 0x0E, 0x8D, 0xE2, 0x03, 0x00, 0x00, 0xEA, 0x5D, 0x00, 0x51, 0xE3
.byte 0x01, 0x00, 0x80, 0x02, 0x03, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x80, 0xE2, 0x00, 0x10, 0xD0, 0xE5
.byte 0x00, 0x00, 0x51, 0xE3, 0xF8, 0xFF, 0xFF, 0x1A, 0x12, 0xA4, 0xF3, 0xEB, 0xC4, 0x13, 0x9F, 0xE5
.byte 0x00, 0x10, 0x91, 0xE5, 0x38, 0x00, 0x81, 0xE5, 0xEA, 0x00, 0x00, 0xEA, 0x48, 0x00, 0x93, 0xE5
.byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x40, 0xC2, 0x48, 0x00, 0x83, 0xC5, 0xE5, 0x00, 0x00, 0xCA
.byte 0xBC, 0xC3, 0x9F, 0xE5, 0x05, 0x2C, 0x8D, 0xE2, 0xD0, 0x03, 0x9F, 0xE5, 0x18, 0x20, 0x82, 0xE2
.byte 0x08, 0x30, 0x83, 0xE2, 0x13, 0x10, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5, 0x1B, 0x07, 0x00, 0xEB
.byte 0x80, 0x13, 0x9F, 0xE5, 0x0A, 0x20, 0xA0, 0xE3, 0x00, 0x30, 0x91, 0xE5, 0x04, 0x00, 0xC3, 0xE5
.byte 0x00, 0x00, 0x91, 0xE5, 0x3C, 0x20, 0x80, 0xE5, 0xD6, 0x00, 0x00, 0xEA, 0xD4, 0x00, 0xD3, 0xE1
.byte 0x85, 0x07, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x11, 0x00, 0x00, 0x1A, 0x54, 0x03, 0x9F, 0xE5
.byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x08, 0x20, 0xA0, 0xE3, 0x1D, 0x30, 0xC1, 0xE5
.byte 0x00, 0x10, 0x90, 0xE5, 0x3C, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD4, 0x00, 0xD0, 0xE1
.byte 0x72, 0x07, 0x00, 0xEB, 0x2C, 0x03, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5
.byte 0x04, 0x20, 0xC1, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x83, 0x05, 0x00, 0xEB
.byte 0xC0, 0x00, 0x00, 0xEA, 0x0C, 0x03, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x44, 0x10, 0xD2, 0xE5
.byte 0x00, 0x00, 0x51, 0xE3, 0x30, 0x10, 0x92, 0xE5, 0x07, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x51, 0xE3
.byte 0x15, 0x00, 0x00, 0xCA, 0x00, 0x10, 0xE0, 0xE3, 0x40, 0x10, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0x00, 0x10, 0xA0, 0xE3, 0x44, 0x10, 0xC0, 0xE5, 0x0F, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x51, 0xE3
.byte 0x0D, 0x00, 0x00, 0xDA, 0x00, 0x30, 0xA0, 0xE3, 0x38, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0xD8, 0x12, 0x9F, 0xE5, 0xD3, 0x00, 0xD0, 0xE1, 0xF7, 0x20, 0x81, 0xE2, 0xD0, 0xC6, 0xF3, 0xEB
.byte 0xB0, 0x02, 0x9F, 0xE5, 0x00, 0x30, 0xE0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x01, 0x10, 0xA0, 0xE3
.byte 0x40, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x44, 0x10, 0xC0, 0xE5, 0x94, 0x02, 0x9F, 0xE5
.byte 0x00, 0x30, 0x90, 0xE5, 0x44, 0x10, 0xD3, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x9D, 0x00, 0x00, 0x1A
.byte 0x14, 0x20, 0x93, 0xE5, 0x40, 0x10, 0x93, 0xE5, 0x02, 0x00, 0x51, 0xE1, 0x99, 0x00, 0x00, 0x0A
.byte 0x40, 0x20, 0x83, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x08, 0x00, 0x8D, 0xE2, 0x40, 0x10, 0x92, 0xE5
.byte 0x01, 0x11, 0x82, 0xE0, 0xBC, 0x14, 0xD1, 0xE1, 0x7A, 0xA0, 0xF3, 0xEB, 0x01, 0x0B, 0x8D, 0xE2
.byte 0xC8, 0x00, 0x80, 0xE2, 0xED, 0x97, 0xF3, 0xEB, 0x48, 0x02, 0x9F, 0xE5, 0x08, 0x30, 0x8D, 0xE2
.byte 0x00, 0xE0, 0x90, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x40, 0xC0, 0x9E, 0xE5, 0x4C, 0x12, 0x9F, 0xE5
.byte 0x00, 0x35, 0x8D, 0xE5, 0x01, 0x30, 0x8C, 0xE2, 0xEC, 0x34, 0x8D, 0xE5, 0x38, 0x20, 0x8E, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0x01, 0x3B, 0x8D, 0xE2, 0xD3, 0x00, 0xD0, 0xE1, 0xC8, 0x30, 0x83, 0xE2
.byte 0xF6, 0x20, 0x81, 0xE2, 0xA6, 0xC6, 0xF3, 0xEB, 0x01, 0x1B, 0x8D, 0xE2, 0xC8, 0x10, 0x81, 0xE2
.byte 0x00, 0x10, 0x8D, 0xE5, 0x2C, 0x22, 0x9F, 0xE5, 0x2C, 0x32, 0x9F, 0xE5, 0xC8, 0x00, 0x8D, 0xE2
.byte 0x01, 0x1C, 0xA0, 0xE3, 0x9F, 0x97, 0xF3, 0xEB, 0xC8, 0x00, 0x8D, 0xE2, 0x03, 0x00, 0x00, 0xEA
.byte 0x5D, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x80, 0x02, 0x03, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x80, 0xE2
.byte 0x00, 0x10, 0xD0, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0xF8, 0xFF, 0xFF, 0x1A, 0x91, 0xA3, 0xF3, 0xEB
.byte 0xC0, 0x11, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x38, 0x00, 0x81, 0xE5, 0x69, 0x00, 0x00, 0xEA
.byte 0x75, 0xC4, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x66, 0x00, 0x00, 0x1A, 0xBF, 0x03, 0xFE, 0xEB
.byte 0x00, 0x00, 0x50, 0xE3, 0x63, 0x00, 0x00, 0x1A, 0x1E, 0x00, 0xA0, 0xE3, 0x8D, 0x03, 0xFE, 0xEB
.byte 0x85, 0xC5, 0xFF, 0xEB, 0xF5, 0x68, 0xF3, 0xEB, 0x88, 0x01, 0x9F, 0xE5, 0x0C, 0x10, 0xA0, 0xE3
.byte 0x00, 0x00, 0x90, 0xE5, 0x3C, 0x10, 0x80, 0xE5, 0x5A, 0x00, 0x00, 0xEA, 0x66, 0xC4, 0xFF, 0xEB
.byte 0x00, 0x00, 0x50, 0xE3, 0x57, 0x00, 0x00, 0x1A, 0xB0, 0x03, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3
.byte 0x54, 0x00, 0x00, 0x1A, 0x5C, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5
.byte 0xD0, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0xE8, 0x02, 0x00, 0xEB
.byte 0x00, 0x00, 0x50, 0xE3, 0x4B, 0x00, 0x00, 0x1A, 0x38, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0xD0, 0x00, 0xD0, 0xE1, 0xD4, 0x02, 0x00, 0xEB, 0x28, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3
.byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0xC0, 0xE5, 0x18, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3
.byte 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A
.byte 0x56, 0xC6, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x3A, 0x00, 0x00, 0x1A, 0xF4, 0x00, 0x9F, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0x42, 0xC6, 0xF3, 0xEB, 0xE4, 0x00, 0x9F, 0xE5
.byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x10, 0xC0, 0xE5, 0xD4, 0x00, 0x9F, 0xE5
.byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1
.byte 0x0A, 0x00, 0x00, 0x0A, 0x24, 0x05, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x29, 0x00, 0x00, 0x1A
.byte 0xB0, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0xF5, 0x04, 0x00, 0xEB
.byte 0xA0, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x02, 0x10, 0xC0, 0xE5
.byte 0x90, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x00, 0xD0, 0xE1
.byte 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0x34, 0xC6, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3
.byte 0x18, 0x00, 0x00, 0x1A, 0x6C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x00, 0xD0, 0xE1
.byte 0x20, 0xC6, 0xF3, 0xEB, 0x5C, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5
.byte 0x03, 0x10, 0xC0, 0xE5, 0xFD, 0x03, 0xFE, 0xEB, 0x1E, 0x00, 0xA0, 0xE3, 0x26, 0x03, 0xFE, 0xEB
.byte 0x40, 0x00, 0x9F, 0xE5, 0x0D, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x3C, 0x10, 0x80, 0xE5
.byte 0x08, 0x00, 0x00, 0xEA, 0x61, 0x03, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x1A
.byte 0x02, 0x00, 0xA0, 0xE3, 0x93, 0x68, 0xF3, 0xEB, 0x14, 0x00, 0xA0, 0xE3, 0xE9, 0xCD, 0xFF, 0xEB
.byte 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA
_0233D918:
mov r0, #1
add sp, sp, #0x18
add sp, sp, #0x1000
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0233D928: .word 0x0233F7E0
_0233D92C:
.byte 0x80, 0xF7, 0x33, 0x02
_0233D930: .word 0x000004EF
_0233D934: .word 0x0233F58C
_0233D938: .word 0x00401A13
_0233D93C: .word 0x0233F59C
_0233D940: .word 0x00000404
arm_func_end ov09_0233CDE4
_0233D944:
.byte 0xFC, 0x04, 0x00, 0x00, 0x6C, 0xF5, 0x33, 0x02, 0xAC, 0xF5, 0x33, 0x02
.byte 0xE4, 0xF5, 0x33, 0x02, 0x33, 0x00, 0x40, 0x00, 0xFA, 0x04, 0x00, 0x00, 0x02, 0xC4, 0x00, 0x00
.byte 0x7C, 0xF5, 0x33, 0x02
arm_func_start ov09_0233D964
ov09_0233D964: ; 0x0233D964
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r1
str r4, [r5]
mvn r2, #0
str r2, [r5, #8]
str r2, [r5, #0xc]
mov r1, #0
strh r1, [r5, #0x10]
strh r1, [r5, #0x12]
strb r1, [r5, #0x14]
strb r1, [r5, #0x15]
strb r1, [r5, #0x16]
str r2, [r5, #0x20]
str r2, [r5, #0x24]
bl ov09_0233D9DC
cmp r4, #0
beq _0233D9D0
mov r1, #0
b _0233D9BC
_0233D9B4:
add r4, r4, #4
add r1, r1, #1
_0233D9BC:
ldrh r0, [r4]
cmp r0, #0
bne _0233D9B4
str r1, [r5, #4]
ldmia sp!, {r3, r4, r5, pc}
_0233D9D0:
mov r0, #0
str r0, [r5, #4]
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov09_0233D964
arm_func_start ov09_0233D9DC
ov09_0233D9DC: ; 0x0233D9DC
mov r1, #0
str r1, [r0, #0x18]
str r1, [r0, #0x1c]
str r1, [r0, #0x2c]
str r1, [r0, #0x28]
str r1, [r0, #0x30]
bx lr
arm_func_end ov09_0233D9DC
arm_func_start ov09_0233D9F8
ov09_0233D9F8: ; 0x0233D9F8
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, [r4, #0xc]
mvn r0, #0
cmp r1, r0
ldreq r0, [r4, #8]
streq r0, [r4, #0xc]
ldr r1, [r4]
ldr r0, [r4, #0xc]
add r0, r1, r0, lsl #2
ldrh r0, [r0, #2]
cmp r0, #0
ldmeqia sp!, {r4, pc}
bl sub_02017B58
mov r1, #1
mov r0, #0
strb r1, [r4, #0x14]
str r0, [r4, #0x20]
sub r0, r0, #1
str r0, [r4, #0x24]
ldmia sp!, {r4, pc}
arm_func_end ov09_0233D9F8
arm_func_start ov09_0233DA4C
ov09_0233DA4C: ; 0x0233DA4C
stmdb sp!, {r4, lr}
mov r4, r0
bl sub_02017B70
mov r0, #0
strb r0, [r4, #0x14]
sub r0, r0, #1
str r0, [r4, #0x20]
str r0, [r4, #0x24]
ldmia sp!, {r4, pc}
arm_func_end ov09_0233DA4C
arm_func_start ov09_0233DA70
ov09_0233DA70: ; 0x0233DA70
stmdb sp!, {r3, lr}
ldr r3, [r0, #0xc]
mvn r1, #0
cmp r3, r1
ldmeqia sp!, {r3, pc}
mov r2, #0
_0233DA88:
ldr r1, [r0, #4]
sub r1, r1, #1
cmp r3, r1
strge r2, [r0, #0xc]
ldrlt r1, [r0, #0xc]
addlt r1, r1, #1
strlt r1, [r0, #0xc]
ldr r3, [r0, #0xc]
ldr r1, [r0]
add r1, r1, r3, lsl #2
ldrh r1, [r1, #2]
cmp r1, #0
beq _0233DA88
ldrb r1, [r0, #0x14]
cmp r1, #0
ldmeqia sp!, {r3, pc}
bl ov09_0233D9F8
ldmia sp!, {r3, pc}
arm_func_end ov09_0233DA70
arm_func_start ov09_0233DAD0
ov09_0233DAD0: ; 0x0233DAD0
stmdb sp!, {r4, lr}
mov r4, r0
ldr r2, [r4, #0xc]
mvn r1, #0
cmp r2, r1
ldmeqia sp!, {r4, pc}
ldrb r1, [r4, #0x14]
cmp r1, #0
beq _0233DB10
ldr r1, [r4, #0x20]
cmp r1, #0xb4
ble _0233DB10
bl ov09_0233DA4C
mov r0, r4
bl ov09_0233D9F8
ldmia sp!, {r4, pc}
_0233DB10:
cmp r2, #0
ldrle r0, [r4, #4]
ldrgt r0, [r4, #0xc]
sub r0, r0, #1
str r0, [r4, #0xc]
ldr r2, [r4, #0xc]
ldr r0, [r4]
add r0, r0, r2, lsl #2
ldrh r0, [r0, #2]
cmp r0, #0
beq _0233DB10
ldrb r0, [r4, #0x14]
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
bl ov09_0233D9F8
ldmia sp!, {r4, pc}
arm_func_end ov09_0233DAD0
arm_func_start ov09_0233DB54
ov09_0233DB54: ; 0x0233DB54
ldrb r1, [r0, #0x15]
cmp r1, #0
moveq r1, #1
movne r1, #0
strb r1, [r0, #0x15]
bx lr
arm_func_end ov09_0233DB54
arm_func_start ov09_0233DB6C
ov09_0233DB6C: ; 0x0233DB6C
ldrb r1, [r0, #0x16]
cmp r1, #0
moveq r1, #1
movne r1, #0
strb r1, [r0, #0x16]
bx lr
arm_func_end ov09_0233DB6C
arm_func_start ov09_0233DB84
ov09_0233DB84: ; 0x0233DB84
mov r1, #0x78
str r1, [r0, #0x28]
bx lr
arm_func_end ov09_0233DB84
arm_func_start ov09_0233DB90
ov09_0233DB90: ; 0x0233DB90
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
sub sp, sp, #4
movs r6, r3
ldrneb r4, [r6]
mov r8, r0
movne r0, #0
strneb r0, [r6]
ldr r5, [sp, #0x20]
mov r0, #0
strb r0, [r5]
ldr r0, [r8, #0x18]
moveq r4, #1
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r8, #0x18]
ldr r0, [r8, #0x1c]
mov r7, r1
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r8, #0x1c]
add r1, sp, #0
mov r0, #0
bl GetPressedButtons
bl sub_02003B5C
cmp r0, #0
ldrneh r0, [sp]
andne r0, r0, #0x300
strneh r0, [sp]
ldrb r0, [r8, #0x14]
cmp r0, #0
beq _0233DCF0
ldr r0, [r8, #0x20]
ldr r2, [r8]
ldr r1, [r8, #0xc]
add r0, r0, #1
str r0, [r8, #0x20]
ldr r0, [r8, #0x24]
add r1, r2, r1, lsl #2
cmp r0, #0
blt _0233DCBC
sub r0, r0, #1
str r0, [r8, #0x24]
ldrb r0, [r8, #0x16]
cmp r0, #0
beq _0233DC74
ldrh r0, [r1, #2]
bl sub_02017B18
cmp r0, #0
movne r0, #0
strne r0, [r8, #0x24]
bne _0233DCF0
ldr r0, [r8, #0x24]
cmp r0, #0
bgt _0233DCF0
mov r0, r8
bl ov09_0233D9F8
b _0233DCF0
_0233DC74:
ldr r0, [r8, #0x24]
cmp r0, #0x12c
bgt _0233DCF0
bne _0233DC90
mov r0, #0x12c
bl sub_02017B7C
b _0233DCF0
_0233DC90:
cmp r0, #0
bgt _0233DCF0
mov r0, r8
bl ov09_0233DA4C
mov r0, r8
bl ov09_0233DA70
mov r0, r8
bl ov09_0233D9F8
mov r0, #1
strb r0, [r5]
b _0233DCF0
_0233DCBC:
ldrh r0, [r1, #2]
bl sub_02017B18
cmp r0, #0
moveq r0, #0x3c
streq r0, [r8, #0x24]
beq _0233DCF0
bl sub_02017B0C
cmp r0, #0
beq _0233DCF0
ldrb r0, [r8, #0x16]
cmp r0, #0
moveq r0, #0x258
streq r0, [r8, #0x24]
_0233DCF0:
ldrh r0, [sp]
tst r0, #8
beq _0233DD1C
mov r0, r7
mov r1, #0
bl sub_02032960
ldrb r0, [r8, #0x15]
cmp r0, #0
moveq r0, #1
movne r0, #0
strb r0, [r8, #0x15]
_0233DD1C:
ldrb r0, [r8, #0x15]
cmp r0, #0
beq _0233DD70
ldr r0, [r8, #0x28]
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r8, #0x28]
ldrh r1, [sp]
ldr r0, _0233DEE8 ; =0x00000F04
tst r1, r0
beq _0233DD68
bl sub_02003B5C
cmp r0, #0
bne _0233DD60
mov r0, r7
mov r1, #2
bl sub_02032960
_0233DD60:
mov r0, #0x78
str r0, [r8, #0x28]
_0233DD68:
mov r0, #0
b _0233DEE0
_0233DD70:
mov r1, #0
str r1, [r8, #0x28]
ldrh r0, [sp]
tst r0, #4
beq _0233DDA0
mov r0, r7
bl sub_02032960
ldrb r0, [r8, #0x16]
cmp r0, #0
moveq r0, #1
movne r0, #0
strb r0, [r8, #0x16]
_0233DDA0:
ldr r0, [r8, #0x2c]
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r8, #0x2c]
bgt _0233DEDC
ldrh r0, [sp]
tst r0, #0x400
beq _0233DE0C
cmp r4, #0
mov r0, r7
beq _0233DDF0
mov r1, #0
bl sub_02032960
cmp r6, #0
movne r0, #1
strneb r0, [r6]
bne _0233DDF8
mov r0, r8
bl ov09_0233D9F8
b _0233DDF8
_0233DDF0:
mov r1, #2
bl sub_02032960
_0233DDF8:
mov r0, #4
str r0, [r8, #0x2c]
mov r0, #1
strb r0, [r5]
b _0233DEDC
_0233DE0C:
tst r0, #0x800
beq _0233DE48
mov r0, r7
mov r1, #0
bl sub_02032960
mov r1, #4
mov r0, r8
str r1, [r8, #0x2c]
bl ov09_0233DA4C
cmp r6, #0
mvnne r0, #0
strne r0, [r8, #0xc]
mov r0, #1
strb r0, [r5]
b _0233DEDC
_0233DE48:
tst r0, #0x200
beq _0233DE94
mov r0, #4
str r0, [r8, #0x2c]
ldr r1, [r8, #0xc]
sub r0, r0, #5
cmp r1, r0
mov r0, r7
bne _0233DE78
mov r1, #2
bl sub_02032960
b _0233DEDC
_0233DE78:
mov r1, #0
bl sub_02032960
mov r0, r8
bl ov09_0233DAD0
mov r0, #1
strb r0, [r5]
b _0233DEDC
_0233DE94:
tst r0, #0x100
beq _0233DEDC
mov r0, #4
str r0, [r8, #0x2c]
ldr r1, [r8, #0xc]
sub r0, r0, #5
cmp r1, r0
mov r0, r7
bne _0233DEC4
mov r1, #2
bl sub_02032960
b _0233DEDC
_0233DEC4:
mov r1, #0
bl sub_02032960
mov r0, r8
bl ov09_0233DA70
mov r0, #1
strb r0, [r5]
_0233DEDC:
mov r0, #0
_0233DEE0:
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
.align 2, 0
_0233DEE8: .word 0x00000F04
arm_func_end ov09_0233DB90
arm_func_start ov09_0233DEEC
ov09_0233DEEC: ; 0x0233DEEC
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x10
mov r4, #0
mov r8, r0
mov r7, r1
mov r6, r2
mov r5, r3
bl sub_02003B5C
cmp r0, #0
movne r0, r4
bne _0233E028
ldr r1, [r7, #8]
ldr r0, [r7]
add lr, r1, #0x8a
str r0, [sp]
ldr r0, [r7]
add r3, lr, #0x10
add ip, r0, #0xe
add r2, sp, #0
mov r0, r5
mov r1, #2
str ip, [sp, #4]
str lr, [sp, #8]
str r3, [sp, #0xc]
bl sub_02006C8C
cmp r0, #0
beq _0233DF84
mov r1, #4
str r1, [r8, #0x18]
mov r1, r4
mov r0, r7
mov r4, #1
bl sub_02032960
ldrb r0, [r8, #0x15]
cmp r0, #0
moveq r0, r4
movne r0, #0
strb r0, [r8, #0x15]
_0233DF84:
ldr r0, [r7]
ldr r1, [r7, #8]
add r0, r0, #1
str r0, [sp]
add lr, r1, #0x9e
ldr r0, [r7]
add r3, lr, #0x10
add ip, r0, #0xf
add r2, sp, #0
mov r0, r5
mov r1, #2
str ip, [sp, #4]
str lr, [sp, #8]
str r3, [sp, #0xc]
bl sub_02006C8C
cmp r0, #0
beq _0233E00C
mov r0, #4
str r0, [r8, #0x1c]
ldrb r0, [r8, #0x15]
mov r4, #1
cmp r0, #0
mov r0, r7
beq _0233DFF0
mov r1, #2
bl sub_02032960
b _0233E00C
_0233DFF0:
mov r1, #0
bl sub_02032960
ldrb r0, [r8, #0x16]
cmp r0, #0
moveq r0, r4
movne r0, #0
strb r0, [r8, #0x16]
_0233E00C:
cmp r6, #0
beq _0233E024
mov r0, r7
mov r1, r6
bl sub_020320C8
mov r4, #1
_0233E024:
mov r0, r4
_0233E028:
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, pc}
arm_func_end ov09_0233DEEC
arm_func_start ov09_0233E030
ov09_0233E030: ; 0x0233E030
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x34
mov sl, r3
ldr r6, [sl]
str r1, [sp, #8]
mov r8, r2
mov sb, r0
mov r1, r6
mov r2, #0
b _0233E060
_0233E058:
add r1, r1, #4
add r2, r2, #1
_0233E060:
ldrh r0, [r1]
cmp r0, #0
bne _0233E058
add r0, r2, #1
add r0, r0, r0, lsl #6
mov r0, r0, lsl #2
mov r1, #8
bl MemAlloc
mov fp, r0
mov r5, fp
mov r4, #0
mov r7, #0x100
b _0233E0B8
_0233E094:
ldr r3, _0233E2C8 ; =0x0000C402
mov r0, r5
mov r1, r7
str r4, [sp]
bl PreprocessStringFromMessageId
ldrh r0, [r6, #2]
add r6, r6, #4
str r0, [r5, #0x100]
add r5, r5, #0x104
_0233E0B8:
ldrh r2, [r6]
cmp r2, #0
bne _0233E094
mov r0, #0
strb r0, [r5]
ldrh r2, [r6, #2]
ldr r1, [sp, #0x58]
mov r0, #0x1ac
str r2, [r5, #0x100]
str r1, [sp, #0x10]
mov r1, #8
bl MemAlloc
mov r7, r0
ldr r5, [sl, #0xc]
mov r4, #0
str r4, [sp, #0xc]
mov r0, sl
mov r6, fp
str sl, [r7, #4]
bl ov09_0233D9DC
ldr r0, [sp, #8]
cmp sb, #0
orr sl, r0, #0x20
addne ip, sp, #0x14
ldmneia sb, {r0, r1, r2, r3}
stmneia ip, {r0, r1, r2, r3}
ldrne r0, _0233E2CC ; =ov09_0233E3DC
orr sl, sl, #0x8000
strne r0, [sp, #0x14]
bne _0233E144
ldr r0, _0233E2D0 ; =0x0233F794
add sb, sp, #0x14
ldmia r0, {r0, r1, r2, r3}
stmia sb, {r0, r1, r2, r3}
orr sl, sl, #0x300000
_0233E144:
ldrb r0, [sp, #0x1a]
str r7, [sp, #0x20]
cmp r0, #0
bne _0233E194
mov sb, #0
b _0233E170
_0233E15C:
mov r0, r6
bl sub_020265A8
cmp r0, sb
movgt sb, r0
add r6, r6, #0x104
_0233E170:
mov r0, r6
bl sub_0202A66C
cmp r0, #0
beq _0233E15C
mov r0, sl
mov r1, r8
add r2, sb, #0x10
bl sub_02031A5C
strb r0, [sp, #0x1a]
_0233E194:
mov r6, fp
b _0233E1B8
_0233E19C:
ldr r0, [sp, #0xc]
add r6, r6, #0x104
cmp r0, r5
moveq r4, r0
ldr r0, [sp, #0xc]
add r0, r0, #1
str r0, [sp, #0xc]
_0233E1B8:
mov r0, r6
bl sub_0202A66C
cmp r0, #0
beq _0233E19C
ldr r0, [sp, #0x10]
add r2, sp, #0xc
cmp r0, #0
ldrle r0, [sp, #0xc]
add r3, sp, #0x10
strle r0, [sp, #0x10]
ldrb r0, [sp, #0x1b]
cmp r0, #0
mov r0, sl
bne _0233E200
mov r1, r8
bl sub_02031AA4
strb r0, [sp, #0x1b]
b _0233E208
_0233E200:
mov r1, r8
bl sub_02031AA4
_0233E208:
tst sl, #0x200000
ldrneb r1, [sp, #0x18]
ldrneb r0, [sp, #0x1a]
subne r0, r1, r0
strneb r0, [sp, #0x18]
tst sl, #0x100000
ldrneb r1, [sp, #0x19]
ldrneb r0, [sp, #0x1b]
subne r0, r1, r0
strneb r0, [sp, #0x19]
ldr r0, _0233E2CC ; =ov09_0233E3DC
cmp r8, #0
str r0, [r7]
str sl, [r7, #0x100]
beq _0233E264
add r6, r7, #0x104
mov r5, #9
_0233E24C:
ldmia r8!, {r0, r1, r2, r3}
stmia r6!, {r0, r1, r2, r3}
subs r5, r5, #1
bne _0233E24C
ldmia r8, {r0, r1}
stmia r6, {r0, r1}
_0233E264:
str r4, [r7, #0x104]
str fp, [r7, #0x19c]
mov r2, #0
str r2, [r7, #0x1a0]
strb r2, [r7, #0x1a4]
strb r2, [r7, #0x1a5]
add r0, sp, #0x14
mov r1, #3
strb r2, [sp, #0x1c]
bl sub_02027648
add r1, sp, #0x24
mov r5, r0
bl sub_02028284
ldr r0, [sp, #0xc]
add r3, sp, #0x24
str r0, [sp]
ldr r4, [sp, #0x10]
mov r1, sl
add r0, r7, #8
add r2, r7, #0x104
str r4, [sp, #4]
bl sub_02031AF8
mov r0, r5
add sp, sp, #0x34
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_0233E2C8: .word 0x0000C402
_0233E2CC: .word ov09_0233E3DC
_0233E2D0: .word 0x0233F794
arm_func_end ov09_0233E030
arm_func_start ov09_0233E2D4
ov09_0233E2D4: ; 0x0233E2D4
stmdb sp!, {r3, lr}
bl GetDialogBoxField0xC
mov r1, #1
str r1, [r0, #0x1a0]
mov r1, #0
strb r1, [r0, #0x1a4]
strb r1, [r0, #0x1a5]
ldr r1, [r0, #0x100]
bic r1, r1, #0x800000
str r1, [r0, #0x100]
add r0, r0, #8
bl sub_02032984
ldmia sp!, {r3, pc}
arm_func_end ov09_0233E2D4
arm_func_start ov09_0233E308
ov09_0233E308: ; 0x0233E308
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
bl GetDialogBoxField0xC
mov r4, r0
mov r0, #1
mov r2, #0
strb r0, [r4, #0x1a4]
mov r0, r5
sub r1, r2, #4
strb r2, [r4, #0x1a5]
bl sub_0202830C
mov r0, r5
add r1, r4, #8
bl sub_02028948
mov r0, #5
str r0, [r4, #0x1a0]
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov09_0233E308
arm_func_start ov09_0233E34C
ov09_0233E34C: ; 0x0233E34C
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
bl GetDialogBoxField0xC
mov r4, r0
mov r0, #0
mov r1, r0
bl ov01_02330E38
ldr r0, [r4, #0x19c]
bl MemFree
mov r0, r4
bl MemFree
mov r0, r5
bl sub_02028194
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov09_0233E34C
arm_func_start ov09_0233E384
ov09_0233E384: ; 0x0233E384
stmdb sp!, {r3, lr}
bl GetDialogBoxField0xC
ldr r0, [r0, #0x1a0]
cmp r0, #7
cmpne r0, #8
movne r0, #1
moveq r0, #0
ldmia sp!, {r3, pc}
arm_func_end ov09_0233E384
arm_func_start ov09_0233E3A4
ov09_0233E3A4: ; 0x0233E3A4
stmdb sp!, {r3, lr}
bl GetDialogBoxField0xC
ldrb r1, [r0, #0x1a4]
cmp r1, #0
beq _0233E3D4
ldrb r1, [r0, #0x1a5]
cmp r1, #0
mvnne r0, #0
ldmneia sp!, {r3, pc}
add r0, r0, #8
bl sub_02032578
ldmia sp!, {r3, pc}
_0233E3D4:
mov r0, #0
ldmia sp!, {r3, pc}
arm_func_end ov09_0233E3A4
arm_func_start ov09_0233E3DC
ov09_0233E3DC: ; 0x0233E3DC
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x34
mov r6, r0
ldr r4, [r6, #0xc]
ldr r0, [r4, #0x1a0]
cmp r0, #6
addls pc, pc, r0, lsl #2
b _0233E7E8
_0233E3FC: ; jump table
b _0233E418 ; case 0
b _0233E430 ; case 1
b _0233E444 ; case 2
b _0233E44C ; case 3
b _0233E4AC ; case 4
b _0233E76C ; case 5
b _0233E7B0 ; case 6
_0233E418:
ldrsb r0, [r6, #0x10]
bl sub_0202810C
cmp r0, #0
beq _0233E7E8
mov r0, #2
str r0, [r4, #0x1a0]
_0233E430:
ldr r0, [r4, #0x1a0]
cmp r0, #1
moveq r0, #2
streq r0, [r4, #0x1a0]
beq _0233E7E8
_0233E444:
mov r0, #3
str r0, [r4, #0x1a0]
_0233E44C:
mov r0, r6
bl ov09_0233E7F4
ldr r0, [r4, #0x100]
tst r0, #0x800000
beq _0233E488
mov r0, #8
str r0, [r4, #0x1a0]
mov r1, #1
mov r0, #0
strb r1, [r4, #0x1a4]
strb r0, [r4, #0x1a5]
str r0, [r4, #0x1a8]
sub r0, r0, #4
str r0, [r6, #0xb8]
b _0233E7E8
_0233E488:
mov r1, #4
mov r0, #0
str r1, [r4, #0x1a0]
strb r0, [r4, #0x1a4]
strb r0, [r4, #0x1a5]
str r0, [r4, #0x1a8]
sub r0, r0, #1
str r0, [r6, #0xb8]
b _0233E7E8
_0233E4AC:
bl sub_02003B5C
cmp r0, #0
moveq r3, #1
movne r3, #0
add r1, sp, #0xc
add r2, sp, #0x10
add r0, r4, #8
and r3, r3, #0xff
bl sub_02031C98
ldr r1, [sp, #0xc]
mov r5, r0
cmp r1, #0
bne _0233E52C
ldr r0, [r4, #0x100]
tst r0, #1
beq _0233E52C
mov r3, #0
ldr r2, _0233E7F0 ; =0x00000408
add r1, sp, #0x10
str r3, [sp]
mov ip, #1
add r0, r4, #8
str ip, [sp, #4]
bl sub_02032160
movs r1, r0
bmi _0233E52C
add r0, r4, #8
bl sub_02032684
ldr r0, [sp, #0xc]
mov r5, #1
orr r0, r0, #1
str r0, [sp, #0xc]
_0233E52C:
ldr r0, [sp, #0xc]
cmp r0, #0
bne _0233E54C
add r1, sp, #0xc
add r2, sp, #0x10
add r0, r4, #8
bl sub_02033758
orr r5, r5, r0
_0233E54C:
ldr r2, [sp, #0xc]
cmp r2, #0
bne _0233E56C
ldr r0, [r4, #4]
add r3, sp, #0x10
add r1, r4, #8
bl ov09_0233DEEC
orr r5, r5, r0
_0233E56C:
add r0, r4, #8
bl sub_02032578
mov r2, r0
ldr r1, [sp, #0xc]
add r0, r4, #8
mov r3, #0
bl sub_020323F8
orrs r0, r5, r0
beq _0233E598
mov r0, r6
bl ov09_0233E7F4
_0233E598:
add r0, r4, #8
bl sub_02032578
ldr r1, [r4, #4]
str r0, [r1, #8]
ldr r0, [sp, #0xc]
tst r0, #1
beq _0233E63C
ldr r0, [r4, #4]
ldrb r1, [r0, #0x15]
cmp r1, #0
beq _0233E5D8
bl ov09_0233DB84
add r0, r4, #8
mov r1, #2
bl sub_02032960
b _0233E750
_0233E5D8:
add r0, r4, #8
bl IsMenuOptionActive
cmp r0, #0
beq _0233E62C
ldr r0, [r4, #0x100]
tst r0, #0x80000000
bne _0233E600
add r0, r4, #8
mov r1, #0
bl sub_02032960
_0233E600:
mov r1, #1
mov r0, #0
strb r1, [r4, #0x1a4]
strb r0, [r4, #0x1a5]
ldr r1, [sp, #0xc]
sub r0, r0, #4
str r1, [r4, #0x1a8]
str r0, [r6, #0xb8]
mov r0, #5
str r0, [r4, #0x1a0]
b _0233E750
_0233E62C:
add r0, r4, #8
mov r1, #2
bl sub_02032960
b _0233E750
_0233E63C:
tst r0, #2
beq _0233E69C
ldr r0, [r4, #4]
ldrb r1, [r0, #0x15]
cmp r1, #0
beq _0233E668
bl ov09_0233DB84
add r0, r4, #8
mov r1, #2
bl sub_02032960
b _0233E750
_0233E668:
add r0, r4, #8
mov r1, #1
bl sub_02032960
mov r0, #1
strb r0, [r4, #0x1a4]
strb r0, [r4, #0x1a5]
ldr r1, [sp, #0xc]
sub r0, r0, #6
str r1, [r4, #0x1a8]
str r0, [r6, #0xb8]
mov r0, #5
str r0, [r4, #0x1a0]
b _0233E750
_0233E69C:
add r0, r4, #8
bl IsMenuOptionActive
add r1, sp, #8
strb r0, [sp, #9]
str r1, [sp]
ldr r0, [r4, #4]
ldr r2, [sp, #0xc]
add r3, sp, #9
add r1, r4, #8
bl ov09_0233DB90
cmp r0, #0
beq _0233E6F8
mov r1, #1
mov r0, #0
strb r1, [r4, #0x1a4]
strb r0, [r4, #0x1a5]
ldr r1, [sp, #0xc]
sub r0, r0, #4
str r1, [r4, #0x1a8]
str r0, [r6, #0xb8]
mov r0, #5
str r0, [r4, #0x1a0]
b _0233E73C
_0233E6F8:
ldrb r0, [sp, #9]
cmp r0, #0
beq _0233E73C
ldr r1, [r4, #4]
add r0, r4, #8
ldr r1, [r1, #8]
bl sub_02032684
mov r1, #1
mov r0, #0
strb r1, [r4, #0x1a4]
strb r0, [r4, #0x1a5]
ldr r1, [sp, #0xc]
sub r0, r0, #4
str r1, [r4, #0x1a8]
str r0, [r6, #0xb8]
mov r0, #5
str r0, [r4, #0x1a0]
_0233E73C:
ldrb r0, [sp, #8]
cmp r0, #0
beq _0233E750
mov r0, r6
bl ov09_0233E7F4
_0233E750:
ldrsb r0, [r6, #0x10]
add r1, r4, #8
bl sub_02028948
ldr r1, [r4, #4]
mov r0, #2
bl ov01_02330E38
b _0233E7E8
_0233E76C:
add r0, r4, #8
bl sub_02032070
cmp r0, #0
bne _0233E7E8
ldrb r0, [r4, #0x1a5]
cmp r0, #0
bne _0233E7A8
ldr r0, [r4, #0x100]
tst r0, #0x400000
beq _0233E7A8
mov r0, r6
bl ov09_0233E7F4
mov r0, #8
str r0, [r4, #0x1a0]
b _0233E7E8
_0233E7A8:
mov r0, #6
str r0, [r4, #0x1a0]
_0233E7B0:
mov r0, #0
mov r1, r0
bl ov01_02330E38
ldrsb r0, [r6, #0x10]
bl sub_0202812C
cmp r0, #0
beq _0233E7E8
ldrb r0, [r4, #0x1a5]
cmp r0, #0
mvnne r0, #4
mvneq r0, #3
str r0, [r6, #0xb8]
mov r0, #7
str r0, [r4, #0x1a0]
_0233E7E8:
add sp, sp, #0x34
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
_0233E7F0: .word 0x00000408
arm_func_end ov09_0233E3DC
arm_func_start ov09_0233E7F4
ov09_0233E7F4: ; 0x0233E7F4
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x154
mov sl, r0
ldr r4, [sl, #0xc]
add r0, r4, #8
bl sub_02032568
mov r5, r0
add r0, r4, #8
bl sub_02032594
ldr r2, [r4, #0x100]
mov fp, r0
tst r2, #0x200
ldrne r0, [r4, #0x164]
ldr r3, [r4, #0x19c]
addne sb, r0, r5
add r1, r5, r5, lsl #6
ldrsb r0, [sl, #0x10]
add r6, r3, r1, lsl #2
moveq sb, #0
bl sub_02027B1C
add r0, sp, #0x104
bl InitPreprocessorArgs
cmp fp, #0
mov r7, #0
ble _0233E8EC
b _0233E8E4
_0233E85C:
ldr r0, [r4, #4]
mov r8, #0x44
ldr r0, [r0, #0xc]
cmp r0, r5
moveq r8, #0x45
beq _0233E88C
cmp sb, #0
beq _0233E88C
ldrb r0, [sb]
add sb, sb, #1
tst r0, #2
movne r8, #0x42
_0233E88C:
add r0, r5, #1
str r0, [sp, #0x128]
str r6, [sp, #0x13c]
add r0, sp, #0x104
str r0, [sp]
ldr r3, _0233E914 ; =0x0000C402
add r0, sp, #4
mov r1, #0x100
mov r2, #0x4f0
bl PreprocessStringFromMessageId
add r0, r4, #8
mov r1, r7
bl sub_020328D8
str r8, [sp]
mov r2, r0
ldrsb r0, [sl, #0x10]
mov r1, #0xd
add r3, sp, #4
bl sub_020263C8
add r7, r7, #1
add r5, r5, #1
add r6, r6, #0x104
_0233E8E4:
cmp r7, fp
blt _0233E85C
_0233E8EC:
ldrsb r1, [sl, #0x10]
add r0, r4, #8
bl sub_0202A03C
ldrsb r0, [sl, #0x10]
bl sub_02027AF0
ldr r1, [r4, #4]
mov r0, #2
bl ov01_02330E38
add sp, sp, #0x154
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_0233E914: .word 0x0000C402
arm_func_end ov09_0233E7F4
arm_func_start ov09_0233E918
ov09_0233E918: ; 0x0233E918
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x3c
mov sl, r1
mov sb, r2
str r0, [sp, #8]
str r3, [sp, #0xc]
ldr r1, [sp, #0x60]
mov r2, #0
b _0233E944
_0233E93C:
add r1, r1, #8
add r2, r2, #1
_0233E944:
ldrh r0, [r1]
cmp r0, #0
bne _0233E93C
add r0, r2, #1
add r0, r0, r0, lsl #6
mov r4, r0, lsl #2
mov r0, r4
mov r1, #8
bl MemAlloc
str r0, [sp, #0x14]
mov r0, r4
mov r1, #8
bl MemAlloc
str r0, [sp, #0x10]
ldr r5, [sp, #0x14]
mov r6, r0
ldr r7, [sp, #0x60]
ldr r4, [sp, #0x64]
b _0233E9C4
_0233E990:
mov r0, r5
bl GetStringFromFileVeneer
ldr r1, [r7, #4]
mov r0, r6
str r1, [r5, #0x100]
ldrh r1, [r4]
add r7, r7, #8
add r5, r5, #0x104
bl GetStringFromFileVeneer
ldr r0, [r4, #4]
add r4, r4, #8
str r0, [r6, #0x100]
add r6, r6, #0x104
_0233E9C4:
ldrh r1, [r7]
cmp r1, #0
bne _0233E990
mov r0, #0
strb r0, [r5]
strb r0, [r6]
ldr r1, [r7, #4]
mov r0, #0x1b4
str r1, [r5, #0x100]
ldr r2, [r4, #4]
mov r1, #8
str r2, [r6, #0x100]
bl MemAlloc
mov r7, r0
tst sl, #0x20
ldrne r8, [sb]
ldr r0, [sp, #0xc]
mov fp, #0
str fp, [sp, #0x18]
mov r1, r0
ldr r6, [sp, #0x14]
ldr r5, [sp, #0x10]
moveq r8, #0
str r1, [r7, #4]
bl ov09_0233D9DC
ldr r0, [sp, #8]
add r4, sp, #0x1c
cmp r0, #0
ldreq r0, _0233EC18 ; =0x0233F7A4
orreq sl, sl, #0x300000
ldmeqia r0, {r0, r1, r2, r3}
stmeqia r4, {r0, r1, r2, r3}
ldmneia r0, {r0, r1, r2, r3}
stmneia r4, {r0, r1, r2, r3}
ldrne r0, _0233EC1C ; =ov09_0233ED84
str r7, [sp, #0x28]
strne r0, [sp, #0x1c]
ldrb r0, [sp, #0x22]
cmp r0, #0
bne _0233EACC
mov r4, #0
b _0233EA80
_0233EA6C:
mov r0, r6
bl sub_020265A8
cmp r0, r4
movgt r4, r0
add r6, r6, #0x104
_0233EA80:
mov r0, r6
bl sub_0202A66C
cmp r0, #0
beq _0233EA6C
b _0233EAA8
_0233EA94:
mov r0, r5
bl sub_020265A8
cmp r0, r4
movgt r4, r0
add r5, r5, #0x104
_0233EAA8:
mov r0, r5
bl sub_0202A66C
cmp r0, #0
beq _0233EA94
mov r0, sl
mov r1, sb
add r2, r4, #0x10
bl sub_02031A5C
strb r0, [sp, #0x22]
_0233EACC:
ldr r4, [sp, #0x14]
ldr r5, [sp, #0x10]
and r6, sl, #0x20
b _0233EB14
_0233EADC:
cmp r6, #0
beq _0233EB00
ldr r0, [r4, #0x100]
cmp r0, r8
ldreq fp, [sp, #0x18]
beq _0233EB00
ldr r0, [r5, #0x100]
cmp r0, r8
ldreq fp, [sp, #0x18]
_0233EB00:
ldr r0, [sp, #0x18]
add r4, r4, #0x104
add r0, r0, #1
str r0, [sp, #0x18]
add r5, r5, #0x104
_0233EB14:
mov r0, r4
bl sub_0202A66C
cmp r0, #0
beq _0233EADC
ldrb r0, [sp, #0x23]
cmp r0, #0
bne _0233EB48
add r2, sp, #0x18
mov r0, sl
mov r1, sb
mov r3, r2
bl sub_02031AA4
strb r0, [sp, #0x23]
_0233EB48:
tst sl, #0x200000
ldrneb r1, [sp, #0x20]
ldrneb r0, [sp, #0x22]
subne r0, r1, r0
strneb r0, [sp, #0x20]
tst sl, #0x100000
ldrneb r1, [sp, #0x21]
ldrneb r0, [sp, #0x23]
subne r0, r1, r0
strneb r0, [sp, #0x21]
ldr r0, _0233EC1C ; =ov09_0233ED84
cmp sb, #0
str r0, [r7]
str sl, [r7, #0x100]
beq _0233EBA4
add r5, r7, #0x104
mov r4, #9
_0233EB8C:
ldmia sb!, {r0, r1, r2, r3}
stmia r5!, {r0, r1, r2, r3}
subs r4, r4, #1
bne _0233EB8C
ldmia sb, {r0, r1}
stmia r5, {r0, r1}
_0233EBA4:
ldr r0, [sp, #0x14]
str fp, [r7, #0x104]
str r0, [r7, #0x19c]
ldr r0, [sp, #0x10]
mov r2, #0
str r0, [r7, #0x1a0]
str r2, [r7, #0x1a4]
strb r2, [r7, #0x1a8]
strb r2, [r7, #0x1a9]
str r2, [r7, #0x1ac]
strb r2, [r7, #0x1b0]
add r0, sp, #0x1c
mov r1, #3
strb r2, [sp, #0x24]
bl sub_02027648
add r1, sp, #0x2c
mov r5, r0
bl sub_02028284
ldr r4, [sp, #0x18]
add r3, sp, #0x2c
str r4, [sp]
mov r1, sl
add r0, r7, #8
add r2, r7, #0x104
str r4, [sp, #4]
bl sub_02031AF8
mov r0, r5
add sp, sp, #0x3c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_0233EC18: .word 0x0233F7A4
_0233EC1C: .word ov09_0233ED84
arm_func_end ov09_0233E918
arm_func_start ov09_0233EC20
ov09_0233EC20: ; 0x0233EC20
stmdb sp!, {r3, lr}
bl GetDialogBoxField0xC
mov r1, #1
str r1, [r0, #0x1a4]
mov r1, #0
strb r1, [r0, #0x1a8]
strb r1, [r0, #0x1a9]
str r1, [r0, #0x1ac]
ldr r1, [r0, #0x100]
bic r1, r1, #0x800000
str r1, [r0, #0x100]
add r0, r0, #8
bl sub_02032984
ldmia sp!, {r3, pc}
arm_func_end ov09_0233EC20
arm_func_start ov09_0233EC58
ov09_0233EC58: ; 0x0233EC58
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
bl GetDialogBoxField0xC
mov r4, r0
mov r0, #0
mov r1, r0
bl ov01_02330E38
ldr r0, [r4, #0x19c]
bl MemFree
ldr r0, [r4, #0x1a0]
bl MemFree
mov r0, r4
bl MemFree
mov r0, r5
bl sub_02028194
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov09_0233EC58
arm_func_start ov09_0233EC98
ov09_0233EC98: ; 0x0233EC98
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
bl GetDialogBoxField0xC
mov r4, r0
ldr r0, [r4, #0x1a4]
cmp r0, #3
cmpne r0, #4
cmpne r0, #8
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, #1
mov r2, #0
strb r0, [r4, #0x1a8]
strb r2, [r4, #0x1a9]
mov r0, r5
sub r1, r2, #4
str r2, [r4, #0x1ac]
bl sub_0202830C
mov r0, r5
add r1, r4, #8
bl sub_02028948
mov r0, #5
str r0, [r4, #0x1a4]
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov09_0233EC98
arm_func_start ov09_0233ECFC
ov09_0233ECFC: ; 0x0233ECFC
stmdb sp!, {r3, lr}
bl GetDialogBoxField0xC
ldr r0, [r0, #0x1a4]
cmp r0, #7
cmpne r0, #8
movne r0, #1
moveq r0, #0
ldmia sp!, {r3, pc}
arm_func_end ov09_0233ECFC
arm_func_start ov09_0233ED1C
ov09_0233ED1C: ; 0x0233ED1C
stmdb sp!, {r4, lr}
bl GetDialogBoxField0xC
ldrb r1, [r0, #0x1a8]
cmp r1, #0
beq _0233ED7C
ldr r1, [r0, #4]
ldrb r1, [r1, #0x14]
cmp r1, #0
ldrne r4, [r0, #0x1a0]
ldrb r1, [r0, #0x1a9]
ldreq r4, [r0, #0x19c]
add r0, r0, #8
cmp r1, #0
beq _0233ED68
bl sub_0203258C
add r0, r0, r0, lsl #6
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x100]
ldmia sp!, {r4, pc}
_0233ED68:
bl sub_02032578
add r0, r0, r0, lsl #6
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x100]
ldmia sp!, {r4, pc}
_0233ED7C:
mov r0, #0
ldmia sp!, {r4, pc}
arm_func_end ov09_0233ED1C
arm_func_start ov09_0233ED84
ov09_0233ED84: ; 0x0233ED84
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x34
mov r6, r0
ldr r4, [r6, #0xc]
ldr r0, [r4, #0x1a4]
cmp r0, #6
addls pc, pc, r0, lsl #2
b _0233F12C
_0233EDA4: ; jump table
b _0233EDC0 ; case 0
b _0233EDD8 ; case 1
b _0233EDEC ; case 2
b _0233EE4C ; case 3
b _0233F094 ; case 4
b _0233F0A4 ; case 5
b _0233F0F4 ; case 6
_0233EDC0:
ldrsb r0, [r6, #0x10]
bl sub_0202810C
cmp r0, #0
beq _0233F12C
mov r0, #2
str r0, [r4, #0x1a4]
_0233EDD8:
ldr r0, [r4, #0x1a4]
cmp r0, #1
moveq r0, #2
streq r0, [r4, #0x1a4]
beq _0233F12C
_0233EDEC:
mov r0, r6
bl ov09_0233F138
ldr r0, [r4, #0x100]
tst r0, #0x800000
beq _0233EE28
mov r0, #8
str r0, [r4, #0x1a4]
mov r1, #1
mov r0, #0
strb r1, [r4, #0x1a8]
strb r0, [r4, #0x1a9]
str r0, [r4, #0x1ac]
sub r0, r0, #4
str r0, [r6, #0xb8]
b _0233F12C
_0233EE28:
mov r1, #3
mov r0, #0
str r1, [r4, #0x1a4]
strb r0, [r4, #0x1a8]
strb r0, [r4, #0x1a9]
str r0, [r4, #0x1ac]
sub r0, r0, #1
str r0, [r6, #0xb8]
b _0233F12C
_0233EE4C:
bl sub_02003B5C
cmp r0, #0
moveq r3, #1
movne r3, #0
add r1, sp, #0xc
add r2, sp, #0x10
add r0, r4, #8
and r3, r3, #0xff
bl sub_02031C98
ldr r1, [sp, #0xc]
mov r5, r0
cmp r1, #0
bne _0233EECC
ldr r0, [r4, #0x100]
tst r0, #1
beq _0233EECC
mov r3, #0
ldr r2, _0233F134 ; =0x00000408
add r1, sp, #0x10
str r3, [sp]
mov ip, #1
add r0, r4, #8
str ip, [sp, #4]
bl sub_02032160
movs r1, r0
bmi _0233EECC
add r0, r4, #8
bl sub_02032684
ldr r0, [sp, #0xc]
mov r5, #1
orr r0, r0, #1
str r0, [sp, #0xc]
_0233EECC:
ldr r0, [sp, #0xc]
cmp r0, #0
bne _0233EEEC
add r1, sp, #0xc
add r2, sp, #0x10
add r0, r4, #8
bl sub_02033758
orr r5, r5, r0
_0233EEEC:
add r0, r4, #8
bl sub_02032578
mov r2, r0
ldr r1, [sp, #0xc]
add r0, r4, #8
mov r3, #0
bl sub_020323F8
orrs r0, r5, r0
beq _0233EF18
mov r0, r6
bl ov09_0233F138
_0233EF18:
ldr r2, [sp, #0xc]
tst r2, #1
beq _0233EFBC
add r0, r4, #8
bl sub_02032578
ldr r2, [r4, #4]
ldrb r1, [r2, #0x15]
cmp r1, #0
cmpne r0, #3
beq _0233EF58
mov r0, r2
bl ov09_0233DB84
add r0, r4, #8
mov r1, #2
bl sub_02032960
b _0233F078
_0233EF58:
add r0, r4, #8
bl IsMenuOptionActive
cmp r0, #0
beq _0233EFAC
ldr r0, [r4, #0x100]
tst r0, #0x80000000
bne _0233EF80
add r0, r4, #8
mov r1, #0
bl sub_02032960
_0233EF80:
mov r1, #1
mov r0, #0
strb r1, [r4, #0x1a8]
strb r0, [r4, #0x1a9]
ldr r1, [sp, #0xc]
sub r0, r0, #4
str r1, [r4, #0x1ac]
str r0, [r6, #0xb8]
mov r0, #4
str r0, [r4, #0x1a4]
b _0233F078
_0233EFAC:
add r0, r4, #8
mov r1, #2
bl sub_02032960
b _0233F078
_0233EFBC:
tst r2, #2
beq _0233F01C
ldr r0, [r4, #4]
ldrb r1, [r0, #0x15]
cmp r1, #0
beq _0233EFE8
bl ov09_0233DB84
add r0, r4, #8
mov r1, #2
bl sub_02032960
b _0233F078
_0233EFE8:
add r0, r4, #8
mov r1, #1
bl sub_02032960
mov r0, #1
strb r0, [r4, #0x1a8]
strb r0, [r4, #0x1a9]
ldr r1, [sp, #0xc]
sub r0, r0, #6
str r1, [r4, #0x1ac]
str r0, [r6, #0xb8]
mov r0, #4
str r0, [r4, #0x1a4]
b _0233F078
_0233F01C:
add r0, sp, #8
str r0, [sp]
ldr r0, [r4, #4]
add r1, r4, #8
mov r3, #0
bl ov09_0233DB90
cmp r0, #0
beq _0233F064
mov r1, #1
mov r0, #0
strb r1, [r4, #0x1a8]
strb r0, [r4, #0x1a9]
ldr r1, [sp, #0xc]
sub r0, r0, #4
str r1, [r4, #0x1ac]
str r0, [r6, #0xb8]
mov r0, #4
str r0, [r4, #0x1a4]
_0233F064:
ldrb r0, [sp, #8]
cmp r0, #0
beq _0233F078
mov r0, r6
bl ov09_0233F138
_0233F078:
ldrsb r0, [r6, #0x10]
add r1, r4, #8
bl sub_02028948
ldr r1, [r4, #4]
mov r0, #3
bl ov01_02330E38
b _0233F12C
_0233F094:
add r0, r4, #8
bl sub_02032070
cmp r0, #0
bne _0233F12C
_0233F0A4:
ldrb r0, [r4, #0x1a9]
cmp r0, #0
bne _0233F0D8
ldr r0, [r4, #0x100]
tst r0, #0x400000
beq _0233F0EC
mov r0, r6
bl ov09_0233F138
mvn r0, #3
str r0, [r6, #0xb8]
mov r0, #8
str r0, [r4, #0x1a4]
b _0233F12C
_0233F0D8:
ldrb r0, [r4, #0x1b0]
cmp r0, #0
movne r0, #8
strne r0, [r4, #0x1a4]
bne _0233F12C
_0233F0EC:
mov r0, #6
str r0, [r4, #0x1a4]
_0233F0F4:
mov r0, #0
mov r1, r0
bl ov01_02330E38
ldrsb r0, [r6, #0x10]
bl sub_0202812C
cmp r0, #0
beq _0233F12C
ldrb r0, [r4, #0x1a9]
cmp r0, #0
mvnne r0, #4
mvneq r0, #3
str r0, [r6, #0xb8]
mov r0, #7
str r0, [r4, #0x1a4]
_0233F12C:
add sp, sp, #0x34
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
_0233F134: .word 0x00000408
arm_func_end ov09_0233ED84
arm_func_start ov09_0233F138
ov09_0233F138: ; 0x0233F138
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
mov sl, r0
ldr r4, [sl, #0xc]
mov r7, #0
ldr r0, [r4, #0x100]
ldr r5, [r4, #0x19c]
tst r0, #0x200
ldrne r8, [r4, #0x164]
ldrsb r0, [sl, #0x10]
ldr r6, [r4, #0x1a0]
moveq r8, #0
bl sub_02027B1C
b _0233F1DC
_0233F16C:
mov r1, #0
cmp r8, #0
beq _0233F188
ldrb r0, [r8]
add r8, r8, #1
tst r0, #2
movne r1, #1
_0233F188:
ldr r0, [r4, #4]
ldrb r0, [r0, #0x14]
cmp r0, #0
movne fp, r6
moveq fp, r5
cmp r1, #0
movne sb, #0x42
moveq sb, #0x44
mov r1, r7
add r0, r4, #8
bl sub_020328D8
and r1, sb, #0xff
str r1, [sp]
mov r2, r0
ldrsb r0, [sl, #0x10]
mov r3, fp
mov r1, #0xd
bl sub_020263C8
add r7, r7, #1
add r5, r5, #0x104
add r6, r6, #0x104
_0233F1DC:
mov r0, r5
bl sub_0202A66C
cmp r0, #0
beq _0233F16C
ldrsb r1, [sl, #0x10]
add r0, r4, #8
bl sub_0202A03C
ldrsb r0, [sl, #0x10]
bl sub_02027AF0
ldr r1, [r4, #4]
mov r0, #3
bl ov01_02330E38
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
arm_func_end ov09_0233F138
arm_func_start ov09_0233F210
ov09_0233F210: ; 0x0233F210
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x28
mov r7, r0
mov r6, r1
mov r0, #0x2b0
mov r1, #8
mov r5, r2
mov r8, r3
bl MemAlloc
mov r4, r0
ldrh r1, [sp, #0x40]
str r8, [r4, #4]
add r0, r4, #0x100
strh r1, [r0, #0xa0]
mov r1, #0
str r1, [sp]
ldrh r2, [r0, #0xa0]
ldr r3, _0233F3B4 ; =0x0000C402
add r0, r4, #0x1a8
mov r1, #0x100
bl PreprocessStringFromMessageId
add r0, r4, #0x1a8
bl sub_020265A8
cmp r7, #0
mov ip, r0
ldreq r0, _0233F3B8 ; =0x0233F7B4
str ip, [r4, #0x1a4]
addeq r7, sp, #0x18
ldmeqia r0, {r0, r1, r2, r3}
stmeqia r7, {r0, r1, r2, r3}
addne lr, sp, #0x18
ldmneia r7, {r0, r1, r2, r3}
stmneia lr, {r0, r1, r2, r3}
ldrne r0, _0233F3BC ; =ov09_0233F3FC
str r4, [sp, #0x24]
strne r0, [sp, #0x18]
ldrb r0, [sp, #0x1e]
cmp r0, #0
addeq r1, ip, #7
moveq r0, r1, asr #2
addeq r0, r1, r0, lsr #29
moveq r0, r0, asr #3
streqb r0, [sp, #0x1e]
ldrb r0, [sp, #0x1f]
cmp r0, #0
moveq r0, #2
streqb r0, [sp, #0x1f]
tst r6, #0x200000
ldrneb r1, [sp, #0x1c]
ldrneb r0, [sp, #0x1e]
subne r0, r1, r0
strneb r0, [sp, #0x1c]
tst r6, #0x100000
ldrneb r1, [sp, #0x1d]
ldrneb r0, [sp, #0x1f]
subne r0, r1, r0
strneb r0, [sp, #0x1d]
ldrb r1, [sp, #0x1e]
ldr r0, [r4, #0x1a4]
rsb r0, r0, r1, lsl #3
add r0, r0, r0, lsr #31
mov r0, r0, asr #1
str r0, [r4, #0x2ac]
ldrb r0, [sp, #0x1f]
mov r0, r0, lsl #3
sub r0, r0, #0xc
add r0, r0, r0, lsr #31
mov r0, r0, asr #1
str r0, [r4, #0x2a8]
ldr r0, [r4, #0x2ac]
cmp r0, #0
movlt r0, #0
strlt r0, [r4, #0x2ac]
ldr r0, _0233F3BC ; =ov09_0233F3FC
cmp r5, #0
str r0, [r4]
str r6, [r4, #0x100]
beq _0233F368
add ip, r4, #0x104
mov r7, #9
_0233F350:
ldmia r5!, {r0, r1, r2, r3}
stmia ip!, {r0, r1, r2, r3}
subs r7, r7, #1
bne _0233F350
ldmia r5, {r0, r1}
stmia ip, {r0, r1}
_0233F368:
mov r2, #0
add r0, sp, #0x18
mov r1, #3
str r2, [r4, #0x19c]
bl sub_02027648
add r1, sp, #8
mov r7, r0
bl sub_02028284
mov r5, #1
str r5, [sp]
add r3, sp, #8
mov r1, r6
add r0, r4, #8
add r2, r4, #0x104
str r5, [sp, #4]
bl sub_02031AF8
mov r0, r7
add sp, sp, #0x28
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_0233F3B4: .word 0x0000C402
_0233F3B8: .word 0x0233F7B4
_0233F3BC: .word ov09_0233F3FC
arm_func_end ov09_0233F210
arm_func_start ov09_0233F3C0
ov09_0233F3C0: ; 0x0233F3C0
stmdb sp!, {r4, lr}
mov r4, r0
bl GetDialogBoxField0xC
bl MemFree
mov r0, r4
bl sub_02028194
ldmia sp!, {r4, pc}
arm_func_end ov09_0233F3C0
arm_func_start ov09_0233F3DC
ov09_0233F3DC: ; 0x0233F3DC
stmdb sp!, {r3, lr}
bl GetDialogBoxField0xC
ldr r0, [r0, #0x19c]
cmp r0, #4
movne r0, #1
moveq r0, #0
and r0, r0, #0xff
ldmia sp!, {r3, pc}
arm_func_end ov09_0233F3DC
arm_func_start ov09_0233F3FC
ov09_0233F3FC: ; 0x0233F3FC
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x2c
mov r5, r0
ldr r4, [r5, #0xc]
ldr r0, [r4, #0x19c]
cmp r0, #3
addls pc, pc, r0, lsl #2
b _0233F564
_0233F41C: ; jump table
b _0233F42C ; case 0
b _0233F444 ; case 1
b _0233F48C ; case 2
b _0233F548 ; case 3
_0233F42C:
ldrsb r0, [r5, #0x10]
bl sub_0202810C
cmp r0, #0
beq _0233F564
mov r0, #1
str r0, [r4, #0x19c]
_0233F444:
ldrsb r0, [r5, #0x10]
ldr r6, [r5, #0xc]
bl sub_02027B1C
ldrsb r0, [r5, #0x10]
ldr r1, [r6, #0x2ac]
ldr r2, [r6, #0x2a8]
add r3, r6, #0x1a8
bl sub_02026214
ldrsb r0, [r5, #0x10]
bl sub_02027AF0
ldr r1, [r6, #4]
mov r0, #1
bl ov01_02330E38
mov r0, #2
str r0, [r4, #0x19c]
sub r0, r0, #3
str r0, [r5, #0xb8]
b _0233F564
_0233F48C:
bl sub_02003B5C
cmp r0, #0
movne r5, #0
bne _0233F4AC
ldr r1, [r4, #0x100]
add r0, sp, #8
bl sub_02031914
mov r5, r0
_0233F4AC:
tst r5, #0xf3
beq _0233F4CC
ldr r0, [r4, #4]
bl ov09_0233DB84
ldr r0, [r4, #0x100]
mov r1, #2
bl sub_02031A3C
b _0233F538
_0233F4CC:
tst r5, #0x100
beq _0233F4EC
ldr r0, [r4, #0x100]
mov r1, #0
bl sub_02031A3C
mov r0, #3
str r0, [r4, #0x19c]
b _0233F538
_0233F4EC:
add r0, sp, #8
mov r1, #2
mov r2, #0
bl sub_02006C8C
cmp r0, #0
beq _0233F51C
ldr r0, [r4, #0x100]
mov r1, #2
bl sub_02031A3C
ldr r0, [r4, #4]
bl ov09_0233DB84
b _0233F538
_0233F51C:
add r0, sp, #4
str r0, [sp]
ldr r0, [r4, #4]
mov r2, r5
add r1, r4, #8
mov r3, #0
bl ov09_0233DB90
_0233F538:
ldr r1, [r4, #4]
mov r0, #1
bl ov01_02330E38
b _0233F564
_0233F548:
ldrsb r0, [r5, #0x10]
bl sub_0202812C
cmp r0, #0
mvnne r0, #4
strne r0, [r5, #0xb8]
movne r0, #4
strne r0, [r4, #0x19c]
_0233F564:
add sp, sp, #0x2c
ldmia sp!, {r3, r4, r5, r6, pc}
arm_func_end ov09_0233F3FC
; 0x0233F56C
.byte 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0A, 0x0C, 0x02, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x0C, 0x02, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x1C, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x1C, 0x02, 0x00, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xF3, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xF5, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0xF6, 0x04, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xF7, 0x04, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0xF8, 0x04, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xF9, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xF4, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0xF5, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xF6, 0x04, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
.byte 0xF7, 0x04, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xF8, 0x04, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00
.byte 0xF9, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x6C, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00
.byte 0x75, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x06, 0x00, 0x45, 0x00
.byte 0x15, 0x00, 0x0E, 0x00, 0x82, 0x00, 0x07, 0x00, 0x49, 0x00, 0x46, 0x00, 0x08, 0x00, 0x16, 0x00
.byte 0x05, 0x00, 0x09, 0x00, 0x83, 0x00, 0x4A, 0x00, 0x4C, 0x00, 0x17, 0x00, 0x0F, 0x00, 0x4E, 0x00
.byte 0x04, 0x00, 0x0D, 0x00, 0x4F, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x86, 0x00, 0x9F, 0x00, 0xA0, 0x00
.byte 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x20, 0x00
.byte 0x21, 0x00, 0x0B, 0x00, 0x85, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00
.byte 0x48, 0x00, 0x50, 0x00, 0x51, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00
.byte 0x2C, 0x00, 0x4B, 0x00, 0x3D, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, 0x00, 0x11, 0x00
.byte 0x4D, 0x00, 0x52, 0x00, 0x53, 0x00, 0x32, 0x00, 0x33, 0x00, 0x6C, 0x00, 0x84, 0x00, 0x10, 0x00
.byte 0x54, 0x00, 0x55, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x56, 0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00
.byte 0x5B, 0x00, 0x34, 0x00, 0x0A, 0x00, 0xB1, 0x00, 0x9B, 0x00, 0x5F, 0x00, 0x9C, 0x00, 0x61, 0x00
.byte 0x9D, 0x00, 0x9E, 0x00, 0x35, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x12, 0x00, 0x39, 0x00
.byte 0x3A, 0x00, 0x3B, 0x00, 0x7B, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x37, 0x00, 0x2D, 0x00, 0x91, 0x00
.byte 0x03, 0x00, 0x81, 0x00, 0x87, 0x00, 0x88, 0x00, 0x89, 0x00, 0x8D, 0x00, 0x8E, 0x00, 0x8A, 0x00
.byte 0x5E, 0x00, 0xB0, 0x00, 0x92, 0x00, 0x93, 0x00, 0xA2, 0x00, 0xA3, 0x00, 0xA4, 0x00, 0x62, 0x00
.byte 0x63, 0x00, 0x8C, 0x00, 0xA6, 0x00, 0x60, 0x00, 0x8B, 0x00, 0xA1, 0x00, 0x8F, 0x00, 0x90, 0x00
.byte 0xA5, 0x00, 0xA7, 0x00, 0x94, 0x00, 0x95, 0x00, 0x96, 0x00, 0x97, 0x00, 0xA8, 0x00, 0x98, 0x00
.byte 0xA9, 0x00, 0x99, 0x00, 0x9A, 0x00, 0xAA, 0x00, 0xAB, 0x00, 0xAE, 0x00, 0xAC, 0x00, 0xAF, 0x00
.byte 0xAD, 0x00, 0x00, 0x00, 0x42, 0x41, 0x43, 0x4B, 0x2F, 0x73, 0x31, 0x38, 0x70, 0x30, 0x32, 0x61
.byte 0x2E, 0x62, 0x67, 0x70, 0x00, 0x00, 0x00, 0x00, 0xDC, 0xE3, 0x33, 0x02, 0x1E, 0x0F, 0x00, 0x00
.byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0xED, 0x33, 0x02, 0x1E, 0x0F, 0x00, 0x00
.byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF3, 0x33, 0x02, 0x0A, 0x08, 0x0C, 0x02
.byte 0x00, 0xFF, 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