pokefirered/asm/mail.s
2019-06-26 04:52:34 +08:00

1042 lines
18 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_80BEBEC
sub_80BEBEC: @ 80BEBEC
push {r4-r7,lr}
sub sp, 0x4
adds r5, r0, 0
adds r7, r1, 0
lsls r2, 24
lsrs r6, r2, 24
ldr r4, _080BEC38 @ =gUnknown_20399C4
ldr r0, _080BEC3C @ =0x000020fc
bl AllocZeroed
str r0, [r4]
adds r0, 0xED
movs r1, 0x2
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xEE
movs r1, 0x1
strb r1, [r0]
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0xF0
ldr r0, _080BEC40 @ =CopyEasyChatWord
str r0, [r1]
adds r1, 0x4
ldr r0, _080BEC44 @ =ConvertEasyChatWordsToString
str r0, [r1]
ldrh r1, [r5, 0x20]
adds r0, r1, 0
subs r0, 0x79
lsls r0, 16
lsrs r0, 16
cmp r0, 0xB
bhi _080BEC48
subs r1, 0x79
adds r0, r2, 0
adds r0, 0xEA
strb r1, [r0]
b _080BEC52
.align 2, 0
_080BEC38: .4byte gUnknown_20399C4
_080BEC3C: .4byte 0x000020fc
_080BEC40: .4byte CopyEasyChatWord
_080BEC44: .4byte ConvertEasyChatWordsToString
_080BEC48:
adds r1, r2, 0
adds r1, 0xEA
movs r0, 0
strb r0, [r1]
movs r6, 0
_080BEC52:
ldr r0, _080BEC78 @ =gUnknown_20399C4
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0xEE
ldrb r1, [r1]
cmp r1, 0
beq _080BEC64
cmp r1, 0x1
beq _080BEC80
_080BEC64:
adds r2, r0, 0
adds r2, 0xF8
adds r0, 0xEA
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080BEC7C @ =gUnknown_83EEAC4
b _080BEC90
.align 2, 0
_080BEC78: .4byte gUnknown_20399C4
_080BEC7C: .4byte gUnknown_83EEAC4
_080BEC80:
adds r2, r0, 0
adds r2, 0xF8
adds r0, 0xEA
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080BECC8 @ =gUnknown_83EEB68
_080BEC90:
adds r0, r1
str r0, [r2]
ldrh r0, [r5, 0x1E]
mov r1, sp
bl MailSpeciesToSpecies
lsls r0, 16
ldr r1, _080BECCC @ =0xffff0000
adds r0, r1
movs r1, 0xCD
lsls r1, 17
cmp r0, r1
bhi _080BECE4
ldr r0, _080BECD0 @ =gUnknown_20399C4
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0xEA
ldrb r2, [r2]
adds r3, r0, 0
cmp r2, 0x6
beq _080BECD4
cmp r2, 0x9
beq _080BECDC
adds r1, 0xEB
movs r0, 0
strb r0, [r1]
b _080BECF0
.align 2, 0
_080BECC8: .4byte gUnknown_83EEB68
_080BECCC: .4byte 0xffff0000
_080BECD0: .4byte gUnknown_20399C4
_080BECD4:
adds r1, 0xEB
movs r0, 0x1
strb r0, [r1]
b _080BECF0
_080BECDC:
adds r1, 0xEB
movs r0, 0x2
strb r0, [r1]
b _080BECF0
_080BECE4:
ldr r0, _080BED10 @ =gUnknown_20399C4
ldr r1, [r0]
adds r1, 0xEB
movs r2, 0
strb r2, [r1]
adds r3, r0, 0
_080BECF0:
ldr r1, [r3]
adds r0, r1, 0
adds r0, 0xE4
str r5, [r0]
subs r0, 0x8
str r7, [r0]
adds r0, 0xC
strb r6, [r0]
ldr r0, _080BED14 @ =sub_80BF110
bl SetMainCallback2
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080BED10: .4byte gUnknown_20399C4
_080BED14: .4byte sub_80BF110
thumb_func_end sub_80BEBEC
thumb_func_start sub_80BED18
sub_80BED18: @ 80BED18
push {r4-r6,lr}
sub sp, 0xC
ldr r0, _080BED38 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x12
bls _080BED2C
b _080BF102
_080BED2C:
lsls r0, 2
ldr r1, _080BED3C @ =_080BED40
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080BED38: .4byte gMain
_080BED3C: .4byte _080BED40
.align 2, 0
_080BED40:
.4byte _080BED8C
.4byte _080BEDBC
.4byte _080BEDD4
.4byte _080BEDDA
.4byte _080BEDE0
.4byte _080BEDE6
.4byte _080BEE40
.4byte _080BEE78
.4byte _080BEE88
.4byte _080BEEB8
.4byte _080BEEC6
.4byte _080BEF14
.4byte _080BEF28
.4byte _080BEFE8
.4byte _080BF000
.4byte _080BF01C
.4byte _080BF026
.4byte _080BF040
.4byte _080BF0A4
_080BED8C:
movs r0, 0
bl SetVBlankCallback
bl ScanlineEffect_Stop
movs r0, 0
movs r1, 0
bl SetGpuReg
ldr r0, _080BEDB0 @ =gUnknown_203AAC4
ldrb r0, [r0, 0x9]
cmp r0, 0
bne _080BEDB4
movs r0, 0x22
bl HelpSystem_SetSomeVariable2
b _080BF0F4
.align 2, 0
_080BEDB0: .4byte gUnknown_203AAC4
_080BEDB4:
movs r0, 0x1E
bl HelpSystem_SetSomeVariable2
b _080BF0F4
_080BEDBC:
add r1, sp, 0x8
movs r0, 0
strh r0, [r1]
movs r1, 0xE0
lsls r1, 19
ldr r2, _080BEDD0 @ =0x01000200
add r0, sp, 0x8
bl CpuSet
b _080BF0F4
.align 2, 0
_080BEDD0: .4byte 0x01000200
_080BEDD4:
bl ResetPaletteFade
b _080BF0F4
_080BEDDA:
bl ResetTasks
b _080BF0F4
_080BEDE0:
bl ResetSpriteData
b _080BF0F4
_080BEDE6:
bl FreeAllSpritePalettes
bl ResetTempTileDataBuffers
movs r0, 0x10
movs r1, 0
bl SetGpuReg
movs r0, 0x12
movs r1, 0
bl SetGpuReg
movs r0, 0x14
movs r1, 0
bl SetGpuReg
movs r0, 0x16
movs r1, 0
bl SetGpuReg
movs r0, 0x1A
movs r1, 0
bl SetGpuReg
movs r0, 0x18
movs r1, 0
bl SetGpuReg
movs r0, 0x1C
movs r1, 0
bl SetGpuReg
movs r0, 0x1E
movs r1, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
b _080BF0F4
_080BEE40:
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080BEE6C @ =gUnknown_83EE998
movs r0, 0
movs r2, 0x3
bl InitBgsFromTemplates
ldr r4, _080BEE70 @ =gUnknown_20399C4
ldr r1, [r4]
adds r1, 0xFC
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, _080BEE74 @ =0x000010fc
adds r1, r0
movs r0, 0x2
bl SetBgTilemapBuffer
b _080BF0F4
.align 2, 0
_080BEE6C: .4byte gUnknown_83EE998
_080BEE70: .4byte gUnknown_20399C4
_080BEE74: .4byte 0x000010fc
_080BEE78:
ldr r0, _080BEE84 @ =gUnknown_83EE9A4
bl InitWindows
bl DeactivateAllTextPrinters
b _080BF0F4
.align 2, 0
_080BEE84: .4byte gUnknown_83EE9A4
_080BEE88:
ldr r2, _080BEEB0 @ =gUnknown_83EE9C8
ldr r0, _080BEEB4 @ =gUnknown_20399C4
ldr r0, [r0]
adds r0, 0xEA
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r2, 0x4
adds r0, r2
ldr r1, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl DecompressAndCopyTileDataToVram
b _080BF0F4
.align 2, 0
_080BEEB0: .4byte gUnknown_83EE9C8
_080BEEB4: .4byte gUnknown_20399C4
_080BEEB8:
bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
bne _080BEEC4
b _080BF0F4
_080BEEC4:
b _080BF102
_080BEEC6:
movs r5, 0x1E
str r5, [sp]
movs r4, 0x14
str r4, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x2
movs r1, 0x1
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
ldr r2, _080BEF0C @ =gUnknown_83EE9C8
ldr r0, _080BEF10 @ =gUnknown_20399C4
ldr r0, [r0]
adds r0, 0xEA
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r2, 0x8
adds r0, r2
ldr r1, [r0]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
b _080BF0F4
.align 2, 0
_080BEF0C: .4byte gUnknown_83EE9C8
_080BEF10: .4byte gUnknown_20399C4
_080BEF14:
movs r0, 0
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
b _080BF0F4
_080BEF28:
movs r0, 0
bl stdpal_get
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
ldr r6, _080BEFD0 @ =gPlttBufferUnfaded
ldr r4, _080BEFD4 @ =gUnknown_83EE9C8
ldr r0, _080BEFD8 @ =gUnknown_20399C4
ldr r3, [r0]
adds r3, 0xEA
ldrb r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x10]
movs r2, 0xFA
lsls r2, 1
adds r0, r6, r2
strh r1, [r0]
ldr r5, _080BEFDC @ =gPlttBufferFaded
ldrb r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r0, [r0, 0x10]
adds r2, r5, r2
strh r0, [r2]
ldrb r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x12]
movs r2, 0xFB
lsls r2, 1
adds r0, r6, r2
strh r1, [r0]
ldrb r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r0, [r0, 0x12]
adds r2, r5, r2
strh r0, [r2]
ldrb r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r0, [r0]
movs r1, 0
movs r2, 0x20
bl LoadPalette
ldr r1, _080BEFE0 @ =gUnknown_83EE9C0
ldr r0, _080BEFE4 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r0, [r2, 0x8]
lsls r0, 2
adds r0, r1
ldrh r0, [r0]
strh r0, [r6, 0x14]
ldrb r0, [r2, 0x8]
lsls r0, 2
adds r0, r1
ldrh r0, [r0]
strh r0, [r5, 0x14]
ldrb r0, [r2, 0x8]
lsls r0, 2
adds r1, 0x2
adds r0, r1
ldrh r0, [r0]
strh r0, [r6, 0x16]
ldrb r0, [r2, 0x8]
lsls r0, 2
adds r0, r1
ldrh r0, [r0]
strh r0, [r5, 0x16]
b _080BF0F4
.align 2, 0
_080BEFD0: .4byte gPlttBufferUnfaded
_080BEFD4: .4byte gUnknown_83EE9C8
_080BEFD8: .4byte gUnknown_20399C4
_080BEFDC: .4byte gPlttBufferFaded
_080BEFE0: .4byte gUnknown_83EE9C0
_080BEFE4: .4byte gSaveBlock2Ptr
_080BEFE8:
ldr r0, _080BEFFC @ =gUnknown_20399C4
ldr r0, [r0]
adds r0, 0xE8
ldrb r0, [r0]
cmp r0, 0
bne _080BEFF6
b _080BF0F4
_080BEFF6:
bl sub_80BF13C
b _080BF0F4
.align 2, 0
_080BEFFC: .4byte gUnknown_20399C4
_080BF000:
ldr r0, _080BF018 @ =gUnknown_20399C4
ldr r0, [r0]
adds r0, 0xE8
ldrb r0, [r0]
cmp r0, 0
beq _080BF0F4
bl sub_80BF224
bl RunTextPrinters
b _080BF0F4
.align 2, 0
_080BF018: .4byte gUnknown_20399C4
_080BF01C:
bl sub_8058244
cmp r0, 0x1
bne _080BF0F4
b _080BF102
_080BF026:
ldr r0, _080BF038 @ =sub_80BF354
bl SetVBlankCallback
ldr r2, _080BF03C @ =gPaletteFade
ldrb r0, [r2, 0x8]
movs r1, 0x80
orrs r0, r1
strb r0, [r2, 0x8]
b _080BF0F4
.align 2, 0
_080BF038: .4byte sub_80BF354
_080BF03C: .4byte gPaletteFade
_080BF040:
ldr r5, _080BF064 @ =gUnknown_20399C4
ldr r0, [r5]
adds r0, 0xE4
ldr r0, [r0]
ldrh r0, [r0, 0x1E]
bl sub_8096FD4
lsls r0, 16
lsrs r4, r0, 16
ldr r0, [r5]
adds r0, 0xEB
ldrb r0, [r0]
cmp r0, 0x1
beq _080BF068
cmp r0, 0x2
beq _080BF080
b _080BF0F4
.align 2, 0
_080BF064: .4byte gUnknown_20399C4
_080BF068:
adds r0, r4, 0
bl sub_80970E0
ldr r1, _080BF07C @ =SpriteCallbackDummy
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r4, 0
movs r2, 0x60
b _080BF092
.align 2, 0
_080BF07C: .4byte SpriteCallbackDummy
_080BF080:
adds r0, r4, 0
bl sub_80970E0
ldr r1, _080BF0A0 @ =SpriteCallbackDummy
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r4, 0
movs r2, 0x28
_080BF092:
movs r3, 0x80
bl sub_8096ECC
ldr r1, [r5]
adds r1, 0xEC
strb r0, [r1]
b _080BF0F4
.align 2, 0
_080BF0A0: .4byte SpriteCallbackDummy
_080BF0A4:
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuReg
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r2, _080BF0E8 @ =gPaletteFade
ldrb r1, [r2, 0x8]
movs r0, 0x7F
ands r0, r1
strb r0, [r2, 0x8]
ldr r0, _080BF0EC @ =gUnknown_20399C4
ldr r0, [r0]
adds r0, 0xE0
ldr r1, _080BF0F0 @ =sub_80BF394
str r1, [r0]
movs r0, 0x1
b _080BF104
.align 2, 0
_080BF0E8: .4byte gPaletteFade
_080BF0EC: .4byte gUnknown_20399C4
_080BF0F0: .4byte sub_80BF394
_080BF0F4:
ldr r1, _080BF10C @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
_080BF102:
movs r0, 0
_080BF104:
add sp, 0xC
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080BF10C: .4byte gMain
thumb_func_end sub_80BED18
thumb_func_start sub_80BF110
sub_80BF110: @ 80BF110
push {lr}
_080BF112:
bl sub_80BED18
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080BF12C
ldr r0, _080BF128 @ =sub_80BF368
bl SetMainCallback2
b _080BF138
.align 2, 0
_080BF128: .4byte sub_80BF368
_080BF12C:
bl MenuHelpers_LinkSomething
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080BF112
_080BF138:
pop {r0}
bx r0
thumb_func_end sub_80BF110
thumb_func_start sub_80BF13C
sub_80BF13C: @ 80BF13C
push {r4-r7,lr}
movs r6, 0
movs r5, 0
ldr r2, _080BF1E0 @ =gUnknown_20399C4
ldr r0, [r2]
adds r0, 0xF8
ldr r0, [r0]
ldrb r0, [r0]
cmp r5, r0
bcs _080BF19C
adds r7, r2, 0
_080BF152:
movs r0, 0x1A
muls r0, r5
ldr r2, [r7]
adds r0, r2, r0
adds r1, r2, 0
adds r1, 0xE4
lsls r3, r6, 1
ldr r1, [r1]
adds r1, r3
adds r2, 0xF8
ldr r2, [r2]
ldr r2, [r2, 0x8]
lsls r4, r5, 2
adds r2, r4, r2
ldr r2, [r2]
lsls r2, 30
lsrs r2, 30
movs r3, 0x1
bl ConvertEasyChatWordsToString
ldr r0, [r7]
adds r0, 0xF8
ldr r1, [r0]
ldr r0, [r1, 0x8]
adds r4, r0
ldr r0, [r4]
lsls r0, 30
lsrs r0, 30
adds r0, r6, r0
lsls r0, 24
lsrs r6, r0, 24
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
ldrb r1, [r1]
cmp r5, r1
bcc _080BF152
_080BF19C:
ldr r4, _080BF1E0 @ =gUnknown_20399C4
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xEE
ldrb r0, [r0]
cmp r0, 0
bne _080BF1E8
adds r0, r1, 0
adds r0, 0xD0
adds r1, 0xE4
ldr r1, [r1]
adds r1, 0x12
bl StringCopy
ldr r1, _080BF1E4 @ =gUnknown_841E234
bl StringCopy
ldr r0, [r4]
adds r0, 0xD0
bl StringLength
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0xF8
ldr r1, [r1]
lsls r0, 16
lsrs r0, 13
subs r0, 0x60
ldrb r1, [r1, 0x2]
subs r1, r0
adds r2, 0xE9
strb r1, [r2]
b _080BF21E
.align 2, 0
_080BF1E0: .4byte gUnknown_20399C4
_080BF1E4: .4byte gUnknown_841E234
_080BF1E8:
adds r0, r1, 0
adds r0, 0xD0
adds r1, 0xE4
ldr r1, [r1]
adds r1, 0x12
bl StringCopy
ldr r0, [r4]
adds r0, 0xD0
bl StringLength
lsls r0, 16
lsrs r0, 16
cmp r0, 0x5
bhi _080BF210
ldr r0, [r4]
adds r0, 0xD0
movs r1, 0x1
bl ConvertInternationalString
_080BF210:
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0xF8
ldr r1, [r1]
ldrb r1, [r1, 0x2]
adds r0, 0xE9
strb r1, [r0]
_080BF21E:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80BF13C
thumb_func_start sub_80BF224
sub_80BF224: @ 80BF224
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0xC
movs r7, 0
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r6, 0
ldr r0, _080BF348 @ =gUnknown_20399C4
mov r9, r0
ldr r0, [r0]
adds r0, 0xF8
ldr r0, [r0]
ldrb r0, [r0]
cmp r6, r0
bcs _080BF2CE
mov r8, r9
_080BF260:
mov r0, r8
ldr r1, [r0]
movs r0, 0x1A
muls r0, r6
adds r5, r1, r0
ldrb r0, [r5]
cmp r0, 0xFF
beq _080BF2BA
cmp r0, 0
beq _080BF2BA
adds r0, r1, 0
adds r0, 0xF8
ldr r1, [r0]
ldr r0, [r1, 0x8]
lsls r4, r6, 2
adds r0, r4, r0
ldr r2, [r0]
lsls r2, 24
lsrs r2, 26
ldrb r0, [r1, 0x4]
adds r2, r0
lsls r2, 24
lsrs r2, 24
ldrb r3, [r1, 0x3]
adds r3, r7, r3
lsls r3, 24
lsrs r3, 24
ldr r0, _080BF34C @ =gUnknown_83EE9BC
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
str r5, [sp, 0x8]
movs r1, 0x1
bl AddTextPrinterParameterized3
mov r1, r8
ldr r0, [r1]
adds r0, 0xF8
ldr r0, [r0]
ldr r0, [r0, 0x8]
adds r4, r0
ldrb r0, [r4, 0x1]
adds r0, r7, r0
lsls r0, 24
lsrs r7, r0, 24
_080BF2BA:
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
mov r1, r9
ldr r0, [r1]
adds r0, 0xF8
ldr r0, [r0]
ldrb r0, [r0]
cmp r6, r0
bcc _080BF260
_080BF2CE:
ldr r4, _080BF350 @ =gUnknown_841E234
movs r0, 0x1
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
mov r9, r0
ldr r5, _080BF348 @ =gUnknown_20399C4
ldr r0, [r5]
adds r1, r0, 0
adds r1, 0xE9
ldrb r2, [r1]
adds r0, 0xF8
ldr r0, [r0]
ldrb r3, [r0, 0x1]
ldr r0, _080BF34C @ =gUnknown_83EE9BC
mov r8, r0
str r0, [sp]
movs r6, 0
str r6, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
bl AddTextPrinterParameterized3
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0xE9
ldrb r2, [r0]
add r2, r9
lsls r2, 24
lsrs r2, 24
adds r0, 0xF
ldr r0, [r0]
ldrb r3, [r0, 0x1]
mov r0, r8
str r0, [sp]
str r6, [sp, 0x4]
adds r0, r1, 0
adds r0, 0xD0
str r0, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
bl AddTextPrinterParameterized3
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
movs r0, 0x1
movs r1, 0x3
bl CopyWindowToVram
add sp, 0xC
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080BF348: .4byte gUnknown_20399C4
_080BF34C: .4byte gUnknown_83EE9BC
_080BF350: .4byte gUnknown_841E234
thumb_func_end sub_80BF224
thumb_func_start sub_80BF354
sub_80BF354: @ 80BF354
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_80BF354
thumb_func_start sub_80BF368
sub_80BF368: @ 80BF368
push {r4,lr}
ldr r4, _080BF390 @ =gUnknown_20399C4
ldr r0, [r4]
adds r0, 0xEB
ldrb r0, [r0]
cmp r0, 0
beq _080BF37E
bl AnimateSprites
bl BuildOamBuffer
_080BF37E:
ldr r0, [r4]
adds r0, 0xE0
ldr r0, [r0]
bl _call_via_r0
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080BF390: .4byte gUnknown_20399C4
thumb_func_end sub_80BF368
thumb_func_start sub_80BF394
sub_80BF394: @ 80BF394
push {lr}
bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _080BF3AA
ldr r0, _080BF3B0 @ =gUnknown_20399C4
ldr r0, [r0]
adds r0, 0xE0
ldr r1, _080BF3B4 @ =sub_80BF3B8
str r1, [r0]
_080BF3AA:
pop {r0}
bx r0
.align 2, 0
_080BF3B0: .4byte gUnknown_20399C4
_080BF3B4: .4byte sub_80BF3B8
thumb_func_end sub_80BF394
thumb_func_start sub_80BF3B8
sub_80BF3B8: @ 80BF3B8
push {lr}
sub sp, 0x4
ldr r0, _080BF3E8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _080BF3E2
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _080BF3EC @ =gUnknown_20399C4
ldr r0, [r0]
adds r0, 0xE0
ldr r1, _080BF3F0 @ =sub_80BF3F4
str r1, [r0]
_080BF3E2:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_080BF3E8: .4byte gMain
_080BF3EC: .4byte gUnknown_20399C4
_080BF3F0: .4byte sub_80BF3F4
thumb_func_end sub_80BF3B8
thumb_func_start sub_80BF3F4
sub_80BF3F4: @ 80BF3F4
push {r4,lr}
bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _080BF460
ldr r4, _080BF468 @ =gUnknown_20399C4
ldr r0, [r4]
adds r0, 0xDC
ldr r0, [r0]
bl SetMainCallback2
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0xEB
ldrb r1, [r1]
cmp r1, 0x2
bgt _080BF442
cmp r1, 0x1
blt _080BF442
adds r0, 0xE4
ldr r0, [r0]
ldrh r0, [r0, 0x1E]
bl sub_8096FD4
lsls r0, 16
lsrs r0, 16
bl sub_8097168
ldr r0, [r4]
adds r0, 0xEC
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _080BF46C @ =gSprites
adds r0, r1
bl sub_8097070
_080BF442:
ldr r4, _080BF468 @ =gUnknown_20399C4
ldr r0, [r4]
ldr r2, _080BF470 @ =0x000020fc
movs r1, 0
bl memset
bl ResetPaletteFade
bl FreeAllWindowBuffers
ldr r0, [r4]
bl Free
movs r0, 0
str r0, [r4]
_080BF460:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080BF468: .4byte gUnknown_20399C4
_080BF46C: .4byte gSprites
_080BF470: .4byte 0x000020fc
thumb_func_end sub_80BF3F4
.align 2, 0 @ Don't pad with nop.