pmd-red/asm/code_8027C84.s
2021-01-28 09:24:55 -06:00

1738 lines
27 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_8027CA0
sub_8027CA0:
push {lr}
movs r0, 0x1
bl sub_801EF38
cmp r0, 0x4
bhi _08027CFA
lsls r0, 2
ldr r1, _08027CB8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08027CB8: .4byte _08027CBC
.align 2, 0
_08027CBC:
.4byte _08027CFA
.4byte _08027CFA
.4byte _08027CF0
.4byte _08027CD0
.4byte _08027CD0
_08027CD0:
bl sub_801F194
ldr r1, _08027CEC
ldr r1, [r1]
str r0, [r1, 0x20]
lsls r0, 3
adds r0, r1, r0
ldrh r0, [r0, 0x2A]
strh r0, [r1, 0x24]
movs r0, 0x10
bl sub_8027184
b _08027CFA
.align 2, 0
_08027CEC: .4byte gUnknown_203B2BC
_08027CF0:
bl sub_801F214
movs r0, 0x2
bl sub_8027184
_08027CFA:
pop {r0}
bx r0
thumb_func_end sub_8027CA0
thumb_func_start sub_8027D00
sub_8027D00:
push {lr}
bl sub_801F890
cmp r0, 0x1
bls _08027D18
cmp r0, 0x3
bhi _08027D18
bl sub_801F8D0
movs r0, 0xF
bl sub_8027184
_08027D18:
pop {r0}
bx r0
thumb_func_end sub_8027D00
thumb_func_start sub_8027D1C
sub_8027D1C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08027D34
ldr r0, _08027D3C
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_8027184
_08027D34:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08027D3C: .4byte gUnknown_203B2BC
thumb_func_end sub_8027D1C
thumb_func_start sub_8027D40
sub_8027D40:
push {r4-r6,lr}
sub sp, 0x14
adds r6, r0, 0
adds r5, r1, 0
bl sub_8008C54
adds r0, r6, 0
bl sub_80073B8
add r4, sp, 0x10
adds r0, r4, 0
adds r1, r5, 0
bl sub_8090B64
movs r5, 0
str r5, [sp, 0x4]
add r0, sp, 0x4
strb r5, [r0, 0x4]
adds r1, r0, 0
movs r0, 0x1
strb r0, [r1, 0x8]
strb r0, [r4]
ldr r0, _08027D94
adds r1, r4, 0
add r2, sp, 0x4
bl sub_8090E14
ldr r2, _08027D98
str r5, [sp]
movs r0, 0x4
movs r1, 0x3
adds r3, r6, 0
bl sub_8014FF0
adds r0, r6, 0
bl sub_80073E0
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08027D94: .4byte gUnknown_202DE58
_08027D98: .4byte gUnknown_80DD958
thumb_func_end sub_8027D40
thumb_func_start sub_8027D9C
sub_8027D9C:
push {lr}
adds r1, r0, 0
ldrb r0, [r1, 0x2]
cmp r0, 0
bne _08027DC0
movs r2, 0
ldrb r0, [r1, 0x4]
cmp r0, 0x41
bne _08027DB0
movs r2, 0x1
_08027DB0:
cmp r2, 0
beq _08027DC4
movs r0, 0x8
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _08027DC4
_08027DC0:
movs r0, 0
b _08027DC6
_08027DC4:
movs r0, 0x1
_08027DC6:
pop {r1}
bx r1
thumb_func_end sub_8027D9C
thumb_func_start sub_8027DCC
sub_8027DCC:
push {r4,lr}
adds r4, r0, 0
bl sub_808D3BC
cmp r0, r4
beq _08027E0E
bl sub_808D3F8
cmp r0, r4
beq _08027E0E
ldrb r0, [r4, 0x2]
cmp r0, 0
bne _08027E0E
movs r1, 0
ldrb r0, [r4, 0x4]
cmp r0, 0x41
bne _08027DF0
movs r1, 0x1
_08027DF0:
cmp r1, 0
beq _08027E00
movs r0, 0x8
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _08027E0E
_08027E00:
adds r0, r4, 0
bl sub_8027E18
cmp r0, 0x3
beq _08027E0E
movs r0, 0x1
b _08027E10
_08027E0E:
movs r0, 0
_08027E10:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8027DCC
thumb_func_start sub_8027E18
sub_8027E18:
push {r4,lr}
adds r4, r0, 0
adds r0, 0x28
ldrb r0, [r0]
cmp r0, 0
bne _08027E28
movs r0, 0
b _08027E46
_08027E28:
bl sub_8090A34
cmp r0, 0x13
bgt _08027E34
movs r0, 0x1
b _08027E46
_08027E34:
adds r0, r4, 0
bl sub_8027E4C
lsls r0, 24
cmp r0, 0
bne _08027E44
movs r0, 0x3
b _08027E46
_08027E44:
movs r0, 0x2
_08027E46:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8027E18
thumb_func_start sub_8027E4C
sub_8027E4C:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r5, 0
adds r4, 0x28
ldrb r0, [r4]
bl sub_8091524
lsls r0, 24
cmp r0, 0
beq _08027E88
ldrb r0, [r4]
bl sub_8090A60
lsls r0, 24
cmp r0, 0
beq _08027E94
ldr r0, _08027E8C
ldr r1, [r0]
ldrb r0, [r4]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r1, [r1]
adds r0, r5, 0
adds r0, 0x29
ldrb r0, [r0]
adds r1, r0
ldr r0, _08027E90
cmp r1, r0
ble _08027EA8
_08027E88:
movs r0, 0
b _08027EAA
.align 2, 0
_08027E8C: .4byte gUnknown_203B460
_08027E90: .4byte 0x000003e7
_08027E94:
ldr r0, _08027EB0
ldr r1, [r0]
ldrb r0, [r4]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r1, [r1]
ldr r0, _08027EB4
cmp r1, r0
bhi _08027E88
_08027EA8:
movs r0, 0x1
_08027EAA:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08027EB0: .4byte gUnknown_203B460
_08027EB4: .4byte 0x000003e6
thumb_func_end sub_8027E4C
thumb_func_start sub_8027EB8
sub_8027EB8:
push {r4,lr}
ldr r4, _08027ED4
ldr r0, [r4]
ldr r0, [r0, 0x18]
bl sub_8027E18
cmp r0, 0x1
beq _08027ED8
cmp r0, 0x1
bcc _08027F7C
cmp r0, 0x2
beq _08027F0C
b _08027F7C
.align 2, 0
_08027ED4: .4byte gUnknown_203B2BC
_08027ED8:
ldr r0, _08027F08
bl sub_8011988
ldr r0, [r4]
adds r0, 0x14
bl sub_8091274
bl sub_80910B4
ldr r0, [r4]
movs r1, 0
strb r1, [r0, 0x14]
ldr r0, [r4]
strb r1, [r0, 0x15]
ldr r1, [r4]
movs r2, 0x8
ldrsh r0, [r1, r2]
adds r1, 0x14
bl sub_808D800
movs r0, 0x6
bl sub_8027184
b _08027F82
.align 2, 0
_08027F08: .4byte 0x0000014d
_08027F0C:
ldr r0, _08027F38
bl sub_8011988
ldr r0, [r4]
ldrb r0, [r0, 0x14]
bl sub_8090A60
lsls r0, 24
cmp r0, 0
beq _08027F40
ldr r0, _08027F3C
ldr r1, [r0]
ldr r2, [r4]
ldrb r0, [r2, 0x14]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r0, [r1]
ldrb r2, [r2, 0x15]
adds r0, r2
b _08027F52
.align 2, 0
_08027F38: .4byte 0x0000014d
_08027F3C: .4byte gUnknown_203B460
_08027F40:
ldr r0, _08027F74
ldr r1, [r0]
ldr r0, [r4]
ldrb r0, [r0, 0x14]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r0, [r1]
adds r0, 0x1
_08027F52:
strh r0, [r1]
ldr r1, _08027F78
ldr r0, [r1]
movs r2, 0
strb r2, [r0, 0x14]
ldr r0, [r1]
strb r2, [r0, 0x15]
ldr r1, [r1]
movs r2, 0x8
ldrsh r0, [r1, r2]
adds r1, 0x14
bl sub_808D800
movs r0, 0x7
bl sub_8027184
b _08027F82
.align 2, 0
_08027F74: .4byte gUnknown_203B460
_08027F78: .4byte gUnknown_203B2BC
_08027F7C:
movs r0, 0x2
bl sub_8027184
_08027F82:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8027EB8
thumb_func_start sub_8027F88
sub_8027F88:
push {r4-r6,lr}
bl ResetUnusedInputStruct
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r5, _08028050
movs r4, 0xA9
lsls r4, 3
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
ldr r1, [r5]
ldr r2, _08028054
adds r0, r1, r2
movs r6, 0
str r6, [r0]
movs r3, 0x86
lsls r3, 2
adds r1, r3
movs r0, 0xFF
strb r0, [r1]
ldr r0, [r5]
ldr r1, _08028058
adds r0, r1
ldr r1, _0802805C
strh r1, [r0]
ldr r0, _08028060
movs r4, 0x98
lsls r4, 1
adds r1, r4, 0
bl sub_808D8E0
adds r0, r4, 0
bl sub_808D994
adds r1, r0, 0
ldr r0, _08028064
bl strcpy
adds r0, r4, 0
bl GetDialogueSpriteDataPtr
ldr r2, [r5]
movs r3, 0x84
lsls r3, 3
adds r1, r2, r3
str r0, [r1]
adds r3, 0x4
adds r1, r2, r3
ldr r0, [r0, 0x4]
str r0, [r1]
ldr r0, _08028068
adds r2, r0
strb r6, [r2]
ldr r0, [r5]
ldr r1, _0802806C
adds r0, r1
strb r6, [r0]
ldr r0, [r5]
ldr r2, _08028070
adds r0, r2
strb r6, [r0]
ldr r1, [r5]
adds r3, 0x4
adds r2, r1, r3
movs r0, 0x2
strh r0, [r2]
ldr r0, _08028074
adds r1, r0
movs r0, 0x8
strh r0, [r1]
movs r2, 0
movs r3, 0
adds r1, r5, 0
_0802802E:
ldr r0, [r5]
adds r0, 0x8
adds r0, r2
strb r3, [r0]
adds r2, 0x1
cmp r2, 0x35
ble _0802802E
ldr r1, [r1]
movs r0, 0x3D
str r0, [r1]
movs r0, 0
bl sub_8028B04
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08028050: .4byte gUnknown_203B2C0
_08028054: .4byte 0x0000053c
_08028058: .4byte 0x00000544
_0802805C: .4byte 0x0000ffff
_08028060: .4byte gUnknown_202E5D8
_08028064: .4byte gUnknown_202DF98
_08028068: .4byte 0x0000042c
_0802806C: .4byte 0x0000042d
_08028070: .4byte 0x0000042e
_08028074: .4byte 0x0000042a
thumb_func_end sub_8027F88
thumb_func_start sub_8028078
sub_8028078:
push {lr}
ldr r0, _08028090
ldr r0, [r0]
ldr r0, [r0, 0x4]
cmp r0, 0x3C
bls _08028086
b _080282D4
_08028086:
lsls r0, 2
ldr r1, _08028094
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08028090: .4byte gUnknown_203B2C0
_08028094: .4byte _08028098
.align 2, 0
_08028098:
.4byte _080282C4
.4byte _080282C4
.4byte _080282CA
.4byte _080282D0
.4byte _08028222
.4byte _08028234
.4byte _08028228
.4byte _0802822E
.4byte _0802823A
.4byte _080281FE
.4byte _08028272
.4byte _08028278
.4byte _0802828C
.4byte _0802827E
.4byte _0802828C
.4byte _0802827E
.4byte _0802828C
.4byte _08028286
.4byte _08028294
.4byte _0802829A
.4byte _080282B2
.4byte _080282B8
.4byte _080282BE
.4byte _080282A0
.4byte _080282A6
.4byte _080282AC
.4byte _08028240
.4byte _08028248
.4byte _0802824E
.4byte _0802824E
.4byte _0802825A
.4byte _0802826C
.4byte _08028260
.4byte _08028266
.4byte _08028254
.4byte _08028204
.4byte _0802820A
.4byte _080282CA
.4byte _08028210
.4byte _08028216
.4byte _0802821C
.4byte _080281E0
.4byte _080281F2
.4byte _080281E6
.4byte _080281EC
.4byte _080281DA
.4byte _080281D4
.4byte _080281F8
.4byte _080281CE
.4byte _080281C2
.4byte _080281AA
.4byte _080281B0
.4byte _080281B6
.4byte _080281BC
.4byte _080281C8
.4byte _080281A4
.4byte _0802819E
.4byte _080282CA
.4byte _08028192
.4byte _08028198
.4byte _0802818C
_0802818C:
bl sub_8029B34
b _080282D4
_08028192:
bl sub_8029AD8
b _080282D4
_08028198:
bl sub_8029AF4
b _080282D4
_0802819E:
bl sub_8029A88
b _080282D4
_080281A4:
bl sub_8029AB0
b _080282D4
_080281AA:
bl sub_80297B8
b _080282D4
_080281B0:
bl sub_80297D4
b _080282D4
_080281B6:
bl sub_8029884
b _080282D4
_080281BC:
bl sub_8029944
b _080282D4
_080281C2:
bl sub_80299AC
b _080282D4
_080281C8:
bl sub_80299D8
b _080282D4
_080281CE:
bl sub_8029A6C
b _080282D4
_080281D4:
bl sub_8029A18
b _080282D4
_080281DA:
bl sub_80295A8
b _080282D4
_080281E0:
bl sub_8029668
b _080282D4
_080281E6:
bl sub_8029684
b _080282D4
_080281EC:
bl sub_8029740
b _080282D4
_080281F2:
bl sub_80295D8
b _080282D4
_080281F8:
bl sub_802979C
b _080282D4
_080281FE:
bl sub_8029358
b _080282D4
_08028204:
bl sub_8029374
b _080282D4
_0802820A:
bl sub_802939C
b _080282D4
_08028210:
bl sub_80293D8
b _080282D4
_08028216:
bl sub_80293F4
b _080282D4
_0802821C:
bl sub_802955C
b _080282D4
_08028222:
bl sub_80292A4
b _080282D4
_08028228:
bl sub_80292EC
b _080282D4
_0802822E:
bl sub_802933C
b _080282D4
_08028234:
bl sub_802958C
b _080282D4
_0802823A:
bl sub_8029208
b _080282D4
_08028240:
movs r0, 0x1
bl sub_8028DE8
b _080282D4
_08028248:
bl sub_8028F80
b _080282D4
_0802824E:
bl sub_8028FC0
b _080282D4
_08028254:
bl sub_8028FDC
b _080282D4
_0802825A:
bl sub_80290D4
b _080282D4
_08028260:
bl sub_80290F0
b _080282D4
_08028266:
bl sub_80291AC
b _080282D4
_0802826C:
bl sub_8029044
b _080282D4
_08028272:
bl sub_8028CFC
b _080282D4
_08028278:
bl sub_8028D4C
b _080282D4
_0802827E:
movs r0, 0xA
bl sub_8028DE8
b _080282D4
_08028286:
bl sub_8028E08
b _080282D4
_0802828C:
movs r0, 0x19
bl sub_8028DE8
b _080282D4
_08028294:
bl sub_8028E24
b _080282D4
_0802829A:
bl sub_8028E54
b _080282D4
_080282A0:
bl sub_8028E84
b _080282D4
_080282A6:
bl sub_8028EAC
b _080282D4
_080282AC:
bl sub_8028ED4
b _080282D4
_080282B2:
bl sub_8028F04
b _080282D4
_080282B8:
bl sub_8028F30
b _080282D4
_080282BE:
bl sub_8028F58
b _080282D4
_080282C4:
bl sub_8028BF0
b _080282D4
_080282CA:
bl sub_8028CE0
b _080282D4
_080282D0:
movs r0, 0x3
b _080282D6
_080282D4:
movs r0, 0
_080282D6:
pop {r1}
bx r1
thumb_func_end sub_8028078
thumb_func_start sub_80282DC
sub_80282DC:
ldr r1, _080282F4
ldr r1, [r1]
movs r3, 0x86
lsls r3, 2
adds r2, r1, r3
ldrb r2, [r2]
strb r2, [r0]
ldr r0, _080282F8
adds r1, r0
ldr r0, [r1]
bx lr
.align 2, 0
_080282F4: .4byte gUnknown_203B2C0
_080282F8: .4byte 0x0000053c
thumb_func_end sub_80282DC
thumb_func_start sub_80282FC
sub_80282FC:
push {r4,lr}
ldr r4, _08028340
ldr r0, [r4]
cmp r0, 0
beq _08028338
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r0, [r0]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
bl sub_8031E10
bl sub_8023C60
bl sub_803084C
bl sub_80155F0
bl sub_80310B4
bl sub_8030DE4
bl sub_802453C
_08028338:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08028340: .4byte gUnknown_203B2C0
thumb_func_end sub_80282FC
thumb_func_start nullsub_130
nullsub_130:
bx lr
thumb_func_end nullsub_130
thumb_func_start sub_8028348
sub_8028348:
push {r4-r6,lr}
sub sp, 0x14
ldr r1, _08028368
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r6, r1, 0
cmp r0, 0x3C
bls _0802835C
bl _08028AF2
_0802835C:
lsls r0, 2
ldr r1, _0802836C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08028368: .4byte gUnknown_203B2C0
_0802836C: .4byte _08028370
.align 2, 0
_08028370:
.4byte _08028A84
.4byte _08028AB4
.4byte _08028AE0
.4byte _08028AF2
.4byte _08028650
.4byte _08028660
.4byte _08028678
.4byte _08028AF2
.4byte _08028802
.4byte _08028640
.4byte _0802890C
.4byte _08028948
.4byte _08028988
.4byte _08028978
.4byte _080289A0
.4byte _08028990
.4byte _080289B8
.4byte _080289B0
.4byte _080289C8
.4byte _080289E8
.4byte _08028A48
.4byte _08028A58
.4byte _08028A68
.4byte _080289F8
.4byte _08028A08
.4byte _08028A18
.4byte _08028850
.4byte _08028860
.4byte _08028868
.4byte _08028878
.4byte _08028890
.4byte _080288A0
.4byte _080288C6
.4byte _08028AF2
.4byte _08028888
.4byte _08028790
.4byte _08028AF2
.4byte _080287C4
.4byte _080287D4
.4byte _080287DC
.4byte _08028AF2
.4byte _080285CC
.4byte _080285DC
.4byte _080288C6
.4byte _08028AF2
.4byte _080285AC
.4byte _08028610
.4byte _080285F8
.4byte _08028600
.4byte _0802856C
.4byte _080284F4
.4byte _0802850C
.4byte _08028532
.4byte _08028AF2
.4byte _0802859C
.4byte _080284B8
.4byte _080284A8
.4byte _080284EC
.4byte _080284A0
.4byte _08028464
.4byte _08028490
_08028464:
ldr r0, [r6]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl ResetUnusedInputStruct
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r6]
movs r2, 0x86
lsls r2, 2
adds r0, r2
ldrb r0, [r0]
movs r1, 0
bl sub_8031D70
b _08028AF2
_08028490:
ldr r0, _0802849C
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_0802849C: .4byte gUnknown_80DDBA8
_080284A0:
ldr r0, _080284A4
b _08028A6A
.align 2, 0
_080284A4: .4byte gUnknown_80DDBFC
_080284A8:
ldr r0, _080284B4
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_080284B4: .4byte gUnknown_80DDC30
_080284B8:
ldr r0, [r6]
ldr r2, _080284D0
adds r0, r2
ldr r0, [r0]
cmp r0, 0xE
bne _080284C6
b _08028AF2
_080284C6:
cmp r0, 0xE
bhi _080284D4
cmp r0, 0xD
beq _080284DA
b _08028AF2
.align 2, 0
_080284D0: .4byte 0x00000534
_080284D4:
cmp r0, 0x10
bls _080284DA
b _08028AF2
_080284DA:
ldr r0, _080284E8
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_080284E8: .4byte gUnknown_80DDC70
_080284EC:
ldr r0, _080284F0
b _08028A6A
.align 2, 0
_080284F0: .4byte gUnknown_80DDC30
_080284F4:
ldr r0, _08028504
ldr r3, _08028508
movs r1, 0
movs r2, 0
bl sub_80141B4
b _08028AF2
.align 2, 0
_08028504: .4byte gUnknown_80DDCBC
_08028508: .4byte 0x00000101
_0802850C:
bl sub_8023CE8
cmp r0, 0
beq _08028516
b _08028AF2
_08028516:
bl ResetUnusedInputStruct
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x3
movs r1, 0
movs r2, 0
movs r3, 0x9
bl sub_8023868
b _08028AF2
_08028532:
ldr r0, [r6]
movs r4, 0xD7
lsls r4, 2
adds r0, r4
bl sub_8006518
ldr r1, [r6]
movs r5, 0x87
lsls r5, 2
adds r0, r1, r5
adds r1, r4
ldr r3, _08028564
ldr r2, _08028568
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0x3
bl SetMenuItems
bl sub_8023DA4
b _080288F6
.align 2, 0
_08028564: .4byte gUnknown_80DDAE4
_08028568: .4byte gUnknown_80DDAFC
_0802856C:
ldr r0, _08028594
ldr r3, _08028598
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0xA
bl sub_8014248
b _08028AF2
.align 2, 0
_08028594: .4byte gUnknown_80DDD2C
_08028598: .4byte gUnknown_80DDAA0
_0802859C:
ldr r0, _080285A4
ldr r3, _080285A8
b _08028A1C
.align 2, 0
_080285A4: .4byte gUnknown_80DDD88
_080285A8: .4byte gUnknown_80DDA80
_080285AC:
ldr r0, _080285C4
ldr r3, _080285C8
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
b _08028A2E
.align 2, 0
_080285C4: .4byte gUnknown_80DDDBC
_080285C8: .4byte gUnknown_80DDA64
_080285CC:
ldr r0, _080285D8
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_080285D8: .4byte gUnknown_80DDDD8
_080285DC:
bl sub_8030894
cmp r0, 0
beq _080285E6
b _08028AF2
_080285E6:
bl ResetUnusedInputStruct
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x4
b _080288BA
_080285F8:
ldr r0, _080285FC
b _08028A6A
.align 2, 0
_080285FC: .4byte gUnknown_80DDE20
_08028600:
ldr r0, _0802860C
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_0802860C: .4byte gUnknown_80DDE58
_08028610:
ldr r0, _08028638
ldr r3, _0802863C
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x11
bl sub_8014248
b _08028AF2
.align 2, 0
_08028638: .4byte gUnknown_80DDEC0
_0802863C: .4byte gUnknown_80DDB60
_08028640:
ldr r0, _0802864C
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_0802864C: .4byte gUnknown_80DDF2C
_08028650:
ldr r0, _08028658
ldr r3, _0802865C
b _08028A1C
.align 2, 0
_08028658: .4byte gUnknown_80DDFB8
_0802865C: .4byte gUnknown_80DDA48
_08028660:
movs r0, 0
bl nullsub_23
ldr r0, _08028674
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80141B4
b _08028AF2
.align 2, 0
_08028674: .4byte gUnknown_80DE01C
_08028678:
ldr r1, [r6]
movs r0, 0
str r0, [r1, 0x44]
bl sub_8011830
ldr r0, [r6]
ldr r0, [r0, 0x40]
bl sub_8037B28
adds r4, r0, 0
ldr r0, [r6]
str r4, [r0, 0x44]
cmp r4, 0
bne _0802878A
ldr r1, [r0, 0x40]
cmp r1, 0x3
beq _080286A0
cmp r1, 0x4
beq _080286C2
b _08028748
_080286A0:
adds r0, 0x48
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
adds r0, 0x78
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r2, [r6]
ldr r0, [r2, 0x40]
adds r1, r2, 0
adds r1, 0x48
adds r2, 0x78
b _08028740
_080286C2:
adds r0, 0xA8
movs r1, 0
movs r2, 0x88
bl MemoryFill8
ldr r0, [r6]
movs r5, 0x98
lsls r5, 1
adds r0, r5
movs r1, 0
movs r2, 0x88
bl MemoryFill8
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0xE0
strh r4, [r0]
movs r2, 0xB4
lsls r2, 1
adds r0, r1, r2
strh r4, [r0]
movs r3, 0x86
lsls r3, 2
adds r0, r1, r3
ldrb r0, [r0]
bl sub_8095228
ldr r1, [r6]
adds r1, 0xA8
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r2, [r6]
ldr r4, _08028760
adds r3, r2, r4
movs r0, 0
ldrsh r1, [r3, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _08028736
adds r0, r2, 0
adds r0, 0xD8
ldr r1, _08028764
ldr r1, [r1]
movs r2, 0
ldrsh r3, [r3, r2]
movs r2, 0x58
muls r2, r3
adds r1, r2
movs r2, 0x58
bl memcpy
_08028736:
ldr r2, [r6]
ldr r0, [r2, 0x40]
adds r1, r2, 0
adds r1, 0xA8
adds r2, r5
_08028740:
bl sub_8037D64
ldr r1, [r6]
str r0, [r1, 0x44]
_08028748:
ldr r4, _08028768
ldr r2, [r4]
ldr r0, [r2, 0x44]
cmp r0, 0
bne _0802878A
ldr r0, [r2, 0x40]
cmp r0, 0x3
beq _0802876C
cmp r0, 0x4
beq _08028776
b _0802878A
.align 2, 0
_08028760: .4byte 0x00000544
_08028764: .4byte gUnknown_203B45C
_08028768: .4byte gUnknown_203B2C0
_0802876C:
adds r1, r2, 0
adds r1, 0x48
adds r2, 0x78
movs r0, 0x3
b _08028782
_08028776:
adds r1, r2, 0
adds r1, 0xA8
movs r3, 0x98
lsls r3, 1
adds r2, r3
movs r0, 0x4
_08028782:
bl sub_80381F4
ldr r1, [r4]
str r0, [r1, 0x44]
_0802878A:
bl xxx_call_start_bg_music
b _08028AF2
_08028790:
ldr r0, [r6]
ldr r4, _080287A8
adds r0, r4
ldr r0, [r0]
cmp r0, 0xE
bne _0802879E
b _08028AF2
_0802879E:
cmp r0, 0xE
bhi _080287AC
cmp r0, 0xD
beq _080287B2
b _08028AF2
.align 2, 0
_080287A8: .4byte 0x00000534
_080287AC:
cmp r0, 0x10
bls _080287B2
b _08028AF2
_080287B2:
ldr r0, _080287C0
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_080287C0: .4byte gUnknown_80DE06C
_080287C4:
ldr r0, _080287D0
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_080287D0: .4byte gUnknown_80DE0C0
_080287D4:
ldr r0, _080287D8
b _08028A6A
.align 2, 0
_080287D8: .4byte gUnknown_80DE124
_080287DC:
ldr r0, [r6]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl ResetUnusedInputStruct
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, [r6]
adds r1, 0x8
movs r0, 0x4
bl sub_80151C0
b _08028AF2
_08028802:
ldr r4, [r6]
movs r2, 0xA7
lsls r2, 3
adds r0, r4, r2
ldr r2, [r0]
cmp r2, 0
beq _08028816
cmp r2, 0x2
beq _08028824
b _08028AF2
_08028816:
ldr r0, _0802881C
ldr r3, _08028820
b _0802882A
.align 2, 0
_0802881C: .4byte gUnknown_80DE178
_08028820: .4byte gUnknown_80DDB24
_08028824:
ldr r0, _08028848
ldr r3, _0802884C
movs r2, 0
_0802882A:
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
movs r2, 0x84
lsls r2, 3
adds r1, r4, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0xD
bl sub_8014248
b _08028AF2
.align 2, 0
_08028848: .4byte gUnknown_80DE1B4
_0802884C: .4byte gUnknown_80DDB24
_08028850:
ldr r0, _0802885C
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_0802885C: .4byte gUnknown_80DE1E4
_08028860:
ldr r0, _08028864
b _08028A6A
.align 2, 0
_08028864: .4byte gUnknown_80DE280
_08028868:
ldr r0, _08028874
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_08028874: .4byte gUnknown_80DE2B0
_08028878:
ldr r0, _08028884
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_08028884: .4byte gUnknown_80DE368
_08028888:
ldr r0, _0802888C
b _08028A1A
.align 2, 0
_0802888C: .4byte gUnknown_80DDDBC
_08028890:
ldr r0, _0802889C
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_0802889C: .4byte gUnknown_80DE430
_080288A0:
bl sub_8030894
cmp r0, 0
beq _080288AA
b _08028AF2
_080288AA:
bl ResetUnusedInputStruct
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x2
_080288BA:
movs r1, 0
movs r2, 0
movs r3, 0x6
bl sub_80306A8
b _08028AF2
_080288C6:
ldr r0, [r6]
movs r4, 0xD7
lsls r4, 2
adds r0, r4
bl sub_8006518
ldr r1, [r6]
movs r5, 0x87
lsls r5, 2
adds r0, r1, r5
adds r1, r4
ldr r3, _08028904
ldr r2, _08028908
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0x3
bl SetMenuItems
bl sub_803092C
_080288F6:
ldr r0, [r6]
adds r0, r5
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
b _08028AF2
.align 2, 0
_08028904: .4byte gUnknown_80DDACC
_08028908: .4byte gUnknown_80DDAFC
_0802890C:
bl sub_8095350
ldr r1, _0802893C
ldr r1, [r1]
movs r3, 0xA8
lsls r3, 3
adds r2, r1, r3
str r0, [r2]
movs r4, 0xA7
lsls r4, 3
adds r1, r4
ldr r1, [r1]
cmp r1, 0x6
beq _08028940
cmp r1, 0x6
bls _0802892E
b _08028AF2
_0802892E:
cmp r1, 0x5
beq _08028934
b _08028AF2
_08028934:
movs r0, 0x2
bl sub_8030F58
b _08028AF2
.align 2, 0
_0802893C: .4byte gUnknown_203B2C0
_08028940:
movs r0, 0x4
bl sub_8030F58
b _08028AF2
_08028948:
ldr r0, _08028970
ldr r3, _08028974
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x5
bl sub_8014248
b _08028AF2
.align 2, 0
_08028970: .4byte gUnknown_80DE48C
_08028974: .4byte gUnknown_80DD9EC
_08028978:
ldr r0, _08028984
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_08028984: .4byte gUnknown_80DE4B8
_08028988:
ldr r0, _0802898C
b _08028A6A
.align 2, 0
_0802898C: .4byte gUnknown_80DE4F0
_08028990:
ldr r0, _0802899C
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_0802899C: .4byte gUnknown_80DE524
_080289A0:
ldr r0, _080289AC
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_080289AC: .4byte gUnknown_80DE614
_080289B0:
ldr r0, _080289B4
b _08028A6A
.align 2, 0
_080289B4: .4byte gUnknown_80DE648
_080289B8:
ldr r0, _080289C4
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_080289C4: .4byte gUnknown_80DE694
_080289C8:
ldr r0, _080289E0
ldr r3, _080289E4
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
b _08028A2E
.align 2, 0
_080289E0: .4byte gUnknown_80DE6D4
_080289E4: .4byte gUnknown_80DDA48
_080289E8:
ldr r0, _080289F0
ldr r3, _080289F4
b _08028A1C
.align 2, 0
_080289F0: .4byte gUnknown_80DE754
_080289F4: .4byte gUnknown_80DDA48
_080289F8:
ldr r0, _08028A04
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_08028A04: .4byte gUnknown_80DE7B8
_08028A08:
ldr r0, _08028A14
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_08028A14: .4byte gUnknown_80DE7E8
_08028A18:
ldr r0, _08028A40
_08028A1A:
ldr r3, _08028A44
_08028A1C:
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r4, 0x84
lsls r4, 3
adds r1, r4
_08028A2E:
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x8
bl sub_8014248
b _08028AF2
.align 2, 0
_08028A40: .4byte gUnknown_80DE808
_08028A44: .4byte gUnknown_80DDA64
_08028A48:
ldr r0, _08028A54
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_08028A54: .4byte gUnknown_80DE830
_08028A58:
ldr r0, _08028A64
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_08028A64: .4byte gUnknown_80DE864
_08028A68:
ldr r0, _08028A7C
_08028A6A:
ldr r2, [r6]
movs r4, 0x84
lsls r4, 3
adds r2, r4
_08028A72:
ldr r3, _08028A80
movs r1, 0
bl sub_80141B4
b _08028AF2
.align 2, 0
_08028A7C: .4byte gUnknown_80DE7E8
_08028A80: .4byte 0x0000010d
_08028A84:
ldr r0, _08028AAC
ldr r3, _08028AB0
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0
bl sub_8014248
b _08028AF2
.align 2, 0
_08028AAC: .4byte gUnknown_80DE8B4
_08028AB0: .4byte gUnknown_80DD970
_08028AB4:
ldr r0, _08028AD8
ldr r3, _08028ADC
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r4, 0x84
lsls r4, 3
adds r1, r4
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _08028AF2
.align 2, 0
_08028AD8: .4byte gUnknown_80DE918
_08028ADC: .4byte gUnknown_80DD970
_08028AE0:
ldr r0, _08028AFC
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
ldr r3, _08028B00
movs r1, 0
bl sub_80141B4
_08028AF2:
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08028AFC: .4byte gUnknown_80DE93C
_08028B00: .4byte 0x0000010d
thumb_func_end sub_8028348
.align 2,0