mirror of
https://github.com/pret/pmd-sky.git
synced 2026-04-26 00:26:19 -05:00
2462 lines
59 KiB
ArmAsm
2462 lines
59 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_09.inc"
|
|
.include "global.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_02017EE8
|
|
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
|
|
ldmdb 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
|
|
ldmeqdb sp!, {r3, pc}
|
|
bl MemFree
|
|
ldr r0, _0233CBF4 ; =0x0233F7E0
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
bl sub_02003BC8
|
|
ldmdb 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
|
|
ldmdb 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]
|
|
ldmdb sp!, {r3, r4, r5, pc}
|
|
_0233D9D0:
|
|
mov r0, #0
|
|
str r0, [r5, #4]
|
|
ldmdb 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
|
|
ldmeqdb sp!, {r4, pc}
|
|
bl sub_02017DF4
|
|
mov r1, #1
|
|
mov r0, #0
|
|
strb r1, [r4, #0x14]
|
|
str r0, [r4, #0x20]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0x24]
|
|
ldmdb 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_02017EE8
|
|
mov r0, #0
|
|
strb r0, [r4, #0x14]
|
|
sub r0, r0, #1
|
|
str r0, [r4, #0x20]
|
|
str r0, [r4, #0x24]
|
|
ldmdb 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
|
|
ldmeqdb 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
|
|
ldmeqdb sp!, {r3, pc}
|
|
bl ov09_0233D9F8
|
|
ldmdb 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
|
|
ldmeqdb 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
|
|
ldmdb 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
|
|
ldmeqdb sp!, {r4, pc}
|
|
mov r0, r4
|
|
bl ov09_0233D9F8
|
|
ldmdb 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_02017F28
|
|
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
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb 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]
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb sp!, {r3, pc}
|
|
_0233E3D4:
|
|
mov r0, #0
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb 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]
|
|
ldmdb sp!, {r4, pc}
|
|
_0233ED68:
|
|
bl sub_02032578
|
|
add r0, r0, r0, lsl #6
|
|
add r0, r4, r0, lsl #2
|
|
ldr r0, [r0, #0x100]
|
|
ldmdb sp!, {r4, pc}
|
|
_0233ED7C:
|
|
mov r0, #0
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb 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
|
|
ldmdb sp!, {r3, r4, r5, r6, pc}
|
|
arm_func_end ov09_0233F3FC
|
|
; 0x0233F56C
|