mirror of
https://github.com/pret/pmd-sky.git
synced 2026-04-26 08:35:04 -05:00
697 lines
22 KiB
ArmAsm
697 lines
22 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_26.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
arm_func_start ov26_0238A140
|
|
ov26_0238A140: ; 0x0238A140
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x10
|
|
add r0, sp, #0
|
|
bl sub_0204F158
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
beq _0238A528
|
|
add r1, sp, #0xc
|
|
add r2, sp, #8
|
|
mov r0, #2
|
|
bl sub_0204C5DC
|
|
ldr r0, [sp, #8]
|
|
mov r0, r0, lsl #0x18
|
|
mov r0, r0, asr #0x18
|
|
bl GetAcceptedMission
|
|
mov r5, r0
|
|
ldrb r2, [sp]
|
|
add r0, sp, #2
|
|
mov r1, r5
|
|
bl sub_0205F118
|
|
cmp r0, #0
|
|
bne _0238A1A8
|
|
mvn r0, #0
|
|
bl ov11_022E6E8C
|
|
mov r0, #0
|
|
b _0238A528
|
|
_0238A1A8:
|
|
mov r0, #0x9c
|
|
mov r1, #8
|
|
bl MemAlloc
|
|
ldr r1, _0238A530 ; =0x0238AF60
|
|
mov r4, #0
|
|
str r0, [r1]
|
|
str r4, [r0]
|
|
ldr r3, [sp, #8]
|
|
ldr r2, [r1]
|
|
mov r0, r4
|
|
strb r3, [r2, #0x8c]
|
|
ldr r2, [r1]
|
|
mov r1, #0x68
|
|
str r5, [r2, #0x90]
|
|
ldrb r2, [r5, #1]
|
|
bl SaveScriptVariableValue
|
|
ldrb r2, [r5, #2]
|
|
mov r0, r4
|
|
mov r1, #0x69
|
|
bl SaveScriptVariableValue
|
|
ldr r0, _0238A530 ; =0x0238AF60
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x90]
|
|
bl sub_0205F9D4
|
|
ldr r0, _0238A530 ; =0x0238AF60
|
|
ldr r0, [r0]
|
|
add r0, r0, #8
|
|
bl InitPreprocessorArgs
|
|
ldr r0, _0238A530 ; =0x0238AF60
|
|
mov r2, r4
|
|
ldr r3, [r0]
|
|
ldr r1, [r3, #0x90]
|
|
ldrsh r1, [r1, #0xe]
|
|
str r1, [r3, #8]
|
|
ldr r3, [r0]
|
|
ldr r1, [r3, #0x90]
|
|
ldrsh r1, [r1, #0x10]
|
|
str r1, [r3, #0xc]
|
|
ldr r3, [r0]
|
|
ldr r1, [r3, #0x90]
|
|
ldrsh r1, [r1, #0x14]
|
|
str r1, [r3, #0x18]
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x2c]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x60
|
|
bl sub_0206351C
|
|
ldr r0, _0238A530 ; =0x0238AF60
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, #0x90]
|
|
add r1, r1, #0x60
|
|
bl sub_02062E5C
|
|
ldr r0, _0238A530 ; =0x0238AF60
|
|
mov r3, #2
|
|
ldr r1, [r0]
|
|
mov r2, r4
|
|
str r3, [r1, #0x5c]
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x98]
|
|
ldrsh r1, [sp, #4]
|
|
cmp r1, #0
|
|
ldrne r0, [r0]
|
|
ldrne r0, [r0, #0x90]
|
|
ldrneb r0, [r0, #1]
|
|
cmpne r0, #0xa
|
|
beq _0238A2B8
|
|
ldrsh r0, [sp, #4]
|
|
bl IncrementExclusiveMonsterCounts
|
|
_0238A2B8:
|
|
ldrsh r0, [sp, #6]
|
|
cmp r0, #0
|
|
beq _0238A2CC
|
|
ldrsh r0, [sp, #6]
|
|
bl IncrementExclusiveMonsterCounts
|
|
_0238A2CC:
|
|
ldr r0, _0238A530 ; =0x0238AF60
|
|
ldr r1, [r0]
|
|
ldr r2, [r1, #0x90]
|
|
ldrb r2, [r2, #1]
|
|
cmp r2, #0xc
|
|
addls pc, pc, r2, lsl #2
|
|
b _0238A504
|
|
_0238A2E8: ; jump table
|
|
b _0238A31C ; case 0
|
|
b _0238A328 ; case 1
|
|
b _0238A334 ; case 2
|
|
b _0238A340 ; case 3
|
|
b _0238A504 ; case 4
|
|
b _0238A504 ; case 5
|
|
b _0238A34C ; case 6
|
|
b _0238A358 ; case 7
|
|
b _0238A364 ; case 8
|
|
b _0238A370 ; case 9
|
|
b _0238A37C ; case 10
|
|
b _0238A3A0 ; case 11
|
|
b _0238A4C4 ; case 12
|
|
_0238A31C:
|
|
ldr r0, _0238A534 ; =0x0238AE92
|
|
str r0, [r1, #0x94]
|
|
b _0238A50C
|
|
_0238A328:
|
|
ldr r0, _0238A538 ; =0x0238AE86
|
|
str r0, [r1, #0x94]
|
|
b _0238A50C
|
|
_0238A334:
|
|
ldr r0, _0238A53C ; =0x0238AE7A
|
|
str r0, [r1, #0x94]
|
|
b _0238A50C
|
|
_0238A340:
|
|
ldr r0, _0238A540 ; =0x0238AE6E
|
|
str r0, [r1, #0x94]
|
|
b _0238A50C
|
|
_0238A34C:
|
|
ldr r0, _0238A544 ; =0x0238AE56
|
|
str r0, [r1, #0x94]
|
|
b _0238A50C
|
|
_0238A358:
|
|
ldr r0, _0238A548 ; =0x0238AE62
|
|
str r0, [r1, #0x94]
|
|
b _0238A50C
|
|
_0238A364:
|
|
ldr r0, _0238A54C ; =0x0238AE4A
|
|
str r0, [r1, #0x94]
|
|
b _0238A50C
|
|
_0238A370:
|
|
ldr r0, _0238A550 ; =0x0238AE3E
|
|
str r0, [r1, #0x94]
|
|
b _0238A50C
|
|
_0238A37C:
|
|
mov r2, #3
|
|
str r2, [r1, #0x5c]
|
|
ldr r1, [r0]
|
|
mov r2, #0x1f8
|
|
strh r2, [r1, #0x60]
|
|
ldr r0, [r0]
|
|
ldr r1, _0238A554 ; =0x0238AE32
|
|
str r1, [r0, #0x94]
|
|
b _0238A50C
|
|
_0238A3A0:
|
|
mov r2, #4
|
|
str r2, [r1, #0x5c]
|
|
ldr r2, [r0]
|
|
ldr r1, [r2, #0x90]
|
|
ldrb r1, [r1, #2]
|
|
str r1, [r2, #0x98]
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x98]
|
|
and r0, r0, #0xff
|
|
bl SetChallengeLetterCleared
|
|
ldr r0, _0238A530 ; =0x0238AF60
|
|
ldr r2, [r0]
|
|
ldr r1, [r2, #0x98]
|
|
cmp r1, #0
|
|
ldreq r0, _0238A558 ; =0x0238AE9E
|
|
streq r0, [r2, #0x94]
|
|
beq _0238A50C
|
|
ldr r4, [r2, #0x88]
|
|
ldr r1, _0238A55C ; =0x0238AE20
|
|
str r1, [r2, #0x94]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x60
|
|
bl sub_0206351C
|
|
ldr r0, _0238A530 ; =0x0238AF60
|
|
ldr r2, [r0]
|
|
ldr r1, [r2, #0x90]
|
|
ldrsh r1, [r1, #0xe]
|
|
strh r1, [r2, #0x60]
|
|
ldr r1, [r0]
|
|
str r4, [r1, #0x88]
|
|
ldr r2, [r0]
|
|
ldr r1, [r2, #0x90]
|
|
ldrb r0, [r1, #1]
|
|
cmp r0, #0xb
|
|
bne _0238A458
|
|
ldrb r0, [r1, #2]
|
|
add r0, r0, #0xff
|
|
and r0, r0, #0xff
|
|
cmp r0, #4
|
|
bhi _0238A458
|
|
add r0, r1, #4
|
|
bl GetOutlawLeaderLevel
|
|
ldr r1, _0238A530 ; =0x0238AF60
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x64]
|
|
b _0238A460
|
|
_0238A458:
|
|
mov r0, #1
|
|
str r0, [r2, #0x64]
|
|
_0238A460:
|
|
ldr r0, _0238A530 ; =0x0238AF60
|
|
mov r1, #0
|
|
arm_func_end ov26_0238A140
|
|
|
|
arm_func_start ov26_0238A468
|
|
ov26_0238A468: ; 0x0238A468
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x90]
|
|
ldrsh r0, [r0, #0xe]
|
|
bl IsMonsterOnTeam
|
|
cmp r0, #0
|
|
beq _0238A4A0
|
|
ldr r0, _0238A530 ; =0x0238AF60
|
|
mov r3, #0
|
|
ldr r2, [r0]
|
|
mov r1, #0x3e8
|
|
strb r3, [r2, #0x62]
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x68]
|
|
b _0238A50C
|
|
_0238A4A0:
|
|
ldr r0, _0238A530 ; =0x0238AF60
|
|
mov r1, #6
|
|
ldr r3, [r0]
|
|
ldr r2, [r3, #0x90]
|
|
ldrsh r2, [r2, #0xe]
|
|
strh r2, [r3, #0x84]
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x62]
|
|
b _0238A50C
|
|
_0238A4C4:
|
|
add r0, r1, #0x60
|
|
ldr r4, [r1, #0x88]
|
|
bl sub_0206351C
|
|
ldr r0, _0238A530 ; =0x0238AF60
|
|
ldr r2, _0238A560 ; =0x000001E3
|
|
ldr r1, [r0]
|
|
mov r3, #0
|
|
strh r2, [r1, #0x60]
|
|
ldr r2, [r0]
|
|
ldr r1, _0238A55C ; =0x0238AE20
|
|
strb r3, [r2, #0x62]
|
|
ldr r2, [r0]
|
|
str r4, [r2, #0x88]
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x94]
|
|
b _0238A50C
|
|
_0238A504:
|
|
ldr r0, _0238A564 ; =0x0238AE26
|
|
str r0, [r1, #0x94]
|
|
_0238A50C:
|
|
ldr r1, _0238A530 ; =0x0238AF60
|
|
mvn r3, #1
|
|
ldr r2, [r1]
|
|
mov r0, #1
|
|
strb r3, [r2, #4]
|
|
ldr r1, [r1]
|
|
strb r3, [r1, #5]
|
|
_0238A528:
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0238A530: .word 0x0238AF60
|
|
_0238A534: .word 0x0238AE92
|
|
_0238A538: .word 0x0238AE86
|
|
_0238A53C: .word 0x0238AE7A
|
|
_0238A540: .word 0x0238AE6E
|
|
_0238A544: .word 0x0238AE56
|
|
_0238A548: .word 0x0238AE62
|
|
_0238A54C: .word 0x0238AE4A
|
|
_0238A550: .word 0x0238AE3E
|
|
_0238A554: .word 0x0238AE32
|
|
_0238A558: .word 0x0238AE9E
|
|
_0238A55C: .word 0x0238AE20
|
|
_0238A560: .word 0x000001E3
|
|
_0238A564: .word 0x0238AE26
|
|
arm_func_end ov26_0238A468
|
|
|
|
arm_func_start ov26_0238A568
|
|
ov26_0238A568: ; 0x0238A568
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238A59C ; =0x0238AF60
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl ov26_0238A90C
|
|
ldr r0, _0238A59C ; =0x0238AF60
|
|
ldr r0, [r0]
|
|
bl MemFree
|
|
ldr r0, _0238A59C ; =0x0238AF60
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238A59C: .word 0x0238AF60
|
|
arm_func_end ov26_0238A568
|
|
_0238A5A0:
|
|
.byte 0xF8, 0x40, 0x2D, 0xE9, 0x10, 0xD0, 0x4D, 0xE2, 0x48, 0x03, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5
|
|
.byte 0x00, 0x00, 0x91, 0xE5, 0x07, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0xCA, 0x00, 0x00, 0xEA
|
|
.byte 0x11, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x95, 0x00, 0x00, 0xEA, 0xA4, 0x00, 0x00, 0xEA
|
|
.byte 0xAA, 0x00, 0x00, 0xEA, 0xB3, 0x00, 0x00, 0xEA, 0xB9, 0x00, 0x00, 0xEA, 0xBE, 0x00, 0x00, 0xEA
|
|
.byte 0xD4, 0x00, 0xD1, 0xE1, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x02, 0x00, 0x00, 0x0A
|
|
.byte 0xE2, 0x92, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xBB, 0x00, 0x00, 0x1A, 0xF4, 0x02, 0x9F, 0xE5
|
|
.byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0xE4, 0x12, 0x9F, 0xE5
|
|
.byte 0x00, 0x20, 0x91, 0xE5, 0x94, 0x70, 0x92, 0xE5, 0x06, 0x00, 0x87, 0xE2, 0x94, 0x00, 0x82, 0xE5
|
|
.byte 0xB4, 0x40, 0xD7, 0xE1, 0x00, 0x00, 0x54, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x72, 0x00, 0x00, 0x0A
|
|
.byte 0xC4, 0x02, 0x9F, 0xE5, 0x01, 0x60, 0xA0, 0xE3, 0x00, 0x00, 0x54, 0xE1, 0x00, 0x00, 0x91, 0x05
|
|
.byte 0x98, 0x00, 0x90, 0x05, 0x00, 0x00, 0x84, 0x00, 0x00, 0x08, 0xA0, 0x01, 0x20, 0x48, 0xA0, 0x01
|
|
.byte 0xD0, 0x00, 0xD7, 0xE1, 0x05, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x35, 0x00, 0x00, 0xEA
|
|
.byte 0x04, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA, 0x12, 0x00, 0x00, 0xEA, 0x19, 0x00, 0x00, 0xEA
|
|
.byte 0x21, 0x00, 0x00, 0xEA, 0x29, 0x00, 0x00, 0xEA, 0x78, 0x02, 0x9F, 0xE5, 0x7C, 0x22, 0x9F, 0xE5
|
|
.byte 0x00, 0x10, 0x90, 0xE5, 0x3C, 0x00, 0xA0, 0xE3, 0x54, 0x20, 0x81, 0xE5, 0xB8, 0x6C, 0xF3, 0xEB
|
|
.byte 0x00, 0x50, 0xA0, 0xE1, 0x2C, 0x00, 0x00, 0xEA, 0x58, 0x02, 0x9F, 0xE5, 0x60, 0x22, 0x9F, 0xE5
|
|
.byte 0x00, 0x10, 0x90, 0xE5, 0x3D, 0x00, 0xA0, 0xE3, 0x54, 0x20, 0x81, 0xE5, 0xB0, 0x6C, 0xF3, 0xEB
|
|
.byte 0x00, 0x50, 0xA0, 0xE1, 0x24, 0x00, 0x00, 0xEA, 0x38, 0x02, 0x9F, 0xE5, 0x44, 0x22, 0x9F, 0xE5
|
|
.byte 0x00, 0x10, 0x90, 0xE5, 0x3F, 0x00, 0xA0, 0xE3, 0x54, 0x20, 0x81, 0xE5, 0xA8, 0x6C, 0xF3, 0xEB
|
|
.byte 0x00, 0x50, 0xA0, 0xE1, 0x1C, 0x00, 0x00, 0xEA, 0x18, 0x02, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5
|
|
.byte 0x90, 0x10, 0x92, 0xE5, 0xFE, 0x10, 0xD1, 0xE1, 0x54, 0x10, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5
|
|
.byte 0x90, 0x00, 0x90, 0xE5, 0xFE, 0x50, 0xD0, 0xE1, 0x13, 0x00, 0x00, 0xEA, 0xF4, 0x01, 0x9F, 0xE5
|
|
.byte 0x00, 0x20, 0x90, 0xE5, 0x90, 0x10, 0x92, 0xE5, 0xF0, 0x11, 0xD1, 0xE1, 0x54, 0x10, 0x82, 0xE5
|
|
.byte 0x00, 0x00, 0x90, 0xE5, 0x90, 0x00, 0x90, 0xE5, 0xF0, 0x51, 0xD0, 0xE1, 0x0A, 0x00, 0x00, 0xEA
|
|
.byte 0xD0, 0x01, 0x9F, 0xE5, 0x06, 0x18, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x60, 0xA0, 0xE3
|
|
.byte 0x54, 0x10, 0x80, 0xE5, 0x04, 0x00, 0x00, 0xEA, 0xB8, 0x01, 0x9F, 0xE5, 0x07, 0x18, 0xA0, 0xE3
|
|
.byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x60, 0xA0, 0xE3, 0x54, 0x10, 0x80, 0xE5, 0x00, 0x00, 0x56, 0xE3
|
|
.byte 0x16, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x8D, 0xE2, 0x0F, 0x0C, 0xF3, 0xEB, 0x00, 0x00, 0x8D, 0xE2
|
|
.byte 0x05, 0x10, 0xA0, 0xE1, 0x1A, 0x0C, 0xF3, 0xEB, 0x88, 0x11, 0x9F, 0xE5, 0x01, 0x00, 0xE0, 0xE3
|
|
.byte 0x00, 0x10, 0x91, 0xE5, 0xD5, 0x10, 0xD1, 0xE1, 0x00, 0x00, 0x51, 0xE1, 0x06, 0x00, 0x00, 0x1A
|
|
.byte 0x00, 0x00, 0xA0, 0xE3, 0x03, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE3, 0x86, 0x93, 0xF2, 0xEB
|
|
.byte 0x60, 0x11, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x05, 0x00, 0xC1, 0xE5, 0x54, 0x01, 0x9F, 0xE5
|
|
.byte 0x00, 0x10, 0x8D, 0xE2, 0x00, 0x00, 0x90, 0xE5, 0xD5, 0x00, 0xD0, 0xE1, 0xB7, 0x93, 0xF2, 0xEB
|
|
.byte 0x40, 0x11, 0x9F, 0xE5, 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x10, 0x91, 0xE5, 0xD4, 0x10, 0xD1, 0xE1
|
|
.byte 0x00, 0x00, 0x51, 0xE1, 0x04, 0x00, 0x00, 0x1A, 0x00, 0x00, 0xA0, 0xE3, 0x37, 0x92, 0xF2, 0xEB
|
|
.byte 0x20, 0x11, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x04, 0x00, 0xC1, 0xE5, 0x14, 0x01, 0x9F, 0xE5
|
|
.byte 0xB2, 0x10, 0xD7, 0xE1, 0x00, 0x30, 0x90, 0xE5, 0x04, 0x20, 0xA0, 0xE1, 0xD4, 0x00, 0xD3, 0xE1
|
|
.byte 0x08, 0x30, 0x83, 0xE2, 0x6E, 0x92, 0xF2, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x50, 0xE3
|
|
.byte 0xF0, 0x00, 0x9F, 0x15, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x00, 0x90, 0x15, 0x00, 0x10, 0x80, 0x15
|
|
.byte 0xE0, 0x00, 0x9F, 0x05, 0x02, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05
|
|
.byte 0x31, 0x00, 0x00, 0xEA, 0xD4, 0x00, 0xD1, 0xE1, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1
|
|
.byte 0x02, 0x00, 0x00, 0x0A, 0x51, 0x92, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x2A, 0x00, 0x00, 0x1A
|
|
.byte 0x31, 0x00, 0x00, 0xEB, 0xAC, 0x00, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5
|
|
.byte 0x03, 0x10, 0xA0, 0xE3, 0x58, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5
|
|
.byte 0x21, 0x00, 0x00, 0xEA, 0x58, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x40, 0xC2
|
|
.byte 0x58, 0x00, 0x81, 0xC5, 0x1C, 0x00, 0x00, 0xCA, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x81, 0xE5
|
|
.byte 0x70, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x5C, 0x10, 0x90, 0xE5
|
|
.byte 0x60, 0x00, 0x80, 0xE2, 0xE7, 0xCA, 0xF2, 0xEB, 0x58, 0x00, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE3
|
|
.byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x22, 0xCB, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3
|
|
.byte 0x40, 0x00, 0x9F, 0x05, 0x06, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05
|
|
.byte 0x09, 0x00, 0x00, 0xEA, 0xC2, 0xD1, 0xF2, 0xEB, 0x28, 0x00, 0x9F, 0xE5, 0x07, 0x10, 0xA0, 0xE3
|
|
.byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x03, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3
|
|
.byte 0x69, 0x71, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3
|
|
.byte 0x10, 0xD0, 0x8D, 0xE2, 0xF8, 0x80, 0xBD, 0xE8, 0x60, 0xAF, 0x38, 0x02, 0x6D, 0x02, 0x00, 0x00
|
|
.byte 0x3C, 0x00, 0x01, 0x00, 0x3D, 0x00, 0x01, 0x00, 0x3F, 0x00, 0x01, 0x00
|
|
|
|
arm_func_start ov26_0238A90C
|
|
ov26_0238A90C: ; 0x0238A90C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238A96C ; =0x0238AF60
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #4]
|
|
cmp r0, r1
|
|
beq _0238A93C
|
|
bl FreeDBox
|
|
ldr r0, _0238A96C ; =0x0238AF60
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #4]
|
|
_0238A93C:
|
|
ldr r0, _0238A96C ; =0x0238AF60
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #5]
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl FreePortraitBox
|
|
ldr r0, _0238A96C ; =0x0238AF60
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #5]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238A96C: .word 0x0238AF60
|
|
arm_func_end ov26_0238A90C
|
|
|
|
arm_func_start ov26_0238A970
|
|
ov26_0238A970: ; 0x0238A970
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #8
|
|
mov r1, r0
|
|
bl MemAlloc
|
|
ldr r1, _0238A998 ; =0x0238AF64
|
|
mov r2, #0
|
|
str r0, [r1]
|
|
str r2, [r0, #4]
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238A998: .word 0x0238AF64
|
|
arm_func_end ov26_0238A970
|
|
|
|
arm_func_start ov26_0238A99C
|
|
ov26_0238A99C: ; 0x0238A99C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238A9C4 ; =0x0238AF64
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl MemFree
|
|
ldr r0, _0238A9C4 ; =0x0238AF64
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238A9C4: .word 0x0238AF64
|
|
arm_func_end ov26_0238A99C
|
|
|
|
arm_func_start ov26_0238A9C8
|
|
ov26_0238A9C8: ; 0x0238A9C8
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0238AA64 ; =0x0238AF64
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
bne _0238AA5C
|
|
bl sub_0205633C
|
|
cmp r0, #0
|
|
beq _0238A9FC
|
|
mov r0, #1
|
|
bl ov11_022E6E8C
|
|
mov r0, #4
|
|
ldmia sp!, {r4, pc}
|
|
_0238A9FC:
|
|
bl GetGameMode
|
|
cmp r0, #4
|
|
bne _0238AA10
|
|
bl sub_0204E780
|
|
b _0238AA14
|
|
_0238AA10:
|
|
bl sub_0204E770
|
|
_0238AA14:
|
|
mov r4, r0
|
|
mov r0, r4
|
|
bl GetMaxItemsAllowed
|
|
bl RemoveAllItemsStartingAt
|
|
mov r0, r4
|
|
bl IsMoneyAllowed
|
|
cmp r0, #0
|
|
bne _0238AA3C
|
|
mov r0, #0
|
|
bl SetMoneyCarried
|
|
_0238AA3C:
|
|
mov r0, r4
|
|
bl sub_020577BC
|
|
mov r0, #1
|
|
bl sub_02056318
|
|
mov r0, #1
|
|
bl ov11_022E6E8C
|
|
mov r0, #4
|
|
ldmia sp!, {r4, pc}
|
|
_0238AA5C:
|
|
mov r0, #1
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0238AA64: .word 0x0238AF64
|
|
arm_func_end ov26_0238A9C8
|
|
|
|
arm_func_start ov26_0238AA68
|
|
ov26_0238AA68: ; 0x0238AA68
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #8
|
|
mov r1, r0
|
|
bl MemAlloc
|
|
ldr r1, _0238AA90 ; =0x0238AF68
|
|
mov r2, #0
|
|
str r0, [r1]
|
|
str r2, [r0, #4]
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238AA90: .word 0x0238AF68
|
|
arm_func_end ov26_0238AA68
|
|
|
|
arm_func_start ov26_0238AA94
|
|
ov26_0238AA94: ; 0x0238AA94
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238AABC ; =0x0238AF68
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl MemFree
|
|
ldr r0, _0238AABC ; =0x0238AF68
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238AABC: .word 0x0238AF68
|
|
arm_func_end ov26_0238AA94
|
|
_0238AAC0:
|
|
.byte 0x18, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x34, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5
|
|
.byte 0x04, 0x00, 0x90, 0xE5, 0x03, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x45, 0x00, 0x00, 0xEA
|
|
.byte 0x02, 0x00, 0x00, 0xEA, 0x32, 0x00, 0x00, 0xEA, 0x36, 0x00, 0x00, 0xEA, 0x3E, 0x00, 0x00, 0xEA
|
|
.byte 0x11, 0x2E, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0xD9, 0x70, 0xFD, 0xEB
|
|
.byte 0x04, 0x00, 0xA0, 0xE3, 0x3C, 0x00, 0x00, 0xEA, 0x2C, 0x01, 0xF3, 0xEB, 0x00, 0x00, 0x8D, 0xE2
|
|
.byte 0xA7, 0x11, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0xD0, 0x00, 0xDD, 0xE1
|
|
.byte 0x15, 0x43, 0xF3, 0xEB, 0x04, 0x40, 0xD0, 0xE5, 0x01, 0x00, 0x00, 0xEA, 0x5B, 0x11, 0xF3, 0xEB
|
|
.byte 0x00, 0x40, 0xA0, 0xE1, 0x25, 0x01, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x15, 0x00, 0x00, 0x0A
|
|
.byte 0x00, 0x00, 0xA0, 0xE3, 0x2B, 0x10, 0xA0, 0xE3, 0x67, 0x02, 0xF3, 0xEB, 0x00, 0x10, 0xA0, 0xE1
|
|
.byte 0x08, 0x00, 0x41, 0xE2, 0x01, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x8A, 0xA4, 0x00, 0x9F, 0xE5
|
|
.byte 0xA5, 0x05, 0xF2, 0xEB, 0xEB, 0x09, 0xF3, 0xEB, 0x2E, 0x14, 0xF3, 0xEB, 0x09, 0x00, 0x00, 0xEA
|
|
.byte 0x0A, 0x00, 0x41, 0xE2, 0x01, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x8A, 0x88, 0x00, 0x9F, 0xE5
|
|
.byte 0x9D, 0x05, 0xF2, 0xEB, 0xE3, 0x09, 0xF3, 0xEB, 0xC8, 0x15, 0xF3, 0xEB, 0x01, 0x00, 0x00, 0xEA
|
|
.byte 0x78, 0x00, 0x9F, 0xE5, 0x98, 0x05, 0xF2, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x0F, 0x37, 0xF3, 0xEB
|
|
.byte 0x5C, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5
|
|
.byte 0x10, 0x00, 0x00, 0xEA, 0x6C, 0xCA, 0xFC, 0xEB, 0x44, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3
|
|
.byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x77, 0xCA, 0xFC, 0xEB, 0x01, 0x00, 0x50, 0xE3
|
|
.byte 0x08, 0x00, 0x00, 0x0A, 0xCF, 0xCA, 0xFC, 0xEB, 0x24, 0x00, 0x9F, 0xE5, 0x03, 0x10, 0xA0, 0xE3
|
|
.byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x02, 0x00, 0x00, 0xEA, 0x9D, 0x70, 0xFD, 0xEB
|
|
.byte 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2
|
|
.byte 0x18, 0x80, 0xBD, 0xE8, 0x68, 0xAF, 0x38, 0x02, 0xAC, 0xAE, 0x38, 0x02, 0xE4, 0xAE, 0x38, 0x02
|
|
.byte 0x18, 0xAF, 0x38, 0x02
|
|
|
|
arm_func_start ov26_0238AC14
|
|
ov26_0238AC14: ; 0x0238AC14
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #8
|
|
mov r1, r0
|
|
bl MemAlloc
|
|
ldr r1, _0238AC3C ; =0x0238AF6C
|
|
mov r2, #0
|
|
str r0, [r1]
|
|
str r2, [r0, #4]
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238AC3C: .word 0x0238AF6C
|
|
arm_func_end ov26_0238AC14
|
|
|
|
arm_func_start ov26_0238AC40
|
|
ov26_0238AC40: ; 0x0238AC40
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238AC68 ; =0x0238AF6C
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl MemFree
|
|
ldr r0, _0238AC68 ; =0x0238AF6C
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238AC68: .word 0x0238AF6C
|
|
arm_func_end ov26_0238AC40
|
|
|
|
arm_func_start ov26_0238AC6C
|
|
ov26_0238AC6C: ; 0x0238AC6C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238ACD4 ; =0x0238AF6C
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _0238AC90
|
|
cmp r0, #1
|
|
beq _0238ACC0
|
|
b _0238ACCC
|
|
_0238AC90:
|
|
bl sub_0205633C
|
|
cmp r0, #0
|
|
bne _0238ACA8
|
|
bl ov11_0230CDE0
|
|
mov r0, #4
|
|
ldmia sp!, {r3, pc}
|
|
_0238ACA8:
|
|
bl sub_020587C8
|
|
ldr r0, _0238ACD4 ; =0x0238AF6C
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
str r1, [r0, #4]
|
|
b _0238ACCC
|
|
_0238ACC0:
|
|
bl ov00_022E6E68
|
|
mov r0, #4
|
|
ldmia sp!, {r3, pc}
|
|
_0238ACCC:
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238ACD4: .word 0x0238AF6C
|
|
arm_func_end ov26_0238AC6C
|
|
|
|
arm_func_start ov26_0238ACD8
|
|
ov26_0238ACD8: ; 0x0238ACD8
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #8
|
|
mov r1, r0
|
|
bl MemAlloc
|
|
ldr r1, _0238AD0C ; =0x0238AF70
|
|
mov r2, #0
|
|
str r0, [r1]
|
|
str r2, [r0]
|
|
ldr r0, [r1]
|
|
mov r1, #5
|
|
strh r1, [r0, #4]
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238AD0C: .word 0x0238AF70
|
|
arm_func_end ov26_0238ACD8
|
|
|
|
arm_func_start ov26_0238AD10
|
|
ov26_0238AD10: ; 0x0238AD10
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238AD38 ; =0x0238AF70
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl MemFree
|
|
ldr r0, _0238AD38 ; =0x0238AF70
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238AD38: .word 0x0238AF70
|
|
arm_func_end ov26_0238AD10
|
|
_0238AD3C:
|
|
.byte 0x08, 0x40, 0x2D, 0xE9
|
|
.byte 0xE8, 0xD0, 0x4D, 0xE2, 0xD0, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x00, 0x10, 0x92, 0xE5
|
|
.byte 0x03, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90, 0x28, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA
|
|
.byte 0x10, 0x00, 0x00, 0xEA, 0x1E, 0x00, 0x00, 0xEA, 0x24, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x8D, 0xE2
|
|
.byte 0x33, 0x11, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x9C, 0x00, 0x9F, 0x05, 0x03, 0x10, 0xA0, 0x03
|
|
.byte 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05, 0x20, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x8D, 0xE2
|
|
.byte 0x40, 0xEE, 0xF2, 0xEB, 0x80, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5
|
|
.byte 0x00, 0x10, 0x80, 0xE5, 0x19, 0x00, 0x00, 0xEA, 0xF4, 0x10, 0xD2, 0xE1, 0x01, 0x10, 0x41, 0xE2
|
|
.byte 0xB4, 0x10, 0xC2, 0xE1, 0x00, 0x10, 0x90, 0xE5, 0xF4, 0x00, 0xD1, 0xE1, 0x00, 0x00, 0x50, 0xE3
|
|
.byte 0x12, 0x00, 0x00, 0xCA, 0x00, 0x00, 0xA0, 0xE3, 0xB4, 0x00, 0xC1, 0xE1, 0x5B, 0xEE, 0xF2, 0xEB
|
|
.byte 0x44, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5
|
|
.byte 0x0A, 0x00, 0x00, 0xEA, 0x64, 0xEE, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x28, 0x00, 0x9F, 0x05
|
|
.byte 0x03, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05
|
|
|
|
arm_func_start ov26_0238ADFC
|
|
ov26_0238ADFC: ; 0x0238ADFC
|
|
b _0238AE10
|
|
_0238AE00:
|
|
.byte 0x15, 0xEE, 0xF2, 0xEB, 0x17, 0x70, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA
|
|
_0238AE10:
|
|
mov r0, #1
|
|
add sp, sp, #0xe8
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end ov26_0238ADFC
|
|
; 0x0238AE1C
|
|
|
|
.byte 0x70, 0xAF, 0x38, 0x02, 0xFF, 0x00, 0x18, 0x02, 0x00, 0x00, 0x03, 0x00, 0x18, 0x32, 0x61, 0x02
|
|
.byte 0xFF, 0x00, 0x18, 0x02, 0x00, 0x00, 0x03, 0x00, 0x18, 0x32, 0x6C, 0x02, 0xFF, 0x00, 0x18, 0x02
|
|
.byte 0x00, 0x00, 0x03, 0x00, 0x18, 0x32, 0x6B, 0x02, 0xFF, 0x00, 0x18, 0x02, 0x00, 0x00, 0x03, 0x00
|
|
.byte 0x18, 0x32, 0x6A, 0x02, 0xFF, 0x00, 0x18, 0x02, 0x00, 0x00, 0x03, 0x00, 0x18, 0x32, 0x68, 0x02
|
|
.byte 0xFF, 0x00, 0x18, 0x02, 0x00, 0x00, 0x03, 0x00, 0x18, 0x32, 0x69, 0x02, 0xFF, 0x00, 0x18, 0x02
|
|
.byte 0x00, 0x00, 0x03, 0x00, 0x18, 0x32, 0x65, 0x02, 0xFF, 0x00, 0x18, 0x02, 0x00, 0x00, 0x03, 0x00
|
|
.byte 0x18, 0x32, 0x64, 0x02, 0xFF, 0x00, 0x18, 0x02, 0x00, 0x00, 0x03, 0x00, 0x18, 0x32, 0x63, 0x02
|
|
.byte 0xFF, 0x00, 0x18, 0x02, 0x00, 0x00, 0x03, 0x00, 0x18, 0x32, 0x62, 0x02, 0xFF, 0x00, 0x18, 0x02
|
|
.byte 0x00, 0x00, 0x03, 0x00, 0x18, 0x32, 0x6D, 0x02, 0xFF, 0x00, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x55, 0x4E, 0x49, 0x54, 0x20, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4E, 0x20, 0x25, 0x33, 0x64, 0x20
|
|
.byte 0x63, 0x6F, 0x6E, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6F, 0x75, 0x6E, 0x74, 0x20, 0x3D
|
|
.byte 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D
|
|
.byte 0x3D, 0x3D, 0x3D, 0x3D, 0x0A, 0x00, 0x00, 0x00, 0x55, 0x4E, 0x49, 0x54, 0x20, 0x52, 0x45, 0x54
|
|
.byte 0x55, 0x52, 0x4E, 0x20, 0x25, 0x33, 0x64, 0x20, 0x64, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6F, 0x75
|
|
.byte 0x6E, 0x74, 0x20, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D
|
|
.byte 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x0A, 0x00, 0x00, 0x00, 0x55, 0x4E, 0x49, 0x54
|
|
.byte 0x20, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4E, 0x20, 0x25, 0x33, 0x64, 0x20, 0x6E, 0x6F, 0x20, 0x63
|
|
.byte 0x6F, 0x75, 0x6E, 0x74, 0x20, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D
|
|
.byte 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x0A, 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
|