pmd-red/asm/code_809A560.s
2024-10-31 14:15:12 +01:00

3353 lines
51 KiB
ArmAsm

#include "asm/constants/gba_constants.inc"
#include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_809A8B8
sub_809A8B8:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
lsls r0, 16
asrs r0, 16
mov r9, r0
mov r0, sp
strh r1, [r0]
ldr r1, _0809A928
mov r2, r9
lsls r0, r2, 3
add r0, r9
lsls r0, 2
ldr r2, _0809A92C
adds r0, r2
ldr r1, [r1]
adds r7, r1, r0
movs r0, 0x1
mov r10, r0
movs r1, 0
str r1, [sp, 0x4]
ldr r0, [r7, 0x20]
cmp r0, 0
beq _0809A8F6
bl CloseFile
ldr r2, [sp, 0x4]
str r2, [r7, 0x20]
_0809A8F6:
mov r4, sp
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
bl sub_80A7DDC
mov r0, sp
ldrh r0, [r0]
subs r0, 0xA
lsls r0, 16
lsrs r0, 16
cmp r0, 0x13
bhi _0809A9D6
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_80A8D54
adds r5, r0, 0
cmp r5, 0
bne _0809A930
movs r2, 0
mov r10, r2
b _0809A9D6
.align 2, 0
_0809A928: .4byte gUnknown_3001B64
_0809A92C: .4byte 0x0000043c
_0809A930:
bl sub_808D3BC
cmp r5, r0
bne _0809A940
mov r1, sp
movs r0, 0x21
strh r0, [r1]
b _0809A9D6
_0809A940:
bl sub_808D3F8
cmp r5, r0
bne _0809A950
mov r1, sp
movs r0, 0x22
strh r0, [r1]
b _0809A9D6
_0809A950:
ldrb r0, [r5, 0x4]
subs r0, 0x43
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bhi _0809A990
movs r0, 0
ldrsh r1, [r4, r0]
ldr r0, _0809A978
cmp r1, r0
beq _0809A9D6
cmp r1, r0
ble _0809A97C
adds r0, 0x16
cmp r1, r0
bgt _0809A98A
subs r0, 0x1
cmp r1, r0
blt _0809A98A
b _0809A9D6
.align 2, 0
_0809A978: .4byte 0x00000183
_0809A97C:
movs r0, 0x82
lsls r0, 1
cmp r1, r0
beq _0809A9D6
adds r0, 0x2F
cmp r1, r0
beq _0809A9D6
_0809A98A:
movs r1, 0
mov r10, r1
b _0809A9D6
_0809A990:
movs r2, 0
ldrsh r1, [r4, r2]
movs r0, 0x87
lsls r0, 1
cmp r1, r0
bgt _0809A9B0
subs r0, 0x2
cmp r1, r0
bge _0809A9D6
cmp r1, 0x90
blt _0809A9D2
cmp r1, 0x92
ble _0809A9D6
cmp r1, 0x96
beq _0809A9D6
b _0809A9D2
_0809A9B0:
movs r0, 0xCF
lsls r0, 1
cmp r1, r0
bgt _0809A9CC
subs r0, 0x4
cmp r1, r0
bge _0809A9D6
subs r0, 0x87
cmp r1, r0
bgt _0809A9D2
subs r0, 0x1
cmp r1, r0
blt _0809A9D2
b _0809A9D6
_0809A9CC:
ldr r0, _0809A9F0
cmp r1, r0
beq _0809A9D6
_0809A9D2:
movs r0, 0
mov r10, r0
_0809A9D6:
mov r0, sp
ldrh r0, [r0]
subs r0, 0x1
lsls r0, 16
asrs r0, 16
cmp r0, 0x21
bhi _0809AA98
lsls r0, 2
ldr r1, _0809A9F4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809A9F0: .4byte 0x000001a7
_0809A9F4: .4byte _0809A9F8
.align 2, 0
_0809A9F8:
.4byte _0809AA80
.4byte _0809AA80
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA80
.4byte _0809AA80
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA80
.4byte _0809AA80
_0809AA80:
movs r1, 0
ldrsh r0, [r4, r1]
bl sub_80A8CF0
lsls r0, 24
cmp r0, 0
beq _0809AA94
movs r2, 0x1
str r2, [sp, 0x4]
b _0809AA98
_0809AA94:
movs r0, 0
mov r10, r0
_0809AA98:
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809AB34
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_80A7AE8
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0
blt _0809AACE
mov r0, sp
ldrh r0, [r0]
movs r2, 0
mov r8, r2
movs r6, 0
strh r0, [r7]
adds r0, r1, 0
bl sub_80A8BFC
strh r0, [r7, 0x2]
b _0809AAE6
_0809AACE:
ldrh r1, [r4]
movs r2, 0
ldrsh r0, [r4, r2]
cmp r0, 0
beq _0809AB34
mov r0, sp
ldrh r0, [r0]
movs r2, 0
mov r8, r2
movs r6, 0
strh r0, [r7]
strh r1, [r7, 0x2]
_0809AAE6:
mov r0, r9
lsls r4, r0, 2
add r4, r9
lsls r4, 4
ldr r0, _0809AB28
adds r0, r4, r0
ldr r5, _0809AB2C
adds r1, r5, 0
bl strcpy
ldr r0, _0809AB30
adds r4, r0
adds r0, r4, 0
adds r1, r5, 0
bl strcpy
mov r1, r10
strb r1, [r7, 0x4]
mov r2, sp
ldrb r2, [r2, 0x4]
strb r2, [r7, 0x5]
movs r0, 0xFF
strb r0, [r7, 0x6]
mov r0, r8
strb r0, [r7, 0x7]
str r6, [r7, 0x8]
str r6, [r7, 0xC]
str r6, [r7, 0x10]
str r6, [r7, 0x14]
strb r0, [r7, 0x1C]
movs r0, 0x1
b _0809AB3C
.align 2, 0
_0809AB28: .4byte gFormatBuffer_Monsters
_0809AB2C: .4byte gUndefineText
_0809AB30: .4byte gFormatBuffer_Names
_0809AB34:
mov r0, r9
bl sub_809A83C
movs r0, 0
_0809AB3C:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_809A8B8
thumb_func_start sub_809AB4C
sub_809AB4C:
push {r4-r6,lr}
lsls r0, 16
asrs r5, r0, 16
lsls r1, 16
asrs r1, 16
ldr r2, _0809AB78
lsls r0, r5, 3
adds r0, r5
lsls r0, 2
ldr r3, _0809AB7C
adds r0, r3
ldr r2, [r2]
adds r6, r2, r0
adds r0, r5, 0
bl sub_809A8B8
lsls r0, 24
cmp r0, 0
bne _0809AB80
movs r0, 0
b _0809ABA0
.align 2, 0
_0809AB78: .4byte gUnknown_3001B64
_0809AB7C: .4byte 0x0000043c
_0809AB80:
lsls r4, r5, 2
adds r4, r5
lsls r4, 4
ldr r0, _0809ABA8
adds r0, r4, r0
movs r2, 0x2
ldrsh r1, [r6, r2]
bl CopyCyanMonsterNametoBuffer
ldr r0, _0809ABAC
adds r4, r0
ldr r1, _0809ABB0
adds r0, r4, 0
bl strcpy
movs r0, 0x1
_0809ABA0:
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0809ABA8: .4byte gFormatBuffer_Monsters
_0809ABAC: .4byte gFormatBuffer_Names
_0809ABB0: .4byte gSpeechBubbleChar
thumb_func_end sub_809AB4C
thumb_func_start sub_809ABB4
sub_809ABB4:
push {r4-r6,lr}
lsls r0, 16
asrs r5, r0, 16
lsls r1, 16
asrs r1, 16
ldr r2, _0809ABE0
lsls r0, r5, 3
adds r0, r5
lsls r0, 2
ldr r3, _0809ABE4
adds r0, r3
ldr r2, [r2]
adds r6, r2, r0
adds r0, r5, 0
bl sub_809A8B8
lsls r0, 24
cmp r0, 0
bne _0809ABE8
movs r0, 0
b _0809AC0A
.align 2, 0
_0809ABE0: .4byte gUnknown_3001B64
_0809ABE4: .4byte 0x0000043c
_0809ABE8:
lsls r4, r5, 2
adds r4, r5
lsls r4, 4
ldr r5, _0809AC10
adds r5, r4, r5
movs r0, 0x2
ldrsh r1, [r6, r0]
adds r0, r5, 0
bl CopyCyanMonsterNametoBuffer
ldr r0, _0809AC14
adds r4, r0
adds r0, r4, 0
adds r1, r5, 0
bl strcpy
movs r0, 0x1
_0809AC0A:
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0809AC10: .4byte gFormatBuffer_Monsters
_0809AC14: .4byte gFormatBuffer_Names
thumb_func_end sub_809ABB4
thumb_func_start sub_809AC18
sub_809AC18:
push {r4-r6,lr}
lsls r0, 16
asrs r5, r0, 16
lsls r1, 16
asrs r1, 16
ldr r2, _0809AC44
lsls r0, r5, 3
adds r0, r5
lsls r0, 2
ldr r3, _0809AC48
adds r0, r3
ldr r2, [r2]
adds r6, r2, r0
adds r0, r5, 0
bl sub_809A8B8
lsls r0, 24
cmp r0, 0
bne _0809AC4C
movs r0, 0
b _0809AC6E
.align 2, 0
_0809AC44: .4byte gUnknown_3001B64
_0809AC48: .4byte 0x0000043c
_0809AC4C:
lsls r4, r5, 2
adds r4, r5
lsls r4, 4
ldr r0, _0809AC74
adds r0, r4, r0
movs r2, 0x2
ldrsh r1, [r6, r2]
bl CopyCyanMonsterNametoBuffer
ldr r0, _0809AC78
adds r4, r0
movs r3, 0
ldrsh r1, [r6, r3]
adds r0, r4, 0
bl sub_80A8EC0
movs r0, 0x1
_0809AC6E:
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0809AC74: .4byte gFormatBuffer_Monsters
_0809AC78: .4byte gFormatBuffer_Names
thumb_func_end sub_809AC18
thumb_func_start sub_809AC7C
sub_809AC7C:
push {r4-r6,lr}
lsls r0, 16
asrs r0, 16
lsls r1, 24
asrs r5, r1, 24
lsls r2, 24
lsrs r6, r2, 24
ldr r2, _0809AD10
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r0, _0809AD14
adds r1, r0
ldr r0, [r2]
adds r4, r0, r1
ldr r0, [r4, 0x20]
cmp r0, 0
beq _0809ACA8
bl CloseFile
movs r0, 0
str r0, [r4, 0x20]
_0809ACA8:
movs r0, 0x2
ldrsh r1, [r4, r0]
cmp r1, 0
bge _0809ACB2
b _0809ADC0
_0809ACB2:
movs r0, 0x1
negs r0, r0
cmp r5, r0
bne _0809ACBC
b _0809ADC0
_0809ACBC:
cmp r1, 0
bne _0809ACC2
b _0809ADC0
_0809ACC2:
cmp r6, 0x15
beq _0809ACCE
movs r0, 0
strb r6, [r4, 0x7]
str r0, [r4, 0x8]
str r0, [r4, 0xC]
_0809ACCE:
ldr r2, _0809AD18
ldrb r0, [r4, 0x7]
lsls r0, 3
adds r0, r2
ldr r1, [r4, 0x8]
ldrh r0, [r0]
adds r0, r1
movs r6, 0
movs r3, 0
strh r0, [r4, 0x18]
ldrb r0, [r4, 0x7]
lsls r0, 3
adds r0, r2
ldr r1, [r4, 0xC]
ldrh r0, [r0, 0x2]
adds r0, r1
strh r0, [r4, 0x1A]
ldrb r0, [r4, 0x7]
lsls r0, 3
adds r0, r2
ldrb r0, [r0, 0x4]
strb r0, [r4, 0x1D]
strb r6, [r4, 0x1E]
movs r0, 0x2
negs r0, r0
cmp r5, r0
bne _0809AD1C
strb r5, [r4, 0x6]
str r3, [r4, 0x10]
str r3, [r4, 0x14]
strb r6, [r4, 0x1C]
movs r0, 0
b _0809ADD2
.align 2, 0
_0809AD10: .4byte gUnknown_3001B64
_0809AD14: .4byte 0x0000043c
_0809AD18: .4byte gUnknown_8116040
_0809AD1C:
ldrb r0, [r4, 0x4]
cmp r0, 0
beq _0809ADC0
movs r1, 0x2
ldrsh r0, [r4, r1]
bl OpenPokemonDialogueSpriteFile
str r0, [r4, 0x20]
cmp r0, 0
beq _0809ADB6
strb r5, [r4, 0x6]
str r0, [r4, 0x10]
movs r1, 0
bl GetFileDataPtr
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0x4D
beq _0809AD62
cmp r0, 0x4D
bgt _0809AD4C
cmp r0, 0x47
beq _0809AD56
b _0809ADA8
_0809AD4C:
cmp r0, 0x53
beq _0809AD76
cmp r0, 0x73
beq _0809AD8A
b _0809ADA8
_0809AD56:
movs r0, 0xF
ands r0, r5
cmp r0, 0x5
bgt _0809ADA8
adds r0, r5, 0x6
b _0809AD9C
_0809AD62:
ldrb r0, [r4, 0x1D]
cmp r0, 0
beq _0809ADA8
movs r0, 0xF
ands r0, r5
cmp r0, 0x3
bgt _0809ADA8
strb r6, [r4, 0x1D]
adds r0, r5, 0x4
b _0809AD9C
_0809AD76:
ldrb r0, [r4, 0x1D]
cmp r0, 0
beq _0809ADA8
movs r0, 0xF
ands r0, r5
cmp r0, 0
bgt _0809ADA8
strb r6, [r4, 0x1D]
adds r0, r5, 0x1
b _0809AD9C
_0809AD8A:
ldrb r0, [r4, 0x1D]
cmp r0, 0
beq _0809ADA8
movs r0, 0xF
ands r0, r5
cmp r0, 0x1
bgt _0809ADA8
strb r6, [r4, 0x1D]
adds r0, r5, 0x2
_0809AD9C:
lsls r0, 24
asrs r5, r0, 24
movs r0, 0x40
orrs r5, r0
lsls r0, r5, 24
asrs r5, r0, 24
_0809ADA8:
ldr r0, [r4, 0x20]
ldr r0, [r0, 0x4]
str r0, [r4, 0x14]
movs r0, 0xF
ands r5, r0
strb r5, [r4, 0x1C]
b _0809ADBC
_0809ADB6:
str r0, [r4, 0x10]
str r0, [r4, 0x14]
strb r6, [r4, 0x1C]
_0809ADBC:
movs r0, 0x1
b _0809ADD2
_0809ADC0:
movs r0, 0xFF
strb r0, [r4, 0x6]
movs r0, 0
strb r0, [r4, 0x7]
str r0, [r4, 0x8]
str r0, [r4, 0xC]
str r0, [r4, 0x10]
str r0, [r4, 0x14]
strb r0, [r4, 0x1C]
_0809ADD2:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_809AC7C
thumb_func_start sub_809ADD8
sub_809ADD8:
push {r4,lr}
adds r4, r1, 0
lsls r0, 16
asrs r0, 16
ldr r2, _0809AE28
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r0, _0809AE2C
adds r1, r0
ldr r0, [r2]
adds r3, r0, r1
movs r1, 0x2
ldrsh r0, [r3, r1]
cmp r0, 0
blt _0809AE34
cmp r0, 0
beq _0809AE34
ldr r0, [r4]
ldr r1, [r4, 0x4]
str r0, [r3, 0x8]
str r1, [r3, 0xC]
ldr r2, _0809AE30
ldrb r0, [r3, 0x7]
lsls r0, 3
adds r0, r2
ldr r1, [r3, 0x8]
ldrh r0, [r0]
adds r0, r1
strh r0, [r3, 0x18]
ldrb r0, [r3, 0x7]
lsls r0, 3
adds r0, r2
ldr r1, [r3, 0xC]
ldrh r0, [r0, 0x2]
adds r0, r1
strh r0, [r3, 0x1A]
movs r0, 0x1
b _0809AE36
.align 2, 0
_0809AE28: .4byte gUnknown_3001B64
_0809AE2C: .4byte 0x0000043c
_0809AE30: .4byte gUnknown_8116040
_0809AE34:
movs r0, 0
_0809AE36:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809ADD8
thumb_func_start sub_809AE3C
sub_809AE3C:
push {r4,lr}
lsls r0, 16
asrs r2, r0, 16
cmp r2, 0
blt _0809AE88
ldr r1, _0809AE80
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r3, _0809AE84
adds r0, r3
ldr r1, [r1]
adds r4, r1, r0
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0809AE74
movs r1, 0x6
ldrsb r1, [r4, r1]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _0809AE74
adds r0, r2, 0
movs r1, 0
movs r2, 0
bl sub_809AC7C
_0809AE74:
ldr r0, [r4, 0x10]
cmp r0, 0
beq _0809AE88
adds r0, r4, 0
adds r0, 0x10
b _0809AE8A
.align 2, 0
_0809AE80: .4byte gUnknown_3001B64
_0809AE84: .4byte 0x0000043c
_0809AE88:
movs r0, 0
_0809AE8A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809AE3C
thumb_func_start ScriptPrintText
ScriptPrintText:
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r2, 0
lsls r1, 16
asrs r6, r1, 16
cmp r4, 0
bne _0809AEA4
bl ScriptPrintNullTextbox
b _0809AEE0
_0809AEA4:
ldrb r0, [r4]
cmp r0, 0
beq _0809AEDC
ldr r1, _0809AED0
lsls r0, r5, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0
bl xxx_script_textboxes_809A680
ldr r0, _0809AED4
ldr r0, [r0]
adds r0, 0xC
ldr r2, _0809AED8
lsls r1, r5, 1
adds r1, r2
ldrh r1, [r1]
adds r2, r6, 0
adds r3, r4, 0
bl ScriptPrintText_809B2B8
b _0809AEE0
.align 2, 0
_0809AED0: .4byte gUnknown_8116134
_0809AED4: .4byte gUnknown_3001B64
_0809AED8: .4byte gUnknown_8116148
_0809AEDC:
bl ScriptPrintEmptyTextbox
_0809AEE0:
lsls r0, 24
lsrs r0, 24
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end ScriptPrintText
thumb_func_start sub_809AEEC
sub_809AEEC:
push {r4,lr}
adds r4, r0, 0
cmp r4, 0
beq _0809AF1C
ldrb r0, [r4]
cmp r0, 0
beq _0809AF1C
movs r0, 0x2
movs r1, 0x1
bl xxx_script_textboxes_809A680
ldr r0, _0809AF18
ldr r0, [r0]
adds r0, 0xC
movs r2, 0x1
negs r2, r2
movs r1, 0xC2
adds r3, r4, 0
bl ScriptPrintText_809B2B8
b _0809AF20
.align 2, 0
_0809AF18: .4byte gUnknown_3001B64
_0809AF1C:
bl ScriptPrintNullTextbox
_0809AF20:
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809AEEC
thumb_func_start sub_809AF2C
sub_809AF2C:
push {r4,lr}
adds r4, r0, 0
cmp r4, 0
beq _0809AF5C
ldrb r0, [r4]
cmp r0, 0
beq _0809AF5C
movs r0, 0x2
movs r1, 0x1
bl xxx_script_textboxes_809A680
ldr r0, _0809AF58
ldr r0, [r0]
adds r0, 0xC
movs r2, 0x1
negs r2, r2
movs r1, 0xC2
adds r3, r4, 0
bl ScriptPrintText_809B2B8
b _0809AF60
.align 2, 0
_0809AF58: .4byte gUnknown_3001B64
_0809AF5C:
bl ScriptPrintNullTextbox
_0809AF60:
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809AF2C
thumb_func_start sub_809AF6C
sub_809AF6C:
push {r4,lr}
adds r4, r1, 0
cmp r4, 0
beq _0809AF9C
ldrb r0, [r4]
cmp r0, 0
beq _0809AF9C
movs r0, 0x3
movs r1, 0x1
bl xxx_script_textboxes_809A680
ldr r0, _0809AF98
ldr r0, [r0]
adds r0, 0xC
movs r2, 0x1
negs r2, r2
movs r1, 0x65
adds r3, r4, 0
bl ScriptPrintText_809B2B8
b _0809AFA0
.align 2, 0
_0809AF98: .4byte gUnknown_3001B64
_0809AF9C:
bl ScriptPrintNullTextbox
_0809AFA0:
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809AF6C
thumb_func_start sub_809AFAC
sub_809AFAC:
push {lr}
movs r1, 0
ldr r0, _0809AFC4
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x4
bne _0809AFBC
movs r1, 0x1
_0809AFBC:
adds r0, r1, 0
pop {r1}
bx r1
.align 2, 0
_0809AFC4: .4byte gUnknown_3001B64
thumb_func_end sub_809AFAC
thumb_func_start sub_809AFC8
sub_809AFC8:
push {r4,r5,lr}
sub sp, 0x8
adds r5, r1, 0
adds r1, r2, 0
lsls r0, 24
lsrs r0, 24
lsls r1, 16
asrs r1, 16
ldr r4, _0809AFF8
negs r2, r0
orrs r2, r0
lsrs r2, 31
str r1, [sp]
str r3, [sp, 0x4]
adds r0, r4, 0
movs r1, 0
adds r3, r5, 0
bl sub_809B028
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0809AFF8: .4byte gUnknown_81160E8
thumb_func_end sub_809AFC8
thumb_func_start sub_809AFFC
sub_809AFFC:
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
mov r0, sp
bl sub_809B18C
lsls r0, 24
lsrs r2, r0, 24
cmp r4, 0
beq _0809B01C
movs r1, 0
ldr r0, [sp]
cmp r0, 0x1
bne _0809B01A
movs r1, 0x1
_0809B01A:
strb r1, [r4]
_0809B01C:
adds r0, r2, 0
add sp, 0x4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809AFFC
thumb_func_start sub_809B028
sub_809B028:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x14
mov r8, r0
adds r7, r2, 0
adds r6, r3, 0
ldr r0, [sp, 0x2C]
lsls r1, 24
lsrs r5, r1, 24
lsls r0, 16
asrs r4, r0, 16
ldr r1, _0809B084
lsls r0, r6, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0
bl xxx_script_textboxes_809A680
ldr r0, _0809B088
ldr r1, [r0]
ldr r0, _0809B08C
adds r2, r1, r0
movs r0, 0x1
str r0, [r2]
movs r0, 0x83
lsls r0, 3
adds r2, r1, r0
movs r0, 0
str r0, [r2]
ldr r2, _0809B090
adds r0, r1, r2
mov r2, r8
str r2, [r0]
movs r2, 0x84
lsls r2, 3
adds r0, r1, r2
movs r2, 0x2
str r2, [r0]
ldr r0, _0809B094
adds r1, r0
cmp r5, 0
beq _0809B098
str r2, [r1]
b _0809B09A
.align 2, 0
_0809B084: .4byte gUnknown_8116134
_0809B088: .4byte gUnknown_3001B64
_0809B08C: .4byte 0x00000414
_0809B090: .4byte 0x0000041c
_0809B094: .4byte 0x00000424
_0809B098:
str r5, [r1]
_0809B09A:
ldr r0, _0809B0D4
ldr r0, [r0]
movs r1, 0x85
lsls r1, 3
adds r2, r0, r1
movs r1, 0
str r1, [r2]
movs r2, 0x86
lsls r2, 3
adds r0, r2
str r7, [r0]
ldr r0, _0809B0D8
lsls r2, r6, 1
adds r0, r2, r0
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
ands r0, r1
adds r5, r2, 0
cmp r0, 0
beq _0809B0F6
cmp r4, 0
bge _0809B0E4
ldr r0, _0809B0DC
ldr r1, _0809B0E0
bl strcpy
b _0809B0F6
.align 2, 0
_0809B0D4: .4byte gUnknown_3001B64
_0809B0D8: .4byte gUnknown_8116148
_0809B0DC: .4byte gSpeakerNameBuffer
_0809B0E0: .4byte gFormattedSpeechBubble
_0809B0E4:
ldr r0, _0809B134
ldr r1, _0809B138
lsls r2, r4, 2
adds r2, r4
lsls r2, 4
ldr r3, _0809B13C
adds r2, r3
bl sprintfStatic
_0809B0F6:
adds r0, r4, 0
bl sub_809AE3C
ldr r4, _0809B140
movs r1, 0
str r1, [sp]
movs r3, 0x4
str r3, [sp, 0x4]
str r1, [sp, 0x8]
str r0, [sp, 0xC]
ldr r0, _0809B144
adds r0, r5, r0
ldrh r2, [r0]
movs r0, 0x80
lsls r0, 1
ands r0, r2
cmp r0, 0
beq _0809B11C
movs r1, 0xC
_0809B11C:
movs r0, 0x80
lsls r0, 2
ands r0, r2
cmp r0, 0
beq _0809B128
orrs r1, r3
_0809B128:
movs r0, 0x20
ands r0, r2
cmp r0, 0
beq _0809B148
movs r0, 0x21
b _0809B14A
.align 2, 0
_0809B134: .4byte gSpeakerNameBuffer
_0809B138: .4byte gUnknown_8116188
_0809B13C: .4byte gFormatBuffer_Names
_0809B140: .4byte sub_809B428
_0809B144: .4byte gUnknown_8116148
_0809B148:
movs r0, 0x1
_0809B14A:
orrs r0, r1
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x10]
ldr r0, [sp, 0x30]
adds r1, r4, 0
adds r2, r7, 0
mov r3, r8
bl CreateMenuDialogueBoxAndPortrait
ldr r0, _0809B184
ldr r0, [r0]
ldr r1, _0809B188
adds r0, r1
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _0809B176
movs r0, 0x1
bl sub_809A6E4
_0809B176:
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0809B184: .4byte gUnknown_3001B64
_0809B188: .4byte 0x00000424
thumb_func_end sub_809B028
thumb_func_start sub_809B18C
sub_809B18C:
push {lr}
adds r1, r0, 0
ldr r2, _0809B1BC
cmp r1, 0
beq _0809B1A2
ldr r0, [r2]
movs r3, 0x86
lsls r3, 3
adds r0, r3
ldr r0, [r0]
str r0, [r1]
_0809B1A2:
movs r1, 0
ldr r0, [r2]
movs r2, 0x84
lsls r2, 3
adds r0, r2
ldr r0, [r0]
cmp r0, 0x3
bne _0809B1B4
movs r1, 0x1
_0809B1B4:
adds r0, r1, 0
pop {r1}
bx r1
.align 2, 0
_0809B1BC: .4byte gUnknown_3001B64
thumb_func_end sub_809B18C
thumb_func_start sub_809B1C0
sub_809B1C0:
push {lr}
adds r3, r2, 0
movs r2, 0
bl sub_809B1D4
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_809B1C0
thumb_func_start sub_809B1D4
sub_809B1D4:
push {r4-r7,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r6, r2, 0
adds r7, r3, 0
cmp r4, 0xB
beq _0809B1E8
cmp r4, 0xC
beq _0809B1F0
b _0809B202
_0809B1E8:
adds r0, r5, 0
bl sub_8021700
b _0809B1F8
_0809B1F0:
bl sub_8001D88
bl sub_802FCF0
_0809B1F8:
lsls r0, 24
cmp r0, 0
beq _0809B202
movs r0, 0
b _0809B24C
_0809B202:
movs r0, 0x4
movs r1, 0
bl xxx_script_textboxes_809A680
ldr r0, _0809B254
ldr r1, [r0]
ldr r2, _0809B258
adds r0, r1, r2
str r4, [r0]
movs r3, 0x83
lsls r3, 3
adds r0, r1, r3
movs r2, 0
str r2, [r0]
adds r3, 0x4
adds r0, r1, r3
str r2, [r0]
movs r0, 0x84
lsls r0, 3
adds r2, r1, r0
movs r0, 0x1
str r0, [r2]
ldr r2, _0809B25C
adds r0, r1, r2
str r5, [r0]
adds r3, 0xC
adds r0, r1, r3
str r6, [r0]
adds r2, 0x8
adds r0, r1, r2
str r7, [r0]
adds r3, 0x8
adds r1, r3
movs r0, 0x1
negs r0, r0
str r0, [r1]
movs r0, 0x1
_0809B24C:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0809B254: .4byte gUnknown_3001B64
_0809B258: .4byte 0x00000414
_0809B25C: .4byte 0x00000424
thumb_func_end sub_809B1D4
thumb_func_start sub_809B260
sub_809B260:
push {lr}
adds r1, r0, 0
ldr r2, _0809B290
cmp r1, 0
beq _0809B276
ldr r0, [r2]
movs r3, 0x86
lsls r3, 3
adds r0, r3
ldr r0, [r0]
str r0, [r1]
_0809B276:
movs r1, 0
ldr r0, [r2]
movs r2, 0x84
lsls r2, 3
adds r0, r2
ldr r0, [r0]
cmp r0, 0x3
bne _0809B288
movs r1, 0x1
_0809B288:
adds r0, r1, 0
pop {r1}
bx r1
.align 2, 0
_0809B290: .4byte gUnknown_3001B64
thumb_func_end sub_809B260
thumb_func_start ResetTextbox_809B294
ResetTextbox_809B294:
push {lr}
movs r0, 0x3
bl SetCharacterMask
ldr r0, _0809B2B4
ldr r0, [r0]
adds r0, 0xC
movs r2, 0x1
negs r2, r2
movs r1, 0
movs r3, 0
bl ScriptPrintText_809B2B8
pop {r0}
bx r0
.align 2, 0
_0809B2B4: .4byte gUnknown_3001B64
thumb_func_end ResetTextbox_809B294
thumb_func_start ScriptPrintText_809B2B8
ScriptPrintText_809B2B8:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
adds r4, r0, 0
adds r7, r3, 0
lsls r1, 16
lsrs r5, r1, 16
lsls r2, 16
asrs r6, r2, 16
strh r5, [r4]
cmp r7, 0
bne _0809B2F6
cmp r5, 0
bne _0809B2DE
str r7, [r4, 0x4]
movs r0, 0
b _0809B3FC
_0809B2DE:
movs r0, 0x4
ands r0, r5
cmp r0, 0
bne _0809B2E8
b _0809B3FA
_0809B2E8:
bl sub_8014490
movs r0, 0
movs r1, 0x1
bl xxx_script_textboxes_809A680
b _0809B3FA
_0809B2F6:
movs r0, 0x1
str r0, [r4, 0x4]
adds r0, 0xFF
ands r0, r5
cmp r0, 0
beq _0809B32A
cmp r6, 0
bge _0809B318
ldr r0, _0809B310
ldr r1, _0809B314
bl strcpy
b _0809B32A
.align 2, 0
_0809B310: .4byte gSpeakerNameBuffer
_0809B314: .4byte gFormattedSpeechBubble
_0809B318:
ldr r0, _0809B3D0
ldr r1, _0809B3D4
lsls r2, r6, 2
adds r2, r6
lsls r2, 4
ldr r3, _0809B3D8
adds r2, r3
bl sprintfStatic
_0809B32A:
ldr r0, _0809B3DC
mov r8, r0
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x3
bne _0809B344
adds r4, 0x8
ldr r1, _0809B3E0
adds r0, r4, 0
adds r2, r7, 0
bl sprintfStatic
adds r7, r4, 0
_0809B344:
adds r0, r6, 0
bl sub_809AE3C
ldr r1, _0809B3E4
mov r9, r1
movs r1, 0x1
negs r1, r1
mov r12, r1
movs r2, 0
str r2, [sp]
movs r1, 0x3
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r0, [sp, 0xC]
movs r6, 0x80
lsls r6, 1
adds r0, r5, 0
ands r0, r6
movs r1, 0
cmp r0, 0
beq _0809B370
movs r1, 0xC
_0809B370:
movs r4, 0x80
lsls r4, 2
adds r0, r5, 0
ands r0, r4
cmp r0, 0
beq _0809B380
movs r0, 0x4
orrs r1, r0
_0809B380:
mov r0, r8
ldr r3, [r0]
ldr r2, [r3]
cmp r2, 0x3
bne _0809B38E
movs r0, 0x10
orrs r1, r0
_0809B38E:
cmp r2, 0x2
bne _0809B396
movs r0, 0x10
orrs r1, r0
_0809B396:
adds r2, r1, 0
movs r1, 0x20
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _0809B3A4
orrs r2, r1
_0809B3A4:
lsrs r1, r5, 6
movs r0, 0x1
ands r1, r0
orrs r1, r2
movs r0, 0x80
ands r0, r5
cmp r0, 0
beq _0809B3B6
orrs r1, r6
_0809B3B6:
movs r0, 0x4
ands r0, r5
cmp r0, 0
beq _0809B3C0
orrs r1, r4
_0809B3C0:
ldr r0, [r3, 0x4]
cmp r0, r12
beq _0809B3E8
movs r0, 0x2
orrs r0, r1
lsls r0, 16
b _0809B3EA
.align 2, 0
_0809B3D0: .4byte gSpeakerNameBuffer
_0809B3D4: .4byte gUnknown_8116188
_0809B3D8: .4byte gFormatBuffer_Names
_0809B3DC: .4byte gUnknown_3001B64
_0809B3E0: .4byte gUnknown_8116190
_0809B3E4: .4byte sub_809B428
_0809B3E8:
lsls r0, r1, 16
_0809B3EA:
lsrs r0, 16
str r0, [sp, 0x10]
adds r0, r7, 0
mov r1, r9
mov r2, r12
movs r3, 0
bl CreateMenuDialogueBoxAndPortrait
_0809B3FA:
movs r0, 0x1
_0809B3FC:
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end ScriptPrintText_809B2B8
thumb_func_start IsTextboxOpen_809B40C
IsTextboxOpen_809B40C:
push {lr}
ldr r0, [r0, 0x4]
cmp r0, 0
beq _0809B41C
cmp r0, 0x3
bhi _0809B420
cmp r0, 0x2
bcc _0809B420
_0809B41C:
movs r0, 0
b _0809B422
_0809B420:
movs r0, 0x1
_0809B422:
pop {r1}
bx r1
thumb_func_end IsTextboxOpen_809B40C
thumb_func_start sub_809B428
sub_809B428:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r2, 0
ldrb r0, [r5, 0x2]
cmp r0, 0x4F
beq _0809B44C
cmp r0, 0x4F
bgt _0809B43E
cmp r0, 0x49
beq _0809B444
b _0809B46A
_0809B43E:
cmp r0, 0x57
beq _0809B454
b _0809B46A
_0809B444:
movs r0, 0x1E
bl sub_8099A34
b _0809B462
_0809B44C:
movs r0, 0x1E
bl sub_8099A48
b _0809B462
_0809B454:
bl sub_8099B94
lsls r0, 24
cmp r0, 0
beq _0809B462
adds r0, r5, 0
b _0809B46C
_0809B462:
adds r1, r4, 0
adds r1, 0x21
movs r0, 0x1
strb r0, [r1]
_0809B46A:
movs r0, 0
_0809B46C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_809B428
thumb_func_start sub_809B474
sub_809B474:
push {r4-r6,lr}
ldr r0, _0809B498
ldr r1, [r0]
ldr r2, [r1]
adds r6, r0, 0
cmp r2, 0x3
bls _0809B56E
cmp r2, 0x4
bne _0809B56E
movs r5, 0x84
lsls r5, 3
adds r0, r1, r5
ldr r0, [r0]
cmp r0, 0x1
beq _0809B49C
cmp r0, 0x2
beq _0809B508
b _0809B56E
.align 2, 0
_0809B498: .4byte gUnknown_3001B64
_0809B49C:
bl sub_809B648
lsls r0, 24
cmp r0, 0
bne _0809B4B0
ldr r0, [r6]
adds r0, r5
movs r1, 0x3
str r1, [r0]
b _0809B4E8
_0809B4B0:
ldr r0, [r6]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r4, [r0]
cmp r4, 0
beq _0809B4F8
ldr r0, [r4, 0x4]
cmp r0, 0
beq _0809B4F2
bl ResetTextbox_809B294
ldr r0, [r4, 0x4]
bl _call_via_r0
lsls r0, 24
cmp r0, 0
bne _0809B4F2
ldr r1, [r6]
movs r3, 0x86
lsls r3, 3
adds r2, r1, r3
movs r0, 0x1
negs r0, r0
str r0, [r2]
adds r1, r5
movs r0, 0x3
str r0, [r1]
_0809B4E8:
movs r0, 0
movs r1, 0x1
bl xxx_script_textboxes_809A680
b _0809B56E
_0809B4F2:
ldrh r0, [r4]
bl sub_809A6E4
_0809B4F8:
ldr r0, _0809B534
ldr r1, [r0]
movs r2, 0x84
lsls r2, 3
adds r1, r2
movs r2, 0x2
str r2, [r1]
adds r6, r0, 0
_0809B508:
ldr r0, [r6]
movs r3, 0x83
lsls r3, 3
adds r0, r3
ldr r4, [r0]
cmp r4, 0
beq _0809B54E
ldr r0, [r4, 0xC]
bl _call_via_r0
adds r2, r0, 0
cmp r2, 0x1
bls _0809B56E
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r1, r0, r3
cmp r2, 0x2
bne _0809B538
movs r0, 0x1
negs r0, r0
b _0809B53A
.align 2, 0
_0809B534: .4byte gUnknown_3001B64
_0809B538:
movs r0, 0
_0809B53A:
str r0, [r1]
ldr r0, [r4, 0x8]
cmp r0, 0
beq _0809B546
bl _call_via_r0
_0809B546:
ldrh r0, [r4]
bl sub_809A6F8
b _0809B558
_0809B54E:
bl sub_809B648
lsls r0, 24
cmp r0, 0
bne _0809B56E
_0809B558:
ldr r0, _0809B578
ldr r0, [r0]
movs r1, 0x84
lsls r1, 3
adds r0, r1
movs r1, 0x3
str r1, [r0]
movs r0, 0
movs r1, 0x1
bl xxx_script_textboxes_809A680
_0809B56E:
bl sub_809B57C
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0809B578: .4byte gUnknown_3001B64
thumb_func_end sub_809B474
thumb_func_start sub_809B57C
sub_809B57C:
push {r4,r5,lr}
sub sp, 0x8
bl DrawDialogueBoxString
ldr r5, _0809B5C8
ldr r0, [r5]
ldr r1, [r0]
cmp r1, 0x3
bhi _0809B5E4
cmp r1, 0x1
bcc _0809B5E4
movs r4, 0x84
lsls r4, 3
adds r0, r4
ldr r0, [r0]
cmp r0, 0
beq _0809B5CC
cmp r0, 0x3
beq _0809B5CC
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0809B5E4
ldr r1, [sp]
movs r0, 0x1
bl GroundScriptLock
ldr r1, [r5]
adds r2, r1, r4
movs r0, 0x3
str r0, [r2]
movs r0, 0x86
lsls r0, 3
adds r1, r0
ldr r0, [sp]
str r0, [r1]
b _0809B5E4
.align 2, 0
_0809B5C8: .4byte gUnknown_3001B64
_0809B5CC:
add r0, sp, 0x4
bl sub_80144A4
adds r4, r0, 0
cmp r4, 0
bne _0809B5E4
movs r0, 0
bl GroundScriptLockJumpZero
ldr r0, _0809B5FC
ldr r0, [r0]
str r4, [r0]
_0809B5E4:
ldr r0, _0809B5FC
ldr r0, [r0]
ldr r1, _0809B600
adds r0, r1
ldr r0, [r0]
cmp r0, 0
bge _0809B604
movs r0, 0
movs r1, 0
bl sub_8005838
b _0809B60C
.align 2, 0
_0809B5FC: .4byte gUnknown_3001B64
_0809B600: .4byte 0x00000434
_0809B604:
movs r0, 0
movs r1, 0x5
bl sub_8005838
_0809B60C:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_809B57C
thumb_func_start sub_809B614
sub_809B614:
push {lr}
bl sub_80060EC
ldr r0, _0809B62C
ldr r2, _0809B630
ldrh r1, [r2]
strh r1, [r0]
ldr r0, _0809B634
ands r0, r1
strh r0, [r2]
pop {r0}
bx r0
.align 2, 0
_0809B62C: .4byte gUnknown_20399DE
_0809B630: .4byte gUnknown_20399DC
_0809B634: .4byte 0x0000fffd
thumb_func_end sub_809B614
thumb_func_start sub_809B638
sub_809B638:
push {lr}
bl xxx_call_update_bg_vram
pop {r0}
bx r0
thumb_func_end sub_809B638
thumb_func_start nullsub_210
nullsub_210:
bx lr
thumb_func_end nullsub_210
thumb_func_start sub_809B648
sub_809B648:
push {r4-r6,lr}
sub sp, 0x24
ldr r0, _0809B66C
ldr r1, [r0]
ldr r2, _0809B670
adds r1, r2
ldr r1, [r1]
subs r1, 0x2
adds r6, r0, 0
cmp r1, 0x2C
bls _0809B662
bl _0809C392
_0809B662:
lsls r0, r1, 2
ldr r1, _0809B674
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809B66C: .4byte gUnknown_3001B64
_0809B670: .4byte 0x00000414
_0809B674: .4byte _0809B678
.align 2, 0
_0809B678:
.4byte _0809B72C
.4byte _0809B772
.4byte _0809B7AC
.4byte _0809B834
.4byte _0809B89C
.4byte _0809B8FC
.4byte _0809B91C
.4byte _0809B944
.4byte _0809B9D2
.4byte _0809BA2A
.4byte _0809BAA8
.4byte _0809BB66
.4byte _0809BBDA
.4byte _0809BBDA
.4byte _0809BC26
.4byte _0809BC68
.4byte _0809C1B4
.4byte _0809BC78
.4byte _0809C1C2
.4byte _0809C1C2
.4byte _0809C1C8
.4byte _0809BCBC
.4byte _0809BCBC
.4byte _0809BD1C
.4byte _0809BD64
.4byte _0809BDE8
.4byte _0809BE30
.4byte _0809BE40
.4byte _0809BE50
.4byte _0809BE60
.4byte _0809BE9C
.4byte _0809BEB8
.4byte _0809BED4
.4byte _0809BF70
.4byte _0809BFFC
.4byte _0809C072
.4byte _0809C0B8
.4byte _0809C0FC
.4byte _0809C148
.4byte _0809C158
.4byte _0809C168
.4byte _0809C204
.4byte _0809C238
.4byte _0809C280
.4byte _0809C32A
_0809B72C:
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r0, r2, r3
ldr r0, [r0]
cmp r0, 0x1
beq _0809B780
ldr r0, _0809B754
ldrh r0, [r0, 0x2]
movs r1, 0x3
ands r0, r1
cmp r0, 0
beq _0809B758
movs r0, 0x86
lsls r0, 3
adds r1, r2, r0
movs r0, 0x1
str r0, [r1]
bl _0809C392
.align 2, 0
_0809B754: .4byte gRealInputs
_0809B758:
bl sub_8094D14
lsls r0, 24
cmp r0, 0
beq _0809B784
ldr r0, [r6]
movs r1, 0x86
lsls r1, 3
adds r0, r1
movs r1, 0x2
str r1, [r0]
bl _0809C392
_0809B772:
ldr r0, [r6]
movs r2, 0x84
lsls r2, 3
adds r0, r2
ldr r0, [r0]
cmp r0, 0x1
bne _0809B78A
_0809B780:
bl ResetTextbox_809B294
_0809B784:
movs r0, 0x1
bl _0809C394
_0809B78A:
ldr r0, _0809B7A8
ldrh r1, [r0]
ldrh r0, [r0, 0x2]
movs r2, 0x2
ands r0, r2
cmp r0, 0
beq _0809B79C
bl _0809C392
_0809B79C:
ands r1, r2
cmp r1, 0
bne _0809B784
bl _0809C392
.align 2, 0
_0809B7A8: .4byte gRealInputs
_0809B7AC:
ldr r0, [r6]
movs r3, 0x84
lsls r3, 3
adds r0, r3
ldr r0, [r0]
cmp r0, 0x1
bne _0809B7F4
bl ResetTextbox_809B294
ldr r1, [r6]
ldr r2, _0809B7D8
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
bne _0809B7E0
ldr r3, _0809B7DC
adds r0, r1, r3
ldr r1, [r0]
movs r0, 0
bl CreateConfirmNameMenu
b _0809B784
.align 2, 0
_0809B7D8: .4byte 0x00000424
_0809B7DC: .4byte 0x0000042c
_0809B7E0:
ldr r2, _0809B7F0
adds r0, r1, r2
ldr r1, [r0]
movs r0, 0x2
bl CreateConfirmNameMenu
b _0809B784
.align 2, 0
_0809B7F0: .4byte 0x0000042c
_0809B7F4:
bl sub_8016080
cmp r0, 0x3
bne _0809B80C
bl CleanConfirmNameMenu
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
bl _0809C1BC
_0809B80C:
cmp r0, 0x2
bne _0809B784
ldr r0, [r6]
ldr r1, _0809B830
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _0809B784
bl CleanConfirmNameMenu
ldr r0, [r6]
movs r2, 0x86
lsls r2, 3
adds r0, r2
_0809B828:
movs r1, 0
str r1, [r0]
bl _0809C392
.align 2, 0
_0809B830: .4byte 0x00000424
_0809B834:
ldr r0, [r6]
movs r3, 0x84
lsls r3, 3
adds r0, r3
ldr r0, [r0]
cmp r0, 0x1
bne _0809B85C
bl ResetTextbox_809B294
ldr r0, [r6]
ldr r1, _0809B858
adds r0, r1
ldr r1, [r0]
movs r0, 0x1
bl CreateConfirmNameMenu
b _0809B784
.align 2, 0
_0809B858: .4byte 0x0000042c
_0809B85C:
bl sub_8016080
cmp r0, 0x3
bne _0809B874
bl CleanConfirmNameMenu
ldr r0, [r6]
movs r2, 0x86
lsls r2, 3
adds r0, r2
bl _0809C1BC
_0809B874:
cmp r0, 0x2
beq _0809B87A
b _0809B784
_0809B87A:
ldr r0, [r6]
ldr r3, _0809B898
adds r0, r3
ldr r0, [r0]
cmp r0, 0
bne _0809B888
b _0809B784
_0809B888:
bl CleanConfirmNameMenu
ldr r0, [r6]
movs r1, 0x86
lsls r1, 3
adds r0, r1
b _0809B828
.align 2, 0
_0809B898: .4byte 0x00000424
_0809B89C:
ldr r0, [r6]
movs r2, 0x84
lsls r2, 3
adds r0, r2
ldr r0, [r0]
cmp r0, 0x1
bne _0809B8C4
bl ResetTextbox_809B294
ldr r0, [r6]
ldr r3, _0809B8C0
adds r0, r3
ldr r1, [r0]
movs r0, 0x4
bl sub_80151C0
b _0809B784
.align 2, 0
_0809B8C0: .4byte 0x0000042c
_0809B8C4:
bl sub_80154F0
cmp r0, 0x3
bne _0809B8D4
bl sub_80155F0
bl _0809C1B4
_0809B8D4:
cmp r0, 0x2
beq _0809B8DA
b _0809B784
_0809B8DA:
ldr r0, [r6]
ldr r2, _0809B8F8
adds r0, r2
ldr r0, [r0]
cmp r0, 0
bne _0809B8E8
b _0809B784
_0809B8E8:
bl sub_80155F0
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
b _0809B828
.align 2, 0
_0809B8F8: .4byte 0x00000424
_0809B8FC:
ldr r0, [r6]
ldr r1, _0809B914
adds r0, r1
ldr r0, [r0]
bl sub_801D014
ldr r0, [r6]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809B918
b _0809B932
.align 2, 0
_0809B914: .4byte 0x0000042c
_0809B918: .4byte gUnknown_81161A8
_0809B91C:
ldr r0, [r6]
ldr r3, _0809B93C
adds r0, r3
ldr r0, [r0]
bl sub_801D014
ldr r0, [r6]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r1, _0809B940
_0809B932:
str r1, [r0]
movs r0, 0x4
bl PlayMenuSoundEffect
b _0809B784
.align 2, 0
_0809B93C: .4byte 0x0000042c
_0809B940: .4byte gUnknown_81161B8
_0809B944:
bl ResetTextbox_809B294
ldr r4, _0809B984
ldr r0, [r4]
movs r2, 0x84
lsls r2, 3
adds r0, r2
ldr r0, [r0]
cmp r0, 0x1
bne _0809B998
bl ResetTextbox_809B294
ldr r0, [r4]
ldr r3, _0809B988
adds r0, r3
ldr r0, [r0]
ldr r1, _0809B98C
bl sub_8015080
lsls r0, 24
cmp r0, 0
bne _0809B990
ldr r0, [r4]
_0809B972:
movs r1, 0x86
lsls r1, 3
adds r0, r1
_0809B978:
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl _0809C392
.align 2, 0
_0809B984: .4byte gUnknown_3001B64
_0809B988: .4byte 0x0000042c
_0809B98C: .4byte gUnknown_811610C
_0809B990:
movs r0, 0x4
bl PlayMenuSoundEffect
b _0809B784
_0809B998:
bl sub_801516C
cmp r0, 0x2
beq _0809B9BC
cmp r0, 0x3
beq _0809B9A6
b _0809B784
_0809B9A6:
bl sub_8015198
ldr r1, [r4]
movs r2, 0x86
lsls r2, 3
adds r1, r2
str r0, [r1]
bl sub_80151A4
bl _0809C392
_0809B9BC:
ldr r0, [r4]
movs r3, 0x86
lsls r3, 3
adds r0, r3
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl sub_80151A4
bl _0809C392
_0809B9D2:
bl ResetTextbox_809B294
ldr r4, _0809BA08
ldr r0, [r4]
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
bne _0809BA1C
bl ResetTextbox_809B294
ldr r0, [r4]
ldr r2, _0809BA0C
adds r0, r2
ldr r0, [r0]
ldr r1, _0809BA10
bl sub_8015080
lsls r0, 24
cmp r0, 0
bne _0809BA14
ldr r0, [r4]
movs r3, 0x86
lsls r3, 3
adds r0, r3
b _0809B978
.align 2, 0
_0809BA08: .4byte gUnknown_3001B64
_0809BA0C: .4byte 0x0000042c
_0809BA10: .4byte gUnknown_811612C
_0809BA14:
movs r0, 0x4
bl PlayMenuSoundEffect
b _0809B784
_0809BA1C:
bl sub_801516C
cmp r0, 0x2
beq _0809B9BC
cmp r0, 0x3
beq _0809B9A6
b _0809B784
_0809BA2A:
ldr r0, [r6]
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
bne _0809BA68
bl ResetTextbox_809B294
ldr r0, [r6]
ldr r2, _0809BA5C
adds r0, r2
ldr r0, [r0]
movs r1, 0x3
bl sub_80211AC
lsls r0, 24
cmp r0, 0
bne _0809BA60
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
b _0809B978
.align 2, 0
_0809BA5C: .4byte 0x00000424
_0809BA60:
movs r0, 0x4
bl PlayMenuSoundEffect
b _0809B784
_0809BA68:
movs r0, 0x1
bl sub_8021274
cmp r0, 0x2
beq _0809BA92
cmp r0, 0x3
beq _0809BA78
b _0809B784
_0809BA78:
bl sub_802132C
ldr r1, [r6]
movs r2, 0x86
lsls r2, 3
adds r1, r2
lsls r0, 24
lsrs r0, 24
str r0, [r1]
bl sub_80213A0
bl _0809C392
_0809BA92:
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl sub_80213A0
bl _0809C392
_0809BAA8:
ldr r0, [r6]
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
bne _0809BB10
movs r0, 0
movs r1, 0x12
bl GetScriptVarValue
lsls r0, 16
asrs r0, 16
bl sub_80A2654
lsls r0, 16
asrs r4, r0, 16
bl ResetTextbox_809B294
movs r0, 0x3
movs r1, 0
movs r2, 0xA
movs r3, 0x1
bl sub_802F73C
lsls r0, 24
cmp r0, 0
bne _0809BAEA
ldr r0, [r6]
movs r2, 0x86
lsls r2, 3
adds r0, r2
b _0809B978
_0809BAEA:
movs r5, 0x1
negs r5, r5
cmp r4, r5
beq _0809BB08
adds r0, r4, 0
bl sub_802F848
lsls r0, 24
cmp r0, 0
bne _0809BB08
movs r0, 0
movs r1, 0x12
adds r2, r5, 0
bl SetScriptVarValue
_0809BB08:
movs r0, 0x4
bl PlayMenuSoundEffect
b _0809B784
_0809BB10:
movs r0, 0x1
bl sub_802F8A0
cmp r0, 0x2
beq _0809BB50
cmp r0, 0x3
beq _0809BB20
b _0809B784
_0809BB20:
bl sub_802F90C
adds r4, r0, 0
lsls r4, 16
asrs r4, 16
adds r0, r4, 0
bl sub_80A26B8
adds r2, r0, 0
lsls r2, 16
asrs r2, 16
movs r0, 0
movs r1, 0x12
bl SetScriptVarValue
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
str r4, [r0]
bl sub_802F974
bl _0809C392
_0809BB50:
ldr r0, [r6]
movs r1, 0x86
lsls r1, 3
adds r0, r1
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl sub_802F974
bl _0809C392
_0809BB66:
ldr r0, [r6]
movs r2, 0x84
lsls r2, 3
adds r0, r2
ldr r0, [r0]
cmp r0, 0x1
bne _0809BB9A
bl ResetTextbox_809B294
movs r0, 0x3
movs r1, 0
movs r2, 0xA
bl sub_80302E8
lsls r0, 24
cmp r0, 0
bne _0809BB92
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
b _0809B978
_0809BB92:
movs r0, 0x4
bl PlayMenuSoundEffect
b _0809B784
_0809BB9A:
movs r0, 0x1
bl sub_80303AC
cmp r0, 0x2
beq _0809BBC4
cmp r0, 0x3
beq _0809BBAA
b _0809B784
_0809BBAA:
bl sub_8030418
ldr r1, [r6]
movs r2, 0x86
lsls r2, 3
adds r1, r2
lsls r0, 16
asrs r0, 16
str r0, [r1]
bl sub_8030480
bl _0809C392
_0809BBC4:
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl sub_8030480
bl _0809C392
_0809BBDA:
ldr r0, [r6]
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
bne _0809BC14
bl ResetTextbox_809B294
ldr r0, [r6]
ldr r2, _0809BC10
adds r0, r2
ldr r0, [r0]
cmp r0, 0xE
bne _0809BC02
movs r0, 0
movs r1, 0x18
movs r2, 0x1
bl SetScriptVarValue
_0809BC02:
movs r0, 0x1
bl sub_8011C28
movs r0, 0
bl PrepareSavePakWrite
b _0809B784
.align 2, 0
_0809BC10: .4byte 0x00000414
_0809BC14:
bl WriteSavePak
lsls r0, 24
cmp r0, 0
beq _0809BC20
b _0809B784
_0809BC20:
bl FinishWriteSavePak
b _0809C392
_0809BC26:
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
lsrs r0, 24
negs r4, r0
orrs r4, r0
lsrs r4, 31
bl ResetTextbox_809B294
adds r0, r4, 0
bl CreateKangaskhanStorage
lsls r0, 24
cmp r0, 0
beq _0809BC5C
ldr r0, _0809BC54
ldr r0, [r0]
movs r3, 0x83
lsls r3, 3
adds r0, r3
ldr r1, _0809BC58
b _0809C266
.align 2, 0
_0809BC54: .4byte gUnknown_3001B64
_0809BC58: .4byte gUnknown_81161C8
_0809BC5C:
ldr r0, _0809BC64
ldr r0, [r0]
b _0809B972
.align 2, 0
_0809BC64: .4byte gUnknown_3001B64
_0809BC68:
ldr r0, [r6]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809BC74
b _0809C266
.align 2, 0
_0809BC74: .4byte gUnknown_81161D8
_0809BC78:
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
lsrs r0, 24
negs r4, r0
orrs r4, r0
lsrs r4, 31
bl ResetTextbox_809B294
adds r0, r4, 0
bl CreateFelicityBank
lsls r0, 24
cmp r0, 0
beq _0809BCB0
ldr r0, _0809BCA8
ldr r0, [r0]
movs r3, 0x83
lsls r3, 3
adds r0, r3
ldr r1, _0809BCAC
b _0809C266
.align 2, 0
_0809BCA8: .4byte gUnknown_3001B64
_0809BCAC: .4byte gUnknown_81161E8
_0809BCB0:
ldr r0, _0809BCB8
ldr r0, [r0]
b _0809B972
.align 2, 0
_0809BCB8: .4byte gUnknown_3001B64
_0809BCBC:
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
lsrs r4, r0, 24
bl ResetTextbox_809B294
ldr r0, _0809BCE0
ldr r0, [r0]
ldr r2, _0809BCE4
adds r0, r2
ldr r0, [r0]
cmp r0, 0x17
bne _0809BCE8
negs r0, r4
orrs r0, r4
lsrs r0, 31
b _0809BCF0
.align 2, 0
_0809BCE0: .4byte gUnknown_3001B64
_0809BCE4: .4byte 0x00000414
_0809BCE8:
movs r0, 0x2
cmp r4, 0
beq _0809BCF0
movs r0, 0x3
_0809BCF0:
bl CreateKecleonBros
lsls r0, 24
cmp r0, 0
beq _0809BD10
ldr r0, _0809BD08
ldr r0, [r0]
movs r3, 0x83
lsls r3, 3
adds r0, r3
ldr r1, _0809BD0C
b _0809C266
.align 2, 0
_0809BD08: .4byte gUnknown_3001B64
_0809BD0C: .4byte gUnknown_81161F8
_0809BD10:
ldr r0, _0809BD18
ldr r0, [r0]
b _0809B972
.align 2, 0
_0809BD18: .4byte gUnknown_3001B64
_0809BD1C:
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
lsrs r0, 24
negs r4, r0
orrs r4, r0
lsrs r4, 31
bl ResetTextbox_809B294
adds r0, r4, 0
bl sub_801FB50
lsls r0, 24
cmp r0, 0
beq _0809BD54
ldr r0, _0809BD4C
ldr r0, [r0]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809BD50
b _0809C266
.align 2, 0
_0809BD4C: .4byte gUnknown_3001B64
_0809BD50: .4byte gUnknown_8116208
_0809BD54:
ldr r0, _0809BD60
ldr r0, [r0]
movs r3, 0x86
lsls r3, 3
adds r0, r3
b _0809B978
.align 2, 0
_0809BD60: .4byte gUnknown_3001B64
_0809BD64:
ldr r0, [r6]
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
bne _0809BD84
bl ResetTextbox_809B294
movs r0, 0
movs r1, 0x39
bl ClearScriptVarArray
bl sub_802465C
b _0809B784
_0809BD84:
bl sub_80246F0
adds r4, r0, 0
movs r0, 0
movs r1, 0x39
bl GetScriptVarValue
cmp r0, 0
bne _0809BDB2
bl HasEvolutionCompleted
lsls r0, 24
cmp r0, 0
beq _0809BDB2
movs r0, 0
movs r1, 0x39
movs r2, 0x1
bl SetScriptVarValue
movs r0, 0x46
movs r1, 0
bl GroundMap_ExecuteEvent
_0809BDB2:
cmp r4, 0x3
bne _0809BDCC
bl CleanLuminousCave
ldr r0, _0809BDC8
ldr r0, [r0]
movs r2, 0x86
lsls r2, 3
adds r0, r2
b _0809C1BC
.align 2, 0
_0809BDC8: .4byte gUnknown_3001B64
_0809BDCC:
cmp r4, 0x2
beq _0809BDD2
b _0809B784
_0809BDD2:
bl CleanLuminousCave
ldr r0, _0809BDE4
ldr r0, [r0]
movs r3, 0x86
lsls r3, 3
adds r0, r3
b _0809B828
.align 2, 0
_0809BDE4: .4byte gUnknown_3001B64
_0809BDE8:
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
lsrs r0, 24
negs r4, r0
orrs r4, r0
lsrs r4, 31
bl ResetTextbox_809B294
adds r0, r4, 0
bl CreateWigglytuffShop
lsls r0, 24
cmp r0, 0
beq _0809BE20
ldr r0, _0809BE18
ldr r0, [r0]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r1, _0809BE1C
b _0809C266
.align 2, 0
_0809BE18: .4byte gUnknown_3001B64
_0809BE1C: .4byte gUnknown_8116218
_0809BE20:
ldr r0, _0809BE2C
ldr r0, [r0]
movs r2, 0x86
lsls r2, 3
adds r0, r2
b _0809B978
.align 2, 0
_0809BE2C: .4byte gUnknown_3001B64
_0809BE30:
ldr r0, [r6]
movs r3, 0x83
lsls r3, 3
adds r0, r3
ldr r1, _0809BE3C
b _0809C266
.align 2, 0
_0809BE3C: .4byte gUnknown_8116228
_0809BE40:
ldr r0, [r6]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r1, _0809BE4C
b _0809C266
.align 2, 0
_0809BE4C: .4byte gUnknown_8116238
_0809BE50:
ldr r0, [r6]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809BE5C
b _0809C266
.align 2, 0
_0809BE5C: .4byte gUnknown_8116248
_0809BE60:
bl ResetTextbox_809B294
movs r0, 0x98
lsls r0, 1
bl CreateHelperPelipperMenu
lsls r0, 24
cmp r0, 0
bne _0809BE84
ldr r0, _0809BE80
ldr r0, [r0]
movs r3, 0x86
lsls r3, 3
adds r0, r3
b _0809B978
.align 2, 0
_0809BE80: .4byte gUnknown_3001B64
_0809BE84:
ldr r0, _0809BE94
ldr r0, [r0]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r1, _0809BE98
b _0809C266
.align 2, 0
_0809BE94: .4byte gUnknown_3001B64
_0809BE98: .4byte gUnknown_8116258
_0809BE9C:
movs r0, 0x4
bl PlayMenuSoundEffect
ldr r0, _0809BEB0
ldr r0, [r0]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809BEB4
b _0809C266
.align 2, 0
_0809BEB0: .4byte gUnknown_3001B64
_0809BEB4: .4byte gUnknown_8116268
_0809BEB8:
movs r0, 0x4
bl PlayMenuSoundEffect
ldr r0, _0809BECC
ldr r0, [r0]
movs r3, 0x83
lsls r3, 3
adds r0, r3
ldr r1, _0809BED0
b _0809C266
.align 2, 0
_0809BECC: .4byte gUnknown_3001B64
_0809BED0: .4byte gUnknown_8116278
_0809BED4:
mov r0, sp
bl sub_8099328
lsls r0, 24
cmp r0, 0
beq _0809BF4E
add r1, sp, 0x4
add r2, sp, 0x8
movs r0, 0x2
bl GetScriptVarScenario
ldr r0, [sp, 0x8]
cmp r0, 0x7
bgt _0809BF4E
add r4, sp, 0xC
_0809BEF2:
lsls r1, r0, 24
lsrs r1, 24
mov r0, sp
ldrb r2, [r0]
adds r0, r4, 0
bl sub_8096AF8
ldrb r0, [r4]
cmp r0, 0
beq _0809BF44
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
movs r0, 0x2
bl ScenarioCalc
ldr r0, _0809BF40
ldr r0, [r0]
movs r1, 0x86
lsls r1, 3
adds r2, r0, r1
ldrh r1, [r4, 0x2]
lsls r1, 16
asrs r1, 16
negs r0, r1
orrs r0, r1
lsrs r1, r0, 31
movs r3, 0x4
ldrsh r0, [r4, r3]
cmp r0, 0
beq _0809BF30
adds r1, 0x2
_0809BF30:
str r1, [r2]
cmp r1, 0
beq _0809BF38
b _0809C392
_0809BF38:
movs r0, 0x3
str r0, [r2]
b _0809C392
.align 2, 0
_0809BF40: .4byte gUnknown_3001B64
_0809BF44:
ldr r0, [sp, 0x8]
adds r0, 0x1
str r0, [sp, 0x8]
cmp r0, 0x7
ble _0809BEF2
_0809BF4E:
ldr r0, _0809BF6C
ldr r0, [r0]
movs r1, 0x86
lsls r1, 3
adds r0, r1
movs r1, 0
str r1, [r0]
bl sub_8096BD0
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ScenarioCalc
b _0809C392
.align 2, 0
_0809BF6C: .4byte gUnknown_3001B64
_0809BF70:
mov r5, sp
adds r5, 0x1
adds r0, r5, 0
bl sub_8099328
lsls r0, 24
cmp r0, 0
bne _0809BF82
b _0809C392
_0809BF82:
add r1, sp, 0x14
add r2, sp, 0x18
movs r0, 0x2
bl GetScriptVarScenario
add r4, sp, 0x1C
ldr r1, [sp, 0x18]
lsls r1, 24
lsrs r1, 24
ldrb r2, [r5]
adds r0, r4, 0
bl sub_8096AF8
ldrb r0, [r4]
cmp r0, 0
bne _0809BFA4
b _0809C392
_0809BFA4:
ldr r0, [sp, 0x18]
lsls r0, 24
lsrs r0, 24
ldrb r1, [r5]
bl sub_802DB28
lsls r0, 24
cmp r0, 0
bne _0809BFB8
b _0809C392
_0809BFB8:
movs r0, 0
movs r1, 0x19
bl GetScriptVarValue
cmp r0, 0x63
bgt _0809BFCE
adds r2, r0, 0x1
movs r0, 0
movs r1, 0x19
bl SetScriptVarValue
_0809BFCE:
movs r0, 0
movs r1, 0x39
movs r2, 0x1
bl SetScriptVarValue
ldr r1, [sp, 0x14]
ldr r2, [sp, 0x18]
adds r2, 0x1
movs r0, 0x2
bl ScenarioCalc
ldr r0, _0809BFF4
ldr r0, [r0]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809BFF8
b _0809C266
.align 2, 0
_0809BFF4: .4byte gUnknown_3001B64
_0809BFF8: .4byte gUnknown_8116288
_0809BFFC:
ldr r0, [r6]
movs r3, 0x84
lsls r3, 3
adds r0, r3
ldr r0, [r0]
cmp r0, 0x1
bne _0809C036
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
lsrs r0, 24
negs r4, r0
orrs r4, r0
asrs r4, 31
movs r0, 0x4
ands r4, r0
bl ResetTextbox_809B294
adds r0, r4, 0
bl MakuhitaDojo_New
lsls r0, 24
cmp r0, 0
beq _0809C032
bl _0809B784
_0809C032:
ldr r0, [r6]
b _0809B972
_0809C036:
bl HandleMakuhitaDojoState
cmp r0, 0x2
beq _0809C05E
cmp r0, 0x3
beq _0809C046
bl _0809B784
_0809C046:
bl sub_802FED0
ldr r1, [r6]
movs r2, 0x86
lsls r2, 3
adds r1, r2
lsls r0, 16
asrs r0, 16
str r0, [r1]
bl MakuhitaDojo_Delete
b _0809C392
_0809C05E:
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl MakuhitaDojo_Delete
b _0809C392
_0809C072:
movs r4, 0x1
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0809C082
movs r4, 0x5
_0809C082:
bl ResetTextbox_809B294
adds r0, r4, 0
bl MakuhitaDojo_New
lsls r0, 24
cmp r0, 0
beq _0809C0A8
ldr r0, _0809C0A0
ldr r0, [r0]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r1, _0809C0A4
b _0809C266
.align 2, 0
_0809C0A0: .4byte gUnknown_3001B64
_0809C0A4: .4byte gUnknown_8116298
_0809C0A8:
ldr r0, _0809C0B4
ldr r0, [r0]
movs r2, 0x86
lsls r2, 3
adds r0, r2
b _0809B978
.align 2, 0
_0809C0B4: .4byte gUnknown_3001B64
_0809C0B8:
movs r4, 0x2
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0809C0C8
movs r4, 0x6
_0809C0C8:
bl ResetTextbox_809B294
adds r0, r4, 0
bl MakuhitaDojo_New
lsls r0, 24
cmp r0, 0
beq _0809C0F0
ldr r0, _0809C0E8
ldr r0, [r0]
movs r3, 0x83
lsls r3, 3
adds r0, r3
ldr r1, _0809C0EC
b _0809C266
.align 2, 0
_0809C0E8: .4byte gUnknown_3001B64
_0809C0EC: .4byte gUnknown_81162A8
_0809C0F0:
ldr r0, _0809C0F8
ldr r0, [r0]
b _0809B972
.align 2, 0
_0809C0F8: .4byte gUnknown_3001B64
_0809C0FC:
movs r4, 0x3
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0809C10C
movs r4, 0x7
_0809C10C:
bl ResetTextbox_809B294
adds r0, r4, 0
bl MakuhitaDojo_New
lsls r0, 24
cmp r0, 0
beq _0809C134
ldr r0, _0809C12C
ldr r0, [r0]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809C130
b _0809C266
.align 2, 0
_0809C12C: .4byte gUnknown_3001B64
_0809C130: .4byte gUnknown_81162B8
_0809C134:
ldr r0, _0809C144
ldr r0, [r0]
movs r3, 0x86
lsls r3, 3
adds r0, r3
bl _0809B978
.align 2, 0
_0809C144: .4byte gUnknown_3001B64
_0809C148:
ldr r0, [r6]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r1, _0809C154
b _0809C266
.align 2, 0
_0809C154: .4byte gUnknown_81162C8
_0809C158:
ldr r0, [r6]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809C164
b _0809C266
.align 2, 0
_0809C164: .4byte gUnknown_81162D8
_0809C168:
bl ResetTextbox_809B294
bl sub_803B050
lsls r0, 24
cmp r0, 0
beq _0809C1A0
ldr r4, _0809C194
ldr r0, [r4]
ldr r3, _0809C198
adds r0, r3
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_803B100
ldr r0, [r4]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809C19C
b _0809C266
.align 2, 0
_0809C194: .4byte gUnknown_3001B64
_0809C198: .4byte 0x000005a4
_0809C19C: .4byte gUnknown_81162E8
_0809C1A0:
ldr r0, _0809C1B0
ldr r0, [r0]
movs r3, 0x86
lsls r3, 3
adds r0, r3
bl _0809B978
.align 2, 0
_0809C1B0: .4byte gUnknown_3001B64
_0809C1B4:
ldr r0, [r6]
movs r1, 0x86
lsls r1, 3
adds r0, r1
_0809C1BC:
movs r1, 0x1
str r1, [r0]
b _0809C392
_0809C1C2:
bl ResetTextbox_809B294
b _0809C392
_0809C1C8:
movs r0, 0x2
bl CreateFriendListMenu
lsls r0, 24
cmp r0, 0
beq _0809C1EC
ldr r0, _0809C1E4
ldr r0, [r0]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809C1E8
b _0809C266
.align 2, 0
_0809C1E4: .4byte gUnknown_3001B64
_0809C1E8: .4byte gUnknown_81162F8
_0809C1EC:
ldr r0, _0809C200
ldr r0, [r0]
movs r3, 0x86
lsls r3, 3
adds r0, r3
movs r1, 0x2
negs r1, r1
str r1, [r0]
b _0809C392
.align 2, 0
_0809C200: .4byte gUnknown_3001B64
_0809C204:
ldr r1, [r6]
ldr r2, _0809C230
adds r0, r1, r2
ldr r0, [r0]
movs r3, 0x85
lsls r3, 3
adds r1, r3
ldr r1, [r1]
bl sub_809CCDC
ldr r1, [r6]
movs r3, 0x86
lsls r3, 3
adds r2, r1, r3
str r0, [r2]
movs r0, 0x83
lsls r0, 3
adds r1, r0
ldr r0, _0809C234
str r0, [r1]
bl _0809B784
.align 2, 0
_0809C230: .4byte 0x00000424
_0809C234: .4byte gUnknown_8116308
_0809C238:
ldr r0, [r6]
movs r2, 0x85
lsls r2, 3
adds r1, r0, r2
ldr r5, [r1]
ldr r3, _0809C26C
adds r0, r3
ldrb r4, [r0]
bl ResetTextbox_809B294
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x1
bl sub_801B60C
lsls r0, 24
cmp r0, 0
beq _0809C274
ldr r0, [r6]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r1, _0809C270
_0809C266:
str r1, [r0]
bl _0809B784
.align 2, 0
_0809C26C: .4byte 0x00000424
_0809C270: .4byte gUnknown_8116318
_0809C274:
ldr r0, [r6]
movs r2, 0x86
lsls r2, 3
adds r0, r2
bl _0809B978
_0809C280:
ldr r0, [r6]
movs r3, 0x84
lsls r3, 3
adds r0, r3
ldr r0, [r0]
cmp r0, 0x1
bne _0809C2B8
bl ResetTextbox_809B294
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl xxx_call_save_unk_text_struct_800641C
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0xA
bl sub_801A5D8
lsls r0, 24
cmp r0, 0
beq _0809C2B2
bl _0809B784
_0809C2B2:
ldr r0, [r6]
bl _0809B972
_0809C2B8:
movs r0, 0x1
bl sub_801A6E8
cmp r0, 0x2
beq _0809C320
cmp r0, 0x3
beq _0809C2CA
bl _0809B784
_0809C2CA:
bl sub_801A8AC
adds r5, r0, 0
ldr r0, _0809C304
ldr r0, [r0]
lsls r1, r5, 2
adds r0, r1
ldrb r4, [r0, 0x2]
adds r0, r4, 0
bl IsEdibleItem
lsls r0, 24
cmp r0, 0
beq _0809C30C
ldr r0, _0809C308
adds r1, r4, 0
movs r2, 0
bl BufferItemName
adds r0, r5, 0
bl ShiftItemsDownFrom
ldr r0, [r6]
movs r2, 0x86
lsls r2, 3
adds r0, r2
movs r1, 0x1
b _0809C318
.align 2, 0
_0809C304: .4byte gTeamInventoryRef
_0809C308: .4byte gFormatBuffer_Items
_0809C30C:
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
_0809C314:
movs r1, 0x1
negs r1, r1
_0809C318:
str r1, [r0]
bl sub_801A928
b _0809C392
_0809C320:
ldr r0, [r6]
movs r1, 0x86
lsls r1, 3
adds r0, r1
b _0809C314
_0809C32A:
adds r4, r6, 0
ldr r0, [r4]
movs r2, 0x84
lsls r2, 3
adds r0, r2
ldr r0, [r0]
cmp r0, 0x1
bne _0809C36C
bl ResetTextbox_809B294
ldr r1, [r4]
ldr r3, _0809C368
adds r0, r1, r3
ldr r0, [r0]
movs r2, 0x85
lsls r2, 3
adds r1, r2
ldr r1, [r1]
bl DrawCredits
lsls r0, 24
cmp r0, 0
beq _0809C35C
bl _0809B784
_0809C35C:
ldr r0, [r4]
movs r3, 0x86
lsls r3, 3
adds r0, r3
bl _0809B978
.align 2, 0
_0809C368: .4byte 0x00000424
_0809C36C:
bl sub_8035574
cmp r0, 0x3
bls _0809C378
bl _0809B784
_0809C378:
cmp r0, 0x2
bcs _0809C380
bl _0809B784
_0809C380:
ldr r0, [r6]
movs r1, 0x86
lsls r1, 3
adds r0, r1
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl sub_803565C
_0809C392:
movs r0, 0
_0809C394:
add sp, 0x24
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_809B648
.align 2,0