mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-24 23:17:03 -05:00
This decision was made to reduce the complexity of using .include whilst juggling with tools/scaninc and tools/preproc: - tools/scaninc doesn't apply the proper search rules for .include (it assumes #include behavior). In particular, it doesn't consider paths starting from $PWD, and doesn't scan the included files as a result. - .include had to be processed before #include by preproc in many cases, as code was being included that had to be preprocessed by CPP (think of #define). This contradicts standard GCC behavior. To make include paths consistent across the asm/ data/ and src/ directories, the following files were moved: - constants/ → include/asm/constants/ - asm/macros/ → include/asm/macros/ - asm/macros.inc → include/asm/macros.inc - include/macros/m4a.inc → include/asm/macros/m4a.inc As part of the necessary changes for this to work, the scaninc method in the makefile was improved to generate .d files that don't choke when files are missing.
1565 lines
24 KiB
ArmAsm
1565 lines
24 KiB
ArmAsm
#include "asm/constants/gba_constants.inc"
|
|
#include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80308A0
|
|
sub_80308A0:
|
|
push {r4,lr}
|
|
ldr r4, _08030928
|
|
ldr r0, [r4]
|
|
adds r1, r0, 0
|
|
adds r1, 0x44
|
|
ldrh r1, [r1]
|
|
adds r0, 0xC0
|
|
movs r2, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r1, r0, 0
|
|
adds r1, 0x42
|
|
ldrh r1, [r1]
|
|
adds r0, 0xC1
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xC2
|
|
movs r1, 0xC
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xC3
|
|
strb r2, [r0]
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r4]
|
|
adds r0, 0x60
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r0, [r4]
|
|
movs r1, 0x3E
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0xC
|
|
bl sub_80095E4
|
|
adds r0, 0x2
|
|
lsls r0, 16
|
|
ldr r2, [r4]
|
|
ldr r3, [r2, 0x58]
|
|
lsls r1, r3, 1
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x6E
|
|
asrs r3, r0, 16
|
|
lsrs r0, 16
|
|
strh r0, [r1]
|
|
ldr r1, [r2, 0x58]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, r0
|
|
adds r3, 0x2
|
|
adds r2, 0x70
|
|
strh r3, [r2]
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r4]
|
|
adds r0, 0x60
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08030928: .4byte gUnknown_203B320
|
|
thumb_func_end sub_80308A0
|
|
|
|
thumb_func_start sub_803092C
|
|
sub_803092C:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x60
|
|
ldr r7, _08030A24
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x58]
|
|
bl sub_8008C54
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x58]
|
|
bl sub_80073B8
|
|
ldr r1, [r7]
|
|
adds r0, r1, 0
|
|
adds r0, 0x42
|
|
movs r2, 0
|
|
ldrsh r4, [r0, r2]
|
|
lsls r4, 3
|
|
adds r5, r4, 0
|
|
adds r5, 0xA
|
|
ldr r2, _08030A28
|
|
ldr r0, [r1, 0x20]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r2, [r0]
|
|
ldr r3, [r1, 0x58]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl xxx_call_draw_string
|
|
adds r4, 0x4
|
|
ldr r3, [r7]
|
|
adds r0, r3, 0
|
|
adds r0, 0xC2
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r5, r4, r0
|
|
adds r0, r3, 0
|
|
adds r0, 0x42
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r2, 0x1
|
|
movs r0, 0x7
|
|
str r0, [sp]
|
|
ldr r0, [r3, 0x58]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r3, 0x1
|
|
bl sub_8012BC4
|
|
movs r6, 0
|
|
ldr r0, [r7]
|
|
movs r2, 0x3E
|
|
ldrsh r0, [r0, r2]
|
|
cmp r6, r0
|
|
bge _08030A56
|
|
mov r9, r7
|
|
mov r8, r6
|
|
add r7, sp, 0x8
|
|
mov r5, sp
|
|
adds r5, 0x4B
|
|
_080309B0:
|
|
mov r3, r9
|
|
ldr r1, [r3]
|
|
adds r0, r1, 0
|
|
adds r0, 0x42
|
|
movs r3, 0
|
|
ldrsh r2, [r0, r3]
|
|
subs r0, 0x2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
muls r0, r2
|
|
adds r0, r6
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bl sub_8095228
|
|
adds r4, r0, 0
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r1, [r0, 0x58]
|
|
str r1, [sp, 0x8]
|
|
adds r0, 0x24
|
|
adds r1, r6, 0
|
|
bl sub_8013800
|
|
str r0, [sp, 0x50]
|
|
add r1, sp, 0x48
|
|
movs r0, 0x7
|
|
strb r0, [r1]
|
|
mov r0, sp
|
|
adds r0, 0x4A
|
|
mov r2, r8
|
|
strb r2, [r0]
|
|
add r0, sp, 0x4C
|
|
strb r2, [r0]
|
|
adds r0, r4, 0x4
|
|
str r0, [sp, 0x10]
|
|
adds r0, 0x10
|
|
str r0, [sp, 0x14]
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r7, 0x10]
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r7, 0x12]
|
|
strb r2, [r7, 0x14]
|
|
subs r1, 0x12
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x4
|
|
beq _08030A32
|
|
cmp r0, 0x4
|
|
bgt _08030A2C
|
|
cmp r0, 0x2
|
|
bgt _08030A3E
|
|
cmp r0, 0x1
|
|
blt _08030A3E
|
|
movs r0, 0x1
|
|
strb r0, [r5]
|
|
b _08030A42
|
|
.align 2, 0
|
|
_08030A24: .4byte gUnknown_203B320
|
|
_08030A28: .4byte gUnknown_80E086C
|
|
_08030A2C:
|
|
cmp r0, 0x5
|
|
beq _08030A38
|
|
b _08030A3E
|
|
_08030A32:
|
|
movs r0, 0x3
|
|
strb r0, [r5]
|
|
b _08030A42
|
|
_08030A38:
|
|
movs r0, 0x4
|
|
strb r0, [r5]
|
|
b _08030A42
|
|
_08030A3E:
|
|
mov r3, r8
|
|
strb r3, [r5]
|
|
_08030A42:
|
|
add r0, sp, 0x8
|
|
bl sub_803B6D4
|
|
adds r6, 0x1
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
movs r2, 0x3E
|
|
ldrsh r0, [r0, r2]
|
|
cmp r6, r0
|
|
blt _080309B0
|
|
_08030A56:
|
|
ldr r0, _08030A70
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x58]
|
|
bl sub_80073E0
|
|
add sp, 0x60
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08030A70: .4byte gUnknown_203B320
|
|
thumb_func_end sub_803092C
|
|
|
|
thumb_func_start sub_8030A74
|
|
sub_8030A74:
|
|
push {r4,r5,lr}
|
|
movs r2, 0
|
|
ldr r0, _08030A90
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x20]
|
|
cmp r0, 0x7
|
|
bls _08030A84
|
|
b _08030C0E
|
|
_08030A84:
|
|
lsls r0, 2
|
|
ldr r1, _08030A94
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08030A90: .4byte gUnknown_203B320
|
|
_08030A94: .4byte _08030A98
|
|
.align 2, 0
|
|
_08030A98:
|
|
.4byte _08030AB8
|
|
.4byte _08030B10
|
|
.4byte _08030B3C
|
|
.4byte _08030B94
|
|
.4byte _08030B68
|
|
.4byte _08030BC0
|
|
.4byte _08030AE4
|
|
.4byte _08030BEC
|
|
_08030AB8:
|
|
movs r1, 0
|
|
ldr r5, _08030ADC
|
|
ldr r4, _08030AE0
|
|
movs r3, 0
|
|
_08030AC0:
|
|
ldr r0, [r5]
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08030AD2
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
_08030AD2:
|
|
adds r3, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030AC0
|
|
b _08030C0E
|
|
.align 2, 0
|
|
_08030ADC: .4byte gUnknown_203B480
|
|
_08030AE0: .4byte gUnknown_203B320
|
|
_08030AE4:
|
|
movs r1, 0
|
|
ldr r5, _08030B08
|
|
ldr r4, _08030B0C
|
|
movs r3, 0
|
|
_08030AEC:
|
|
ldr r0, [r5]
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x6
|
|
bne _08030AFE
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
_08030AFE:
|
|
adds r3, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030AEC
|
|
b _08030C0E
|
|
.align 2, 0
|
|
_08030B08: .4byte gUnknown_203B480
|
|
_08030B0C: .4byte gUnknown_203B320
|
|
_08030B10:
|
|
movs r1, 0
|
|
ldr r5, _08030B34
|
|
ldr r4, _08030B38
|
|
movs r3, 0
|
|
_08030B18:
|
|
ldr r0, [r5]
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08030B2A
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
_08030B2A:
|
|
adds r3, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030B18
|
|
b _08030C0E
|
|
.align 2, 0
|
|
_08030B34: .4byte gUnknown_203B480
|
|
_08030B38: .4byte gUnknown_203B320
|
|
_08030B3C:
|
|
movs r1, 0
|
|
ldr r5, _08030B60
|
|
ldr r4, _08030B64
|
|
movs r3, 0
|
|
_08030B44:
|
|
ldr r0, [r5]
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _08030B56
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
_08030B56:
|
|
adds r3, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030B44
|
|
b _08030C0E
|
|
.align 2, 0
|
|
_08030B60: .4byte gUnknown_203B480
|
|
_08030B64: .4byte gUnknown_203B320
|
|
_08030B68:
|
|
movs r1, 0
|
|
ldr r5, _08030B8C
|
|
ldr r4, _08030B90
|
|
movs r3, 0
|
|
_08030B70:
|
|
ldr r0, [r5]
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bne _08030B82
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
_08030B82:
|
|
adds r3, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030B70
|
|
b _08030C0E
|
|
.align 2, 0
|
|
_08030B8C: .4byte gUnknown_203B480
|
|
_08030B90: .4byte gUnknown_203B320
|
|
_08030B94:
|
|
movs r1, 0
|
|
ldr r5, _08030BB8
|
|
ldr r4, _08030BBC
|
|
movs r3, 0
|
|
_08030B9C:
|
|
ldr r0, [r5]
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _08030BAE
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
_08030BAE:
|
|
adds r3, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030B9C
|
|
b _08030C0E
|
|
.align 2, 0
|
|
_08030BB8: .4byte gUnknown_203B480
|
|
_08030BBC: .4byte gUnknown_203B320
|
|
_08030BC0:
|
|
movs r1, 0
|
|
ldr r5, _08030BE4
|
|
ldr r4, _08030BE8
|
|
movs r3, 0
|
|
_08030BC8:
|
|
ldr r0, [r5]
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bne _08030BDA
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
_08030BDA:
|
|
adds r3, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030BC8
|
|
b _08030C0E
|
|
.align 2, 0
|
|
_08030BE4: .4byte gUnknown_203B480
|
|
_08030BE8: .4byte gUnknown_203B320
|
|
_08030BEC:
|
|
movs r1, 0
|
|
ldr r5, _08030C18
|
|
ldr r4, _08030C1C
|
|
movs r3, 0
|
|
_08030BF4:
|
|
ldr r0, [r5]
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7
|
|
bne _08030C06
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
_08030C06:
|
|
adds r3, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030BF4
|
|
_08030C0E:
|
|
adds r0, r2, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08030C18: .4byte gUnknown_203B480
|
|
_08030C1C: .4byte gUnknown_203B320
|
|
thumb_func_end sub_8030A74
|
|
|
|
thumb_func_start sub_8030C20
|
|
sub_8030C20:
|
|
push {lr}
|
|
cmp r0, 0x7
|
|
bls _08030C28
|
|
b _08030D34
|
|
_08030C28:
|
|
lsls r0, 2
|
|
ldr r1, _08030C34
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08030C34: .4byte _08030C38
|
|
.align 2, 0
|
|
_08030C38:
|
|
.4byte _08030C58
|
|
.4byte _08030C90
|
|
.4byte _08030CAC
|
|
.4byte _08030CE4
|
|
.4byte _08030CC8
|
|
.4byte _08030D00
|
|
.4byte _08030C74
|
|
.4byte _08030D20
|
|
_08030C58:
|
|
movs r1, 0
|
|
ldr r0, _08030C70
|
|
ldr r2, [r0]
|
|
_08030C5E:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
bne _08030D1C
|
|
adds r2, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030C5E
|
|
b _08030D34
|
|
.align 2, 0
|
|
_08030C70: .4byte gUnknown_203B480
|
|
_08030C74:
|
|
movs r1, 0
|
|
ldr r0, _08030C8C
|
|
ldr r2, [r0]
|
|
_08030C7A:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x6
|
|
beq _08030D1C
|
|
adds r2, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030C7A
|
|
b _08030D34
|
|
.align 2, 0
|
|
_08030C8C: .4byte gUnknown_203B480
|
|
_08030C90:
|
|
movs r1, 0
|
|
ldr r0, _08030CA8
|
|
ldr r2, [r0]
|
|
_08030C96:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
beq _08030D1C
|
|
adds r2, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030C96
|
|
b _08030D34
|
|
.align 2, 0
|
|
_08030CA8: .4byte gUnknown_203B480
|
|
_08030CAC:
|
|
movs r1, 0
|
|
ldr r0, _08030CC4
|
|
ldr r2, [r0]
|
|
_08030CB2:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
beq _08030D1C
|
|
adds r2, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030CB2
|
|
b _08030D34
|
|
.align 2, 0
|
|
_08030CC4: .4byte gUnknown_203B480
|
|
_08030CC8:
|
|
movs r1, 0
|
|
ldr r0, _08030CE0
|
|
ldr r2, [r0]
|
|
_08030CCE:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x4
|
|
beq _08030D1C
|
|
adds r2, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030CCE
|
|
b _08030D34
|
|
.align 2, 0
|
|
_08030CE0: .4byte gUnknown_203B480
|
|
_08030CE4:
|
|
movs r1, 0
|
|
ldr r0, _08030CFC
|
|
ldr r2, [r0]
|
|
_08030CEA:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x3
|
|
beq _08030D1C
|
|
adds r2, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030CEA
|
|
b _08030D34
|
|
.align 2, 0
|
|
_08030CFC: .4byte gUnknown_203B480
|
|
_08030D00:
|
|
movs r1, 0
|
|
ldr r0, _08030D18
|
|
ldr r2, [r0]
|
|
_08030D06:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x5
|
|
beq _08030D1C
|
|
adds r2, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030D06
|
|
b _08030D34
|
|
.align 2, 0
|
|
_08030D18: .4byte gUnknown_203B480
|
|
_08030D1C:
|
|
movs r0, 0
|
|
b _08030D36
|
|
_08030D20:
|
|
movs r1, 0
|
|
ldr r0, _08030D3C
|
|
ldr r2, [r0]
|
|
_08030D26:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x7
|
|
beq _08030D1C
|
|
adds r2, 0x30
|
|
adds r1, 0x1
|
|
cmp r1, 0x1F
|
|
ble _08030D26
|
|
_08030D34:
|
|
movs r0, 0x1
|
|
_08030D36:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08030D3C: .4byte gUnknown_203B480
|
|
thumb_func_end sub_8030C20
|
|
|
|
thumb_func_start sub_8030D40
|
|
sub_8030D40:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r6, _08030D98
|
|
movs r0, 0x78
|
|
movs r1, 0x8
|
|
bl MemoryAlloc
|
|
str r0, [r6]
|
|
strb r4, [r0, 0xC]
|
|
ldr r0, [r6]
|
|
bl sub_801317C
|
|
ldr r0, [r6]
|
|
str r5, [r0, 0x10]
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, 0x18
|
|
adds r1, r0, r1
|
|
str r1, [r0, 0x14]
|
|
adds r0, 0x18
|
|
bl sub_8006518
|
|
ldr r1, [r6]
|
|
ldr r2, [r1, 0x10]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r1, 0x18
|
|
ldr r0, _08030D9C
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
bl sub_8030DD4
|
|
movs r0, 0x1
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08030D98: .4byte gUnknown_203B324
|
|
_08030D9C: .4byte gUnknown_80E091C
|
|
thumb_func_end sub_8030D40
|
|
|
|
thumb_func_start sub_8030DA0
|
|
sub_8030DA0:
|
|
push {lr}
|
|
ldr r0, _08030DC0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x10]
|
|
bl sub_8012A64
|
|
cmp r0, 0x1
|
|
beq _08030DC4
|
|
cmp r0, 0x2
|
|
bne _08030DCE
|
|
movs r0, 0x1
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x2
|
|
b _08030DD0
|
|
.align 2, 0
|
|
_08030DC0: .4byte gUnknown_203B324
|
|
_08030DC4:
|
|
movs r0, 0
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x3
|
|
b _08030DD0
|
|
_08030DCE:
|
|
movs r0, 0
|
|
_08030DD0:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8030DA0
|
|
|
|
thumb_func_start sub_8030DD4
|
|
sub_8030DD4:
|
|
push {lr}
|
|
bl sub_8030E2C
|
|
bl sub_8030E48
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8030DD4
|
|
|
|
thumb_func_start sub_8030DE4
|
|
sub_8030DE4:
|
|
push {r4,r5,lr}
|
|
ldr r4, _08030E24
|
|
ldr r2, [r4]
|
|
cmp r2, 0
|
|
beq _08030E1E
|
|
ldr r0, [r2, 0x10]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x18
|
|
ldr r0, _08030E28
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r4]
|
|
adds r0, 0x18
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_08030E1E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08030E24: .4byte gUnknown_203B324
|
|
_08030E28: .4byte gUnknown_80E0900
|
|
thumb_func_end sub_8030DE4
|
|
|
|
thumb_func_start sub_8030E2C
|
|
sub_8030E2C:
|
|
push {lr}
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, _08030E44
|
|
ldr r0, [r0]
|
|
adds r0, 0x18
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08030E44: .4byte gUnknown_203B324
|
|
thumb_func_end sub_8030E2C
|
|
|
|
thumb_func_start sub_8030E48
|
|
sub_8030E48:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x15C
|
|
ldr r3, _08030EA8
|
|
ldr r4, _08030EAC
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, 0xC]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 4
|
|
ldr r1, [r3]
|
|
adds r5, r1, r0
|
|
ldr r0, [r2, 0x10]
|
|
bl sub_80073B8
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x10]
|
|
str r0, [sp, 0x4]
|
|
add r1, sp, 0x44
|
|
movs r2, 0
|
|
movs r0, 0x7
|
|
strb r0, [r1]
|
|
mov r0, sp
|
|
adds r0, 0x46
|
|
strb r2, [r0]
|
|
add r0, sp, 0x48
|
|
strb r2, [r0]
|
|
adds r0, r5, 0x4
|
|
str r0, [sp, 0xC]
|
|
adds r0, 0x10
|
|
str r0, [sp, 0x10]
|
|
add r1, sp, 0x4
|
|
ldrh r0, [r5, 0xC]
|
|
strh r0, [r1, 0x10]
|
|
ldrh r0, [r5, 0xC]
|
|
strh r0, [r1, 0x12]
|
|
adds r0, r1, 0
|
|
strb r2, [r0, 0x14]
|
|
adds r2, r5, 0
|
|
adds r2, 0x22
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
bne _08030EB0
|
|
adds r1, 0x2E
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
b _08030EBE
|
|
.align 2, 0
|
|
_08030EA8: .4byte gUnknown_203B480
|
|
_08030EAC: .4byte gUnknown_203B324
|
|
_08030EB0:
|
|
mov r1, sp
|
|
adds r1, 0x32
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
ldrb r1, [r2]
|
|
add r0, sp, 0x38
|
|
strb r1, [r0]
|
|
_08030EBE:
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x2
|
|
beq _08030ED2
|
|
cmp r0, 0x2
|
|
ble _08030EE2
|
|
cmp r0, 0x4
|
|
beq _08030ED2
|
|
cmp r0, 0x5
|
|
beq _08030EDA
|
|
b _08030EE2
|
|
_08030ED2:
|
|
mov r1, sp
|
|
adds r1, 0x45
|
|
movs r0, 0xA
|
|
b _08030EE8
|
|
_08030EDA:
|
|
mov r1, sp
|
|
adds r1, 0x45
|
|
movs r0, 0xB
|
|
b _08030EE8
|
|
_08030EE2:
|
|
mov r1, sp
|
|
adds r1, 0x45
|
|
movs r0, 0x9
|
|
_08030EE8:
|
|
strb r0, [r1]
|
|
add r0, sp, 0x4
|
|
bl CreateRescueDescription
|
|
ldrh r0, [r5, 0x10]
|
|
ldr r1, _08030F48
|
|
bl __umodsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r2, _08030F4C
|
|
ldr r5, _08030F50
|
|
ldr r0, [r5]
|
|
ldr r3, [r0, 0x10]
|
|
movs r0, 0
|
|
mov r8, r0
|
|
str r0, [sp]
|
|
movs r0, 0xA
|
|
movs r1, 0x68
|
|
bl xxx_call_draw_string
|
|
add r6, sp, 0x5C
|
|
ldr r1, _08030F54
|
|
adds r0, r6, 0
|
|
adds r2, r4, 0
|
|
bl ExpandPlaceholdersBuffer
|
|
ldr r0, [r5]
|
|
ldr r3, [r0, 0x10]
|
|
mov r0, r8
|
|
str r0, [sp]
|
|
movs r0, 0x44
|
|
movs r1, 0x68
|
|
adds r2, r6, 0
|
|
bl xxx_call_draw_string
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x10]
|
|
bl sub_80073E0
|
|
add sp, 0x15C
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08030F48: .4byte 0x00002710
|
|
_08030F4C: .4byte gUnknown_80E0934
|
|
_08030F50: .4byte gUnknown_203B324
|
|
_08030F54: .4byte gUnknown_80E0938
|
|
thumb_func_end sub_8030E48
|
|
|
|
thumb_func_start sub_8030F58
|
|
sub_8030F58:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
bl ResetUnusedInputStruct
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r5, _08030FF4
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
bne _08030F88
|
|
movs r4, 0x8E
|
|
lsls r4, 1
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl MemoryAlloc
|
|
str r0, [r5]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl MemoryFill8
|
|
_08030F88:
|
|
ldr r0, [r5]
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
str r6, [r0]
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
bl GetDialogueSpriteDataPtr
|
|
ldr r2, [r5]
|
|
movs r4, 0x84
|
|
lsls r4, 1
|
|
adds r1, r2, r4
|
|
str r0, [r1]
|
|
movs r3, 0x86
|
|
lsls r3, 1
|
|
adds r1, r2, r3
|
|
ldr r0, [r0, 0x4]
|
|
str r0, [r1]
|
|
movs r0, 0x8A
|
|
lsls r0, 1
|
|
adds r2, r0
|
|
movs r1, 0
|
|
strb r1, [r2]
|
|
ldr r0, [r5]
|
|
ldr r2, _08030FF8
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
adds r3, 0xA
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
ldr r2, [r5]
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
movs r0, 0x2
|
|
strh r0, [r1]
|
|
subs r3, 0x4
|
|
adds r1, r2, r3
|
|
movs r0, 0x8
|
|
strh r0, [r1]
|
|
adds r0, r6, 0
|
|
bl sub_8030C20
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _08031038
|
|
cmp r6, 0x2
|
|
beq _08030FFC
|
|
cmp r6, 0x4
|
|
beq _08031014
|
|
b _08031022
|
|
.align 2, 0
|
|
_08030FF4: .4byte gUnknown_203B328
|
|
_08030FF8: .4byte 0x00000115
|
|
_08030FFC:
|
|
ldr r0, _0803100C
|
|
ldr r2, [r5]
|
|
adds r2, r4
|
|
ldr r3, _08031010
|
|
movs r1, 0
|
|
bl sub_80141B4
|
|
b _08031022
|
|
.align 2, 0
|
|
_0803100C: .4byte gUnknown_80E09D8
|
|
_08031010: .4byte 0x00000101
|
|
_08031014:
|
|
ldr r0, _0803102C
|
|
ldr r2, [r5]
|
|
adds r2, r4
|
|
ldr r3, _08031030
|
|
movs r1, 0
|
|
bl sub_80141B4
|
|
_08031022:
|
|
ldr r0, _08031034
|
|
ldr r1, [r0]
|
|
movs r0, 0x5
|
|
str r0, [r1]
|
|
b _08031048
|
|
.align 2, 0
|
|
_0803102C: .4byte gUnknown_80E0A0C
|
|
_08031030: .4byte 0x00000101
|
|
_08031034: .4byte gUnknown_203B328
|
|
_08031038:
|
|
ldr r0, [r5]
|
|
str r1, [r0]
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x8
|
|
bl sub_80306A8
|
|
_08031048:
|
|
movs r0, 0x1
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8030F58
|
|
|
|
thumb_func_start sub_8031050
|
|
sub_8031050:
|
|
push {lr}
|
|
ldr r1, _08031068
|
|
ldr r0, [r1]
|
|
ldr r0, [r0]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x6
|
|
bhi _080310AC
|
|
lsls r0, 2
|
|
ldr r1, _0803106C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08031068: .4byte gUnknown_203B328
|
|
_0803106C: .4byte _08031070
|
|
.align 2, 0
|
|
_08031070:
|
|
.4byte _0803108C
|
|
.4byte _08031092
|
|
.4byte _08031098
|
|
.4byte _08031098
|
|
.4byte _080310A2
|
|
.4byte _080310A8
|
|
.4byte _080310A8
|
|
_0803108C:
|
|
bl sub_8031300
|
|
b _080310AC
|
|
_08031092:
|
|
bl sub_803136C
|
|
b _080310AC
|
|
_08031098:
|
|
ldr r0, [r2]
|
|
ldr r0, [r0]
|
|
bl sub_80313D8
|
|
b _080310AC
|
|
_080310A2:
|
|
bl sub_8031498
|
|
b _080310AC
|
|
_080310A8:
|
|
movs r0, 0x3
|
|
b _080310AE
|
|
_080310AC:
|
|
movs r0, 0
|
|
_080310AE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8031050
|
|
|
|
thumb_func_start sub_80310B4
|
|
sub_80310B4:
|
|
push {r4,lr}
|
|
bl sub_803084C
|
|
ldr r4, _080310E0
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080310D8
|
|
movs r1, 0x84
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl CloseFile
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080310D8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080310E0: .4byte gUnknown_203B328
|
|
thumb_func_end sub_80310B4
|
|
|
|
thumb_func_start sub_80310E4
|
|
sub_80310E4:
|
|
push {lr}
|
|
ldr r1, _080310F8
|
|
ldr r1, [r1]
|
|
str r0, [r1]
|
|
bl sub_80310FC
|
|
bl sub_8031258
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080310F8: .4byte gUnknown_203B328
|
|
thumb_func_end sub_80310E4
|
|
|
|
thumb_func_start sub_80310FC
|
|
sub_80310FC:
|
|
push {r4-r6,lr}
|
|
ldr r4, _0803111C
|
|
ldr r0, [r4]
|
|
adds r0, 0xA8
|
|
bl sub_8006518
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
cmp r0, 0x6
|
|
bls _08031112
|
|
b _0803122C
|
|
_08031112:
|
|
lsls r0, 2
|
|
ldr r1, _08031120
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0803111C: .4byte gUnknown_203B328
|
|
_08031120: .4byte _08031124
|
|
.align 2, 0
|
|
_08031124:
|
|
.4byte _08031140
|
|
.4byte _08031178
|
|
.4byte _080311C0
|
|
.4byte _080311C0
|
|
.4byte _080311E8
|
|
.4byte _0803122C
|
|
.4byte _0803122C
|
|
_08031140:
|
|
ldr r3, _08031170
|
|
ldr r1, [r3]
|
|
ldr r2, _08031174
|
|
adds r1, 0xC0
|
|
adds r0, r2, 0
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldr r1, [r3]
|
|
adds r1, 0xD8
|
|
adds r0, r2, 0
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldr r0, [r3]
|
|
adds r0, 0xF0
|
|
ldm r2!, {r1,r3,r4}
|
|
stm r0!, {r1,r3,r4}
|
|
ldm r2!, {r1,r5,r6}
|
|
stm r0!, {r1,r5,r6}
|
|
b _0803123A
|
|
.align 2, 0
|
|
_08031170: .4byte gUnknown_203B328
|
|
_08031174: .4byte gUnknown_80E0990
|
|
_08031178:
|
|
ldr r3, _080311B0
|
|
ldr r1, [r3]
|
|
adds r1, 0xC0
|
|
ldr r0, _080311B4
|
|
ldm r0!, {r2,r4,r5}
|
|
stm r1!, {r2,r4,r5}
|
|
ldm r0!, {r2,r4,r6}
|
|
stm r1!, {r2,r4,r6}
|
|
ldr r1, [r3]
|
|
ldr r2, _080311B8
|
|
adds r1, 0xD8
|
|
adds r0, r2, 0
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldr r0, [r3]
|
|
adds r0, 0xF0
|
|
ldm r2!, {r1,r5,r6}
|
|
stm r0!, {r1,r5,r6}
|
|
ldm r2!, {r4-r6}
|
|
stm r0!, {r4-r6}
|
|
ldr r0, [r3]
|
|
adds r0, 0xC0
|
|
ldr r1, _080311BC
|
|
bl sub_8012CAC
|
|
b _0803123A
|
|
.align 2, 0
|
|
_080311B0: .4byte gUnknown_203B328
|
|
_080311B4: .4byte gUnknown_80E09A8
|
|
_080311B8: .4byte gUnknown_80E0990
|
|
_080311BC: .4byte gUnknown_80E0968
|
|
_080311C0:
|
|
ldr r2, _080311DC
|
|
ldr r1, [r2]
|
|
adds r1, 0xD8
|
|
ldr r0, _080311E0
|
|
ldm r0!, {r3-r5}
|
|
stm r1!, {r3-r5}
|
|
ldm r0!, {r3,r4,r6}
|
|
stm r1!, {r3,r4,r6}
|
|
ldr r0, [r2]
|
|
adds r0, 0xD8
|
|
ldr r1, _080311E4
|
|
bl sub_8012CAC
|
|
b _0803123A
|
|
.align 2, 0
|
|
_080311DC: .4byte gUnknown_203B328
|
|
_080311E0: .4byte gUnknown_80E09C0
|
|
_080311E4: .4byte gUnknown_80E0948
|
|
_080311E8:
|
|
ldr r3, _08031224
|
|
ldr r1, [r3]
|
|
ldr r2, _08031228
|
|
adds r1, 0xA8
|
|
adds r0, r2, 0
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldr r1, [r3]
|
|
adds r1, 0xC0
|
|
adds r0, r2, 0
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldr r1, [r3]
|
|
adds r1, 0xD8
|
|
adds r0, r2, 0
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldr r0, [r3]
|
|
adds r0, 0xF0
|
|
ldm r2!, {r1,r5,r6}
|
|
stm r0!, {r1,r5,r6}
|
|
ldm r2!, {r3-r5}
|
|
stm r0!, {r3-r5}
|
|
b _0803123A
|
|
.align 2, 0
|
|
_08031224: .4byte gUnknown_203B328
|
|
_08031228: .4byte gUnknown_80E0990
|
|
_0803122C:
|
|
bl ResetUnusedInputStruct
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
_0803123A:
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, _08031254
|
|
ldr r0, [r0]
|
|
adds r0, 0xA8
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08031254: .4byte gUnknown_203B328
|
|
thumb_func_end sub_80310FC
|
|
|
|
thumb_func_start sub_8031258
|
|
sub_8031258:
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
ldr r1, _08031274
|
|
ldr r0, [r1]
|
|
ldr r0, [r0]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x6
|
|
bhi _080312F6
|
|
lsls r0, 2
|
|
ldr r1, _08031278
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08031274: .4byte gUnknown_203B328
|
|
_08031278: .4byte _0803127C
|
|
.align 2, 0
|
|
_0803127C:
|
|
.4byte _08031298
|
|
.4byte _080312A0
|
|
.4byte _080312BC
|
|
.4byte _080312BC
|
|
.4byte _080312EC
|
|
.4byte _080312F6
|
|
.4byte _080312F6
|
|
_08031298:
|
|
movs r0, 0x1
|
|
bl sub_8030810
|
|
b _080312F6
|
|
_080312A0:
|
|
bl sub_803092C
|
|
ldr r0, _080312B4
|
|
ldr r0, [r0]
|
|
adds r0, 0x8
|
|
ldr r1, _080312B8
|
|
movs r2, 0x4
|
|
str r2, [sp]
|
|
movs r2, 0x1
|
|
b _080312D8
|
|
.align 2, 0
|
|
_080312B4: .4byte gUnknown_203B328
|
|
_080312B8: .4byte gUnknown_80E0968
|
|
_080312BC:
|
|
bl sub_803092C
|
|
ldr r4, _080312E4
|
|
ldr r0, [r4]
|
|
adds r0, 0x8
|
|
movs r1, 0
|
|
bl sub_8012EA4
|
|
ldr r0, [r4]
|
|
adds r0, 0x58
|
|
ldr r1, _080312E8
|
|
movs r2, 0x3
|
|
str r2, [sp]
|
|
movs r2, 0x2
|
|
_080312D8:
|
|
str r2, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8012D60
|
|
b _080312F6
|
|
.align 2, 0
|
|
_080312E4: .4byte gUnknown_203B328
|
|
_080312E8: .4byte gUnknown_80E0948
|
|
_080312EC:
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, 0x4]
|
|
movs r1, 0x3
|
|
bl sub_8030D40
|
|
_080312F6:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8031258
|
|
|
|
thumb_func_start sub_8031300
|
|
sub_8031300:
|
|
push {lr}
|
|
movs r0, 0x1
|
|
bl sub_8030768
|
|
cmp r0, 0x4
|
|
bhi _08031366
|
|
lsls r0, 2
|
|
ldr r1, _08031318
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08031318: .4byte _0803131C
|
|
.align 2, 0
|
|
_0803131C:
|
|
.4byte _08031366
|
|
.4byte _08031366
|
|
.4byte _08031360
|
|
.4byte _08031330
|
|
.4byte _08031348
|
|
_08031330:
|
|
bl sub_80307EC
|
|
ldr r1, _08031344
|
|
ldr r1, [r1]
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0x1
|
|
bl sub_80310E4
|
|
b _08031366
|
|
.align 2, 0
|
|
_08031344: .4byte gUnknown_203B328
|
|
_08031348:
|
|
bl sub_80307EC
|
|
ldr r1, _0803135C
|
|
ldr r1, [r1]
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0x4
|
|
bl sub_80310E4
|
|
b _08031366
|
|
.align 2, 0
|
|
_0803135C: .4byte gUnknown_203B328
|
|
_08031360:
|
|
movs r0, 0x6
|
|
bl sub_80310E4
|
|
_08031366:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8031300
|
|
|
|
thumb_func_start sub_803136C
|
|
sub_803136C:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
bl sub_8030768
|
|
ldr r4, _080313A4
|
|
ldr r0, [r4]
|
|
adds r0, 0x8
|
|
bl sub_8012FD8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08031392
|
|
ldr r0, [r4]
|
|
adds r0, 0x8
|
|
mov r1, sp
|
|
bl sub_8013114
|
|
_08031392:
|
|
ldr r0, [sp]
|
|
cmp r0, 0x4
|
|
beq _080313C2
|
|
cmp r0, 0x4
|
|
bgt _080313A8
|
|
cmp r0, 0x1
|
|
beq _080313B2
|
|
b _080313D0
|
|
.align 2, 0
|
|
_080313A4: .4byte gUnknown_203B328
|
|
_080313A8:
|
|
cmp r0, 0x5
|
|
beq _080313CA
|
|
cmp r0, 0x6
|
|
beq _080313BA
|
|
b _080313D0
|
|
_080313B2:
|
|
movs r0, 0
|
|
bl sub_80310E4
|
|
b _080313D0
|
|
_080313BA:
|
|
movs r0, 0x3
|
|
bl sub_80310E4
|
|
b _080313D0
|
|
_080313C2:
|
|
movs r0, 0x2
|
|
bl sub_80310E4
|
|
b _080313D0
|
|
_080313CA:
|
|
movs r0, 0x4
|
|
bl sub_80310E4
|
|
_080313D0:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_803136C
|
|
|
|
thumb_func_start sub_80313D8
|
|
sub_80313D8:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
bl sub_8030768
|
|
ldr r4, _08031418
|
|
ldr r0, [r4]
|
|
adds r0, 0x8
|
|
bl sub_8012FD8
|
|
ldr r0, [r4]
|
|
adds r0, 0x58
|
|
bl sub_8012FD8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08031408
|
|
ldr r0, [r4]
|
|
adds r0, 0x58
|
|
mov r1, sp
|
|
bl sub_8013114
|
|
_08031408:
|
|
ldr r0, [sp]
|
|
cmp r0, 0x2
|
|
beq _08031428
|
|
cmp r0, 0x2
|
|
bgt _0803141C
|
|
cmp r0, 0x1
|
|
beq _08031420
|
|
b _0803148E
|
|
.align 2, 0
|
|
_08031418: .4byte gUnknown_203B328
|
|
_0803141C:
|
|
cmp r0, 0x3
|
|
bne _0803148E
|
|
_08031420:
|
|
movs r0, 0
|
|
bl sub_80310E4
|
|
b _0803148E
|
|
_08031428:
|
|
cmp r5, 0x2
|
|
beq _08031432
|
|
cmp r5, 0x3
|
|
beq _0803143C
|
|
b _0803145A
|
|
_08031432:
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x4]
|
|
bl sub_8095240
|
|
b _0803145A
|
|
_0803143C:
|
|
ldr r4, _08031480
|
|
movs r3, 0
|
|
movs r1, 0
|
|
movs r2, 0x1F
|
|
_08031444:
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
strb r3, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
adds r0, 0x22
|
|
strb r3, [r0]
|
|
adds r1, 0x30
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08031444
|
|
_0803145A:
|
|
ldr r0, _08031484
|
|
ldr r0, [r0]
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _0803146E
|
|
cmp r0, 0x4
|
|
bne _0803148E
|
|
_0803146E:
|
|
bl sub_8030C20
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08031488
|
|
movs r0, 0x5
|
|
bl sub_80310E4
|
|
b _0803148E
|
|
.align 2, 0
|
|
_08031480: .4byte gUnknown_203B480
|
|
_08031484: .4byte gUnknown_203B328
|
|
_08031488:
|
|
movs r0, 0
|
|
bl sub_80310E4
|
|
_0803148E:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80313D8
|
|
|
|
thumb_func_start sub_8031498
|
|
sub_8031498:
|
|
push {lr}
|
|
bl sub_8030DA0
|
|
cmp r0, 0x1
|
|
bls _080314B0
|
|
cmp r0, 0x3
|
|
bhi _080314B0
|
|
bl sub_8030DE4
|
|
movs r0, 0
|
|
bl sub_80310E4
|
|
_080314B0:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8031498
|