pmd-red/asm/save.s
2017-12-11 19:17:54 -08:00

1814 lines
28 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_8011C1C
sub_8011C1C:
ldr r0, _08011C24
ldr r0, [r0]
bx lr
.align 2, 0
_08011C24: .4byte gUnknown_203B17C
thumb_func_end sub_8011C1C
thumb_func_start sub_8011C28
sub_8011C28:
ldr r1, _08011C30
str r0, [r1]
bx lr
.align 2, 0
_08011C30: .4byte gUnknown_203B17C
thumb_func_end sub_8011C28
thumb_func_start sub_8011C34
sub_8011C34:
ldr r0, _08011C3C
ldr r0, [r0]
bx lr
.align 2, 0
_08011C3C: .4byte gUnknown_202DE28
thumb_func_end sub_8011C34
thumb_func_start sub_8011C40
sub_8011C40:
ldr r1, _08011C48
str r0, [r1]
bx lr
.align 2, 0
_08011C48: .4byte gUnknown_202DE28
thumb_func_end sub_8011C40
thumb_func_start sub_8011C4C
sub_8011C4C:
ldr r0, _08011C54
ldr r0, [r0]
bx lr
.align 2, 0
_08011C54: .4byte gUnknown_203B180
thumb_func_end sub_8011C4C
thumb_func_start sub_8011C58
sub_8011C58:
push {r4,lr}
adds r4, r0, 0
movs r2, 0
lsrs r1, 2
cmp r1, 0x1
ble _08011C72
adds r3, r4, 0x4
subs r1, 0x1
_08011C68:
ldm r3!, {r0}
adds r2, r0
subs r1, 0x1
cmp r1, 0
bne _08011C68
_08011C72:
str r2, [r4]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8011C58
thumb_func_start sub_8011C7C
sub_8011C7C:
push {r4,lr}
adds r4, r0, 0
movs r2, 0
lsrs r1, 2
cmp r1, 0x1
ble _08011C96
adds r3, r4, 0x4
subs r1, 0x1
_08011C8C:
ldm r3!, {r0}
adds r2, r0
subs r1, 0x1
cmp r1, 0
bne _08011C8C
_08011C96:
ldr r0, [r4]
cmp r0, r2
bne _08011CA0
movs r0, 0
b _08011CA2
_08011CA0:
movs r0, 0x1
_08011CA2:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8011C7C
thumb_func_start sub_8011CA8
sub_8011CA8:
push {lr}
adds r3, r0, 0
adds r2, r1, 0
ldr r0, _08011CCC
ldr r0, [r0]
ldr r0, _08011CD0
adds r1, r2, r0
cmp r1, 0
bge _08011CBE
ldr r0, _08011CD4
adds r1, r2, r0
_08011CBE:
asrs r1, 12
ldr r0, [r3]
adds r0, r1
str r0, [r3]
pop {r0}
bx r0
.align 2, 0
_08011CCC: .4byte gUnknown_203B184
_08011CD0: .4byte 0x00000fff
_08011CD4: .4byte 0x00001ffe
thumb_func_end sub_8011CA8
thumb_func_start sub_8011CD8
sub_8011CD8:
push {r4-r6,lr}
adds r5, r1, 0
adds r4, r2, 0
ldr r6, [r0]
adds r1, r4, 0
bl sub_8011CA8
adds r0, r5, 0
adds r1, r4, 0
bl sub_8011C58
ldr r0, _08011D04
ldr r0, [r0]
cmp r0, 0
bne _08011D08
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl WriteFlashData
adds r1, r0, 0
b _08011D28
.align 2, 0
_08011D04: .4byte gUnknown_203B184
_08011D08:
bl sub_800DAB8
lsls r0, 24
cmp r0, 0
beq _08011D38
lsls r0, r6, 16
lsrs r0, 16
adds r1, r5, 0
adds r2, r4, 0
bl sub_800DAB4
lsls r0, 24
movs r1, 0
cmp r0, 0
bne _08011D28
movs r1, 0x3
_08011D28:
cmp r1, 0x4
bne _08011D30
movs r0, 0x1
b _08011D3A
_08011D30:
cmp r1, 0
bne _08011D38
movs r0, 0
b _08011D3A
_08011D38:
movs r0, 0x2
_08011D3A:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8011CD8
thumb_func_start sub_8011D40
sub_8011D40:
push {r4-r6,lr}
adds r5, r1, 0
adds r4, r2, 0
ldr r6, [r0]
adds r1, r4, 0
bl sub_8011CA8
ldr r0, _08011D64
ldr r0, [r0]
cmp r0, 0
bne _08011D68
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl ReadFlashData
adds r1, r0, 0
b _08011D86
.align 2, 0
_08011D64: .4byte gUnknown_203B184
_08011D68:
bl sub_800DAB8
lsls r0, 24
cmp r0, 0
beq _08011D8A
lsls r0, r6, 16
lsrs r0, 16
adds r1, r5, 0
adds r2, r4, 0
bl sub_800DAB0
lsls r0, 24
movs r1, 0
cmp r0, 0
beq _08011D8A
_08011D86:
cmp r1, 0
beq _08011D8E
_08011D8A:
movs r0, 0x1
b _08011DA2
_08011D8E:
adds r0, r5, 0
adds r1, r4, 0
bl sub_8011C7C
lsls r0, 24
cmp r0, 0
bne _08011DA0
movs r0, 0
b _08011DA2
_08011DA0:
movs r0, 0x2
_08011DA2:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8011D40
thumb_func_start sub_8011DA8
sub_8011DA8:
movs r0, 0x1
bx lr
thumb_func_end sub_8011DA8
thumb_func_start sub_8011DAC
sub_8011DAC:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
ldr r0, _08011DE4
mov r8, r0
movs r1, 0x5
bl MemoryAlloc
adds r5, r0, 0
movs r1, 0x89
lsls r1, 3
adds r4, r5, r1
adds r0, r6, 0
adds r1, r5, 0
mov r2, r8
bl sub_8011D40
adds r7, r0, 0
cmp r7, 0
beq _08011DE8
adds r0, r6, 0
adds r1, r5, 0
mov r2, r8
bl sub_8011D40
adds r7, r0, 0
b _08011DF0
.align 2, 0
_08011DE4: .4byte 0x000057d4
_08011DE8:
adds r0, r6, 0
mov r1, r8
bl sub_8011CA8
_08011DF0:
cmp r7, 0
beq _08011DF6
b _08011F6E
_08011DF6:
ldr r2, _08011E38
adds r0, r5, r2
ldr r1, [r0]
ldr r0, _08011E3C
cmp r1, r0
beq _08011E04
movs r7, 0x4
_08011E04:
cmp r7, 0
beq _08011E0A
b _08011F6E
_08011E0A:
ldr r0, _08011E40
ldr r1, [r0]
cmp r1, 0
bne _08011E48
ldr r1, _08011E44
adds r0, r5, r1
ldr r0, [r0]
bl sub_8011C28
movs r2, 0x83
lsls r2, 3
adds r0, r5, r2
ldr r0, [r0]
bl sub_8011C40
movs r1, 0x84
lsls r1, 3
adds r0, r5, r1
ldr r0, [r0]
bl SetRngState
b _08011E60
.align 2, 0
_08011E38: .4byte 0x00000414
_08011E3C: .4byte 0x05071412
_08011E40: .4byte gUnknown_203B184
_08011E44: .4byte 0x0000041c
_08011E48:
ldr r2, _08011E80
adds r0, r5, r2
ldr r0, [r0]
str r0, [r1, 0x54]
subs r2, 0x4
adds r0, r5, r2
ldr r0, [r0]
str r0, [r1, 0x50]
adds r2, 0x8
adds r0, r5, r2
ldr r0, [r0]
str r0, [r1, 0x58]
_08011E60:
cmp r7, 0
beq _08011E66
b _08011F6E
_08011E66:
ldr r0, _08011E84
ldr r0, [r0]
cmp r0, 0
bne _08011E88
adds r0, r5, 0x4
bl sub_8002718
lsls r0, 24
cmp r0, 0
bne _08011E94
movs r7, 0x4
b _08011F6E
.align 2, 0
_08011E80: .4byte 0x0000041c
_08011E84: .4byte gUnknown_203B184
_08011E88:
ldr r0, [r0, 0x4C]
adds r1, r5, 0x4
movs r2, 0x80
lsls r2, 3
bl MemoryCopy8
_08011E94:
cmp r7, 0
bne _08011F6E
ldr r6, _08011F80
adds r0, r4, 0
adds r1, r6, 0
bl sub_808EE9C
adds r1, r0, 0
ldr r2, _08011F84
adds r0, r5, r2
ldr r0, [r0]
cmp r1, r0
beq _08011EB0
movs r7, 0x3
_08011EB0:
adds r4, r6
movs r6, 0x96
lsls r6, 2
adds r0, r4, 0
adds r1, r6, 0
bl sub_808F2B0
adds r1, r0, 0
movs r2, 0x85
lsls r2, 3
adds r0, r5, r2
ldr r0, [r0]
cmp r1, r0
beq _08011ECE
movs r7, 0x3
_08011ECE:
adds r4, r6
movs r6, 0xEC
lsls r6, 1
adds r0, r4, 0
adds r1, r6, 0
bl sub_8091D14
adds r1, r0, 0
movs r2, 0x86
lsls r2, 3
adds r0, r5, r2
ldr r0, [r0]
cmp r1, r0
beq _08011EEC
movs r7, 0x3
_08011EEC:
adds r4, r6
adds r0, r4, 0
movs r1, 0x10
bl sub_809222C
adds r1, r0, 0
ldr r2, _08011F88
adds r0, r5, r2
ldr r0, [r0]
cmp r1, r0
beq _08011F04
movs r7, 0x3
_08011F04:
adds r4, 0x10
adds r0, r4, 0
movs r1, 0x8
bl sub_80927F4
adds r1, r0, 0
movs r2, 0x87
lsls r2, 3
adds r0, r5, r2
ldr r0, [r0]
cmp r1, r0
beq _08011F1E
movs r7, 0x3
_08011F1E:
adds r4, 0x8
movs r6, 0x80
lsls r6, 1
adds r0, r4, 0
adds r1, r6, 0
bl sub_8097D98
adds r1, r0, 0
ldr r2, _08011F8C
adds r0, r5, r2
ldr r0, [r0]
cmp r1, r0
beq _08011F3A
movs r7, 0x3
_08011F3A:
adds r4, r6
ldr r6, _08011F90
adds r0, r4, 0
adds r1, r6, 0
bl sub_80954CC
adds r1, r0, 0
movs r2, 0x88
lsls r2, 3
adds r0, r5, r2
ldr r0, [r0]
cmp r1, r0
beq _08011F56
movs r7, 0x3
_08011F56:
adds r4, r6
ldr r1, _08011F94
adds r0, r4, 0
bl sub_8096FA0
adds r1, r0, 0
ldr r2, _08011F98
adds r0, r5, r2
ldr r0, [r0]
cmp r1, r0
beq _08011F6E
movs r7, 0x3
_08011F6E:
adds r0, r5, 0
bl MemoryFree
adds r0, r7, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08011F80: .4byte 0x00004650
_08011F84: .4byte 0x00000424
_08011F88: .4byte 0x00000434
_08011F8C: .4byte 0x0000043c
_08011F90: .4byte 0x00000594
_08011F94: .4byte 0x00000221
_08011F98: .4byte 0x00000444
thumb_func_end sub_8011DAC
thumb_func_start sub_8011F9C
sub_8011F9C:
push {lr}
bl sub_8011D40
pop {r1}
bx r1
thumb_func_end sub_8011F9C
thumb_func_start sub_8011FA8
sub_8011FA8:
push {r4,r5,lr}
sub sp, 0x4
movs r4, 0x80
lsls r4, 4
adds r0, r4, 0
movs r1, 0x5
bl MemoryAlloc
adds r5, r0, 0
movs r0, 0x1F
str r0, [sp]
mov r0, sp
adds r1, r5, 0
adds r2, r4, 0
bl sub_8011D40
adds r2, r0, 0
cmp r2, 0
bne _08011FD8
ldr r1, [r5, 0x14]
ldr r0, _08011FF0
cmp r1, r0
beq _08011FD8
movs r2, 0x4
_08011FD8:
ldr r4, _08011FF4
cmp r2, 0
bne _08011FE0
ldr r4, [r5, 0x18]
_08011FE0:
adds r0, r5, 0
bl MemoryFree
adds r0, r4, 0
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08011FF0: .4byte 0x05071412
_08011FF4: .4byte 0x000f1209
thumb_func_end sub_8011FA8
thumb_func_start sub_8011FF8
sub_8011FF8:
push {r4-r6,lr}
sub sp, 0x4
movs r4, 0x80
lsls r4, 4
adds r0, r4, 0
movs r1, 0x5
bl MemoryAlloc
adds r5, r0, 0
movs r0, 0x1F
str r0, [sp]
movs r6, 0
mov r0, sp
adds r1, r5, 0
adds r2, r4, 0
bl sub_8011D40
cmp r0, 0
bne _08012028
ldr r1, [r5, 0x14]
ldr r0, _08012038
cmp r1, r0
bne _08012028
movs r6, 0x1
_08012028:
adds r0, r5, 0
bl MemoryFree
adds r0, r6, 0
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08012038: .4byte 0x05071412
thumb_func_end sub_8011FF8
thumb_func_start sub_801203C
sub_801203C:
push {r4-r7,lr}
adds r7, r0, 0
adds r4, r1, 0
ldr r0, _08012078
movs r1, 0x5
bl MemoryAlloc
adds r6, r0, 0
movs r0, 0x89
lsls r0, 3
adds r5, r6, r0
ldr r0, _0801207C
ldr r2, [r0]
cmp r2, 0
bne _08012084
ldr r1, _08012080
adds r0, r6, r1
str r4, [r0]
bl sub_8011C34
movs r2, 0x83
lsls r2, 3
adds r1, r6, r2
str r0, [r1]
bl GetRngState
movs r2, 0x84
lsls r2, 3
adds r1, r6, r2
b _0801209E
.align 2, 0
_08012078: .4byte 0x000057d4
_0801207C: .4byte gUnknown_203B184
_08012080: .4byte 0x0000041c
_08012084:
ldr r0, _080120C8
adds r1, r6, r0
ldr r0, [r2, 0x54]
str r0, [r1]
movs r0, 0x83
lsls r0, 3
adds r1, r6, r0
ldr r0, [r2, 0x50]
str r0, [r1]
movs r0, 0x84
lsls r0, 3
adds r1, r6, r0
ldr r0, [r2, 0x58]
_0801209E:
str r0, [r1]
ldr r2, _080120CC
adds r1, r6, r2
ldr r0, _080120D0
str r0, [r1]
bl sub_8011C4C
adds r1, r0, 0
ldr r2, _080120D4
adds r0, r6, r2
movs r2, 0x10
bl strncpy
ldr r0, _080120D8
ldr r1, [r0]
cmp r1, 0
bne _080120DC
adds r0, r6, 0x4
bl sub_8002700
b _080120E8
.align 2, 0
_080120C8: .4byte 0x0000041c
_080120CC: .4byte 0x00000414
_080120D0: .4byte 0x05071412
_080120D4: .4byte 0x00000404
_080120D8: .4byte gUnknown_203B184
_080120DC:
adds r0, r6, 0x4
ldr r1, [r1, 0x4C]
movs r2, 0x80
lsls r2, 3
bl MemoryCopy8
_080120E8:
ldr r4, _080121A4
adds r0, r5, 0
adds r1, r4, 0
bl sub_808ED78
ldr r2, _080121A8
adds r1, r6, r2
str r0, [r1]
adds r5, r4
movs r4, 0x96
lsls r4, 2
adds r0, r5, 0
adds r1, r4, 0
bl sub_808F154
movs r2, 0x85
lsls r2, 3
adds r1, r6, r2
str r0, [r1]
adds r5, r4
subs r4, 0x80
adds r0, r5, 0
adds r1, r4, 0
bl sub_8091C68
movs r2, 0x86
lsls r2, 3
adds r1, r6, r2
str r0, [r1]
adds r5, r4
adds r0, r5, 0
movs r1, 0x10
bl sub_80921C4
ldr r2, _080121AC
adds r1, r6, r2
str r0, [r1]
adds r5, 0x10
adds r0, r5, 0
movs r1, 0x8
bl sub_80927A8
movs r2, 0x87
lsls r2, 3
adds r1, r6, r2
str r0, [r1]
adds r5, 0x8
subs r4, 0xD8
adds r0, r5, 0
adds r1, r4, 0
bl sub_8097D60
ldr r2, _080121B0
adds r1, r6, r2
str r0, [r1]
adds r5, r4
ldr r4, _080121B4
adds r0, r5, 0
adds r1, r4, 0
bl sub_8095624
movs r2, 0x88
lsls r2, 3
adds r1, r6, r2
str r0, [r1]
adds r5, r4
ldr r1, _080121B8
adds r0, r5, 0
bl sub_80970D8
ldr r2, _080121BC
adds r1, r6, r2
str r0, [r1]
ldr r4, _080121C0
adds r0, r7, 0
adds r1, r6, 0
adds r2, r4, 0
bl sub_8011CD8
adds r5, r0, 0
adds r0, r7, 0
adds r1, r6, 0
adds r2, r4, 0
bl sub_8011CD8
adds r4, r0, 0
adds r0, r6, 0
bl MemoryFree
cmp r5, 0
beq _080121C4
adds r0, r5, 0
b _080121CE
.align 2, 0
_080121A4: .4byte 0x00004650
_080121A8: .4byte 0x00000424
_080121AC: .4byte 0x00000434
_080121B0: .4byte 0x0000043c
_080121B4: .4byte 0x00000594
_080121B8: .4byte 0x00000221
_080121BC: .4byte 0x00000444
_080121C0: .4byte 0x000057d4
_080121C4:
cmp r4, 0
bne _080121CC
movs r0, 0
b _080121CE
_080121CC:
adds r0, r4, 0
_080121CE:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_801203C
thumb_func_start sub_80121D4
sub_80121D4:
push {lr}
bl sub_8011CD8
pop {r1}
bx r1
thumb_func_end sub_80121D4
thumb_func_start sub_80121E0
sub_80121E0:
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
movs r6, 0x80
lsls r6, 4
adds r0, r6, 0
movs r1, 0x5
bl MemoryAlloc
adds r4, r0, 0
movs r0, 0x1F
str r0, [sp]
str r5, [r4, 0x18]
bl sub_809769C
ldr r0, [r0]
str r0, [r4, 0x1C]
ldr r0, _0801223C
str r0, [r4, 0x14]
bl sub_8011C4C
adds r1, r0, 0
adds r0, r4, 0x4
movs r2, 0x10
bl strncpy
adds r0, r4, 0
adds r0, 0x20
movs r1, 0
bl sub_80958E4
mov r0, sp
adds r1, r4, 0
adds r2, r6, 0
bl sub_8011CD8
adds r5, r0, 0
adds r0, r4, 0
bl MemoryFree
adds r0, r5, 0
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0801223C: .4byte 0x05071412
thumb_func_end sub_80121E0
thumb_func_start sub_8012240
sub_8012240:
push {r4,r5,lr}
movs r4, 0x80
lsls r4, 4
adds r0, r4, 0
movs r1, 0x5
bl MemoryAlloc
adds r5, r0, 0
movs r1, 0xFF
movs r2, 0x4
bl MemoryFill8
bl sub_8011830
movs r0, 0x1F
adds r1, r5, 0
adds r2, r4, 0
bl WriteFlashData
adds r4, r0, 0
bl sub_8011854
adds r0, r5, 0
bl MemoryFree
cmp r4, 0
bne _0801227A
movs r0, 0
b _0801227C
_0801227A:
movs r0, 0x2
_0801227C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8012240
thumb_func_start sub_8012284
sub_8012284:
push {lr}
bl sub_80122D0
bl sub_80122F4
bl sub_8012300
pop {r0}
bx r0
thumb_func_end sub_8012284
thumb_func_start sub_8012298
sub_8012298:
push {lr}
bl sub_80976A8
bl sub_80122A8
pop {r0}
bx r0
thumb_func_end sub_8012298
thumb_func_start sub_80122A8
sub_80122A8:
push {lr}
bl sub_80122D0
bl sub_80122F4
bl sub_8012300
bl sub_8012240
pop {r0}
bx r0
thumb_func_end sub_80122A8
thumb_func_start nullsub_33
nullsub_33:
bx lr
thumb_func_end nullsub_33
thumb_func_start sub_80122C4
sub_80122C4:
push {lr}
bl sub_80122A8
pop {r0}
bx r0
thumb_func_end sub_80122C4
thumb_func_start sub_80122D0
sub_80122D0:
push {lr}
movs r0, 0
bl sub_8011C28
movs r0, 0x1
negs r0, r0
bl sub_8011C40
bl sub_8097748
ldr r0, _080122F0
ldr r0, [r0]
bl sub_8094FA8
pop {r0}
bx r0
.align 2, 0
_080122F0: .4byte gUnknown_203B47C
thumb_func_end sub_80122D0
thumb_func_start sub_80122F4
sub_80122F4:
push {lr}
bl sub_800135C
pop {r0}
bx r0
thumb_func_end sub_80122F4
thumb_func_start sub_8012300
sub_8012300:
push {lr}
bl sub_80923B8
bl sub_808CE08
bl sub_80909D8
bl sub_8092094
bl sub_80972F4
bl sub_8095118
bl sub_8095900
bl sub_80974E8
movs r0, 0x1
bl sub_8094998
bl sub_8097F74
pop {r0}
bx r0
thumb_func_end sub_8012300
thumb_func_start nullsub_200
nullsub_200:
bx lr
thumb_func_end nullsub_200
thumb_func_start sub_8012334
sub_8012334:
push {lr}
adds r2, r0, 0
ldr r0, _08012390
str r2, [r0]
cmp r2, 0
beq _080123C8
ldr r1, _08012394
ldr r0, [r2]
str r0, [r1]
ldr r1, _08012398
ldr r0, [r2, 0x4]
str r0, [r1]
ldr r1, _0801239C
ldr r0, [r2, 0x8]
str r0, [r1]
ldr r1, _080123A0
ldr r0, [r2, 0xC]
str r0, [r1]
ldr r1, _080123A4
ldr r0, [r2, 0x10]
str r0, [r1]
ldr r1, _080123A8
ldr r0, [r2, 0x14]
str r0, [r1]
ldr r1, _080123AC
ldr r0, [r2, 0x18]
str r0, [r1]
ldr r1, _080123B0
ldr r0, [r2, 0x1C]
str r0, [r1]
ldr r1, _080123B4
ldr r0, [r2, 0x20]
str r0, [r1]
ldr r1, _080123B8
ldr r0, [r2, 0x24]
str r0, [r1]
ldr r1, _080123BC
ldr r0, [r2, 0x28]
str r0, [r1]
ldr r1, _080123C0
ldr r0, [r2, 0x2C]
str r0, [r1]
ldr r1, _080123C4
ldr r0, [r2, 0x30]
b _0801242E
.align 2, 0
_08012390: .4byte gUnknown_203B184
_08012394: .4byte gUnknown_203B460
_08012398: .4byte gUnknown_203B45C
_0801239C: .4byte gUnknown_203B480
_080123A0: .4byte gUnknown_203B484
_080123A4: .4byte gUnknown_203B488
_080123A8: .4byte gUnknown_203B48C
_080123AC: .4byte gUnknown_203B490
_080123B0: .4byte gUnknown_203B464
_080123B4: .4byte gUnknown_203B494
_080123B8: .4byte gUnknown_203B498
_080123BC: .4byte gUnknown_203B468
_080123C0: .4byte gUnknown_203B46C
_080123C4: .4byte gUnknown_203B47C
_080123C8:
bl sub_80909D0
ldr r1, _08012434
str r0, [r1]
bl sub_808CE00
ldr r1, _08012438
str r0, [r1]
bl sub_80950F8
ldr r1, _0801243C
str r0, [r1]
bl sub_8095100
ldr r1, _08012440
str r0, [r1]
bl sub_8095108
ldr r1, _08012444
str r0, [r1]
bl sub_8095110
ldr r1, _08012448
str r0, [r1]
bl sub_80958F8
ldr r1, _0801244C
str r0, [r1]
bl sub_809208C
ldr r1, _08012450
str r0, [r1]
bl sub_8097680
ldr r1, _08012454
str r0, [r1]
bl sub_8097F6C
ldr r1, _08012458
str r0, [r1]
bl sub_80923B0
ldr r1, _0801245C
str r0, [r1]
bl sub_8094990
ldr r1, _08012460
str r0, [r1]
bl sub_8094FA0
ldr r1, _08012464
_0801242E:
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08012434: .4byte gUnknown_203B460
_08012438: .4byte gUnknown_203B45C
_0801243C: .4byte gUnknown_203B480
_08012440: .4byte gUnknown_203B484
_08012444: .4byte gUnknown_203B488
_08012448: .4byte gUnknown_203B48C
_0801244C: .4byte gUnknown_203B490
_08012450: .4byte gUnknown_203B464
_08012454: .4byte gUnknown_203B494
_08012458: .4byte gUnknown_203B498
_0801245C: .4byte gUnknown_203B468
_08012460: .4byte gUnknown_203B46C
_08012464: .4byte gUnknown_203B47C
thumb_func_end sub_8012334
thumb_func_start sub_8012468
sub_8012468:
push {r4,lr}
ldr r4, _08012480
movs r0, 0x8
movs r1, 0x5
bl MemoryAlloc
str r0, [r4]
movs r1, 0x1
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08012480: .4byte gUnknown_203B188
thumb_func_end sub_8012468
thumb_func_start sub_8012484
sub_8012484:
push {r4,r5,lr}
sub sp, 0x8
ldr r1, _080124A0
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0x6
bhi _0801254C
lsls r0, 2
ldr r1, _080124A4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080124A0: .4byte gUnknown_203B188
_080124A4: .4byte _080124A8
.align 2, 0
_080124A8:
.4byte _080124C4
.4byte _080124CC
.4byte _080124E8
.4byte _0801251C
.4byte _08012534
.4byte _0801254C
.4byte _08012548
_080124C4:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1]
b _0801254C
_080124CC:
movs r0, 0
str r0, [sp]
mov r0, sp
bl sub_8011DAC
ldr r1, _080124E4
ldr r1, [r1]
str r0, [r1, 0x4]
movs r0, 0x2
str r0, [r1]
b _0801254C
.align 2, 0
_080124E4: .4byte gUnknown_203B188
_080124E8:
adds r5, r4, 0
ldr r1, [r5]
ldr r0, [r1, 0x4]
cmp r0, 0
beq _0801253C
bl sub_8011FF8
lsls r0, 24
cmp r0, 0
beq _08012518
ldr r0, _08012510
ldr r3, _08012514
movs r1, 0
movs r2, 0
bl sub_80141B4
ldr r1, [r5]
movs r0, 0x3
str r0, [r1]
b _0801254C
.align 2, 0
_08012510: .4byte gUnknown_80D4354
_08012514: .4byte 0x00000301
_08012518:
ldr r1, [r4]
b _0801252A
_0801251C:
add r0, sp, 0x4
bl sub_80144A4
cmp r0, 0
bne _0801254C
ldr r0, _08012530
ldr r1, [r0]
_0801252A:
movs r0, 0x4
str r0, [r1]
b _0801254C
.align 2, 0
_08012530: .4byte gUnknown_203B188
_08012534:
bl sub_8012298
ldr r0, _08012544
ldr r1, [r0]
_0801253C:
movs r0, 0x6
str r0, [r1]
b _0801254C
.align 2, 0
_08012544: .4byte gUnknown_203B188
_08012548:
movs r0, 0
b _0801254E
_0801254C:
movs r0, 0x1
_0801254E:
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8012484
thumb_func_start sub_8012558
sub_8012558:
push {r4,lr}
ldr r4, _08012570
ldr r0, [r4]
cmp r0, 0
beq _0801256A
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801256A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08012570: .4byte gUnknown_203B188
thumb_func_end sub_8012558
thumb_func_start sub_8012574
sub_8012574:
push {r4-r6,lr}
lsls r0, 16
asrs r4, r0, 16
bl sub_80993D8
ldr r5, _080125D4
movs r0, 0x20
movs r1, 0x5
bl MemoryAlloc
str r0, [r5]
movs r6, 0
movs r1, 0
strh r4, [r0, 0x1C]
str r1, [r0, 0xC]
str r1, [r0, 0x10]
cmp r4, 0
beq _080125BA
adds r0, r4, 0
bl sub_808DDD0
ldr r1, [r5]
str r0, [r1, 0xC]
ldr r0, [r0, 0x4]
str r0, [r1, 0x10]
strb r6, [r1, 0x18]
ldr r0, [r5]
strb r6, [r0, 0x19]
ldr r0, [r5]
strb r6, [r0, 0x1A]
ldr r1, [r5]
movs r0, 0x2
strh r0, [r1, 0x14]
movs r0, 0x8
strh r0, [r1, 0x16]
_080125BA:
ldr r1, [r5]
ldr r0, [r1, 0xC]
cmp r0, 0
beq _080125DC
adds r2, r1, 0
adds r2, 0xC
ldr r0, _080125D8
movs r1, 0
movs r3, 0x20
bl sub_80141B4
b _080125E8
.align 2, 0
_080125D4: .4byte gUnknown_203B18C
_080125D8: .4byte gUnknown_80D4398
_080125DC:
ldr r0, _080125F8
movs r1, 0
movs r2, 0
movs r3, 0x20
bl sub_80141B4
_080125E8:
ldr r0, _080125FC
ldr r1, [r0]
movs r0, 0x3
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080125F8: .4byte gUnknown_80D4398
_080125FC: .4byte gUnknown_203B18C
thumb_func_end sub_8012574
thumb_func_start sub_8012600
sub_8012600:
push {r4,r5,lr}
sub sp, 0x8
movs r5, 0
ldr r0, _08012628
ldr r2, [r0]
ldr r1, [r2, 0xC]
adds r4, r0, 0
cmp r1, 0
beq _08012616
adds r5, r2, 0
adds r5, 0xC
_08012616:
ldr r0, [r2]
cmp r0, 0x7
bls _0801261E
b _08012738
_0801261E:
lsls r0, 2
ldr r1, _0801262C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08012628: .4byte gUnknown_203B18C
_0801262C: .4byte _08012630
.align 2, 0
_08012630:
.4byte _08012650
.4byte _08012654
.4byte _08012738
.4byte _08012678
.4byte _08012680
.4byte _0801271C
.4byte _08012738
.4byte _08012734
_08012650:
ldr r1, [r4]
b _0801272A
_08012654:
ldr r1, [r4]
ldr r0, [r1, 0x4]
adds r0, 0x1
str r0, [r1, 0x4]
cmp r0, 0x8
ble _08012738
ldr r0, _08012674
movs r1, 0
movs r2, 0
movs r3, 0x20
bl sub_80141B4
ldr r1, [r4]
movs r0, 0x3
str r0, [r1]
b _08012738
.align 2, 0
_08012674: .4byte gUnknown_80D43D8
_08012678:
ldr r1, [r4]
movs r0, 0x4
str r0, [r1]
b _08012738
_08012680:
movs r0, 0
str r0, [sp]
bl sub_80140DC
bl sub_8011C1C
adds r1, r0, 0
mov r0, sp
bl sub_801203C
ldr r4, _080126B8
ldr r1, [r4]
str r0, [r1, 0x8]
cmp r0, 0
beq _080126C4
cmp r0, 0x1
beq _080126DC
ldr r0, [r1, 0xC]
cmp r0, 0
beq _080126F4
ldr r0, _080126BC
_080126AA:
ldr r3, _080126C0
movs r1, 0
adds r2, r5, 0
bl sub_80141B4
b _08012700
.align 2, 0
_080126B8: .4byte gUnknown_203B18C
_080126BC: .4byte gUnknown_80D44B0
_080126C0: .4byte 0x00000101
_080126C4:
ldr r0, [r1, 0xC]
cmp r0, 0
beq _080126D4
ldr r0, _080126D0
b _080126AA
.align 2, 0
_080126D0: .4byte gUnknown_80D4438
_080126D4:
ldr r0, _080126D8
b _080126F6
.align 2, 0
_080126D8: .4byte gUnknown_80D4438
_080126DC:
ldr r0, _080126F0
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80141B4
ldr r1, [r4]
movs r0, 0x6
b _08012706
.align 2, 0
_080126F0: .4byte gUnknown_80D444C
_080126F4:
ldr r0, _08012710
_080126F6:
ldr r3, _08012714
movs r1, 0
adds r2, r5, 0
bl sub_80141B4
_08012700:
ldr r0, _08012718
ldr r1, [r0]
movs r0, 0x5
_08012706:
str r0, [r1]
bl sub_8014114
b _08012738
.align 2, 0
_08012710: .4byte gUnknown_80D44B0
_08012714: .4byte 0x00000101
_08012718: .4byte gUnknown_203B18C
_0801271C:
add r0, sp, 0x4
bl sub_80144A4
cmp r0, 0
bne _08012738
ldr r0, _08012730
ldr r1, [r0]
_0801272A:
movs r0, 0x7
str r0, [r1]
b _08012738
.align 2, 0
_08012730: .4byte gUnknown_203B18C
_08012734:
movs r0, 0
b _0801273A
_08012738:
movs r0, 0x1
_0801273A:
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8012600
thumb_func_start sub_8012744
sub_8012744:
ldr r0, _0801274C
ldr r0, [r0]
ldr r0, [r0, 0x8]
bx lr
.align 2, 0
_0801274C: .4byte gUnknown_203B18C
thumb_func_end sub_8012744
thumb_func_start sub_8012750
sub_8012750:
push {r4,lr}
ldr r4, _08012778
ldr r0, [r4]
cmp r0, 0
beq _0801276E
ldr r0, [r0, 0xC]
cmp r0, 0
beq _08012764
bl CloseFile
_08012764:
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801276E:
bl sub_80993E4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08012778: .4byte gUnknown_203B18C
thumb_func_end sub_8012750
thumb_func_start sub_801277C
sub_801277C:
push {r4-r6,lr}
adds r5, r0, 0
adds r6, r1, 0
ldr r4, _080127A4
movs r0, 0x10
movs r1, 0x5
bl MemoryAlloc
str r0, [r4]
str r5, [r0, 0x4]
str r6, [r0, 0x8]
movs r1, 0
strb r1, [r0, 0xC]
ldr r1, [r4]
movs r0, 0x1
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080127A4: .4byte gUnknown_203B190
thumb_func_end sub_801277C
thumb_func_start sub_80127A8
sub_80127A8:
push {r4,r5,lr}
sub sp, 0x8
ldr r5, _080127C0
ldr r2, [r5]
ldr r4, [r2]
cmp r4, 0x1
beq _080127D4
cmp r4, 0x1
bgt _080127C4
cmp r4, 0
beq _080127CE
b _0801281E
.align 2, 0
_080127C0: .4byte gUnknown_203B190
_080127C4:
cmp r4, 0x2
beq _08012808
cmp r4, 0x3
beq _0801281A
b _0801281E
_080127CE:
movs r0, 0x1
str r0, [r2]
b _0801281E
_080127D4:
movs r0, 0x10
str r0, [sp]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
mov r0, sp
bl sub_8011F9C
cmp r0, 0
bne _080127EC
ldr r0, [r5]
strb r4, [r0, 0xC]
b _08012812
_080127EC:
ldr r0, _08012800
ldr r3, _08012804
movs r1, 0
movs r2, 0
bl sub_80141B4
ldr r1, [r5]
movs r0, 0x2
str r0, [r1]
b _0801281E
.align 2, 0
_08012800: .4byte gUnknown_80D44C8
_08012804: .4byte 0x00000301
_08012808:
add r0, sp, 0x4
bl sub_80144A4
cmp r0, 0
bne _0801281E
_08012812:
ldr r1, [r5]
movs r0, 0x3
str r0, [r1]
b _0801281E
_0801281A:
movs r0, 0
b _08012820
_0801281E:
movs r0, 0x1
_08012820:
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80127A8
thumb_func_start sub_8012828
sub_8012828:
ldr r0, _08012830
ldr r0, [r0]
ldrb r0, [r0, 0xC]
bx lr
.align 2, 0
_08012830: .4byte gUnknown_203B190
thumb_func_end sub_8012828
thumb_func_start sub_8012834
sub_8012834:
push {r4,lr}
ldr r4, _0801284C
ldr r0, [r4]
cmp r0, 0
beq _08012846
bl MemoryFree
movs r0, 0
str r0, [r4]
_08012846:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801284C: .4byte gUnknown_203B190
thumb_func_end sub_8012834
thumb_func_start sub_8012850
sub_8012850:
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r6, r0, 0
mov r8, r1
lsls r4, r2, 24
lsrs r4, 24
ldr r5, _0801288C
movs r0, 0x14
movs r1, 0x5
bl MemoryAlloc
str r0, [r5]
str r6, [r0, 0x4]
mov r1, r8
str r1, [r0, 0x8]
movs r1, 0
strb r4, [r0, 0xC]
ldr r0, [r5]
str r1, [r0]
ldrb r0, [r0, 0xC]
cmp r0, 0
beq _08012894
ldr r0, _08012890
movs r2, 0
movs r3, 0x20
bl sub_80141B4
b _080128A0
.align 2, 0
_0801288C: .4byte gUnknown_203B194
_08012890: .4byte gUnknown_80D45AC
_08012894:
ldr r0, _080128AC
movs r1, 0
movs r2, 0
movs r3, 0x20
bl sub_80141B4
_080128A0:
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080128AC: .4byte gUnknown_80D45AC
thumb_func_end sub_8012850
thumb_func_start sub_80128B0
sub_80128B0:
push {r4,lr}
sub sp, 0x8
ldr r1, _080128CC
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0x5
bls _080128C2
b _080129F0
_080128C2:
lsls r0, 2
ldr r1, _080128D0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080128CC: .4byte gUnknown_203B194
_080128D0: .4byte _080128D4
.align 2, 0
_080128D4:
.4byte _080128EC
.4byte _080128F4
.4byte _0801291C
.4byte _080129C8
.4byte _080129F0
.4byte _080129E0
_080128EC:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1]
b _080129F0
_080128F4:
bl sub_80140DC
movs r0, 0x10
str r0, [sp]
ldr r4, _08012918
ldr r0, [r4]
ldr r1, [r0, 0x4]
ldr r2, [r0, 0x8]
mov r0, sp
bl sub_80121D4
ldr r1, [r4]
str r0, [r1, 0x10]
movs r0, 0x2
str r0, [r1]
movs r0, 0x1
b _080129F2
.align 2, 0
_08012918: .4byte gUnknown_203B194
_0801291C:
movs r0, 0
str r0, [sp]
ldr r0, [r4]
ldr r0, [r0, 0x10]
cmp r0, 0
bne _08012934
mov r0, sp
movs r1, 0x2
bl sub_801203C
ldr r1, [r4]
str r0, [r1, 0x10]
_08012934:
ldr r0, [r4]
ldr r0, [r0, 0x10]
cmp r0, 0
beq _08012964
cmp r0, 0x1
beq _080129AC
ldr r0, _08012958
bl sub_80121E0
ldr r0, _0801295C
ldr r3, _08012960
movs r1, 0
movs r2, 0
bl sub_80141B4
ldr r1, [r4]
movs r0, 0x3
b _080129BC
.align 2, 0
_08012958: .4byte 0x000f1209
_0801295C: .4byte gUnknown_80D47A0
_08012960: .4byte 0x00000301
_08012964:
ldr r0, _08012980
bl sub_80121E0
ldr r0, [r4]
ldrb r0, [r0, 0xC]
cmp r0, 0
beq _0801298C
ldr r0, _08012984
ldr r3, _08012988
movs r1, 0
movs r2, 0
bl sub_80141B4
b _08012998
.align 2, 0
_08012980: .4byte 0x000f1207
_08012984: .4byte gUnknown_80D45F4
_08012988: .4byte 0x00000301
_0801298C:
ldr r0, _080129A0
ldr r3, _080129A4
movs r1, 0
movs r2, 0
bl sub_80141B4
_08012998:
ldr r0, _080129A8
ldr r1, [r0]
movs r0, 0x3
b _080129BC
.align 2, 0
_080129A0: .4byte gUnknown_80D4668
_080129A4: .4byte 0x00000301
_080129A8: .4byte gUnknown_203B194
_080129AC:
ldr r0, _080129C4
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80141B4
ldr r1, [r4]
movs r0, 0x4
_080129BC:
str r0, [r1]
bl sub_8014114
b _080129F0
.align 2, 0
_080129C4: .4byte gUnknown_80D473C
_080129C8:
add r0, sp, 0x4
bl sub_80144A4
cmp r0, 0
bne _080129F0
ldr r0, _080129DC
ldr r1, [r0]
movs r0, 0x5
str r0, [r1]
b _080129F0
.align 2, 0
_080129DC: .4byte gUnknown_203B194
_080129E0:
ldr r0, [r4]
ldr r0, [r0, 0x10]
cmp r0, 0
bne _080129EC
movs r0, 0x2
b _080129F2
_080129EC:
movs r0, 0x3
b _080129F2
_080129F0:
movs r0, 0
_080129F2:
add sp, 0x8
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80128B0
thumb_func_start sub_80129FC
sub_80129FC:
push {r4,lr}
ldr r4, _08012A14
ldr r0, [r4]
cmp r0, 0
beq _08012A0E
bl MemoryFree
movs r0, 0
str r0, [r4]
_08012A0E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08012A14: .4byte gUnknown_203B194
thumb_func_end sub_80129FC
.align 2, 0 @ Don't pad with nop.