mirror of
https://github.com/pret/pmd-red.git
synced 2026-03-21 17:46:39 -05:00
* move Thunderwave and Tiny Woods pokemon to json * rule tweaking to actually build tool before parsing JSON * delete .inc pokemon for tiny Woods and Thunderwave * silence git complaining about br_ips and ips_patch * use defines for species and pass the header file for species * convert sinister woods * convert MtThunderPeak * convert silent chasm * add trial floor_id w/ tiny woods * change make rule name to fix compile * MtSteel converted and bugfix * convert few floor headers and great canyon pokemon * code cleanup * unify unkData into UnkTextStruct2 * more code cleanup and some text decomp * doc more funcs and decomp/split some stuff * document more save stuff * more save work and move some data * pika sniped UpdateNatureTotal * decomp a litle and convert a few more dungeons * better scanning for json files * mt freeze and peak
3388 lines
52 KiB
ArmAsm
3388 lines
52 KiB
ArmAsm
.include "constants/gba_constants.inc"
|
|
.include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_802B640
|
|
sub_802B640:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
mov r8, r2
|
|
bl sub_802B9D8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0802B65A
|
|
movs r0, 0
|
|
b _0802B706
|
|
_0802B65A:
|
|
ldr r5, _0802B710
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
bne _0802B66C
|
|
movs r0, 0xD4
|
|
movs r1, 0x8
|
|
bl MemoryAlloc
|
|
str r0, [r5]
|
|
_0802B66C:
|
|
ldr r0, [r5]
|
|
str r6, [r0, 0x6C]
|
|
lsls r1, r6, 1
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, 0x74
|
|
adds r1, r0, r1
|
|
str r1, [r0, 0x70]
|
|
adds r0, 0x74
|
|
bl sub_8006518
|
|
ldr r1, [r5]
|
|
ldr r2, [r1, 0x6C]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r1, 0x74
|
|
ldr r0, _0802B714
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
cmp r4, 0
|
|
beq _0802B6B0
|
|
ldr r1, [r5]
|
|
ldr r2, [r1, 0x6C]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, 0x7C
|
|
adds r1, r0
|
|
ldr r0, [r4]
|
|
str r0, [r1]
|
|
_0802B6B0:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x70]
|
|
mov r1, r8
|
|
bl sub_8012D08
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r5]
|
|
adds r0, 0x74
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r4, [r5]
|
|
adds r4, 0x38
|
|
bl sub_802B9A8
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
mov r2, r8
|
|
adds r3, r6, 0
|
|
bl sub_8013818
|
|
ldr r2, [r5]
|
|
ldr r0, _0802B718
|
|
ldrh r1, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x50
|
|
strh r1, [r0]
|
|
ldr r0, _0802B71C
|
|
ldrh r0, [r0]
|
|
adds r1, r2, 0
|
|
adds r1, 0x56
|
|
strh r0, [r1]
|
|
adds r0, r2, 0
|
|
adds r0, 0x38
|
|
bl sub_8013984
|
|
bl sub_802B880
|
|
bl sub_802B8D4
|
|
movs r0, 0x1
|
|
_0802B706:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0802B710: .4byte gUnknown_203B2CC
|
|
_0802B714: .4byte gUnknown_80DFBEC
|
|
_0802B718: .4byte gUnknown_203B2D0
|
|
_0802B71C: .4byte gUnknown_203B2D2
|
|
thumb_func_end sub_802B640
|
|
|
|
thumb_func_start sub_802B720
|
|
sub_802B720:
|
|
push {lr}
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802B73C
|
|
ldr r0, _0802B738
|
|
ldr r0, [r0]
|
|
adds r0, 0x38
|
|
bl sub_8013660
|
|
movs r0, 0
|
|
b _0802B7A2
|
|
.align 2, 0
|
|
_0802B738: .4byte gUnknown_203B2CC
|
|
_0802B73C:
|
|
ldr r0, _0802B754
|
|
ldr r0, [r0]
|
|
adds r0, 0x38
|
|
bl GetKeyPress
|
|
cmp r0, 0x2
|
|
beq _0802B75E
|
|
cmp r0, 0x2
|
|
bgt _0802B758
|
|
cmp r0, 0x1
|
|
beq _0802B768
|
|
b _0802B77C
|
|
.align 2, 0
|
|
_0802B754: .4byte gUnknown_203B2CC
|
|
_0802B758:
|
|
cmp r0, 0x4
|
|
beq _0802B772
|
|
b _0802B77C
|
|
_0802B75E:
|
|
movs r0, 0x1
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x2
|
|
b _0802B7A2
|
|
_0802B768:
|
|
movs r0, 0
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x3
|
|
b _0802B7A2
|
|
_0802B772:
|
|
movs r0, 0x4
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x4
|
|
b _0802B7A2
|
|
_0802B77C:
|
|
ldr r0, _0802B794
|
|
ldr r0, [r0]
|
|
adds r0, 0x38
|
|
movs r1, 0x1
|
|
bl sub_80138B8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802B798
|
|
movs r0, 0
|
|
b _0802B7A2
|
|
.align 2, 0
|
|
_0802B794: .4byte gUnknown_203B2CC
|
|
_0802B798:
|
|
bl sub_802B880
|
|
bl sub_802B8D4
|
|
movs r0, 0x1
|
|
_0802B7A2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_802B720
|
|
|
|
thumb_func_start sub_802B7A8
|
|
sub_802B7A8:
|
|
ldr r0, _0802B7CC
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x56
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
subs r0, 0x2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
muls r0, r1
|
|
adds r1, r2, 0
|
|
adds r1, 0x50
|
|
movs r3, 0
|
|
ldrsh r1, [r1, r3]
|
|
adds r0, r1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0802B7CC: .4byte gUnknown_203B2CC
|
|
thumb_func_end sub_802B7A8
|
|
|
|
thumb_func_start sub_802B7D0
|
|
sub_802B7D0:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl ResetUnusedInputStruct
|
|
ldr r5, _0802B818
|
|
ldr r0, [r5]
|
|
adds r0, 0x74
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_800641C
|
|
bl sub_802B9A8
|
|
adds r1, r0, 0
|
|
ldr r0, [r5]
|
|
adds r2, r0, 0
|
|
adds r2, 0x5A
|
|
strh r1, [r2]
|
|
adds r0, 0x38
|
|
bl sub_8013984
|
|
bl sub_802B880
|
|
bl sub_802B8D4
|
|
cmp r4, 0
|
|
beq _0802B812
|
|
ldr r0, [r5]
|
|
adds r0, 0x38
|
|
bl AddMenuCursorSprite
|
|
_0802B812:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802B818: .4byte gUnknown_203B2CC
|
|
thumb_func_end sub_802B7D0
|
|
|
|
thumb_func_start sub_802B81C
|
|
sub_802B81C:
|
|
push {r4,r5,lr}
|
|
ldr r4, _0802B870
|
|
ldr r2, [r4]
|
|
cmp r2, 0
|
|
beq _0802B86A
|
|
ldr r1, _0802B874
|
|
adds r0, r2, 0
|
|
adds r0, 0x50
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldr r1, _0802B878
|
|
adds r0, r2, 0
|
|
adds r0, 0x56
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldr r0, [r2, 0x6C]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x74
|
|
ldr r0, _0802B87C
|
|
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, 0x74
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_0802B86A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802B870: .4byte gUnknown_203B2CC
|
|
_0802B874: .4byte gUnknown_203B2D0
|
|
_0802B878: .4byte gUnknown_203B2D2
|
|
_0802B87C: .4byte gUnknown_80DFBD0
|
|
thumb_func_end sub_802B81C
|
|
|
|
thumb_func_start sub_802B880
|
|
sub_802B880:
|
|
push {r4,lr}
|
|
ldr r4, _0802B8D0
|
|
ldr r0, [r4]
|
|
adds r0, 0x52
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0xC
|
|
bl sub_80095E4
|
|
adds r0, 0x2
|
|
lsls r0, 16
|
|
ldr r2, [r4]
|
|
ldr r3, [r2, 0x6C]
|
|
lsls r1, r3, 1
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x82
|
|
asrs r3, r0, 16
|
|
lsrs r0, 16
|
|
strh r0, [r1]
|
|
ldr r1, [r2, 0x6C]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, r0
|
|
adds r3, 0x2
|
|
adds r2, 0x84
|
|
strh r3, [r2]
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r4]
|
|
adds r0, 0x74
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802B8D0: .4byte gUnknown_203B2CC
|
|
thumb_func_end sub_802B880
|
|
|
|
thumb_func_start sub_802B8D4
|
|
sub_802B8D4:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
ldr r4, _0802B99C
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x6C]
|
|
bl sub_8008C54
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x6C]
|
|
bl sub_80073B8
|
|
ldr r2, _0802B9A0
|
|
ldr r0, [r4]
|
|
ldr r3, [r0, 0x6C]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0xA
|
|
movs r1, 0
|
|
bl xxx_call_draw_string
|
|
ldr r0, _0802B9A4
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 3
|
|
adds r0, 0x4
|
|
ldr r3, [r4]
|
|
adds r1, r3, 0
|
|
adds r1, 0x56
|
|
movs r5, 0
|
|
ldrsh r2, [r1, r5]
|
|
adds r2, 0x1
|
|
movs r1, 0x7
|
|
str r1, [sp]
|
|
ldr r1, [r3, 0x6C]
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
movs r3, 0x2
|
|
bl sub_8012BC4
|
|
movs r6, 0
|
|
ldr r0, [r4]
|
|
adds r0, 0x52
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r6, r0
|
|
bge _0802B98A
|
|
adds r7, r4, 0
|
|
_0802B930:
|
|
ldr r0, [r7]
|
|
adds r0, 0x38
|
|
adds r1, r6, 0
|
|
bl sub_8013800
|
|
adds r5, r0, 0
|
|
ldr r1, [r7]
|
|
adds r0, r1, 0
|
|
adds r0, 0x56
|
|
movs r3, 0
|
|
ldrsh r2, [r0, r3]
|
|
subs r0, 0x2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
muls r0, r2
|
|
adds r0, r6
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0]
|
|
ldr r3, [r1, 0x6C]
|
|
movs r0, 0xA
|
|
adds r1, r5, 0
|
|
movs r2, 0x6
|
|
bl sub_803B6B0
|
|
bl sub_802BC7C
|
|
adds r0, r4, 0
|
|
bl GetPokemonMailHeadline
|
|
adds r2, r0, 0
|
|
ldr r0, [r7]
|
|
ldr r3, [r0, 0x6C]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x15
|
|
adds r1, r5, 0
|
|
bl sub_8014FF0
|
|
adds r6, 0x1
|
|
ldr r0, [r7]
|
|
adds r0, 0x52
|
|
movs r5, 0
|
|
ldrsh r0, [r0, r5]
|
|
cmp r6, r0
|
|
blt _0802B930
|
|
_0802B98A:
|
|
ldr r0, _0802B99C
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x6C]
|
|
bl sub_80073E0
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802B99C: .4byte gUnknown_203B2CC
|
|
_0802B9A0: .4byte gUnknown_80DFC04
|
|
_0802B9A4: .4byte gUnknown_80DFBE8
|
|
thumb_func_end sub_802B8D4
|
|
|
|
thumb_func_start sub_802B9A8
|
|
sub_802B9A8:
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
movs r4, 0
|
|
_0802B9AE:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096E14
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0802B9C6
|
|
ldr r0, _0802B9D4
|
|
ldr r0, [r0]
|
|
adds r0, r5
|
|
strb r4, [r0]
|
|
adds r5, 0x1
|
|
_0802B9C6:
|
|
adds r4, 0x1
|
|
cmp r4, 0x37
|
|
ble _0802B9AE
|
|
adds r0, r5, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0802B9D4: .4byte gUnknown_203B2CC
|
|
thumb_func_end sub_802B9A8
|
|
|
|
thumb_func_start sub_802B9D8
|
|
sub_802B9D8:
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_0802B9DC:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096E14
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0802B9EE
|
|
movs r0, 0
|
|
b _0802B9F6
|
|
_0802B9EE:
|
|
adds r4, 0x1
|
|
cmp r4, 0x37
|
|
ble _0802B9DC
|
|
movs r0, 0x1
|
|
_0802B9F6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_802B9D8
|
|
|
|
thumb_func_start sub_802B9FC
|
|
sub_802B9FC:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r5, _0802BA80
|
|
movs r0, 0x94
|
|
movs r1, 0x8
|
|
bl MemoryAlloc
|
|
str r0, [r5]
|
|
movs r6, 0
|
|
strb r4, [r0, 0x4]
|
|
ldr r0, [r5]
|
|
adds r0, 0x88
|
|
bl sub_801317C
|
|
ldr r1, [r5]
|
|
str r6, [r1, 0x24]
|
|
adds r1, 0x28
|
|
ldr r0, _0802BA84
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldr r1, [r5]
|
|
ldr r2, _0802BA88
|
|
adds r1, 0x40
|
|
adds r0, r2, 0
|
|
ldm r0!, {r3,r4,r7}
|
|
stm r1!, {r3,r4,r7}
|
|
ldm r0!, {r3,r4,r7}
|
|
stm r1!, {r3,r4,r7}
|
|
ldr r1, [r5]
|
|
adds r1, 0x58
|
|
adds r0, r2, 0
|
|
ldm r0!, {r3,r4,r7}
|
|
stm r1!, {r3,r4,r7}
|
|
ldm r0!, {r3,r4,r7}
|
|
stm r1!, {r3,r4,r7}
|
|
ldr r0, [r5]
|
|
adds r0, 0x70
|
|
ldm r2!, {r1,r4,r7}
|
|
stm r0!, {r1,r4,r7}
|
|
ldm r2!, {r3,r4,r7}
|
|
stm r0!, {r3,r4,r7}
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r5]
|
|
adds r0, 0x28
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r0, [r5]
|
|
str r6, [r0, 0x8]
|
|
bl sub_802BCC4
|
|
bl sub_802BC7C
|
|
movs r0, 0
|
|
bl sub_802BB14
|
|
movs r0, 0x1
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0802BA80: .4byte gUnknown_203B2D4
|
|
_0802BA84: .4byte gUnknown_80DFC34
|
|
_0802BA88: .4byte gUnknown_80DFC18
|
|
thumb_func_end sub_802B9FC
|
|
|
|
thumb_func_start sub_802BA8C
|
|
sub_802BA8C:
|
|
push {lr}
|
|
ldr r0, _0802BAA4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0802BAB8
|
|
cmp r0, 0x1
|
|
bgt _0802BAA8
|
|
cmp r0, 0
|
|
beq _0802BAB2
|
|
b _0802BAC2
|
|
.align 2, 0
|
|
_0802BAA4: .4byte gUnknown_203B2D4
|
|
_0802BAA8:
|
|
cmp r0, 0x2
|
|
beq _0802BAC2
|
|
cmp r0, 0x3
|
|
beq _0802BABE
|
|
b _0802BAC2
|
|
_0802BAB2:
|
|
bl sub_802BB98
|
|
b _0802BAC6
|
|
_0802BAB8:
|
|
bl sub_802BC08
|
|
b _0802BAC6
|
|
_0802BABE:
|
|
movs r0, 0x3
|
|
b _0802BAC8
|
|
_0802BAC2:
|
|
movs r0, 0x2
|
|
b _0802BAC8
|
|
_0802BAC6:
|
|
movs r0, 0
|
|
_0802BAC8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_802BA8C
|
|
|
|
thumb_func_start sub_802BACC
|
|
sub_802BACC:
|
|
push {r4,r5,lr}
|
|
ldr r4, _0802BB0C
|
|
ldr r2, [r4]
|
|
cmp r2, 0
|
|
beq _0802BB06
|
|
ldr r0, [r2, 0x24]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x28
|
|
ldr r0, _0802BB10
|
|
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, 0x28
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_0802BB06:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802BB0C: .4byte gUnknown_203B2D4
|
|
_0802BB10: .4byte gUnknown_80DFC18
|
|
thumb_func_end sub_802BACC
|
|
|
|
thumb_func_start sub_802BB14
|
|
sub_802BB14:
|
|
push {lr}
|
|
ldr r1, _0802BB24
|
|
ldr r1, [r1]
|
|
str r0, [r1]
|
|
bl sub_802BB28
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802BB24: .4byte gUnknown_203B2D4
|
|
thumb_func_end sub_802BB14
|
|
|
|
thumb_func_start sub_802BB28
|
|
sub_802BB28:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r5, _0802BB94
|
|
ldr r1, [r5]
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
blt _0802BB8C
|
|
cmp r0, 0x1
|
|
bgt _0802BB8C
|
|
ldr r0, [r1, 0x24]
|
|
bl sub_8008C54
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x24]
|
|
bl sub_80073B8
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x4]
|
|
bl GetPokemonMailHeadline
|
|
adds r2, r0, 0
|
|
ldr r0, [r5]
|
|
ldr r3, [r0, 0x24]
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
movs r0, 0xA
|
|
movs r1, 0
|
|
bl sub_8014FF0
|
|
ldr r3, [r5]
|
|
ldr r1, [r3, 0x8]
|
|
lsls r1, 2
|
|
adds r0, r3, 0
|
|
adds r0, 0x10
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
ldr r3, [r3, 0x24]
|
|
str r4, [sp]
|
|
movs r0, 0x6
|
|
movs r1, 0x14
|
|
bl sub_8014FF0
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x24]
|
|
bl sub_80073E0
|
|
ldr r1, [r5]
|
|
ldr r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x8]
|
|
_0802BB8C:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802BB94: .4byte gUnknown_203B2D4
|
|
thumb_func_end sub_802BB28
|
|
|
|
thumb_func_start sub_802BB98
|
|
sub_802BB98:
|
|
push {r4,lr}
|
|
ldr r0, _0802BBD4
|
|
ldr r2, [r0]
|
|
ldr r1, [r2, 0xC]
|
|
adds r4, r0, 0
|
|
cmp r1, 0
|
|
beq _0802BBBC
|
|
ldr r0, [r2, 0x20]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0802BBB4
|
|
bl sub_8013E54
|
|
_0802BBB4:
|
|
ldr r1, [r4]
|
|
ldr r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x20]
|
|
_0802BBBC:
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x88
|
|
ldr r1, [r1, 0x24]
|
|
bl sub_8012A64
|
|
cmp r0, 0x1
|
|
beq _0802BBD8
|
|
cmp r0, 0x2
|
|
beq _0802BBF6
|
|
b _0802BC02
|
|
.align 2, 0
|
|
_0802BBD4: .4byte gUnknown_203B2D4
|
|
_0802BBD8:
|
|
movs r0, 0
|
|
bl PlayMenuSoundEffect
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0xC]
|
|
cmp r0, 0
|
|
beq _0802BBEE
|
|
movs r0, 0x1
|
|
bl sub_802BB14
|
|
b _0802BC02
|
|
_0802BBEE:
|
|
movs r0, 0x3
|
|
bl sub_802BB14
|
|
b _0802BC02
|
|
_0802BBF6:
|
|
movs r0, 0x1
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x2
|
|
bl sub_802BB14
|
|
_0802BC02:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_802BB98
|
|
|
|
thumb_func_start sub_802BC08
|
|
sub_802BC08:
|
|
push {r4,lr}
|
|
ldr r0, _0802BC44
|
|
ldr r3, [r0]
|
|
ldr r2, [r3, 0x8]
|
|
ldr r1, [r3, 0xC]
|
|
adds r4, r0, 0
|
|
cmp r2, r1
|
|
bge _0802BC2E
|
|
ldr r0, [r3, 0x20]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0802BC26
|
|
bl sub_8013E54
|
|
_0802BC26:
|
|
ldr r1, [r4]
|
|
ldr r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x20]
|
|
_0802BC2E:
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x88
|
|
ldr r1, [r1, 0x24]
|
|
bl sub_8012A64
|
|
cmp r0, 0x1
|
|
beq _0802BC48
|
|
cmp r0, 0x2
|
|
beq _0802BC68
|
|
b _0802BC74
|
|
.align 2, 0
|
|
_0802BC44: .4byte gUnknown_203B2D4
|
|
_0802BC48:
|
|
movs r0, 0
|
|
bl PlayMenuSoundEffect
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, 0x8]
|
|
ldr r0, [r0, 0xC]
|
|
cmp r1, r0
|
|
bge _0802BC60
|
|
movs r0, 0x1
|
|
bl sub_802BB14
|
|
b _0802BC74
|
|
_0802BC60:
|
|
movs r0, 0x3
|
|
bl sub_802BB14
|
|
b _0802BC74
|
|
_0802BC68:
|
|
movs r0, 0x1
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x2
|
|
bl sub_802BB14
|
|
_0802BC74:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_802BC08
|
|
|
|
thumb_func_start sub_802BC7C
|
|
sub_802BC7C:
|
|
push {r4,lr}
|
|
ldr r4, _0802BCA4
|
|
bl sub_808D3BC
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
bl sub_808DA34
|
|
ldr r0, _0802BCA8
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0xB]
|
|
cmp r0, 0x1
|
|
bne _0802BCB0
|
|
adds r0, r4, 0
|
|
adds r0, 0x50
|
|
ldr r1, _0802BCAC
|
|
bl strcpy
|
|
b _0802BCBA
|
|
.align 2, 0
|
|
_0802BCA4: .4byte gAvailablePokemonNames
|
|
_0802BCA8: .4byte gUnknown_203B46C
|
|
_0802BCAC: .4byte gUnknown_80DFC4C
|
|
_0802BCB0:
|
|
adds r0, r4, 0
|
|
adds r0, 0x50
|
|
ldr r1, _0802BCC0
|
|
bl strcpy
|
|
_0802BCBA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802BCC0: .4byte gUnknown_80DFC50
|
|
thumb_func_end sub_802BC7C
|
|
|
|
thumb_func_start sub_802BCC4
|
|
sub_802BCC4:
|
|
push {r4,lr}
|
|
ldr r4, _0802BCDC
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x4]
|
|
bl GetPokemonMailText
|
|
adds r3, r0, 0
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
str r0, [r1, 0xC]
|
|
str r3, [r1, 0x10]
|
|
b _0802BD08
|
|
.align 2, 0
|
|
_0802BCDC: .4byte gUnknown_203B2D4
|
|
_0802BCE0:
|
|
cmp r0, 0x23
|
|
bne _0802BD06
|
|
ldrb r2, [r3, 0x1]
|
|
cmp r2, 0x50
|
|
beq _0802BCF0
|
|
adds r1, r3, 0x2
|
|
cmp r2, 0x70
|
|
bne _0802BD02
|
|
_0802BCF0:
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, 0xC]
|
|
adds r1, 0x1
|
|
str r1, [r0, 0xC]
|
|
lsls r1, 2
|
|
adds r0, 0x10
|
|
adds r0, r1
|
|
adds r1, r3, 0x2
|
|
str r1, [r0]
|
|
_0802BD02:
|
|
adds r3, r1, 0
|
|
b _0802BD08
|
|
_0802BD06:
|
|
adds r3, 0x1
|
|
_0802BD08:
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
bne _0802BCE0
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_802BCC4
|
|
|
|
thumb_func_start sub_802BD14
|
|
sub_802BD14:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
mov r8, r2
|
|
bl sub_802C0E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0802BD2E
|
|
movs r0, 0
|
|
b _0802BDD4
|
|
_0802BD2E:
|
|
ldr r5, _0802BDE0
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
bne _0802BD40
|
|
movs r0, 0xA4
|
|
movs r1, 0x8
|
|
bl MemoryAlloc
|
|
str r0, [r5]
|
|
_0802BD40:
|
|
ldr r0, [r5]
|
|
str r6, [r0, 0x38]
|
|
lsls r1, r6, 1
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, 0x40
|
|
adds r1, r0, r1
|
|
str r1, [r0, 0x3C]
|
|
adds r0, 0x40
|
|
bl sub_8006518
|
|
ldr r1, [r5]
|
|
ldr r2, [r1, 0x38]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r1, 0x40
|
|
ldr r0, _0802BDE4
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldr r2, [r5]
|
|
ldr r1, [r2, 0x3C]
|
|
adds r0, r2, 0
|
|
adds r0, 0xA0
|
|
str r0, [r1, 0x14]
|
|
cmp r4, 0
|
|
beq _0802BD8E
|
|
ldr r1, [r2, 0x38]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r1, r2, 0
|
|
adds r1, 0x48
|
|
adds r1, r0
|
|
ldr r0, [r4]
|
|
str r0, [r1]
|
|
_0802BD8E:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x3C]
|
|
mov r1, r8
|
|
bl sub_8012D34
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r5]
|
|
adds r0, 0x40
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r4, [r5]
|
|
adds r4, 0x4
|
|
bl sub_802C0B8
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
mov r2, r8
|
|
adds r3, r6, 0
|
|
bl sub_8013848
|
|
ldr r0, [r5]
|
|
ldr r1, _0802BDE8
|
|
ldrh r1, [r1]
|
|
strh r1, [r0, 0x1C]
|
|
adds r0, 0x4
|
|
bl sub_8013984
|
|
bl sub_802BF30
|
|
bl CreateMailMenu
|
|
movs r0, 0x1
|
|
_0802BDD4:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0802BDE0: .4byte gUnknown_203B2D8
|
|
_0802BDE4: .4byte gUnknown_80DFC74
|
|
_0802BDE8: .4byte gUnknown_203B2DC
|
|
thumb_func_end sub_802BD14
|
|
|
|
thumb_func_start sub_802BDEC
|
|
sub_802BDEC:
|
|
push {lr}
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802BE08
|
|
ldr r0, _0802BE04
|
|
ldr r0, [r0]
|
|
adds r0, 0x4
|
|
bl sub_8013660
|
|
movs r0, 0
|
|
b _0802BE6E
|
|
.align 2, 0
|
|
_0802BE04: .4byte gUnknown_203B2D8
|
|
_0802BE08:
|
|
ldr r0, _0802BE20
|
|
ldr r0, [r0]
|
|
adds r0, 0x4
|
|
bl GetKeyPress
|
|
cmp r0, 0x2
|
|
beq _0802BE2A
|
|
cmp r0, 0x2
|
|
bgt _0802BE24
|
|
cmp r0, 0x1
|
|
beq _0802BE34
|
|
b _0802BE48
|
|
.align 2, 0
|
|
_0802BE20: .4byte gUnknown_203B2D8
|
|
_0802BE24:
|
|
cmp r0, 0x4
|
|
beq _0802BE3E
|
|
b _0802BE48
|
|
_0802BE2A:
|
|
movs r0, 0x1
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x2
|
|
b _0802BE6E
|
|
_0802BE34:
|
|
movs r0, 0
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x3
|
|
b _0802BE6E
|
|
_0802BE3E:
|
|
movs r0, 0x4
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x4
|
|
b _0802BE6E
|
|
_0802BE48:
|
|
ldr r0, _0802BE60
|
|
ldr r0, [r0]
|
|
adds r0, 0x4
|
|
movs r1, 0x1
|
|
bl sub_80138B8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802BE64
|
|
movs r0, 0
|
|
b _0802BE6E
|
|
.align 2, 0
|
|
_0802BE60: .4byte gUnknown_203B2D8
|
|
_0802BE64:
|
|
bl sub_802BF30
|
|
bl CreateMailMenu
|
|
movs r0, 0x1
|
|
_0802BE6E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_802BDEC
|
|
|
|
thumb_func_start sub_802BE74
|
|
sub_802BE74:
|
|
ldr r0, _0802BE90
|
|
ldr r1, [r0]
|
|
movs r0, 0x22
|
|
ldrsh r2, [r1, r0]
|
|
movs r3, 0x20
|
|
ldrsh r0, [r1, r3]
|
|
muls r0, r2
|
|
movs r3, 0x1C
|
|
ldrsh r2, [r1, r3]
|
|
adds r0, r2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0802BE90: .4byte gUnknown_203B2D8
|
|
thumb_func_end sub_802BE74
|
|
|
|
thumb_func_start sub_802BE94
|
|
sub_802BE94:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl ResetUnusedInputStruct
|
|
ldr r5, _0802BED8
|
|
ldr r0, [r5]
|
|
adds r0, 0x40
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_800641C
|
|
bl sub_802C0B8
|
|
adds r1, r0, 0
|
|
ldr r0, [r5]
|
|
strh r1, [r0, 0x26]
|
|
adds r0, 0x4
|
|
bl sub_8013984
|
|
bl sub_802BF30
|
|
bl CreateMailMenu
|
|
cmp r4, 0
|
|
beq _0802BED2
|
|
ldr r0, [r5]
|
|
adds r0, 0x4
|
|
bl AddMenuCursorSprite
|
|
_0802BED2:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802BED8: .4byte gUnknown_203B2D8
|
|
thumb_func_end sub_802BE94
|
|
|
|
thumb_func_start sub_802BEDC
|
|
sub_802BEDC:
|
|
push {r4,r5,lr}
|
|
ldr r4, _0802BF24
|
|
ldr r2, [r4]
|
|
cmp r2, 0
|
|
beq _0802BF1C
|
|
ldr r1, _0802BF28
|
|
ldrh r0, [r2, 0x1C]
|
|
strh r0, [r1]
|
|
ldr r0, [r2, 0x38]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x40
|
|
ldr r0, _0802BF2C
|
|
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, 0x40
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_0802BF1C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802BF24: .4byte gUnknown_203B2D8
|
|
_0802BF28: .4byte gUnknown_203B2DC
|
|
_0802BF2C: .4byte gUnknown_80DFC5C
|
|
thumb_func_end sub_802BEDC
|
|
|
|
thumb_func_start sub_802BF30
|
|
sub_802BF30:
|
|
push {r4,lr}
|
|
ldr r4, _0802BF9C
|
|
ldr r0, [r4]
|
|
adds r0, 0xA0
|
|
movs r2, 0
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xA1
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xA2
|
|
movs r1, 0xC
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xA3
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0x18
|
|
bl sub_8009614
|
|
adds r0, 0x2
|
|
lsls r0, 16
|
|
ldr r2, [r4]
|
|
ldr r3, [r2, 0x38]
|
|
lsls r1, r3, 1
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x4E
|
|
asrs r3, r0, 16
|
|
lsrs r0, 16
|
|
strh r0, [r1]
|
|
ldr r1, [r2, 0x38]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, r0
|
|
adds r3, 0x2
|
|
adds r2, 0x50
|
|
strh r3, [r2]
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r4]
|
|
adds r0, 0x40
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802BF9C: .4byte gUnknown_203B2D8
|
|
thumb_func_end sub_802BF30
|
|
|
|
thumb_func_start CreateMailMenu
|
|
CreateMailMenu:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0xDC
|
|
ldr r4, _0802C060
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x38]
|
|
bl sub_8008C54
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x38]
|
|
bl sub_80073B8
|
|
ldr r1, [r4]
|
|
movs r2, 0x22
|
|
ldrsh r0, [r1, r2]
|
|
lsls r0, 3
|
|
adds r0, 0xA
|
|
ldr r2, _0802C064
|
|
ldr r3, [r1, 0x38]
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
bl xxx_call_draw_string
|
|
movs r6, 0
|
|
ldr r0, [r4]
|
|
movs r3, 0x1E
|
|
ldrsh r0, [r0, r3]
|
|
cmp r6, r0
|
|
bge _0802C09A
|
|
adds r7, r4, 0
|
|
ldr r0, _0802C068
|
|
mov r9, r0
|
|
add r1, sp, 0x5C
|
|
mov r8, r1
|
|
_0802BFE8:
|
|
ldr r1, [r7]
|
|
movs r3, 0x22
|
|
ldrsh r2, [r1, r3]
|
|
movs r3, 0x20
|
|
ldrsh r0, [r1, r3]
|
|
muls r0, r2
|
|
adds r0, r6
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bl sub_8095FE8
|
|
adds r5, r0, 0
|
|
ldr r0, [r7]
|
|
ldr r1, [r0, 0x38]
|
|
str r1, [sp, 0x4]
|
|
adds r0, 0x4
|
|
adds r1, r6, 0
|
|
bl sub_8013800
|
|
str r0, [sp, 0x4C]
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x1
|
|
bne _0802C06C
|
|
ldr r0, [r7]
|
|
adds r0, 0x4
|
|
adds r1, r6, 0
|
|
bl sub_8013800
|
|
adds r4, r0, 0
|
|
ldr r0, [r7]
|
|
ldr r3, [r0, 0x38]
|
|
movs r0, 0xA
|
|
adds r1, r4, 0
|
|
movs r2, 0x6
|
|
bl sub_803B6B0
|
|
bl sub_808D33C
|
|
adds r1, r0, 0
|
|
mov r0, r9
|
|
bl sub_808DA34
|
|
ldrb r0, [r5, 0x5]
|
|
bl GetPokemonMailHeadline
|
|
adds r1, r0, 0
|
|
mov r0, r8
|
|
mov r2, r9
|
|
bl ExpandPlaceholdersBuffer
|
|
ldr r0, [r7]
|
|
ldr r3, [r0, 0x38]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x15
|
|
adds r1, r4, 0
|
|
mov r2, r8
|
|
bl xxx_call_draw_string
|
|
b _0802C08E
|
|
.align 2, 0
|
|
_0802C060: .4byte gUnknown_203B2D8
|
|
_0802C064: .4byte gMailboxText
|
|
_0802C068: .4byte gAvailablePokemonNames
|
|
_0802C06C:
|
|
adds r0, r5, 0
|
|
add r1, sp, 0x4
|
|
bl sub_803B35C
|
|
adds r0, r5, 0
|
|
bl sub_80968B0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0802C088
|
|
mov r1, sp
|
|
adds r1, 0x47
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
_0802C088:
|
|
add r0, sp, 0x4
|
|
bl sub_803B6D4
|
|
_0802C08E:
|
|
adds r6, 0x1
|
|
ldr r0, [r7]
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r0, r1]
|
|
cmp r6, r0
|
|
blt _0802BFE8
|
|
_0802C09A:
|
|
ldr r0, _0802C0B4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x38]
|
|
bl sub_80073E0
|
|
add sp, 0xDC
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802C0B4: .4byte gUnknown_203B2D8
|
|
thumb_func_end CreateMailMenu
|
|
|
|
thumb_func_start sub_802C0B8
|
|
sub_802C0B8:
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
movs r4, 0
|
|
_0802C0BE:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096000
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802C0D6
|
|
ldr r0, _0802C0E4
|
|
ldr r0, [r0]
|
|
adds r0, r5
|
|
strb r4, [r0]
|
|
adds r5, 0x1
|
|
_0802C0D6:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0802C0BE
|
|
adds r0, r5, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0802C0E4: .4byte gUnknown_203B2D8
|
|
thumb_func_end sub_802C0B8
|
|
|
|
thumb_func_start sub_802C0E8
|
|
sub_802C0E8:
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_0802C0EC:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096000
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802C0FE
|
|
movs r0, 0
|
|
b _0802C106
|
|
_0802C0FE:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0802C0EC
|
|
movs r0, 0x1
|
|
_0802C106:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_802C0E8
|
|
|
|
thumb_func_start sub_802C10C
|
|
sub_802C10C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
mov r8, r2
|
|
bl sub_802C4A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0802C126
|
|
movs r0, 0
|
|
b _0802C1CC
|
|
_0802C126:
|
|
ldr r5, _0802C1D8
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
bne _0802C138
|
|
movs r0, 0xA8
|
|
movs r1, 0x8
|
|
bl MemoryAlloc
|
|
str r0, [r5]
|
|
_0802C138:
|
|
ldr r0, [r5]
|
|
str r6, [r0, 0x3C]
|
|
lsls r1, r6, 1
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, 0x44
|
|
adds r1, r0, r1
|
|
str r1, [r0, 0x40]
|
|
adds r0, 0x44
|
|
bl sub_8006518
|
|
ldr r1, [r5]
|
|
ldr r2, [r1, 0x3C]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r1, 0x44
|
|
ldr r0, _0802C1DC
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldr r2, [r5]
|
|
ldr r1, [r2, 0x40]
|
|
adds r0, r2, 0
|
|
adds r0, 0xA4
|
|
str r0, [r1, 0x14]
|
|
cmp r4, 0
|
|
beq _0802C186
|
|
ldr r1, [r2, 0x3C]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r1, r2, 0
|
|
adds r1, 0x4C
|
|
adds r1, r0
|
|
ldr r0, [r4]
|
|
str r0, [r1]
|
|
_0802C186:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x40]
|
|
mov r1, r8
|
|
bl sub_8012D34
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r5]
|
|
adds r0, 0x44
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r4, [r5]
|
|
adds r4, 0x8
|
|
bl sub_802C474
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
mov r2, r8
|
|
adds r3, r6, 0
|
|
bl sub_8013848
|
|
ldr r0, [r5]
|
|
ldr r1, _0802C1E0
|
|
ldrh r1, [r1]
|
|
strh r1, [r0, 0x20]
|
|
adds r0, 0x8
|
|
bl sub_8013984
|
|
bl sub_802C328
|
|
bl sub_802C39C
|
|
movs r0, 0x1
|
|
_0802C1CC:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0802C1D8: .4byte gUnknown_203B2E0
|
|
_0802C1DC: .4byte gUnknown_80DFCB4
|
|
_0802C1E0: .4byte gUnknown_203B2E4
|
|
thumb_func_end sub_802C10C
|
|
|
|
thumb_func_start sub_802C1E4
|
|
sub_802C1E4:
|
|
push {lr}
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802C200
|
|
ldr r0, _0802C1FC
|
|
ldr r0, [r0]
|
|
adds r0, 0x8
|
|
bl sub_8013660
|
|
movs r0, 0
|
|
b _0802C266
|
|
.align 2, 0
|
|
_0802C1FC: .4byte gUnknown_203B2E0
|
|
_0802C200:
|
|
ldr r0, _0802C218
|
|
ldr r0, [r0]
|
|
adds r0, 0x8
|
|
bl GetKeyPress
|
|
cmp r0, 0x2
|
|
beq _0802C222
|
|
cmp r0, 0x2
|
|
bgt _0802C21C
|
|
cmp r0, 0x1
|
|
beq _0802C22C
|
|
b _0802C240
|
|
.align 2, 0
|
|
_0802C218: .4byte gUnknown_203B2E0
|
|
_0802C21C:
|
|
cmp r0, 0x4
|
|
beq _0802C236
|
|
b _0802C240
|
|
_0802C222:
|
|
movs r0, 0x1
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x2
|
|
b _0802C266
|
|
_0802C22C:
|
|
movs r0, 0
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x3
|
|
b _0802C266
|
|
_0802C236:
|
|
movs r0, 0x4
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x4
|
|
b _0802C266
|
|
_0802C240:
|
|
ldr r0, _0802C258
|
|
ldr r0, [r0]
|
|
adds r0, 0x8
|
|
movs r1, 0x1
|
|
bl sub_80138B8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802C25C
|
|
movs r0, 0
|
|
b _0802C266
|
|
.align 2, 0
|
|
_0802C258: .4byte gUnknown_203B2E0
|
|
_0802C25C:
|
|
bl sub_802C328
|
|
bl sub_802C39C
|
|
movs r0, 0x1
|
|
_0802C266:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_802C1E4
|
|
|
|
thumb_func_start sub_802C26C
|
|
sub_802C26C:
|
|
ldr r0, _0802C288
|
|
ldr r1, [r0]
|
|
movs r0, 0x26
|
|
ldrsh r2, [r1, r0]
|
|
movs r3, 0x24
|
|
ldrsh r0, [r1, r3]
|
|
muls r0, r2
|
|
movs r3, 0x20
|
|
ldrsh r2, [r1, r3]
|
|
adds r0, r2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0802C288: .4byte gUnknown_203B2E0
|
|
thumb_func_end sub_802C26C
|
|
|
|
thumb_func_start sub_802C28C
|
|
sub_802C28C:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl ResetUnusedInputStruct
|
|
ldr r5, _0802C2D0
|
|
ldr r0, [r5]
|
|
adds r0, 0x44
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_800641C
|
|
bl sub_802C474
|
|
adds r1, r0, 0
|
|
ldr r0, [r5]
|
|
strh r1, [r0, 0x2A]
|
|
adds r0, 0x8
|
|
bl sub_8013984
|
|
bl sub_802C328
|
|
bl sub_802C39C
|
|
cmp r4, 0
|
|
beq _0802C2CA
|
|
ldr r0, [r5]
|
|
adds r0, 0x8
|
|
bl AddMenuCursorSprite
|
|
_0802C2CA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802C2D0: .4byte gUnknown_203B2E0
|
|
thumb_func_end sub_802C28C
|
|
|
|
thumb_func_start sub_802C2D4
|
|
sub_802C2D4:
|
|
push {r4,r5,lr}
|
|
ldr r4, _0802C31C
|
|
ldr r2, [r4]
|
|
cmp r2, 0
|
|
beq _0802C314
|
|
ldr r1, _0802C320
|
|
ldrh r0, [r2, 0x20]
|
|
strh r0, [r1]
|
|
ldr r0, [r2, 0x3C]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x44
|
|
ldr r0, _0802C324
|
|
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, 0x44
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_0802C314:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802C31C: .4byte gUnknown_203B2E0
|
|
_0802C320: .4byte gUnknown_203B2E4
|
|
_0802C324: .4byte gUnknown_80DFC9C
|
|
thumb_func_end sub_802C2D4
|
|
|
|
thumb_func_start sub_802C328
|
|
sub_802C328:
|
|
push {r4,lr}
|
|
ldr r4, _0802C398
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0x28]
|
|
adds r0, 0xA4
|
|
movs r2, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0x26]
|
|
adds r0, 0xA5
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xA6
|
|
movs r1, 0xC
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xA7
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
movs r1, 0x22
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0x18
|
|
bl sub_8009614
|
|
adds r0, 0x2
|
|
lsls r0, 16
|
|
ldr r2, [r4]
|
|
ldr r3, [r2, 0x3C]
|
|
lsls r1, r3, 1
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x52
|
|
asrs r3, r0, 16
|
|
lsrs r0, 16
|
|
strh r0, [r1]
|
|
ldr r1, [r2, 0x3C]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, r0
|
|
adds r3, 0x2
|
|
adds r2, 0x54
|
|
strh r3, [r2]
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r4]
|
|
adds r0, 0x44
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802C398: .4byte gUnknown_203B2E0
|
|
thumb_func_end sub_802C328
|
|
|
|
thumb_func_start sub_802C39C
|
|
sub_802C39C:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x60
|
|
ldr r7, _0802C3F8
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x3C]
|
|
bl sub_8008C54
|
|
ldr r0, [r7]
|
|
ldr r0, [r0, 0x3C]
|
|
bl sub_80073B8
|
|
ldr r0, [r7]
|
|
movs r1, 0x26
|
|
ldrsh r4, [r0, r1]
|
|
lsls r4, 3
|
|
adds r5, r4, 0
|
|
adds r5, 0xA
|
|
ldr r2, _0802C3FC
|
|
ldr r3, [r0, 0x3C]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl xxx_call_draw_string
|
|
adds r4, 0x4
|
|
ldr r1, [r7]
|
|
adds r0, r1, 0
|
|
adds r0, 0xA6
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r5, r4, r0
|
|
movs r3, 0x26
|
|
ldrsh r2, [r1, r3]
|
|
adds r2, 0x1
|
|
movs r0, 0x7
|
|
str r0, [sp]
|
|
ldr r0, [r1, 0x3C]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r3, 0x2
|
|
bl sub_8012BC4
|
|
movs r6, 0
|
|
b _0802C452
|
|
.align 2, 0
|
|
_0802C3F8: .4byte gUnknown_203B2E0
|
|
_0802C3FC: .4byte gBulletinBoardText
|
|
_0802C400:
|
|
ldr r1, [r7]
|
|
movs r3, 0x26
|
|
ldrsh r2, [r1, r3]
|
|
movs r3, 0x24
|
|
ldrsh r0, [r1, r3]
|
|
muls r0, r2
|
|
adds r0, r6
|
|
adds r1, r0
|
|
ldrb r5, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8096574
|
|
adds r4, r0, 0
|
|
ldr r0, [r7]
|
|
ldr r1, [r0, 0x3C]
|
|
str r1, [sp, 0x8]
|
|
adds r0, 0x8
|
|
adds r1, r6, 0
|
|
bl sub_8013800
|
|
str r0, [sp, 0x50]
|
|
adds r0, r4, 0
|
|
add r1, sp, 0x8
|
|
bl sub_803B35C
|
|
adds r0, r5, 0
|
|
bl sub_8096574
|
|
bl sub_80968B0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0802C44A
|
|
mov r1, sp
|
|
adds r1, 0x4B
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
_0802C44A:
|
|
add r0, sp, 0x8
|
|
bl sub_803B6D4
|
|
adds r6, 0x1
|
|
_0802C452:
|
|
ldr r0, [r7]
|
|
movs r1, 0x22
|
|
ldrsh r0, [r0, r1]
|
|
cmp r6, r0
|
|
blt _0802C400
|
|
ldr r0, _0802C470
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x3C]
|
|
bl sub_80073E0
|
|
add sp, 0x60
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802C470: .4byte gUnknown_203B2E0
|
|
thumb_func_end sub_802C39C
|
|
|
|
thumb_func_start sub_802C474
|
|
sub_802C474:
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
movs r4, 0
|
|
_0802C47A:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_809658C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802C492
|
|
ldr r0, _0802C4A0
|
|
ldr r0, [r0]
|
|
adds r0, r5
|
|
strb r4, [r0]
|
|
adds r5, 0x1
|
|
_0802C492:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _0802C47A
|
|
adds r0, r5, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0802C4A0: .4byte gUnknown_203B2E0
|
|
thumb_func_end sub_802C474
|
|
|
|
thumb_func_start sub_802C4A4
|
|
sub_802C4A4:
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_0802C4A8:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_809658C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802C4BA
|
|
movs r0, 0
|
|
b _0802C4C2
|
|
_0802C4BA:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _0802C4A8
|
|
movs r0, 0x1
|
|
_0802C4C2:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_802C4A4
|
|
|
|
thumb_func_start sub_802C4C8
|
|
sub_802C4C8:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
mov r8, r2
|
|
bl sub_802C83C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0802C4E2
|
|
movs r0, 0
|
|
b _0802C580
|
|
_0802C4E2:
|
|
ldr r5, _0802C58C
|
|
movs r0, 0xA8
|
|
movs r1, 0x8
|
|
bl MemoryAlloc
|
|
str r0, [r5]
|
|
str r6, [r0, 0x3C]
|
|
lsls r1, r6, 1
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, 0x44
|
|
adds r1, r0, r1
|
|
str r1, [r0, 0x40]
|
|
adds r0, 0x44
|
|
bl sub_8006518
|
|
ldr r1, [r5]
|
|
ldr r2, [r1, 0x3C]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r1, 0x44
|
|
ldr r0, _0802C590
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldr r2, [r5]
|
|
ldr r1, [r2, 0x40]
|
|
adds r0, r2, 0
|
|
adds r0, 0xA4
|
|
str r0, [r1, 0x14]
|
|
cmp r4, 0
|
|
beq _0802C53A
|
|
ldr r1, [r2, 0x3C]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r1, r2, 0
|
|
adds r1, 0x4C
|
|
adds r1, r0
|
|
ldr r0, [r4]
|
|
str r0, [r1]
|
|
_0802C53A:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x40]
|
|
mov r1, r8
|
|
bl sub_8012D34
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r5]
|
|
adds r0, 0x44
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r4, [r5]
|
|
adds r4, 0x8
|
|
bl sub_802C80C
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
mov r2, r8
|
|
adds r3, r6, 0
|
|
bl sub_8013848
|
|
ldr r0, [r5]
|
|
ldr r1, _0802C594
|
|
ldrh r1, [r1]
|
|
strh r1, [r0, 0x20]
|
|
adds r0, 0x8
|
|
bl sub_8013984
|
|
bl sub_802C6DC
|
|
bl sub_802C750
|
|
movs r0, 0x1
|
|
_0802C580:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0802C58C: .4byte gUnknown_203B2E8
|
|
_0802C590: .4byte gUnknown_80DFCFC
|
|
_0802C594: .4byte gUnknown_203B2EC
|
|
thumb_func_end sub_802C4C8
|
|
|
|
thumb_func_start sub_802C598
|
|
sub_802C598:
|
|
push {lr}
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802C5B4
|
|
ldr r0, _0802C5B0
|
|
ldr r0, [r0]
|
|
adds r0, 0x8
|
|
bl sub_8013660
|
|
movs r0, 0
|
|
b _0802C61A
|
|
.align 2, 0
|
|
_0802C5B0: .4byte gUnknown_203B2E8
|
|
_0802C5B4:
|
|
ldr r0, _0802C5CC
|
|
ldr r0, [r0]
|
|
adds r0, 0x8
|
|
bl GetKeyPress
|
|
cmp r0, 0x2
|
|
beq _0802C5D6
|
|
cmp r0, 0x2
|
|
bgt _0802C5D0
|
|
cmp r0, 0x1
|
|
beq _0802C5E0
|
|
b _0802C5F4
|
|
.align 2, 0
|
|
_0802C5CC: .4byte gUnknown_203B2E8
|
|
_0802C5D0:
|
|
cmp r0, 0x4
|
|
beq _0802C5EA
|
|
b _0802C5F4
|
|
_0802C5D6:
|
|
movs r0, 0x1
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x2
|
|
b _0802C61A
|
|
_0802C5E0:
|
|
movs r0, 0
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x3
|
|
b _0802C61A
|
|
_0802C5EA:
|
|
movs r0, 0x4
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x4
|
|
b _0802C61A
|
|
_0802C5F4:
|
|
ldr r0, _0802C60C
|
|
ldr r0, [r0]
|
|
adds r0, 0x8
|
|
movs r1, 0x1
|
|
bl sub_80138B8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802C610
|
|
movs r0, 0
|
|
b _0802C61A
|
|
.align 2, 0
|
|
_0802C60C: .4byte gUnknown_203B2E8
|
|
_0802C610:
|
|
bl sub_802C6DC
|
|
bl sub_802C750
|
|
movs r0, 0x1
|
|
_0802C61A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_802C598
|
|
|
|
thumb_func_start sub_802C620
|
|
sub_802C620:
|
|
ldr r0, _0802C63C
|
|
ldr r1, [r0]
|
|
movs r0, 0x26
|
|
ldrsh r2, [r1, r0]
|
|
movs r3, 0x24
|
|
ldrsh r0, [r1, r3]
|
|
muls r0, r2
|
|
movs r3, 0x20
|
|
ldrsh r2, [r1, r3]
|
|
adds r0, r2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0802C63C: .4byte gUnknown_203B2E8
|
|
thumb_func_end sub_802C620
|
|
|
|
thumb_func_start sub_802C640
|
|
sub_802C640:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl ResetUnusedInputStruct
|
|
ldr r5, _0802C684
|
|
ldr r0, [r5]
|
|
adds r0, 0x44
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_800641C
|
|
bl sub_802C80C
|
|
adds r1, r0, 0
|
|
ldr r0, [r5]
|
|
strh r1, [r0, 0x2A]
|
|
adds r0, 0x8
|
|
bl sub_8013984
|
|
bl sub_802C6DC
|
|
bl sub_802C750
|
|
cmp r4, 0
|
|
beq _0802C67E
|
|
ldr r0, [r5]
|
|
adds r0, 0x8
|
|
bl AddMenuCursorSprite
|
|
_0802C67E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802C684: .4byte gUnknown_203B2E8
|
|
thumb_func_end sub_802C640
|
|
|
|
thumb_func_start sub_802C688
|
|
sub_802C688:
|
|
push {r4,r5,lr}
|
|
ldr r4, _0802C6D0
|
|
ldr r2, [r4]
|
|
cmp r2, 0
|
|
beq _0802C6C8
|
|
ldr r1, _0802C6D4
|
|
ldrh r0, [r2, 0x20]
|
|
strh r0, [r1]
|
|
ldr r0, [r2, 0x3C]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x44
|
|
ldr r0, _0802C6D8
|
|
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, 0x44
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_0802C6C8:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802C6D0: .4byte gUnknown_203B2E8
|
|
_0802C6D4: .4byte gUnknown_203B2EC
|
|
_0802C6D8: .4byte gUnknown_80DFCE4
|
|
thumb_func_end sub_802C688
|
|
|
|
thumb_func_start sub_802C6DC
|
|
sub_802C6DC:
|
|
push {r4,lr}
|
|
ldr r4, _0802C74C
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0x28]
|
|
adds r0, 0xA4
|
|
movs r2, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0x26]
|
|
adds r0, 0xA5
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xA6
|
|
movs r1, 0xC
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xA7
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
movs r1, 0x22
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0x18
|
|
bl sub_8009614
|
|
adds r0, 0x2
|
|
lsls r0, 16
|
|
ldr r2, [r4]
|
|
ldr r3, [r2, 0x3C]
|
|
lsls r1, r3, 1
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x52
|
|
asrs r3, r0, 16
|
|
lsrs r0, 16
|
|
strh r0, [r1]
|
|
ldr r1, [r2, 0x3C]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, r0
|
|
adds r3, 0x2
|
|
adds r2, 0x54
|
|
strh r3, [r2]
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r4]
|
|
adds r0, 0x44
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802C74C: .4byte gUnknown_203B2E8
|
|
thumb_func_end sub_802C6DC
|
|
|
|
thumb_func_start sub_802C750
|
|
sub_802C750:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x60
|
|
ldr r6, _0802C7AC
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x3C]
|
|
bl sub_8008C54
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x3C]
|
|
bl sub_80073B8
|
|
ldr r0, [r6]
|
|
movs r1, 0x26
|
|
ldrsh r4, [r0, r1]
|
|
lsls r4, 3
|
|
adds r5, r4, 0
|
|
adds r5, 0xA
|
|
ldr r2, _0802C7B0
|
|
ldr r3, [r0, 0x3C]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl xxx_call_draw_string
|
|
adds r4, 0x4
|
|
ldr r1, [r6]
|
|
adds r0, r1, 0
|
|
adds r0, 0xA6
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r5, r4, r0
|
|
movs r3, 0x26
|
|
ldrsh r2, [r1, r3]
|
|
adds r2, 0x1
|
|
movs r0, 0x7
|
|
str r0, [sp]
|
|
ldr r0, [r1, 0x3C]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r3, 0x2
|
|
bl sub_8012BC4
|
|
movs r5, 0
|
|
b _0802C7EC
|
|
.align 2, 0
|
|
_0802C7AC: .4byte gUnknown_203B2E8
|
|
_0802C7B0: .4byte gUnknown_80DFD14
|
|
_0802C7B4:
|
|
ldr r1, [r6]
|
|
movs r3, 0x26
|
|
ldrsh r2, [r1, r3]
|
|
movs r3, 0x24
|
|
ldrsh r0, [r1, r3]
|
|
muls r0, r2
|
|
adds r0, r5
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bl sub_8096AB4
|
|
adds r4, r0, 0
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x3C]
|
|
str r1, [sp, 0x8]
|
|
adds r0, 0x8
|
|
adds r1, r5, 0
|
|
bl sub_8013800
|
|
str r0, [sp, 0x50]
|
|
adds r0, r4, 0
|
|
add r1, sp, 0x8
|
|
bl sub_803B35C
|
|
add r0, sp, 0x8
|
|
bl sub_803B6D4
|
|
adds r5, 0x1
|
|
_0802C7EC:
|
|
ldr r0, [r6]
|
|
movs r1, 0x22
|
|
ldrsh r0, [r0, r1]
|
|
cmp r5, r0
|
|
blt _0802C7B4
|
|
ldr r0, _0802C808
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x3C]
|
|
bl sub_80073E0
|
|
add sp, 0x60
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802C808: .4byte gUnknown_203B2E8
|
|
thumb_func_end sub_802C750
|
|
|
|
thumb_func_start sub_802C80C
|
|
sub_802C80C:
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
movs r4, 0
|
|
_0802C812:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096ACC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802C82A
|
|
ldr r0, _0802C838
|
|
ldr r0, [r0]
|
|
adds r0, r5
|
|
strb r4, [r0]
|
|
adds r5, 0x1
|
|
_0802C82A:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _0802C812
|
|
adds r0, r5, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0802C838: .4byte gUnknown_203B2E8
|
|
thumb_func_end sub_802C80C
|
|
|
|
thumb_func_start sub_802C83C
|
|
sub_802C83C:
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_0802C840:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096ACC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802C852
|
|
movs r0, 0
|
|
b _0802C85A
|
|
_0802C852:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _0802C840
|
|
movs r0, 0x1
|
|
_0802C85A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_802C83C
|
|
|
|
thumb_func_start sub_802C860
|
|
sub_802C860:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
bl sub_802C83C
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _0802C890
|
|
ldr r4, _0802C88C
|
|
movs r0, 0xFE
|
|
lsls r0, 1
|
|
movs r1, 0x8
|
|
bl MemoryAlloc
|
|
str r0, [r4]
|
|
str r5, [r0, 0x68]
|
|
str r6, [r0]
|
|
movs r0, 0
|
|
bl sub_802C910
|
|
movs r0, 0x1
|
|
b _0802C892
|
|
.align 2, 0
|
|
_0802C88C: .4byte gUnknown_203B2F0
|
|
_0802C890:
|
|
movs r0, 0
|
|
_0802C892:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_802C860
|
|
|
|
thumb_func_start sub_802C898
|
|
sub_802C898:
|
|
push {lr}
|
|
ldr r0, _0802C8B0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
cmp r0, 0x5
|
|
bhi _0802C8E8
|
|
lsls r0, 2
|
|
ldr r1, _0802C8B4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0802C8B0: .4byte gUnknown_203B2F0
|
|
_0802C8B4: .4byte _0802C8B8
|
|
.align 2, 0
|
|
_0802C8B8:
|
|
.4byte _0802C8D0
|
|
.4byte _0802C8D0
|
|
.4byte _0802C8D6
|
|
.4byte _0802C8DC
|
|
.4byte _0802C8E2
|
|
.4byte _0802C8E8
|
|
_0802C8D0:
|
|
bl sub_802CC00
|
|
b _0802C8EC
|
|
_0802C8D6:
|
|
bl sub_802CC70
|
|
b _0802C8EC
|
|
_0802C8DC:
|
|
bl sub_802CD38
|
|
b _0802C8EC
|
|
_0802C8E2:
|
|
bl sub_802CDB8
|
|
b _0802C8EC
|
|
_0802C8E8:
|
|
movs r0, 0x3
|
|
b _0802C8EE
|
|
_0802C8EC:
|
|
movs r0, 0
|
|
_0802C8EE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_802C898
|
|
|
|
thumb_func_start sub_802C8F4
|
|
sub_802C8F4:
|
|
push {r4,lr}
|
|
ldr r4, _0802C90C
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _0802C906
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_0802C906:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802C90C: .4byte gUnknown_203B2F0
|
|
thumb_func_end sub_802C8F4
|
|
|
|
thumb_func_start sub_802C910
|
|
sub_802C910:
|
|
push {lr}
|
|
ldr r1, _0802C924
|
|
ldr r1, [r1]
|
|
str r0, [r1, 0x4]
|
|
bl sub_802C928
|
|
bl sub_802C9D8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802C924: .4byte gUnknown_203B2F0
|
|
thumb_func_end sub_802C910
|
|
|
|
thumb_func_start sub_802C928
|
|
sub_802C928:
|
|
push {r4-r7,lr}
|
|
ldr r4, _0802C94C
|
|
ldr r0, [r4]
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
bl sub_8006518
|
|
ldr r1, [r4]
|
|
ldr r0, [r1, 0x4]
|
|
cmp r0, 0x2
|
|
beq _0802C954
|
|
cmp r0, 0x3
|
|
beq _0802C980
|
|
movs r2, 0
|
|
ldr r3, _0802C950
|
|
b _0802C998
|
|
.align 2, 0
|
|
_0802C94C: .4byte gUnknown_203B2F0
|
|
_0802C950: .4byte gUnknown_80DFD28
|
|
_0802C954:
|
|
bl sub_802CAA4
|
|
ldr r2, [r4]
|
|
movs r0, 0xE6
|
|
lsls r0, 1
|
|
adds r2, r0
|
|
ldr r1, _0802C97C
|
|
ldm r1!, {r3,r5,r6}
|
|
stm r2!, {r3,r5,r6}
|
|
ldm r1!, {r3,r5,r7}
|
|
stm r2!, {r3,r5,r7}
|
|
ldr r1, [r4]
|
|
adds r0, r1, r0
|
|
movs r6, 0x86
|
|
lsls r6, 1
|
|
adds r1, r6
|
|
bl sub_8012CAC
|
|
b _0802C9B8
|
|
.align 2, 0
|
|
_0802C97C: .4byte gUnknown_80DFD40
|
|
_0802C980:
|
|
movs r7, 0xF2
|
|
lsls r7, 1
|
|
adds r1, r7
|
|
ldr r0, _0802C994
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
b _0802C9B8
|
|
.align 2, 0
|
|
_0802C994: .4byte gUnknown_80DFD58
|
|
_0802C998:
|
|
ldr r0, [r4]
|
|
lsls r1, r2, 1
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r1, r3, 0
|
|
ldm r1!, {r5-r7}
|
|
stm r0!, {r5-r7}
|
|
ldm r1!, {r5-r7}
|
|
stm r0!, {r5-r7}
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _0802C998
|
|
_0802C9B8:
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, _0802C9D4
|
|
ldr r0, [r0]
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802C9D4: .4byte gUnknown_203B2F0
|
|
thumb_func_end sub_802C928
|
|
|
|
thumb_func_start sub_802C9D8
|
|
sub_802C9D8:
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
ldr r1, _0802C9F4
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x4]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x5
|
|
bhi _0802CA9C
|
|
lsls r0, 2
|
|
ldr r1, _0802C9F8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0802C9F4: .4byte gUnknown_203B2F0
|
|
_0802C9F8: .4byte _0802C9FC
|
|
.align 2, 0
|
|
_0802C9FC:
|
|
.4byte _0802CA14
|
|
.4byte _0802CA20
|
|
.4byte _0802CA28
|
|
.4byte _0802CA48
|
|
.4byte _0802CA80
|
|
.4byte _0802CA9C
|
|
_0802CA14:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x4
|
|
bl sub_802C4C8
|
|
b _0802CA9C
|
|
_0802CA20:
|
|
movs r0, 0x1
|
|
bl sub_802C640
|
|
b _0802CA9C
|
|
_0802CA28:
|
|
bl sub_802C750
|
|
ldr r0, _0802CA44
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x6C
|
|
movs r3, 0x86
|
|
lsls r3, 1
|
|
adds r1, r2, r3
|
|
ldr r2, [r2, 0x68]
|
|
str r2, [sp]
|
|
movs r2, 0x2
|
|
b _0802CA6E
|
|
.align 2, 0
|
|
_0802CA44: .4byte gUnknown_203B2F0
|
|
_0802CA48:
|
|
bl sub_802CBAC
|
|
bl sub_802C750
|
|
ldr r4, _0802CA7C
|
|
ldr r0, [r4]
|
|
adds r0, 0x6C
|
|
movs r1, 0
|
|
bl sub_8012EA4
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
adds r0, 0xBC
|
|
movs r2, 0xA6
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
movs r2, 0x6
|
|
str r2, [sp]
|
|
movs r2, 0x3
|
|
_0802CA6E:
|
|
str r2, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8012D60
|
|
b _0802CA9C
|
|
.align 2, 0
|
|
_0802CA7C: .4byte gUnknown_203B2F0
|
|
_0802CA80:
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0xC]
|
|
bl sub_8096AB4
|
|
ldr r1, [r4]
|
|
adds r1, 0x10
|
|
bl sub_803B35C
|
|
ldr r0, [r4]
|
|
movs r1, 0x3
|
|
str r1, [r0, 0x10]
|
|
adds r0, 0x10
|
|
bl sub_802DE84
|
|
_0802CA9C:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_802C9D8
|
|
|
|
thumb_func_start sub_802CAA4
|
|
sub_802CAA4:
|
|
push {r4-r7,lr}
|
|
movs r7, 0
|
|
ldr r5, _0802CAC8
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0xC]
|
|
bl sub_8096AB4
|
|
adds r4, r0, 0
|
|
ldr r2, [r5]
|
|
ldr r0, [r2]
|
|
cmp r0, 0
|
|
bne _0802CB26
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x5
|
|
beq _0802CACC
|
|
cmp r0, 0x6
|
|
beq _0802CB10
|
|
b _0802CB26
|
|
.align 2, 0
|
|
_0802CAC8: .4byte gUnknown_203B2F0
|
|
_0802CACC:
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
ldr r0, _0802CAFC
|
|
str r0, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_809693C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802CAEE
|
|
ldrb r0, [r4, 0x4]
|
|
bl sub_80A2824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802CB00
|
|
_0802CAEE:
|
|
ldr r0, [r5]
|
|
movs r1, 0x88
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
b _0802CB0A
|
|
.align 2, 0
|
|
_0802CAFC: .4byte gUnknown_80DFD70
|
|
_0802CB00:
|
|
ldr r0, [r5]
|
|
movs r1, 0x88
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
_0802CB0A:
|
|
str r1, [r0]
|
|
adds r7, 0x1
|
|
b _0802CB26
|
|
_0802CB10:
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
ldr r0, _0802CB9C
|
|
str r0, [r1]
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
movs r0, 0x3
|
|
str r0, [r1]
|
|
movs r7, 0x1
|
|
_0802CB26:
|
|
ldr r4, _0802CBA0
|
|
ldr r6, [r4]
|
|
lsls r1, r7, 3
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
adds r3, r6, r0
|
|
adds r2, r3, r1
|
|
ldr r0, _0802CBA4
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
adds r5, r6, r0
|
|
adds r1, r5, r1
|
|
movs r0, 0x4
|
|
str r0, [r1]
|
|
adds r7, 0x1
|
|
lsls r1, r7, 3
|
|
adds r2, r3, r1
|
|
ldr r0, _0802CBA8
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
adds r1, r5, r1
|
|
movs r0, 0x7
|
|
str r0, [r1]
|
|
adds r7, 0x1
|
|
lsls r1, r7, 3
|
|
adds r3, r1
|
|
movs r0, 0
|
|
str r0, [r3]
|
|
adds r1, r5, r1
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
movs r3, 0
|
|
mov r12, r4
|
|
cmp r3, r7
|
|
bge _0802CB8C
|
|
adds r4, r6, 0
|
|
adds r1, r5, 0
|
|
movs r5, 0x1
|
|
negs r5, r5
|
|
_0802CB78:
|
|
ldr r2, [r1]
|
|
cmp r2, r5
|
|
beq _0802CB84
|
|
ldr r0, [r4, 0x68]
|
|
cmp r2, r0
|
|
beq _0802CB94
|
|
_0802CB84:
|
|
adds r1, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, r7
|
|
blt _0802CB78
|
|
_0802CB8C:
|
|
mov r0, r12
|
|
ldr r1, [r0]
|
|
movs r0, 0x7
|
|
str r0, [r1, 0x68]
|
|
_0802CB94:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802CB9C: .4byte gUnknown_80DFD7C
|
|
_0802CBA0: .4byte gUnknown_203B2F0
|
|
_0802CBA4: .4byte gUnknown_80D494C
|
|
_0802CBA8: .4byte gUnknown_80D4970
|
|
thumb_func_end sub_802CAA4
|
|
|
|
thumb_func_start sub_802CBAC
|
|
sub_802CBAC:
|
|
ldr r0, _0802CBF4
|
|
ldr r0, [r0]
|
|
mov r12, r0
|
|
movs r3, 0
|
|
movs r1, 0xA6
|
|
lsls r1, 1
|
|
add r1, r12
|
|
ldr r0, _0802CBF8
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r1, 0xA8
|
|
lsls r1, 1
|
|
add r1, r12
|
|
movs r0, 0x5
|
|
str r0, [r1]
|
|
movs r2, 0x1
|
|
movs r1, 0xAA
|
|
lsls r1, 1
|
|
add r1, r12
|
|
ldr r0, _0802CBFC
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r1, 0xAC
|
|
lsls r1, 1
|
|
add r1, r12
|
|
movs r0, 0x6
|
|
str r0, [r1]
|
|
movs r0, 0xAE
|
|
lsls r0, 1
|
|
add r0, r12
|
|
str r3, [r0]
|
|
movs r0, 0xB0
|
|
lsls r0, 1
|
|
add r0, r12
|
|
str r2, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0802CBF4: .4byte gUnknown_203B2F0
|
|
_0802CBF8: .4byte gUnknown_80D4920
|
|
_0802CBFC: .4byte gUnknown_80D4928
|
|
thumb_func_end sub_802CBAC
|
|
|
|
thumb_func_start sub_802CC00
|
|
sub_802CC00:
|
|
push {lr}
|
|
movs r0, 0x1
|
|
bl sub_802C598
|
|
cmp r0, 0x4
|
|
bhi _0802CC6A
|
|
lsls r0, 2
|
|
ldr r1, _0802CC18
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0802CC18: .4byte _0802CC1C
|
|
.align 2, 0
|
|
_0802CC1C:
|
|
.4byte _0802CC6A
|
|
.4byte _0802CC6A
|
|
.4byte _0802CC60
|
|
.4byte _0802CC30
|
|
.4byte _0802CC48
|
|
_0802CC30:
|
|
bl sub_802C620
|
|
ldr r1, _0802CC44
|
|
ldr r1, [r1]
|
|
strb r0, [r1, 0xC]
|
|
movs r0, 0x2
|
|
bl sub_802C910
|
|
b _0802CC6A
|
|
.align 2, 0
|
|
_0802CC44: .4byte gUnknown_203B2F0
|
|
_0802CC48:
|
|
bl sub_802C620
|
|
ldr r1, _0802CC5C
|
|
ldr r1, [r1]
|
|
strb r0, [r1, 0xC]
|
|
movs r0, 0x4
|
|
bl sub_802C910
|
|
b _0802CC6A
|
|
.align 2, 0
|
|
_0802CC5C: .4byte gUnknown_203B2F0
|
|
_0802CC60:
|
|
bl sub_802C688
|
|
movs r0, 0x5
|
|
bl sub_802C910
|
|
_0802CC6A:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_802CC00
|
|
|
|
thumb_func_start sub_802CC70
|
|
sub_802CC70:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
bl sub_802C598
|
|
ldr r4, _0802CCB4
|
|
ldr r0, [r4]
|
|
adds r0, 0x6C
|
|
bl sub_8012FD8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802CCA0
|
|
ldr r0, [r4]
|
|
adds r0, 0x6C
|
|
mov r1, sp
|
|
bl sub_8013114
|
|
ldr r1, [sp]
|
|
cmp r1, 0x1
|
|
beq _0802CCA0
|
|
ldr r0, [r4]
|
|
str r1, [r0, 0x68]
|
|
_0802CCA0:
|
|
ldr r0, [sp]
|
|
subs r0, 0x1
|
|
cmp r0, 0x6
|
|
bhi _0802CD2E
|
|
lsls r0, 2
|
|
ldr r1, _0802CCB8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0802CCB4: .4byte gUnknown_203B2F0
|
|
_0802CCB8: .4byte _0802CCBC
|
|
.align 2, 0
|
|
_0802CCBC:
|
|
.4byte _0802CD28
|
|
.4byte _0802CCD8
|
|
.4byte _0802CCF4
|
|
.4byte _0802CD18
|
|
.4byte _0802CD2E
|
|
.4byte _0802CD2E
|
|
.4byte _0802CD20
|
|
_0802CCD8:
|
|
ldr r0, _0802CCEC
|
|
bl PlaySound
|
|
ldr r0, _0802CCF0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0xC]
|
|
bl sub_8096AB4
|
|
movs r1, 0x6
|
|
b _0802CD06
|
|
.align 2, 0
|
|
_0802CCEC: .4byte 0x00000133
|
|
_0802CCF0: .4byte gUnknown_203B2F0
|
|
_0802CCF4:
|
|
ldr r0, _0802CD10
|
|
bl PlaySound
|
|
ldr r0, _0802CD14
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0xC]
|
|
bl sub_8096AB4
|
|
movs r1, 0x5
|
|
_0802CD06:
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
bl sub_802C910
|
|
b _0802CD2E
|
|
.align 2, 0
|
|
_0802CD10: .4byte 0x00000133
|
|
_0802CD14: .4byte gUnknown_203B2F0
|
|
_0802CD18:
|
|
movs r0, 0x3
|
|
bl sub_802C910
|
|
b _0802CD2E
|
|
_0802CD20:
|
|
movs r0, 0x4
|
|
bl sub_802C910
|
|
b _0802CD2E
|
|
_0802CD28:
|
|
movs r0, 0x1
|
|
bl sub_802C910
|
|
_0802CD2E:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_802CC70
|
|
|
|
thumb_func_start sub_802CD38
|
|
sub_802CD38:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
bl sub_802C598
|
|
ldr r4, _0802CD78
|
|
ldr r0, [r4]
|
|
adds r0, 0x6C
|
|
bl sub_8012FD8
|
|
ldr r0, [r4]
|
|
adds r0, 0xBC
|
|
bl sub_8012FD8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802CD66
|
|
ldr r0, [r4]
|
|
adds r0, 0xBC
|
|
mov r1, sp
|
|
bl sub_8013114
|
|
_0802CD66:
|
|
ldr r0, [sp]
|
|
cmp r0, 0x5
|
|
beq _0802CD88
|
|
cmp r0, 0x5
|
|
bgt _0802CD7C
|
|
cmp r0, 0x1
|
|
beq _0802CD80
|
|
b _0802CDB0
|
|
.align 2, 0
|
|
_0802CD78: .4byte gUnknown_203B2F0
|
|
_0802CD7C:
|
|
cmp r0, 0x6
|
|
bne _0802CDB0
|
|
_0802CD80:
|
|
movs r0, 0x1
|
|
bl sub_802C910
|
|
b _0802CDB0
|
|
_0802CD88:
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0xC]
|
|
bl sub_8096C3C
|
|
bl sub_8096C80
|
|
bl sub_802C83C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0802CDAA
|
|
bl sub_802C688
|
|
movs r0, 0x5
|
|
bl sub_802C910
|
|
b _0802CDB0
|
|
_0802CDAA:
|
|
movs r0, 0x1
|
|
bl sub_802C910
|
|
_0802CDB0:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_802CD38
|
|
|
|
thumb_func_start sub_802CDB8
|
|
sub_802CDB8:
|
|
push {lr}
|
|
bl sub_802DEE0
|
|
cmp r0, 0x1
|
|
bls _0802CDD0
|
|
cmp r0, 0x3
|
|
bhi _0802CDD0
|
|
bl sub_802DF24
|
|
movs r0, 0x1
|
|
bl sub_802C910
|
|
_0802CDD0:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_802CDB8
|
|
|
|
thumb_func_start sub_802CDD4
|
|
sub_802CDD4:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _0802CE54
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bne _0802CDEA
|
|
movs r0, 0xA0
|
|
movs r1, 0x8
|
|
bl MemoryAlloc
|
|
str r0, [r4]
|
|
_0802CDEA:
|
|
ldr r0, [r4]
|
|
str r5, [r0, 0x34]
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, 0x3C
|
|
adds r1, r0, r1
|
|
str r1, [r0, 0x38]
|
|
adds r0, 0x3C
|
|
bl sub_8006518
|
|
ldr r1, [r4]
|
|
ldr r2, [r1, 0x34]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r1, 0x3C
|
|
ldr r0, _0802CE58
|
|
ldm r0!, {r2,r3,r6}
|
|
stm r1!, {r2,r3,r6}
|
|
ldm r0!, {r2,r3,r6}
|
|
stm r1!, {r2,r3,r6}
|
|
ldr r1, [r4]
|
|
ldr r0, [r1, 0x38]
|
|
adds r1, 0x9C
|
|
str r1, [r0, 0x14]
|
|
movs r1, 0x4
|
|
bl sub_8012D34
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r4]
|
|
adds r0, 0x3C
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r0, [r4]
|
|
movs r1, 0x5
|
|
movs r2, 0x4
|
|
adds r3, r5, 0
|
|
bl sub_8013848
|
|
bl sub_802CF5C
|
|
bl sub_802CFD0
|
|
movs r0, 0x1
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0802CE54: .4byte gUnknown_203B2F4
|
|
_0802CE58: .4byte gUnknown_80DFDA4
|
|
thumb_func_end sub_802CDD4
|
|
|
|
thumb_func_start sub_802CE5C
|
|
sub_802CE5C:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802CE74
|
|
ldr r0, _0802CE70
|
|
ldr r0, [r0]
|
|
bl sub_8013660
|
|
movs r0, 0
|
|
b _0802CEB4
|
|
.align 2, 0
|
|
_0802CE70: .4byte gUnknown_203B2F4
|
|
_0802CE74:
|
|
ldr r4, _0802CE90
|
|
ldr r0, [r4]
|
|
bl GetKeyPress
|
|
cmp r0, 0x1
|
|
beq _0802CE94
|
|
cmp r0, 0x2
|
|
bne _0802CE98
|
|
movs r0, 0x1
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x2
|
|
b _0802CEB4
|
|
.align 2, 0
|
|
_0802CE90: .4byte gUnknown_203B2F4
|
|
_0802CE94:
|
|
movs r0, 0x3
|
|
b _0802CEB4
|
|
_0802CE98:
|
|
ldr r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_80138B8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802CEAA
|
|
movs r0, 0
|
|
b _0802CEB4
|
|
_0802CEAA:
|
|
bl sub_802CF5C
|
|
bl sub_802CFD0
|
|
movs r0, 0x1
|
|
_0802CEB4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_802CE5C
|
|
|
|
thumb_func_start sub_802CEBC
|
|
sub_802CEBC:
|
|
ldr r0, _0802CED4
|
|
ldr r1, [r0]
|
|
movs r0, 0x1E
|
|
ldrsh r2, [r1, r0]
|
|
movs r3, 0x1C
|
|
ldrsh r0, [r1, r3]
|
|
muls r0, r2
|
|
ldrb r1, [r1, 0x18]
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bx lr
|
|
.align 2, 0
|
|
_0802CED4: .4byte gUnknown_203B2F4
|
|
thumb_func_end sub_802CEBC
|
|
|
|
thumb_func_start sub_802CED8
|
|
sub_802CED8:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl ResetUnusedInputStruct
|
|
ldr r5, _0802CF10
|
|
ldr r0, [r5]
|
|
adds r0, 0x3C
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_800641C
|
|
ldr r0, [r5]
|
|
bl sub_8013984
|
|
bl sub_802CF5C
|
|
bl sub_802CFD0
|
|
cmp r4, 0
|
|
beq _0802CF0A
|
|
ldr r0, [r5]
|
|
bl AddMenuCursorSprite
|
|
_0802CF0A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802CF10: .4byte gUnknown_203B2F4
|
|
thumb_func_end sub_802CED8
|
|
|
|
thumb_func_start sub_802CF14
|
|
sub_802CF14:
|
|
push {r4,r5,lr}
|
|
ldr r4, _0802CF54
|
|
ldr r2, [r4]
|
|
cmp r2, 0
|
|
beq _0802CF4E
|
|
ldr r0, [r2, 0x34]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x3C
|
|
ldr r0, _0802CF58
|
|
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, 0x3C
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_0802CF4E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802CF54: .4byte gUnknown_203B2F4
|
|
_0802CF58: .4byte gUnknown_80DFD8C
|
|
thumb_func_end sub_802CF14
|
|
|
|
thumb_func_start sub_802CF5C
|
|
sub_802CF5C:
|
|
push {r4,lr}
|
|
ldr r4, _0802CFCC
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0x20]
|
|
adds r0, 0x9C
|
|
movs r2, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0x1E]
|
|
adds r0, 0x9D
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0x9E
|
|
movs r1, 0xC
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0x9F
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
movs r1, 0x1A
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0x18
|
|
bl sub_8009614
|
|
adds r0, 0x2
|
|
lsls r0, 16
|
|
ldr r2, [r4]
|
|
ldr r3, [r2, 0x34]
|
|
lsls r1, r3, 1
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x4A
|
|
asrs r3, r0, 16
|
|
lsrs r0, 16
|
|
strh r0, [r1]
|
|
ldr r1, [r2, 0x34]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, r0
|
|
adds r3, 0x2
|
|
adds r2, 0x4C
|
|
strh r3, [r2]
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r4]
|
|
adds r0, 0x3C
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802CFCC: .4byte gUnknown_203B2F4
|
|
thumb_func_end sub_802CF5C
|
|
|
|
thumb_func_start sub_802CFD0
|
|
sub_802CFD0:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x60
|
|
ldr r6, _0802D02C
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x34]
|
|
bl sub_8008C54
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x34]
|
|
bl sub_80073B8
|
|
ldr r0, [r6]
|
|
movs r1, 0x1E
|
|
ldrsh r4, [r0, r1]
|
|
lsls r4, 3
|
|
adds r5, r4, 0
|
|
adds r5, 0xA
|
|
ldr r2, _0802D030
|
|
ldr r3, [r0, 0x34]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl xxx_call_draw_string
|
|
adds r4, 0x4
|
|
ldr r1, [r6]
|
|
adds r0, r1, 0
|
|
adds r0, 0x9E
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r5, r4, r0
|
|
movs r0, 0x1E
|
|
ldrsh r2, [r1, r0]
|
|
adds r2, 0x1
|
|
movs r0, 0x7
|
|
str r0, [sp]
|
|
ldr r0, [r1, 0x34]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r3, 0x2
|
|
bl sub_8012BC4
|
|
movs r5, 0
|
|
b _0802D076
|
|
.align 2, 0
|
|
_0802D02C: .4byte gUnknown_203B2F4
|
|
_0802D030: .4byte gUnknown_80DFDBC
|
|
_0802D034:
|
|
ldr r0, [r6]
|
|
movs r2, 0x1E
|
|
ldrsh r1, [r0, r2]
|
|
movs r2, 0x1C
|
|
ldrsh r0, [r0, r2]
|
|
muls r0, r1
|
|
adds r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_803B344
|
|
adds r4, r0, 0
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, 0x34]
|
|
str r1, [sp, 0x8]
|
|
adds r1, r5, 0
|
|
bl sub_8013800
|
|
str r0, [sp, 0x50]
|
|
adds r0, r4, 0
|
|
add r1, sp, 0x8
|
|
bl sub_803B35C
|
|
mov r1, sp
|
|
adds r1, 0x4B
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r4, 0x14]
|
|
str r0, [sp, 0x54]
|
|
add r0, sp, 0x8
|
|
bl sub_803B6D4
|
|
adds r5, 0x1
|
|
_0802D076:
|
|
ldr r0, [r6]
|
|
movs r1, 0x1A
|
|
ldrsh r0, [r0, r1]
|
|
cmp r5, r0
|
|
blt _0802D034
|
|
ldr r0, _0802D094
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x34]
|
|
bl sub_80073E0
|
|
add sp, 0x60
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0802D094: .4byte gUnknown_203B2F4
|
|
thumb_func_end sub_802CFD0
|
|
|
|
.align 2,0
|