pokefirered/asm/unk_814D5C8.s
2018-10-15 09:19:30 -05:00

3432 lines
56 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_814D5C8
sub_814D5C8: @ 814D5C8
push {r4,r5,lr}
sub sp, 0xC
bl sub_814B6F0
adds r5, r0, 0
cmp r5, 0
bne _0814D5DC
movs r0, 0x1
negs r0, r0
b _0814D880
_0814D5DC:
ldrb r0, [r5, 0xC]
cmp r0, 0x9
bls _0814D5E4
b _0814D878
_0814D5E4:
lsls r0, 2
ldr r1, _0814D5F0 @ =_0814D5F4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0814D5F0: .4byte _0814D5F4
.align 2, 0
_0814D5F4:
.4byte _0814D61C
.4byte _0814D63A
.4byte _0814D660
.4byte _0814D66E
.4byte _0814D6F4
.4byte _0814D73A
.4byte _0814D768
.4byte _0814D798
.4byte _0814D7F4
.4byte _0814D830
_0814D61C:
movs r0, 0
bl SetVBlankCallback
movs r0, 0
bl SetHBlankCallback
movs r0, 0
movs r1, 0
bl SetGpuReg
bl remove_some_task
bl reset_temp_tile_data_buffers
b _0814D878
_0814D63A:
add r0, sp, 0x8
movs r4, 0
strh r4, [r0]
movs r1, 0xE0
lsls r1, 19
ldr r2, _0814D658 @ =0x01000200
bl CpuSet
ldr r0, _0814D65C @ =gReservedSpritePaletteCount
strb r4, [r0]
movs r0, 0x3
bl sub_815C980
b _0814D878
.align 2, 0
_0814D658: .4byte 0x01000200
_0814D65C: .4byte gReservedSpritePaletteCount
_0814D660:
bl ResetPaletteFade
bl ResetSpriteData
bl FreeAllSpritePalettes
b _0814D878
_0814D66E:
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0814D6F0 @ =gUnknown_846E3CC
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
movs r0, 0xE0
lsls r0, 1
adds r1, r5, r0
movs r0, 0x1
bl SetBgTilemapBuffer
movs r0, 0x87
lsls r0, 6
adds r1, r5, r0
movs r0, 0x2
bl SetBgTilemapBuffer
movs r0, 0xC7
lsls r0, 6
adds r1, r5, r0
movs r0, 0x3
bl SetBgTilemapBuffer
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
b _0814D878
.align 2, 0
_0814D6F0: .4byte gUnknown_846E3CC
_0814D6F4:
movs r4, 0x20
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
str r4, [sp]
movs r0, 0x40
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0x3
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
b _0814D878
_0814D73A:
movs r0, 0
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x3
bl CopyBgTilemapBufferToVram
ldr r1, _0814D764 @ =gUnknown_8EAFFC0
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
b _0814D878
.align 2, 0
_0814D764: .4byte gUnknown_8EAFFC0
_0814D768:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
beq _0814D774
b _0814D87E
_0814D774:
bl sub_80F6C6C
bl sub_80F6C98
adds r0, r5, 0
bl sub_814EB38
adds r0, r5, 0
bl sub_814EBB0
ldr r0, _0814D794 @ =gPaletteFade
ldrb r1, [r0, 0x8]
movs r2, 0x80
orrs r1, r2
strb r1, [r0, 0x8]
b _0814D878
.align 2, 0
_0814D794: .4byte gPaletteFade
_0814D798:
ldr r0, _0814D7E4 @ =gUnknown_8EAFEA0
movs r2, 0xC0
lsls r2, 1
movs r1, 0
bl LoadPalette
ldr r1, _0814D7E8 @ =gUnknown_846ED90
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
ldr r1, _0814D7EC @ =gUnknown_846EEC0
movs r0, 0x2
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
ldr r1, _0814D7F0 @ =gUnknown_846F058
movs r0, 0x3
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
adds r0, r5, 0
bl sub_814EC80
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x3
bl CopyBgTilemapBufferToVram
b _0814D878
.align 2, 0
_0814D7E4: .4byte gUnknown_8EAFEA0
_0814D7E8: .4byte gUnknown_846ED90
_0814D7EC: .4byte gUnknown_846EEC0
_0814D7F0: .4byte gUnknown_846F058
_0814D7F4:
bl sub_80FCEA8
movs r0, 0
movs r1, 0
bl sub_80FCD74
adds r0, r5, 0
bl sub_814ECE0
ldr r0, _0814D82C @ =gSpriteCoordOffsetY
ldrh r1, [r0]
negs r1, r1
lsls r1, 16
lsrs r1, 16
movs r0, 0x16
bl SetGpuReg
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
b _0814D878
.align 2, 0
_0814D82C: .4byte gSpriteCoordOffsetY
_0814D830:
ldr r2, _0814D874 @ =gPaletteFade
ldrb r1, [r2, 0x8]
movs r0, 0x7F
ands r0, r1
strb r0, [r2, 0x8]
movs r0, 0x1
negs r0, r0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl ShowBg
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuRegBits
bl sub_814B914
movs r0, 0
strb r0, [r5, 0xC]
movs r0, 0x1
b _0814D880
.align 2, 0
_0814D874: .4byte gPaletteFade
_0814D878:
ldrb r0, [r5, 0xC]
adds r0, 0x1
strb r0, [r5, 0xC]
_0814D87E:
movs r0, 0
_0814D880:
add sp, 0xC
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_814D5C8
thumb_func_start sub_814D888
sub_814D888: @ 814D888
push {r4,r5,lr}
sub sp, 0x8
bl sub_814B6F0
adds r5, r0, 0
cmp r5, 0
bne _0814D89C
movs r0, 0x1
negs r0, r0
b _0814D9C2
_0814D89C:
ldrb r0, [r5, 0xC]
cmp r0, 0x7
bls _0814D8A4
b _0814D9BA
_0814D8A4:
lsls r0, 2
ldr r1, _0814D8B0 @ =_0814D8B4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0814D8B0: .4byte _0814D8B4
.align 2, 0
_0814D8B4:
.4byte _0814D8D4
.4byte _0814D8DA
.4byte _0814D8E4
.4byte _0814D8FA
.4byte _0814D906
.4byte _0814D962
.4byte _0814D9A2
.4byte _0814D9B2
_0814D8D4:
bl sub_80FA42C
b _0814D9BA
_0814D8DA:
bl sub_800A4BC
lsls r0, 24
cmp r0, 0
beq _0814D9C0
_0814D8E4:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
bl UpdatePaletteFade
b _0814D9BA
_0814D8FA:
bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
beq _0814D9BA
b _0814D9C0
_0814D906:
movs r4, 0x20
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0x3
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x3
bl CopyBgTilemapBufferToVram
b _0814D9BA
_0814D962:
bl FreeAllWindowBuffers
movs r0, 0
bl HideBg
movs r0, 0
bl UnsetBgTilemapBuffer
movs r0, 0x1
bl HideBg
movs r0, 0x1
bl UnsetBgTilemapBuffer
movs r0, 0x2
bl HideBg
movs r0, 0x2
bl UnsetBgTilemapBuffer
movs r0, 0x3
bl HideBg
movs r0, 0x3
bl UnsetBgTilemapBuffer
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl ClearGpuRegBits
b _0814D9BA
_0814D9A2:
bl sub_80FCE44
adds r0, r5, 0
bl sub_814EF10
bl sub_815C9F4
b _0814D9BA
_0814D9B2:
movs r0, 0
strb r0, [r5, 0xC]
movs r0, 0x1
b _0814D9C2
_0814D9BA:
ldrb r0, [r5, 0xC]
adds r0, 0x1
strb r0, [r5, 0xC]
_0814D9C0:
movs r0, 0
_0814D9C2:
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_814D888
thumb_func_start sub_814D9CC
sub_814D9CC: @ 814D9CC
push {r4,lr}
adds r4, r0, 0
ldr r0, _0814DA00 @ =gSpriteCoordOffsetY
ldrh r1, [r4, 0x2C]
ldrh r2, [r4, 0x2A]
adds r1, r2
strh r1, [r0]
negs r1, r1
lsls r1, 16
lsrs r1, 16
movs r0, 0x16
bl SetGpuReg
ldrh r0, [r4, 0x12]
cmp r0, 0x7
bne _0814D9F8
movs r1, 0x9C
lsls r1, 1
adds r0, r4, r1
ldrh r1, [r4, 0x28]
bl sub_814EAD4
_0814D9F8:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0814DA00: .4byte gSpriteCoordOffsetY
thumb_func_end sub_814D9CC
thumb_func_start sub_814DA04
sub_814DA04: @ 814DA04
movs r1, 0
ldr r2, _0814DA18 @ =0x0000ff98
strh r2, [r0, 0x2A]
strh r1, [r0, 0x2C]
ldr r0, _0814DA1C @ =gSpriteCoordOffsetX
strh r1, [r0]
ldr r0, _0814DA20 @ =gSpriteCoordOffsetY
strh r2, [r0]
bx lr
.align 2, 0
_0814DA18: .4byte 0x0000ff98
_0814DA1C: .4byte gSpriteCoordOffsetX
_0814DA20: .4byte gSpriteCoordOffsetY
thumb_func_end sub_814DA04
thumb_func_start sub_814DA24
sub_814DA24: @ 814DA24
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
mov r10, r0
str r1, [sp]
movs r0, 0
mov r9, r0
mov r1, r10
ldrb r1, [r1, 0x9]
cmp r9, r1
bcc _0814DA42
b _0814DB60
_0814DA42:
ldr r1, _0814DB70 @ =gUnknown_846F2EC
mov r2, r9
lsls r0, r2, 1
adds r0, r1
ldrh r2, [r0]
mov r1, r9
lsls r0, r1, 5
add r0, r10
adds r0, 0xA4
ldrh r3, [r0]
adds r3, 0x85
lsls r3, 16
lsrs r3, 16
ldr r0, _0814DB74 @ =gUnknown_846F470
adds r1, r2, 0
bl AddItemIconObjectWithCustomObjectTemplate
lsls r0, 24
lsrs r0, 24
mov r2, r9
lsls r3, r2, 2
ldr r1, [sp]
adds r1, 0x38
adds r6, r1, r3
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, _0814DB78 @ =gSprites
adds r1, r0
str r1, [r6]
ldrb r0, [r1, 0x5]
movs r2, 0xC
orrs r0, r2
strb r0, [r1, 0x5]
ldr r2, [r6]
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
ldr r1, [r6]
ldr r0, [sp]
adds r0, 0xC
adds r0, r3
mov r8, r0
ldr r0, [r0]
ldrh r0, [r0, 0x8]
adds r0, 0x78
strh r0, [r1, 0x20]
ldr r1, [r6]
ldr r0, _0814DB7C @ =0x0000fff0
strh r0, [r1, 0x22]
ldr r3, [r6]
adds r5, r3, 0
adds r5, 0x2E
movs r0, 0x80
lsls r0, 2
strh r0, [r5, 0x2]
movs r0, 0x20
strh r0, [r5, 0x4]
movs r0, 0x70
strh r0, [r5, 0xE]
mov r2, r8
ldr r1, [r2]
ldrh r0, [r1, 0xA]
ldrh r1, [r1, 0x8]
subs r0, r1
lsls r0, 16
asrs r1, r0, 16
adds r0, r1, 0
cmp r1, 0
bge _0814DAD4
adds r0, r1, 0x3
_0814DAD4:
asrs r0, 2
strh r0, [r5, 0xC]
lsls r0, r1, 23
lsrs r7, r0, 16
movs r2, 0x80
lsls r2, 2
adds r2, 0x20
lsrs r2, 1
movs r0, 0x7
movs r1, 0xFE
lsls r1, 6
str r3, [sp, 0x4]
bl sub_80D8B40
adds r4, r0, 0
ldr r0, [r6]
ldrh r0, [r0, 0x20]
lsls r0, 7
ldr r3, [sp, 0x4]
strh r0, [r3, 0x2E]
lsls r1, r7, 16
asrs r1, 16
lsls r4, 16
asrs r4, 16
movs r0, 0x7
adds r2, r4, 0
bl sub_80D8B40
strh r0, [r5, 0x6]
movs r0, 0x7
adds r1, r4, 0
movs r2, 0x55
bl sub_80D8ABC
adds r2, r0, 0
movs r0, 0
strh r0, [r5, 0x8]
lsls r2, 16
asrs r2, 16
movs r0, 0x7
movs r1, 0xFE
lsls r1, 6
bl sub_80D8B40
strh r0, [r5, 0xA]
ldrh r0, [r5, 0xE]
ldr r2, _0814DB80 @ =0xffff8000
adds r1, r2, 0
orrs r0, r1
strh r0, [r5, 0xE]
mov r1, r8
ldr r0, [r1]
movs r2, 0x8
ldrsh r0, [r0, r2]
cmp r0, 0
bge _0814DB4C
ldr r0, [r6]
movs r1, 0x1
bl StartSpriteAffineAnim
_0814DB4C:
mov r0, r9
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r9, r0
mov r0, r10
ldrb r0, [r0, 0x9]
cmp r9, r0
bcs _0814DB60
b _0814DA42
_0814DB60:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0814DB70: .4byte gUnknown_846F2EC
_0814DB74: .4byte gUnknown_846F470
_0814DB78: .4byte gSprites
_0814DB7C: .4byte 0x0000fff0
_0814DB80: .4byte 0xffff8000
thumb_func_end sub_814DA24
thumb_func_start sub_814DB84
sub_814DB84: @ 814DB84
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r5, 0
adds r4, 0x2E
ldrh r0, [r4, 0x4]
ldrh r1, [r4, 0x2]
adds r0, r1
strh r0, [r4, 0x2]
lsls r0, 16
asrs r0, 24
ldrh r2, [r5, 0x26]
adds r0, r2
strh r0, [r5, 0x26]
movs r1, 0xE
ldrsh r0, [r4, r1]
movs r6, 0x80
lsls r6, 8
ands r0, r6
cmp r0, 0
beq _0814DBEA
ldrh r0, [r4, 0x6]
ldrh r2, [r5, 0x2E]
adds r0, r2
strh r0, [r5, 0x2E]
ldrh r0, [r4, 0xA]
ldrh r1, [r4, 0x8]
adds r0, r1
strh r0, [r4, 0x8]
lsls r0, 16
asrs r0, 23
movs r2, 0xC
ldrsh r1, [r4, r2]
bl Sin
strh r0, [r5, 0x24]
movs r1, 0xE
ldrsh r0, [r4, r1]
ands r0, r6
cmp r0, 0
beq _0814DBEA
ldrh r0, [r4, 0x8]
lsls r0, 16
asrs r0, 23
cmp r0, 0x7E
ble _0814DBEA
movs r0, 0
strh r0, [r5, 0x24]
ldrh r1, [r4, 0xE]
ldr r0, _0814DC1C @ =0x00007fff
ands r0, r1
strh r0, [r4, 0xE]
_0814DBEA:
ldrh r0, [r4]
lsls r0, 16
asrs r0, 23
strh r0, [r5, 0x20]
movs r2, 0x22
ldrsh r1, [r5, r2]
movs r2, 0x26
ldrsh r0, [r5, r2]
adds r1, r0
ldrh r2, [r4, 0xE]
ldr r0, _0814DC1C @ =0x00007fff
ands r0, r2
cmp r1, r0
blt _0814DC16
ldr r0, _0814DC20 @ =SpriteCallbackDummy
str r0, [r5, 0x1C]
adds r0, r5, 0
bl FreeSpriteOamMatrix
adds r0, r5, 0
bl DestroySprite
_0814DC16:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0814DC1C: .4byte 0x00007fff
_0814DC20: .4byte SpriteCallbackDummy
thumb_func_end sub_814DB84
thumb_func_start sub_814DC24
sub_814DC24: @ 814DC24
push {r4-r7,lr}
adds r6, r0, 0
movs r5, 0
ldrb r0, [r6, 0x9]
cmp r5, r0
bcs _0814DC50
ldr r7, _0814DC58 @ =gUnknown_846F2EC
_0814DC32:
lsls r0, r5, 1
adds r0, r7
ldrh r4, [r0]
adds r0, r4, 0
bl FreeSpritePaletteByTag
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
ldrb r0, [r6, 0x9]
cmp r5, r0
bcc _0814DC32
_0814DC50:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0814DC58: .4byte gUnknown_846F2EC
thumb_func_end sub_814DC24
thumb_func_start sub_814DC5C
sub_814DC5C: @ 814DC5C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
adds r6, r0, 0
str r1, [sp]
movs r0, 0
str r0, [sp, 0x4]
movs r1, 0x4E
adds r1, r6
mov r10, r1
mov r9, r0
ldrb r2, [r6, 0x9]
cmp r0, r2
bcs _0814DD2A
ldr r7, _0814DCC0 @ =gUnknown_846F2D0
_0814DC80:
mov r3, r10
ldrh r0, [r3, 0xA]
mov r4, r9
lsls r1, r4, 1
add r1, r9
asrs r0, r1
lsls r0, 16
movs r1, 0xE0
lsls r1, 11
ands r1, r0
lsrs r1, 16
mov r8, r1
cmp r1, 0
beq _0814DD1A
ldr r0, [sp, 0x4]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0814DCC4
lsls r4, 2
ldr r5, [sp]
adds r5, 0x24
adds r0, r5, r4
ldr r0, [r0]
movs r1, 0x1
bl StartSpriteAnim
b _0814DCD6
.align 2, 0
_0814DCC0: .4byte gUnknown_846F2D0
_0814DCC4:
mov r0, r9
lsls r4, r0, 2
ldr r5, [sp]
adds r5, 0x24
adds r0, r5, r4
ldr r0, [r0]
movs r1, 0
bl StartSpriteAnim
_0814DCD6:
adds r3, r5, r4
ldr r2, [r3]
adds r2, 0x3E
ldrb r0, [r2]
movs r4, 0x5
negs r4, r4
adds r1, r4, 0
ands r0, r1
strb r0, [r2]
ldr r2, [r3]
adds r2, 0x2C
ldrb r0, [r2]
subs r4, 0x3C
adds r1, r4, 0
ands r0, r1
strb r0, [r2]
ldr r2, [r3]
movs r0, 0x3
mov r1, r8
ands r1, r0
mov r8, r1
subs r1, 0x1
lsls r1, 1
adds r0, r1, r7
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
strh r0, [r2, 0x24]
ldr r2, [r3]
ldr r3, _0814DD38 @ =gUnknown_846F2D1
adds r1, r3
movs r0, 0
ldrsb r0, [r1, r0]
strh r0, [r2, 0x26]
_0814DD1A:
mov r0, r9
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldrb r4, [r6, 0x9]
cmp r9, r4
bcc _0814DC80
_0814DD2A:
ldr r0, [sp, 0x4]
cmp r0, 0
bne _0814DD3C
adds r2, r6, 0
adds r2, 0x25
ldrb r1, [r2]
b _0814DE18
.align 2, 0
_0814DD38: .4byte gUnknown_846F2D1
_0814DD3C:
ldrh r0, [r6, 0x28]
movs r1, 0x3
bl __umodsi3
lsls r0, 24
lsrs r0, 24
mov r8, r0
mov r1, r8
str r1, [sp, 0x8]
movs r2, 0
mov r9, r2
mov r3, r10
ldrh r1, [r3, 0xC]
lsls r0, r1, 1
adds r0, 0x3
adds r6, 0x25
str r6, [sp, 0xC]
adds r3, r1, 0
cmp r9, r0
bge _0814DE0C
_0814DD64:
mov r4, r9
lsls r1, r4, 2
ldr r0, [sp]
adds r0, 0x4C
adds r7, r0, r1
ldr r2, [r7]
adds r0, r2, 0
adds r0, 0x3E
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0814DDFA
ldr r0, _0814DDD0 @ =sub_814F0D8
str r0, [r2, 0x1C]
lsls r1, r4, 1
ldr r3, _0814DDD4 @ =gUnknown_846F2D6
adds r0, r1, r3
movs r4, 0
ldrsb r4, [r0, r4]
adds r0, r4, 0
adds r0, 0x78
strh r0, [r2, 0x20]
ldr r2, [r7]
ldr r0, _0814DDD8 @ =gUnknown_846F2D7
adds r1, r0
movs r6, 0
ldrsb r6, [r1, r6]
mov r1, r8
lsls r0, r1, 2
subs r0, 0x88
subs r0, r6, r0
strh r0, [r2, 0x22]
ldr r5, [r7]
ldr r2, [sp, 0x8]
lsls r1, r2, 2
adds r0, r4, 0
bl __divsi3
adds r4, r0
strh r4, [r5, 0x24]
ldr r0, [r7]
strh r6, [r0, 0x26]
mov r3, r10
ldrb r1, [r3, 0x4]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0814DDDC
ldr r0, [r7]
movs r1, 0x1
bl StartSpriteAnim
b _0814DDE4
.align 2, 0
_0814DDD0: .4byte sub_814F0D8
_0814DDD4: .4byte gUnknown_846F2D6
_0814DDD8: .4byte gUnknown_846F2D7
_0814DDDC:
ldr r0, [r7]
movs r1, 0
bl StartSpriteAnim
_0814DDE4:
mov r0, r8
adds r0, 0x1
lsls r0, 16
lsrs r0, 16
mov r8, r0
mov r4, r10
ldrh r3, [r4, 0xC]
cmp r0, 0x3
bls _0814DDFA
movs r0, 0
mov r8, r0
_0814DDFA:
mov r0, r9
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r9, r0
lsls r0, r3, 1
adds r0, 0x3
cmp r9, r0
blt _0814DD64
_0814DE0C:
ldr r2, [sp, 0xC]
ldrb r1, [r2]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0814DE22
_0814DE18:
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
b _0814DE40
_0814DE22:
ldr r3, [sp, 0x4]
cmp r3, 0x1
bne _0814DE30
movs r0, 0x47
bl PlaySE
b _0814DE36
_0814DE30:
movs r0, 0x46
bl PlaySE
_0814DE36:
ldr r4, [sp, 0xC]
ldrb r0, [r4]
movs r1, 0x4
orrs r0, r1
strb r0, [r4]
_0814DE40:
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_814DC5C
thumb_func_start sub_814DE50
sub_814DE50: @ 814DE50
push {r4-r7,lr}
adds r5, r0, 0
adds r6, r1, 0
movs r2, 0
ldrb r0, [r5, 0x9]
cmp r2, r0
bcs _0814DE82
adds r4, r6, 0
adds r4, 0x24
movs r7, 0x4
adds r3, r0, 0
_0814DE66:
lsls r0, r2, 2
adds r0, r4, r0
ldr r0, [r0]
adds r0, 0x3E
ldrb r1, [r0]
adds r0, r7, 0
ands r0, r1
cmp r0, 0
beq _0814DE9C
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, r3
bcc _0814DE66
_0814DE82:
movs r2, 0
adds r3, r6, 0
adds r3, 0x4C
movs r4, 0x4
_0814DE8A:
lsls r0, r2, 2
adds r0, r3, r0
ldr r0, [r0]
adds r0, 0x3E
ldrb r1, [r0]
adds r0, r4, 0
ands r0, r1
cmp r0, 0
bne _0814DEA0
_0814DE9C:
movs r0, 0
b _0814DEB8
_0814DEA0:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xA
bls _0814DE8A
movs r1, 0x2C
ldrsh r0, [r5, r1]
cmp r0, 0
beq _0814DEB6
movs r0, 0
strh r0, [r5, 0x2C]
_0814DEB6:
movs r0, 0x1
_0814DEB8:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_814DE50
thumb_func_start sub_814DEC0
sub_814DEC0: @ 814DEC0
push {r4-r7,lr}
adds r6, r0, 0
lsls r4, r1, 16
lsrs r4, 16
movs r7, 0
movs r5, 0xE1
lsls r5, 4
adds r0, r4, 0
adds r1, r5, 0
bl __udivsi3
strh r0, [r6, 0x4]
adds r0, r4, 0
adds r1, r5, 0
bl __umodsi3
lsls r0, 16
lsrs r0, 16
movs r1, 0x3C
bl __udivsi3
strh r0, [r6, 0x6]
adds r0, r4, 0
movs r1, 0x3C
bl __umodsi3
lsls r0, 24
asrs r0, 16
movs r1, 0x4
bl sub_80D8AA0
adds r2, r7, 0
lsls r0, 16
asrs r3, r0, 16
movs r0, 0x7
mov r12, r0
ldr r5, _0814DF3C @ =gUnknown_846E450
movs r4, 0x1
_0814DF0C:
mov r0, r12
subs r1, r0, r2
adds r0, r3, 0
asrs r0, r1
ands r0, r4
cmp r0, 0
beq _0814DF22
lsls r0, r2, 2
adds r0, r5
ldr r0, [r0]
adds r7, r0
_0814DF22:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x7
bls _0814DF0C
ldr r1, _0814DF40 @ =0x000f4240
adds r0, r7, 0
bl __udivsi3
strh r0, [r6, 0x8]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0814DF3C: .4byte gUnknown_846E450
_0814DF40: .4byte 0x000f4240
thumb_func_end sub_814DEC0
thumb_func_start sub_814DF44
sub_814DF44: @ 814DF44
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0xC
adds r6, r0, 0
adds r4, r1, 0
adds r5, r2, 0
mov r8, r3
lsls r6, 24
lsrs r6, 24
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
movs r2, 0x1
negs r2, r2
movs r0, 0x2
mov r1, r8
bl GetStringWidth
lsls r4, 2
lsrs r0, 1
subs r4, r0
lsls r4, 24
lsrs r4, 24
lsls r0, r5, 1
adds r0, r5
ldr r1, _0814DFA0 @ =gUnknown_846E3DC
adds r0, r1
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
mov r0, r8
str r0, [sp, 0x8]
adds r0, r6, 0
movs r1, 0x2
adds r2, r4, 0
movs r3, 0
bl box_print
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0814DFA0: .4byte gUnknown_846E3DC
thumb_func_end sub_814DF44
thumb_func_start sub_814DFA4
sub_814DFA4: @ 814DFA4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x38
str r0, [sp, 0xC]
lsls r1, 24
lsrs r1, 24
str r1, [sp, 0x10]
lsls r2, 24
lsrs r2, 24
str r2, [sp, 0x14]
lsls r3, 24
lsrs r3, 24
str r3, [sp, 0x18]
movs r0, 0
mov r8, r0
movs r1, 0
str r1, [sp, 0x1C]
movs r2, 0
str r2, [sp, 0x20]
ldr r4, [sp, 0xC]
adds r4, 0x68
str r4, [sp, 0x24]
ldr r0, [sp, 0xC]
ldrb r0, [r0, 0x9]
cmp r8, r0
bcc _0814DFE0
b _0814E30C
_0814DFE0:
ldr r1, [sp, 0x10]
lsls r1, 2
str r1, [sp, 0x28]
movs r4, 0xDD
lsls r4, 1
ldr r2, [sp, 0xC]
adds r4, r2, r4
str r4, [sp, 0x2C]
_0814DFF0:
bl UnkTextUtil_Reset
ldr r0, [sp, 0x10]
cmp r0, 0x1
beq _0814E0E4
cmp r0, 0x1
bgt _0814E00A
cmp r0, 0
beq _0814E01A
mov r1, r8
lsls r1, 3
mov r9, r1
b _0814E0C8
_0814E00A:
ldr r0, [sp, 0x10]
cmp r0, 0x2
bne _0814E012
b _0814E200
_0814E012:
mov r1, r8
lsls r1, 3
mov r9, r1
b _0814E0C8
_0814E01A:
ldr r0, [sp, 0x24]
adds r0, 0x20
add r0, r8
ldrb r0, [r0]
str r0, [sp, 0x1C]
mov r0, r8
lsls r3, r0, 1
ldr r2, [sp, 0x24]
adds r2, 0xC
cmp r0, 0
beq _0814E048
adds r0, r2, r3
mov r1, r8
subs r1, 0x1
lsls r1, 1
adds r1, r2, r1
ldrh r0, [r0]
ldrh r1, [r1]
cmp r0, r1
beq _0814E048
mov r4, r8
adds r1, r4, 0
str r1, [sp, 0x20]
_0814E048:
ldr r1, [sp, 0x28]
ldr r4, [sp, 0x10]
adds r0, r1, r4
lsls r0, 1
adds r0, r3, r0
adds r0, r2, r0
ldrh r1, [r0]
ldr r0, _0814E0D8 @ =gStringVar1
movs r2, 0x1
movs r3, 0x4
bl ConvertIntToDecimalStringN
ldr r0, _0814E0DC @ =gUnknown_846F4B8
ldr r1, [sp, 0x28]
adds r0, r1, r0
ldr r5, [r0]
movs r0, 0x2
adds r1, r5, 0
movs r2, 0x1
negs r2, r2
bl GetStringWidth
ldr r2, [sp, 0x14]
subs r0, r2, r0
subs r0, 0x4
lsls r0, 24
lsrs r7, r0, 24
ldr r4, [sp, 0x2C]
ldrb r0, [r4]
mov r1, r8
lsls r6, r1, 3
subs r4, r6, r1
lsls r4, 1
ldr r2, [sp, 0x18]
adds r4, r2, r4
lsls r4, 24
lsrs r4, 24
ldr r1, _0814E0E0 @ =gUnknown_846E3DC
str r1, [sp]
movs r2, 0
str r2, [sp, 0x4]
str r5, [sp, 0x8]
movs r1, 0x2
adds r2, r7, 0
adds r3, r4, 0
bl box_print
ldr r1, [sp, 0x2C]
ldrb r0, [r1]
adds r2, r7, 0
subs r2, 0x18
lsls r2, 24
lsrs r2, 24
ldr r1, _0814E0E0 @ =gUnknown_846E3DC
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
ldr r1, _0814E0D8 @ =gStringVar1
str r1, [sp, 0x8]
movs r1, 0x2
adds r3, r4, 0
bl box_print
mov r9, r6
_0814E0C8:
ldr r6, [sp, 0x20]
adds r6, 0xA2
ldr r2, [sp, 0x1C]
lsls r5, r2, 5
movs r4, 0x1
add r4, r8
mov r10, r4
b _0814E27E
.align 2, 0
_0814E0D8: .4byte gStringVar1
_0814E0DC: .4byte gUnknown_846F4B8
_0814E0E0: .4byte gUnknown_846E3DC
_0814E0E4:
ldr r0, [sp, 0x24]
add r0, r8
adds r0, 0x28
ldrb r0, [r0]
str r0, [sp, 0x1C]
mov r0, r8
lsls r3, r0, 1
ldr r2, [sp, 0x24]
adds r2, 0xC
cmp r0, 0
beq _0814E116
adds r0, r3, 0
adds r0, 0xA
adds r0, r2, r0
mov r4, r8
lsls r1, r4, 1
adds r1, 0x8
adds r1, r2, r1
ldrh r0, [r0]
ldrh r1, [r1]
cmp r0, r1
beq _0814E116
mov r1, r8
adds r0, r1, 0
str r0, [sp, 0x20]
_0814E116:
ldr r0, [sp, 0x28]
ldr r1, [sp, 0x10]
adds r4, r0, r1
lsls r4, 1
adds r4, r3, r4
adds r4, r2, r4
ldrh r1, [r4]
lsrs r1, 4
ldr r0, _0814E1E4 @ =gStringVar1
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
movs r3, 0
ldrb r0, [r4]
movs r7, 0xF
ands r7, r0
movs r2, 0
ldr r4, [sp, 0x10]
lsls r4, 2
str r4, [sp, 0x34]
mov r0, r8
lsls r0, 3
mov r9, r0
ldr r1, [sp, 0x14]
subs r1, 0x4
str r1, [sp, 0x30]
ldr r6, [sp, 0x20]
adds r6, 0xA2
ldr r4, [sp, 0x1C]
lsls r5, r4, 5
movs r0, 0x1
add r0, r8
mov r10, r0
movs r1, 0x1
mov r12, r1
ldr r4, _0814E1E8 @ =gUnknown_846E450
_0814E160:
movs r0, 0x3
subs r1, r0, r2
adds r0, r7, 0
asrs r0, r1
mov r1, r12
ands r0, r1
cmp r0, 0
beq _0814E178
lsls r0, r2, 2
adds r0, r4
ldr r0, [r0]
adds r3, r0
_0814E178:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3
bls _0814E160
adds r0, r3, 0
ldr r1, _0814E1EC @ =0x000f4240
bl __udivsi3
lsls r0, 24
lsrs r7, r0, 24
ldr r0, _0814E1F0 @ =gStringVar2
adds r1, r7, 0
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r0, _0814E1F4 @ =gUnknown_846F4B8
ldr r2, [sp, 0x34]
adds r0, r2, r0
ldr r1, [r0]
ldr r0, _0814E1F8 @ =gStringVar4
bl StringExpandPlaceholders
movs r0, 0x2
ldr r1, _0814E1F8 @ =gStringVar4
movs r2, 0
bl GetStringWidth
adds r2, r0, 0
ldr r4, [sp, 0x30]
subs r2, r4, r2
lsls r2, 24
lsrs r2, 24
ldr r1, [sp, 0x2C]
ldrb r0, [r1]
mov r4, r9
mov r1, r8
subs r3, r4, r1
lsls r3, 1
ldr r4, [sp, 0x18]
adds r3, r4, r3
lsls r3, 24
lsrs r3, 24
ldr r1, _0814E1FC @ =gUnknown_846E3DC
str r1, [sp]
movs r4, 0
str r4, [sp, 0x4]
ldr r1, _0814E1F8 @ =gStringVar4
str r1, [sp, 0x8]
movs r1, 0x2
bl box_print
b _0814E27E
.align 2, 0
_0814E1E4: .4byte gStringVar1
_0814E1E8: .4byte gUnknown_846E450
_0814E1EC: .4byte 0x000f4240
_0814E1F0: .4byte gStringVar2
_0814E1F4: .4byte gUnknown_846F4B8
_0814E1F8: .4byte gStringVar4
_0814E1FC: .4byte gUnknown_846E3DC
_0814E200:
mov r2, r8
str r2, [sp, 0x1C]
mov r0, r8
adds r4, r0, 0
str r4, [sp, 0x20]
lsls r5, r0, 5
ldr r1, [sp, 0xC]
adds r0, r1, r5
adds r0, 0xA4
ldrb r2, [r0]
cmp r2, 0x2B
bls _0814E21A
movs r2, 0
_0814E21A:
lsls r1, r2, 3
subs r1, r2
lsls r1, 2
ldr r0, _0814E294 @ =gUnknown_83DF7E8
adds r1, r0
ldr r0, _0814E298 @ =gStringVar1
bl StringCopy
ldr r0, _0814E29C @ =gUnknown_846F4B8
ldr r1, [r0, 0x8]
ldr r0, _0814E2A0 @ =gStringVar4
bl StringExpandPlaceholders
movs r0, 0x2
ldr r1, _0814E2A0 @ =gStringVar4
movs r2, 0x1
negs r2, r2
bl GetStringWidth
adds r2, r0, 0
ldr r4, [sp, 0x14]
subs r2, r4, r2
subs r2, 0x4
lsls r2, 24
lsrs r2, 24
ldr r1, [sp, 0x2C]
ldrb r0, [r1]
mov r1, r8
lsls r4, r1, 3
subs r3, r4, r1
lsls r3, 1
ldr r1, [sp, 0x18]
adds r3, r1, r3
lsls r3, 24
lsrs r3, 24
ldr r1, _0814E2A4 @ =gUnknown_846E3DC
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
ldr r1, _0814E2A0 @ =gStringVar4
str r1, [sp, 0x8]
movs r1, 0x2
bl box_print
mov r9, r4
mov r6, r8
adds r6, 0xA2
movs r2, 0x1
add r2, r8
mov r10, r2
_0814E27E:
ldr r0, [sp, 0x1C]
ldr r4, [sp, 0xC]
ldrb r4, [r4, 0x8]
cmp r0, r4
bne _0814E2B0
ldr r0, _0814E2A8 @ =gStringVar3
ldr r1, _0814E2AC @ =gUnknown_841D020
bl StringCopy
b _0814E2B8
.align 2, 0
_0814E294: .4byte gUnknown_83DF7E8
_0814E298: .4byte gStringVar1
_0814E29C: .4byte gUnknown_846F4B8
_0814E2A0: .4byte gStringVar4
_0814E2A4: .4byte gUnknown_846E3DC
_0814E2A8: .4byte gStringVar3
_0814E2AC: .4byte gUnknown_841D020
_0814E2B0:
ldr r0, _0814E31C @ =gStringVar3
ldr r1, _0814E320 @ =gUnknown_841D02C
bl StringCopy
_0814E2B8:
ldr r4, _0814E31C @ =gStringVar3
strb r6, [r4]
adds r1, r5, 0
adds r1, 0x98
ldr r0, [sp, 0xC]
adds r1, r0, r1
movs r0, 0
bl UnkTextUtil_SetPtrI
ldr r0, _0814E324 @ =gStringVar4
adds r1, r4, 0
bl UnkTextUtil_StringExpandPlaceholders
ldr r1, [sp, 0x2C]
ldrb r0, [r1]
mov r2, r9
mov r4, r8
subs r3, r2, r4
lsls r3, 1
ldr r1, [sp, 0x18]
adds r3, r1, r3
lsls r3, 24
lsrs r3, 24
ldr r2, _0814E328 @ =gUnknown_846E3DC
str r2, [sp]
movs r4, 0
str r4, [sp, 0x4]
ldr r1, _0814E324 @ =gStringVar4
str r1, [sp, 0x8]
movs r1, 0x2
movs r2, 0x4
bl box_print
mov r2, r10
lsls r0, r2, 24
lsrs r0, 24
mov r8, r0
ldr r4, [sp, 0xC]
ldrb r4, [r4, 0x9]
cmp r8, r4
bcs _0814E30C
b _0814DFF0
_0814E30C:
add sp, 0x38
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0814E31C: .4byte gStringVar3
_0814E320: .4byte gUnknown_841D02C
_0814E324: .4byte gStringVar4
_0814E328: .4byte gUnknown_846E3DC
thumb_func_end sub_814DFA4
thumb_func_start sub_814E32C
sub_814E32C: @ 814E32C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x1C
mov r8, r0
movs r0, 0
mov r10, r0
movs r6, 0
movs r1, 0
str r1, [sp, 0xC]
mov r2, r8
adds r2, 0x68
str r2, [sp, 0x10]
movs r4, 0xDD
lsls r4, 1
add r4, r8
mov r9, r4
ldrb r0, [r4]
movs r1, 0x4
bl GetWindowAttribute
lsls r0, 27
movs r1, 0xD6
lsls r1, 24
adds r0, r1
lsrs r7, r0, 24
movs r0, 0x9C
lsls r0, 1
add r0, r8
ldr r2, [sp, 0x10]
ldrh r1, [r2, 0x4]
bl sub_814DEC0
ldrb r0, [r4]
ldr r4, _0814E560 @ =gUnknown_846E3DC
str r4, [sp]
str r6, [sp, 0x4]
ldr r1, _0814E564 @ =gUnknown_841D050
str r1, [sp, 0x8]
movs r1, 0x2
movs r2, 0x2
adds r3, r7, 0
bl box_print
ldr r4, _0814E568 @ =gUnknown_841D088
movs r0, 0x2
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
movs r1, 0xBE
subs r0, r1, r0
lsls r0, 24
lsrs r6, r0, 24
mov r2, r9
ldrb r0, [r2]
ldr r1, _0814E560 @ =gUnknown_846E3DC
str r1, [sp]
mov r2, r10
str r2, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
bl box_print
adds r0, r6, 0
subs r0, 0x20
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0x9F
lsls r0, 1
add r0, r8
movs r4, 0
ldrsh r1, [r0, r4]
ldr r0, _0814E56C @ =gStringVar1
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r0, _0814E570 @ =gStringVar2
movs r1, 0xA0
lsls r1, 1
add r1, r8
movs r2, 0
ldrsh r1, [r1, r2]
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r5, _0814E574 @ =gStringVar4
ldr r1, _0814E578 @ =gUnknown_841D080
adds r0, r5, 0
bl StringExpandPlaceholders
mov r4, r9
ldrb r0, [r4]
ldr r1, _0814E560 @ =gUnknown_846E3DC
str r1, [sp]
mov r2, r10
str r2, [sp, 0x4]
str r5, [sp, 0x8]
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
bl box_print
ldr r4, _0814E57C @ =gUnknown_841D078
movs r0, 0x2
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
subs r1, r6, 0x3
subs r1, r0
lsls r1, 24
lsrs r6, r1, 24
mov r1, r9
ldrb r0, [r1]
ldr r2, _0814E560 @ =gUnknown_846E3DC
str r2, [sp]
mov r1, r10
str r1, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
bl box_print
adds r0, r6, 0
subs r0, 0x9
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0x9E
lsls r0, 1
add r0, r8
movs r2, 0
ldrsh r1, [r0, r2]
ldr r0, _0814E56C @ =gStringVar1
movs r2, 0x2
movs r3, 0x1
bl ConvertIntToDecimalStringN
ldr r1, _0814E580 @ =gUnknown_841D074
adds r0, r5, 0
bl StringExpandPlaceholders
mov r4, r9
ldrb r0, [r4]
ldr r1, _0814E560 @ =gUnknown_846E3DC
str r1, [sp]
mov r2, r10
str r2, [sp, 0x4]
str r5, [sp, 0x8]
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
bl box_print
adds r0, r7, 0
adds r0, 0xE
lsls r0, 24
lsrs r7, r0, 24
ldrb r0, [r4]
ldr r4, _0814E560 @ =gUnknown_846E3DC
str r4, [sp]
mov r1, r10
str r1, [sp, 0x4]
ldr r1, _0814E584 @ =gUnknown_841D058
str r1, [sp, 0x8]
movs r1, 0x2
movs r2, 0x2
adds r3, r7, 0
bl box_print
ldr r4, _0814E588 @ =gUnknown_841D098
movs r0, 0x2
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
movs r2, 0xBE
subs r0, r2, r0
lsls r0, 24
str r0, [sp, 0x18]
lsrs r6, r0, 24
mov r1, r9
ldrb r0, [r1]
ldr r2, _0814E560 @ =gUnknown_846E3DC
str r2, [sp]
mov r1, r10
str r1, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0x3
adds r2, r6, 0
adds r3, r7, 0
bl box_print
mov r4, r8
ldrb r2, [r4, 0x16]
ldrh r0, [r4, 0x16]
mov r12, r0
movs r1, 0x7
mov r9, r1
movs r5, 0x1
ldr r3, _0814E58C @ =gUnknown_846E450
_0814E4CC:
mov r4, r9
mov r0, r10
subs r1, r4, r0
adds r0, r2, 0
asrs r0, r1
ands r0, r5
cmp r0, 0
beq _0814E4EA
mov r1, r10
lsls r0, r1, 2
adds r0, r3
ldr r0, [r0]
ldr r4, [sp, 0xC]
adds r4, r0
str r4, [sp, 0xC]
_0814E4EA:
mov r0, r10
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r10, r0
cmp r0, 0x7
bls _0814E4CC
ldr r0, _0814E56C @ =gStringVar1
mov r2, r12
lsrs r1, r2, 8
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _0814E570 @ =gStringVar2
ldr r1, _0814E590 @ =0x000f4240
ldr r0, [sp, 0xC]
bl __udivsi3
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, _0814E574 @ =gStringVar4
ldr r1, _0814E594 @ =gUnknown_841D090
adds r0, r4, 0
bl StringExpandPlaceholders
adds r0, r6, 0
subs r0, 0x26
lsls r0, 24
lsrs r6, r0, 24
mov r0, r8
adds r0, 0x25
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _0814E59C
movs r0, 0xDD
lsls r0, 1
add r0, r8
ldrb r0, [r0]
ldr r1, _0814E598 @ =gUnknown_846E3EB
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
bl box_print
b _0814E5B6
.align 2, 0
_0814E560: .4byte gUnknown_846E3DC
_0814E564: .4byte gUnknown_841D050
_0814E568: .4byte gUnknown_841D088
_0814E56C: .4byte gStringVar1
_0814E570: .4byte gStringVar2
_0814E574: .4byte gStringVar4
_0814E578: .4byte gUnknown_841D080
_0814E57C: .4byte gUnknown_841D078
_0814E580: .4byte gUnknown_841D074
_0814E584: .4byte gUnknown_841D058
_0814E588: .4byte gUnknown_841D098
_0814E58C: .4byte gUnknown_846E450
_0814E590: .4byte 0x000f4240
_0814E594: .4byte gUnknown_841D090
_0814E598: .4byte gUnknown_846E3EB
_0814E59C:
movs r0, 0xDD
lsls r0, 1
add r0, r8
ldrb r0, [r0]
ldr r1, _0814E630 @ =gUnknown_846E3DC
str r1, [sp]
str r2, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
bl box_print
_0814E5B6:
adds r0, r7, 0
adds r0, 0xE
lsls r0, 24
lsrs r7, r0, 24
movs r4, 0xDD
lsls r4, 1
add r8, r4
mov r1, r8
ldrb r0, [r1]
ldr r2, _0814E630 @ =gUnknown_846E3DC
mov r9, r2
str r2, [sp]
movs r5, 0
str r5, [sp, 0x4]
ldr r1, _0814E634 @ =gUnknown_841D068
str r1, [sp, 0x8]
movs r1, 0x2
movs r2, 0x2
adds r3, r7, 0
bl box_print
ldr r0, _0814E638 @ =gStringVar1
ldr r4, [sp, 0x10]
ldrh r1, [r4, 0x8]
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _0814E63C @ =gStringVar4
ldr r1, _0814E640 @ =gUnknown_841D0A4
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x2
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
movs r1, 0xBE
subs r1, r0
lsls r1, 24
lsrs r6, r1, 24
mov r1, r8
ldrb r0, [r1]
mov r2, r9
str r2, [sp]
str r5, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
bl box_print
add sp, 0x1C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0814E630: .4byte gUnknown_846E3DC
_0814E634: .4byte gUnknown_841D068
_0814E638: .4byte gStringVar1
_0814E63C: .4byte gStringVar4
_0814E640: .4byte gUnknown_841D0A4
thumb_func_end sub_814E32C
thumb_func_start sub_814E644
sub_814E644: @ 814E644
push {r4-r6,lr}
sub sp, 0x8
adds r4, r0, 0
adds r6, r1, 0
adds r0, r6, 0
adds r0, 0x80
ldrb r0, [r0]
cmp r0, 0x5
bls _0814E658
b _0814E7F8
_0814E658:
lsls r0, 2
ldr r1, _0814E664 @ =_0814E668
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0814E664: .4byte _0814E668
.align 2, 0
_0814E668:
.4byte _0814E680
.4byte _0814E6CC
.4byte _0814E6E0
.4byte _0814E704
.4byte _0814E7D8
.4byte _0814E7E0
_0814E680:
ldrb r0, [r4, 0x9]
subs r0, 0x2
lsls r0, 24
lsrs r5, r0, 24
adds r0, r6, 0
bl sub_814EB04
ldrh r0, [r4, 0x12]
lsls r0, 3
ldr r2, _0814E6A8 @ =gUnknown_846E3D0
mov r1, sp
adds r0, r2
ldm r0!, {r2,r3}
stm r1!, {r2,r3}
ldrh r0, [r4, 0x12]
cmp r0, 0xD
bne _0814E6B0
ldr r0, _0814E6AC @ =gUnknown_846E448
adds r0, 0x4
b _0814E6B2
.align 2, 0
_0814E6A8: .4byte gUnknown_846E3D0
_0814E6AC: .4byte gUnknown_846E448
_0814E6B0:
ldr r0, _0814E6C8 @ =gUnknown_846E448
_0814E6B2:
adds r0, r5, r0
ldrb r1, [r0]
mov r0, sp
strb r1, [r0, 0x4]
mov r0, sp
bl AddWindow
adds r1, r6, 0
adds r1, 0x82
strb r0, [r1]
b _0814E7F8
.align 2, 0
_0814E6C8: .4byte gUnknown_846E448
_0814E6CC:
adds r4, r6, 0
adds r4, 0x82
ldrb r0, [r4]
bl PutWindowTilemap
ldrb r0, [r4]
movs r1, 0
bl FillWindowPixelBuffer
b _0814E7F8
_0814E6E0:
adds r5, r6, 0
adds r5, 0x82
ldrb r0, [r5]
ldr r4, _0814E700 @ =0x0000021d
adds r1, r4, 0
movs r2, 0xD0
bl sub_814FF2C
ldrb r0, [r5]
movs r1, 0
adds r2, r4, 0
movs r3, 0xD
bl SetWindowBorderStyle
b _0814E7F8
.align 2, 0
_0814E700: .4byte 0x0000021d
_0814E704:
ldrb r0, [r4, 0x9]
subs r0, 0x2
lsls r0, 24
lsrs r5, r0, 24
ldrh r0, [r4, 0x12]
cmp r0, 0xC
beq _0814E764
cmp r0, 0xC
bgt _0814E71C
cmp r0, 0xB
beq _0814E722
b _0814E7F8
_0814E71C:
cmp r0, 0xD
beq _0814E7B4
b _0814E7F8
_0814E722:
adds r0, r6, 0
adds r0, 0x82
ldrb r0, [r0]
ldr r3, _0814E75C @ =gUnknown_841D0A8
movs r1, 0x16
movs r2, 0x3
bl sub_814DF44
ldr r0, _0814E760 @ =gUnknown_846E448
adds r0, r5, r0
ldrb r3, [r0]
lsls r3, 3
ldrb r1, [r4, 0x9]
lsls r0, r1, 3
subs r0, r1
lsls r0, 1
subs r3, r0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
movs r1, 0
movs r2, 0xB0
bl sub_814DFA4
adds r1, r6, 0
adds r1, 0x80
movs r0, 0x5
b _0814E800
.align 2, 0
_0814E75C: .4byte gUnknown_841D0A8
_0814E760: .4byte gUnknown_846E448
_0814E764:
adds r0, r6, 0
adds r0, 0x82
ldrb r0, [r0]
ldr r2, _0814E7AC @ =gUnknown_846F4B8
adds r1, r4, 0
adds r1, 0x8F
ldrb r1, [r1]
adds r1, 0x3
lsls r1, 2
adds r1, r2
ldr r3, [r1]
movs r1, 0x16
movs r2, 0x4
bl sub_814DF44
ldr r0, _0814E7B0 @ =gUnknown_846E448
adds r0, r5, r0
ldrb r3, [r0]
lsls r3, 3
ldrb r1, [r4, 0x9]
lsls r0, r1, 3
subs r0, r1
lsls r0, 1
subs r3, r0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
movs r1, 0x1
movs r2, 0xB0
bl sub_814DFA4
adds r1, r6, 0
adds r1, 0x80
movs r0, 0x5
b _0814E800
.align 2, 0
_0814E7AC: .4byte gUnknown_846F4B8
_0814E7B0: .4byte gUnknown_846E448
_0814E7B4:
adds r0, r6, 0
adds r0, 0x82
ldrb r0, [r0]
ldr r3, _0814E7D4 @ =gUnknown_841D0C0
movs r1, 0x18
movs r2, 0x3
bl sub_814DF44
adds r0, r4, 0
movs r1, 0x2
movs r2, 0xC0
movs r3, 0x10
bl sub_814DFA4
b _0814E7F8
.align 2, 0
_0814E7D4: .4byte gUnknown_841D0C0
_0814E7D8:
adds r0, r4, 0
bl sub_814E32C
b _0814E7F8
_0814E7E0:
adds r0, r6, 0
adds r0, 0x82
ldrb r0, [r0]
movs r1, 0x3
bl CopyWindowToVram
adds r1, r6, 0
adds r1, 0x80
movs r0, 0
strb r0, [r1]
movs r0, 0x1
b _0814E804
_0814E7F8:
adds r1, r6, 0
adds r1, 0x80
ldrb r0, [r1]
adds r0, 0x1
_0814E800:
strb r0, [r1]
movs r0, 0
_0814E804:
add sp, 0x8
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_814E644
thumb_func_start sub_814E80C
sub_814E80C: @ 814E80C
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0xDD
lsls r0, 1
adds r5, r4, r0
ldrb r0, [r5]
movs r1, 0x1
bl sub_810F4D8
ldrb r0, [r5]
bl RemoveWindow
adds r0, r4, 0
bl sub_814EBB0
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_814E80C
thumb_func_start sub_814E830
sub_814E830: @ 814E830
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0
mov r9, r0
mov r10, r0
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, _0814E864 @ =gTasks+0x8
adds r7, r0, r1
movs r1, 0
ldrsh r0, [r7, r1]
cmp r0, 0x1
beq _0814E8B0
cmp r0, 0x1
bgt _0814E868
cmp r0, 0
beq _0814E876
b _0814EA66
.align 2, 0
_0814E864: .4byte gTasks+0x8
_0814E868:
cmp r0, 0x2
bne _0814E86E
b _0814EA2C
_0814E86E:
cmp r0, 0x3
bne _0814E874
b _0814EA40
_0814E874:
b _0814EA66
_0814E876:
ldr r0, _0814E8A8 @ =gUnknown_846E3F0
bl AddWindow
strh r0, [r7, 0x2]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
ldrb r0, [r7, 0x2]
movs r1, 0
bl FillWindowPixelBuffer
ldrb r0, [r7, 0x2]
ldr r4, _0814E8AC @ =0x0000021d
adds r1, r4, 0
movs r2, 0xD0
bl sub_814FF2C
ldrb r0, [r7, 0x2]
movs r1, 0
adds r2, r4, 0
movs r3, 0xD
bl SetWindowBorderStyle
b _0814EA66
.align 2, 0
_0814E8A8: .4byte gUnknown_846E3F0
_0814E8AC: .4byte 0x0000021d
_0814E8B0:
ldr r5, _0814E9FC @ =gUnknown_841D118
movs r0, 0x1
negs r0, r0
mov r8, r0
movs r0, 0x2
adds r1, r5, 0
mov r2, r8
bl GetStringWidth
lsrs r0, 1
movs r4, 0x60
subs r0, r4, r0
lsls r0, 24
lsrs r2, r0, 24
ldrb r0, [r7, 0x2]
ldr r6, _0814EA00 @ =gUnknown_846E3E5
str r6, [sp]
mov r1, r9
str r1, [sp, 0x4]
str r5, [sp, 0x8]
movs r1, 0x2
movs r3, 0x2
bl box_print
ldr r5, _0814EA04 @ =gUnknown_841D124
movs r0, 0x2
adds r1, r5, 0
mov r2, r8
bl GetStringWidth
lsrs r0, 1
subs r4, r0
lsls r4, 24
lsrs r2, r4, 24
ldrb r0, [r7, 0x2]
str r6, [sp]
mov r1, r9
str r1, [sp, 0x4]
str r5, [sp, 0x8]
movs r1, 0x2
movs r3, 0x12
bl box_print
movs r0, 0x2A
str r0, [sp, 0xC]
ldr r1, _0814EA08 @ =gStringVar4
mov r8, r1
_0814E90E:
mov r1, r9
adds r1, 0x2
ldr r0, _0814EA0C @ =gStringVar1
movs r2, 0
movs r3, 0x1
bl ConvertIntToDecimalStringN
mov r0, r8
ldr r1, _0814EA10 @ =gUnknown_841D13C
bl StringExpandPlaceholders
ldrb r0, [r7, 0x2]
ldr r1, _0814EA14 @ =gUnknown_846E3DC
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
mov r1, r8
str r1, [sp, 0x8]
movs r1, 0x2
movs r2, 0x4
ldr r3, [sp, 0xC]
bl box_print
movs r3, 0
mov r0, r9
lsls r4, r0, 1
ldr r1, [sp, 0xC]
adds r1, 0xE
str r1, [sp, 0x10]
movs r0, 0x1
add r9, r0
adds r0, r4, r7
ldrh r0, [r0, 0x4]
movs r2, 0xFF
ands r2, r0
movs r6, 0x1
ldr r5, _0814EA18 @ =gUnknown_846E450
_0814E958:
movs r0, 0x7
subs r1, r0, r3
adds r0, r2, 0
asrs r0, r1
ands r0, r6
cmp r0, 0
beq _0814E96E
lsls r0, r3, 2
adds r0, r5
ldr r0, [r0]
add r10, r0
_0814E96E:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x7
bls _0814E958
adds r0, r4, r7
ldrh r1, [r0, 0x4]
lsrs r1, 8
ldr r0, _0814EA0C @ =gStringVar1
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
mov r0, r10
ldr r1, _0814EA1C @ =0x000f4240
bl __udivsi3
adds r1, r0, 0
ldr r0, _0814EA20 @ =gStringVar2
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
mov r0, r8
ldr r1, _0814EA24 @ =gUnknown_841D090
bl StringExpandPlaceholders
movs r1, 0
strb r1, [r0]
adds r0, 0x1
ldr r1, _0814EA28 @ =gUnknown_841D098
bl StringCopy
movs r0, 0x3
mov r1, r8
movs r2, 0
bl GetStringWidth
movs r1, 0xC0
subs r1, r0
lsls r1, 24
lsrs r2, r1, 24
ldrb r0, [r7, 0x2]
ldr r1, _0814EA14 @ =gUnknown_846E3DC
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
mov r1, r8
str r1, [sp, 0x8]
movs r1, 0x3
ldr r3, [sp, 0xC]
bl box_print
ldr r1, [sp, 0x10]
lsls r0, r1, 24
lsrs r0, 24
str r0, [sp, 0xC]
movs r0, 0
mov r10, r0
mov r1, r9
lsls r0, r1, 24
lsrs r0, 24
mov r9, r0
cmp r0, 0x3
bls _0814E90E
ldrb r0, [r7, 0x2]
movs r1, 0x3
bl CopyWindowToVram
b _0814EA66
.align 2, 0
_0814E9FC: .4byte gUnknown_841D118
_0814EA00: .4byte gUnknown_846E3E5
_0814EA04: .4byte gUnknown_841D124
_0814EA08: .4byte gStringVar4
_0814EA0C: .4byte gStringVar1
_0814EA10: .4byte gUnknown_841D13C
_0814EA14: .4byte gUnknown_846E3DC
_0814EA18: .4byte gUnknown_846E450
_0814EA1C: .4byte 0x000f4240
_0814EA20: .4byte gStringVar2
_0814EA24: .4byte gUnknown_841D090
_0814EA28: .4byte gUnknown_841D098
_0814EA2C:
ldr r0, _0814EA3C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _0814EA66
b _0814EA6C
.align 2, 0
_0814EA3C: .4byte gMain
_0814EA40:
ldrb r0, [r7, 0x2]
movs r1, 0x1
bl sub_810F4D8
ldrb r0, [r7, 0x2]
bl ClearWindowTilemap
ldrb r0, [r7, 0x2]
bl RemoveWindow
adds r0, r4, 0
bl DestroyTask
bl EnableBothScriptContexts
bl ScriptContext2_Disable
mov r0, r9
b _0814EA6A
_0814EA66:
ldrh r0, [r7]
adds r0, 0x1
_0814EA6A:
strh r0, [r7]
_0814EA6C:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_814E830
thumb_func_start sub_814EA7C
sub_814EA7C: @ 814EA7C
push {lr}
bl ScriptContext2_Enable
ldr r0, _0814EAC4 @ =sub_814E830
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0814EAC8 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r0, _0814EACC @ =gSaveBlock2Ptr
ldr r2, [r0]
movs r3, 0xAF
lsls r3, 4
adds r0, r2, r3
ldrh r0, [r0]
strh r0, [r1, 0xC]
adds r3, 0x2
adds r0, r2, r3
ldrh r0, [r0]
strh r0, [r1, 0xE]
adds r3, 0x2
adds r0, r2, r3
ldrh r0, [r0]
strh r0, [r1, 0x10]
ldr r0, _0814EAD0 @ =0x00000af6
adds r2, r0
ldrh r0, [r2]
strh r0, [r1, 0x12]
pop {r0}
bx r0
.align 2, 0
_0814EAC4: .4byte sub_814E830
_0814EAC8: .4byte gTasks
_0814EACC: .4byte gSaveBlock2Ptr
_0814EAD0: .4byte 0x00000af6
thumb_func_end sub_814EA7C
thumb_func_start sub_814EAD4
sub_814EAD4: @ 814EAD4
push {r4,lr}
adds r4, r0, 0
lsls r1, 16
lsrs r1, 16
bl sub_814DEC0
movs r0, 0x4
ldrsh r1, [r4, r0]
movs r0, 0
bl sub_815CD70
movs r0, 0x6
ldrsh r1, [r4, r0]
movs r0, 0x1
bl sub_815CD70
movs r0, 0x8
ldrsh r1, [r4, r0]
movs r0, 0x2
bl sub_815CD70
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_814EAD4
thumb_func_start sub_814EB04
sub_814EB04: @ 814EB04
push {lr}
ldr r2, [r0, 0x78]
adds r2, 0x3E
ldrb r1, [r2]
movs r3, 0x4
orrs r1, r3
strb r1, [r2]
ldr r1, [r0, 0x7C]
adds r1, 0x3E
ldrb r0, [r1]
orrs r0, r3
strb r0, [r1]
movs r0, 0x2
movs r1, 0x1
bl sub_815D1A8
movs r0, 0x1
movs r1, 0x1
bl sub_815D1A8
movs r0, 0
movs r1, 0x1
bl sub_815D1A8
pop {r0}
bx r0
thumb_func_end sub_814EB04
thumb_func_start sub_814EB38
sub_814EB38: @ 814EB38
push {r4-r7,lr}
adds r5, r0, 0
movs r6, 0
ldrb r0, [r5, 0x9]
cmp r6, r0
bcs _0814EB98
ldr r7, _0814EBA0 @ =gUnknown_846F280
_0814EB46:
lsls r0, r6, 2
movs r1, 0xA2
lsls r1, 1
adds r2, r5, r1
adds r2, r0
ldrb r1, [r5, 0x9]
subs r1, 0x2
lsls r0, r1, 2
adds r0, r1
adds r0, r6, r0
adds r0, r7
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _0814EBA4 @ =gUnknown_846F294
adds r0, r1
str r0, [r2]
ldrb r0, [r0]
lsls r0, 3
ldr r1, _0814EBA8 @ =gUnknown_846E3F8
adds r0, r1
bl AddWindow
ldr r1, _0814EBAC @ =0x000001bb
adds r4, r5, r1
adds r4, r6
strb r0, [r4]
ldrb r0, [r4]
bl PutWindowTilemap
ldrb r0, [r4]
movs r1, 0
bl FillWindowPixelBuffer
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r5, 0x9]
cmp r6, r0
bcc _0814EB46
_0814EB98:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0814EBA0: .4byte gUnknown_846F280
_0814EBA4: .4byte gUnknown_846F294
_0814EBA8: .4byte gUnknown_846E3F8
_0814EBAC: .4byte 0x000001bb
thumb_func_end sub_814EB38
thumb_func_start sub_814EBB0
sub_814EBB0: @ 814EBB0
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x14
adds r6, r0, 0
movs r7, 0
ldrb r0, [r6, 0x9]
cmp r7, r0
bcs _0814EC66
movs r1, 0
mov r8, r1
_0814EBC6:
ldr r1, _0814EC10 @ =0x000001bb
adds r0, r6, r1
adds r5, r0, r7
ldrb r0, [r5]
bl PutWindowTilemap
ldrb r0, [r6, 0x8]
cmp r7, r0
bne _0814EC18
lsls r4, r7, 5
adds r4, 0x98
adds r4, r6, r4
movs r0, 0x2
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
lsrs r0, 1
movs r2, 0x24
subs r2, r0
lsls r2, 24
lsrs r2, 24
ldrb r0, [r5]
mov r1, r8
str r1, [sp]
str r1, [sp, 0x4]
ldr r1, _0814EC14 @ =gUnknown_846E3DF
str r1, [sp, 0x8]
mov r1, r8
str r1, [sp, 0xC]
str r4, [sp, 0x10]
movs r1, 0x2
movs r3, 0x1
bl AddTextPrinterParametrized2
b _0814EC4C
.align 2, 0
_0814EC10: .4byte 0x000001bb
_0814EC14: .4byte gUnknown_846E3DF
_0814EC18:
lsls r4, r7, 5
adds r4, 0x98
adds r4, r6, r4
movs r0, 0x2
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
lsrs r0, 1
movs r2, 0x24
subs r2, r0
lsls r2, 24
lsrs r2, 24
ldrb r0, [r5]
mov r1, r8
str r1, [sp]
str r1, [sp, 0x4]
ldr r1, _0814EC78 @ =gUnknown_846E3E2
str r1, [sp, 0x8]
mov r1, r8
str r1, [sp, 0xC]
str r4, [sp, 0x10]
movs r1, 0x2
movs r3, 0x1
bl AddTextPrinterParametrized2
_0814EC4C:
ldr r1, _0814EC7C @ =0x000001bb
adds r0, r6, r1
adds r0, r7
ldrb r0, [r0]
movs r1, 0x3
bl CopyWindowToVram
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
ldrb r0, [r6, 0x9]
cmp r7, r0
bcc _0814EBC6
_0814EC66:
movs r0, 0
bl CopyBgTilemapBufferToVram
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0814EC78: .4byte gUnknown_846E3E2
_0814EC7C: .4byte 0x000001bb
thumb_func_end sub_814EBB0
thumb_func_start sub_814EC80
sub_814EC80: @ 814EC80
push {r4-r6,lr}
sub sp, 0x8
adds r6, r0, 0
movs r5, 0
ldr r0, _0814EC94 @ =gUnknown_8EB0ADC
ldr r4, _0814EC98 @ =gDecompressionBuffer
adds r1, r4, 0
bl LZ77UnCompWram
b _0814ECCA
.align 2, 0
_0814EC94: .4byte gUnknown_8EB0ADC
_0814EC98: .4byte gDecompressionBuffer
_0814EC9C:
lsls r1, r5, 2
movs r2, 0xA2
lsls r2, 1
adds r0, r6, r2
adds r0, r1
ldr r3, [r0]
ldrb r0, [r3]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r4, r1
ldrb r2, [r3, 0x1]
ldrb r3, [r3, 0x2]
movs r0, 0xA
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x3
bl CopyToBgTilemapBufferRect
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
_0814ECCA:
ldrb r0, [r6, 0x9]
cmp r5, r0
bcc _0814EC9C
movs r0, 0x3
bl CopyBgTilemapBufferToVram
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_814EC80
thumb_func_start sub_814ECE0
sub_814ECE0: @ 814ECE0
push {r4-r7,lr}
adds r6, r0, 0
movs r5, 0
ldr r0, _0814EEE0 @ =0x0000ff98
strh r0, [r6, 0x2A]
strh r5, [r6, 0x2C]
ldr r1, _0814EEE4 @ =gSpriteCoordOffsetX
strh r5, [r1]
ldr r1, _0814EEE8 @ =gSpriteCoordOffsetY
strh r0, [r1]
ldr r4, _0814EEEC @ =gUnknown_846F2F8
_0814ECF6:
lsls r0, r5, 3
adds r0, r4
bl LoadCompressedObjectPic
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x3
bls _0814ECF6
ldr r0, _0814EEF0 @ =gUnknown_846F320
bl LoadSpritePalettes
ldr r0, _0814EEF4 @ =gUnknown_846F410
movs r1, 0x78
movs r2, 0x58
movs r3, 0x5
bl CreateSprite
lsls r0, 24
lsrs r2, r0, 24
movs r0, 0xAC
lsls r0, 1
adds r3, r6, r0
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
ldr r1, _0814EEF8 @ =gSprites
adds r0, r1
str r0, [r3]
ldrb r1, [r0, 0x5]
movs r2, 0xC
orrs r1, r2
strb r1, [r0, 0x5]
ldr r1, [r3]
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x2
orrs r0, r2
strb r0, [r1]
ldr r1, [r3]
adds r1, 0x2C
ldrb r0, [r1]
movs r2, 0x40
orrs r0, r2
strb r0, [r1]
movs r5, 0
ldrb r1, [r6, 0x9]
cmp r5, r1
bcs _0814EDD2
movs r7, 0x4
_0814ED5A:
lsls r4, r5, 2
movs r3, 0xA2
lsls r3, 1
adds r0, r6, r3
adds r0, r4
ldr r0, [r0]
ldrh r1, [r0, 0x4]
adds r1, 0x78
lsls r1, 16
asrs r1, 16
ldrh r2, [r0, 0x6]
adds r2, 0x20
lsls r2, 16
asrs r2, 16
ldr r0, _0814EEFC @ =gUnknown_846F428
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r2, r0, 24
movs r0, 0xAE
lsls r0, 1
adds r3, r6, r0
adds r3, r4
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
ldr r0, _0814EEF8 @ =gSprites
adds r1, r0
str r1, [r3]
ldrb r0, [r1, 0x5]
movs r4, 0xD
negs r4, r4
adds r2, r4, 0
ands r0, r2
orrs r0, r7
strb r0, [r1, 0x5]
ldr r1, [r3]
adds r1, 0x3E
ldrb r0, [r1]
orrs r0, r7
strb r0, [r1]
ldr r2, [r3]
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x2
orrs r0, r1
strb r0, [r2]
ldr r2, [r3]
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
ldrb r0, [r6, 0x9]
cmp r5, r0
bcc _0814ED5A
_0814EDD2:
movs r5, 0
ldr r4, _0814EF00 @ =gUnknown_846F2D6
adds r7, r4, 0x1
_0814EDD8:
lsls r2, r5, 1
adds r0, r2, r4
movs r1, 0
ldrsb r1, [r0, r1]
adds r1, 0x78
adds r2, r7
ldrb r2, [r2]
lsls r2, 24
asrs r2, 24
adds r2, 0x88
ldr r0, _0814EF04 @ =gUnknown_846F440
movs r3, 0x6
bl CreateSprite
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r5, 2
movs r1, 0xC2
lsls r1, 1
adds r3, r6, r1
adds r3, r0
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
ldr r1, _0814EEF8 @ =gSprites
adds r0, r1
str r0, [r3]
ldrb r1, [r0, 0x5]
movs r2, 0xC
orrs r1, r2
strb r1, [r0, 0x5]
ldr r2, [r3]
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r2, [r3]
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
ldr r0, [r3]
strh r5, [r0, 0x2E]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0xA
bls _0814EDD8
movs r5, 0
_0814EE3E:
lsls r1, r5, 1
adds r1, r5
lsls r1, 19
movs r3, 0xB0
lsls r3, 16
adds r1, r3
asrs r1, 16
ldr r0, _0814EF08 @ =gUnknown_846F458
movs r2, 0x8
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r5, 2
movs r4, 0xD8
lsls r4, 1
adds r3, r6, r4
adds r3, r0
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
ldr r1, _0814EEF8 @ =gSprites
adds r0, r1
str r0, [r3]
ldrb r1, [r0, 0x5]
movs r4, 0xD
negs r4, r4
adds r2, r4, 0
ands r1, r2
strb r1, [r0, 0x5]
ldr r2, [r3]
adds r2, 0x3E
ldrb r0, [r2]
adds r4, 0x8
adds r1, r4, 0
ands r0, r1
strb r0, [r2]
ldr r2, [r3]
adds r2, 0x2C
ldrb r0, [r2]
movs r3, 0x41
negs r3, r3
adds r1, r3, 0
ands r0, r1
strb r0, [r2]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x1
bls _0814EE3E
ldr r4, _0814EF0C @ =gUnknown_846F488
movs r0, 0
movs r1, 0
adds r2, r4, 0
bl sub_815CA40
adds r2, r4, 0
adds r2, 0x10
movs r0, 0x1
movs r1, 0
bl sub_815CA40
adds r4, 0x20
movs r0, 0x2
movs r1, 0
adds r2, r4, 0
bl sub_815CA40
ldrh r0, [r6, 0x12]
cmp r0, 0x1
bne _0814EED8
movs r4, 0x9C
lsls r4, 1
adds r0, r6, r4
bl sub_814EB04
_0814EED8:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0814EEE0: .4byte 0x0000ff98
_0814EEE4: .4byte gSpriteCoordOffsetX
_0814EEE8: .4byte gSpriteCoordOffsetY
_0814EEEC: .4byte gUnknown_846F2F8
_0814EEF0: .4byte gUnknown_846F320
_0814EEF4: .4byte gUnknown_846F410
_0814EEF8: .4byte gSprites
_0814EEFC: .4byte gUnknown_846F428
_0814EF00: .4byte gUnknown_846F2D6
_0814EF04: .4byte gUnknown_846F440
_0814EF08: .4byte gUnknown_846F458
_0814EF0C: .4byte gUnknown_846F488
thumb_func_end sub_814ECE0
thumb_func_start sub_814EF10
sub_814EF10: @ 814EF10
push {r4-r6,lr}
adds r5, r0, 0
movs r4, 0
movs r0, 0x4
bl FreeSpriteTilesByTag
movs r0, 0x3
bl FreeSpriteTilesByTag
movs r0, 0x2
bl FreeSpriteTilesByTag
movs r0, 0x1
bl FreeSpriteTilesByTag
movs r0, 0x4
bl FreeSpritePaletteByTag
movs r0, 0x2
bl FreeSpritePaletteByTag
movs r0, 0x1
bl FreeSpritePaletteByTag
movs r0, 0xD8
lsls r0, 1
adds r6, r5, r0
_0814EF46:
lsls r0, r4, 2
adds r0, r6, r0
ldr r0, [r0]
bl DestroySprite
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x1
bls _0814EF46
movs r0, 0x2
bl sub_815D108
movs r0, 0x1
bl sub_815D108
movs r0, 0
bl sub_815D108
movs r4, 0
movs r1, 0xC2
lsls r1, 1
adds r6, r5, r1
_0814EF74:
lsls r0, r4, 2
adds r0, r6, r0
ldr r0, [r0]
bl DestroySprite
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xA
bls _0814EF74
movs r4, 0
ldrb r2, [r5, 0x9]
cmp r4, r2
bcs _0814EFAC
_0814EF90:
lsls r1, r4, 2
movs r2, 0xAE
lsls r2, 1
adds r0, r5, r2
adds r0, r1
ldr r0, [r0]
bl DestroySprite
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
ldrb r0, [r5, 0x9]
cmp r4, r0
bcc _0814EF90
_0814EFAC:
movs r1, 0xAC
lsls r1, 1
adds r0, r5, r1
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x3E
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0814EFC8
adds r0, r2, 0
bl DestroySprite
_0814EFC8:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_814EF10
thumb_func_start sub_814EFD0
sub_814EFD0: @ 814EFD0
push {lr}
adds r3, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0814EFF6
adds r2, r3, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
subs r2, 0x12
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
_0814EFF6:
pop {r0}
bx r0
thumb_func_end sub_814EFD0
thumb_func_start sub_814EFFC
sub_814EFFC: @ 814EFFC
push {r4,r5,lr}
adds r3, r0, 0
movs r1, 0
ldr r5, _0814F040 @ =SpriteCallbackDummy
adds r2, r3, 0
adds r2, 0x2E
movs r4, 0
_0814F00A:
lsls r0, r1, 1
adds r0, r2, r0
strh r4, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x7
bls _0814F00A
movs r0, 0
strh r0, [r3, 0x24]
strh r0, [r3, 0x26]
adds r2, r3, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
subs r2, 0x12
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
str r5, [r3, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0814F040: .4byte SpriteCallbackDummy
thumb_func_end sub_814EFFC
thumb_func_start sub_814F044
sub_814F044: @ 814F044
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r5, 0
adds r4, 0x2E
ldrh r0, [r4, 0x4]
ldrh r1, [r4, 0x2]
adds r0, r1
strh r0, [r4, 0x2]
lsls r0, 16
asrs r0, 24
ldrh r2, [r5, 0x26]
adds r0, r2
strh r0, [r5, 0x26]
movs r1, 0xE
ldrsh r0, [r4, r1]
movs r6, 0x80
lsls r6, 8
ands r0, r6
cmp r0, 0
beq _0814F0AA
ldrh r0, [r4, 0x6]
ldrh r2, [r5, 0x2E]
adds r0, r2
strh r0, [r5, 0x2E]
ldrh r0, [r4, 0xA]
ldrh r1, [r4, 0x8]
adds r0, r1
strh r0, [r4, 0x8]
lsls r0, 16
asrs r0, 23
movs r2, 0xC
ldrsh r1, [r4, r2]
bl Sin
strh r0, [r5, 0x24]
movs r1, 0xE
ldrsh r0, [r4, r1]
ands r0, r6
cmp r0, 0
beq _0814F0AA
ldrh r0, [r4, 0x8]
lsls r0, 16
asrs r0, 23
cmp r0, 0x7E
ble _0814F0AA
movs r0, 0
strh r0, [r5, 0x24]
ldrh r1, [r4, 0xE]
ldr r0, _0814F0D0 @ =0x00007fff
ands r0, r1
strh r0, [r4, 0xE]
_0814F0AA:
ldrh r0, [r4]
lsls r0, 16
asrs r0, 23
strh r0, [r5, 0x20]
movs r2, 0x22
ldrsh r1, [r5, r2]
movs r2, 0x26
ldrsh r0, [r5, r2]
adds r1, r0
ldrh r2, [r4, 0xE]
ldr r0, _0814F0D0 @ =0x00007fff
ands r0, r2
cmp r1, r0
ble _0814F0CA
ldr r0, _0814F0D4 @ =sub_814EFFC
str r0, [r5, 0x1C]
_0814F0CA:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0814F0D0: .4byte 0x00007fff
_0814F0D4: .4byte sub_814EFFC
thumb_func_end sub_814F044
thumb_func_start sub_814F0D8
sub_814F0D8: @ 814F0D8
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
adds r7, r6, 0
adds r7, 0x2E
movs r0, 0
mov r8, r0
movs r2, 0xA0
lsls r2, 2
strh r2, [r7, 0x2]
movs r0, 0x20
strh r0, [r7, 0x4]
movs r1, 0xA8
strh r1, [r7, 0xE]
movs r0, 0x24
ldrsh r4, [r6, r0]
lsls r4, 23
lsrs r4, 16
ldrh r0, [r6, 0x22]
subs r1, r0
lsls r1, 23
asrs r1, 16
adds r2, 0x20
asrs r2, 1
movs r0, 0x7
bl sub_80D8B40
adds r5, r0, 0
ldrh r0, [r6, 0x20]
lsls r0, 7
strh r0, [r6, 0x2E]
lsls r4, 16
asrs r4, 16
lsls r5, 16
asrs r5, 16
movs r0, 0x7
adds r1, r4, 0
adds r2, r5, 0
bl sub_80D8B40
strh r0, [r7, 0x6]
movs r0, 0x7
adds r1, r5, 0
movs r2, 0x55
bl sub_80D8ABC
adds r2, r0, 0
mov r1, r8
strh r1, [r7, 0x8]
movs r1, 0xFE
lsls r1, 6
lsls r2, 16
asrs r2, 16
movs r0, 0x7
bl sub_80D8B40
strh r0, [r7, 0xA]
movs r2, 0x24
ldrsh r0, [r6, r2]
cmp r0, 0
bge _0814F156
adds r0, 0x3
_0814F156:
asrs r0, 2
strh r0, [r7, 0xC]
ldrh r0, [r7, 0xE]
ldr r2, _0814F194 @ =0xffff8000
adds r1, r2, 0
orrs r0, r1
strh r0, [r7, 0xE]
mov r0, r8
strh r0, [r6, 0x26]
strh r0, [r6, 0x24]
ldr r0, _0814F198 @ =sub_814F044
str r0, [r6, 0x1C]
adds r2, r6, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
adds r2, 0x12
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0814F194: .4byte 0xffff8000
_0814F198: .4byte sub_814F044
thumb_func_end sub_814F0D8
.align 2, 0 @ Don't pad with nop.