mirror of
https://github.com/pret/pmd-red.git
synced 2026-03-25 03:25:09 -05:00
1814 lines
28 KiB
ArmAsm
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.
|