pokeemerald/asm/pokenav.s

30261 lines
449 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_81C7078
sub_81C7078: @ 81C7078
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl is_c1_link_related_active
cmp r0, 0
bne _081C7090
ldr r0, =sub_81C7170
b _081C7092
.pool
_081C7090:
ldr r0, =sub_81C71E4
_081C7092:
lsls r1, r4, 24
lsrs r1, 24
bl CreateTask
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
movs r1, 0x1
adds r2, r5, 0
bl SetWordTaskArg
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r2, =gUnknown_0203CF3C
ldrb r1, [r2]
strh r1, [r0, 0xE]
ldrb r0, [r2]
adds r1, r0, 0x1
strb r1, [r2]
lsls r0, 24
lsrs r0, 8
orrs r0, r4
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_81C7078
thumb_func_start sub_81C70D8
sub_81C70D8: @ 81C70D8
push {lr}
ldr r1, =0x0000ffff
ands r1, r0
lsrs r3, r0, 16
ldr r2, =gTasks
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r1, r0, r2
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _081C711C
ldr r2, [r1]
ldr r0, =sub_81C7170
cmp r2, r0
beq _081C70FE
ldr r0, =sub_81C71E4
cmp r2, r0
bne _081C711C
_081C70FE:
movs r2, 0xE
ldrsh r0, [r1, r2]
cmp r0, r3
bne _081C711C
movs r0, 0x1
b _081C711E
.pool
_081C711C:
movs r0, 0
_081C711E:
pop {r1}
bx r1
thumb_func_end sub_81C70D8
thumb_func_start sub_81C7124
sub_81C7124: @ 81C7124
push {r4-r6,lr}
adds r6, r0, 0
movs r5, 0
ldr r4, =gTasks
_081C712C:
ldrb r0, [r4, 0x4]
cmp r0, 0
beq _081C7160
ldr r1, [r4]
ldr r0, =sub_81C7170
cmp r1, r0
beq _081C7140
ldr r0, =sub_81C71E4
cmp r1, r0
bne _081C7160
_081C7140:
lsls r0, r5, 24
lsrs r0, 24
movs r1, 0x1
bl GetWordTaskArg
cmp r0, r6
bne _081C7160
movs r0, 0x1
b _081C716A
.pool
_081C7160:
adds r4, 0x28
adds r5, 0x1
cmp r5, 0xF
ble _081C712C
movs r0, 0
_081C716A:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81C7124
thumb_func_start sub_81C7170
sub_81C7170: @ 81C7170
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
movs r1, 0x1
bl GetWordTaskArg
adds r6, r0, 0
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
movs r7, 0
_081C718C:
movs r1, 0
ldrsh r0, [r4, r1]
bl _call_via_r6
cmp r0, 0x4
bhi _081C71D6
lsls r0, 2
ldr r1, =_081C71AC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C71AC:
.4byte _081C71C6
.4byte _081C71C0
.4byte _081C71DE
.4byte _081C71DA
.4byte _081C71CE
_081C71C0:
ldrh r0, [r4]
adds r0, 0x1
b _081C71D8
_081C71C6:
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
b _081C71DE
_081C71CE:
adds r0, r5, 0
bl DestroyTask
b _081C71DE
_081C71D6:
subs r0, 0x5
_081C71D8:
strh r0, [r4]
_081C71DA:
cmp r7, 0
beq _081C718C
_081C71DE:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C7170
thumb_func_start sub_81C71E4
sub_81C71E4: @ 81C71E4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
bl sub_8087598
cmp r0, 0
bne _081C724A
adds r0, r5, 0
movs r1, 0x1
bl GetWordTaskArg
adds r2, r0, 0
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
movs r1, 0
ldrsh r0, [r4, r1]
bl _call_via_r2
cmp r0, 0x4
bhi _081C7246
lsls r0, 2
ldr r1, =_081C7224
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C7224:
.4byte _081C7238
.4byte _081C7238
.4byte _081C724A
.4byte _081C724A
.4byte _081C723E
_081C7238:
ldrh r0, [r4]
adds r0, 0x1
b _081C7248
_081C723E:
adds r0, r5, 0
bl DestroyTask
b _081C724A
_081C7246:
subs r0, 0x5
_081C7248:
strh r0, [r4]
_081C724A:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C71E4
thumb_func_start CB2_PokeNav
CB2_PokeNav: @ 81C7250
push {r4,lr}
ldr r4, =gUnknown_0203CF40
movs r0, 0x5C
bl Alloc
str r0, [r4]
cmp r0, 0
bne _081C7270
ldr r0, =CB2_ReturnToFieldWithOpenMenu
bl SetMainCallback2
b _081C7292
.pool
_081C7270:
bl sub_81C7360
bl ResetTasks
movs r0, 0
bl SetVBlankCallback
ldr r0, =sub_81C742C
movs r1, 0
bl CreateTask
ldr r0, =sub_81C7400
bl SetMainCallback2
ldr r0, =sub_81C7418
bl SetVBlankCallback
_081C7292:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end CB2_PokeNav
thumb_func_start sub_81C72A4
sub_81C72A4: @ 81C72A4
push {lr}
ldr r0, =sub_81C72BC
bl SetMainCallback2
movs r0, 0x1
movs r1, 0
bl FadeScreen
pop {r0}
bx r0
.pool
thumb_func_end sub_81C72A4
thumb_func_start sub_81C72BC
sub_81C72BC: @ 81C72BC
push {r4,lr}
bl UpdatePaletteFade
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081C7320
ldr r4, =gUnknown_0203CF40
movs r0, 0x5C
bl Alloc
str r0, [r4]
cmp r0, 0
bne _081C72F0
ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
b _081C7320
.pool
_081C72F0:
bl sub_81C7360
ldr r1, [r4]
movs r0, 0x1
strh r0, [r1, 0x8]
bl ResetTasks
bl ResetSpriteData
bl FreeAllSpritePalettes
movs r0, 0
bl SetVBlankCallback
ldr r0, =sub_81C742C
movs r1, 0
bl CreateTask
ldr r0, =sub_81C7400
bl SetMainCallback2
ldr r0, =sub_81C7418
bl SetVBlankCallback
_081C7320:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C72BC
thumb_func_start sub_81C7334
sub_81C7334: @ 81C7334
push {r4,lr}
movs r4, 0
_081C7338:
adds r0, r4, 0
bl sub_81C7650
adds r4, 0x1
cmp r4, 0x12
ble _081C7338
ldr r4, =gUnknown_0203CF40
ldr r0, [r4]
bl Free
movs r0, 0
str r0, [r4]
bl InitKeys
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7334
thumb_func_start sub_81C7360
sub_81C7360: @ 81C7360
push {r4,r5,lr}
adds r5, r0, 0
movs r2, 0
movs r1, 0x12
adds r0, 0x58
_081C736A:
str r2, [r0]
subs r0, 0x4
subs r1, 0x1
cmp r1, 0
bge _081C736A
movs r4, 0
strh r4, [r5, 0x8]
str r4, [r5, 0x4]
bl sub_81C7388
str r0, [r5, 0xC]
str r4, [r5]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C7360
thumb_func_start sub_81C7388
sub_81C7388: @ 81C7388
push {r4-r6,lr}
movs r5, 0
_081C738C:
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x5
bl GetMonData
cmp r0, 0
beq _081C73BA
adds r0, r4, 0
movs r1, 0x6
bl GetMonData
cmp r0, 0
bne _081C73BA
adds r0, r4, 0
movs r1, 0x52
bl GetMonData
cmp r0, 0
bne _081C73E2
_081C73BA:
adds r5, 0x1
cmp r5, 0x5
ble _081C738C
movs r4, 0
_081C73C2:
movs r5, 0
lsls r6, r4, 24
_081C73C6:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80D2270
cmp r0, 0
beq _081C73EC
lsls r1, r5, 24
lsrs r1, 24
lsrs r0, r6, 24
movs r2, 0x52
bl GetBoxMonDataFromAnyBox
cmp r0, 0
beq _081C73EC
_081C73E2:
movs r0, 0x1
b _081C73FA
.pool
_081C73EC:
adds r5, 0x1
cmp r5, 0x1D
ble _081C73C6
adds r4, 0x1
cmp r4, 0xD
ble _081C73C2
movs r0, 0
_081C73FA:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81C7388
thumb_func_start sub_81C7400
sub_81C7400: @ 81C7400
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_81C7400
thumb_func_start sub_81C7418
sub_81C7418: @ 81C7418
push {lr}
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
pop {r0}
bx r0
thumb_func_end sub_81C7418
thumb_func_start sub_81C742C
sub_81C742C: @ 81C742C
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks + 0x8
adds r7, r1, r0
movs r1, 0
ldrsh r0, [r7, r1]
cmp r0, 0x5
bls _081C7446
b _081C7562
_081C7446:
lsls r0, 2
ldr r1, =_081C7458
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C7458:
.4byte _081C7470
.4byte _081C747A
.4byte _081C7490
.4byte _081C749C
.4byte _081C751E
.4byte _081C752C
_081C7470:
bl sub_81C76C4
movs r0, 0x1
strh r0, [r7]
b _081C7562
_081C747A:
bl sub_81C76FC
cmp r0, 0
bne _081C7562
ldr r0, =0x000186a0
bl sub_81C756C
b _081C74E8
.pool
_081C7490:
bl sub_81C786C
cmp r0, 0
bne _081C7562
movs r0, 0x3
strh r0, [r7]
_081C749C:
bl sub_81C75E0
adds r6, r0, 0
movs r0, 0x1
negs r0, r0
cmp r6, r0
beq _081C74FC
ldr r0, =0x0001869f
cmp r6, r0
bls _081C7506
ldr r4, =gUnknown_0861F3EC
ldr r5, =gUnknown_0203CF40
ldr r0, [r5]
ldr r1, [r0, 0x4]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
adds r1, r4, 0
adds r1, 0x18
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
ldr r0, [r5]
ldr r1, [r0, 0x4]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
adds r4, 0x14
adds r0, r4
ldr r0, [r0]
bl _call_via_r0
adds r0, r6, 0
bl sub_81C756C
cmp r0, 0
beq _081C74FC
_081C74E8:
movs r0, 0x4
strh r0, [r7]
b _081C7562
.pool
_081C74FC:
bl sub_81C7710
movs r0, 0x5
strh r0, [r7]
b _081C7562
_081C7506:
cmp r6, 0
beq _081C7562
adds r0, r6, 0
bl sub_81C7850
bl sub_81C786C
cmp r0, 0
beq _081C7562
movs r0, 0x2
strh r0, [r7]
b _081C7562
_081C751E:
bl sub_81C75D4
cmp r0, 0
bne _081C7562
movs r0, 0x3
strh r0, [r7]
b _081C7562
_081C752C:
bl sub_81C7738
cmp r0, 0
bne _081C7562
ldr r0, =gUnknown_0203CF40
ldr r0, [r0]
ldrh r0, [r0, 0x8]
negs r4, r0
orrs r4, r0
lsrs r4, 31
bl sub_81C9430
bl sub_81C7334
cmp r4, 0
beq _081C755C
ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
b _081C7562
.pool
_081C755C:
ldr r0, =CB2_ReturnToFieldWithOpenMenu
bl SetMainCallback2
_081C7562:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C742C
thumb_func_start sub_81C756C
sub_81C756C: @ 81C756C
push {r4-r6,lr}
ldr r1, =0xfffe7960
adds r6, r0, r1
bl sub_81C75F4
ldr r5, =gUnknown_0861F3EC
lsls r0, r6, 3
subs r0, r6
lsls r4, r0, 2
adds r0, r4, r5
ldr r0, [r0]
bl _call_via_r0
cmp r0, 0
beq _081C75CC
adds r0, r5, 0
adds r0, 0x8
adds r0, r4, r0
ldr r0, [r0]
bl _call_via_r0
cmp r0, 0
beq _081C75CC
adds r0, r5, 0
adds r0, 0xC
adds r0, r4, r0
ldr r0, [r0]
adds r1, r5, 0
adds r1, 0x10
adds r1, r4, r1
ldr r1, [r1]
bl sub_81C7834
ldr r0, =gUnknown_0203CF40
ldr r1, [r0]
adds r0, r5, 0x4
adds r0, r4, r0
ldr r0, [r0]
str r0, [r1]
str r6, [r1, 0x4]
movs r0, 0x1
b _081C75CE
.pool
_081C75CC:
movs r0, 0
_081C75CE:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81C756C
thumb_func_start sub_81C75D4
sub_81C75D4: @ 81C75D4
push {lr}
bl sub_81C786C
pop {r1}
bx r1
thumb_func_end sub_81C75D4
thumb_func_start sub_81C75E0
sub_81C75E0: @ 81C75E0
push {lr}
ldr r0, =gUnknown_0203CF40
ldr r0, [r0]
ldr r0, [r0]
bl _call_via_r0
pop {r1}
bx r1
.pool
thumb_func_end sub_81C75E0
thumb_func_start sub_81C75F4
sub_81C75F4: @ 81C75F4
push {lr}
bl InitKeys
pop {r0}
bx r0
thumb_func_end sub_81C75F4
thumb_func_start c3args_set_0toR1_1to0
c3args_set_0toR1_1to0: @ 81C7600
push {lr}
bl SetVBlankCallback
pop {r0}
bx r0
thumb_func_end c3args_set_0toR1_1to0
thumb_func_start sub_81C760C
sub_81C760C: @ 81C760C
push {lr}
ldr r0, =sub_81C7418
bl SetVBlankCallback
pop {r0}
bx r0
.pool
thumb_func_end sub_81C760C
thumb_func_start sub_81C761C
sub_81C761C: @ 81C761C
push {r4,lr}
adds r4, r0, 0
adds r0, r1, 0
bl Alloc
ldr r1, =gUnknown_0203CF40
ldr r1, [r1]
lsls r4, 2
adds r1, 0x10
adds r1, r4
str r0, [r1]
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81C761C
thumb_func_start sub_81C763C
sub_81C763C: @ 81C763C
ldr r1, =gUnknown_0203CF40
ldr r1, [r1]
lsls r0, 2
adds r1, 0x10
adds r1, r0
ldr r0, [r1]
bx lr
.pool
thumb_func_end sub_81C763C
thumb_func_start sub_81C7650
sub_81C7650: @ 81C7650
push {r4,r5,lr}
ldr r5, =gUnknown_0203CF40
ldr r1, [r5]
lsls r4, r0, 2
adds r1, 0x10
adds r1, r4
ldr r0, [r1]
cmp r0, 0
beq _081C7670
bl Free
ldr r0, [r5]
adds r0, 0x10
adds r0, r4
movs r1, 0
str r1, [r0]
_081C7670:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7650
thumb_func_start sub_81C767C
sub_81C767C: @ 81C767C
ldr r0, =gUnknown_0203CF40
ldr r0, [r0]
ldrh r0, [r0, 0x8]
bx lr
.pool
thumb_func_end sub_81C767C
thumb_func_start sub_81C7688
sub_81C7688: @ 81C7688
ldr r1, =gUnknown_0203CF40
ldr r1, [r1]
strh r0, [r1, 0x8]
bx lr
.pool
thumb_func_end sub_81C7688
thumb_func_start sub_81C7694
sub_81C7694: @ 81C7694
push {lr}
adds r1, r0, 0
cmp r1, 0x4
bls _081C769E
movs r1, 0
_081C769E:
ldr r0, =gUnknown_0203CF40
ldr r0, [r0]
strh r1, [r0, 0xA]
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7694
thumb_func_start sub_81C76AC
sub_81C76AC: @ 81C76AC
ldr r0, =gUnknown_0203CF40
ldr r0, [r0]
ldrh r0, [r0, 0xA]
bx lr
.pool
thumb_func_end sub_81C76AC
thumb_func_start sub_81C76B8
sub_81C76B8: @ 81C76B8
ldr r0, =gUnknown_0203CF40
ldr r0, [r0]
ldr r0, [r0, 0xC]
bx lr
.pool
thumb_func_end sub_81C76B8
thumb_func_start sub_81C76C4
sub_81C76C4: @ 81C76C4
push {r4,lr}
ldr r1, =0x0000082c
movs r0, 0
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081C76F4
bl ResetSpriteData
bl FreeAllSpritePalettes
ldr r0, =sub_81C7764
movs r1, 0x1
bl sub_81C7078
str r0, [r4, 0xC]
movs r0, 0x1
b _081C76F6
.pool
_081C76F4:
movs r0, 0
_081C76F6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C76C4
thumb_func_start sub_81C76FC
sub_81C76FC: @ 81C76FC
push {lr}
movs r0, 0
bl sub_81C763C
ldr r0, [r0, 0xC]
bl sub_81C70D8
pop {r1}
bx r1
thumb_func_end sub_81C76FC
thumb_func_start sub_81C7710
sub_81C7710: @ 81C7710
push {lr}
sub sp, 0x4
movs r0, 0x6F
bl PlaySE
bl sub_81CAADC
movs r1, 0x1
negs r1, r1
movs r0, 0
str r0, [sp]
adds r0, r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_81C7710
thumb_func_start sub_81C7738
sub_81C7738: @ 81C7738
push {lr}
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081C7750
movs r0, 0x1
b _081C775E
.pool
_081C7750:
bl sub_81C99D4
bl sub_81C7C94
bl FreeAllWindowBuffers
movs r0, 0
_081C775E:
pop {r1}
bx r1
thumb_func_end sub_81C7738
thumb_func_start sub_81C7764
sub_81C7764: @ 81C7764
push {r4,lr}
sub sp, 0x4
cmp r0, 0x1
beq _081C77B0
cmp r0, 0x1
bgt _081C7776
cmp r0, 0
beq _081C7780
b _081C782A
_081C7776:
cmp r0, 0x2
beq _081C77FC
cmp r0, 0x3
beq _081C780E
b _081C782A
_081C7780:
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuReg
bl FreeAllWindowBuffers
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_0861FA04
movs r0, 0
movs r2, 0x1
bl InitBgsFromTemplates
bl sub_8199D98
bl reset_temp_tile_data_buffers
movs r0, 0x1
b _081C782C
.pool
_081C77B0:
movs r0, 0
bl sub_81C763C
adds r4, r0, 0
ldr r1, =gPokenavHeader_Gfx
movs r0, 0
str r0, [sp]
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
adds r4, 0x2C
movs r0, 0
adds r1, r4, 0
bl SetBgTilemapBuffer
ldr r1, =gPokenavHeader_Tilemap
movs r0, 0
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
ldr r0, =gPokenavHeader_Pal
movs r1, 0
movs r2, 0x20
bl sub_81C7944
movs r0, 0
bl CopyBgTilemapBufferToVram
movs r0, 0
b _081C782C
.pool
_081C77FC:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081C7818
bl sub_81C7B74
movs r0, 0
b _081C782C
_081C780E:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081C781C
_081C7818:
movs r0, 0x2
b _081C782C
_081C781C:
bl sub_81C7C28
bl sub_81C7D28
movs r0, 0
bl ShowBg
_081C782A:
movs r0, 0x4
_081C782C:
add sp, 0x4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C7764
thumb_func_start sub_81C7834
sub_81C7834: @ 81C7834
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
bl sub_81C763C
str r4, [r0]
str r5, [r0, 0x4]
movs r1, 0
str r1, [r0, 0x8]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C7834
thumb_func_start sub_81C7850
sub_81C7850: @ 81C7850
push {r4,lr}
adds r4, r0, 0
movs r0, 0
bl sub_81C763C
movs r1, 0
str r1, [r0, 0x8]
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C7850
thumb_func_start sub_81C786C
sub_81C786C: @ 81C786C
push {lr}
movs r0, 0
bl sub_81C763C
ldr r0, [r0, 0x4]
bl _call_via_r0
pop {r1}
bx r1
thumb_func_end sub_81C786C
thumb_func_start sub_81C7880
sub_81C7880: @ 81C7880
push {r4,lr}
movs r0, 0
bl sub_81C763C
adds r4, r0, 0
ldr r0, =atk47_cmd47
movs r1, 0x4
bl sub_81C7078
str r0, [r4, 0xC]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7880
thumb_func_start sub_81C78A0
sub_81C78A0: @ 81C78A0
push {r4,lr}
movs r0, 0
bl sub_81C763C
adds r4, r0, 0
ldr r0, =sub_81C791C
movs r1, 0x4
bl sub_81C7078
str r0, [r4, 0xC]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C78A0
thumb_func_start sub_81C78C0
sub_81C78C0: @ 81C78C0
push {lr}
movs r0, 0
bl sub_81C763C
ldr r0, [r0, 0xC]
bl sub_81C70D8
pop {r1}
bx r1
thumb_func_end sub_81C78C0
thumb_func_start atk47_cmd47
atk47_cmd47: @ 81C78D4
push {lr}
cmp r0, 0x1
beq _081C78EA
cmp r0, 0x1
bgt _081C78E4
cmp r0, 0
beq _081C78EA
b _081C7914
_081C78E4:
cmp r0, 0x2
beq _081C78EE
b _081C7914
_081C78EA:
movs r0, 0
b _081C7916
_081C78EE:
movs r1, 0xC0
lsls r1, 1
movs r0, 0
movs r2, 0x1
bl ChangeBgY
ldr r1, =0x00001fff
cmp r0, r1
bhi _081C7908
movs r0, 0x2
b _081C7916
.pool
_081C7908:
movs r1, 0x80
lsls r1, 6
movs r0, 0
movs r2, 0
bl ChangeBgY
_081C7914:
movs r0, 0x4
_081C7916:
pop {r1}
bx r1
thumb_func_end atk47_cmd47
thumb_func_start sub_81C791C
sub_81C791C: @ 81C791C
push {lr}
movs r1, 0xC0
lsls r1, 1
movs r0, 0
movs r2, 0x2
bl ChangeBgY
cmp r0, 0
ble _081C7932
movs r0, 0x2
b _081C793E
_081C7932:
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x4
_081C793E:
pop {r1}
bx r1
thumb_func_end sub_81C791C
thumb_func_start sub_81C7944
sub_81C7944: @ 81C7944
push {lr}
lsls r1, 1
ldr r3, =gPlttBufferUnfaded
adds r1, r3
lsls r2, 10
lsrs r2, 11
bl CpuSet
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7944
thumb_func_start sub_81C795C
sub_81C795C: @ 81C795C
push {r4,lr}
adds r4, r0, 0
b _081C7974
_081C7962:
lsls r0, r1, 4
movs r2, 0x80
lsls r2, 1
adds r1, r0, r2
ldr r0, [r4]
movs r2, 0x20
bl sub_81C7944
adds r4, 0x8
_081C7974:
ldr r0, [r4]
cmp r0, 0
beq _081C7988
ldrh r0, [r4, 0x4]
bl AllocSpritePalette
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0xFF
bne _081C7962
_081C7988:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C795C
thumb_func_start sub_81C7990
sub_81C7990: @ 81C7990
push {lr}
sub sp, 0x4
adds r3, r0, 0
lsls r1, 16
lsrs r1, 16
mov r0, sp
strh r1, [r0]
lsls r3, 5
ldr r0, =gPlttBufferFaded + 0x200
adds r3, r0
ldr r2, =0x01000010
mov r0, sp
adds r1, r3, 0
bl CpuSet
add sp, 0x4
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7990
thumb_func_start sub_81C79BC
sub_81C79BC: @ 81C79BC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
str r0, [sp]
str r1, [sp, 0x4]
mov r10, r2
str r3, [sp, 0x8]
ldr r0, [sp, 0x2C]
cmp r0, 0
bne _081C79E4
ldr r2, =0x001fffff
mov r1, r10
ands r2, r1
ldr r0, [sp]
b _081C79F4
.pool
_081C79E4:
ldr r2, [sp, 0x2C]
ldr r0, [sp, 0x8]
cmp r2, r0
blt _081C7A00
ldr r2, =0x001fffff
mov r1, r10
ands r2, r1
ldr r0, [sp, 0x4]
_081C79F4:
ldr r1, [sp, 0x30]
bl CpuSet
b _081C7AAE
.pool
_081C7A00:
movs r2, 0x1
negs r2, r2
add r10, r2
b _081C7AA6
_081C7A08:
ldr r1, [sp]
ldrh r0, [r1]
movs r2, 0x1F
mov r9, r2
mov r1, r9
ands r1, r0
mov r9, r1
lsls r0, 16
lsrs r2, r0, 21
movs r1, 0x1F
ands r1, r2
mov r8, r1
lsrs r7, r0, 26
movs r2, 0x1F
ands r7, r2
ldr r0, [sp, 0x4]
ldrh r4, [r0]
movs r0, 0x1F
ands r0, r4
mov r1, r9
subs r0, r1
lsls r0, 8
ldr r1, [sp, 0x8]
bl __divsi3
ldr r2, [sp, 0x2C]
adds r6, r0, 0
muls r6, r2
asrs r6, 8
lsls r4, 16
lsrs r0, r4, 21
movs r1, 0x1F
ands r0, r1
mov r2, r8
subs r0, r2
lsls r0, 8
ldr r1, [sp, 0x8]
bl __divsi3
ldr r1, [sp, 0x2C]
adds r5, r0, 0
muls r5, r1
asrs r5, 8
lsrs r4, 26
movs r2, 0x1F
ands r4, r2
subs r4, r7
lsls r4, 8
adds r0, r4, 0
ldr r1, [sp, 0x8]
bl __divsi3
ldr r1, [sp, 0x2C]
muls r0, r1
asrs r0, 8
add r6, r9
movs r2, 0x1F
ands r6, r2
add r5, r8
ands r5, r2
adds r0, r7, r0
ands r0, r2
lsls r0, 10
lsls r5, 5
orrs r0, r5
orrs r0, r6
ldr r1, [sp, 0x30]
strh r0, [r1]
ldr r2, [sp]
adds r2, 0x2
str r2, [sp]
ldr r0, [sp, 0x4]
adds r0, 0x2
str r0, [sp, 0x4]
adds r1, 0x2
str r1, [sp, 0x30]
movs r1, 0x1
negs r1, r1
add r10, r1
_081C7AA6:
movs r0, 0x1
negs r0, r0
cmp r10, r0
bne _081C7A08
_081C7AAE:
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C79BC
thumb_func_start sub_81C7AC0
sub_81C7AC0: @ 81C7AC0
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
movs r0, 0
bl sub_81C763C
cmp r4, 0x1
beq _081C7AF0
cmp r4, 0x1
bgt _081C7ADA
cmp r4, 0
beq _081C7AE4
b _081C7B2C
_081C7ADA:
cmp r4, 0x2
beq _081C7B04
cmp r4, 0x3
beq _081C7B18
b _081C7B2C
_081C7AE4:
ldr r0, [r0, 0x14]
movs r1, 0x2
negs r1, r1
str r4, [sp]
movs r2, 0
b _081C7B10
_081C7AF0:
ldr r0, [r0, 0x14]
movs r1, 0x2
negs r1, r1
movs r2, 0
str r2, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
b _081C7B2C
_081C7B04:
movs r0, 0x1
negs r0, r0
movs r1, 0x2
negs r1, r1
movs r2, 0
str r2, [sp]
_081C7B10:
movs r3, 0x10
bl BeginNormalPaletteFade
b _081C7B2C
_081C7B18:
movs r0, 0x1
negs r0, r0
movs r1, 0x2
negs r1, r1
movs r2, 0
str r2, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
_081C7B2C:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C7AC0
thumb_func_start sub_81C7B34
sub_81C7B34: @ 81C7B34
ldr r0, =gPaletteFade
ldrb r0, [r0, 0x7]
lsrs r0, 7
bx lr
.pool
thumb_func_end sub_81C7B34
thumb_func_start sub_81C7B40
sub_81C7B40: @ 81C7B40
push {lr}
ldr r0, =0xfffefffe
movs r1, 0x10
movs r2, 0
bl BlendPalettes
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7B40
thumb_func_start sub_81C7B54
sub_81C7B54: @ 81C7B54
push {r4,r5,lr}
adds r5, r0, 0
cmp r1, 0
ble _081C7B6C
adds r4, r1, 0
_081C7B5E:
adds r0, r5, 0
adds r5, 0x4
bl InitBgFromTemplate
subs r4, 0x1
cmp r4, 0
bne _081C7B5E
_081C7B6C:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C7B54
thumb_func_start sub_81C7B74
sub_81C7B74: @ 81C7B74
push {r4,lr}
movs r0, 0
bl sub_81C763C
adds r4, r0, 0
ldr r0, =gUnknown_0861FA08
bl InitWindows
movs r0, 0
str r0, [r4, 0x10]
bl sub_81C7BF8
ldrb r0, [r4, 0x10]
bl PutWindowTilemap
ldrb r0, [r4, 0x10]
movs r1, 0x3
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7B74
thumb_func_start sub_81C7BA4
sub_81C7BA4: @ 81C7BA4
push {r4,r5,lr}
sub sp, 0xC
adds r4, r0, 0
movs r0, 0
bl sub_81C763C
adds r5, r0, 0
ldr r0, [r5, 0x10]
bl sub_81C7BF8
ldrb r0, [r5, 0x10]
ldr r1, =gUnknown_0861FA48
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
ldr r1, =gUnknown_0861FA18
lsls r4, 2
adds r4, r1
ldr r1, [r4]
str r1, [sp, 0x8]
movs r1, 0x1
movs r2, 0
movs r3, 0x1
bl AddTextPrinterParameterized3
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7BA4
thumb_func_start sub_81C7BE8
sub_81C7BE8: @ 81C7BE8
push {lr}
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_81C7BE8
thumb_func_start sub_81C7BF8
sub_81C7BF8: @ 81C7BF8
push {r4,lr}
sub sp, 0x8
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x44
bl FillWindowPixelBuffer
movs r0, 0x80
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
adds r0, r4, 0
movs r1, 0x55
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C7BF8
thumb_func_start sub_81C7C28
sub_81C7C28: @ 81C7C28
push {r4-r6,lr}
movs r0, 0
bl sub_81C763C
adds r6, r0, 0
movs r5, 0
ldr r4, =gUnknown_0861FA4C
_081C7C36:
adds r0, r4, 0
bl LoadCompressedObjectPic
adds r4, 0x8
adds r5, 0x1
cmp r5, 0
beq _081C7C36
ldr r0, =gUnknown_0861FA54
bl sub_81C795C
movs r0, 0
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
movs r1, 0x80
lsls r1, 9
lsls r1, r0
movs r0, 0x2
negs r0, r0
bics r0, r1
str r0, [r6, 0x14]
ldr r0, =gUnknown_0861FB04
movs r1, 0xDC
movs r2, 0xC
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, =gSprites
adds r1, r0
str r1, [r6, 0x18]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7C28
thumb_func_start sub_81C7C94
sub_81C7C94: @ 81C7C94
push {lr}
movs r0, 0
bl sub_81C763C
ldr r0, [r0, 0x18]
bl DestroySprite
movs r0, 0
bl FreeSpriteTilesByTag
movs r0, 0
bl FreeSpritePaletteByTag
pop {r0}
bx r0
thumb_func_end sub_81C7C94
thumb_func_start sub_81C7CB4
sub_81C7CB4: @ 81C7CB4
push {r4,lr}
adds r4, r0, 0
movs r0, 0
bl GetBgY
lsrs r0, 8
negs r0, r0
strh r0, [r4, 0x26]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C7CB4
thumb_func_start sub_81C7CCC
sub_81C7CCC: @ 81C7CCC
push {lr}
movs r0, 0
bl sub_81C763C
ldr r0, [r0, 0x18]
ldr r1, =SpriteCallbackDummy
str r1, [r0, 0x1C]
pop {r1}
bx r1
.pool
thumb_func_end sub_81C7CCC
thumb_func_start sub_81C7CE4
sub_81C7CE4: @ 81C7CE4
push {r4,lr}
movs r0, 0
bl sub_81C763C
ldr r2, [r0, 0x18]
movs r4, 0
movs r1, 0xDC
strh r1, [r2, 0x20]
ldr r2, [r0, 0x18]
movs r1, 0xC
strh r1, [r2, 0x22]
ldr r2, [r0, 0x18]
ldr r1, =sub_81C7CB4
str r1, [r2, 0x1C]
adds r2, 0x3E
ldrb r3, [r2]
movs r1, 0x5
negs r1, r1
ands r1, r3
strb r1, [r2]
ldr r3, [r0, 0x18]
ldrb r2, [r3, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
strb r1, [r3, 0x5]
ldr r0, [r0, 0x18]
adds r0, 0x43
strb r4, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7CE4
thumb_func_start sub_81C7D28
sub_81C7D28: @ 81C7D28
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r0, 0
bl sub_81C763C
adds r6, r0, 0
ldr r0, =gUnknown_0861FA64
bl LoadCompressedObjectPic
movs r0, 0x1
bl AllocSpritePalette
movs r0, 0x2
bl AllocSpritePalette
movs r5, 0
ldr r0, =gSprites
mov r8, r0
movs r7, 0x4
_081C7D50:
ldr r0, =gUnknown_0861FB2C
movs r1, 0
movs r2, 0
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
lsls r4, r5, 2
adds r2, r6, 0
adds r2, 0x1C
adds r2, r4
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r8
str r0, [r2]
adds r0, 0x3E
ldrb r1, [r0]
orrs r1, r7
strb r1, [r0]
ldr r1, [r2]
lsls r0, r5, 6
strh r0, [r1, 0x24]
ldr r0, =gUnknown_0861FB44
movs r1, 0
movs r2, 0
movs r3, 0x2
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
adds r2, r6, 0
adds r2, 0x24
adds r2, r4
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r8
str r0, [r2]
adds r0, 0x3E
ldrb r1, [r0]
orrs r1, r7
strb r1, [r0]
ldr r1, [r2]
lsls r0, r5, 5
strh r0, [r1, 0x24]
ldr r1, [r2]
movs r0, 0x12
strh r0, [r1, 0x26]
ldr r3, [r2]
ldrh r2, [r3, 0x4]
lsls r1, r2, 22
lsrs r1, 22
lsls r0, r5, 3
adds r0, 0x40
adds r1, r0
ldr r4, =0x000003ff
adds r0, r4, 0
ands r1, r0
ldr r4, =0xfffffc00
adds r0, r4, 0
ands r2, r0
orrs r2, r1
strh r2, [r3, 0x4]
adds r5, 0x1
cmp r5, 0x1
ble _081C7D50
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7D28
thumb_func_start sub_81C7DFC
sub_81C7DFC: @ 81C7DFC
push {lr}
cmp r0, 0x5
bhi _081C7E08
bl sub_81C7E58
b _081C7E0E
_081C7E08:
subs r0, 0x6
bl sub_81C7F24
_081C7E0E:
pop {r0}
bx r0
thumb_func_end sub_81C7DFC
thumb_func_start sub_81C7E14
sub_81C7E14: @ 81C7E14
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x4
bne _081C7E30
movs r0, 0x2
bl GetSpriteTileStartByTag
ldr r3, [r5, 0x20]
adds r0, 0x20
b _081C7E3A
_081C7E30:
movs r0, 0x2
bl GetSpriteTileStartByTag
ldr r3, [r5, 0x20]
adds r0, 0x40
_081C7E3A:
ldr r2, =0x000003ff
adds r1, r2, 0
ands r0, r1
ldrh r2, [r3, 0x4]
ldr r1, =0xfffffc00
ands r1, r2
orrs r1, r0
strh r1, [r3, 0x4]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7E14
thumb_func_start sub_81C7E58
sub_81C7E58: @ 81C7E58
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
mov r9, r0
cmp r0, 0x5
bhi _081C7F16
movs r0, 0
bl sub_81C763C
adds r7, r0, 0
ldr r0, =gUnknown_0861FA6C
mov r1, r9
lsls r6, r1, 3
adds r6, r0
ldrh r4, [r6, 0x6]
ldr r2, [r6]
mov r8, r2
mov r0, r8
bl GetDecompressedDataSize
adds r5, r0, 0
lsls r4, 5
ldr r0, =gPokenavLeftHeader_Pal
adds r4, r0
movs r0, 0x1
bl IndexOfSpritePaletteTag
adds r1, r0, 0
lsls r1, 24
lsrs r1, 4
movs r0, 0x80
lsls r0, 17
adds r1, r0
lsrs r1, 16
adds r0, r4, 0
movs r2, 0x20
bl LoadPalette
ldr r4, =gDecompressionBuffer
mov r0, r8
adds r1, r4, 0
bl LZ77UnCompWram
movs r0, 0x2
bl GetSpriteTileStartByTag
adds r1, r0, 0
lsls r1, 16
lsrs r1, 11
ldr r2, =0x06010000
adds r1, r2
lsls r5, 16
lsrs r5, 16
adds r0, r4, 0
adds r2, r5, 0
movs r3, 0x1
bl RequestDma3Copy
movs r0, 0x2
bl GetSpriteTileStartByTag
ldr r3, [r7, 0x20]
ldrh r1, [r6, 0x4]
adds r0, r1
ldr r2, =0x000003ff
adds r1, r2, 0
ands r0, r1
ldrh r2, [r3, 0x4]
ldr r1, =0xfffffc00
ands r1, r2
orrs r1, r0
strh r1, [r3, 0x4]
mov r0, r9
subs r0, 0x4
cmp r0, 0x1
bhi _081C7F10
ldr r1, [r7, 0x20]
movs r0, 0x38
b _081C7F14
.pool
_081C7F10:
ldr r1, [r7, 0x20]
movs r0, 0x40
_081C7F14:
strh r0, [r1, 0x24]
_081C7F16:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C7E58
thumb_func_start sub_81C7F24
sub_81C7F24: @ 81C7F24
push {r4-r6,lr}
cmp r0, 0x6
bhi _081C7F8A
ldr r2, =gUnknown_0861FA9C
lsls r1, r0, 3
adds r0, r2, 0x4
adds r0, r1, r0
ldr r4, [r0]
adds r1, r2
ldr r6, [r1]
adds r0, r6, 0
bl GetDecompressedDataSize
adds r5, r0, 0
lsls r4, 5
ldr r0, =gPokenavLeftHeader_Pal
adds r4, r0
movs r0, 0x2
bl IndexOfSpritePaletteTag
adds r1, r0, 0
lsls r1, 24
lsrs r1, 4
movs r0, 0x80
lsls r0, 17
adds r1, r0
lsrs r1, 16
adds r0, r4, 0
movs r2, 0x20
bl LoadPalette
ldr r4, =gDecompressionBuffer+0x1000
adds r0, r6, 0
adds r1, r4, 0
bl LZ77UnCompWram
movs r0, 0x2
bl GetSpriteTileStartByTag
adds r1, r0, 0
lsls r1, 16
lsrs r1, 11
ldr r0, =0x06010800
adds r1, r0
lsls r5, 16
lsrs r5, 16
adds r0, r4, 0
adds r2, r5, 0
movs r3, 0x1
bl RequestDma3Copy
_081C7F8A:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7F24
thumb_func_start sub_81C7FA0
sub_81C7FA0: @ 81C7FA0
push {lr}
adds r3, r0, 0
movs r0, 0x10
cmp r1, 0
bne _081C7FAC
movs r0, 0x30
_081C7FAC:
cmp r3, 0x5
bhi _081C7FB8
adds r1, r2, 0
bl sub_81C803C
b _081C7FBE
_081C7FB8:
adds r1, r2, 0
bl sub_81C8088
_081C7FBE:
pop {r0}
bx r0
thumb_func_end sub_81C7FA0
thumb_func_start sub_81C7FC4
sub_81C7FC4: @ 81C7FC4
push {lr}
cmp r0, 0x5
bhi _081C7FD2
adds r0, r1, 0
bl sub_81C80D4
b _081C7FD8
_081C7FD2:
adds r0, r1, 0
bl sub_81C8110
_081C7FD8:
pop {r0}
bx r0
thumb_func_end sub_81C7FC4
thumb_func_start sub_81C7FDC
sub_81C7FDC: @ 81C7FDC
push {r4,lr}
movs r0, 0
bl sub_81C763C
movs r4, 0x4
adds r2, r0, 0
adds r2, 0x1C
movs r3, 0x1
_081C7FEC:
ldr r1, [r2]
adds r1, 0x3E
ldrb r0, [r1]
orrs r0, r4
strb r0, [r1]
ldr r1, [r2, 0x8]
adds r1, 0x3E
ldrb r0, [r1]
orrs r0, r4
strb r0, [r1]
adds r2, 0x4
subs r3, 0x1
cmp r3, 0
bge _081C7FEC
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C7FDC
thumb_func_start sub_81C8010
sub_81C8010: @ 81C8010
push {lr}
movs r0, 0
bl sub_81C763C
adds r1, r0, 0
ldr r0, [r1, 0x1C]
ldr r2, [r0, 0x1C]
ldr r0, =SpriteCallbackDummy
cmp r2, r0
bne _081C8034
ldr r0, [r1, 0x24]
ldr r0, [r0, 0x1C]
cmp r0, r2
bne _081C8034
movs r0, 0
b _081C8036
.pool
_081C8034:
movs r0, 0x1
_081C8036:
pop {r1}
bx r1
thumb_func_end sub_81C8010
thumb_func_start sub_81C803C
sub_81C803C: @ 81C803C
push {r4-r7,lr}
mov r7, r8
push {r7}
mov r8, r0
adds r4, r1, 0
movs r0, 0
bl sub_81C763C
cmp r4, 0
bne _081C8058
movs r7, 0x60
negs r7, r7
movs r6, 0x20
b _081C805E
_081C8058:
movs r7, 0x80
lsls r7, 1
movs r6, 0xA0
_081C805E:
adds r4, r0, 0
adds r4, 0x1C
movs r5, 0x1
_081C8064:
ldr r0, [r4]
mov r1, r8
strh r1, [r0, 0x22]
ldm r4!, {r0}
adds r1, r7, 0
adds r2, r6, 0
movs r3, 0xC
bl sub_81C814C
subs r5, 0x1
cmp r5, 0
bge _081C8064
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C803C
thumb_func_start sub_81C8088
sub_81C8088: @ 81C8088
push {r4-r7,lr}
mov r7, r8
push {r7}
mov r8, r0
adds r4, r1, 0
movs r0, 0
bl sub_81C763C
cmp r4, 0
bne _081C80A4
movs r7, 0x60
negs r7, r7
movs r6, 0x10
b _081C80AA
_081C80A4:
movs r7, 0x80
lsls r7, 1
movs r6, 0xC0
_081C80AA:
adds r4, r0, 0
adds r4, 0x24
movs r5, 0x1
_081C80B0:
ldr r0, [r4]
mov r1, r8
strh r1, [r0, 0x22]
ldm r4!, {r0}
adds r1, r7, 0
adds r2, r6, 0
movs r3, 0xC
bl sub_81C814C
subs r5, 0x1
cmp r5, 0
bge _081C80B0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C8088
thumb_func_start sub_81C80D4
sub_81C80D4: @ 81C80D4
push {r4-r7,lr}
adds r4, r0, 0
movs r0, 0
bl sub_81C763C
cmp r4, 0
bne _081C80EA
movs r6, 0x20
movs r5, 0x60
negs r5, r5
b _081C80F0
_081C80EA:
movs r6, 0xC0
movs r5, 0x80
lsls r5, 1
_081C80F0:
adds r7, r0, 0
adds r7, 0x1C
movs r4, 0x1
_081C80F6:
ldm r7!, {r0}
adds r1, r6, 0
adds r2, r5, 0
movs r3, 0xC
bl sub_81C814C
subs r4, 0x1
cmp r4, 0
bge _081C80F6
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C80D4
thumb_func_start sub_81C8110
sub_81C8110: @ 81C8110
push {r4-r7,lr}
adds r4, r0, 0
movs r0, 0
bl sub_81C763C
cmp r4, 0
bne _081C8126
movs r6, 0x10
movs r5, 0x60
negs r5, r5
b _081C812C
_081C8126:
movs r6, 0xC0
movs r5, 0x80
lsls r5, 1
_081C812C:
adds r7, r0, 0
adds r7, 0x24
movs r4, 0x1
_081C8132:
ldm r7!, {r0}
adds r1, r6, 0
adds r2, r5, 0
movs r3, 0xC
bl sub_81C814C
subs r4, 0x1
cmp r4, 0
bge _081C8132
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C8110
thumb_func_start sub_81C814C
sub_81C814C: @ 81C814C
push {r4-r6,lr}
adds r4, r0, 0
adds r0, r1, 0
adds r6, r2, 0
adds r5, r3, 0
strh r0, [r4, 0x20]
lsls r1, r0, 4
strh r1, [r4, 0x2E]
subs r0, r6, r0
lsls r0, 4
adds r1, r5, 0
bl __divsi3
strh r0, [r4, 0x30]
strh r5, [r4, 0x32]
strh r6, [r4, 0x3C]
ldr r0, =sub_81C817C
str r0, [r4, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C814C
thumb_func_start sub_81C817C
sub_81C817C: @ 81C817C
push {lr}
adds r2, r0, 0
ldrh r1, [r2, 0x32]
movs r3, 0x32
ldrsh r0, [r2, r3]
cmp r0, 0
beq _081C81C4
subs r0, r1, 0x1
strh r0, [r2, 0x32]
ldrh r0, [r2, 0x30]
ldrh r1, [r2, 0x2E]
adds r0, r1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 20
strh r0, [r2, 0x20]
adds r0, 0x10
lsls r0, 16
movs r1, 0x88
lsls r1, 17
cmp r0, r1
bls _081C81B6
adds r0, r2, 0
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
b _081C81CC
_081C81B6:
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
b _081C81CC
_081C81C4:
ldrh r0, [r2, 0x3C]
strh r0, [r2, 0x20]
ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_081C81CC:
pop {r0}
bx r0
.pool
thumb_func_end sub_81C817C
thumb_func_start sub_81C81D4
sub_81C81D4: @ 81C81D4
push {r4-r7,lr}
adds r6, r0, 0
adds r5, r1, 0
adds r7, r2, 0
ldr r1, =0x000008a4
movs r0, 0x11
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081C821C
ldr r1, =0x00000888
adds r0, r4, r1
adds r1, r5, 0
bl sub_81C9160
adds r0, r4, 0
adds r1, r6, 0
adds r2, r5, 0
adds r3, r7, 0
bl sub_81C91AC
cmp r0, 0
beq _081C821C
ldr r0, =sub_81C8254
movs r1, 0x6
bl sub_81C7078
movs r0, 0x1
b _081C821E
.pool
_081C821C:
movs r0, 0
_081C821E:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81C81D4
thumb_func_start sub_81C8224
sub_81C8224: @ 81C8224
push {lr}
ldr r0, =sub_81C8254
bl sub_81C7124
pop {r1}
bx r1
.pool
thumb_func_end sub_81C8224
thumb_func_start sub_81C8234
sub_81C8234: @ 81C8234
push {r4,lr}
movs r0, 0x11
bl sub_81C763C
adds r4, r0, 0
bl sub_81C8FE0
ldrb r0, [r4, 0x8]
bl RemoveWindow
movs r0, 0x11
bl sub_81C7650
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C8234
thumb_func_start sub_81C8254
sub_81C8254: @ 81C8254
push {r4,lr}
adds r4, r0, 0
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _081C82C0
movs r0, 0x11
bl sub_81C763C
adds r2, r0, 0
cmp r4, 0x4
bhi _081C82D6
lsls r0, r4, 2
ldr r1, =_081C827C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C827C:
.4byte _081C8290
.4byte _081C829A
.4byte _081C82A4
.4byte _081C82B8
.4byte _081C82CC
_081C8290:
adds r0, r2, 0
bl sub_81C82E4
movs r0, 0
b _081C82D8
_081C829A:
adds r0, r2, 0
bl sub_81C835C
movs r0, 0
b _081C82D8
_081C82A4:
ldr r1, =0x00000888
adds r0, r2, r1
adds r1, r2, 0
bl sub_81C837C
movs r0, 0
b _081C82D8
.pool
_081C82B8:
bl sub_81C83E0
cmp r0, 0
beq _081C82C4
_081C82C0:
movs r0, 0x2
b _081C82D8
_081C82C4:
bl sub_81C8ED0
movs r0, 0x1
b _081C82D8
_081C82CC:
ldr r1, =0x00000888
adds r0, r2, r1
adds r1, r2, 0
bl sub_81C8EF8
_081C82D6:
movs r0, 0x4
_081C82D8:
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81C8254
thumb_func_start sub_81C82E4
sub_81C82E4: @ 81C82E4
push {r4,r5,lr}
sub sp, 0x8
adds r5, r0, 0
ldrb r4, [r5, 0x1]
lsls r4, 12
ldrh r0, [r5, 0x6]
orrs r4, r0
lsls r4, 16
lsrs r4, 16
ldrb r0, [r5]
ldrh r2, [r5, 0x6]
movs r1, 0x11
movs r3, 0x1
bl sub_8199DF0
ldrb r0, [r5]
ldrh r2, [r5, 0x6]
adds r2, 0x1
movs r1, 0x44
movs r3, 0x1
bl sub_8199DF0
ldrb r0, [r5]
adds r1, r5, 0
adds r1, 0x88
bl SetBgTilemapBuffer
ldrb r0, [r5]
movs r1, 0x20
str r1, [sp]
str r1, [sp, 0x4]
adds r1, r4, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
ldrb r0, [r5]
movs r1, 0
movs r2, 0
bl ChangeBgY
ldrb r0, [r5]
movs r1, 0
movs r2, 0
bl ChangeBgX
ldrb r0, [r5]
ldrb r1, [r5, 0x3]
lsls r1, 11
movs r2, 0x2
bl ChangeBgY
ldrb r0, [r5]
bl CopyBgTilemapBufferToVram
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C82E4
thumb_func_start sub_81C835C
sub_81C835C: @ 81C835C
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4, 0x8]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r4, 0x8]
bl PutWindowTilemap
ldrb r0, [r4, 0x8]
movs r1, 0x1
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C835C
thumb_func_start sub_81C837C
sub_81C837C: @ 81C837C
push {r4,r5,lr}
sub sp, 0x8
adds r3, r0, 0
adds r5, r1, 0
ldrh r0, [r3, 0x2]
ldrh r4, [r3]
subs r2, r0, r4
ldrh r0, [r3, 0x8]
cmp r2, r0
ble _081C8392
adds r2, r0, 0
_081C8392:
ldr r0, [r3, 0x10]
ldr r3, [r3, 0xC]
movs r1, 0
str r1, [sp]
str r5, [sp, 0x4]
adds r1, r4, 0
bl sub_81C83AC
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C837C
thumb_func_start sub_81C83AC
sub_81C83AC: @ 81C83AC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldr r1, [sp, 0x10]
cmp r2, 0
beq _081C83D6
adds r0, r5, 0
muls r0, r3
adds r0, r4, r0
str r0, [r1, 0x1C]
str r3, [r1, 0x18]
movs r0, 0
strh r0, [r1, 0xC]
strh r2, [r1, 0xE]
str r5, [r1, 0x14]
ldr r0, [sp, 0xC]
str r0, [r1, 0x10]
ldr r0, =sub_81C83F0
movs r1, 0x5
bl sub_81C7078
_081C83D6:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C83AC
thumb_func_start sub_81C83E0
sub_81C83E0: @ 81C83E0
push {lr}
ldr r0, =sub_81C83F0
bl sub_81C7124
pop {r1}
bx r1
.pool
thumb_func_end sub_81C83E0
thumb_func_start sub_81C83F0
sub_81C83F0: @ 81C83F0
push {r4-r7,lr}
sub sp, 0xC
adds r6, r0, 0
movs r0, 0x11
bl sub_81C763C
adds r4, r0, 0
cmp r6, 0
beq _081C8408
cmp r6, 0x1
beq _081C848C
b _081C849A
_081C8408:
ldrh r0, [r4, 0xA]
ldrh r1, [r4, 0xC]
adds r0, r1
ldr r1, [r4, 0x10]
adds r5, r0, r1
movs r0, 0xF
ands r5, r0
ldr r0, [r4, 0x1C]
adds r7, r4, 0
adds r7, 0x48
ldr r2, [r4, 0x34]
adds r1, r7, 0
bl _call_via_r2
ldr r3, [r4, 0x38]
cmp r3, 0
beq _081C8434
ldrh r0, [r4, 0x8]
ldr r1, [r4, 0x14]
adds r2, r5, 0
bl _call_via_r3
_081C8434:
ldrb r0, [r4, 0x8]
ldrb r1, [r4, 0x5]
lsls r2, r5, 4
movs r3, 0x1
orrs r2, r3
str r2, [sp]
movs r2, 0xFF
str r2, [sp, 0x4]
str r6, [sp, 0x8]
adds r2, r7, 0
movs r3, 0x8
bl AddTextPrinterParameterized
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
lsrs r0, 16
ldrh r1, [r4, 0xE]
cmp r0, r1
bcc _081C847A
ldr r0, [r4, 0x38]
cmp r0, 0
beq _081C846E
ldrb r0, [r4, 0x8]
movs r1, 0x3
bl CopyWindowToVram
b _081C8476
_081C846E:
ldrb r0, [r4, 0x8]
movs r1, 0x2
bl CopyWindowToVram
_081C8476:
movs r0, 0
b _081C849C
_081C847A:
ldr r0, [r4, 0x1C]
ldr r1, [r4, 0x18]
adds r0, r1
str r0, [r4, 0x1C]
ldr r0, [r4, 0x14]
adds r0, 0x1
str r0, [r4, 0x14]
movs r0, 0x3
b _081C849C
_081C848C:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081C849A
movs r0, 0x2
b _081C849C
_081C849A:
movs r0, 0x4
_081C849C:
add sp, 0xC
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81C83F0
thumb_func_start sub_81C84A4
sub_81C84A4: @ 81C84A4
push {lr}
movs r0, 0x11
bl sub_81C763C
ldr r1, =0x00000888
adds r0, r1
ldrh r1, [r0]
negs r0, r1
orrs r0, r1
lsrs r0, 31
pop {r1}
bx r1
.pool
thumb_func_end sub_81C84A4
thumb_func_start sub_81C84C0
sub_81C84C0: @ 81C84C0
push {lr}
movs r0, 0x11
bl sub_81C763C
ldr r1, =0x00000888
adds r0, r1
movs r3, 0
ldrh r1, [r0]
ldrh r2, [r0, 0x8]
adds r1, r2
ldrh r0, [r0, 0x2]
cmp r1, r0
bge _081C84DC
movs r3, 0x1
_081C84DC:
adds r0, r3, 0
pop {r1}
bx r1
.pool
thumb_func_end sub_81C84C0
thumb_func_start sub_81C84E8
sub_81C84E8: @ 81C84E8
push {r4-r7,lr}
sub sp, 0x8
adds r6, r0, 0
adds r4, r1, 0
movs r0, 0x11
bl sub_81C763C
adds r7, r0, 0
ldr r0, =0x00000888
adds r5, r7, r0
cmp r6, 0
bge _081C8524
ldrh r1, [r5]
adds r0, r1, r6
cmp r0, 0
bge _081C850A
negs r6, r1
_081C850A:
cmp r4, 0
beq _081C854E
ldr r0, [r5, 0x10]
adds r1, r6
negs r2, r6
ldr r3, [r5, 0xC]
str r6, [sp]
str r7, [sp, 0x4]
bl sub_81C83AC
b _081C854E
.pool
_081C8524:
cmp r4, 0
beq _081C854E
ldr r2, =gUnknown_0203CF44
ldrh r1, [r5]
ldrh r0, [r5, 0x8]
adds r4, r1, r0
str r4, [r2]
adds r0, r4, r6
ldrh r1, [r5, 0x2]
cmp r0, r1
blt _081C853C
subs r6, r1, r4
_081C853C:
ldr r0, [r5, 0x10]
ldr r3, [r5, 0xC]
ldrh r1, [r5, 0x8]
str r1, [sp]
str r7, [sp, 0x4]
adds r1, r4, 0
adds r2, r6, 0
bl sub_81C83AC
_081C854E:
adds r0, r6, 0
adds r1, r7, 0
bl sub_81C8568
ldrh r0, [r5]
adds r0, r6
strh r0, [r5]
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C84E8
thumb_func_start sub_81C8568
sub_81C8568: @ 81C8568
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
ldrb r0, [r4]
bl GetBgY
str r0, [r4, 0x20]
lsls r1, r5, 12
adds r0, r1
str r0, [r4, 0x24]
cmp r5, 0
ble _081C8584
movs r0, 0x1
b _081C8586
_081C8584:
movs r0, 0x2
_081C8586:
str r0, [r4, 0x30]
str r5, [r4, 0x2C]
ldr r0, =sub_81C85A0
movs r1, 0x6
bl sub_81C7078
str r0, [r4, 0x28]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C8568
thumb_func_start sub_81C85A0
sub_81C85A0: @ 81C85A0
push {r4-r6,lr}
adds r5, r0, 0
movs r0, 0x11
bl sub_81C763C
adds r4, r0, 0
cmp r5, 0
beq _081C85B8
cmp r5, 0x1
beq _081C85C4
movs r0, 0x4
b _081C862A
_081C85B8:
bl sub_81C83E0
cmp r0, 0
bne _081C8628
movs r0, 0x1
b _081C862A
_081C85C4:
movs r6, 0
ldrb r0, [r4]
bl GetBgY
adds r5, r0, 0
ldrb r0, [r4]
movs r1, 0x80
lsls r1, 5
ldr r2, [r4, 0x30]
lsls r2, 24
lsrs r2, 24
bl ChangeBgY
adds r1, r0, 0
ldr r0, [r4, 0x30]
cmp r0, 0x2
bne _081C85F8
ldr r2, [r4, 0x24]
cmp r5, r2
bgt _081C85F2
ldr r0, [r4, 0x20]
cmp r5, r0
bgt _081C860A
_081C85F2:
cmp r1, r2
bgt _081C860A
b _081C860E
_081C85F8:
ldr r2, [r4, 0x24]
cmp r5, r2
blt _081C8604
ldr r0, [r4, 0x20]
cmp r5, r0
blt _081C860A
_081C8604:
cmp r1, r2
blt _081C860A
movs r6, 0x1
_081C860A:
cmp r6, 0
beq _081C8628
_081C860E:
ldr r1, [r4, 0x2C]
ldrh r0, [r4, 0xA]
adds r0, r1
movs r1, 0xF
ands r0, r1
strh r0, [r4, 0xA]
ldrb r0, [r4]
adds r1, r2, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x4
b _081C862A
_081C8628:
movs r0, 0x2
_081C862A:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81C85A0
thumb_func_start sub_81C8630
sub_81C8630: @ 81C8630
push {lr}
movs r0, 0x11
bl sub_81C763C
ldr r0, [r0, 0x28]
bl sub_81C70D8
pop {r1}
bx r1
thumb_func_end sub_81C8630
thumb_func_start sub_81C8644
sub_81C8644: @ 81C8644
push {lr}
movs r0, 0x11
bl sub_81C763C
ldr r1, =0x00000888
adds r0, r1
pop {r1}
bx r1
.pool
thumb_func_end sub_81C8644
thumb_func_start sub_81C8658
sub_81C8658: @ 81C8658
push {lr}
bl sub_81C8644
adds r1, r0, 0
ldrh r0, [r1, 0x6]
cmp r0, 0
beq _081C866E
subs r0, 0x1
strh r0, [r1, 0x6]
movs r0, 0x1
b _081C8686
_081C866E:
bl sub_81C84A4
cmp r0, 0
bne _081C867A
movs r0, 0
b _081C8686
_081C867A:
movs r0, 0x1
negs r0, r0
movs r1, 0x1
bl sub_81C84E8
movs r0, 0x2
_081C8686:
pop {r1}
bx r1
thumb_func_end sub_81C8658
thumb_func_start sub_81C868C
sub_81C868C: @ 81C868C
push {lr}
bl sub_81C8644
adds r2, r0, 0
ldrh r1, [r2]
ldrh r3, [r2, 0x6]
adds r1, r3
ldrh r0, [r2, 0x2]
subs r0, 0x1
cmp r1, r0
bge _081C86BA
ldrh r0, [r2, 0x8]
subs r0, 0x1
cmp r3, r0
bge _081C86B2
adds r0, r3, 0x1
strh r0, [r2, 0x6]
movs r0, 0x1
b _081C86C8
_081C86B2:
bl sub_81C84C0
cmp r0, 0
bne _081C86BE
_081C86BA:
movs r0, 0
b _081C86C8
_081C86BE:
movs r0, 0x1
movs r1, 0x1
bl sub_81C84E8
movs r0, 0x2
_081C86C8:
pop {r1}
bx r1
thumb_func_end sub_81C868C
thumb_func_start sub_81C86CC
sub_81C86CC: @ 81C86CC
push {r4,lr}
bl sub_81C8644
adds r4, r0, 0
bl sub_81C84A4
adds r1, r0, 0
cmp r1, 0
beq _081C86F8
ldrh r0, [r4]
ldrh r1, [r4, 0x8]
cmp r0, r1
bcc _081C86EA
ldrh r0, [r4, 0x8]
b _081C86EC
_081C86EA:
ldrh r0, [r4]
_081C86EC:
negs r0, r0
movs r1, 0x1
bl sub_81C84E8
movs r0, 0x2
b _081C8706
_081C86F8:
ldrh r0, [r4, 0x6]
cmp r0, 0
bne _081C8702
movs r0, 0
b _081C8706
_081C8702:
strh r1, [r4, 0x6]
movs r0, 0x1
_081C8706:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C86CC
thumb_func_start sub_81C870C
sub_81C870C: @ 81C870C
push {r4,lr}
bl sub_81C8644
adds r4, r0, 0
bl sub_81C84C0
cmp r0, 0
beq _081C8736
ldrh r0, [r4]
ldrh r3, [r4, 0x8]
adds r2, r0, r3
ldrh r1, [r4, 0x4]
subs r0, r1, r0
cmp r2, r1
bgt _081C872C
adds r0, r3, 0
_081C872C:
movs r1, 0x1
bl sub_81C84E8
movs r0, 0x2
b _081C8756
_081C8736:
ldrh r0, [r4, 0x2]
ldrh r1, [r4, 0x8]
cmp r0, r1
bcc _081C8744
ldrh r1, [r4, 0x6]
ldrh r0, [r4, 0x8]
b _081C8748
_081C8744:
ldrh r1, [r4, 0x6]
ldrh r0, [r4, 0x2]
_081C8748:
subs r0, 0x1
cmp r1, r0
bge _081C8754
strh r0, [r4, 0x6]
movs r0, 0x1
b _081C8756
_081C8754:
movs r0, 0
_081C8756:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C870C
thumb_func_start sub_81C875C
sub_81C875C: @ 81C875C
push {lr}
bl sub_81C8644
adds r1, r0, 0
ldrh r0, [r1]
ldrh r1, [r1, 0x6]
adds r0, r1
pop {r1}
bx r1
thumb_func_end sub_81C875C
thumb_func_start sub_81C8770
sub_81C8770: @ 81C8770
push {lr}
bl sub_81C8644
ldrh r0, [r0]
pop {r1}
bx r1
thumb_func_end sub_81C8770
thumb_func_start sub_81C877C
sub_81C877C: @ 81C877C
push {r4,lr}
movs r0, 0x11
bl sub_81C763C
adds r4, r0, 0
ldr r0, =0x0000089c
adds r1, r4, r0
movs r0, 0
str r0, [r1]
ldr r0, =sub_81C8870
movs r1, 0x6
bl sub_81C7078
movs r1, 0x8A
lsls r1, 4
adds r4, r1
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C877C
thumb_func_start sub_81C87AC
sub_81C87AC: @ 81C87AC
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
movs r0, 0x11
bl sub_81C763C
adds r5, r0, 0
ldr r0, =0x00000888
adds r1, r5, r0
ldrh r0, [r1]
adds r0, r4
movs r2, 0
strh r0, [r1]
ldr r1, =0x0000089c
adds r0, r5, r1
str r2, [r0]
ldr r0, =sub_81C8958
movs r1, 0x6
bl sub_81C7078
movs r1, 0x8A
lsls r1, 4
adds r5, r1
str r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C87AC
thumb_func_start sub_81C87F0
sub_81C87F0: @ 81C87F0
push {r4,lr}
movs r0, 0x11
bl sub_81C763C
adds r4, r0, 0
ldr r0, =0x0000089c
adds r1, r4, r0
movs r0, 0
str r0, [r1]
ldr r0, =sub_81C8A28
movs r1, 0x6
bl sub_81C7078
movs r1, 0x8A
lsls r1, 4
adds r4, r1
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C87F0
thumb_func_start sub_81C8820
sub_81C8820: @ 81C8820
push {lr}
movs r0, 0x11
bl sub_81C763C
movs r1, 0x8A
lsls r1, 4
adds r0, r1
ldr r0, [r0]
bl sub_81C70D8
pop {r1}
bx r1
thumb_func_end sub_81C8820
thumb_func_start sub_81C8838
sub_81C8838: @ 81C8838
push {r4,lr}
movs r0, 0x11
bl sub_81C763C
adds r4, r0, 0
ldr r0, =0x00000888
adds r2, r4, r0
ldrh r0, [r4, 0x8]
ldrh r1, [r2]
ldrh r3, [r2, 0x6]
adds r1, r3
ldrh r2, [r4, 0xA]
adds r2, r3
movs r3, 0xF
ands r2, r3
ldr r3, [r4, 0x38]
bl _call_via_r3
ldrb r0, [r4, 0x8]
movs r1, 0x1
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C8838
thumb_func_start sub_81C8870
sub_81C8870: @ 81C8870
push {r4,r5,lr}
adds r5, r0, 0
movs r0, 0x11
bl sub_81C763C
adds r4, r0, 0
cmp r5, 0x4
bhi _081C894C
lsls r0, r5, 2
ldr r1, =_081C8890
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C8890:
.4byte _081C88A4
.4byte _081C88AC
.4byte _081C88D8
.4byte _081C8918
.4byte _081C8938
_081C88A4:
adds r0, r4, 0
movs r1, 0x1
bl sub_81C9008
_081C88AC:
ldr r0, =0x0000089c
adds r5, r4, r0
ldr r1, =0x0000088e
adds r0, r4, r1
ldr r1, [r5]
ldrh r0, [r0]
cmp r1, r0
beq _081C88C4
adds r0, r4, 0
movs r2, 0x1
bl sub_81C8B70
_081C88C4:
ldr r0, [r5]
adds r0, 0x1
str r0, [r5]
_081C88CA:
movs r0, 0
b _081C894E
.pool
_081C88D8:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _081C8942
ldr r2, =0x0000089c
adds r0, r4, r2
subs r2, 0xC
adds r1, r4, r2
ldr r3, [r0]
ldrh r1, [r1]
cmp r3, r1
beq _081C88FC
movs r0, 0x6
b _081C894E
.pool
_081C88FC:
ldr r0, =0x0000088e
adds r1, r4, r0
ldrh r0, [r1]
cmp r0, 0
beq _081C88CA
adds r2, r0, 0
adds r0, r4, 0
adds r1, r3, 0
bl sub_81C8B70
b _081C88CA
.pool
_081C8918:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _081C8942
ldr r2, =0x0000088e
adds r1, r4, r2
ldrh r0, [r1]
cmp r0, 0
beq _081C894C
movs r1, 0
bl sub_81C84E8
b _081C88CA
.pool
_081C8938:
bl sub_81C8630
adds r1, r0, 0
cmp r1, 0
beq _081C8946
_081C8942:
movs r0, 0x2
b _081C894E
_081C8946:
ldr r2, =0x0000088e
adds r0, r4, r2
strh r1, [r0]
_081C894C:
movs r0, 0x4
_081C894E:
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_81C8870
thumb_func_start sub_81C8958
sub_81C8958: @ 81C8958
push {r4,r5,lr}
adds r5, r0, 0
movs r0, 0x11
bl sub_81C763C
adds r4, r0, 0
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081C8972
movs r0, 0x2
b _081C8A22
_081C8972:
cmp r5, 0x7
bhi _081C8A1C
lsls r0, r5, 2
ldr r1, =_081C8984
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C8984:
.4byte _081C89A4
.4byte _081C89B4
.4byte _081C89BE
.4byte _081C89D0
.4byte _081C89DA
.4byte _081C89EC
.4byte _081C89F6
.4byte _081C8A08
_081C89A4:
ldr r1, =0x00000888
adds r0, r4, r1
adds r1, r4, 0
bl sub_81C8CB4
b _081C8A20
.pool
_081C89B4:
adds r0, r4, 0
movs r1, 0
bl sub_81C8DBC
b _081C8A20
_081C89BE:
ldr r1, =0x00000888
adds r0, r4, r1
adds r1, r4, 0
movs r2, 0
bl sub_81C8E54
b _081C8A20
.pool
_081C89D0:
adds r0, r4, 0
movs r1, 0x1
bl sub_81C8DBC
b _081C8A20
_081C89DA:
ldr r1, =0x00000888
adds r0, r4, r1
adds r1, r4, 0
movs r2, 0x1
bl sub_81C8E54
b _081C8A20
.pool
_081C89EC:
adds r0, r4, 0
movs r1, 0x2
bl sub_81C8DBC
b _081C8A20
_081C89F6:
ldr r1, =0x00000888
adds r0, r4, r1
adds r1, r4, 0
movs r2, 0x2
bl sub_81C8E54
b _081C8A20
.pool
_081C8A08:
ldr r1, =0x00000888
adds r0, r4, r1
adds r1, r4, 0
movs r2, 0x3
bl sub_81C8E54
b _081C8A20
.pool
_081C8A1C:
movs r0, 0x4
b _081C8A22
_081C8A20:
movs r0, 0
_081C8A22:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81C8958
thumb_func_start sub_81C8A28
sub_81C8A28: @ 81C8A28
push {r4-r7,lr}
sub sp, 0x8
adds r5, r0, 0
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _081C8AA6
movs r0, 0x11
bl sub_81C763C
adds r4, r0, 0
ldr r0, =0x00000888
adds r6, r4, r0
adds r2, r4, 0
cmp r5, 0x6
bls _081C8A4C
b _081C8B64
_081C8A4C:
lsls r0, r5, 2
ldr r1, =_081C8A60
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C8A60:
.4byte _081C8A7C
.4byte _081C8A88
.4byte _081C8AE8
.4byte _081C8AFC
.4byte _081C8B14
.4byte _081C8B34
.4byte _081C8B5C
_081C8A7C:
adds r0, r6, 0
adds r1, r2, 0
bl sub_81C8D4C
movs r0, 0
b _081C8B66
_081C8A88:
ldr r1, =0x0000089c
adds r7, r4, r1
ldr r0, [r7]
adds r1, r0, 0x1
str r1, [r7]
movs r3, 0x89
lsls r3, 4
adds r0, r4, r3
ldrh r0, [r0]
cmp r1, r0
bge _081C8AB0
adds r0, r2, 0
movs r2, 0x1
bl sub_81C8B70
_081C8AA6:
movs r0, 0x2
b _081C8B66
.pool
_081C8AB0:
movs r0, 0
str r0, [r7]
ldrh r0, [r6, 0x2]
ldrh r1, [r6, 0x8]
cmp r0, r1
bhi _081C8AC6
ldrh r0, [r6]
cmp r0, 0
beq _081C8B52
adds r4, r0, 0
b _081C8AD4
_081C8AC6:
ldrh r1, [r6]
ldrh r0, [r6, 0x8]
adds r4, r1, r0
ldrh r1, [r6, 0x2]
cmp r4, r1
ble _081C8B52
subs r4, r1
_081C8AD4:
negs r5, r4
adds r0, r2, 0
adds r1, r5, 0
adds r2, r4, 0
bl sub_81C8B70
strh r4, [r6, 0x6]
str r5, [r7]
movs r0, 0
b _081C8B66
_081C8AE8:
ldr r2, =0x0000089c
adds r0, r4, r2
ldr r0, [r0]
movs r1, 0
bl sub_81C84E8
movs r0, 0
b _081C8B66
.pool
_081C8AFC:
bl sub_81C8630
adds r1, r0, 0
cmp r1, 0
bne _081C8AA6
ldr r3, =0x0000089c
adds r0, r4, r3
str r1, [r0]
_081C8B0C:
movs r0, 0x1
b _081C8B66
.pool
_081C8B14:
ldr r0, [r6, 0x10]
ldrh r1, [r6]
ldr r3, =0x0000089c
adds r2, r4, r3
ldr r2, [r2]
adds r1, r2
ldr r3, [r6, 0xC]
str r2, [sp]
str r4, [sp, 0x4]
movs r2, 0x1
bl sub_81C83AC
movs r0, 0
b _081C8B66
.pool
_081C8B34:
bl sub_81C83E0
cmp r0, 0
bne _081C8AA6
ldr r0, =0x0000089c
adds r1, r4, r0
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
ldrh r1, [r6, 0x2]
cmp r0, r1
bge _081C8B0C
ldrh r6, [r6, 0x8]
cmp r0, r6
bge _081C8B0C
_081C8B52:
movs r0, 0x9
b _081C8B66
.pool
_081C8B5C:
adds r0, r2, 0
movs r1, 0
bl sub_81C9008
_081C8B64:
movs r0, 0x4
_081C8B66:
add sp, 0x8
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81C8A28
thumb_func_start sub_81C8B70
sub_81C8B70: @ 81C8B70
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
mov r9, r0
adds r7, r1, 0
adds r6, r2, 0
ldrb r0, [r0, 0x8]
movs r1, 0x7
bl GetWindowAttribute
mov r10, r0
mov r1, r9
ldrb r0, [r1, 0x4]
lsls r3, r0, 6
ldrh r0, [r1, 0xA]
adds r7, r0, r7
movs r0, 0xF
ands r7, r0
adds r0, r7, r6
cmp r0, 0x10
bgt _081C8BD4
ldr r0, =0x11111111
str r0, [sp]
adds r1, r7, 0
muls r1, r3
add r1, r10
adds r2, r6, 0
muls r2, r3
lsrs r2, 2
ldr r0, =0x001fffff
ands r2, r0
movs r0, 0x80
lsls r0, 17
orrs r2, r0
mov r0, sp
bl CpuFastSet
mov r1, r9
ldrb r0, [r1, 0x8]
movs r1, 0x2
bl CopyWindowToVram
b _081C8C1E
.pool
_081C8BD4:
movs r2, 0x10
subs r2, r7
subs r0, r6, r2
mov r8, r0
ldr r1, =0x11111111
str r1, [sp, 0x4]
add r0, sp, 0x4
adds r1, r7, 0
muls r1, r3
add r1, r10
muls r2, r3
lsrs r2, 2
ldr r5, =0x001fffff
ands r2, r5
movs r4, 0x80
lsls r4, 17
orrs r2, r4
str r3, [sp, 0xC]
bl CpuFastSet
ldr r0, =0x11111111
str r0, [sp, 0x8]
add r0, sp, 0x8
ldr r3, [sp, 0xC]
mov r2, r8
muls r2, r3
lsrs r2, 2
ands r2, r5
orrs r2, r4
mov r1, r10
bl CpuFastSet
mov r1, r9
ldrb r0, [r1, 0x8]
movs r1, 0x2
bl CopyWindowToVram
_081C8C1E:
subs r6, 0x1
movs r0, 0x1
negs r0, r0
cmp r6, r0
beq _081C8C40
movs r5, 0xF
adds r4, r0, 0
_081C8C2C:
mov r1, r9
ldrh r0, [r1, 0x8]
adds r1, r7, 0
bl sub_81CBD48
adds r7, 0x1
ands r7, r5
subs r6, 0x1
cmp r6, r4
bne _081C8C2C
_081C8C40:
mov r1, r9
ldrb r0, [r1, 0x8]
movs r1, 0x1
bl CopyWindowToVram
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C8B70
thumb_func_start sub_81C8C64
sub_81C8C64: @ 81C8C64
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
ldrb r0, [r5, 0x8]
movs r1, 0
bl GetWindowAttribute
lsls r0, 24
lsrs r0, 24
bl GetBgTilemapBuffer
adds r2, r0, 0
ldrh r0, [r5, 0xA]
lsls r0, 6
ldrb r1, [r5, 0x2]
adds r0, r1
lsls r0, 1
subs r0, 0x2
adds r2, r0
cmp r4, 0
beq _081C8C98
ldrb r0, [r5, 0x1]
lsls r0, 12
ldrh r1, [r5, 0x6]
adds r1, 0x1
b _081C8C9E
_081C8C98:
ldrb r0, [r5, 0x1]
lsls r0, 12
ldrh r1, [r5, 0x6]
_081C8C9E:
orrs r0, r1
lsls r0, 16
lsrs r1, r0, 16
strh r1, [r2]
adds r0, r2, 0
adds r0, 0x40
strh r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C8C64
thumb_func_start sub_81C8CB4
sub_81C8CB4: @ 81C8CB4
push {r4-r6,lr}
sub sp, 0x10
adds r5, r0, 0
adds r4, r1, 0
ldr r1, =gUnknown_0861FBE4
add r0, sp, 0xC
movs r2, 0x3
bl memcpy
ldrh r1, [r5]
ldr r0, [r5, 0xC]
muls r1, r0
ldr r0, [r5, 0x10]
adds r0, r1
adds r6, r4, 0
adds r6, 0x48
ldr r2, [r4, 0x34]
adds r1, r6, 0
bl _call_via_r2
ldrh r0, [r4, 0x8]
ldrh r1, [r5]
ldrh r2, [r4, 0xA]
ldr r3, [r4, 0x38]
bl _call_via_r3
ldrb r0, [r4, 0x8]
ldrh r3, [r4, 0xA]
lsls r3, 20
lsrs r3, 16
ldrb r1, [r4, 0x4]
lsls r1, 3
str r1, [sp]
movs r1, 0x10
str r1, [sp, 0x4]
movs r1, 0x44
movs r2, 0
bl FillWindowPixelRect
ldrb r0, [r4, 0x8]
ldrb r1, [r4, 0x5]
ldrh r3, [r4, 0xA]
lsls r3, 4
adds r3, 0x1
lsls r3, 24
lsrs r3, 24
add r2, sp, 0xC
str r2, [sp]
movs r2, 0x1
negs r2, r2
str r2, [sp, 0x4]
str r6, [sp, 0x8]
movs r2, 0x8
bl AddTextPrinterParameterized3
adds r0, r4, 0
movs r1, 0x1
bl sub_81C8C64
ldrh r0, [r4, 0x8]
ldrh r3, [r4, 0xA]
lsls r3, 1
ldrb r1, [r4, 0x4]
str r1, [sp]
movs r1, 0x2
str r1, [sp, 0x4]
movs r1, 0x3
movs r2, 0
bl CopyWindowRectToVram
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C8CB4
thumb_func_start sub_81C8D4C
sub_81C8D4C: @ 81C8D4C
push {r4,r5,lr}
sub sp, 0xC
adds r4, r1, 0
ldrh r2, [r0]
ldr r1, [r0, 0xC]
muls r1, r2
ldr r0, [r0, 0x10]
adds r0, r1
adds r5, r4, 0
adds r5, 0x48
ldr r2, [r4, 0x34]
adds r1, r5, 0
bl _call_via_r2
ldrb r0, [r4, 0x8]
ldrh r3, [r4, 0xA]
lsls r3, 20
lsrs r3, 16
ldrb r1, [r4, 0x4]
lsls r1, 3
str r1, [sp]
movs r1, 0x10
str r1, [sp, 0x4]
movs r1, 0x11
movs r2, 0
bl FillWindowPixelRect
ldrb r0, [r4, 0x8]
ldrb r1, [r4, 0x5]
ldrh r2, [r4, 0xA]
lsls r2, 4
adds r2, 0x1
lsls r2, 24
lsrs r2, 24
str r2, [sp]
movs r2, 0xFF
str r2, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
adds r2, r5, 0
movs r3, 0x8
bl AddTextPrinterParameterized
adds r0, r4, 0
movs r1, 0
bl sub_81C8C64
ldrb r0, [r4, 0x8]
movs r1, 0x3
bl CopyWindowToVram
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C8D4C
thumb_func_start sub_81C8DBC
sub_81C8DBC: @ 81C8DBC
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x1C
adds r6, r0, 0
mov r8, r1
add r1, sp, 0xC
ldr r0, =gUnknown_0861FBE8
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
add r0, sp, 0x18
mov r9, r0
ldr r1, =gUnknown_0861FBF4
movs r2, 0x3
bl memcpy
ldrh r4, [r6, 0xA]
mov r1, r8
lsls r0, r1, 1
adds r0, 0x1
adds r4, r0
movs r0, 0xF
ands r4, r0
ldrb r0, [r6, 0x8]
lsls r5, r4, 4
adds r3, r5, 0
ldrb r1, [r6, 0x4]
str r1, [sp]
movs r1, 0x10
str r1, [sp, 0x4]
movs r1, 0x11
movs r2, 0
bl FillWindowPixelRect
ldrb r0, [r6, 0x8]
movs r1, 0x1
orrs r5, r1
mov r2, r9
str r2, [sp]
subs r1, 0x2
str r1, [sp, 0x4]
mov r3, r8
lsls r3, 2
mov r8, r3
mov r1, sp
add r1, r8
adds r1, 0xC
ldr r1, [r1]
str r1, [sp, 0x8]
movs r1, 0x7
movs r2, 0x2
adds r3, r5, 0
bl AddTextPrinterParameterized3
ldrh r0, [r6, 0x8]
lsls r4, 1
ldrb r1, [r6, 0x4]
str r1, [sp]
movs r1, 0x2
str r1, [sp, 0x4]
movs r2, 0
adds r3, r4, 0
bl CopyWindowRectToVram
add sp, 0x1C
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C8DBC
thumb_func_start sub_81C8E54
sub_81C8E54: @ 81C8E54
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xC
adds r7, r1, 0
adds r1, r2, 0
ldrh r3, [r7, 0xA]
ldr r2, =gUnknown_0861FBF7
adds r2, r1, r2
ldrb r2, [r2]
adds r6, r3, r2
movs r2, 0xF
ands r6, r2
ldrh r0, [r0]
bl sub_81CAFD8
adds r5, r0, 0
cmp r5, 0
beq _081C8EC0
ldrh r0, [r7, 0x8]
lsls r4, r6, 1
ldrb r3, [r7, 0x4]
subs r3, 0x1
movs r1, 0x2
mov r8, r1
str r1, [sp]
movs r1, 0x1
adds r2, r4, 0
bl sub_81DB620
ldrb r0, [r7, 0x8]
lsls r1, r6, 4
movs r2, 0x1
orrs r1, r2
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x7
adds r2, r5, 0
movs r3, 0x2
bl AddTextPrinterParameterized
ldrh r0, [r7, 0x8]
ldrb r1, [r7, 0x4]
str r1, [sp]
mov r1, r8
str r1, [sp, 0x4]
movs r1, 0x2
movs r2, 0
adds r3, r4, 0
bl CopyWindowRectToVram
_081C8EC0:
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C8E54
thumb_func_start sub_81C8ED0
sub_81C8ED0: @ 81C8ED0
push {r4,r5,lr}
movs r5, 0
ldr r4, =gUnknown_0861FBFC
_081C8ED6:
adds r0, r4, 0
bl LoadCompressedObjectPic
adds r4, 0x8
adds r5, 0x1
cmp r5, 0
beq _081C8ED6
ldr r0, =gUnknown_0861FC04
bl sub_81C795C
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C8ED0
thumb_func_start sub_81C8EF8
sub_81C8EF8: @ 81C8EF8
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
adds r4, r0, 0
adds r5, r1, 0
ldr r0, =gUnknown_0861FC1C
ldrb r1, [r5, 0x2]
lsls r1, 3
adds r1, 0x3
ldrb r2, [r5, 0x3]
adds r2, 0x1
lsls r2, 3
movs r3, 0x7
bl CreateSprite
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r3, 4
adds r0, r3
lsls r0, 2
ldr r1, =gSprites
mov r8, r1
add r0, r8
str r0, [r5, 0x3C]
ldrb r6, [r5, 0x2]
lsls r6, 3
ldrb r0, [r5, 0x4]
subs r0, 0x1
lsls r0, 2
ldr r3, =gUnknown_0861FC3C
mov r10, r3
adds r6, r0
ldrb r2, [r5, 0x3]
lsls r2, 3
ldrh r0, [r4, 0x8]
lsls r0, 4
adds r2, r0
lsls r2, 16
asrs r2, 16
mov r0, r10
adds r1, r6, 0
movs r3, 0x7
bl CreateSprite
lsls r0, 24
lsrs r3, r0, 24
lsls r2, r3, 4
adds r2, r3
lsls r2, 2
add r2, r8
str r2, [r5, 0x44]
ldrh r3, [r2, 0x4]
lsls r1, r3, 22
lsrs r1, 22
adds r1, 0x2
ldr r0, =0x000003ff
mov r9, r0
mov r0, r9
ands r1, r0
ldr r4, =0xfffffc00
adds r0, r4, 0
ands r0, r3
orrs r0, r1
strh r0, [r2, 0x4]
ldr r1, [r5, 0x44]
ldr r0, =sub_81C90A0
str r0, [r1, 0x1C]
ldrb r2, [r5, 0x3]
lsls r2, 3
mov r0, r10
adds r1, r6, 0
movs r3, 0x7
bl CreateSprite
lsls r0, 24
lsrs r3, r0, 24
lsls r1, r3, 4
adds r1, r3
lsls r1, 2
add r1, r8
str r1, [r5, 0x40]
ldrh r2, [r1, 0x4]
lsls r0, r2, 22
lsrs r0, 22
adds r0, 0x4
mov r3, r9
ands r0, r3
ands r4, r2
orrs r4, r0
strh r4, [r1, 0x4]
ldr r1, [r5, 0x40]
ldr r0, =sub_81C90F4
str r0, [r1, 0x1C]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C8EF8
thumb_func_start sub_81C8FE0
sub_81C8FE0: @ 81C8FE0
push {r4,lr}
adds r4, r0, 0
ldr r0, [r4, 0x3C]
bl DestroySprite
ldr r0, [r4, 0x40]
bl DestroySprite
ldr r0, [r4, 0x44]
bl DestroySprite
movs r0, 0xA
bl FreeSpriteTilesByTag
movs r0, 0x14
bl FreeSpritePaletteByTag
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C8FE0
thumb_func_start sub_81C9008
sub_81C9008: @ 81C9008
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
cmp r4, 0
beq _081C9028
ldr r2, [r5, 0x3C]
ldr r1, =SpriteCallbackDummy
str r1, [r2, 0x1C]
ldr r0, [r5, 0x40]
str r1, [r0, 0x1C]
ldr r0, [r5, 0x44]
str r1, [r0, 0x1C]
b _081C903A
.pool
_081C9028:
ldr r2, [r5, 0x3C]
ldr r0, =sub_81C9080
str r0, [r2, 0x1C]
ldr r1, [r5, 0x40]
ldr r0, =sub_81C90F4
str r0, [r1, 0x1C]
ldr r1, [r5, 0x44]
ldr r0, =sub_81C90A0
str r0, [r1, 0x1C]
_081C903A:
adds r3, r2, 0
adds r3, 0x3E
movs r0, 0x1
ands r4, r0
lsls r4, 2
ldrb r2, [r3]
movs r1, 0x5
negs r1, r1
adds r0, r1, 0
ands r0, r2
orrs r0, r4
strb r0, [r3]
ldr r2, [r5, 0x40]
adds r2, 0x3E
ldrb r3, [r2]
adds r0, r1, 0
ands r0, r3
orrs r0, r4
strb r0, [r2]
ldr r0, [r5, 0x44]
adds r0, 0x3E
ldrb r2, [r0]
ands r1, r2
orrs r1, r4
strb r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C9008
thumb_func_start sub_81C9080
sub_81C9080: @ 81C9080
push {r4,lr}
adds r4, r0, 0
movs r0, 0x11
bl sub_81C763C
ldr r1, =0x0000088e
adds r0, r1
ldrh r0, [r0]
lsls r0, 4
strh r0, [r4, 0x26]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C9080
thumb_func_start sub_81C90A0
sub_81C90A0: @ 81C90A0
push {r4,lr}
adds r4, r0, 0
movs r1, 0x3C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081C90C2
bl sub_81C84C0
cmp r0, 0
beq _081C90C2
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
b _081C90CC
_081C90C2:
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
_081C90CC:
strb r0, [r2]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
ble _081C90EC
movs r0, 0
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x30]
adds r0, 0x1
movs r1, 0x7
ands r0, r1
strh r0, [r4, 0x30]
strh r0, [r4, 0x26]
_081C90EC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C90A0
thumb_func_start sub_81C90F4
sub_81C90F4: @ 81C90F4
push {r4,lr}
adds r4, r0, 0
movs r1, 0x3C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081C9116
bl sub_81C84A4
cmp r0, 0
beq _081C9116
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
b _081C9120
_081C9116:
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
_081C9120:
strb r0, [r2]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
ble _081C9142
movs r0, 0
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x30]
adds r0, 0x1
movs r1, 0x7
ands r0, r1
strh r0, [r4, 0x30]
negs r0, r0
strh r0, [r4, 0x26]
_081C9142:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C90F4
thumb_func_start sub_81C9148
sub_81C9148: @ 81C9148
push {r4,lr}
adds r4, r0, 0
movs r0, 0x11
bl sub_81C763C
ldr r1, [r0, 0x40]
strh r4, [r1, 0x3C]
ldr r0, [r0, 0x44]
strh r4, [r0, 0x3C]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C9148
thumb_func_start sub_81C9160
sub_81C9160: @ 81C9160
push {r4,r5,lr}
adds r2, r0, 0
ldr r0, [r1]
str r0, [r2, 0x10]
ldrh r4, [r1, 0x6]
movs r5, 0
strh r4, [r2]
ldrh r3, [r1, 0x4]
strh r3, [r2, 0x2]
ldrb r0, [r1, 0x8]
str r0, [r2, 0xC]
ldrb r1, [r1, 0xC]
strh r1, [r2, 0x8]
lsls r0, r3, 16
lsrs r0, 16
cmp r1, r0
bcc _081C918A
strh r5, [r2]
strh r5, [r2, 0x4]
strh r4, [r2, 0x6]
b _081C91A6
_081C918A:
subs r0, r3, r1
strh r0, [r2, 0x4]
ldrh r1, [r2]
ldrh r0, [r2, 0x8]
adds r1, r0
ldrh r0, [r2, 0x2]
cmp r1, r0
ble _081C91A4
subs r0, r1, r0
strh r0, [r2, 0x6]
subs r0, r4, r0
strh r0, [r2]
b _081C91A6
_081C91A4:
strh r5, [r2, 0x6]
_081C91A6:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C9160
thumb_func_start sub_81C91AC
sub_81C91AC: @ 81C91AC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
adds r7, r0, 0
ldr r4, [r1]
lsls r4, 30
lsrs r0, r4, 30
movs r1, 0
mov r9, r1
strb r0, [r7]
strh r3, [r7, 0x6]
ldr r0, [r2, 0x10]
str r0, [r7, 0x34]
ldr r0, [r2, 0x14]
str r0, [r7, 0x38]
ldrb r6, [r2, 0xD]
strb r6, [r7, 0x1]
ldrb r1, [r2, 0x9]
strb r1, [r7, 0x2]
ldrb r0, [r2, 0xB]
strb r0, [r7, 0x3]
ldrb r5, [r2, 0xA]
strb r5, [r7, 0x4]
ldrb r0, [r2, 0xE]
strb r0, [r7, 0x5]
lsrs r4, 30
ldr r2, =0xffffff00
mov r8, r2
ldr r0, [sp]
ands r0, r2
orrs r0, r4
lsls r1, 24
lsrs r1, 16
ldr r2, =0xffff00ff
ands r0, r2
orrs r0, r1
ldr r1, =0xff00ffff
ands r0, r1
lsls r5, 24
ldr r1, =0x00ffffff
ands r0, r1
orrs r0, r5
str r0, [sp]
ldr r0, [sp, 0x4]
mov r1, r8
ands r0, r1
movs r1, 0x20
orrs r0, r1
lsls r6, 24
lsrs r6, 16
ands r0, r2
orrs r0, r6
adds r3, 0x2
lsls r3, 16
ldr r1, =0x0000ffff
ands r0, r1
orrs r0, r3
str r0, [sp, 0x4]
mov r0, sp
bl AddWindow
strh r0, [r7, 0x8]
lsls r0, 16
lsrs r0, 16
cmp r0, 0xFF
beq _081C9258
mov r2, r9
strh r2, [r7, 0xA]
mov r0, r9
str r0, [r7, 0x3C]
str r0, [r7, 0x40]
str r0, [r7, 0x44]
movs r0, 0x1
b _081C925A
.pool
_081C9258:
movs r0, 0
_081C925A:
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81C91AC
thumb_func_start sub_81C9268
sub_81C9268: @ 81C9268
push {r4,lr}
movs r4, 0
movs r0, 0x98
lsls r0, 1
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _081C928A
movs r4, 0x1
ldr r0, =0x0000089b
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _081C928A
movs r4, 0x2
_081C928A:
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81C9268
thumb_func_start sub_81C9298
sub_81C9298: @ 81C9298
push {r4,lr}
movs r0, 0x1
movs r1, 0x10
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081C92C4
bl sub_81C9268
lsls r0, 24
lsrs r0, 24
movs r1, 0
strh r0, [r4]
strh r1, [r4, 0x2]
strh r1, [r4, 0x4]
strh r1, [r4, 0x6]
adds r0, r4, 0
bl sub_81C939C
movs r0, 0x1
b _081C92C6
_081C92C4:
movs r0, 0
_081C92C6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C9298
thumb_func_start sub_81C92CC
sub_81C92CC: @ 81C92CC
push {r4,lr}
movs r0, 0x1
movs r1, 0x10
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081C92FA
bl sub_81C9268
lsls r0, 24
lsrs r0, 24
movs r1, 0
strh r0, [r4]
movs r0, 0x2
strh r0, [r4, 0x2]
strh r0, [r4, 0x4]
strh r1, [r4, 0x6]
adds r0, r4, 0
bl sub_81C939C
movs r0, 0x1
b _081C92FC
_081C92FA:
movs r0, 0
_081C92FC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C92CC
thumb_func_start sub_81C9304
sub_81C9304: @ 81C9304
push {r4,lr}
movs r0, 0x1
movs r1, 0x10
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081C932E
bl sub_81C9268
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
movs r0, 0x3
strh r0, [r4, 0x2]
strh r0, [r4, 0x4]
adds r0, r4, 0
bl sub_81C939C
movs r0, 0x1
b _081C9330
_081C932E:
movs r0, 0
_081C9330:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C9304
thumb_func_start sub_81C9338
sub_81C9338: @ 81C9338
push {lr}
movs r0, 0x1
movs r1, 0x10
bl sub_81C761C
adds r2, r0, 0
cmp r2, 0
beq _081C9360
movs r0, 0
movs r1, 0x3
strh r1, [r2]
strh r0, [r2, 0x2]
movs r1, 0x5
strh r1, [r2, 0x4]
strh r0, [r2, 0x6]
adds r0, r2, 0
bl sub_81C939C
movs r0, 0x1
b _081C9362
_081C9360:
movs r0, 0
_081C9362:
pop {r1}
bx r1
thumb_func_end sub_81C9338
thumb_func_start sub_81C9368
sub_81C9368: @ 81C9368
push {r4,r5,lr}
movs r0, 0x1
movs r1, 0x10
bl sub_81C761C
adds r5, r0, 0
cmp r5, 0
beq _081C9394
movs r4, 0
movs r0, 0x4
strh r0, [r5]
bl sub_81C76AC
strh r0, [r5, 0x2]
adds r0, 0x8
strh r0, [r5, 0x4]
strh r4, [r5, 0x6]
adds r0, r5, 0
bl sub_81C939C
movs r0, 0x1
b _081C9396
_081C9394:
movs r0, 0
_081C9396:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81C9368
thumb_func_start sub_81C939C
sub_81C939C: @ 81C939C
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4]
cmp r0, 0x4
bhi _081C93E0
lsls r0, 2
ldr r1, =_081C93B4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C93B4:
.4byte _081C93C8
.4byte _081C93CE
.4byte _081C93CE
.4byte _081C93D4
.4byte _081C93DC
_081C93C8:
movs r0, 0
bl sub_81C7688
_081C93CE:
bl sub_81C93EC
b _081C93DE
_081C93D4:
ldr r0, =sub_81C963C
b _081C93DE
.pool
_081C93DC:
ldr r0, =sub_81C96FC
_081C93DE:
str r0, [r4, 0xC]
_081C93E0:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C939C
thumb_func_start sub_81C93EC
sub_81C93EC: @ 81C93EC
push {lr}
bl sub_81C767C
cmp r0, 0x1
beq _081C9408
cmp r0, 0x1
bcc _081C93FE
cmp r0, 0x2
beq _081C9410
_081C93FE:
ldr r0, =sub_81C943C
b _081C9412
.pool
_081C9408:
ldr r0, =sub_81C9520
b _081C9412
.pool
_081C9410:
ldr r0, =c2_pre_battle_1
_081C9412:
pop {r1}
bx r1
.pool
thumb_func_end sub_81C93EC
thumb_func_start sub_81C941C
sub_81C941C: @ 81C941C
push {lr}
movs r0, 0x1
bl sub_81C763C
ldr r1, [r0, 0xC]
bl _call_via_r1
pop {r1}
bx r1
thumb_func_end sub_81C941C
thumb_func_start sub_81C9430
sub_81C9430: @ 81C9430
push {lr}
movs r0, 0x1
bl sub_81C7650
pop {r0}
bx r0
thumb_func_end sub_81C9430
thumb_func_start sub_81C943C
sub_81C943C: @ 81C943C
push {r4,r5,lr}
adds r4, r0, 0
bl sub_81C9814
cmp r0, 0
beq _081C944C
movs r0, 0x1
b _081C951A
_081C944C:
ldr r2, =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
adds r5, r2, 0
cmp r0, 0
beq _081C9508
ldr r3, =gUnknown_0861FC59
movs r0, 0x2
ldrsh r1, [r4, r0]
ldrh r2, [r4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 1
adds r1, r0
adds r1, r3
ldrb r0, [r1]
cmp r0, 0x4
bhi _081C9508
lsls r0, 2
ldr r1, =_081C9488
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C9488:
.4byte _081C949C
.4byte _081C94BC
.4byte _081C94D4
.4byte _081C94E0
.4byte _081C9516
_081C949C:
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x15]
movs r0, 0x8
ands r0, r1
movs r1, 0x1
cmp r0, 0
beq _081C94AE
movs r1, 0x2
_081C94AE:
strh r1, [r4, 0x6]
ldr r1, =0x000186a6
b _081C94EE
.pool
_081C94BC:
movs r1, 0
movs r0, 0x3
strh r0, [r4]
strh r1, [r4, 0x2]
ldrb r0, [r3, 0x12]
strh r0, [r4, 0x4]
ldr r0, =sub_81C963C
str r0, [r4, 0xC]
movs r0, 0x2
b _081C951A
.pool
_081C94D4:
movs r0, 0x6
strh r0, [r4, 0x6]
ldr r1, =0x000186ab
b _081C94EE
.pool
_081C94E0:
bl sub_81C76B8
cmp r0, 0
beq _081C94FC
movs r0, 0x9
strh r0, [r4, 0x6]
ldr r1, =0x000186ac
_081C94EE:
adds r0, r4, 0
bl sub_81C97B0
movs r0, 0x8
b _081C951A
.pool
_081C94FC:
ldr r0, =sub_81C9600
str r0, [r4, 0xC]
movs r0, 0x6
b _081C951A
.pool
_081C9508:
ldrh r1, [r5, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _081C9516
movs r0, 0
b _081C951A
_081C9516:
movs r0, 0x1
negs r0, r0
_081C951A:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81C943C
thumb_func_start sub_81C9520
sub_81C9520: @ 81C9520
push {r4,lr}
adds r4, r0, 0
bl sub_81C9814
cmp r0, 0
beq _081C9530
movs r0, 0x1
b _081C9580
_081C9530:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C9570
ldr r3, =gUnknown_0861FC59
movs r0, 0x2
ldrsh r1, [r4, r0]
ldrh r2, [r4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 1
adds r1, r0
adds r1, r3
ldrb r0, [r1]
cmp r0, 0x2
bne _081C9578
movs r0, 0x6
strh r0, [r4, 0x6]
ldr r1, =0x000186ab
adds r0, r4, 0
bl sub_81C97B0
movs r0, 0x8
b _081C9580
.pool
_081C9570:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081C957E
_081C9578:
movs r0, 0x20
bl PlaySE
_081C957E:
movs r0, 0
_081C9580:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C9520
thumb_func_start c2_pre_battle_1
c2_pre_battle_1: @ 81C9588
push {r4,lr}
adds r4, r0, 0
bl sub_81C9814
cmp r0, 0
beq _081C9598
movs r0, 0x1
b _081C95F8
_081C9598:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C95E8
ldr r3, =gUnknown_0861FC59
movs r0, 0x2
ldrsh r1, [r4, r0]
ldrh r2, [r4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 1
adds r1, r0
adds r1, r3
ldrb r0, [r1]
cmp r0, 0x2
beq _081C95D4
cmp r0, 0x4
beq _081C95F4
movs r0, 0x20
bl PlaySE
movs r0, 0
b _081C95F8
.pool
_081C95D4:
movs r0, 0x6
strh r0, [r4, 0x6]
ldr r1, =0x000186ab
adds r0, r4, 0
bl sub_81C97B0
movs r0, 0x8
b _081C95F8
.pool
_081C95E8:
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _081C95F4
movs r0, 0
b _081C95F8
_081C95F4:
movs r0, 0x1
negs r0, r0
_081C95F8:
pop {r4}
pop {r1}
bx r1
thumb_func_end c2_pre_battle_1
thumb_func_start sub_81C9600
sub_81C9600: @ 81C9600
push {r4,lr}
adds r4, r0, 0
bl sub_81C9814
cmp r0, 0
beq _081C9616
bl sub_81C93EC
str r0, [r4, 0xC]
movs r0, 0x1
b _081C9634
_081C9616:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _081C962C
movs r0, 0
b _081C9634
.pool
_081C962C:
bl sub_81C93EC
str r0, [r4, 0xC]
movs r0, 0x7
_081C9634:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C9600
thumb_func_start sub_81C963C
sub_81C963C: @ 81C963C
push {r4-r6,lr}
adds r4, r0, 0
bl sub_81C9814
adds r3, r0, 0
cmp r3, 0
beq _081C964E
movs r0, 0x1
b _081C96F6
_081C964E:
ldr r2, =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
adds r6, r2, 0
cmp r0, 0
beq _081C96B8
ldr r5, =gUnknown_0861FC59
movs r1, 0x2
ldrsh r0, [r4, r1]
ldrh r2, [r4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 1
adds r0, r1
adds r0, r5
ldrb r0, [r0]
cmp r0, 0x6
beq _081C968E
cmp r0, 0x6
bgt _081C9688
cmp r0, 0x5
beq _081C96A4
b _081C96B8
.pool
_081C9688:
cmp r0, 0x7
beq _081C96E4
b _081C96B8
_081C968E:
movs r0, 0x4
strh r0, [r4]
strh r3, [r4, 0x2]
ldrb r0, [r5, 0x18]
strh r0, [r4, 0x4]
ldr r0, =sub_81C96FC
str r0, [r4, 0xC]
movs r0, 0x4
b _081C96F6
.pool
_081C96A4:
strh r3, [r4, 0x6]
ldr r1, =0x000186a7
adds r0, r4, 0
bl sub_81C97B0
movs r0, 0x8
b _081C96F6
.pool
_081C96B8:
ldrh r1, [r6, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081C96F4
movs r0, 0x2
ldrsh r2, [r4, r0]
ldr r1, =gUnknown_0861FC54
ldrh r0, [r4]
adds r0, r1
ldrb r0, [r0]
cmp r2, r0
beq _081C96E4
strh r0, [r4, 0x2]
ldr r0, =sub_81C9798
str r0, [r4, 0xC]
movs r0, 0x1
b _081C96F6
.pool
_081C96E4:
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
bl sub_81C97C0
movs r0, 0x3
b _081C96F6
_081C96F4:
movs r0, 0
_081C96F6:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81C963C
thumb_func_start sub_81C96FC
sub_81C96FC: @ 81C96FC
push {r4,lr}
adds r4, r0, 0
bl sub_81C9814
cmp r0, 0
beq _081C970C
movs r0, 0x1
b _081C9792
_081C970C:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C9754
ldr r3, =gUnknown_0861FC59
movs r0, 0x2
ldrsh r1, [r4, r0]
ldrh r2, [r4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 1
adds r1, r0
adds r1, r3
ldrb r0, [r1]
cmp r0, 0xD
beq _081C9780
subs r0, 0x8
bl sub_81C7694
ldr r1, =0x000186a8
adds r0, r4, 0
bl sub_81C97B0
movs r0, 0x3
strh r0, [r4, 0x6]
movs r0, 0x8
b _081C9792
.pool
_081C9754:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081C9790
movs r0, 0x2
ldrsh r2, [r4, r0]
ldr r1, =gUnknown_0861FC54
ldrh r0, [r4]
adds r0, r1
ldrb r0, [r0]
cmp r2, r0
beq _081C9780
strh r0, [r4, 0x2]
ldr r0, =sub_81C97A4
str r0, [r4, 0xC]
movs r0, 0x1
b _081C9792
.pool
_081C9780:
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
bl sub_81C97F8
movs r0, 0x5
b _081C9792
_081C9790:
movs r0, 0
_081C9792:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C96FC
thumb_func_start sub_81C9798
sub_81C9798: @ 81C9798
push {lr}
bl sub_81C97C0
movs r0, 0x3
pop {r1}
bx r1
thumb_func_end sub_81C9798
thumb_func_start sub_81C97A4
sub_81C97A4: @ 81C97A4
push {lr}
bl sub_81C97F8
movs r0, 0x5
pop {r1}
bx r1
thumb_func_end sub_81C97A4
thumb_func_start sub_81C97B0
sub_81C97B0: @ 81C97B0
str r1, [r0, 0x8]
ldr r1, =sub_81C97BC
str r1, [r0, 0xC]
bx lr
.pool
thumb_func_end sub_81C97B0
thumb_func_start sub_81C97BC
sub_81C97BC: @ 81C97BC
ldr r0, [r0, 0x8]
bx lr
thumb_func_end sub_81C97BC
thumb_func_start sub_81C97C0
sub_81C97C0: @ 81C97C0
push {r4,lr}
adds r4, r0, 0
bl sub_81C9268
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
movs r0, 0x1
strh r0, [r4, 0x2]
ldr r2, =gUnknown_0861FC59
ldrh r1, [r4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 1
adds r0, 0x1
adds r0, r2
ldrb r0, [r0]
strh r0, [r4, 0x4]
ldr r0, =sub_81C943C
str r0, [r4, 0xC]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C97C0
thumb_func_start sub_81C97F8
sub_81C97F8: @ 81C97F8
movs r1, 0x3
strh r1, [r0]
movs r1, 0x1
strh r1, [r0, 0x2]
ldr r1, =gUnknown_0861FC59
ldrb r1, [r1, 0x13]
strh r1, [r0, 0x4]
ldr r1, =sub_81C963C
str r1, [r0, 0xC]
bx lr
.pool
thumb_func_end sub_81C97F8
thumb_func_start sub_81C9814
sub_81C9814: @ 81C9814
push {r4,r5,lr}
adds r4, r0, 0
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0
beq _081C9848
ldrh r0, [r4, 0x2]
subs r0, 0x1
strh r0, [r4, 0x2]
lsls r0, 16
ldrh r3, [r4]
cmp r0, 0
bge _081C986A
ldr r0, =gUnknown_0861FC54
adds r0, r3, r0
ldrb r0, [r0]
strh r0, [r4, 0x2]
b _081C986A
.pool
_081C9848:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081C988C
ldrh r0, [r4, 0x2]
adds r0, 0x1
strh r0, [r4, 0x2]
movs r0, 0x2
ldrsh r2, [r4, r0]
ldr r0, =gUnknown_0861FC54
ldrh r1, [r4]
adds r0, r1, r0
adds r3, r1, 0
ldrb r0, [r0]
cmp r2, r0
ble _081C986A
strh r5, [r4, 0x2]
_081C986A:
ldr r2, =gUnknown_0861FC59
movs r0, 0x2
ldrsh r1, [r4, r0]
lsls r0, r3, 1
adds r0, r3
lsls r0, 1
adds r1, r0
adds r1, r2
ldrb r0, [r1]
strh r0, [r4, 0x4]
movs r0, 0x1
b _081C988E
.pool
_081C988C:
movs r0, 0
_081C988E:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81C9814
thumb_func_start sub_81C9894
sub_81C9894: @ 81C9894
push {lr}
movs r0, 0x1
bl sub_81C763C
ldrh r0, [r0]
pop {r1}
bx r1
thumb_func_end sub_81C9894
thumb_func_start sub_81C98A4
sub_81C98A4: @ 81C98A4
push {lr}
movs r0, 0x1
bl sub_81C763C
movs r1, 0x2
ldrsh r0, [r0, r1]
pop {r1}
bx r1
thumb_func_end sub_81C98A4
thumb_func_start sub_81C98B4
sub_81C98B4: @ 81C98B4
push {lr}
movs r0, 0x1
bl sub_81C763C
ldrh r0, [r0, 0x4]
pop {r1}
bx r1
thumb_func_end sub_81C98B4
thumb_func_start sub_81C98C4
sub_81C98C4: @ 81C98C4
push {lr}
movs r0, 0x1
bl sub_81C763C
ldrh r0, [r0, 0x6]
pop {r1}
bx r1
thumb_func_end sub_81C98C4
thumb_func_start sub_81C98D4
sub_81C98D4: @ 81C98D4
push {r4,lr}
movs r4, 0
_081C98D8:
adds r0, r4, 0
bl sub_81CB0C8
ldr r1, =gMapHeader
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1, 0x14]
cmp r0, r1
bne _081C9914
adds r0, r4, 0
bl sub_81CAE08
cmp r0, 0
beq _081C9914
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x000009ca
adds r0, r1
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
beq _081C9914
movs r0, 0x1
b _081C991C
.pool
_081C9914:
adds r4, 0x1
cmp r4, 0x4D
ble _081C98D8
movs r0, 0
_081C991C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C98D4
thumb_func_start sub_81C9924
sub_81C9924: @ 81C9924
push {lr}
bl sub_81C9958
adds r1, r0, 0
cmp r1, 0
beq _081C9938
movs r0, 0
strb r0, [r1, 0xD]
movs r0, 0x1
b _081C993A
_081C9938:
movs r0, 0
_081C993A:
pop {r1}
bx r1
thumb_func_end sub_81C9924
thumb_func_start sub_81C9940
sub_81C9940: @ 81C9940
push {lr}
bl sub_81C9958
adds r1, r0, 0
cmp r1, 0
beq _081C9952
movs r0, 0x1
strb r0, [r1, 0xD]
b _081C9954
_081C9952:
movs r0, 0
_081C9954:
pop {r1}
bx r1
thumb_func_end sub_81C9940
thumb_func_start sub_81C9958
sub_81C9958: @ 81C9958
push {r4,lr}
ldr r1, =0x0000088c
movs r0, 0x2
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081C997A
movs r0, 0
strb r0, [r4, 0xC]
ldr r0, =sub_81C9A10
movs r1, 0x1
bl sub_81C7078
str r0, [r4, 0x4]
ldr r0, =sub_81C99FC
str r0, [r4]
_081C997A:
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81C9958
thumb_func_start sub_81C9990
sub_81C9990: @ 81C9990
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x2
bl sub_81C763C
adds r5, r0, 0
ldr r0, =gUnknown_086201A0
lsls r4, 2
adds r4, r0
ldr r0, [r4]
movs r1, 0x1
bl sub_81C7078
str r0, [r5, 0x4]
ldr r0, =sub_81C99FC
str r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C9990
thumb_func_start sub_81C99C0
sub_81C99C0: @ 81C99C0
push {lr}
movs r0, 0x2
bl sub_81C763C
ldr r0, [r0]
bl _call_via_r0
pop {r1}
bx r1
thumb_func_end sub_81C99C0
thumb_func_start sub_81C99D4
sub_81C99D4: @ 81C99D4
push {r4,lr}
movs r0, 0x2
bl sub_81C763C
adds r4, r0, 0
bl sub_81CA7F4
ldrb r0, [r4, 0x8]
bl RemoveWindow
bl sub_81C9FEC
bl sub_81CA994
movs r0, 0x2
bl sub_81C7650
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C99D4
thumb_func_start sub_81C99FC
sub_81C99FC: @ 81C99FC
push {lr}
movs r0, 0x2
bl sub_81C763C
ldr r0, [r0, 0x4]
bl sub_81C70D8
pop {r1}
bx r1
thumb_func_end sub_81C99FC
thumb_func_start sub_81C9A10
sub_81C9A10: @ 81C9A10
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
movs r0, 0x2
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x9
bls _081C9A24
b _081C9C60
_081C9A24:
lsls r0, r4, 2
ldr r1, =_081C9A34
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C9A34:
.4byte _081C9A5C
.4byte _081C9AEC
.4byte _081C9B30
.4byte _081C9B88
.4byte _081C9B9E
.4byte _081C9BA4
.4byte _081C9BB6
.4byte _081C9BC0
.4byte _081C9C0E
.4byte _081C9C4C
_081C9A5C:
ldr r0, =gUnknown_08620194
movs r1, 0x3
bl sub_81C7B54
ldr r1, =gPokenavMessageBox_Gfx
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
adds r1, r5, 0
adds r1, 0x8C
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, =gPokenavMessageBox_Tilemap
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, =gPokenavMessageBox_Pal
movs r1, 0x10
movs r2, 0x20
bl sub_81C7944
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
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
_081C9AD6:
movs r0, 0
b _081C9C62
.pool
_081C9AEC:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _081C9AFA
b _081C9C5C
_081C9AFA:
ldr r1, =gUnknown_0861FD6C
str r0, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, =gUnknown_0861FFF4
movs r0, 0x1
str r0, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r0, =gUnknown_0861FD4C
movs r1, 0x20
movs r2, 0x20
bl sub_81C7944
b _081C9AD6
.pool
_081C9B30:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _081C9B3E
b _081C9C5C
_081C9B3E:
ldr r1, =gUnknown_0861FC98
str r0, [sp]
movs r0, 0x3
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, =gUnknown_0861FCAC
movs r0, 0x1
str r0, [sp]
movs r0, 0x3
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r0, =gUnknown_0861FC78
movs r1, 0x30
movs r2, 0x20
bl sub_81C7944
bl sub_81C9894
cmp r0, 0x3
beq _081C9B76
bl sub_81C9894
cmp r0, 0x4
bne _081C9AD6
_081C9B76:
bl sub_81CA850
b _081C9AD6
.pool
_081C9B88:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081C9C5C
bl sub_81CA6E0
bl sub_81CA7D4
_081C9B9A:
movs r0, 0x1
b _081C9C62
_081C9B9E:
bl sub_81C9FC4
b _081C9B9A
_081C9BA4:
bl sub_81CA714
bl sub_81CA02C
bl sub_81CA640
bl sub_81CA0C8
b _081C9AD6
_081C9BB6:
bl sub_81CA7C4
cmp r0, 0
bne _081C9C5C
b _081C9B9A
_081C9BC0:
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl ShowBg
ldrb r0, [r5, 0xD]
cmp r0, 0
beq _081C9BE0
movs r0, 0x1
bl sub_81C7AC0
b _081C9BEC
_081C9BE0:
movs r0, 0x6E
bl PlaySE
movs r0, 0x3
bl sub_81C7AC0
_081C9BEC:
bl sub_81C9894
cmp r0, 0x3
beq _081C9BFE
cmp r0, 0x4
bne _081C9C06
movs r0, 0x7
bl sub_81C7DFC
_081C9BFE:
movs r0, 0x1
bl sub_81C7DFC
b _081C9AD6
_081C9C06:
movs r0, 0
bl sub_81C7DFC
b _081C9AD6
_081C9C0E:
bl sub_81C7B34
cmp r0, 0
bne _081C9C5C
bl sub_81C9894
cmp r0, 0x3
beq _081C9C2C
cmp r0, 0x4
bne _081C9C38
movs r0, 0x7
movs r1, 0
movs r2, 0
bl sub_81C7FA0
_081C9C2C:
movs r0, 0x1
movs r1, 0
movs r2, 0
bl sub_81C7FA0
b _081C9C42
_081C9C38:
movs r0, 0
movs r1, 0
movs r2, 0
bl sub_81C7FA0
_081C9C42:
bl sub_81CA20C
bl titlescreen_0
b _081C9B9A
_081C9C4C:
bl sub_81CA324
cmp r0, 0
bne _081C9C5C
bl sub_81C8010
cmp r0, 0
beq _081C9C60
_081C9C5C:
movs r0, 0x2
b _081C9C62
_081C9C60:
movs r0, 0x4
_081C9C62:
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81C9A10
thumb_func_start sub_81C9C6C
sub_81C9C6C: @ 81C9C6C
push {lr}
cmp r0, 0
beq _081C9C78
cmp r0, 0x1
beq _081C9C8E
b _081C9CA2
_081C9C78:
bl sub_81CAA3C
bl sub_81CA278
bl sub_81CA714
movs r0, 0x5
bl PlaySE
movs r0, 0
b _081C9CA4
_081C9C8E:
bl sub_81CA324
cmp r0, 0
bne _081C9C9E
bl sub_81CA7C4
cmp r0, 0
beq _081C9CA2
_081C9C9E:
movs r0, 0x2
b _081C9CA4
_081C9CA2:
movs r0, 0x4
_081C9CA4:
pop {r1}
bx r1
thumb_func_end sub_81C9C6C
thumb_func_start sub_81C9CA8
sub_81C9CA8: @ 81C9CA8
push {lr}
cmp r0, 0x1
beq _081C9CDC
cmp r0, 0x1
bgt _081C9CB8
cmp r0, 0
beq _081C9CC2
b _081C9D3C
_081C9CB8:
cmp r0, 0x2
beq _081C9CFA
cmp r0, 0x3
beq _081C9D14
b _081C9D3C
_081C9CC2:
bl sub_81CA9C8
bl sub_81CA2DC
movs r0, 0
movs r1, 0
bl sub_81C7FC4
movs r0, 0x5
bl PlaySE
movs r0, 0
b _081C9D3E
_081C9CDC:
bl sub_81CA324
cmp r0, 0
bne _081C9D34
bl sub_81C8010
cmp r0, 0
bne _081C9D34
bl sub_81CA0C8
movs r0, 0x1
bl sub_81C7DFC
movs r0, 0
b _081C9D3E
_081C9CFA:
bl sub_81CA20C
movs r0, 0x1
movs r1, 0
movs r2, 0
bl sub_81C7FA0
bl sub_81CA818
bl sub_81CA714
movs r0, 0
b _081C9D3E
_081C9D14:
bl sub_81CA324
cmp r0, 0
bne _081C9D34
bl sub_81C8010
cmp r0, 0
bne _081C9D34
bl sub_81CA89C
cmp r0, 0
bne _081C9D34
bl sub_81CA7C4
cmp r0, 0
beq _081C9D38
_081C9D34:
movs r0, 0x2
b _081C9D3E
_081C9D38:
bl sub_81CA9D8
_081C9D3C:
movs r0, 0x4
_081C9D3E:
pop {r1}
bx r1
thumb_func_end sub_81C9CA8
thumb_func_start sub_81C9D44
sub_81C9D44: @ 81C9D44
push {lr}
cmp r0, 0x1
beq _081C9D72
cmp r0, 0x1
bgt _081C9D54
cmp r0, 0
beq _081C9D5E
b _081C9DD2
_081C9D54:
cmp r0, 0x2
beq _081C9D90
cmp r0, 0x3
beq _081C9DAA
b _081C9DD2
_081C9D5E:
bl sub_81CA9C8
bl sub_81CA2DC
movs r0, 0x1
movs r1, 0
bl sub_81C7FC4
movs r0, 0
b _081C9DD4
_081C9D72:
bl sub_81CA324
cmp r0, 0
bne _081C9DCA
bl sub_81C8010
cmp r0, 0
bne _081C9DCA
bl sub_81CA0C8
movs r0, 0
bl sub_81C7DFC
movs r0, 0
b _081C9DD4
_081C9D90:
bl sub_81CA20C
movs r0, 0
movs r1, 0
movs r2, 0
bl sub_81C7FA0
bl sub_81CA864
bl sub_81CA714
movs r0, 0
b _081C9DD4
_081C9DAA:
bl sub_81CA324
cmp r0, 0
bne _081C9DCA
bl sub_81C8010
cmp r0, 0
bne _081C9DCA
bl sub_81CA89C
cmp r0, 0
bne _081C9DCA
bl sub_81CA7C4
cmp r0, 0
beq _081C9DCE
_081C9DCA:
movs r0, 0x2
b _081C9DD4
_081C9DCE:
bl sub_81CA9D8
_081C9DD2:
movs r0, 0x4
_081C9DD4:
pop {r1}
bx r1
thumb_func_end sub_81C9D44
thumb_func_start sub_81C9DD8
sub_81C9DD8: @ 81C9DD8
push {lr}
cmp r0, 0x1
beq _081C9E04
cmp r0, 0x1
bgt _081C9DE8
cmp r0, 0
beq _081C9DF2
b _081C9E50
_081C9DE8:
cmp r0, 0x2
beq _081C9E1A
cmp r0, 0x3
beq _081C9E30
b _081C9E50
_081C9DF2:
bl sub_81CA9C8
bl sub_81CA2DC
movs r0, 0x5
bl PlaySE
movs r0, 0
b _081C9E52
_081C9E04:
bl sub_81CA324
cmp r0, 0
bne _081C9E48
movs r0, 0x7
bl sub_81C7DFC
bl sub_81CA0C8
movs r0, 0
b _081C9E52
_081C9E1A:
bl sub_81CA20C
movs r0, 0x7
movs r1, 0
movs r2, 0
bl sub_81C7FA0
bl sub_81CA714
movs r0, 0
b _081C9E52
_081C9E30:
bl sub_81CA324
cmp r0, 0
bne _081C9E48
bl sub_81C8010
cmp r0, 0
bne _081C9E48
bl sub_81CA89C
cmp r0, 0
beq _081C9E4C
_081C9E48:
movs r0, 0x2
b _081C9E52
_081C9E4C:
bl sub_81CA9D8
_081C9E50:
movs r0, 0x4
_081C9E52:
pop {r1}
bx r1
thumb_func_end sub_81C9DD8
thumb_func_start sub_81C9E58
sub_81C9E58: @ 81C9E58
push {lr}
cmp r0, 0x1
beq _081C9E86
cmp r0, 0x1
bgt _081C9E68
cmp r0, 0
beq _081C9E72
b _081C9EC2
_081C9E68:
cmp r0, 0x2
beq _081C9E9E
cmp r0, 0x3
beq _081C9EAA
b _081C9EC2
_081C9E72:
bl sub_81CA9C8
bl sub_81CA2DC
movs r0, 0x7
movs r1, 0
bl sub_81C7FC4
movs r0, 0
b _081C9EC4
_081C9E86:
bl sub_81CA324
cmp r0, 0
bne _081C9EBA
bl sub_81C8010
cmp r0, 0
bne _081C9EBA
bl sub_81CA0C8
movs r0, 0
b _081C9EC4
_081C9E9E:
bl sub_81CA20C
bl sub_81CA714
movs r0, 0
b _081C9EC4
_081C9EAA:
bl sub_81CA324
cmp r0, 0
bne _081C9EBA
bl sub_81CA89C
cmp r0, 0
beq _081C9EBE
_081C9EBA:
movs r0, 0x2
b _081C9EC4
_081C9EBE:
bl sub_81CA9D8
_081C9EC2:
movs r0, 0x4
_081C9EC4:
pop {r1}
bx r1
thumb_func_end sub_81C9E58
thumb_func_start sub_81C9EC8
sub_81C9EC8: @ 81C9EC8
push {lr}
cmp r0, 0
beq _081C9ED4
cmp r0, 0x1
beq _081C9EE2
b _081C9EF0
_081C9ED4:
movs r0, 0x20
bl PlaySE
bl sub_81CA770
movs r0, 0
b _081C9EF2
_081C9EE2:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081C9EF0
movs r0, 0x2
b _081C9EF2
_081C9EF0:
movs r0, 0x4
_081C9EF2:
pop {r1}
bx r1
thumb_func_end sub_81C9EC8
thumb_func_start sub_81C9EF8
sub_81C9EF8: @ 81C9EF8
push {lr}
cmp r0, 0
beq _081C9F04
cmp r0, 0x1
beq _081C9F12
b _081C9F20
_081C9F04:
movs r0, 0x5
bl PlaySE
bl sub_81CA714
movs r0, 0
b _081C9F22
_081C9F12:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081C9F20
movs r0, 0x2
b _081C9F22
_081C9F20:
movs r0, 0x4
_081C9F22:
pop {r1}
bx r1
thumb_func_end sub_81C9EF8
thumb_func_start sub_81C9F28
sub_81C9F28: @ 81C9F28
push {lr}
cmp r0, 0x1
beq _081C9F52
cmp r0, 0x1
bgt _081C9F38
cmp r0, 0
beq _081C9F42
b _081C9FBC
_081C9F38:
cmp r0, 0x2
beq _081C9F96
cmp r0, 0x3
beq _081C9FB0
b _081C9FBC
_081C9F42:
bl sub_81C98C4
lsls r0, 16
lsrs r0, 16
bl sub_81C7BA4
movs r0, 0
b _081C9FBE
_081C9F52:
bl sub_81C7BE8
cmp r0, 0
bne _081C9FB8
bl sub_81C7880
bl sub_81CA9C8
bl sub_81CA2DC
bl sub_81C9894
cmp r0, 0x3
beq _081C9F7A
cmp r0, 0x4
bne _081C9F84
movs r0, 0x7
movs r1, 0
bl sub_81C7FC4
_081C9F7A:
movs r0, 0x1
movs r1, 0
bl sub_81C7FC4
b _081C9F8C
_081C9F84:
movs r0, 0
movs r1, 0
bl sub_81C7FC4
_081C9F8C:
movs r0, 0x5
bl PlaySE
movs r0, 0
b _081C9FBE
_081C9F96:
bl sub_81CA324
cmp r0, 0
bne _081C9FB8
bl sub_81C8010
cmp r0, 0
bne _081C9FB8
movs r0, 0
bl sub_81C7AC0
movs r0, 0
b _081C9FBE
_081C9FB0:
bl sub_81C7B34
cmp r0, 0
beq _081C9FBC
_081C9FB8:
movs r0, 0x2
b _081C9FBE
_081C9FBC:
movs r0, 0x4
_081C9FBE:
pop {r1}
bx r1
thumb_func_end sub_81C9F28
thumb_func_start sub_81C9FC4
sub_81C9FC4: @ 81C9FC4
push {r4,r5,lr}
movs r5, 0
ldr r4, =gUnknown_086201C4
_081C9FCA:
adds r0, r4, 0
bl LoadCompressedObjectPic
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x1
bls _081C9FCA
ldr r0, =gUnknown_086201D4
bl sub_81C795C
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C9FC4
thumb_func_start sub_81C9FEC
sub_81C9FEC: @ 81C9FEC
push {lr}
movs r0, 0x3
bl FreeSpriteTilesByTag
movs r0, 0x1
bl FreeSpriteTilesByTag
movs r0, 0x4
bl FreeSpritePaletteByTag
movs r0, 0x5
bl FreeSpritePaletteByTag
movs r0, 0x6
bl FreeSpritePaletteByTag
movs r0, 0x7
bl FreeSpritePaletteByTag
movs r0, 0x8
bl FreeSpritePaletteByTag
movs r0, 0x3
bl FreeSpritePaletteByTag
bl sub_81CA094
bl sub_81CA698
pop {r0}
bx r0
thumb_func_end sub_81C9FEC
thumb_func_start sub_81CA02C
sub_81CA02C: @ 81CA02C
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r0, 0x2
bl sub_81C763C
movs r2, 0
adds r0, 0x2C
mov r8, r0
_081CA03E:
movs r4, 0
lsls r0, r2, 2
lsls r1, r2, 4
adds r7, r2, 0x1
adds r0, r2
lsls r0, 18
movs r2, 0xA0
lsls r2, 14
adds r5, r0, r2
mov r0, r8
adds r6, r1, r0
_081CA054:
ldr r0, =gUnknown_0862034C
movs r1, 0x8C
asrs r2, r5, 16
movs r3, 0x3
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, =gSprites
adds r1, r0
stm r6!, {r1}
lsls r0, r4, 5
strh r0, [r1, 0x24]
adds r4, 0x1
cmp r4, 0x3
ble _081CA054
adds r2, r7, 0
cmp r2, 0x5
ble _081CA03E
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA02C
thumb_func_start sub_81CA094
sub_81CA094: @ 81CA094
push {r4-r7,lr}
movs r0, 0x2
bl sub_81C763C
movs r1, 0
adds r7, r0, 0
adds r7, 0x2C
_081CA0A2:
lsls r0, r1, 4
adds r6, r1, 0x1
adds r4, r0, r7
movs r5, 0x3
_081CA0AA:
ldr r0, [r4]
bl FreeSpriteOamMatrix
ldm r4!, {r0}
bl DestroySprite
subs r5, 0x1
cmp r5, 0
bge _081CA0AA
adds r1, r6, 0
cmp r1, 0x5
ble _081CA0A2
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81CA094
thumb_func_start sub_81CA0C8
sub_81CA0C8: @ 81CA0C8
push {lr}
bl sub_81C9894
lsls r2, r0, 3
subs r2, r0
lsls r2, 2
ldr r1, =gUnknown_08620244
adds r0, r2, r1
subs r1, 0x4
adds r2, r1
ldrh r1, [r2]
ldrh r2, [r2, 0x2]
bl sub_81CA0EC
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA0C8
thumb_func_start sub_81CA0EC
sub_81CA0EC: @ 81CA0EC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
adds r6, r0, 0
str r1, [sp, 0x14]
str r2, [sp]
movs r0, 0x2
bl sub_81C763C
mov r10, r0
movs r0, 0x3
bl GetSpriteTileStartByTag
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x4]
movs r1, 0
_081CA114:
ldr r0, [r6]
cmp r0, 0
beq _081CA1B0
movs r5, 0
lsls r2, r1, 4
mov r0, r10
adds r0, 0x2C
lsls r3, r1, 2
mov r9, r3
movs r4, 0x10
add r4, r10
mov r8, r4
adds r7, r6, 0x4
str r7, [sp, 0xC]
ldr r3, [sp, 0x14]
ldr r4, [sp]
adds r3, r4
str r3, [sp, 0x8]
adds r1, 0x1
str r1, [sp, 0x10]
adds r4, r2, r0
_081CA13E:
ldr r3, [r4]
ldr r0, [r6]
ldrh r2, [r0]
ldr r7, [sp, 0x4]
adds r2, r7
lsls r0, r5, 3
adds r2, r0
ldr r1, =0x000003ff
adds r0, r1, 0
ands r2, r0
ldrh r0, [r3, 0x4]
ldr r7, =0xfffffc00
adds r1, r7, 0
ands r0, r1
orrs r0, r2
strh r0, [r3, 0x4]
ldr r0, [r6]
ldrh r0, [r0, 0x2]
adds r0, 0x4
lsls r0, 16
lsrs r0, 16
bl IndexOfSpritePaletteTag
ldr r3, [r4]
lsls r0, 4
ldrb r2, [r3, 0x5]
movs r1, 0xF
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x5]
ldr r2, [r4]
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r0, [r4]
mov r1, sp
ldrh r1, [r1, 0x14]
strh r1, [r0, 0x22]
ldr r1, [r4]
movs r0, 0x8C
strh r0, [r1, 0x20]
ldm r4!, {r1}
lsls r0, r5, 5
strh r0, [r1, 0x24]
adds r5, 0x1
cmp r5, 0x3
ble _081CA13E
mov r1, r8
add r1, r9
movs r0, 0x1
b _081CA1EC
.pool
_081CA1B0:
lsls r2, r1, 4
mov r0, r10
adds r0, 0x2C
lsls r3, r1, 2
mov r9, r3
movs r4, 0x10
add r4, r10
mov r8, r4
adds r6, 0x4
str r6, [sp, 0xC]
ldr r7, [sp, 0x14]
ldr r3, [sp]
adds r7, r3
str r7, [sp, 0x8]
adds r1, 0x1
str r1, [sp, 0x10]
movs r3, 0x4
adds r2, r0
movs r5, 0x3
_081CA1D6:
ldm r2!, {r1}
adds r1, 0x3E
ldrb r0, [r1]
orrs r0, r3
strb r0, [r1]
subs r5, 0x1
cmp r5, 0
bge _081CA1D6
mov r1, r8
add r1, r9
movs r0, 0
_081CA1EC:
str r0, [r1]
ldr r6, [sp, 0xC]
ldr r4, [sp, 0x8]
str r4, [sp, 0x14]
ldr r1, [sp, 0x10]
cmp r1, 0x5
ble _081CA114
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81CA0EC
thumb_func_start sub_81CA20C
sub_81CA20C: @ 81CA20C
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r0, 0x2
bl sub_81C763C
adds r6, r0, 0
bl sub_81C98A4
mov r8, r0
movs r7, 0
movs r5, 0
adds r4, r6, 0
adds r4, 0x2C
_081CA228:
lsls r0, r5, 2
adds r1, r6, 0
adds r1, 0x10
adds r1, r0
ldr r0, [r1]
cmp r0, 0
beq _081CA25C
adds r0, r7, 0
adds r7, 0x1
cmp r0, r8
bne _081CA244
movs r2, 0x82
strb r5, [r6, 0xB]
b _081CA246
_081CA244:
movs r2, 0x8C
_081CA246:
adds r0, r4, 0
movs r1, 0x80
lsls r1, 1
movs r3, 0xC
bl sub_81CA35C
adds r0, r4, 0
movs r1, 0
bl sub_81CA448
b _081CA264
_081CA25C:
adds r0, r4, 0
movs r1, 0x1
bl sub_81CA448
_081CA264:
adds r4, 0x10
adds r5, 0x1
cmp r5, 0x5
ble _081CA228
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81CA20C
thumb_func_start sub_81CA278
sub_81CA278: @ 81CA278
push {r4,r5,lr}
movs r0, 0x2
bl sub_81C763C
adds r4, r0, 0
bl sub_81C98A4
adds r3, r0, 0
movs r2, 0
movs r5, 0
ldr r0, [r4, 0x10]
cmp r0, 0
beq _081CA298
cmp r5, r3
beq _081CA2B2
_081CA296:
adds r5, 0x1
_081CA298:
adds r2, 0x1
cmp r2, 0x5
bgt _081CA2B2
lsls r0, r2, 2
adds r1, r4, 0
adds r1, 0x10
adds r1, r0
ldr r0, [r1]
cmp r0, 0
beq _081CA298
cmp r5, r3
bne _081CA296
adds r5, r2, 0
_081CA2B2:
ldrb r0, [r4, 0xB]
lsls r0, 4
adds r0, 0x2C
adds r0, r4, r0
movs r1, 0x82
movs r2, 0x8C
movs r3, 0x4
bl sub_81CA35C
lsls r0, r5, 4
adds r0, 0x2C
adds r0, r4, r0
movs r1, 0x8C
movs r2, 0x82
movs r3, 0x4
bl sub_81CA35C
strb r5, [r4, 0xB]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81CA278
thumb_func_start sub_81CA2DC
sub_81CA2DC: @ 81CA2DC
push {r4-r6,lr}
movs r0, 0x2
bl sub_81C763C
adds r6, r0, 0
movs r5, 0
adds r4, r6, 0
adds r4, 0x2C
_081CA2EC:
lsls r0, r5, 2
adds r1, r6, 0
adds r1, 0x10
adds r1, r0
ldr r0, [r1]
cmp r0, 0
beq _081CA316
ldrb r0, [r6, 0xB]
cmp r0, r5
beq _081CA310
adds r0, r4, 0
movs r1, 0x8C
movs r2, 0x80
lsls r2, 1
movs r3, 0x8
bl sub_81CA35C
b _081CA316
_081CA310:
adds r0, r4, 0
bl sub_81CA3B4
_081CA316:
adds r4, 0x10
adds r5, 0x1
cmp r5, 0x5
ble _081CA2EC
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81CA2DC
thumb_func_start sub_81CA324
sub_81CA324: @ 81CA324
push {r4,lr}
movs r0, 0x2
bl sub_81C763C
adds r3, r0, 0
movs r2, 0
ldr r4, =SpriteCallbackDummy
adds r1, r3, 0
adds r1, 0x2C
_081CA336:
ldr r0, [r1]
ldr r0, [r0, 0x1C]
cmp r0, r4
bne _081CA354
adds r1, 0x10
adds r2, 0x1
cmp r2, 0x5
ble _081CA336
ldrb r0, [r3, 0xC]
cmp r0, 0
bne _081CA354
movs r0, 0
b _081CA356
.pool
_081CA354:
movs r0, 0x1
_081CA356:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CA324
thumb_func_start sub_81CA35C
sub_81CA35C: @ 81CA35C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r4, r0, 0
adds r5, r1, 0
mov r9, r2
adds r6, r3, 0
ldr r0, =sub_81CA474
mov r8, r0
subs r0, r2, r5
lsls r0, 4
adds r1, r6, 0
bl __divsi3
adds r3, r0, 0
movs r1, 0x3
lsls r2, r5, 4
_081CA380:
ldr r0, [r4]
strh r5, [r0, 0x20]
ldr r0, [r4]
strh r6, [r0, 0x2E]
ldr r0, [r4]
strh r3, [r0, 0x30]
ldr r0, [r4]
strh r2, [r0, 0x32]
ldr r0, [r4]
mov r7, r9
strh r7, [r0, 0x3C]
ldm r4!, {r0}
mov r7, r8
str r7, [r0, 0x1C]
subs r1, 0x1
cmp r1, 0
bge _081CA380
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA35C
thumb_func_start sub_81CA3B4
sub_81CA3B4: @ 81CA3B4
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r4, r0, 0
movs r0, 0x2
bl sub_81C763C
adds r7, r0, 0
movs r5, 0
mov r8, r5
_081CA3C8:
ldr r2, [r4]
ldrb r1, [r2, 0x1]
movs r3, 0xD
negs r3, r3
adds r0, r3, 0
ands r1, r0
movs r0, 0x4
orrs r1, r0
strb r1, [r2, 0x1]
ldr r2, [r4]
ldrb r0, [r2, 0x1]
movs r1, 0x3
orrs r0, r1
strb r0, [r2, 0x1]
ldr r1, [r4]
ldr r0, =sub_81CA4AC
str r0, [r1, 0x1C]
movs r6, 0x8
strh r6, [r1, 0x2E]
ldr r0, [r4]
mov r1, r8
strh r1, [r0, 0x30]
ldr r0, [r4]
strh r5, [r0, 0x3C]
ldr r0, [r4]
bl InitSpriteAffineAnim
ldm r4!, {r0}
movs r1, 0
bl StartSpriteAffineAnim
adds r5, 0x1
cmp r5, 0x3
ble _081CA3C8
movs r0, 0x52
movs r1, 0x10
bl SetGpuReg
ldr r0, =sub_81CA580
movs r1, 0x3
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r6, [r1, 0x8]
ldrb r0, [r7, 0xC]
adds r0, 0x1
strb r0, [r7, 0xC]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA3B4
thumb_func_start sub_81CA448
sub_81CA448: @ 81CA448
push {r4-r6,lr}
adds r5, r0, 0
movs r0, 0x1
ands r1, r0
lsls r4, r1, 2
movs r6, 0x5
negs r6, r6
movs r3, 0x3
_081CA458:
ldm r5!, {r0}
adds r0, 0x3E
ldrb r2, [r0]
adds r1, r6, 0
ands r1, r2
orrs r1, r4
strb r1, [r0]
subs r3, 0x1
cmp r3, 0
bge _081CA458
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81CA448
thumb_func_start sub_81CA474
sub_81CA474: @ 81CA474
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x2E]
subs r0, 0x1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
beq _081CA49A
ldrh r0, [r2, 0x30]
ldrh r1, [r2, 0x32]
adds r0, r1
strh r0, [r2, 0x32]
lsls r0, 16
asrs r0, 20
strh r0, [r2, 0x20]
b _081CA4A2
_081CA49A:
ldrh r0, [r2, 0x3C]
strh r0, [r2, 0x20]
ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_081CA4A2:
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA474
thumb_func_start sub_81CA4AC
sub_81CA4AC: @ 81CA4AC
push {r4,r5,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x2E]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0
bne _081CA574
movs r0, 0x30
ldrsh r5, [r4, r0]
cmp r5, 0
bne _081CA4E2
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
movs r0, 0x80
lsls r0, 1
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x24]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
strh r5, [r4, 0x24]
b _081CA578
_081CA4E2:
ldrh r0, [r4, 0x32]
adds r0, 0x10
strh r0, [r4, 0x32]
movs r2, 0x32
ldrsh r0, [r4, r2]
asrs r1, r0, 3
adds r0, r1, 0
subs r0, 0x20
lsrs r1, r0, 31
adds r0, r1
asrs r1, r0, 1
movs r2, 0x3C
ldrsh r0, [r4, r2]
cmp r0, 0x1
beq _081CA518
cmp r0, 0x1
bgt _081CA50A
cmp r0, 0
beq _081CA514
b _081CA526
_081CA50A:
cmp r0, 0x2
beq _081CA51C
cmp r0, 0x3
beq _081CA520
b _081CA526
_081CA514:
negs r1, r1
b _081CA520
_081CA518:
negs r0, r1
b _081CA524
_081CA51C:
strh r1, [r4, 0x24]
b _081CA526
_081CA520:
lsls r0, r1, 1
adds r0, r1
_081CA524:
strh r0, [r4, 0x24]
_081CA526:
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _081CA578
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
ldrb r1, [r4, 0x1]
lsrs r1, 6
ldrb r2, [r4, 0x3]
lsrs r2, 6
adds r0, r4, 0
movs r3, 0
bl CalcCenterToCornerVec
ldrb r1, [r4, 0x1]
movs r0, 0x4
negs r0, r0
ands r0, r1
movs r1, 0xD
negs r1, r1
ands r0, r1
strb r0, [r4, 0x1]
ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
b _081CA578
.pool
_081CA574:
subs r0, r1, 0x1
strh r0, [r4, 0x2E]
_081CA578:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81CA4AC
thumb_func_start sub_81CA580
sub_81CA580: @ 81CA580
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
ldrh r0, [r4]
movs r1, 0
ldrsh r2, [r4, r1]
cmp r2, 0
bne _081CA634
movs r0, 0x2
ldrsh r1, [r4, r0]
cmp r1, 0
beq _081CA5AC
cmp r1, 0x1
beq _081CA5CC
b _081CA638
.pool
_081CA5AC:
movs r0, 0x10
strh r0, [r4, 0x4]
strh r2, [r4, 0x6]
movs r1, 0xFC
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
movs r0, 0x52
movs r1, 0x10
bl SetGpuReg
ldrh r0, [r4, 0x2]
adds r0, 0x1
strh r0, [r4, 0x2]
b _081CA638
_081CA5CC:
ldrh r0, [r4, 0x8]
ands r1, r0
cmp r1, 0
beq _081CA5E4
ldrh r0, [r4, 0x4]
subs r0, 0x3
strh r0, [r4, 0x4]
lsls r0, 16
cmp r0, 0
bge _081CA5F6
strh r2, [r4, 0x4]
b _081CA5F6
_081CA5E4:
ldrh r0, [r4, 0x6]
adds r0, 0x3
strh r0, [r4, 0x6]
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
ble _081CA5F6
movs r0, 0x10
strh r0, [r4, 0x6]
_081CA5F6:
ldrh r1, [r4, 0x6]
lsls r1, 8
ldrh r0, [r4, 0x4]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
lsls r0, 16
asrs r0, 16
cmp r0, 0xC
bne _081CA638
movs r0, 0x2
bl sub_81C763C
ldrb r1, [r0, 0xC]
subs r1, 0x1
strb r1, [r0, 0xC]
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
adds r0, r5, 0
bl DestroyTask
b _081CA638
_081CA634:
subs r0, 0x1
strh r0, [r4]
_081CA638:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81CA580
thumb_func_start sub_81CA640
sub_81CA640: @ 81CA640
push {r4,lr}
movs r0, 0x2
bl sub_81C763C
adds r4, r0, 0
ldr r0, =gUnknown_0862036C
movs r1, 0x10
movs r2, 0x60
movs r3, 0x4
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, =gSprites
adds r1, r0
str r1, [r4, 0x28]
bl sub_81C98D4
cmp r0, 0
beq _081CA684
ldr r1, [r4, 0x28]
ldr r0, =sub_81CA6AC
str r0, [r1, 0x1C]
b _081CA690
.pool
_081CA684:
ldr r0, [r4, 0x28]
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
_081CA690:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CA640
thumb_func_start sub_81CA698
sub_81CA698: @ 81CA698
push {lr}
movs r0, 0x2
bl sub_81C763C
ldr r0, [r0, 0x28]
bl DestroySprite
pop {r0}
bx r0
thumb_func_end sub_81CA698
thumb_func_start sub_81CA6AC
sub_81CA6AC: @ 81CA6AC
push {lr}
adds r3, r0, 0
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x8
ble _081CA6DA
movs r0, 0
strh r0, [r3, 0x2E]
adds r3, 0x3E
ldrb r2, [r3]
lsls r0, r2, 29
lsrs r0, 31
movs r1, 0x1
eors r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_081CA6DA:
pop {r0}
bx r0
thumb_func_end sub_81CA6AC
thumb_func_start sub_81CA6E0
sub_81CA6E0: @ 81CA6E0
push {r4,lr}
movs r0, 0x2
bl sub_81C763C
adds r4, r0, 0
ldr r0, =gUnknown_086202CC
bl AddWindow
strh r0, [r4, 0x8]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
ldrb r0, [r4, 0x8]
movs r1, 0x66
bl FillWindowPixelBuffer
ldrb r0, [r4, 0x8]
movs r1, 0x3
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA6E0
thumb_func_start sub_81CA714
sub_81CA714: @ 81CA714
push {r4-r6,lr}
sub sp, 0xC
movs r0, 0x2
bl sub_81C763C
adds r5, r0, 0
bl sub_81C98B4
ldr r1, =gUnknown_086202D4
lsls r0, 2
adds r0, r1
ldr r6, [r0]
movs r2, 0x1
negs r2, r2
movs r0, 0x1
adds r1, r6, 0
bl GetStringWidth
adds r4, r0, 0
ldrb r0, [r5, 0x8]
movs r1, 0x66
bl FillWindowPixelBuffer
ldrb r0, [r5, 0x8]
movs r2, 0xC0
subs r2, r4
lsrs r2, 1
lsls r2, 24
lsrs r2, 24
ldr r1, =gUnknown_0862030C
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
str r6, [sp, 0x8]
movs r1, 0x1
movs r3, 0x1
bl AddTextPrinterParameterized3
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA714
thumb_func_start sub_81CA770
sub_81CA770: @ 81CA770
push {r4-r6,lr}
sub sp, 0xC
movs r0, 0x2
bl sub_81C763C
adds r5, r0, 0
ldr r6, =gText_NoRibbonWinners
movs r2, 0x1
negs r2, r2
movs r0, 0x1
adds r1, r6, 0
bl GetStringWidth
adds r4, r0, 0
ldrb r0, [r5, 0x8]
movs r1, 0x66
bl FillWindowPixelBuffer
ldrb r0, [r5, 0x8]
movs r2, 0xC0
subs r2, r4
lsrs r2, 1
lsls r2, 24
lsrs r2, 24
ldr r1, =gUnknown_0862030F
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
str r6, [sp, 0x8]
movs r1, 0x1
movs r3, 0x1
bl AddTextPrinterParameterized3
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA770
thumb_func_start sub_81CA7C4
sub_81CA7C4: @ 81CA7C4
push {lr}
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_81CA7C4
thumb_func_start sub_81CA7D4
sub_81CA7D4: @ 81CA7D4
push {r4,lr}
movs r0, 0x2
bl sub_81C763C
adds r4, r0, 0
ldr r0, =sub_81CA808
movs r1, 0x2
bl CreateTask
strb r0, [r4, 0xA]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA7D4
thumb_func_start sub_81CA7F4
sub_81CA7F4: @ 81CA7F4
push {lr}
movs r0, 0x2
bl sub_81C763C
ldrb r0, [r0, 0xA]
bl DestroyTask
pop {r0}
bx r0
thumb_func_end sub_81CA7F4
thumb_func_start sub_81CA808
sub_81CA808: @ 81CA808
push {lr}
movs r0, 0x3
movs r1, 0x80
movs r2, 0x1
bl ChangeBgX
pop {r0}
bx r0
thumb_func_end sub_81CA808
thumb_func_start sub_81CA818
sub_81CA818: @ 81CA818
push {r4,r5,lr}
ldr r0, =sub_81CA8B0
movs r1, 0x3
bl CreateTask
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, =gUnknown_0861FC78 + 2
adds r0, r4, 0
movs r1, 0x1
adds r2, r5, 0
bl SetWordTaskArg
adds r5, 0xC
adds r0, r4, 0
movs r1, 0x3
adds r2, r5, 0
bl SetWordTaskArg
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA818
thumb_func_start sub_81CA850
sub_81CA850: @ 81CA850
push {lr}
ldr r0, =gUnknown_0861FC78 + 0xE
movs r1, 0x31
movs r2, 0x4
bl sub_81C7944
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA850
thumb_func_start sub_81CA864
sub_81CA864: @ 81CA864
push {r4,r5,lr}
ldr r0, =sub_81CA8B0
movs r1, 0x3
bl CreateTask
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, =gUnknown_0861FC78 + 0xE
adds r0, r4, 0
movs r1, 0x1
adds r2, r5, 0
bl SetWordTaskArg
subs r5, 0xC
adds r0, r4, 0
movs r1, 0x3
adds r2, r5, 0
bl SetWordTaskArg
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA864
thumb_func_start sub_81CA89C
sub_81CA89C: @ 81CA89C
push {lr}
ldr r0, =sub_81CA8B0
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.pool
thumb_func_end sub_81CA89C
thumb_func_start sub_81CA8B0
sub_81CA8B0: @ 81CA8B0
push {r4-r6,lr}
sub sp, 0xC
lsls r0, 24
lsrs r6, r0, 24
lsls r4, r6, 2
adds r4, r6
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
adds r0, r6, 0
movs r1, 0x1
bl GetWordTaskArg
adds r5, r0, 0
adds r0, r6, 0
movs r1, 0x3
bl GetWordTaskArg
adds r1, r0, 0
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
lsls r0, 16
asrs r0, 16
str r0, [sp]
add r0, sp, 0x8
str r0, [sp, 0x4]
adds r0, r5, 0
movs r2, 0x2
movs r3, 0xC
bl sub_81C79BC
add r0, sp, 0x8
movs r1, 0x31
movs r2, 0x4
bl LoadPalette
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0xC
bne _081CA908
adds r0, r6, 0
bl DestroyTask
_081CA908:
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA8B0
thumb_func_start sub_81CA914
sub_81CA914: @ 81CA914
push {lr}
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
thumb_func_end sub_81CA914
thumb_func_start titlescreen_0
titlescreen_0: @ 81CA92C
push {lr}
movs r0, 0x50
movs r1, 0x90
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
movs r1, 0x80
lsls r1, 6
movs r0, 0
bl SetGpuRegBits
movs r0, 0x48
movs r1, 0x3F
bl SetGpuRegBits
movs r0, 0x4A
movs r1, 0x1F
bl SetGpuRegBits
movs r0, 0x44
movs r1, 0xA0
bl SetGpuRegBits
bl ScanlineEffect_Stop
bl sub_81CAA3C
ldr r2, =gUnknown_08620384
ldr r0, [r2]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
bl ScanlineEffect_SetParams
ldr r0, =sub_81CA914
bl c3args_set_0toR1_1to0
ldr r0, =sub_81CA9EC
movs r1, 0x3
bl CreateTask
pop {r0}
bx r0
.pool
thumb_func_end titlescreen_0
thumb_func_start sub_81CA994
sub_81CA994: @ 81CA994
push {lr}
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r1, 0x80
lsls r1, 6
movs r0, 0
bl ClearGpuRegBits
bl ScanlineEffect_Stop
ldr r0, =sub_81CA9EC
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
bl sub_81C760C
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA994
thumb_func_start sub_81CA9C8
sub_81CA9C8: @ 81CA9C8
push {lr}
movs r0, 0x50
movs r1, 0
bl SetGpuReg
pop {r0}
bx r0
thumb_func_end sub_81CA9C8
thumb_func_start sub_81CA9D8
sub_81CA9D8: @ 81CA9D8
push {lr}
bl sub_81CAA3C
movs r0, 0x50
movs r1, 0x90
bl SetGpuReg
pop {r0}
bx r0
thumb_func_end sub_81CA9D8
thumb_func_start sub_81CA9EC
sub_81CA9EC: @ 81CA9EC
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks + 0x8
adds r2, r1, r0
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
lsls r0, 16
cmp r0, 0
ble _081CAA30
movs r0, 0
strh r0, [r2]
ldrh r0, [r2, 0x2]
adds r0, 0x3
movs r1, 0x7F
ands r0, r1
strh r0, [r2, 0x2]
ldr r1, =gSineTable
movs r3, 0x2
ldrsh r0, [r2, r3]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
lsls r1, 16
asrs r1, 21
lsls r1, 16
lsrs r1, 16
movs r0, 0x54
bl SetGpuReg
_081CAA30:
pop {r0}
bx r0
.pool
thumb_func_end sub_81CA9EC
thumb_func_start sub_81CAA3C
sub_81CAA3C: @ 81CAA3C
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x8
bl sub_81C9894
adds r4, r0, 0
bl sub_81C98A4
ldr r2, =gUnknown_08620240
lsls r1, r4, 3
subs r1, r4
lsls r1, 2
adds r1, r2
ldrh r2, [r1, 0x2]
adds r4, r2, 0
muls r4, r0
ldrh r1, [r1]
adds r4, r1
subs r4, 0x8
mov r0, sp
movs r6, 0
strh r6, [r0]
ldr r5, =gScanlineEffectRegBuffers
ldr r0, =0x010000a0
mov r8, r0
mov r0, sp
adds r1, r5, 0
mov r2, r8
bl CpuSet
mov r0, sp
adds r0, 0x2
strh r6, [r0]
movs r1, 0xF0
lsls r1, 3
adds r1, r5
mov r9, r1
mov r2, r8
bl CpuSet
add r0, sp, 0x4
ldr r1, =0x000072f0
adds r6, r1, 0
strh r6, [r0]
lsls r4, 1
adds r5, r4, r5
ldr r1, =0x01000010
mov r8, r1
adds r1, r5, 0
mov r2, r8
bl CpuSet
mov r0, sp
adds r0, 0x6
strh r6, [r0]
add r4, r9
adds r1, r4, 0
mov r2, r8
bl CpuSet
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CAA3C
thumb_func_start sub_81CAADC
sub_81CAADC: @ 81CAADC
push {lr}
bl sub_81CA9C8
pop {r0}
bx r0
thumb_func_end sub_81CAADC
thumb_func_start sub_81CAAE8
sub_81CAAE8: @ 81CAAE8
push {r4,lr}
movs r1, 0xD4
lsls r1, 1
movs r0, 0x5
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CAB1C
ldr r0, =sub_81CAB44
str r0, [r4, 0x18]
movs r0, 0
strh r0, [r4, 0x8]
str r0, [r4, 0x10]
ldr r0, =sub_81CAD20
movs r1, 0x1
bl sub_81C7078
str r0, [r4, 0x14]
movs r0, 0x1
b _081CAB1E
.pool
_081CAB1C:
movs r0, 0
_081CAB1E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CAAE8
thumb_func_start sub_81CAB24
sub_81CAB24: @ 81CAB24
push {lr}
movs r0, 0x5
bl sub_81C763C
ldr r1, [r0, 0x18]
bl _call_via_r1
pop {r1}
bx r1
thumb_func_end sub_81CAB24
thumb_func_start sub_81CAB38
sub_81CAB38: @ 81CAB38
push {lr}
movs r0, 0x5
bl sub_81C7650
pop {r0}
bx r0
thumb_func_end sub_81CAB38
thumb_func_start sub_81CAB44
sub_81CAB44: @ 81CAB44
push {r4,r5,lr}
adds r4, r0, 0
ldr r3, =gMain
ldrh r1, [r3, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081CAB5C
movs r0, 0x2
b _081CABF4
.pool
_081CAB5C:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081CAB68
movs r0, 0x1
b _081CABF4
_081CAB68:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _081CAB74
movs r0, 0x4
b _081CABF4
_081CAB74:
movs r0, 0x10
ands r0, r1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0
beq _081CAB84
movs r0, 0x3
b _081CABF4
_081CAB84:
ldrh r1, [r3, 0x2E]
movs r5, 0x1
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _081CABD0
ldr r0, =sub_81CAC04
str r0, [r4, 0x18]
strh r2, [r4]
bl sub_81C875C
lsls r0, 2
adds r1, r4, r0
ldrb r0, [r1, 0x1C]
cmp r0, 0
beq _081CABAE
ldrh r0, [r1, 0x1E]
bl sub_81D17E8
cmp r0, 0
beq _081CABC0
_081CABAE:
ldr r0, =gUnknown_0862250A
str r0, [r4, 0x4]
movs r0, 0x2
strh r0, [r4, 0x2]
b _081CABC6
.pool
_081CABC0:
ldr r0, =gUnknown_08622508
str r0, [r4, 0x4]
strh r5, [r4, 0x2]
_081CABC6:
movs r0, 0x5
b _081CABF4
.pool
_081CABD0:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081CABF2
bl sub_81C767C
cmp r0, 0x1
beq _081CABEC
ldr r0, =sub_81CABFC
str r0, [r4, 0x18]
movs r0, 0xF
b _081CABF4
.pool
_081CABEC:
movs r0, 0x20
bl PlaySE
_081CABF2:
movs r0, 0
_081CABF4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CAB44
thumb_func_start sub_81CABFC
sub_81CABFC: @ 81CABFC
ldr r0, =0x000186a4
bx lr
.pool
thumb_func_end sub_81CABFC
thumb_func_start sub_81CAC04
sub_81CAC04: @ 81CAC04
push {r4,lr}
adds r4, r0, 0
ldr r2, =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081CAC24
ldrh r0, [r4]
cmp r0, 0
beq _081CAC24
subs r0, 0x1
b _081CAC38
.pool
_081CAC24:
ldrh r1, [r2, 0x2E]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081CAC3E
ldrh r0, [r4]
ldrh r1, [r4, 0x2]
cmp r0, r1
bcs _081CAC3E
adds r0, 0x1
_081CAC38:
strh r0, [r4]
movs r0, 0x6
b _081CACAC
_081CAC3E:
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081CAC98
ldrh r1, [r4]
ldr r0, [r4, 0x4]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
beq _081CAC8C
cmp r0, 0x1
bgt _081CAC5E
cmp r0, 0
beq _081CAC64
b _081CAC98
_081CAC5E:
cmp r0, 0x2
bne _081CAC98
b _081CACA6
_081CAC64:
bl sub_81C767C
cmp r0, 0x1
bne _081CAC72
movs r0, 0x2
bl sub_81C7688
_081CAC72:
ldr r0, =sub_81CACF8
str r0, [r4, 0x18]
bl sub_81CB1D0
cmp r0, 0
beq _081CAC88
movs r0, 0x9
b _081CACAC
.pool
_081CAC88:
movs r0, 0x8
b _081CACAC
_081CAC8C:
ldr r0, =sub_81CACB8
str r0, [r4, 0x18]
movs r0, 0xB
b _081CACAC
.pool
_081CAC98:
ldrh r1, [r2, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _081CACA6
movs r0, 0
b _081CACAC
_081CACA6:
ldr r0, =sub_81CAB44
str r0, [r4, 0x18]
movs r0, 0x7
_081CACAC:
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CAC04
thumb_func_start sub_81CACB8
sub_81CACB8: @ 81CACB8
push {lr}
adds r3, r0, 0
ldr r2, =gMain
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081CACD0
movs r0, 0xC
b _081CACF0
.pool
_081CACD0:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081CACDC
movs r0, 0xD
b _081CACF0
_081CACDC:
ldrh r1, [r2, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _081CACEA
movs r0, 0
b _081CACF0
_081CACEA:
ldr r0, =sub_81CAB44
str r0, [r3, 0x18]
movs r0, 0xE
_081CACF0:
pop {r1}
bx r1
.pool
thumb_func_end sub_81CACB8
thumb_func_start sub_81CACF8
sub_81CACF8: @ 81CACF8
push {lr}
adds r2, r0, 0
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _081CAD10
movs r0, 0
b _081CAD16
.pool
_081CAD10:
ldr r0, =sub_81CAB44
str r0, [r2, 0x18]
movs r0, 0xA
_081CAD16:
pop {r1}
bx r1
.pool
thumb_func_end sub_81CACF8
thumb_func_start sub_81CAD20
sub_81CAD20: @ 81CAD20
push {r4-r7,lr}
adds r5, r0, 0
movs r0, 0x5
bl sub_81C763C
adds r4, r0, 0
cmp r5, 0x1
beq _081CAD4C
cmp r5, 0x1
bgt _081CAD3A
cmp r5, 0
beq _081CAD44
b _081CAE00
_081CAD3A:
cmp r5, 0x2
beq _081CAD9C
cmp r5, 0x3
beq _081CADFC
b _081CAE00
_081CAD44:
strh r5, [r4, 0x8]
strh r5, [r4, 0xA]
_081CAD48:
movs r0, 0x1
b _081CAE02
_081CAD4C:
movs r6, 0
ldrh r5, [r4, 0x8]
_081CAD50:
adds r0, r5, 0
bl MatchCallFlagGetByIndex
cmp r0, 0
beq _081CAD80
ldrh r0, [r4, 0xA]
lsls r0, 2
adds r0, r4, r0
strh r5, [r0, 0x1E]
ldrh r0, [r4, 0xA]
lsls r0, 2
adds r0, r4, r0
movs r1, 0x1
strb r1, [r0, 0x1C]
adds r0, r5, 0
bl sub_81D16DC
ldrh r1, [r4, 0xA]
lsls r1, 2
adds r1, r4, r1
strb r0, [r1, 0x1D]
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
_081CAD80:
ldrh r0, [r4, 0x8]
adds r1, r0, 0x1
movs r2, 0
strh r1, [r4, 0x8]
lsls r0, r1, 16
lsrs r0, 16
cmp r0, 0x14
bhi _081CADF6
adds r6, 0x1
adds r5, 0x1
cmp r6, 0x1D
ble _081CAD50
movs r0, 0x3
b _081CAE02
_081CAD9C:
movs r6, 0
ldrh r5, [r4, 0x8]
movs r7, 0
_081CADA2:
ldrh r0, [r4, 0x8]
bl sub_81D1BF8
cmp r0, 0
bne _081CADDC
ldrh r0, [r4, 0x8]
bl sub_81CAE08
cmp r0, 0
beq _081CADDC
ldrh r0, [r4, 0xA]
lsls r0, 2
adds r0, r4, r0
ldrh r1, [r4, 0x8]
strh r1, [r0, 0x1E]
ldrh r0, [r4, 0xA]
lsls r0, 2
adds r0, r4, r0
strb r7, [r0, 0x1C]
adds r0, r5, 0
bl sub_81CB0C8
ldrh r1, [r4, 0xA]
lsls r1, 2
adds r1, r4, r1
strb r0, [r1, 0x1D]
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
_081CADDC:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x4D
bhi _081CAD48
adds r6, 0x1
adds r5, 0x1
cmp r6, 0x1D
ble _081CADA2
movs r0, 0x3
b _081CAE02
_081CADF6:
strh r1, [r4, 0xC]
strh r2, [r4, 0x8]
b _081CAD48
_081CADFC:
movs r0, 0x1
str r0, [r4, 0x10]
_081CAE00:
movs r0, 0x4
_081CAE02:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81CAD20
thumb_func_start sub_81CAE08
sub_81CAE08: @ 81CAE08
push {lr}
cmp r0, 0x4D
ble _081CAE12
movs r0, 0
b _081CAE24
_081CAE12:
movs r1, 0xAE
lsls r1, 1
adds r0, r1
lsls r0, 16
lsrs r0, 16
bl FlagGet
lsls r0, 24
lsrs r0, 24
_081CAE24:
pop {r1}
bx r1
thumb_func_end sub_81CAE08
thumb_func_start sub_81CAE28
sub_81CAE28: @ 81CAE28
push {lr}
movs r0, 0x5
bl sub_81C763C
ldr r0, [r0, 0x10]
pop {r1}
bx r1
thumb_func_end sub_81CAE28
thumb_func_start sub_81CAE38
sub_81CAE38: @ 81CAE38
push {lr}
movs r0, 0x5
bl sub_81C763C
ldrh r0, [r0, 0xA]
pop {r1}
bx r1
thumb_func_end sub_81CAE38
thumb_func_start sub_81CAE48
sub_81CAE48: @ 81CAE48
push {lr}
movs r0, 0x5
bl sub_81C763C
ldrh r0, [r0, 0xC]
pop {r1}
bx r1
thumb_func_end sub_81CAE48
thumb_func_start sub_81CAE58
sub_81CAE58: @ 81CAE58
push {lr}
movs r0, 0x5
bl sub_81C763C
adds r1, r0, 0
ldrh r0, [r1, 0xA]
ldrh r1, [r1, 0xC]
subs r0, r1
pop {r1}
bx r1
thumb_func_end sub_81CAE58
thumb_func_start sub_81CAE6C
sub_81CAE6C: @ 81CAE6C
push {r4,lr}
adds r4, r0, 0
movs r0, 0x5
bl sub_81C763C
adds r1, r0, 0
ldrh r0, [r1, 0xC]
adds r4, r0
ldrh r0, [r1, 0xA]
cmp r4, r0
bge _081CAE8A
lsls r0, r4, 2
adds r0, r1, r0
ldrh r0, [r0, 0x1E]
b _081CAE8C
_081CAE8A:
movs r0, 0x4E
_081CAE8C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CAE6C
thumb_func_start sub_81CAE94
sub_81CAE94: @ 81CAE94
push {lr}
movs r0, 0x5
bl sub_81C763C
adds r0, 0x1C
pop {r1}
bx r1
thumb_func_end sub_81CAE94
thumb_func_start sub_81CAEA4
sub_81CAEA4: @ 81CAEA4
push {r4,lr}
adds r4, r0, 0
movs r0, 0x5
bl sub_81C763C
lsls r4, 2
adds r0, r4
ldrb r0, [r0, 0x1D]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CAEA4
thumb_func_start sub_81CAEBC
sub_81CAEBC: @ 81CAEBC
push {r4,lr}
adds r4, r0, 0
movs r0, 0x5
bl sub_81C763C
lsls r1, r4, 2
adds r1, r0, r1
ldrb r0, [r1, 0x1C]
cmp r0, 0
bne _081CAED4
ldrh r4, [r1, 0x1E]
b _081CAEDC
_081CAED4:
ldrh r0, [r1, 0x1E]
bl MatchCall_GetRematchTableIdx
adds r4, r0, 0
_081CAEDC:
cmp r4, 0x4E
beq _081CAEFC
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x000009ca
adds r0, r1
adds r0, r4
ldrb r1, [r0]
negs r0, r1
orrs r0, r1
lsrs r0, 31
b _081CAEFE
.pool
_081CAEFC:
movs r0, 0
_081CAEFE:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CAEBC
thumb_func_start sub_81CAF04
sub_81CAF04: @ 81CAF04
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x5
bl sub_81C763C
lsls r1, r4, 2
adds r1, r0, r1
ldrb r0, [r1, 0x1C]
cmp r0, 0
bne _081CAF34
ldrh r0, [r1, 0x1E]
bl GetTrainerIdxByRematchIdx
adds r4, r0, 0
ldr r1, =gTrainers
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldrb r0, [r0, 0x3]
b _081CAF6C
.pool
_081CAF34:
ldrh r5, [r1, 0x1E]
adds r0, r5, 0
bl MatchCall_GetRematchTableIdx
adds r4, r0, 0
cmp r4, 0x4E
bne _081CAF58
adds r0, r5, 0
bl sub_81D1BD0
adds r4, r0, 0
ldr r0, =gFacilityClassToPicIndex
adds r0, r4, r0
ldrb r0, [r0]
b _081CAF6C
.pool
_081CAF58:
adds r0, r4, 0
bl GetTrainerIdxByRematchIdx
adds r4, r0, 0
ldr r0, =gTrainers
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldrb r0, [r1, 0x3]
_081CAF6C:
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CAF04
thumb_func_start sub_81CAF78
sub_81CAF78: @ 81CAF78
push {r4-r6,lr}
adds r5, r0, 0
adds r6, r1, 0
movs r0, 0x5
bl sub_81C763C
adds r4, r0, 0
movs r0, 0
strb r0, [r6]
ldr r0, =gMapHeader
ldrb r0, [r0, 0x17]
bl Overworld_MapTypeAllowsTeleportAndFly
lsls r0, 24
cmp r0, 0
bne _081CAFA4
ldr r0, =gText_CallCantBeMadeHere
b _081CAFCE
.pool
_081CAFA4:
lsls r0, r5, 2
adds r1, r4, r0
ldrb r0, [r1, 0x1C]
cmp r0, 0
bne _081CAFC4
ldrh r0, [r1, 0x1E]
bl GetTrainerIdxByRematchIdx
ldr r1, =gStringVar4
bl sub_81967AC
strb r0, [r6]
b _081CAFCC
.pool
_081CAFC4:
ldrh r0, [r1, 0x1E]
ldr r1, =gStringVar4
bl MatchCall_GetMessage
_081CAFCC:
ldr r0, =gStringVar4
_081CAFCE:
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CAF78
thumb_func_start sub_81CAFD8
sub_81CAFD8: @ 81CAFD8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x5
bl sub_81C763C
lsls r4, 2
adds r4, r0, r4
ldrb r0, [r4, 0x1C]
cmp r0, 0
beq _081CB004
ldrh r0, [r4, 0x1E]
bl MatchCall_GetRematchTableIdx
adds r1, r0, 0
cmp r1, 0x4E
bne _081CB006
ldrh r0, [r4, 0x1E]
adds r1, r5, 0
bl sub_81D1B40
b _081CB012
_081CB004:
ldrh r1, [r4, 0x1E]
_081CB006:
ldr r2, =gUnknown_08622028
lsls r0, r5, 2
lsls r1, 4
adds r0, r1
adds r0, r2
ldr r0, [r0]
_081CB012:
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CAFD8
thumb_func_start sub_81CB01C
sub_81CB01C: @ 81CB01C
push {lr}
movs r0, 0x5
bl sub_81C763C
ldrh r0, [r0]
pop {r1}
bx r1
thumb_func_end sub_81CB01C
thumb_func_start sub_81CB02C
sub_81CB02C: @ 81CB02C
push {r4,lr}
adds r4, r0, 0
movs r0, 0x5
bl sub_81C763C
adds r1, r0, 0
ldrh r0, [r1, 0x2]
cmp r0, r4
blt _081CB046
ldr r0, [r1, 0x4]
adds r0, r4
ldrb r0, [r0]
b _081CB048
_081CB046:
movs r0, 0x3
_081CB048:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CB02C
thumb_func_start sub_81CB050
sub_81CB050: @ 81CB050
push {r4,lr}
sub sp, 0x8
adds r2, r0, 0
adds r4, r1, 0
ldrb r0, [r2]
cmp r0, 0
bne _081CB088
ldrh r0, [r2, 0x2]
bl GetTrainerIdxByRematchIdx
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTrainers
adds r1, r0
ldrb r2, [r1, 0x1]
movs r0, 0xD
muls r0, r2
ldr r2, =gTrainerClassNames
adds r0, r2
str r0, [sp]
adds r1, 0x4
str r1, [sp, 0x4]
b _081CB092
.pool
_081CB088:
ldrh r0, [r2, 0x2]
add r2, sp, 0x4
mov r1, sp
bl sub_81D1A78
_081CB092:
ldr r2, [sp]
cmp r2, 0
beq _081CB0B4
ldr r0, [sp, 0x4]
cmp r0, 0
beq _081CB0B4
adds r0, r4, 0
movs r1, 0x7
movs r3, 0x45
bl sub_81DB494
ldr r2, [sp, 0x4]
movs r1, 0x7
movs r3, 0x33
bl sub_81DB494
b _081CB0C0
_081CB0B4:
adds r0, r4, 0
movs r1, 0x7
movs r2, 0
movs r3, 0x78
bl sub_81DB494
_081CB0C0:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CB050
thumb_func_start sub_81CB0C8
sub_81CB0C8: @ 81CB0C8
push {lr}
ldr r1, =gRematchTable
lsls r0, 4
adds r0, r1
ldrh r2, [r0, 0xA]
ldrh r1, [r0, 0xC]
adds r0, r2, 0
bl Overworld_GetMapHeaderByGroupAndId
ldrb r0, [r0, 0x14]
pop {r1}
bx r1
.pool
thumb_func_end sub_81CB0C8
thumb_func_start sub_81CB0E4
sub_81CB0E4: @ 81CB0E4
push {r4-r7,lr}
adds r5, r0, 0
movs r0, 0x5
bl sub_81C763C
adds r7, r0, 0
movs r6, 0x1
adds r5, 0x1
ldrh r0, [r7, 0xA]
cmp r5, r0
bge _081CB120
lsls r0, r5, 2
adds r0, 0x1C
adds r4, r0, r7
_081CB100:
ldrb r0, [r4]
cmp r0, 0
beq _081CB110
ldrh r0, [r4, 0x2]
bl sub_81D17E8
cmp r0, 0
beq _081CB114
_081CB110:
adds r0, r6, 0
b _081CB122
_081CB114:
adds r6, 0x1
adds r4, 0x4
adds r5, 0x1
ldrh r0, [r7, 0xA]
cmp r5, r0
blt _081CB100
_081CB120:
movs r0, 0
_081CB122:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81CB0E4
thumb_func_start sub_81CB128
sub_81CB128: @ 81CB128
push {r4-r6,lr}
adds r5, r0, 0
movs r0, 0x5
bl sub_81C763C
adds r1, r0, 0
movs r6, 0x1
negs r6, r6
subs r5, 0x1
cmp r5, 0
blt _081CB162
lsls r0, r5, 2
adds r0, 0x1C
adds r4, r0, r1
_081CB144:
ldrb r0, [r4]
cmp r0, 0
beq _081CB154
ldrh r0, [r4, 0x2]
bl sub_81D17E8
cmp r0, 0
beq _081CB158
_081CB154:
adds r0, r6, 0
b _081CB164
_081CB158:
subs r6, 0x1
subs r4, 0x4
subs r5, 0x1
cmp r5, 0
bge _081CB144
_081CB162:
movs r0, 0
_081CB164:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81CB128
thumb_func_start sub_81CB16C
sub_81CB16C: @ 81CB16C
push {r4,lr}
movs r4, 0
_081CB170:
adds r0, r4, 0
bl sub_81CAE08
cmp r0, 0
beq _081CB18A
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x000009ca
adds r0, r1
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
bne _081CB1B2
_081CB18A:
adds r4, 0x1
cmp r4, 0x4D
ble _081CB170
movs r4, 0
_081CB192:
adds r0, r4, 0
bl MatchCallFlagGetByIndex
cmp r0, 0
beq _081CB1C0
adds r0, r4, 0
bl MatchCall_GetRematchTableIdx
ldr r1, =gSaveBlock1Ptr
ldr r1, [r1]
ldr r2, =0x000009ca
adds r1, r2
adds r1, r0
ldrb r0, [r1]
cmp r0, 0
beq _081CB1C0
_081CB1B2:
movs r0, 0x1
b _081CB1C8
.pool
_081CB1C0:
adds r4, 0x1
cmp r4, 0x14
ble _081CB192
movs r0, 0
_081CB1C8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CB16C
thumb_func_start sub_81CB1D0
sub_81CB1D0: @ 81CB1D0
push {r4,lr}
movs r0, 0x5
bl sub_81C763C
adds r4, r0, 0
bl sub_81C875C
adds r1, r0, 0
lsls r0, r1, 2
adds r4, r0
ldrb r0, [r4, 0x1C]
cmp r0, 0
bne _081CB218
adds r0, r1, 0
bl sub_81CAEA4
ldr r1, =gMapHeader
lsls r0, 16
lsrs r0, 16
ldrb r1, [r1, 0x14]
cmp r0, r1
bne _081CB258
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x000009ca
adds r0, r1
ldrh r4, [r4, 0x1E]
adds r0, r4
ldrb r0, [r0]
b _081CB246
.pool
_081CB218:
ldrh r0, [r4, 0x1E]
cmp r0, 0xB
bne _081CB258
adds r0, r1, 0
bl sub_81CAEA4
ldr r1, =gMapHeader
lsls r0, 16
lsrs r0, 16
ldrb r1, [r1, 0x14]
cmp r0, r1
bne _081CB258
ldr r0, =0x0000086b
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081CB258
movs r0, 0x5B
bl FlagGet
lsls r0, 24
_081CB246:
cmp r0, 0
bne _081CB258
movs r0, 0x1
b _081CB25A
.pool
_081CB258:
movs r0, 0
_081CB25A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CB1D0
thumb_func_start sub_81CB260
sub_81CB260: @ 81CB260
push {r4,lr}
ldr r1, =0x00002048
movs r0, 0x6
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CB294
movs r0, 0
strb r0, [r4, 0x19]
ldr r0, =sub_81CB324
movs r1, 0x1
bl sub_81C7078
str r0, [r4, 0x4]
ldr r0, =sub_81CB310
str r0, [r4]
movs r0, 0x1
b _081CB296
.pool
_081CB294:
movs r0, 0
_081CB296:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CB260
thumb_func_start sub_81CB29C
sub_81CB29C: @ 81CB29C
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r5, r0, 0
ldr r0, =gUnknown_08622798
lsls r4, 2
adds r4, r0
ldr r0, [r4]
movs r1, 0x1
bl sub_81C7078
str r0, [r5, 0x4]
ldr r0, =sub_81CB310
str r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CB29C
thumb_func_start sub_81CB2CC
sub_81CB2CC: @ 81CB2CC
push {lr}
movs r0, 0x6
bl sub_81C763C
ldr r0, [r0]
bl _call_via_r0
pop {r1}
bx r1
thumb_func_end sub_81CB2CC
thumb_func_start sub_81CB2E0
sub_81CB2E0: @ 81CB2E0
push {r4,lr}
movs r0, 0x6
bl sub_81C763C
adds r4, r0, 0
bl sub_81CC2B4
bl sub_81CBC1C
ldrb r0, [r4, 0x12]
bl RemoveWindow
ldrb r0, [r4, 0x10]
bl RemoveWindow
ldrb r0, [r4, 0x14]
bl RemoveWindow
movs r0, 0x6
bl sub_81C7650
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CB2E0
thumb_func_start sub_81CB310
sub_81CB310: @ 81CB310
push {lr}
movs r0, 0x6
bl sub_81C763C
ldr r0, [r0, 0x4]
bl sub_81C70D8
pop {r1}
bx r1
thumb_func_end sub_81CB310
thumb_func_start sub_81CB324
sub_81CB324: @ 81CB324
push {r4,r5,lr}
sub sp, 0x8
adds r4, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x7
bls _081CB338
b _081CB504
_081CB338:
lsls r0, r4, 2
ldr r1, =_081CB348
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081CB348:
.4byte _081CB368
.4byte _081CB3D4
.4byte _081CB424
.4byte _081CB468
.4byte _081CB482
.4byte _081CB494
.4byte _081CB4A6
.4byte _081CB4EA
_081CB368:
ldr r0, =gUnknown_0862278C
movs r1, 0x3
bl sub_81C7B54
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgY
ldr r1, =gUnknown_08622530
movs r0, 0
str r0, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r0, =0x00001024
adds r1, r5, r0
movs r0, 0x2
bl SetBgTilemapBuffer
ldr r1, =gUnknown_086225D4
movs r0, 0x2
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
movs r0, 0x2
bl CopyBgTilemapBufferToVram
ldr r0, =gUnknown_08622510
movs r1, 0x20
movs r2, 0x20
bl sub_81C7944
movs r0, 0x2
b _081CB418
.pool
_081CB3D4:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
beq _081CB3E0
b _081CB4FA
_081CB3E0:
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x1
bl sub_8199DF0
adds r1, r5, 0
adds r1, 0x24
movs r0, 0x1
bl SetBgTilemapBuffer
movs r1, 0x80
lsls r1, 5
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
ldr r0, =gUnknown_086226E0
movs r1, 0x10
movs r2, 0x20
bl sub_81C7944
movs r0, 0x1
_081CB418:
bl CopyBgTilemapBufferToVram
movs r0, 0
b _081CB506
.pool
_081CB424:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _081CB4FA
adds r0, r5, 0
bl sub_81CC034
ldr r1, =gUnknown_08622760
str r4, [sp]
movs r0, 0x3
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r0, =gUnknown_08622700
movs r1, 0x30
movs r2, 0x20
bl sub_81C7944
ldr r0, =gUnknown_08622720
movs r1, 0x50
movs r2, 0x20
bl sub_81C7944
movs r0, 0
b _081CB506
.pool
_081CB468:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081CB4FA
bl sub_81CAE28
cmp r0, 0
beq _081CB4FA
bl sub_81CBBB8
movs r0, 0
b _081CB506
_081CB482:
bl sub_81C8224
cmp r0, 0
bne _081CB4FA
adds r0, r5, 0
bl sub_81CBD78
movs r0, 0
b _081CB506
_081CB494:
adds r0, r5, 0
bl sub_81CBDC0
adds r0, r5, 0
movs r1, 0
bl sub_81CBEF8
movs r0, 0
b _081CB506
_081CB4A6:
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl ShowBg
movs r0, 0x1
bl ShowBg
bl sub_81CC214
movs r0, 0x3
bl sub_81C7DFC
movs r0, 0x3
movs r1, 0x1
movs r2, 0
bl sub_81C7FA0
movs r0, 0x1
bl sub_81C7AC0
movs r0, 0
b _081CB506
_081CB4EA:
bl sub_81C7B34
cmp r0, 0
bne _081CB4FA
bl sub_81C8010
cmp r0, 0
beq _081CB4FE
_081CB4FA:
movs r0, 0x2
b _081CB506
_081CB4FE:
movs r0, 0x1
bl sub_81CBC38
_081CB504:
movs r0, 0x4
_081CB506:
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CB324
thumb_func_start sub_81CB510
sub_81CB510: @ 81CB510
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081CB55E
cmp r4, 0x1
bgt _081CB52A
cmp r4, 0
beq _081CB534
b _081CB580
_081CB52A:
cmp r4, 0x2
beq _081CB566
cmp r4, 0x3
beq _081CB572
b _081CB580
_081CB534:
bl sub_81C868C
cmp r0, 0x1
beq _081CB54C
cmp r0, 0x1
bgt _081CB546
cmp r0, 0
beq _081CB580
b _081CB56E
_081CB546:
cmp r0, 0x2
beq _081CB556
b _081CB56E
_081CB54C:
movs r0, 0x5
bl PlaySE
movs r0, 0x7
b _081CB582
_081CB556:
movs r0, 0x5
bl PlaySE
b _081CB56E
_081CB55E:
bl sub_81C8630
cmp r0, 0
bne _081CB57C
_081CB566:
adds r0, r5, 0
movs r1, 0
bl sub_81CBEF8
_081CB56E:
movs r0, 0
b _081CB582
_081CB572:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081CB580
_081CB57C:
movs r0, 0x2
b _081CB582
_081CB580:
movs r0, 0x4
_081CB582:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CB510
thumb_func_start sub_81CB588
sub_81CB588: @ 81CB588
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081CB5D6
cmp r4, 0x1
bgt _081CB5A2
cmp r4, 0
beq _081CB5AC
b _081CB5F8
_081CB5A2:
cmp r4, 0x2
beq _081CB5DE
cmp r4, 0x3
beq _081CB5EA
b _081CB5F8
_081CB5AC:
bl sub_81C8658
cmp r0, 0x1
beq _081CB5C4
cmp r0, 0x1
bgt _081CB5BE
cmp r0, 0
beq _081CB5F8
b _081CB5E6
_081CB5BE:
cmp r0, 0x2
beq _081CB5CE
b _081CB5E6
_081CB5C4:
movs r0, 0x5
bl PlaySE
movs r0, 0x7
b _081CB5FA
_081CB5CE:
movs r0, 0x5
bl PlaySE
b _081CB5E6
_081CB5D6:
bl sub_81C8630
cmp r0, 0
bne _081CB5F4
_081CB5DE:
adds r0, r5, 0
movs r1, 0
bl sub_81CBEF8
_081CB5E6:
movs r0, 0
b _081CB5FA
_081CB5EA:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081CB5F8
_081CB5F4:
movs r0, 0x2
b _081CB5FA
_081CB5F8:
movs r0, 0x4
_081CB5FA:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CB588
thumb_func_start sub_81CB600
sub_81CB600: @ 81CB600
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081CB64E
cmp r4, 0x1
bgt _081CB61A
cmp r4, 0
beq _081CB624
b _081CB670
_081CB61A:
cmp r4, 0x2
beq _081CB656
cmp r4, 0x3
beq _081CB662
b _081CB670
_081CB624:
bl sub_81C870C
cmp r0, 0x1
beq _081CB63C
cmp r0, 0x1
bgt _081CB636
cmp r0, 0
beq _081CB670
b _081CB65E
_081CB636:
cmp r0, 0x2
beq _081CB646
b _081CB65E
_081CB63C:
movs r0, 0x5
bl PlaySE
movs r0, 0x7
b _081CB672
_081CB646:
movs r0, 0x5
bl PlaySE
b _081CB65E
_081CB64E:
bl sub_81C8630
cmp r0, 0
bne _081CB66C
_081CB656:
adds r0, r5, 0
movs r1, 0
bl sub_81CBEF8
_081CB65E:
movs r0, 0
b _081CB672
_081CB662:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081CB670
_081CB66C:
movs r0, 0x2
b _081CB672
_081CB670:
movs r0, 0x4
_081CB672:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CB600
thumb_func_start sub_81CB678
sub_81CB678: @ 81CB678
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081CB6C6
cmp r4, 0x1
bgt _081CB692
cmp r4, 0
beq _081CB69C
b _081CB6E8
_081CB692:
cmp r4, 0x2
beq _081CB6CE
cmp r4, 0x3
beq _081CB6DA
b _081CB6E8
_081CB69C:
bl sub_81C86CC
cmp r0, 0x1
beq _081CB6B4
cmp r0, 0x1
bgt _081CB6AE
cmp r0, 0
beq _081CB6E8
b _081CB6D6
_081CB6AE:
cmp r0, 0x2
beq _081CB6BE
b _081CB6D6
_081CB6B4:
movs r0, 0x5
bl PlaySE
movs r0, 0x7
b _081CB6EA
_081CB6BE:
movs r0, 0x5
bl PlaySE
b _081CB6D6
_081CB6C6:
bl sub_81C8630
cmp r0, 0
bne _081CB6E4
_081CB6CE:
adds r0, r5, 0
movs r1, 0
bl sub_81CBEF8
_081CB6D6:
movs r0, 0
b _081CB6EA
_081CB6DA:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081CB6E8
_081CB6E4:
movs r0, 0x2
b _081CB6EA
_081CB6E8:
movs r0, 0x4
_081CB6EA:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CB678
thumb_func_start sub_81CB6F0
sub_81CB6F0: @ 81CB6F0
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0
beq _081CB706
cmp r4, 0x1
beq _081CB71C
b _081CB72A
_081CB706:
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
bl sub_81CBF60
movs r0, 0x7
bl sub_81C7BA4
movs r0, 0
b _081CB72C
_081CB71C:
adds r0, r5, 0
bl sub_81CBFC4
cmp r0, 0
beq _081CB72A
movs r0, 0x2
b _081CB72C
_081CB72A:
movs r0, 0x4
_081CB72C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CB6F0
thumb_func_start sub_81CB734
sub_81CB734: @ 81CB734
push {r4,lr}
movs r0, 0x5
bl PlaySE
movs r0, 0x6
bl sub_81C763C
adds r4, r0, 0
bl sub_81CB01C
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_81CC344
movs r0, 0x4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CB734
thumb_func_start sub_81CB75C
sub_81CB75C: @ 81CB75C
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0
beq _081CB772
cmp r4, 0x1
beq _081CB788
b _081CB796
_081CB772:
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
bl sub_81CBFF0
movs r0, 0x6
bl sub_81C7BA4
movs r0, 0
b _081CB798
_081CB788:
adds r0, r5, 0
bl sub_81CC004
cmp r0, 0
beq _081CB796
movs r0, 0x2
b _081CB798
_081CB796:
movs r0, 0x4
_081CB798:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CB75C
thumb_func_start sub_81CB7A0
sub_81CB7A0: @ 81CB7A0
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081CB7D4
cmp r4, 0x1
bgt _081CB7BA
cmp r4, 0
beq _081CB7C4
b _081CB81A
_081CB7BA:
cmp r4, 0x2
beq _081CB7F8
cmp r4, 0x3
beq _081CB80C
b _081CB81A
_081CB7C4:
movs r0, 0x1
bl sub_81C9148
adds r0, r5, 0
bl sub_81CC058
movs r0, 0
b _081CB81C
_081CB7D4:
adds r0, r5, 0
bl sub_81CC0D0
adds r4, r0, 0
cmp r4, 0
bne _081CB816
adds r0, r5, 0
bl sub_81CC0E0
ldr r0, =0x00000107
bl PlaySE
strb r4, [r5, 0xE]
movs r0, 0
b _081CB81C
.pool
_081CB7F8:
adds r0, r5, 0
bl sub_81CC104
cmp r0, 0
bne _081CB816
adds r0, r5, 0
bl sub_81CC158
movs r0, 0
b _081CB81C
_081CB80C:
adds r0, r5, 0
bl sub_81CC194
cmp r0, 0
beq _081CB81A
_081CB816:
movs r0, 0x2
b _081CB81C
_081CB81A:
movs r0, 0x4
_081CB81C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CB7A0
thumb_func_start sub_81CB824
sub_81CB824: @ 81CB824
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081CB85E
cmp r4, 0x1
bgt _081CB83E
cmp r4, 0
beq _081CB844
b _081CB880
_081CB83E:
cmp r4, 0x2
beq _081CB872
b _081CB880
_081CB844:
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
bl sub_81CC09C
movs r0, 0x1
bl sub_81C9148
movs r0, 0x1
strb r0, [r5, 0xE]
movs r0, 0
b _081CB882
_081CB85E:
adds r0, r5, 0
bl sub_81CC0D0
cmp r0, 0
bne _081CB87C
adds r0, r5, 0
bl sub_81CC11C
movs r0, 0
b _081CB882
_081CB872:
adds r0, r5, 0
bl sub_81CC140
cmp r0, 0
beq _081CB880
_081CB87C:
movs r0, 0x2
b _081CB882
_081CB880:
movs r0, 0x4
_081CB882:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CB824
thumb_func_start sub_81CB888
sub_81CB888: @ 81CB888
push {r4-r6,lr}
adds r5, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r4, r0, 0
movs r6, 0
cmp r5, 0x6
bhi _081CB934
lsls r0, r5, 2
ldr r1, =_081CB8A8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081CB8A8:
.4byte _081CB8C4
.4byte _081CB8DA
.4byte _081CB8E2
.4byte _081CB8F0
.4byte _081CB8F8
.4byte _081CB90C
.4byte _081CB922
_081CB8C4:
ldrb r0, [r4, 0xE]
cmp r0, 0
bne _081CB8D2
movs r0, 0x84
lsls r0, 1
bl PlaySE
_081CB8D2:
movs r0, 0x5
bl PlaySE
b _081CB934
_081CB8DA:
adds r0, r4, 0
bl sub_81CC1DC
b _081CB934
_081CB8E2:
adds r0, r4, 0
bl sub_81CC204
cmp r0, 0
beq _081CB934
_081CB8EC:
movs r6, 0x2
b _081CB934
_081CB8F0:
adds r0, r4, 0
bl sub_81CBFF0
b _081CB934
_081CB8F8:
adds r0, r4, 0
bl sub_81CC004
cmp r0, 0
beq _081CB904
movs r6, 0x2
_081CB904:
movs r0, 0x6
bl sub_81C7BA4
b _081CB934
_081CB90C:
bl sub_81C7BE8
cmp r0, 0
bne _081CB8EC
ldrb r0, [r4, 0xF]
cmp r0, 0
beq _081CB92C
bl sub_81C8838
movs r6, 0x1
b _081CB934
_081CB922:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _081CB8EC
_081CB92C:
movs r0, 0
bl sub_81C9148
movs r6, 0x4
_081CB934:
adds r0, r6, 0
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81CB888
thumb_func_start sub_81CB93C
sub_81CB93C: @ 81CB93C
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081CB974
cmp r4, 0x1
bgt _081CB956
cmp r4, 0
beq _081CB960
b _081CB9BE
_081CB956:
cmp r4, 0x2
beq _081CB990
cmp r4, 0x3
beq _081CB9A0
b _081CB9BE
_081CB960:
movs r0, 0x5
bl PlaySE
bl sub_81C877C
adds r0, r5, 0
bl sub_81CC014
movs r0, 0
b _081CB9C0
_081CB974:
bl sub_81C8820
cmp r0, 0
bne _081CB9BA
adds r0, r5, 0
bl sub_81CC004
cmp r0, 0
bne _081CB9BA
movs r0, 0x8
bl sub_81C7BA4
movs r0, 0
b _081CB9C0
_081CB990:
movs r0, 0
bl sub_81C87AC
adds r0, r5, 0
bl sub_81CC39C
movs r0, 0
b _081CB9C0
_081CB9A0:
bl sub_81C8820
cmp r0, 0
bne _081CB9BA
adds r0, r5, 0
bl sub_81CC42C
cmp r0, 0
bne _081CB9BA
bl sub_81C7BE8
cmp r0, 0
beq _081CB9BE
_081CB9BA:
movs r0, 0x2
b _081CB9C0
_081CB9BE:
movs r0, 0x4
_081CB9C0:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CB93C
thumb_func_start sub_81CB9C8
sub_81CB9C8: @ 81CB9C8
push {r4,r5,lr}
adds r5, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r4, r0, 0
cmp r5, 0x4
bhi _081CBA60
lsls r0, r5, 2
ldr r1, =_081CB9E8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081CB9E8:
.4byte _081CB9FC
.4byte _081CBA1C
.4byte _081CBA34
.4byte _081CBA40
.4byte _081CBA4A
_081CB9FC:
bl sub_81C8770
bl sub_81CB0E4
adds r5, r0, 0
cmp r5, 0
beq _081CBA60
movs r0, 0x5
bl PlaySE
strh r5, [r4, 0x16]
adds r0, r4, 0
bl sub_81CC420
movs r0, 0
b _081CBA62
_081CBA1C:
adds r0, r4, 0
bl sub_81CC42C
cmp r0, 0
bne _081CBA5C
movs r0, 0x16
ldrsh r1, [r4, r0]
adds r0, r4, 0
bl sub_81CBEF8
movs r0, 0
b _081CBA62
_081CBA34:
movs r1, 0x16
ldrsh r0, [r4, r1]
bl sub_81C87AC
movs r0, 0
b _081CBA62
_081CBA40:
adds r0, r4, 0
bl sub_81CC39C
movs r0, 0
b _081CBA62
_081CBA4A:
bl sub_81C8820
cmp r0, 0
bne _081CBA5C
adds r0, r4, 0
bl sub_81CC42C
cmp r0, 0
beq _081CBA60
_081CBA5C:
movs r0, 0x2
b _081CBA62
_081CBA60:
movs r0, 0x4
_081CBA62:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CB9C8
thumb_func_start sub_81CBA68
sub_81CBA68: @ 81CBA68
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081CBA9C
cmp r4, 0x1
bgt _081CBA82
cmp r4, 0
beq _081CBA88
b _081CBACC
_081CBA82:
cmp r4, 0x2
beq _081CBABE
b _081CBACC
_081CBA88:
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
bl sub_81CC420
bl sub_81C87F0
movs r0, 0
b _081CBACE
_081CBA9C:
bl sub_81C8820
cmp r0, 0
bne _081CBAC8
adds r0, r5, 0
bl sub_81CC42C
cmp r0, 0
bne _081CBAC8
movs r0, 0x6
bl sub_81C7BA4
adds r0, r5, 0
bl sub_81CBDC0
movs r0, 0
b _081CBACE
_081CBABE:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081CBACC
_081CBAC8:
movs r0, 0x2
b _081CBACE
_081CBACC:
movs r0, 0x4
_081CBACE:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CBA68
thumb_func_start sub_81CBAD4
sub_81CBAD4: @ 81CBAD4
push {r4,r5,lr}
adds r5, r0, 0
movs r0, 0x6
bl sub_81C763C
adds r4, r0, 0
cmp r5, 0x4
bhi _081CBB6C
lsls r0, r5, 2
ldr r1, =_081CBAF4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081CBAF4:
.4byte _081CBB08
.4byte _081CBB28
.4byte _081CBB40
.4byte _081CBB4C
.4byte _081CBB56
_081CBB08:
bl sub_81C8770
bl sub_81CB128
adds r5, r0, 0
cmp r5, 0
beq _081CBB6C
movs r0, 0x5
bl PlaySE
strh r5, [r4, 0x16]
adds r0, r4, 0
bl sub_81CC420
movs r0, 0
b _081CBB6E
_081CBB28:
adds r0, r4, 0
bl sub_81CC42C
cmp r0, 0
bne _081CBB68
movs r0, 0x16
ldrsh r1, [r4, r0]
adds r0, r4, 0
bl sub_81CBEF8
movs r0, 0
b _081CBB6E
_081CBB40:
movs r1, 0x16
ldrsh r0, [r4, r1]
bl sub_81C87AC
movs r0, 0
b _081CBB6E
_081CBB4C:
adds r0, r4, 0
bl sub_81CC39C
movs r0, 0
b _081CBB6E
_081CBB56:
bl sub_81C8820
cmp r0, 0
bne _081CBB68
adds r0, r4, 0
bl sub_81CC42C
cmp r0, 0
beq _081CBB6C
_081CBB68:
movs r0, 0x2
b _081CBB6E
_081CBB6C:
movs r0, 0x4
_081CBB6E:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CBAD4
thumb_func_start sub_81CBB74
sub_81CBB74: @ 81CBB74
push {lr}
cmp r0, 0
beq _081CBB80
cmp r0, 0x1
beq _081CBB9A
b _081CBBB2
_081CBB80:
movs r0, 0x5
bl PlaySE
movs r0, 0
bl sub_81CBC38
movs r0, 0
bl sub_81C7AC0
bl sub_81C78A0
movs r0, 0
b _081CBBB4
_081CBB9A:
bl sub_81C7B34
cmp r0, 0
bne _081CBBAA
bl sub_81C78C0
cmp r0, 0
beq _081CBBAE
_081CBBAA:
movs r0, 0x2
b _081CBBB4
_081CBBAE:
bl sub_81C7FDC
_081CBBB2:
movs r0, 0x4
_081CBBB4:
pop {r1}
bx r1
thumb_func_end sub_81CBB74
thumb_func_start sub_81CBBB8
sub_81CBBB8: @ 81CBBB8
push {lr}
sub sp, 0x18
bl sub_81CAE94
str r0, [sp]
bl sub_81CAE38
mov r1, sp
movs r2, 0
strh r0, [r1, 0x4]
movs r0, 0x4
strb r0, [r1, 0x8]
mov r0, sp
strh r2, [r0, 0x6]
movs r0, 0xD
strb r0, [r1, 0x9]
movs r0, 0x10
strb r0, [r1, 0xA]
movs r0, 0x1
strb r0, [r1, 0xB]
movs r0, 0x8
strb r0, [r1, 0xC]
movs r0, 0x3
strb r0, [r1, 0xD]
movs r0, 0x7
strb r0, [r1, 0xE]
ldr r0, =sub_81CB050
str r0, [sp, 0x10]
ldr r0, =sub_81CBCEC
str r0, [sp, 0x14]
ldr r0, =gUnknown_08622794
movs r2, 0x2
bl sub_81C81D4
ldr r0, =sub_81CBC64
movs r1, 0x7
bl CreateTask
add sp, 0x18
pop {r0}
bx r0
.pool
thumb_func_end sub_81CBBB8
thumb_func_start sub_81CBC1C
sub_81CBC1C: @ 81CBC1C
push {lr}
bl sub_81C8234
ldr r0, =sub_81CBC64
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
pop {r0}
bx r0
.pool
thumb_func_end sub_81CBC1C
thumb_func_start sub_81CBC38
sub_81CBC38: @ 81CBC38
push {r4,lr}
adds r4, r0, 0
ldr r0, =sub_81CBC64
bl FindTaskIdByFunc
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
beq _081CBC56
ldr r1, =gTasks
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r1
strh r4, [r0, 0x26]
_081CBC56:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CBC38
thumb_func_start sub_81CBC64
sub_81CBC64: @ 81CBC64
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks + 0x8
adds r2, r1, r0
movs r1, 0x1E
ldrsh r0, [r2, r1]
cmp r0, 0
beq _081CBCC8
ldrh r0, [r2]
adds r0, 0x4
movs r1, 0x7F
ands r0, r1
strh r0, [r2]
ldr r1, =gSineTable
movs r3, 0
ldrsh r0, [r2, r3]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
lsls r0, 16
asrs r0, 20
strh r0, [r2, 0x2]
ldr r0, =gUnknown_08622720
adds r1, r0, 0
adds r1, 0x20
movs r3, 0x2
ldrsh r2, [r2, r3]
str r2, [sp]
ldr r4, =gPlttBufferUnfaded + 0xA0
str r4, [sp, 0x4]
movs r2, 0x10
movs r3, 0x10
bl sub_81C79BC
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081CBCC8
ldr r1, =gPlttBufferFaded + 0xA0
ldr r2, =0x04000008
adds r0, r4, 0
bl CpuSet
_081CBCC8:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CBC64
thumb_func_start sub_81CBCEC
sub_81CBCEC: @ 81CBCEC
push {r4-r6,lr}
adds r5, r1, 0
adds r4, r2, 0
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl GetWindowAttribute
lsls r0, 24
lsrs r0, 24
bl GetBgTilemapBuffer
adds r6, r0, 0
lsls r4, 7
adds r4, 0x3A
adds r6, r4
adds r0, r5, 0
bl sub_81CAEBC
cmp r0, 0
beq _081CBD30
movs r1, 0xA0
lsls r1, 7
adds r0, r1, 0
strh r0, [r6]
adds r1, r6, 0
adds r1, 0x40
ldr r2, =0x00005001
adds r0, r2, 0
strh r0, [r1]
b _081CBD3C
.pool
_081CBD30:
ldr r0, =0x00005002
adds r1, r0, 0
strh r1, [r6]
adds r0, r6, 0
adds r0, 0x40
strh r1, [r0]
_081CBD3C:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CBCEC
thumb_func_start sub_81CBD48
sub_81CBD48: @ 81CBD48
push {r4,lr}
adds r4, r1, 0
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl GetWindowAttribute
lsls r0, 24
lsrs r0, 24
bl GetBgTilemapBuffer
lsls r4, 7
adds r4, 0x3A
adds r0, r4
ldr r2, =0x00005002
adds r1, r2, 0
strh r1, [r0]
adds r0, 0x40
strh r1, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CBD48
thumb_func_start sub_81CBD78
sub_81CBD78: @ 81CBD78
push {r4,lr}
adds r4, r0, 0
ldr r0, =gUnknown_086227D8
bl AddWindow
strh r0, [r4, 0x10]
ldr r0, =gUnknown_086227E0
bl AddWindow
strh r0, [r4, 0x12]
ldrb r0, [r4, 0x10]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r4, 0x10]
bl PutWindowTilemap
ldrb r0, [r4, 0x12]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r4, 0x12]
bl PutWindowTilemap
ldrb r0, [r4, 0x10]
movs r1, 0x1
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CBD78
thumb_func_start sub_81CBDC0
sub_81CBDC0: @ 81CBDC0
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4, 0x12]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrh r0, [r4, 0x12]
bl sub_81CBDF4
ldrh r0, [r4, 0x12]
bl sub_81CBE0C
ldrh r0, [r4, 0x12]
bl sub_81CBE38
ldrh r0, [r4, 0x12]
bl sub_81CBE50
ldrb r0, [r4, 0x12]
movs r1, 0x2
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CBDC0
thumb_func_start sub_81CBDF4
sub_81CBDF4: @ 81CBDF4
push {lr}
lsls r0, 16
lsrs r0, 16
ldr r1, =gText_NumberRegistered
movs r2, 0
bl sub_81CBE88
pop {r0}
bx r0
.pool
thumb_func_end sub_81CBDF4
thumb_func_start sub_81CBE0C
sub_81CBE0C: @ 81CBE0C
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
bl sub_81CAE38
adds r1, r0, 0
mov r0, sp
movs r2, 0
movs r3, 0x3
bl ConvertIntToDecimalStringN
adds r0, r4, 0
mov r1, sp
movs r2, 0x1
bl sub_81CBEB4
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CBE0C
thumb_func_start sub_81CBE38
sub_81CBE38: @ 81CBE38
push {lr}
lsls r0, 16
lsrs r0, 16
ldr r1, =gText_NumberOfBattles
movs r2, 0x2
bl sub_81CBE88
pop {r0}
bx r0
.pool
thumb_func_end sub_81CBE38
thumb_func_start sub_81CBE50
sub_81CBE50: @ 81CBE50
push {r4,lr}
sub sp, 0x8
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0x9
bl GetGameStat
adds r1, r0, 0
ldr r0, =0x0001869f
cmp r1, r0
ble _081CBE68
adds r1, r0, 0
_081CBE68:
mov r0, sp
movs r2, 0
movs r3, 0x5
bl ConvertIntToDecimalStringN
adds r0, r4, 0
mov r1, sp
movs r2, 0x3
bl sub_81CBEB4
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CBE50
thumb_func_start sub_81CBE88
sub_81CBE88: @ 81CBE88
push {lr}
sub sp, 0xC
adds r3, r1, 0
lsls r2, 4
adds r2, 0x1
lsls r0, 24
lsrs r0, 24
lsls r2, 24
lsrs r2, 24
str r2, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x7
adds r2, r3, 0
movs r3, 0x2
bl AddTextPrinterParameterized
add sp, 0xC
pop {r0}
bx r0
thumb_func_end sub_81CBE88
thumb_func_start sub_81CBEB4
sub_81CBEB4: @ 81CBEB4
push {r4-r6,lr}
sub sp, 0xC
adds r5, r0, 0
adds r6, r1, 0
adds r4, r2, 0
lsls r5, 16
lsrs r5, 16
movs r0, 0x7
movs r2, 0x56
bl GetStringRightAlignXOffset
adds r3, r0, 0
lsls r4, 4
adds r4, 0x1
lsls r5, 24
lsrs r5, 24
lsls r3, 24
lsrs r3, 24
lsls r4, 24
lsrs r4, 24
str r4, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
adds r0, r5, 0
movs r1, 0x7
adds r2, r6, 0
bl AddTextPrinterParameterized
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81CBEB4
thumb_func_start sub_81CBEF8
sub_81CBEF8: @ 81CBEF8
push {r4,r5,lr}
sub sp, 0x2C
adds r5, r0, 0
adds r4, r1, 0
bl sub_81C875C
adds r0, r4
bl sub_81CAEA4
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0xD5
beq _081CBF1C
add r0, sp, 0xC
movs r2, 0
bl GetMapName
b _081CBF24
_081CBF1C:
ldr r1, =gText_Unknown
add r0, sp, 0xC
bl StringCopy
_081CBF24:
movs r0, 0x7
add r1, sp, 0xC
movs r2, 0x58
bl GetStringCenterAlignXOffset
adds r4, r0, 0
ldrb r0, [r5, 0x10]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r5, 0x10]
lsls r4, 24
lsrs r4, 24
movs r1, 0x1
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
str r1, [sp, 0x8]
movs r1, 0x7
add r2, sp, 0xC
adds r3, r4, 0
bl AddTextPrinterParameterized
add sp, 0x2C
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CBEF8
thumb_func_start sub_81CBF60
sub_81CBF60: @ 81CBF60
push {r4-r6,lr}
sub sp, 0xC
adds r5, r0, 0
ldrb r0, [r5, 0x12]
movs r1, 0x11
bl FillWindowPixelBuffer
movs r4, 0
movs r6, 0x80
lsls r6, 17
b _081CBF9C
_081CBF76:
ldrb r0, [r5, 0x12]
ldr r2, =gUnknown_086227E8
lsls r1, 2
adds r1, r2
ldr r2, [r1]
lsrs r1, r6, 24
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x7
movs r3, 0x10
bl AddTextPrinterParameterized
movs r0, 0x80
lsls r0, 21
adds r6, r0
adds r4, 0x1
_081CBF9C:
cmp r4, 0x2
bhi _081CBFAE
adds r0, r4, 0
bl sub_81CB02C
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0x3
bne _081CBF76
_081CBFAE:
ldrb r0, [r5, 0x12]
movs r1, 0x2
bl CopyWindowToVram
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CBF60
thumb_func_start sub_81CBFC4
sub_81CBFC4: @ 81CBFC4
push {r4,lr}
adds r4, r0, 0
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081CBFD6
movs r0, 0x1
b _081CBFE8
_081CBFD6:
bl sub_81CB01C
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_81CC2F0
movs r0, 0
_081CBFE8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CBFC4
thumb_func_start sub_81CBFF0
sub_81CBFF0: @ 81CBFF0
push {r4,lr}
adds r4, r0, 0
bl sub_81CC330
adds r0, r4, 0
bl sub_81CBDC0
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CBFF0
thumb_func_start sub_81CC004
sub_81CC004: @ 81CC004
push {lr}
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_81CC004
thumb_func_start sub_81CC014
sub_81CC014: @ 81CC014
push {r4,lr}
adds r4, r0, 0
bl sub_81CC330
ldrb r0, [r4, 0x12]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r4, 0x12]
movs r1, 0x2
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CC014
thumb_func_start sub_81CC034
sub_81CC034: @ 81CC034
push {r4,lr}
adds r4, r0, 0
ldr r0, =gUnknown_08622808
bl AddWindow
strh r0, [r4, 0x14]
ldrh r0, [r4, 0x14]
movs r1, 0x1
movs r2, 0x4
bl sub_8197184
bl sub_81C7B40
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CC034
thumb_func_start sub_81CC058
sub_81CC058: @ 81CC058
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x14]
movs r1, 0x1
movs r2, 0x4
bl sub_8197184
ldrh r0, [r4, 0x14]
movs r1, 0x1
movs r2, 0x4
bl sub_81971C4
ldrb r0, [r4, 0x14]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r4, 0x14]
bl PutWindowTilemap
ldrb r0, [r4, 0x14]
movs r1, 0x3
bl CopyWindowToVram
bl sub_81C7CCC
movs r2, 0
movs r1, 0x18
strh r1, [r0, 0x20]
movs r1, 0x70
strh r1, [r0, 0x22]
strh r2, [r0, 0x26]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CC058
thumb_func_start sub_81CC09C
sub_81CC09C: @ 81CC09C
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4, 0x14]
movs r1, 0x1
movs r2, 0x40
bl LoadUserWindowBorderGfx
ldrb r0, [r4, 0x14]
movs r1, 0x1
movs r2, 0x4
bl sub_8098858
ldrb r0, [r4, 0x14]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r4, 0x14]
bl PutWindowTilemap
ldrb r0, [r4, 0x14]
movs r1, 0x3
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CC09C
thumb_func_start sub_81CC0D0
sub_81CC0D0: @ 81CC0D0
push {lr}
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_81CC0D0
thumb_func_start sub_81CC0E0
sub_81CC0E0: @ 81CC0E0
push {lr}
sub sp, 0xC
ldrb r0, [r0, 0x14]
ldr r2, =gUnknown_086227F4
movs r1, 0x1
str r1, [sp]
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x20
bl AddTextPrinterParameterized
add sp, 0xC
pop {r0}
bx r0
.pool
thumb_func_end sub_81CC0E0
thumb_func_start sub_81CC104
sub_81CC104: @ 81CC104
push {r4,lr}
adds r4, r0, 0
bl RunTextPrinters
ldrb r0, [r4, 0x14]
bl IsTextPrinterActive
lsls r0, 16
lsrs r0, 16
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CC104
thumb_func_start sub_81CC11C
sub_81CC11C: @ 81CC11C
push {lr}
sub sp, 0xC
ldrb r0, [r0, 0x14]
ldr r2, =gText_TrainerCloseBy
movs r1, 0x1
str r1, [sp]
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
bl AddTextPrinterParameterized
add sp, 0xC
pop {r0}
bx r0
.pool
thumb_func_end sub_81CC11C
thumb_func_start sub_81CC140
sub_81CC140: @ 81CC140
push {r4,lr}
adds r4, r0, 0
bl RunTextPrinters
ldrb r0, [r4, 0x14]
bl IsTextPrinterActive
lsls r0, 16
lsrs r0, 16
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CC140
thumb_func_start sub_81CC158
sub_81CC158: @ 81CC158
push {r4,r5,lr}
sub sp, 0xC
adds r4, r0, 0
bl sub_81C875C
adds r1, r4, 0
adds r1, 0xF
bl sub_81CAF78
adds r5, r0, 0
bl GetPlayerTextSpeed
lsls r0, 24
lsrs r0, 24
ldrb r2, [r4, 0x14]
movs r1, 0x1
str r1, [sp]
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
adds r0, r2, 0
adds r2, r5, 0
movs r3, 0x20
bl AddTextPrinterParameterized
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81CC158
thumb_func_start sub_81CC194
sub_81CC194: @ 81CC194
push {r4,lr}
adds r4, r0, 0
ldr r0, =gMain
ldrh r1, [r0, 0x2C]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081CC1B8
ldr r0, =gTextFlags
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
strb r1, [r0]
b _081CC1C4
.pool
_081CC1B8:
ldr r2, =gTextFlags
ldrb r1, [r2]
movs r0, 0x2
negs r0, r0
ands r0, r1
strb r0, [r2]
_081CC1C4:
bl RunTextPrinters
ldrb r0, [r4, 0x14]
bl IsTextPrinterActive
lsls r0, 16
lsrs r0, 16
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CC194
thumb_func_start sub_81CC1DC
sub_81CC1DC: @ 81CC1DC
push {lr}
sub sp, 0x8
bl sub_81C7CE4
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
bl CopyBgTilemapBufferToVram
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_81CC1DC
thumb_func_start sub_81CC204
sub_81CC204: @ 81CC204
push {lr}
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_81CC204
thumb_func_start sub_81CC214
sub_81CC214: @ 81CC214
push {r4-r6,lr}
sub sp, 0x8
movs r0, 0x6
bl sub_81C763C
adds r6, r0, 0
movs r5, 0
ldr r4, =gUnknown_08622810
_081CC224:
adds r0, r4, 0
bl LoadCompressedObjectPic
adds r4, 0x8
adds r5, 0x1
cmp r5, 0
beq _081CC224
ldr r0, =gUnknown_08622818
bl sub_81C795C
movs r0, 0
str r0, [r6, 0x1C]
ldr r1, =0x00001828
adds r0, r6, r1
str r0, [sp]
ldr r1, =0xffff0000
ldr r0, [sp, 0x4]
ands r0, r1
movs r1, 0x80
lsls r1, 4
orrs r0, r1
ldr r1, =0x0000ffff
ands r0, r1
movs r1, 0x80
lsls r1, 12
orrs r0, r1
str r0, [sp, 0x4]
mov r0, sp
bl LoadSpriteSheet
ldr r2, =0x00001824
adds r1, r6, r2
lsls r0, 16
lsrs r0, 11
ldr r2, =0x06010000
adds r0, r2
str r0, [r1]
movs r0, 0xD
bl AllocSpritePalette
lsls r0, 24
lsrs r0, 20
movs r1, 0x80
lsls r1, 1
adds r0, r1
strh r0, [r6, 0x1A]
bl sub_81CC370
str r0, [r6, 0x20]
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CC214
thumb_func_start sub_81CC2B4
sub_81CC2B4: @ 81CC2B4
push {r4,lr}
movs r0, 0x6
bl sub_81C763C
adds r4, r0, 0
ldr r0, [r4, 0x1C]
cmp r0, 0
beq _081CC2C8
bl DestroySprite
_081CC2C8:
ldr r0, [r4, 0x20]
cmp r0, 0
beq _081CC2D2
bl DestroySprite
_081CC2D2:
movs r0, 0x8
bl FreeSpriteTilesByTag
movs r0, 0x7
bl FreeSpriteTilesByTag
movs r0, 0xC
bl FreeSpritePaletteByTag
movs r0, 0xD
bl FreeSpritePaletteByTag
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CC2B4
thumb_func_start sub_81CC2F0
sub_81CC2F0: @ 81CC2F0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldr r0, [r4, 0x1C]
cmp r0, 0
bne _081CC320
ldr r0, =gUnknown_08622830
movs r1, 0x4
movs r2, 0x50
movs r3, 0x5
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, =gSprites
adds r1, r0
str r1, [r4, 0x1C]
adds r0, r4, 0
adds r1, r5, 0
bl sub_81CC344
_081CC320:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CC2F0
thumb_func_start sub_81CC330
sub_81CC330: @ 81CC330
push {r4,lr}
adds r4, r0, 0
ldr r0, [r4, 0x1C]
bl DestroySprite
movs r0, 0
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CC330
thumb_func_start sub_81CC344
sub_81CC344: @ 81CC344
ldr r0, [r0, 0x1C]
lsls r1, 4
strh r1, [r0, 0x26]
bx lr
thumb_func_end sub_81CC344
thumb_func_start sub_81CC34C
sub_81CC34C: @ 81CC34C
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
ble _081CC36C
movs r0, 0
strh r0, [r2, 0x2E]
ldrh r0, [r2, 0x24]
adds r0, 0x1
movs r1, 0x7
ands r0, r1
strh r0, [r2, 0x24]
_081CC36C:
pop {r0}
bx r0
thumb_func_end sub_81CC34C
thumb_func_start sub_81CC370
sub_81CC370: @ 81CC370
push {lr}
ldr r0, =gUnknown_08622850
movs r1, 0x2C
movs r2, 0x68
movs r3, 0x6
bl CreateSprite
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
pop {r1}
bx r1
.pool
thumb_func_end sub_81CC370
thumb_func_start sub_81CC39C
sub_81CC39C: @ 81CC39C
push {r4-r7,lr}
adds r7, r0, 0
bl sub_81C875C
bl sub_81CAF04
cmp r0, 0
blt _081CC400
lsls r4, r0, 3
ldr r0, =gTrainerFrontPicTable
adds r0, r4, r0
ldr r1, =0x00001828
adds r5, r7, r1
adds r1, r5, 0
movs r2, 0
bl DecompressPicFromTable
ldr r0, =gTrainerFrontPicPaletteTable
adds r4, r0
ldr r0, [r4]
ldr r1, =0x00002028
adds r6, r7, r1
adds r1, r6, 0
bl LZ77UnCompWram
ldr r1, =0x00001824
adds r0, r7, r1
ldr r1, [r0]
movs r2, 0x80
lsls r2, 4
adds r0, r5, 0
movs r3, 0x1
bl RequestDma3Copy
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldrh r1, [r7, 0x1A]
adds r0, r6, 0
movs r2, 0x20
bl LoadPalette
ldr r1, [r7, 0x20]
movs r0, 0
strh r0, [r1, 0x2E]
ldr r0, [r7, 0x20]
strh r4, [r0, 0x3C]
ldr r1, [r7, 0x20]
ldr r0, =sub_81CC440
str r0, [r1, 0x1C]
_081CC400:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CC39C
thumb_func_start sub_81CC420
sub_81CC420: @ 81CC420
ldr r1, [r0, 0x20]
ldr r0, =sub_81CC4A4
str r0, [r1, 0x1C]
bx lr
.pool
thumb_func_end sub_81CC420
thumb_func_start sub_81CC42C
sub_81CC42C: @ 81CC42C
ldr r0, [r0, 0x20]
ldr r1, [r0, 0x1C]
ldr r0, =SpriteCallbackDummy
eors r1, r0
negs r0, r1
orrs r0, r1
lsrs r0, 31
bx lr
.pool
thumb_func_end sub_81CC42C
thumb_func_start sub_81CC440
sub_81CC440: @ 81CC440
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
beq _081CC452
cmp r0, 0x1
beq _081CC484
b _081CC498
_081CC452:
movs r1, 0x3C
ldrsh r0, [r4, r1]
bl CheckForSpaceForDma3Request
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
beq _081CC498
ldr r0, =0x0000ffb0
strh r0, [r4, 0x24]
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _081CC498
.pool
_081CC484:
ldrh r0, [r4, 0x24]
adds r0, 0x8
strh r0, [r4, 0x24]
lsls r0, 16
cmp r0, 0
blt _081CC498
movs r0, 0
strh r0, [r4, 0x24]
ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_081CC498:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CC440
thumb_func_start sub_81CC4A4
sub_81CC4A4: @ 81CC4A4
push {lr}
adds r3, r0, 0
ldrh r0, [r3, 0x24]
subs r0, 0x8
strh r0, [r3, 0x24]
lsls r0, 16
asrs r0, 16
movs r1, 0x50
negs r1, r1
cmp r0, r1
bgt _081CC4CA
adds r2, r3, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldr r0, =SpriteCallbackDummy
str r0, [r3, 0x1C]
_081CC4CA:
pop {r0}
bx r0
.pool
thumb_func_end sub_81CC4A4
thumb_func_start sub_81CC4D4
sub_81CC4D4: @ 81CC4D4
push {r4,lr}
movs r0, 0x3
movs r1, 0x14
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CC4F0
ldr r1, =0x00000884
movs r0, 0x10
bl sub_81C761C
cmp r0, 0
bne _081CC4F8
_081CC4F0:
movs r0, 0
b _081CC51A
.pool
_081CC4F8:
ldr r0, =gMapHeader
ldrb r0, [r0, 0x14]
bl sub_8124668
str r0, [r4, 0xC]
cmp r0, 0
bne _081CC514
ldr r0, =sub_81CC568
b _081CC516
.pool
_081CC514:
ldr r0, =sub_81CC5B4
_081CC516:
str r0, [r4, 0x10]
movs r0, 0x1
_081CC51A:
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CC4D4
thumb_func_start sub_81CC524
sub_81CC524: @ 81CC524
push {lr}
bl sub_8124658
ldr r1, =gSaveBlock2Ptr
ldr r3, [r1]
movs r1, 0x1
ands r1, r0
lsls r1, 3
ldrb r2, [r3, 0x15]
movs r0, 0x9
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3, 0x15]
movs r0, 0x10
bl sub_81C7650
movs r0, 0x3
bl sub_81C7650
pop {r0}
bx r0
.pool
thumb_func_end sub_81CC524
thumb_func_start sub_81CC554
sub_81CC554: @ 81CC554
push {lr}
movs r0, 0x3
bl sub_81C763C
ldr r1, [r0, 0x10]
bl _call_via_r1
pop {r1}
bx r1
thumb_func_end sub_81CC554
thumb_func_start sub_81CC568
sub_81CC568: @ 81CC568
push {r4,lr}
adds r4, r0, 0
bl sub_81230AC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
beq _081CC58C
cmp r0, 0x4
bgt _081CC582
cmp r0, 0x3
beq _081CC588
b _081CC5AC
_081CC582:
cmp r0, 0x5
beq _081CC59E
b _081CC5AC
_081CC588:
movs r0, 0x1
b _081CC5AE
_081CC58C:
bl sub_8124658
lsls r0, 24
cmp r0, 0
bne _081CC59A
movs r0, 0x3
b _081CC5AE
_081CC59A:
movs r0, 0x2
b _081CC5AE
_081CC59E:
ldr r0, =sub_81CC5DC
str r0, [r4, 0x10]
movs r0, 0x4
b _081CC5AE
.pool
_081CC5AC:
movs r0, 0
_081CC5AE:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CC568
thumb_func_start sub_81CC5B4
sub_81CC5B4: @ 81CC5B4
push {lr}
adds r2, r0, 0
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _081CC5CC
movs r0, 0
b _081CC5D2
.pool
_081CC5CC:
ldr r0, =sub_81CC5DC
str r0, [r2, 0x10]
movs r0, 0x4
_081CC5D2:
pop {r1}
bx r1
.pool
thumb_func_end sub_81CC5B4
thumb_func_start sub_81CC5DC
sub_81CC5DC: @ 81CC5DC
ldr r0, =0x000186a1
bx lr
.pool
thumb_func_end sub_81CC5DC
thumb_func_start sub_81CC5E4
sub_81CC5E4: @ 81CC5E4
push {lr}
movs r0, 0x3
bl sub_81C763C
ldr r0, [r0, 0xC]
pop {r1}
bx r1
thumb_func_end sub_81CC5E4
thumb_func_start sub_81CC5F4
sub_81CC5F4: @ 81CC5F4
push {r4,lr}
ldr r1, =0x00001948
movs r0, 0x4
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CC624
ldr r0, =sub_81CC6F4
movs r1, 0x1
bl sub_81C7078
str r0, [r4, 0x4]
ldr r0, =sub_81CC6BC
str r0, [r4]
movs r0, 0x1
b _081CC626
.pool
_081CC624:
movs r0, 0
_081CC626:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CC5F4
thumb_func_start sub_81CC62C
sub_81CC62C: @ 81CC62C
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x4
bl sub_81C763C
adds r5, r0, 0
ldr r0, =gUnknown_086230E4
lsls r4, 2
adds r4, r0
ldr r0, [r4]
movs r1, 0x1
bl sub_81C7078
str r0, [r5, 0x4]
ldr r0, =sub_81CC6BC
str r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CC62C
thumb_func_start sub_81CC65C
sub_81CC65C: @ 81CC65C
push {lr}
movs r0, 0x4
bl sub_81C763C
ldr r0, [r0]
bl _call_via_r0
pop {r1}
bx r1
thumb_func_end sub_81CC65C
thumb_func_start sub_81CC670
sub_81CC670: @ 81CC670
push {r4,lr}
movs r0, 0x4
bl sub_81C763C
adds r4, r0, 0
bl FreeRegionMapIconResources
bl sub_81CC9EC
ldrb r0, [r4, 0x8]
bl RemoveWindow
movs r0, 0x10
bl sub_81C7650
movs r0, 0x4
bl sub_81C7650
bl sub_81C760C
movs r0, 0
bl SetBgMode
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CC670
thumb_func_start sub_81CC6A4
sub_81CC6A4: @ 81CC6A4
push {lr}
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
bl UpdateRegionMapVideoRegs
pop {r0}
bx r0
thumb_func_end sub_81CC6A4
thumb_func_start sub_81CC6BC
sub_81CC6BC: @ 81CC6BC
push {lr}
movs r0, 0x4
bl sub_81C763C
ldr r0, [r0, 0x4]
bl sub_81C70D8
pop {r1}
bx r1
thumb_func_end sub_81CC6BC
thumb_func_start sub_81CC6D0
sub_81CC6D0: @ 81CC6D0
push {lr}
bl sub_81CC5E4
cmp r0, 0
bne _081CC6EC
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x15]
lsrs r0, 3
movs r1, 0x1
ands r0, r1
b _081CC6EE
.pool
_081CC6EC:
movs r0, 0
_081CC6EE:
pop {r1}
bx r1
thumb_func_end sub_81CC6D0
thumb_func_start sub_81CC6F4
sub_81CC6F4: @ 81CC6F4
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x4
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x7
bls _081CC706
b _081CC83E
_081CC706:
lsls r0, r4, 2
ldr r1, =_081CC714
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081CC714:
.4byte _081CC734
.4byte _081CC784
.4byte _081CC7B6
.4byte _081CC7BE
.4byte _081CC7CE
.4byte _081CC7E2
.4byte _081CC804
.4byte _081CC82A
_081CC734:
movs r0, 0
bl c3args_set_0toR1_1to0
movs r0, 0x1
bl HideBg
movs r0, 0x2
bl HideBg
movs r0, 0x3
bl HideBg
movs r0, 0x1
bl SetBgMode
ldr r4, =gUnknown_086230D8
adds r0, r4, 0
movs r1, 0x2
bl sub_81C7B54
movs r0, 0x10
bl sub_81C763C
adds r5, r0, 0
adds r4, 0x4
bl sub_81CC6D0
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_8122CF8
bl sub_81CC9C0
_081CC77C:
movs r0, 0
b _081CC840
.pool
_081CC784:
bl sub_8122DB0
lsls r0, 24
cmp r0, 0
bne _081CC83A
bl sub_81CC5E4
cmp r0, 0
bne _081CC7AC
movs r0, 0x4
movs r1, 0x9
bl CreateRegionMapPlayerIcon
movs r0, 0x5
movs r1, 0xA
bl CreateRegionMapCursor
bl sub_812454C
b _081CC77C
_081CC7AC:
movs r0, 0
movs r1, 0x6
bl sub_8123030
b _081CC77C
_081CC7B6:
bl sub_81CCD10
_081CC7BA:
movs r0, 0x1
b _081CC840
_081CC7BE:
bl sub_81CCD24
cmp r0, 0
bne _081CC83A
adds r0, r5, 0
bl sub_81CCA1C
b _081CC7BA
_081CC7CE:
bl sub_81CCAFC
cmp r0, 0
bne _081CC83A
adds r0, r5, 0
bl sub_81CCB0C
bl sub_81C7B40
b _081CC77C
_081CC7E2:
adds r0, r5, 0
bl sub_81CCC4C
cmp r0, 0
bne _081CC83A
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
ldr r0, =sub_81CC6A4
bl c3args_set_0toR1_1to0
b _081CC77C
.pool
_081CC804:
bl sub_81CC6D0
lsls r0, 24
movs r4, 0x5
cmp r0, 0
bne _081CC812
movs r4, 0x4
_081CC812:
adds r0, r4, 0
bl sub_81C7DFC
adds r0, r4, 0
movs r1, 0x1
movs r2, 0x1
bl sub_81C7FA0
movs r0, 0x1
bl sub_81C7AC0
b _081CC77C
_081CC82A:
bl sub_81C7B34
cmp r0, 0
bne _081CC83A
bl sub_81C8010
cmp r0, 0
beq _081CC7BA
_081CC83A:
movs r0, 0x2
b _081CC840
_081CC83E:
movs r0, 0x4
_081CC840:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CC6F4
thumb_func_start sub_81CC848
sub_81CC848: @ 81CC848
push {r4,lr}
adds r4, r0, 0
movs r0, 0x4
bl sub_81C763C
cmp r4, 0
beq _081CC85C
cmp r4, 0x1
beq _081CC864
b _081CC870
_081CC85C:
bl sub_81CCB0C
movs r0, 0
b _081CC872
_081CC864:
bl sub_81CCC4C
cmp r0, 0
beq _081CC870
movs r0, 0x2
b _081CC872
_081CC870:
movs r0, 0x4
_081CC872:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CC848
thumb_func_start sub_81CC878
sub_81CC878: @ 81CC878
push {lr}
cmp r0, 0x1
beq _081CC8A2
cmp r0, 0x1
bgt _081CC888
cmp r0, 0
beq _081CC88E
b _081CC8D0
_081CC888:
cmp r0, 0x2
beq _081CC8BE
b _081CC8D0
_081CC88E:
movs r0, 0x5
bl PlaySE
movs r0, 0
bl sub_81CCC5C
bl sub_8123418
movs r0, 0
b _081CC8D2
_081CC8A2:
bl sub_8123514
lsls r0, 24
cmp r0, 0
bne _081CC8C6
bl sub_81CCC88
cmp r0, 0
bne _081CC8C6
movs r0, 0x1
bl sub_81C7BA4
movs r0, 0
b _081CC8D2
_081CC8BE:
bl sub_81C7BE8
cmp r0, 0
beq _081CC8CA
_081CC8C6:
movs r0, 0x2
b _081CC8D2
_081CC8CA:
movs r0, 0x4
bl sub_81C7E14
_081CC8D0:
movs r0, 0x4
_081CC8D2:
pop {r1}
bx r1
thumb_func_end sub_81CC878
thumb_func_start sub_81CC8D8
sub_81CC8D8: @ 81CC8D8
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x4
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081CC90C
cmp r4, 0x1
bgt _081CC8F2
cmp r4, 0
beq _081CC8FC
b _081CC952
_081CC8F2:
cmp r4, 0x2
beq _081CC924
cmp r4, 0x3
beq _081CC940
b _081CC952
_081CC8FC:
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
bl sub_81CCB0C
movs r0, 0
b _081CC954
_081CC90C:
adds r0, r5, 0
bl sub_81CCC4C
cmp r0, 0
bne _081CC948
movs r0, 0x1
bl sub_81CCC5C
bl sub_8123418
movs r0, 0
b _081CC954
_081CC924:
bl sub_8123514
lsls r0, 24
cmp r0, 0
bne _081CC948
bl sub_81CCC88
cmp r0, 0
bne _081CC948
movs r0, 0x2
bl sub_81C7BA4
movs r0, 0
b _081CC954
_081CC940:
bl sub_81C7BE8
cmp r0, 0
beq _081CC94C
_081CC948:
movs r0, 0x2
b _081CC954
_081CC94C:
movs r0, 0x5
bl sub_81C7E14
_081CC952:
movs r0, 0x4
_081CC954:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CC8D8
thumb_func_start sub_81CC95C
sub_81CC95C: @ 81CC95C
push {lr}
cmp r0, 0x1
beq _081CC982
cmp r0, 0x1
bgt _081CC96C
cmp r0, 0
beq _081CC972
b _081CC9B8
_081CC96C:
cmp r0, 0x2
beq _081CC996
b _081CC9B8
_081CC972:
movs r0, 0x5
bl PlaySE
movs r0, 0
bl sub_81C7AC0
movs r0, 0
b _081CC9BA
_081CC982:
bl sub_81C7B34
cmp r0, 0
bne _081CC99E
bl sub_81C7FDC
bl sub_81C78A0
movs r0, 0
b _081CC9BA
_081CC996:
bl sub_81C78C0
cmp r0, 0
beq _081CC9A2
_081CC99E:
movs r0, 0x2
b _081CC9BA
_081CC9A2:
movs r0, 0x1
bl HideBg
movs r0, 0x2
bl HideBg
movs r0, 0x3
bl HideBg
movs r0, 0
b _081CC9BA
_081CC9B8:
movs r0, 0x4
_081CC9BA:
pop {r1}
bx r1
thumb_func_end sub_81CC95C
thumb_func_start sub_81CC9C0
sub_81CC9C0: @ 81CC9C0
push {r4,r5,lr}
movs r5, 0
ldr r4, =gUnknown_086230F8
_081CC9C6:
adds r0, r4, 0
bl LoadCompressedObjectPic
adds r4, 0x8
adds r5, 0x1
cmp r5, 0
beq _081CC9C6
ldr r0, =gUnknown_08623100
bl sub_81C795C
bl sub_81CCE58
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CC9C0
thumb_func_start sub_81CC9EC
sub_81CC9EC: @ 81CC9EC
push {r4,r5,lr}
movs r0, 0x4
bl sub_81C763C
adds r4, r0, 0
movs r0, 0x6
bl FreeSpriteTilesByTag
movs r0, 0xB
bl FreeSpritePaletteByTag
adds r5, r4, 0
adds r5, 0xC
movs r4, 0x2
_081CCA08:
ldm r5!, {r0}
bl DestroySprite
subs r4, 0x1
cmp r4, 0
bge _081CCA08
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81CC9EC
thumb_func_start sub_81CCA1C
sub_81CCA1C: @ 81CCA1C
push {r4,r5,lr}
sub sp, 0x8
adds r5, r0, 0
movs r0, 0x1
movs r1, 0
movs r2, 0x40
movs r3, 0x1
bl sub_8199DF0
movs r0, 0x1
movs r1, 0x11
movs r2, 0x41
movs r3, 0x1
bl sub_8199DF0
add r1, sp, 0x4
movs r2, 0x82
lsls r2, 5
adds r0, r2, 0
strh r0, [r1]
adds r4, r5, 0
adds r4, 0x18
ldr r2, =0x01000400
adds r0, r1, 0
adds r1, r4, 0
bl CpuSet
movs r0, 0x1
adds r1, r4, 0
bl SetBgTilemapBuffer
ldr r0, =gUnknown_08623110
bl AddWindow
movs r4, 0
strh r0, [r5, 0x8]
lsls r0, 24
lsrs r0, 24
movs r1, 0x42
movs r2, 0x40
bl LoadUserWindowBorderGfx_
ldrb r0, [r5, 0x8]
movs r1, 0x42
movs r2, 0x4
bl sub_8098858
ldr r1, =gUnknown_08622888
str r4, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldrb r0, [r5, 0x8]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r5, 0x8]
bl PutWindowTilemap
ldrb r0, [r5, 0x8]
movs r1, 0x3
bl CopyWindowToVram
ldr r0, =gUnknown_08622868
movs r1, 0x10
movs r2, 0x20
bl sub_81C7944
ldr r0, =gHoennMapZoomIcons_Pal
movs r1, 0x30
movs r2, 0x20
bl sub_81C7944
bl sub_8124658
lsls r0, 24
cmp r0, 0
bne _081CCAE0
ldr r1, =0xffffa000
movs r0, 0x1
movs r2, 0
bl ChangeBgY
b _081CCAEA
.pool
_081CCAE0:
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
_081CCAEA:
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81CCA1C
thumb_func_start sub_81CCAFC
sub_81CCAFC: @ 81CCAFC
push {lr}
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_81CCAFC
thumb_func_start sub_81CCB0C
sub_81CCB0C: @ 81CCB0C
push {r4,r5,lr}
sub sp, 0xC
adds r4, r0, 0
movs r0, 0x10
bl sub_81C763C
adds r5, r0, 0
ldrb r0, [r5, 0x2]
cmp r0, 0x4
bls _081CCB22
b _081CCC40
_081CCB22:
lsls r0, 2
ldr r1, =_081CCB30
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081CCB30:
.4byte _081CCC1C
.4byte _081CCBDC
.4byte _081CCB44
.4byte _081CCB8E
.4byte _081CCBDC
_081CCB44:
ldrb r0, [r4, 0x8]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r4, 0x8]
movs r1, 0x2
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0xC
bl PutWindowRectTilemap
ldrb r0, [r4, 0x8]
adds r2, r5, 0x4
movs r1, 0x1
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x7
movs r3, 0
bl AddTextPrinterParameterized
ldrh r1, [r5]
ldrb r2, [r5, 0x3]
adds r0, r4, 0
bl sub_81CCD70
ldrb r0, [r4, 0x8]
movs r1, 0x3
bl CopyWindowToVram
movs r0, 0
bl sub_81CCFA4
b _081CCC40
_081CCB8E:
ldrb r0, [r4, 0x8]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r4, 0x8]
movs r1, 0x2
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0xC
bl PutWindowRectTilemap
ldrb r0, [r4, 0x8]
adds r2, r5, 0x4
movs r1, 0x1
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x7
movs r3, 0
bl AddTextPrinterParameterized
ldr r1, =0x00001041
movs r0, 0xC
str r0, [sp]
movs r0, 0xB
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0x1
movs r2, 0x11
movs r3, 0x6
bl FillBgTilemapBufferRect
b _081CCC0C
.pool
_081CCBDC:
ldrb r0, [r4, 0x8]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r4, 0x8]
bl PutWindowTilemap
ldrb r0, [r4, 0x8]
adds r2, r5, 0x4
movs r1, 0x1
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x7
movs r3, 0
bl AddTextPrinterParameterized
ldrh r1, [r5]
ldrb r2, [r5, 0x3]
adds r0, r4, 0
bl sub_81CCDE8
_081CCC0C:
ldrb r0, [r4, 0x8]
movs r1, 0x3
bl CopyWindowToVram
movs r0, 0x1
bl sub_81CCFA4
b _081CCC40
_081CCC1C:
ldr r1, =0x00001041
movs r0, 0xC
str r0, [sp]
movs r0, 0xD
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0x1
movs r2, 0x11
movs r3, 0x4
bl FillBgTilemapBufferRect
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl sub_81CCFA4
_081CCC40:
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CCB0C
thumb_func_start sub_81CCC4C
sub_81CCC4C: @ 81CCC4C
push {lr}
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_81CCC4C
thumb_func_start sub_81CCC5C
sub_81CCC5C: @ 81CCC5C
push {r4,lr}
adds r4, r0, 0
ldr r0, =sub_81CCC9C
movs r1, 0x3
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x8]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CCC5C
thumb_func_start sub_81CCC88
sub_81CCC88: @ 81CCC88
push {lr}
ldr r0, =sub_81CCC9C
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.pool
thumb_func_end sub_81CCC88
thumb_func_start sub_81CCC9C
sub_81CCC9C: @ 81CCC9C
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, 0
beq _081CCCE0
movs r1, 0x90
lsls r1, 3
movs r0, 0x1
movs r2, 0x1
bl ChangeBgY
cmp r0, 0
blt _081CCCD6
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
adds r0, r4, 0
bl DestroyTask
_081CCCD6:
bl sub_81CCF78
b _081CCD04
.pool
_081CCCE0:
movs r1, 0x90
lsls r1, 3
movs r0, 0x1
movs r2, 0x2
bl ChangeBgY
ldr r1, =0xffffa000
cmp r0, r1
bgt _081CCD00
movs r0, 0x1
movs r2, 0
bl ChangeBgY
adds r0, r5, 0
bl DestroyTask
_081CCD00:
bl sub_81CCF78
_081CCD04:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CCC9C
thumb_func_start sub_81CCD10
sub_81CCD10: @ 81CCD10
push {lr}
ldr r0, =sub_81CCD34
movs r1, 0x1
bl sub_81C7078
pop {r0}
bx r0
.pool
thumb_func_end sub_81CCD10
thumb_func_start sub_81CCD24
sub_81CCD24: @ 81CCD24
push {lr}
ldr r0, =sub_81CCD34
bl sub_81C7124
pop {r1}
bx r1
.pool
thumb_func_end sub_81CCD24
thumb_func_start sub_81CCD34
sub_81CCD34: @ 81CCD34
push {r4,lr}
adds r4, r0, 0
movs r0, 0x4
bl sub_81C763C
adds r2, r0, 0
cmp r4, 0x15
ble _081CCD48
movs r0, 0x4
b _081CCD62
_081CCD48:
ldr r0, =gUnknown_08623118
lsls r1, r4, 3
adds r0, 0x4
adds r1, r0
ldr r0, [r1]
movs r1, 0xC8
muls r1, r4
ldr r3, =0x00000818
adds r1, r3
adds r1, r2, r1
bl LZ77UnCompWram
movs r0, 0x1
_081CCD62:
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CCD34
thumb_func_start sub_81CCD70
sub_81CCD70: @ 81CCD70
push {r4-r6,lr}
sub sp, 0x8
adds r6, r0, 0
adds r3, r1, 0
movs r4, 0
ldr r0, =gUnknown_08623118
ldrh r1, [r0]
adds r5, r0, 0
cmp r1, r3
bne _081CCD8A
ldrh r0, [r5, 0x2]
cmp r0, r2
beq _081CCDA0
_081CCD8A:
adds r4, 0x1
cmp r4, 0x15
bgt _081CCDA0
lsls r0, r4, 3
adds r1, r0, r5
ldrh r0, [r1]
cmp r0, r3
bne _081CCD8A
ldrh r0, [r1, 0x2]
cmp r0, r2
bne _081CCD8A
_081CCDA0:
cmp r4, 0x16
beq _081CCDD4
ldr r1, =0x00001041
movs r0, 0xC
str r0, [sp]
movs r0, 0xB
str r0, [sp, 0x4]
movs r0, 0x1
movs r2, 0x11
movs r3, 0x6
bl FillBgTilemapBufferRect_Palette0
movs r0, 0xC8
adds r1, r4, 0
muls r1, r0
ldr r0, =0x00000818
adds r1, r0
adds r1, r6, r1
movs r0, 0xA
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x1
movs r2, 0x12
movs r3, 0x6
bl CopyToBgTilemapBufferRect
_081CCDD4:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CCD70
thumb_func_start sub_81CCDE8
sub_81CCDE8: @ 81CCDE8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0xC
mov r9, r0
movs r5, 0
ldr r6, =gStringVar1
movs r4, 0x88
lsls r4, 21
lsls r1, 24
mov r8, r1
lsls r7, r2, 24
b _081CCE34
.pool
_081CCE08:
adds r0, r6, 0
movs r2, 0
movs r3, 0xC
bl StringCopyPadded
mov r1, r9
ldrb r0, [r1, 0x8]
lsrs r1, r4, 24
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x7
adds r2, r6, 0
movs r3, 0
bl AddTextPrinterParameterized
movs r0, 0x80
lsls r0, 21
adds r4, r0
adds r5, 0x1
_081CCE34:
lsls r2, r5, 24
lsrs r2, 24
mov r1, r8
lsrs r0, r1, 24
lsrs r1, r7, 24
bl GetLandmarkName
adds r1, r0, 0
cmp r1, 0
bne _081CCE08
add sp, 0xC
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81CCDE8
thumb_func_start sub_81CCE58
sub_81CCE58: @ 81CCE58
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r0, 0x4
bl sub_81C763C
adds r4, r0, 0
bl sub_8124658
lsls r0, 24
movs r2, 0x84
cmp r0, 0
bne _081CCE74
movs r2, 0xE4
_081CCE74:
movs r5, 0
lsls r7, r2, 16
adds r4, 0xC
mov r8, r4
movs r6, 0x98
lsls r6, 16
_081CCE80:
asrs r1, r6, 16
ldr r0, =gUnknown_086231D0
asrs r2, r7, 16
movs r3, 0x8
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
ldr r0, =gSprites
adds r2, r0
movs r0, 0
strh r0, [r2, 0x2E]
lsls r4, r5, 2
strh r4, [r2, 0x30]
ldrh r3, [r2, 0x4]
lsls r1, r3, 22
lsrs r0, r1, 22
adds r1, r0, 0
strh r0, [r2, 0x32]
movs r0, 0x96
strh r0, [r2, 0x34]
strh r4, [r2, 0x36]
adds r1, r4
ldr r4, =0x000003ff
adds r0, r4, 0
ands r1, r0
ldr r4, =0xfffffc00
adds r0, r4, 0
ands r3, r0
orrs r3, r1
strh r3, [r2, 0x4]
mov r0, r8
adds r0, 0x4
mov r8, r0
subs r0, 0x4
stm r0!, {r2}
movs r4, 0x80
lsls r4, 14
adds r6, r4
adds r5, 0x1
cmp r5, 0x2
ble _081CCE80
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CCE58
thumb_func_start sub_81CCEF4
sub_81CCEF4: @ 81CCEF4
push {r4,r5,lr}
adds r3, r0, 0
ldrh r0, [r3, 0x34]
movs r1, 0x34
ldrsh r4, [r3, r1]
cmp r4, 0
beq _081CCF06
subs r0, 0x1
b _081CCF6E
_081CCF06:
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0xB
ble _081CCF16
strh r4, [r3, 0x2E]
_081CCF16:
ldrh r0, [r3, 0x30]
adds r0, 0x1
strh r0, [r3, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3C
ble _081CCF26
strh r4, [r3, 0x30]
_081CCF26:
ldrh r5, [r3, 0x30]
ldrh r2, [r3, 0x32]
adds r1, r5, r2
ldr r2, =0x000003ff
adds r0, r2, 0
ands r1, r0
ldrh r2, [r3, 0x4]
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r3, 0x4]
ldrh r1, [r3, 0x38]
movs r2, 0x38
ldrsh r0, [r3, r2]
cmp r0, 0x3
bgt _081CCF5C
movs r2, 0x2E
ldrsh r0, [r3, r2]
cmp r0, 0
bne _081CCF70
adds r0, r1, 0x1
strh r0, [r3, 0x38]
b _081CCF6C
.pool
_081CCF5C:
lsls r0, r5, 16
asrs r0, 16
movs r2, 0x36
ldrsh r1, [r3, r2]
cmp r0, r1
bne _081CCF70
strh r4, [r3, 0x38]
strh r4, [r3, 0x2E]
_081CCF6C:
movs r0, 0x78
_081CCF6E:
strh r0, [r3, 0x34]
_081CCF70:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81CCEF4
thumb_func_start sub_81CCF78
sub_81CCF78: @ 81CCF78
push {r4,lr}
movs r0, 0x4
bl sub_81C763C
adds r4, r0, 0
movs r0, 0x1
bl GetBgY
asrs r0, 8
movs r1, 0x84
subs r1, r0
adds r4, 0xC
movs r2, 0x2
_081CCF92:
ldm r4!, {r0}
strh r1, [r0, 0x22]
subs r2, 0x1
cmp r2, 0
bge _081CCF92
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CCF78
thumb_func_start sub_81CCFA4
sub_81CCFA4: @ 81CCFA4
push {r4-r6,lr}
adds r4, r0, 0
movs r0, 0x4
bl sub_81C763C
movs r1, 0x1
ands r4, r1
lsls r5, r4, 2
movs r6, 0x5
negs r6, r6
adds r4, r0, 0
adds r4, 0xC
movs r3, 0x2
_081CCFBE:
ldm r4!, {r0}
adds r0, 0x3E
ldrb r2, [r0]
adds r1, r6, 0
ands r1, r2
orrs r1, r5
strb r1, [r0]
subs r3, 0x1
cmp r3, 0
bge _081CCFBE
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81CCFA4
thumb_func_start sub_81CCFD8
sub_81CCFD8: @ 81CCFD8
push {r4,lr}
ldr r1, =0x0000678c
movs r0, 0xB
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CD01C
ldr r1, =0x00006428
adds r0, r4, r1
bl sub_81D1ED4
bl sub_81CD970
ldr r1, =gKeyRepeatStartDelay
movs r0, 0x14
strh r0, [r1]
ldr r0, =0x00006304
adds r1, r4, r0
ldr r0, =sub_81CD08C
str r0, [r1]
movs r0, 0x1
b _081CD01E
.pool
_081CD01C:
movs r0, 0
_081CD01E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CCFD8
thumb_func_start sub_81CD024
sub_81CD024: @ 81CD024
push {r4,lr}
ldr r1, =0x0000678c
movs r0, 0xB
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CD068
ldr r1, =0x00006428
adds r0, r4, r1
bl sub_81D1ED4
bl sub_81CD9F8
ldr r1, =gKeyRepeatStartDelay
movs r0, 0x14
strh r0, [r1]
ldr r0, =0x00006304
adds r1, r4, r0
ldr r0, =sub_81CD08C
str r0, [r1]
movs r0, 0x1
b _081CD06A
.pool
_081CD068:
movs r0, 0
_081CD06A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CD024
thumb_func_start sub_81CD070
sub_81CD070: @ 81CD070
push {lr}
movs r0, 0xB
bl sub_81C763C
ldr r2, =0x00006304
adds r1, r0, r2
ldr r1, [r1]
bl _call_via_r1
pop {r1}
bx r1
.pool
thumb_func_end sub_81CD070
thumb_func_start sub_81CD08C
sub_81CD08C: @ 81CD08C
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x12
bl sub_81C763C
adds r5, r0, 0
adds r0, r4, 0
bl sub_81CD1E4
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
bne _081CD100
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _081CD0D0
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081CD100
movs r1, 0xC6
lsls r1, 7
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
bne _081CD0F0
ldrh r1, [r5, 0x2]
ldrh r0, [r5]
subs r0, 0x1
cmp r1, r0
bne _081CD100
_081CD0D0:
movs r0, 0x5
bl PlaySE
ldr r0, =0x00006304
adds r1, r4, r0
ldr r0, =sub_81CD19C
str r0, [r1]
movs r2, 0x2
b _081CD100
.pool
_081CD0F0:
movs r0, 0x5
bl PlaySE
movs r2, 0x5
ldr r0, =0x00006304
adds r1, r4, r0
ldr r0, =sub_81CD110
str r0, [r1]
_081CD100:
adds r0, r2, 0
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CD08C
thumb_func_start sub_81CD110
sub_81CD110: @ 81CD110
push {r4-r6,lr}
sub sp, 0x4
adds r6, r0, 0
movs r4, 0
bl sub_811FBA4
lsls r0, 24
cmp r0, 0
bne _081CD18A
bl sub_81CEF14
ldr r1, =0x00006786
adds r5, r6, r1
movs r1, 0
ldrsb r1, [r5, r1]
ldr r2, =0x00006783
adds r4, r6, r2
adds r1, r4, r1
strb r0, [r1]
movs r0, 0x12
bl sub_81C763C
ldrh r1, [r0, 0x2]
lsls r1, 2
adds r0, r1
ldrb r2, [r0, 0x4]
ldrb r3, [r0, 0x5]
movs r0, 0
ldrsb r0, [r5, r0]
adds r4, r0
ldrb r1, [r4]
mov r0, sp
strb r1, [r0]
cmp r2, 0xE
bne _081CD174
movs r0, 0x64
muls r0, r3
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x8
mov r2, sp
bl SetMonData
b _081CD180
.pool
_081CD174:
adds r0, r2, 0
adds r1, r3, 0
movs r2, 0x8
mov r3, sp
bl SetBoxMonDataFromAnyBox
_081CD180:
ldr r0, =0x00006304
adds r1, r6, r0
ldr r0, =sub_81CD08C
str r0, [r1]
movs r4, 0x6
_081CD18A:
adds r0, r4, 0
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CD110
thumb_func_start sub_81CD19C
sub_81CD19C: @ 81CD19C
push {lr}
movs r1, 0xC6
lsls r1, 7
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _081CD1B4
ldr r0, =0x000186aa
b _081CD1B6
.pool
_081CD1B4:
ldr r0, =0x000186a2
_081CD1B6:
pop {r1}
bx r1
.pool
thumb_func_end sub_81CD19C
thumb_func_start sub_81CD1C0
sub_81CD1C0: @ 81CD1C0
push {lr}
movs r0, 0xB
bl sub_81C763C
movs r1, 0xC6
lsls r1, 7
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _081CD1DA
movs r0, 0x12
bl sub_81C7650
_081CD1DA:
movs r0, 0xB
bl sub_81C7650
pop {r0}
bx r0
thumb_func_end sub_81CD1C0
thumb_func_start sub_81CD1E4
sub_81CD1E4: @ 81CD1E4
push {r4,lr}
adds r4, r0, 0
movs r0, 0x12
bl sub_81C763C
adds r2, r0, 0
movs r3, 0
ldr r0, =gMain
ldrh r1, [r0, 0x2C]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081CD220
movs r1, 0xC6
lsls r1, 7
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
beq _081CD210
ldrh r0, [r2, 0x2]
cmp r0, 0
beq _081CD24E
_081CD210:
movs r0, 0x5
bl PlaySE
movs r0, 0x1
b _081CD246
.pool
_081CD220:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081CD24E
movs r1, 0xC6
lsls r1, 7
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
beq _081CD23E
ldrh r1, [r2, 0x2]
ldrh r0, [r2]
subs r0, 0x1
cmp r1, r0
bge _081CD24E
_081CD23E:
movs r0, 0x5
bl PlaySE
movs r0, 0
_081CD246:
bl sub_81CD258
lsls r0, 24
lsrs r3, r0, 24
_081CD24E:
adds r0, r3, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CD1E4
thumb_func_start sub_81CD258
sub_81CD258: @ 81CD258
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r0, 0xB
bl sub_81C763C
adds r4, r0, 0
movs r0, 0x12
bl sub_81C763C
adds r5, r0, 0
mov r0, r8
cmp r0, 0
beq _081CD284
ldr r1, =0x00006788
adds r0, r4, r1
b _081CD288
.pool
_081CD284:
ldr r2, =0x00006787
adds r0, r4, r2
_081CD288:
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
lsls r0, 16
lsrs r0, 16
adds r7, r0, 0
ldr r1, =0x00006428
adds r0, r4, r1
ldr r2, =0x00006786
adds r1, r4, r2
movs r2, 0
ldrsb r2, [r1, r2]
lsls r1, r2, 2
adds r1, r2
lsls r1, 2
ldr r3, =0x0000643c
adds r1, r3
adds r1, r4, r1
lsls r2, r7, 2
adds r2, r7
lsls r2, 2
adds r2, r3
adds r2, r4, r2
bl sub_81D1F84
ldrh r6, [r5, 0x2]
bl sub_81CDD5C
cmp r0, 0
beq _081CD2D8
ldrh r1, [r5]
b _081CD2DC
.pool
_081CD2D8:
ldrh r1, [r5]
subs r1, 0x1
_081CD2DC:
eors r1, r6
negs r0, r1
orrs r0, r1
lsrs r0, 31
adds r6, r0, 0
mov r0, r8
cmp r0, 0
beq _081CD332
ldr r1, =0x00006787
adds r2, r4, r1
ldrb r0, [r2]
adds r1, 0x1
adds r3, r4, r1
strb r0, [r3]
ldr r0, =0x00006786
adds r1, r4, r0
ldrb r0, [r1]
strb r0, [r2]
strb r7, [r1]
ldrb r1, [r3]
ldr r2, =0x00006789
adds r0, r4, r2
strb r1, [r0]
ldrh r0, [r5, 0x2]
cmp r0, 0
bne _081CD312
ldrh r0, [r5]
_081CD312:
subs r1, r0, 0x1
strh r1, [r5, 0x2]
lsls r0, r1, 16
cmp r0, 0
beq _081CD32C
subs r1, 0x1
b _081CD384
.pool
_081CD32C:
ldrh r0, [r5]
subs r1, r0, 0x1
b _081CD384
_081CD332:
ldr r0, =0x00006788
adds r2, r4, r0
ldrb r0, [r2]
ldr r1, =0x00006787
adds r3, r4, r1
strb r0, [r3]
ldr r0, =0x00006786
adds r1, r4, r0
ldrb r0, [r1]
strb r0, [r2]
strb r7, [r1]
ldrb r1, [r3]
ldr r2, =0x00006789
adds r0, r4, r2
strb r1, [r0]
ldrh r1, [r5, 0x2]
ldrh r0, [r5]
subs r0, 0x1
cmp r1, r0
bge _081CD370
adds r0, r1, 0x1
b _081CD372
.pool
_081CD370:
movs r0, 0
_081CD372:
strh r0, [r5, 0x2]
ldrh r1, [r5, 0x2]
ldrh r0, [r5]
subs r0, 0x1
cmp r1, r0
bge _081CD382
adds r1, 0x1
b _081CD384
_081CD382:
movs r1, 0
_081CD384:
ldr r2, =0x00006302
adds r0, r4, r2
strh r1, [r0]
ldrh r4, [r5, 0x2]
bl sub_81CDD5C
cmp r0, 0
beq _081CD39C
ldrh r1, [r5]
b _081CD3A0
.pool
_081CD39C:
ldrh r1, [r5]
subs r1, 0x1
_081CD3A0:
eors r1, r4
negs r0, r1
orrs r0, r1
lsrs r0, 31
cmp r6, 0
bne _081CD3B0
movs r0, 0x3
b _081CD3BA
_081CD3B0:
cmp r0, 0
beq _081CD3B8
movs r0, 0x1
b _081CD3BA
_081CD3B8:
movs r0, 0x4
_081CD3BA:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81CD258
thumb_func_start sub_81CD3C4
sub_81CD3C4: @ 81CD3C4
push {r4,lr}
movs r0, 0xB
bl sub_81C763C
adds r4, r0, 0
movs r0, 0x12
bl sub_81C763C
adds r2, r0, 0
ldr r1, =0x0000678a
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0x9
bls _081CD3E2
b _081CD530
_081CD3E2:
lsls r0, 2
ldr r1, =_081CD3F4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081CD3F4:
.4byte _081CD41C
.4byte _081CD428
.4byte _081CD434
.4byte _081CD440
.4byte _081CD490
.4byte _081CD4A8
.4byte _081CD4C0
.4byte _081CD4D8
.4byte _081CD4F0
.4byte _081CD508
_081CD41C:
movs r1, 0x2
ldrsh r0, [r2, r1]
movs r1, 0
bl sub_81CD824
b _081CD530
_081CD428:
movs r1, 0x2
ldrsh r0, [r2, r1]
movs r1, 0
bl sub_81CDA1C
b _081CD530
_081CD434:
movs r1, 0x2
ldrsh r0, [r2, r1]
movs r1, 0
bl sub_81CDB98
b _081CD530
_081CD440:
ldrh r0, [r2]
cmp r0, 0x1
bne _081CD468
ldr r2, =0x00006786
adds r0, r4, r2
movs r1, 0
strb r1, [r0]
adds r2, 0x1
adds r0, r4, r2
strb r1, [r0]
adds r2, 0x1
adds r0, r4, r2
strb r1, [r0]
adds r2, 0x2
adds r0, r4, r2
strb r1, [r0]
movs r0, 0x1
b _081CD53C
.pool
_081CD468:
ldr r0, =0x00006786
adds r1, r4, r0
movs r0, 0
strb r0, [r1]
ldr r2, =0x00006787
adds r1, r4, r2
movs r0, 0x1
strb r0, [r1]
ldr r0, =0x00006788
adds r1, r4, r0
movs r0, 0x2
strb r0, [r1]
b _081CD530
.pool
_081CD490:
ldrh r0, [r2, 0x2]
adds r0, 0x1
ldrh r2, [r2]
cmp r0, r2
blt _081CD49C
movs r0, 0
_081CD49C:
lsls r0, 16
asrs r0, 16
movs r1, 0x1
bl sub_81CD824
b _081CD530
_081CD4A8:
ldrh r0, [r2, 0x2]
adds r0, 0x1
ldrh r2, [r2]
cmp r0, r2
blt _081CD4B4
movs r0, 0
_081CD4B4:
lsls r0, 16
asrs r0, 16
movs r1, 0x1
bl sub_81CDA1C
b _081CD530
_081CD4C0:
ldrh r0, [r2, 0x2]
adds r0, 0x1
ldrh r2, [r2]
cmp r0, r2
blt _081CD4CC
movs r0, 0
_081CD4CC:
lsls r0, 16
asrs r0, 16
movs r1, 0x1
bl sub_81CDB98
b _081CD530
_081CD4D8:
ldrh r0, [r2, 0x2]
subs r0, 0x1
cmp r0, 0
bge _081CD4E4
ldrh r0, [r2]
subs r0, 0x1
_081CD4E4:
lsls r0, 16
asrs r0, 16
movs r1, 0x2
bl sub_81CD824
b _081CD530
_081CD4F0:
ldrh r0, [r2, 0x2]
subs r0, 0x1
cmp r0, 0
bge _081CD4FC
ldrh r0, [r2]
subs r0, 0x1
_081CD4FC:
lsls r0, 16
asrs r0, 16
movs r1, 0x2
bl sub_81CDA1C
b _081CD530
_081CD508:
ldrh r0, [r2, 0x2]
subs r0, 0x1
cmp r0, 0
bge _081CD514
ldrh r0, [r2]
subs r0, 0x1
_081CD514:
lsls r0, 16
asrs r0, 16
movs r1, 0x2
bl sub_81CDB98
ldr r2, =0x0000678a
adds r1, r4, r2
movs r0, 0
strb r0, [r1]
movs r0, 0x1
b _081CD53C
.pool
_081CD530:
ldr r0, =0x0000678a
adds r1, r4, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
movs r0, 0
_081CD53C:
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CD3C4
thumb_func_start sub_81CD548
sub_81CD548: @ 81CD548
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
movs r0, 0xB
bl sub_81C763C
adds r1, r0, 0
cmp r4, 0x1
beq _081CD588
cmp r4, 0x1
bgt _081CD566
cmp r4, 0
beq _081CD56C
b _081CD5C4
_081CD566:
cmp r5, 0x2
beq _081CD5A4
b _081CD5C4
_081CD56C:
ldr r2, =0x00006302
adds r0, r1, r2
movs r2, 0
ldrsh r0, [r0, r2]
ldr r2, =0x00006789
adds r1, r2
ldrb r1, [r1]
bl sub_81CD824
b _081CD5C4
.pool
_081CD588:
ldr r2, =0x00006302
adds r0, r1, r2
movs r2, 0
ldrsh r0, [r0, r2]
ldr r2, =0x00006789
adds r1, r2
ldrb r1, [r1]
bl sub_81CDA1C
b _081CD5C4
.pool
_081CD5A4:
ldr r2, =0x00006302
adds r0, r1, r2
movs r2, 0
ldrsh r0, [r0, r2]
ldr r2, =0x00006789
adds r1, r2
ldrb r1, [r1]
bl sub_81CDB98
movs r0, 0x1
b _081CD5C6
.pool
_081CD5C4:
movs r0, 0
_081CD5C6:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CD548
thumb_func_start sub_81CD5CC
sub_81CD5CC: @ 81CD5CC
push {r4,lr}
adds r4, r0, 0
lsls r2, 16
lsrs r2, 16
b _081CD5E4
_081CD5D6:
strb r3, [r4]
adds r1, 0x1
adds r4, 0x1
lsls r0, r2, 16
ldr r2, =0xffff0000
adds r0, r2
lsrs r2, r0, 16
_081CD5E4:
ldrb r3, [r1]
adds r0, r3, 0
cmp r0, 0xFF
bne _081CD5D6
adds r1, r2, 0
lsls r0, r1, 16
ldr r2, =0xffff0000
adds r0, r2
lsrs r2, r0, 16
lsls r1, 16
cmp r1, 0
ble _081CD612
movs r3, 0
_081CD5FE:
strb r3, [r4]
adds r4, 0x1
adds r1, r2, 0
lsls r0, r1, 16
ldr r2, =0xffff0000
adds r0, r2
lsrs r2, r0, 16
lsls r1, 16
cmp r1, 0
bgt _081CD5FE
_081CD612:
movs r0, 0xFF
strb r0, [r4]
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CD5CC
thumb_func_start sub_81CD624
sub_81CD624: @ 81CD624
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r5, r0, 0
adds r4, r1, 0
lsls r4, 16
lsrs r4, 16
lsls r2, 24
lsrs r2, 24
mov r10, r2
movs r0, 0x12
bl sub_81C763C
lsls r4, 2
adds r0, r4
ldrb r4, [r0, 0x4]
mov r8, r4
ldrb r6, [r0, 0x5]
mov r9, r6
movs r0, 0xFC
strb r0, [r5]
adds r5, 0x1
movs r0, 0x4
strb r0, [r5]
adds r5, 0x1
movs r0, 0x8
strb r0, [r5]
adds r5, 0x1
movs r0, 0
strb r0, [r5]
adds r5, 0x1
movs r0, 0x9
strb r0, [r5]
adds r5, 0x1
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0x2D
movs r3, 0
bl sub_81D2C68
cmp r0, 0
beq _081CD690
ldr r1, =gText_EggNickname
adds r0, r5, 0
movs r2, 0
movs r3, 0xC
bl StringCopyPadded
b _081CD80E
.pool
_081CD690:
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0x2
adds r3, r5, 0
bl sub_81D2C68
adds r0, r5, 0
bl StringGetEnd10
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0xB
movs r3, 0
bl sub_81D2C68
lsls r0, 16
lsrs r7, r0, 16
cmp r4, 0xE
bne _081CD6E0
movs r0, 0x64
adds r4, r6, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x38
bl GetMonData
lsls r0, 16
lsrs r0, 16
mov r8, r0
adds r0, r4, 0
bl GetMonGender
lsls r0, 24
lsrs r6, r0, 24
b _081CD6FE
.pool
_081CD6E0:
mov r0, r8
mov r1, r9
bl GetBoxedMonPtr
adds r4, r0, 0
bl GetBoxMonGender
lsls r0, 24
lsrs r6, r0, 24
adds r0, r4, 0
bl GetLevelFromBoxMonExp
lsls r0, 24
lsrs r0, 24
mov r8, r0
_081CD6FE:
cmp r7, 0x1D
beq _081CD706
cmp r7, 0x20
bne _081CD71C
_081CD706:
movs r0, 0xB
adds r1, r7, 0
muls r1, r0
ldr r0, =gSpeciesNames
adds r1, r0
adds r0, r5, 0
bl StringCompare
cmp r0, 0
bne _081CD71C
movs r6, 0xFF
_081CD71C:
adds r3, r5, 0
b _081CD726
.pool
_081CD724:
adds r3, 0x1
_081CD726:
ldrb r0, [r3]
cmp r0, 0xFF
bne _081CD724
movs r1, 0xFC
strb r1, [r3]
adds r3, 0x1
movs r0, 0x12
strb r0, [r3]
adds r3, 0x1
movs r0, 0x3C
strb r0, [r3]
adds r3, 0x1
cmp r6, 0
beq _081CD74A
cmp r6, 0xFE
beq _081CD76E
movs r0, 0x77
b _081CD790
_081CD74A:
strb r1, [r3]
adds r3, 0x1
movs r0, 0x1
strb r0, [r3]
adds r3, 0x1
movs r0, 0x4
strb r0, [r3]
adds r3, 0x1
strb r1, [r3]
adds r3, 0x1
movs r0, 0x3
strb r0, [r3]
adds r3, 0x1
movs r0, 0x5
strb r0, [r3]
adds r3, 0x1
movs r0, 0xB5
b _081CD790
_081CD76E:
strb r1, [r3]
adds r3, 0x1
movs r0, 0x1
strb r0, [r3]
adds r3, 0x1
movs r0, 0x6
strb r0, [r3]
adds r3, 0x1
strb r1, [r3]
adds r3, 0x1
movs r0, 0x3
strb r0, [r3]
adds r3, 0x1
movs r0, 0x7
strb r0, [r3]
adds r3, 0x1
movs r0, 0xB6
_081CD790:
strb r0, [r3]
adds r3, 0x1
movs r0, 0xFC
strb r0, [r3]
adds r3, 0x1
movs r0, 0x4
strb r0, [r3]
adds r3, 0x1
movs r0, 0x8
strb r0, [r3]
adds r3, 0x1
movs r5, 0
strb r5, [r3]
adds r3, 0x1
movs r0, 0x9
strb r0, [r3]
adds r3, 0x1
movs r0, 0xBA
strb r0, [r3]
adds r3, 0x1
movs r0, 0xF9
strb r0, [r3]
adds r3, 0x1
movs r0, 0x5
strb r0, [r3]
adds r3, 0x1
adds r4, r3, 0
adds r0, r4, 0
mov r1, r8
movs r2, 0
movs r3, 0x3
bl ConvertIntToDecimalStringN
adds r3, r0, 0
subs r4, r3, r4
lsls r4, 16
lsrs r4, 16
strb r5, [r3]
adds r3, 0x1
mov r0, r10
cmp r0, 0
bne _081CD808
movs r0, 0x3
subs r0, r4
lsls r0, 16
ldr r1, =0xffff0000
adds r0, r1
lsrs r4, r0, 16
ldr r0, =0x0000ffff
cmp r4, r0
beq _081CD808
movs r2, 0
adds r1, r0, 0
_081CD7FA:
strb r2, [r3]
adds r3, 0x1
subs r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, r1
bne _081CD7FA
_081CD808:
movs r0, 0xFF
strb r0, [r3]
adds r0, r3, 0
_081CD80E:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CD624
thumb_func_start sub_81CD824
sub_81CD824: @ 81CD824
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 16
lsrs r0, 16
mov r8, r0
lsls r1, 24
lsrs r6, r1, 24
movs r0, 0xB
bl sub_81C763C
adds r5, r0, 0
movs r0, 0x12
bl sub_81C763C
adds r7, r0, 0
mov r1, r8
lsls r0, r1, 16
asrs r4, r0, 16
bl sub_81CDD5C
cmp r0, 0
beq _081CD85A
ldrh r2, [r7]
cmp r4, r2
bne _081CD862
b _081CD900
_081CD85A:
ldrh r0, [r7]
subs r0, 0x1
cmp r4, r0
beq _081CD900
_081CD862:
lsls r0, r6, 6
ldr r1, =0x00006368
adds r0, r1
adds r0, r5, r0
mov r2, r8
lsls r4, r2, 16
lsrs r1, r4, 16
movs r2, 0
bl sub_81CD624
asrs r4, 14
adds r4, r7, r4
ldrb r3, [r4, 0x4]
lsls r0, r6, 1
adds r0, r6
lsls r4, r0, 3
ldr r1, =0x00006320
adds r0, r5, r1
adds r0, r4
movs r2, 0
movs r1, 0xFC
strb r1, [r0]
ldr r1, =0x00006321
adds r0, r5, r1
adds r0, r4
movs r1, 0x4
strb r1, [r0]
ldr r1, =0x00006322
adds r0, r5, r1
adds r0, r4
movs r1, 0x8
strb r1, [r0]
ldr r1, =0x00006323
adds r0, r5, r1
adds r0, r4
strb r2, [r0]
ldr r2, =0x00006324
adds r0, r5, r2
adds r0, r4
movs r1, 0x9
strb r1, [r0]
cmp r3, 0xE
bne _081CD8E4
adds r0, r4, r5
ldr r1, =0x00006325
adds r0, r1
ldr r1, =gText_InParty
b _081CD8F4
.pool
_081CD8E4:
adds r4, r5
ldr r2, =0x00006325
adds r4, r2
adds r0, r3, 0
bl GetBoxNamePtr
adds r1, r0, 0
adds r0, r4, 0
_081CD8F4:
movs r2, 0x8
bl sub_81CD5CC
b _081CD95C
.pool
_081CD900:
movs r1, 0
lsls r4, r6, 6
lsls r0, r6, 1
mov r8, r0
adds r3, r4, 0
ldr r0, =0x00006368
adds r2, r5, r0
movs r7, 0
_081CD910:
adds r0, r1, r3
adds r0, r2, r0
strb r7, [r0]
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0xB
bls _081CD910
adds r1, r4
ldr r2, =0x00006368
adds r0, r5, r2
adds r0, r1
movs r1, 0xFF
strb r1, [r0]
movs r1, 0
mov r2, r8
adds r0, r2, r6
lsls r3, r0, 3
ldr r0, =0x00006320
adds r2, r5, r0
movs r4, 0
_081CD93A:
adds r0, r1, r3
adds r0, r2, r0
strb r4, [r0]
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0x7
bls _081CD93A
mov r2, r8
adds r0, r2, r6
lsls r0, 3
adds r0, r1, r0
ldr r2, =0x00006320
adds r1, r5, r2
adds r1, r0
movs r0, 0xFF
strb r0, [r1]
_081CD95C:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CD824
thumb_func_start sub_81CD970
sub_81CD970: @ 81CD970
push {r4-r7,lr}
movs r0, 0xB
bl sub_81C763C
adds r7, r0, 0
ldr r1, =0x000006ac
movs r0, 0x12
bl sub_81C761C
adds r6, r0, 0
movs r0, 0xC6
lsls r0, 7
adds r1, r7, r0
movs r0, 0
strb r0, [r1]
movs r4, 0
movs r5, 0
b _081CD9C4
.pool
_081CD998:
movs r0, 0x64
muls r0, r4
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x2D
bl GetMonData
adds r2, r0, 0
cmp r2, 0
bne _081CD9BE
lsls r1, r5, 2
adds r1, r6, r1
movs r0, 0xE
strb r0, [r1, 0x4]
strb r4, [r1, 0x5]
strh r2, [r1, 0x6]
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
_081CD9BE:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
_081CD9C4:
bl CalculatePlayerPartyCount
lsls r0, 24
lsrs r0, 24
cmp r4, r0
bcc _081CD998
lsls r0, r5, 2
adds r0, r6, r0
movs r1, 0
strb r1, [r0, 0x4]
strb r1, [r0, 0x5]
movs r2, 0
strh r1, [r0, 0x6]
strh r1, [r6, 0x2]
adds r0, r5, 0x1
strh r0, [r6]
ldr r1, =0x0000678a
adds r0, r7, r1
strb r2, [r0]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CD970
thumb_func_start sub_81CD9F8
sub_81CD9F8: @ 81CD9F8
push {lr}
movs r0, 0xB
bl sub_81C763C
movs r1, 0xC6
lsls r1, 7
adds r2, r0, r1
movs r3, 0
movs r1, 0x1
strb r1, [r2]
ldr r1, =0x0000678a
adds r0, r1
strb r3, [r0]
pop {r0}
bx r0
.pool
thumb_func_end sub_81CD9F8
thumb_func_start sub_81CDA1C
sub_81CDA1C: @ 81CDA1C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 24
lsrs r1, 24
mov r9, r1
movs r0, 0xB
bl sub_81C763C
mov r8, r0
movs r0, 0x12
bl sub_81C763C
adds r4, r0, 0
lsls r0, r6, 16
asrs r5, r0, 16
bl sub_81CDD5C
cmp r0, 0
beq _081CDA52
ldrh r0, [r4]
cmp r5, r0
bne _081CDA5A
b _081CDB48
_081CDA52:
ldrh r0, [r4]
subs r0, 0x1
cmp r5, r0
beq _081CDB48
_081CDA5A:
lsls r0, r6, 16
asrs r0, 14
adds r0, r4, r0
ldrb r6, [r0, 0x4]
ldrb r7, [r0, 0x5]
adds r0, r6, 0
adds r1, r7, 0
movs r2, 0x16
movs r3, 0
bl sub_81D2C68
mov r1, r9
lsls r5, r1, 2
adds r4, r5, r1
ldr r1, =0x00006428
add r1, r8
adds r1, r4
strb r0, [r1]
adds r0, r6, 0
adds r1, r7, 0
movs r2, 0x2F
movs r3, 0
bl sub_81D2C68
ldr r1, =0x00006429
add r1, r8
adds r1, r4
strb r0, [r1]
adds r0, r6, 0
adds r1, r7, 0
movs r2, 0x21
movs r3, 0
bl sub_81D2C68
ldr r1, =0x0000642a
add r1, r8
adds r1, r4
strb r0, [r1]
adds r0, r6, 0
adds r1, r7, 0
movs r2, 0x18
movs r3, 0
bl sub_81D2C68
ldr r1, =0x0000642b
add r1, r8
adds r1, r4
strb r0, [r1]
adds r0, r6, 0
adds r1, r7, 0
movs r2, 0x17
movs r3, 0
bl sub_81D2C68
ldr r1, =0x0000642c
add r1, r8
adds r1, r4
strb r0, [r1]
movs r0, 0xCF
lsls r0, 7
add r0, r8
mov r2, r9
adds r4, r0, r2
adds r0, r6, 0
adds r1, r7, 0
movs r2, 0x30
movs r3, 0
bl sub_81D2C68
cmp r0, 0xFF
beq _081CDB10
adds r0, r6, 0
adds r1, r7, 0
movs r2, 0x30
movs r3, 0
bl sub_81D2C68
movs r1, 0x1D
bl __udivsi3
b _081CDB12
.pool
_081CDB10:
movs r0, 0x9
_081CDB12:
strb r0, [r4]
adds r0, r6, 0
adds r1, r7, 0
movs r2, 0x8
movs r3, 0
bl sub_81D2C68
ldr r1, =0x00006783
add r1, r8
add r1, r9
strb r0, [r1]
mov r0, r9
adds r1, r5, r0
ldr r2, =0x00006428
adds r0, r1, r2
add r0, r8
lsls r1, 2
adds r2, 0x14
adds r1, r2
add r1, r8
bl sub_81D2754
b _081CDB80
.pool
_081CDB48:
movs r2, 0
mov r0, r9
lsls r5, r0, 2
add r5, r9
ldr r4, =0x00006428
add r4, r8
lsls r3, r5, 2
mov r9, r2
ldr r7, =0x0000643c
movs r6, 0x9B
_081CDB5C:
adds r0, r2, r5
adds r0, r4, r0
mov r1, r9
strb r1, [r0]
lsls r0, r2, 2
adds r0, r3
add r0, r8
adds r1, r0, r7
strh r6, [r1]
ldr r1, =0x0000643e
adds r0, r1
movs r1, 0x5B
strh r1, [r0]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0x4
bls _081CDB5C
_081CDB80:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CDA1C
thumb_func_start sub_81CDB98
sub_81CDB98: @ 81CDB98
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 24
lsrs r1, 24
mov r9, r1
movs r0, 0xB
bl sub_81C763C
adds r7, r0, 0
movs r0, 0x12
bl sub_81C763C
adds r4, r0, 0
lsls r0, r6, 16
asrs r5, r0, 16
bl sub_81CDD5C
cmp r0, 0
beq _081CDBCC
ldrh r0, [r4]
b _081CDBD0
_081CDBCC:
ldrh r0, [r4]
subs r0, 0x1
_081CDBD0:
cmp r5, r0
beq _081CDC3E
lsls r0, r6, 16
asrs r0, 14
adds r0, r4, r0
ldrb r5, [r0, 0x4]
ldrb r6, [r0, 0x5]
adds r0, r5, 0
adds r1, r6, 0
movs r2, 0x41
movs r3, 0
bl sub_81D2C68
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
adds r1, r6, 0
movs r2, 0x1
movs r3, 0
bl sub_81D2C68
mov r8, r0
adds r0, r5, 0
adds r1, r6, 0
movs r2, 0
movs r3, 0
bl sub_81D2C68
adds r5, r0, 0
lsls r0, r4, 3
ldr r1, =gMonFrontPicTable
adds r0, r1
mov r2, r9
lsls r1, r2, 13
movs r2, 0xC0
lsls r2, 2
adds r1, r2
adds r1, r7, r1
movs r2, 0x1
str r2, [sp]
adds r2, r4, 0
adds r3, r5, 0
bl LoadSpecialPokePic
adds r0, r4, 0
mov r1, r8
adds r2, r5, 0
bl GetFrontSpritePalFromSpeciesAndPersonality
mov r2, r9
lsls r1, r2, 7
adds r1, r7, r1
bl LZ77UnCompWram
_081CDC3E:
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CDB98
thumb_func_start sub_81CDC50
sub_81CDC50: @ 81CDC50
push {lr}
movs r0, 0x12
bl sub_81C763C
ldrh r0, [r0]
pop {r1}
bx r1
thumb_func_end sub_81CDC50
thumb_func_start sub_81CDC60
sub_81CDC60: @ 81CDC60
push {lr}
movs r0, 0x12
bl sub_81C763C
ldrh r0, [r0, 0x2]
pop {r1}
bx r1
thumb_func_end sub_81CDC60
thumb_func_start sub_81CDC70
sub_81CDC70: @ 81CDC70
push {lr}
movs r0, 0xB
bl sub_81C763C
ldr r1, =0x00006428
adds r0, r1
pop {r1}
bx r1
.pool
thumb_func_end sub_81CDC70
thumb_func_start sub_81CDC84
sub_81CDC84: @ 81CDC84
push {lr}
movs r0, 0xB
bl sub_81C763C
ldr r1, =0x00006786
adds r0, r1
ldrb r0, [r0]
pop {r1}
bx r1
.pool
thumb_func_end sub_81CDC84
thumb_func_start sub_81CDC9C
sub_81CDC9C: @ 81CDC9C
push {lr}
movs r0, 0xB
bl sub_81C763C
ldr r1, =0x00006302
adds r0, r1
ldrb r0, [r0]
pop {r1}
bx r1
.pool
thumb_func_end sub_81CDC9C
thumb_func_start sub_81CDCB4
sub_81CDCB4: @ 81CDCB4
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0xB
bl sub_81C763C
lsls r4, 13
movs r1, 0xC0
lsls r1, 2
adds r4, r1
adds r0, r4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CDCB4
thumb_func_start sub_81CDCD4
sub_81CDCD4: @ 81CDCD4
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0xB
bl sub_81C763C
lsls r4, 7
adds r0, r4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CDCD4
thumb_func_start sub_81CDCEC
sub_81CDCEC: @ 81CDCEC
push {lr}
movs r0, 0xB
bl sub_81C763C
ldr r1, =0x00006789
adds r0, r1
ldrb r0, [r0]
pop {r1}
bx r1
.pool
thumb_func_end sub_81CDCEC
thumb_func_start sub_81CDD04
sub_81CDD04: @ 81CDD04
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0xB
bl sub_81C763C
lsls r4, 6
ldr r1, =0x00006368
adds r4, r1
adds r0, r4
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CDD04
thumb_func_start sub_81CDD24
sub_81CDD24: @ 81CDD24
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0xB
bl sub_81C763C
lsls r1, r4, 1
adds r1, r4
lsls r1, 3
ldr r2, =0x00006320
adds r1, r2
adds r0, r1
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CDD24
thumb_func_start sub_81CDD48
sub_81CDD48: @ 81CDD48
push {lr}
movs r0, 0x12
bl sub_81C763C
ldrh r1, [r0, 0x2]
lsls r1, 2
adds r0, r1
ldrh r0, [r0, 0x6]
pop {r1}
bx r1
thumb_func_end sub_81CDD48
thumb_func_start sub_81CDD5C
sub_81CDD5C: @ 81CDD5C
push {lr}
movs r0, 0xB
bl sub_81C763C
movs r1, 0xC6
lsls r1, 7
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
beq _081CDD74
movs r0, 0
b _081CDD76
_081CDD74:
movs r0, 0x1
_081CDD76:
pop {r1}
bx r1
thumb_func_end sub_81CDD5C
thumb_func_start sub_81CDD7C
sub_81CDD7C: @ 81CDD7C
push {lr}
movs r0, 0xB
bl sub_81C763C
adds r2, r0, 0
movs r1, 0xC6
lsls r1, 7
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0x1
beq _081CDD96
movs r0, 0
b _081CDDA6
_081CDD96:
ldr r3, =0x00006786
adds r0, r2, r3
movs r1, 0
ldrsb r1, [r0, r1]
subs r3, 0x3
adds r0, r2, r3
adds r0, r1
ldrb r0, [r0]
_081CDDA6:
pop {r1}
bx r1
.pool
thumb_func_end sub_81CDD7C
thumb_func_start sub_81CDDB0
sub_81CDDB0: @ 81CDDB0
push {lr}
movs r0, 0xB
bl sub_81C763C
ldr r2, =0x00006786
adds r1, r0, r2
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
subs r2, 0x6
adds r0, r2
adds r0, r1
ldrb r0, [r0]
pop {r1}
bx r1
.pool
thumb_func_end sub_81CDDB0
thumb_func_start sub_81CDDD4
sub_81CDDD4: @ 81CDDD4
push {r4,lr}
ldr r1, =0x000038ac
movs r0, 0xC
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CDE24
ldr r0, =0x00001816
adds r1, r4, r0
movs r0, 0xFF
strb r0, [r1]
ldr r0, =sub_81CDE94
movs r1, 0x1
bl sub_81C7078
str r0, [r4]
ldr r0, =0x00001810
adds r1, r4, r0
ldr r0, =sub_81CDE80
str r0, [r1]
ldr r0, =0x00002908
adds r1, r4, r0
movs r0, 0
strb r0, [r1]
movs r0, 0x1
b _081CDE26
.pool
_081CDE24:
movs r0, 0
_081CDE26:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CDDD4
thumb_func_start sub_81CDE2C
sub_81CDE2C: @ 81CDE2C
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0xC
bl sub_81C763C
adds r5, r0, 0
ldr r0, =gUnknown_08623384
lsls r4, 2
adds r4, r0
ldr r0, [r4]
movs r1, 0x1
bl sub_81C7078
str r0, [r5]
ldr r0, =0x00001810
adds r5, r0
ldr r0, =sub_81CDE80
str r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CDE2C
thumb_func_start sub_81CDE64
sub_81CDE64: @ 81CDE64
push {lr}
movs r0, 0xC
bl sub_81C763C
ldr r1, =0x00001810
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {r1}
bx r1
.pool
thumb_func_end sub_81CDE64
thumb_func_start sub_81CDE80
sub_81CDE80: @ 81CDE80
push {lr}
movs r0, 0xC
bl sub_81C763C
ldr r0, [r0]
bl sub_81C70D8
pop {r1}
bx r1
thumb_func_end sub_81CDE80
thumb_func_start sub_81CDE94
sub_81CDE94: @ 81CDE94
push {r4-r6,lr}
sub sp, 0xC
adds r4, r0, 0
movs r0, 0xC
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x14
bls _081CDEA8
b _081CE2C4
_081CDEA8:
lsls r0, r4, 2
ldr r1, =_081CDEB8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081CDEB8:
.4byte _081CDF0C
.4byte _081CDF18
.4byte _081CDF94
.4byte _081CDFB8
.4byte _081CE030
.4byte _081CE074
.4byte _081CE0B0
.4byte _081CE118
.4byte _081CE120
.4byte _081CE126
.4byte _081CE136
.4byte _081CE146
.4byte _081CE156
.4byte _081CE16C
.4byte _081CE1C8
.4byte _081CE1EC
.4byte _081CE218
.4byte _081CE23C
.4byte _081CE24A
.4byte _081CE25A
.4byte _081CE262
_081CDF0C:
bl sub_81CD3C4
cmp r0, 0x1
beq _081CDF16
b _081CE2C0
_081CDF16:
b _081CDFB0
_081CDF18:
ldr r0, =gUnknown_08623358
movs r1, 0x3
bl sub_81C7B54
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
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
ldr r1, =0x00007940
movs r0, 0
bl SetGpuReg
ldr r1, =0x00000844
movs r0, 0x50
bl SetGpuReg
ldr r1, =0x0000040b
movs r0, 0x52
bl SetGpuReg
ldr r1, =gPokenavCondition_Gfx
movs r0, 0
str r0, [sp]
movs r0, 0x3
b _081CDFA8
.pool
_081CDF94:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _081CDFA2
b _081CE2C0
_081CDFA2:
ldr r1, =gUnknown_08623228
str r0, [sp]
movs r0, 0x2
_081CDFA8:
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
_081CDFB0:
movs r0, 0
b _081CE2C6
.pool
_081CDFB8:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
beq _081CDFC4
b _081CE2C0
_081CDFC4:
ldr r0, =gPokenavCondition_Tilemap
adds r4, r5, 0x4
adds r1, r4, 0
bl LZ77UnCompVram
movs r0, 0x3
adds r1, r4, 0
bl SetBgTilemapBuffer
bl sub_81CDD5C
cmp r0, 0x1
bne _081CDFF2
ldr r1, =gPokenavOptions_Tilemap
movs r0, 0x9
str r0, [sp]
movs r0, 0x4
str r0, [sp, 0x4]
movs r0, 0x3
movs r2, 0
movs r3, 0x5
bl CopyToBgTilemapBufferRect
_081CDFF2:
movs r0, 0x3
bl CopyBgTilemapBufferToVram
ldr r0, =gPokenavCondition_Pal
movs r1, 0x10
movs r2, 0x20
bl sub_81C7944
ldr r0, =gUnknown_08623208
movs r1, 0xF0
movs r2, 0x20
bl sub_81C7944
ldr r0, =0x00001814
adds r1, r5, r0
ldr r0, =0x0000ffb0
strh r0, [r1]
b _081CDFB0
.pool
_081CE030:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
beq _081CE03C
b _081CE2C0
_081CE03C:
ldr r0, =gUnknown_0862323C
ldr r1, =0x00001004
adds r4, r5, r1
adds r1, r4, 0
bl LZ77UnCompVram
movs r0, 0x2
adds r1, r4, 0
bl SetBgTilemapBuffer
movs r0, 0x2
bl CopyBgTilemapBufferToVram
ldr r0, =gUnknown_086231E8
movs r1, 0x30
movs r2, 0x20
bl sub_81C7944
movs r0, 0x2
bl sub_81D21DC
b _081CDFB0
.pool
_081CE074:
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x1
bl sub_8199DF0
movs r0, 0x1
movs r1, 0x11
movs r2, 0x1
movs r3, 0x1
bl sub_8199DF0
movs r0, 0
str r0, [sp, 0x8]
ldr r2, =0x00000804
adds r4, r5, r2
ldr r2, =0x05000200
add r0, sp, 0x8
adds r1, r4, 0
bl CpuSet
movs r0, 0x1
adds r1, r4, 0
bl SetBgTilemapBuffer
b _081CDFB0
.pool
_081CE0B0:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
beq _081CE0BC
b _081CE2C0
_081CE0BC:
ldr r0, =gUnknown_08623364
bl AddWindow
movs r2, 0xC1
lsls r2, 5
adds r1, r5, r2
strb r0, [r1]
bl sub_81CDD5C
cmp r0, 0x1
bne _081CE0F6
ldr r0, =gUnknown_0862336C
bl AddWindow
ldr r2, =0x00001821
adds r1, r5, r2
strb r0, [r1]
ldr r0, =gUnknown_08623374
bl AddWindow
ldr r2, =0x00001822
adds r1, r5, r2
strb r0, [r1]
ldr r0, =gUnknown_0862337C
bl AddWindow
ldr r2, =0x00001823
adds r1, r5, r2
strb r0, [r1]
_081CE0F6:
bl DeactivateAllTextPrinters
b _081CDFB0
.pool
_081CE118:
movs r0, 0
bl sub_81CED30
b _081CDFB0
_081CE120:
bl sub_81CE9E4
b _081CDFB0
_081CE126:
bl sub_81CDD5C
cmp r0, 0x1
beq _081CE130
b _081CDFB0
_081CE130:
bl sub_81CE934
b _081CDFB0
_081CE136:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0
b _081CE164
_081CE146:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0x1
b _081CE164
_081CE156:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0x2
_081CE164:
movs r2, 0x1
bl sub_81CE754
b _081CDFB0
_081CE16C:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0x3
movs r2, 0x1
bl sub_81CE754
cmp r0, 0x1
beq _081CE186
b _081CE2C0
_081CE186:
movs r1, 0xC1
lsls r1, 5
adds r0, r5, r1
ldrb r0, [r0]
bl PutWindowTilemap
bl sub_81CDD5C
cmp r0, 0x1
beq _081CE19C
b _081CDFB0
_081CE19C:
ldr r2, =0x00001821
adds r0, r5, r2
ldrb r0, [r0]
bl PutWindowTilemap
ldr r1, =0x00001822
adds r0, r5, r1
ldrb r0, [r0]
bl PutWindowTilemap
ldr r2, =0x00001823
adds r0, r5, r2
ldrb r0, [r0]
bl PutWindowTilemap
b _081CDFB0
.pool
_081CE1C8:
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl HideBg
movs r0, 0x3
bl ShowBg
bl sub_81CDD5C
cmp r0, 0x1
beq _081CE1E4
b _081CDFB0
_081CE1E4:
movs r0, 0x4
bl sub_81C7BA4
b _081CDFB0
_081CE1EC:
movs r0, 0x1
bl sub_81C7AC0
bl sub_81CDD5C
cmp r0, 0
beq _081CE1FC
b _081CDFB0
_081CE1FC:
movs r0, 0x6
bl sub_81C7DFC
movs r0, 0x1
movs r1, 0x1
movs r2, 0
bl sub_81C7FA0
movs r0, 0x6
movs r1, 0x1
movs r2, 0
bl sub_81C7FA0
b _081CDFB0
_081CE218:
bl sub_81C7B34
cmp r0, 0
bne _081CE2C0
bl sub_81CDD5C
cmp r0, 0
bne _081CE230
bl sub_81C8010
cmp r0, 0
bne _081CE2C0
_081CE230:
ldr r0, =sub_81CEE44
bl c3args_set_0toR1_1to0
b _081CDFB0
.pool
_081CE23C:
bl sub_81CEE90
bl sub_81CDC70
bl sub_81D20AC
b _081CDFB0
_081CE24A:
bl sub_81CDC70
bl sub_81D20BC
lsls r0, 24
cmp r0, 0
bne _081CE2C0
b _081CDFB0
_081CE25A:
movs r0, 0x1
bl sub_81CEE74
b _081CDFB0
_081CE262:
bl sub_81CDC70
ldr r2, =0x00001814
adds r1, r5, r2
bl sub_81D3178
lsls r0, 24
cmp r0, 0
bne _081CE2C0
ldr r0, =0x000028e0
adds r6, r5, r0
adds r0, r6, 0
bl sub_81D3464
bl sub_81CDD5C
cmp r0, 0x1
beq _081CE298
bl sub_81CDC60
adds r4, r0, 0
bl sub_81CDC50
lsls r4, 16
lsls r0, 16
cmp r4, r0
beq _081CE2C4
_081CE298:
ldr r1, =0x00001816
adds r0, r5, r1
ldrb r4, [r0]
bl sub_81CDDB0
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r6, 0
adds r1, r4, 0
bl sub_81D3480
b _081CE2C4
.pool
_081CE2C0:
movs r0, 0x2
b _081CE2C6
_081CE2C4:
movs r0, 0x4
_081CE2C6:
add sp, 0xC
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81CDE94
thumb_func_start sub_81CE2D0
sub_81CE2D0: @ 81CE2D0
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0xC
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081CE308
cmp r4, 0x1
bgt _081CE2EA
cmp r4, 0
beq _081CE2F4
b _081CE374
_081CE2EA:
cmp r4, 0x2
beq _081CE328
cmp r4, 0x3
beq _081CE33E
b _081CE374
_081CE2F4:
bl sub_81CEEC8
ldr r1, =0x000028e0
adds r0, r5, r1
bl sub_81D3520
movs r0, 0x1
b _081CE376
.pool
_081CE308:
bl sub_81CDC70
ldr r2, =0x00001814
adds r1, r5, r2
bl sub_81D31A4
lsls r0, 24
cmp r0, 0
bne _081CE34E
movs r0, 0
bl sub_81CEE74
movs r0, 0x1
b _081CE376
.pool
_081CE328:
movs r0, 0
bl sub_81C7AC0
bl sub_81CDD5C
cmp r0, 0
bne _081CE33A
bl sub_81C78A0
_081CE33A:
movs r0, 0
b _081CE376
_081CE33E:
bl sub_81C7B34
cmp r0, 0
bne _081CE34E
bl sub_81C78C0
cmp r0, 0
beq _081CE352
_081CE34E:
movs r0, 0x2
b _081CE376
_081CE352:
ldr r1, =0x000028e0
adds r0, r5, r1
bl sub_81D354C
movs r0, 0x1
bl HideBg
movs r0, 0x2
bl HideBg
movs r0, 0x3
bl HideBg
movs r0, 0x1
b _081CE376
.pool
_081CE374:
movs r0, 0x4
_081CE376:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CE2D0
thumb_func_start sub_81CE37C
sub_81CE37C: @ 81CE37C
push {r4-r6,lr}
adds r4, r0, 0
movs r0, 0xC
bl sub_81C763C
adds r6, r0, 0
bl sub_81CDC70
adds r2, r0, 0
cmp r4, 0x9
bls _081CE394
b _081CE4D0
_081CE394:
lsls r0, r4, 2
ldr r1, =_081CE3A4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081CE3A4:
.4byte _081CE3CC
.4byte _081CE3D0
.4byte _081CE3DA
.4byte _081CE3F0
.4byte _081CE3F8
.4byte _081CE418
.4byte _081CE428
.4byte _081CE438
.4byte _081CE44E
.4byte _081CE468
_081CE3CC:
movs r0, 0
b _081CE3D2
_081CE3D0:
movs r0, 0x1
_081CE3D2:
bl sub_81CD548
_081CE3D6:
movs r0, 0x1
b _081CE4D2
_081CE3DA:
movs r0, 0x2
bl sub_81CD548
ldr r1, =0x000028e0
adds r0, r6, r1
bl sub_81D3520
b _081CE3D6
.pool
_081CE3F0:
adds r0, r2, 0
bl sub_81D2074
b _081CE3D6
_081CE3F8:
ldr r1, =0x00001814
adds r0, r6, r1
bl sub_81D3150
lsls r0, 24
cmp r0, 0
bne _081CE4CC
bl sub_81CDC84
lsls r0, 24
lsrs r0, 24
bl sub_81CED30
b _081CE3D6
.pool
_081CE418:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0
b _081CE446
_081CE428:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0x1
b _081CE446
_081CE438:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0x2
_081CE446:
movs r2, 0
bl sub_81CE754
b _081CE3D6
_081CE44E:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0x3
movs r2, 0
bl sub_81CE754
cmp r0, 0x1
beq _081CE3D6
b _081CE4CC
_081CE468:
bl sub_81CDC70
adds r2, r0, 0
ldr r0, =0x00001814
adds r1, r6, r0
adds r0, r2, 0
bl sub_81D3178
lsls r0, 24
cmp r0, 0
bne _081CE4CC
ldr r1, =0x000028e0
adds r0, r6, r1
bl sub_81D3464
bl sub_81CDD5C
cmp r0, 0x1
beq _081CE4A0
bl sub_81CDC60
adds r4, r0, 0
bl sub_81CDC50
lsls r4, 16
lsls r0, 16
cmp r4, r0
beq _081CE3D6
_081CE4A0:
ldr r0, =0x000028e0
adds r5, r6, r0
ldr r1, =0x00001816
adds r0, r6, r1
ldrb r4, [r0]
bl sub_81CDDB0
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_81D3480
b _081CE3D6
.pool
_081CE4CC:
movs r0, 0x2
b _081CE4D2
_081CE4D0:
movs r0, 0x4
_081CE4D2:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81CE37C
thumb_func_start sub_81CE4D8
sub_81CE4D8: @ 81CE4D8
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0xC
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x8
bhi _081CE5DC
lsls r0, r4, 2
ldr r1, =_081CE4F8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081CE4F8:
.4byte _081CE51C
.4byte _081CE520
.4byte _081CE524
.4byte _081CE52E
.4byte _081CE53E
.4byte _081CE54E
.4byte _081CE55E
.4byte _081CE576
.4byte _081CE592
_081CE51C:
movs r0, 0
b _081CE526
_081CE520:
movs r0, 0x1
b _081CE526
_081CE524:
movs r0, 0x2
_081CE526:
bl sub_81CD548
movs r0, 0x1
b _081CE5DE
_081CE52E:
bl sub_81CDC84
lsls r0, 24
lsrs r0, 24
bl sub_81CED30
movs r0, 0x1
b _081CE5DE
_081CE53E:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0
b _081CE56C
_081CE54E:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0x1
b _081CE56C
_081CE55E:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0x2
_081CE56C:
movs r2, 0
bl sub_81CE754
movs r0, 0x1
b _081CE5DE
_081CE576:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0x3
movs r2, 0
bl sub_81CE754
cmp r0, 0x1
bne _081CE5D8
movs r0, 0x1
b _081CE5DE
_081CE592:
bl sub_81CDC70
ldr r2, =0x00001814
adds r1, r5, r2
bl sub_81D3178
lsls r0, 24
cmp r0, 0
bne _081CE5D8
ldr r0, =0x000028e0
adds r4, r5, r0
adds r0, r4, 0
bl sub_81D3464
ldr r1, =0x00001816
adds r0, r5, r1
ldrb r5, [r0]
bl sub_81CDDB0
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl sub_81D3480
movs r0, 0x1
b _081CE5DE
.pool
_081CE5D8:
movs r0, 0x2
b _081CE5DE
_081CE5DC:
movs r0, 0x4
_081CE5DE:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CE4D8
thumb_func_start sub_81CE5E4
sub_81CE5E4: @ 81CE5E4
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0xC
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x7
bhi _081CE6B2
lsls r0, r4, 2
ldr r1, =_081CE604
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081CE604:
.4byte _081CE624
.4byte _081CE628
.4byte _081CE632
.4byte _081CE648
.4byte _081CE660
.4byte _081CE670
.4byte _081CE680
.4byte _081CE696
_081CE624:
movs r0, 0
b _081CE62A
_081CE628:
movs r0, 0x1
_081CE62A:
bl sub_81CD548
_081CE62E:
movs r0, 0x1
b _081CE6B4
_081CE632:
movs r0, 0x2
bl sub_81CD548
ldr r1, =0x000028e0
adds r0, r5, r1
bl sub_81D3520
b _081CE62E
.pool
_081CE648:
bl sub_81CDC70
ldr r2, =0x00001814
adds r1, r5, r2
bl sub_81D31A4
lsls r0, 24
cmp r0, 0
beq _081CE62E
b _081CE6AE
.pool
_081CE660:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0
b _081CE68E
_081CE670:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0x1
b _081CE68E
_081CE680:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0x2
_081CE68E:
movs r2, 0
bl sub_81CE754
b _081CE62E
_081CE696:
bl sub_81CDC84
adds r1, r0, 0
lsls r1, 24
asrs r1, 8
lsrs r1, 16
movs r0, 0x3
movs r2, 0
bl sub_81CE754
cmp r0, 0x1
beq _081CE62E
_081CE6AE:
movs r0, 0x2
b _081CE6B4
_081CE6B2:
movs r0, 0x4
_081CE6B4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CE5E4
thumb_func_start sub_81CE6BC
sub_81CE6BC: @ 81CE6BC
push {lr}
cmp r0, 0x1
beq _081CE6E6
cmp r0, 0x1
bgt _081CE6CC
cmp r0, 0
beq _081CE6D2
b _081CE6FA
_081CE6CC:
cmp r0, 0x2
beq _081CE6EE
b _081CE6FA
_081CE6D2:
bl sub_81CDD7C
lsls r0, 24
lsrs r0, 24
movs r1, 0xB0
movs r2, 0x20
bl sub_811FAA4
_081CE6E2:
movs r0, 0x1
b _081CE6FC
_081CE6E6:
movs r0, 0x5
bl sub_81C7BA4
b _081CE6E2
_081CE6EE:
bl sub_81C7BE8
cmp r0, 0x1
bne _081CE6E2
movs r0, 0x2
b _081CE6FC
_081CE6FA:
movs r0, 0x4
_081CE6FC:
pop {r1}
bx r1
thumb_func_end sub_81CE6BC
thumb_func_start sub_81CE700
sub_81CE700: @ 81CE700
push {lr}
cmp r0, 0x1
beq _081CE71E
cmp r0, 0x1
bgt _081CE710
cmp r0, 0
beq _081CE716
b _081CE732
_081CE710:
cmp r0, 0x2
beq _081CE726
b _081CE732
_081CE716:
bl sub_811FAF8
_081CE71A:
movs r0, 0x1
b _081CE734
_081CE71E:
movs r0, 0x4
bl sub_81C7BA4
b _081CE71A
_081CE726:
bl sub_81C7BE8
cmp r0, 0x1
bne _081CE71A
movs r0, 0x2
b _081CE734
_081CE732:
movs r0, 0x4
_081CE734:
pop {r1}
bx r1
thumb_func_end sub_81CE700
thumb_func_start sub_81CE738
sub_81CE738: @ 81CE738
push {lr}
lsls r1, 16
lsrs r1, 16
movs r2, 0x1
movs r3, 0x4
bl ConvertIntToDecimalStringN
ldr r1, =gText_Number2
bl StringCopy
pop {r1}
bx r1
.pool
thumb_func_end sub_81CE738
thumb_func_start sub_81CE754
sub_81CE754: @ 81CE754
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x2C
lsls r0, 24
lsrs r4, r0, 24
adds r7, r4, 0
lsls r1, 16
lsrs r1, 16
mov r8, r1
lsls r2, 24
lsrs r5, r2, 24
movs r0, 0xC
bl sub_81C763C
adds r6, r0, 0
cmp r4, 0x1
beq _081CE7B8
cmp r4, 0x1
bgt _081CE782
cmp r4, 0
beq _081CE78E
b _081CE924
_081CE782:
cmp r4, 0x2
beq _081CE800
cmp r4, 0x3
bne _081CE78C
b _081CE89C
_081CE78C:
b _081CE924
_081CE78E:
movs r1, 0xC1
lsls r1, 5
adds r0, r6, r1
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
bl sub_81CDD5C
cmp r0, 0x1
beq _081CE7A6
b _081CE924
_081CE7A6:
ldr r1, =0x00001821
adds r0, r6, r1
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
b _081CE924
.pool
_081CE7B8:
bl sub_81CDC60
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
bl sub_81CDC50
lsls r0, 16
lsrs r0, 16
subs r0, 0x1
cmp r4, r0
bne _081CE7DA
bl sub_81CDD5C
cmp r0, 0x1
beq _081CE7DA
b _081CE924
_081CE7DA:
mov r1, r8
lsls r0, r1, 24
lsrs r0, 24
bl sub_81CDD04
adds r2, r0, 0
movs r1, 0xC1
lsls r1, 5
adds r0, r6, r1
ldrb r0, [r0]
str r7, [sp]
movs r1, 0
str r1, [sp, 0x4]
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
bl AddTextPrinterParameterized
b _081CE924
_081CE800:
bl sub_81CDD5C
adds r7, r0, 0
cmp r7, 0x1
beq _081CE80C
b _081CE924
_081CE80C:
mov r1, r8
lsls r0, r1, 24
lsrs r0, 24
bl sub_81CDD24
adds r2, r0, 0
movs r1, 0xC1
lsls r1, 5
adds r0, r6, r1
ldrb r0, [r0]
movs r1, 0x11
str r1, [sp]
movs r4, 0
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0
bl AddTextPrinterParameterized
add r1, sp, 0xC
movs r0, 0xFC
strb r0, [r1]
movs r0, 0x4
strb r0, [r1, 0x1]
movs r0, 0x8
strb r0, [r1, 0x2]
adds r0, r1, 0
strb r4, [r0, 0x3]
movs r0, 0x9
strb r0, [r1, 0x4]
mov r5, sp
adds r5, 0x11
ldr r1, =gText_Number2
adds r0, r5, 0
bl StringCopy
ldr r0, =0x00001821
adds r6, r0
ldrb r0, [r6]
str r7, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0x1
add r2, sp, 0xC
movs r3, 0x4
bl AddTextPrinterParameterized
bl sub_81CDD48
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r5, 0
movs r2, 0x1
movs r3, 0x4
bl ConvertIntToDecimalStringN
ldrb r0, [r6]
str r7, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0x1
add r2, sp, 0xC
movs r3, 0x1C
bl AddTextPrinterParameterized
b _081CE924
.pool
_081CE89C:
ldr r1, =0x00002908
adds r0, r6, r1
ldrb r0, [r0]
cmp r0, 0
beq _081CE8B0
cmp r0, 0x1
beq _081CE8EC
b _081CE924
.pool
_081CE8B0:
cmp r5, 0
beq _081CE8C4
movs r1, 0xC1
lsls r1, 5
adds r0, r6, r1
ldrb r0, [r0]
movs r1, 0x3
bl CopyWindowToVram
b _081CE8D2
_081CE8C4:
movs r1, 0xC1
lsls r1, 5
adds r0, r6, r1
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
_081CE8D2:
bl sub_81CDD5C
cmp r0, 0x1
bne _081CE910
ldr r0, =0x00002908
adds r1, r6, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _081CE924
.pool
_081CE8EC:
cmp r5, 0
beq _081CE904
ldr r1, =0x00001821
adds r0, r6, r1
ldrb r0, [r0]
movs r1, 0x3
bl CopyWindowToVram
b _081CE910
.pool
_081CE904:
ldr r1, =0x00001821
adds r0, r6, r1
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
_081CE910:
ldr r0, =0x00002908
adds r1, r6, r0
movs r0, 0
strb r0, [r1]
movs r0, 0x1
b _081CE926
.pool
_081CE924:
movs r0, 0
_081CE926:
add sp, 0x2C
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81CE754
thumb_func_start sub_81CE934
sub_81CE934: @ 81CE934
push {r4,lr}
movs r0, 0xC
bl sub_81C763C
adds r4, r0, 0
ldr r1, =0x00001822
adds r0, r4, r1
ldrb r0, [r0]
movs r1, 0x3
bl CopyWindowToVram
ldr r0, =0x00001823
adds r4, r0
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CE934
thumb_func_start sub_81CE964
sub_81CE964: @ 81CE964
push {r4,r5,lr}
adds r5, r0, 0
movs r0, 0x2E
ldrsh r4, [r5, r0]
bl sub_81CDC60
lsls r0, 16
lsrs r0, 16
cmp r4, r0
bne _081CE982
adds r0, r5, 0
movs r1, 0
bl StartSpriteAnim
b _081CE98A
_081CE982:
adds r0, r5, 0
movs r1, 0x1
bl StartSpriteAnim
_081CE98A:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81CE964
thumb_func_start sub_81CE990
sub_81CE990: @ 81CE990
push {r4,r5,lr}
adds r5, r0, 0
bl sub_81CDC60
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
bl sub_81CDC50
lsls r0, 16
lsrs r0, 16
subs r0, 0x1
cmp r4, r0
bne _081CE9B0
movs r0, 0x65
b _081CE9B2
_081CE9B0:
movs r0, 0x66
_081CE9B2:
bl IndexOfSpritePaletteTag
lsls r0, 4
ldrb r2, [r5, 0x5]
movs r1, 0xF
ands r1, r2
orrs r1, r0
strb r1, [r5, 0x5]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81CE990
thumb_func_start sub_81CE9C8
sub_81CE9C8: @ 81CE9C8
push {r4,lr}
adds r4, r0, 0
bl sub_81CDD7C
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CE9C8
thumb_func_start sub_81CE9E4
sub_81CE9E4: @ 81CE9E4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x58
movs r0, 0xC
bl sub_81C763C
adds r6, r0, 0
add r4, sp, 0x20
add r5, sp, 0x38
mov r0, sp
adds r1, r4, 0
adds r2, r5, 0
bl sub_81D321C
bl sub_81CDD5C
adds r7, r4, 0
mov r10, r5
cmp r0, 0x1
bne _081CEA78
ldr r1, =0x00001824
adds r0, r6, r1
movs r2, 0x6A
strh r2, [r0]
ldr r3, =0x00001826
adds r1, r6, r3
strh r2, [r1]
bl sub_811F90C
bl sub_811FA90
ldr r2, =gUnknown_08623338
movs r0, 0x69
movs r1, 0x69
bl sub_811FF94
ldrb r1, [r0, 0x5]
movs r2, 0xC
orrs r1, r2
strb r1, [r0, 0x5]
movs r1, 0xC0
strh r1, [r0, 0x20]
movs r1, 0x20
strh r1, [r0, 0x22]
ldr r1, =sub_81CE9C8
str r1, [r0, 0x1C]
ldr r2, =0x000028dc
adds r1, r6, r2
str r0, [r1]
movs r0, 0x69
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl sub_81C7990
add r3, sp, 0x50
mov r8, r3
b _081CEBC6
.pool
_081CEA78:
mov r0, sp
bl LoadSpriteSheets
mov r0, r10
bl sub_81C795C
movs r4, 0
add r0, sp, 0x50
mov r8, r0
b _081CEAE8
_081CEA8C:
lsls r2, r4, 2
adds r2, r4
lsls r2, 18
movs r1, 0x80
lsls r1, 12
adds r2, r1
asrs r2, 16
adds r0, r7, 0
movs r1, 0xE2
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x40
beq _081CEAD8
ldr r2, =0x00001806
adds r0, r6, r2
adds r0, r4
strb r3, [r0]
ldr r2, =gSprites
lsls r0, r3, 4
adds r0, r3
lsls r0, 2
adds r1, r0, r2
strh r4, [r1, 0x2E]
adds r2, 0x1C
adds r0, r2
ldr r1, =sub_81CE964
str r1, [r0]
b _081CEAE2
.pool
_081CEAD8:
ldr r3, =0x00001806
adds r0, r6, r3
adds r0, r4
movs r1, 0xFF
strb r1, [r0]
_081CEAE2:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
_081CEAE8:
bl sub_81CDC50
lsls r0, 16
lsrs r0, 16
subs r0, 0x1
cmp r4, r0
blt _081CEA8C
movs r0, 0x67
strh r0, [r7]
ldr r0, =SpriteCallbackDummy
str r0, [r7, 0x14]
cmp r4, 0x5
bhi _081CEB5C
ldr r0, =0x00001806
adds r5, r6, r0
ldr r1, =gSprites
mov r9, r1
_081CEB0A:
lsls r2, r4, 2
adds r2, r4
lsls r2, 18
movs r3, 0x80
lsls r3, 12
adds r2, r3
asrs r2, 16
adds r0, r7, 0
movs r1, 0xE6
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x40
beq _081CEB4C
adds r0, r5, r4
strb r3, [r0]
lsls r1, r3, 4
adds r1, r3
lsls r1, 2
add r1, r9
ldrb r2, [r1, 0x3]
movs r0, 0x3F
ands r0, r2
strb r0, [r1, 0x3]
b _081CEB52
.pool
_081CEB4C:
adds r1, r5, r4
movs r0, 0xFF
strb r0, [r1]
_081CEB52:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x5
bls _081CEB0A
_081CEB5C:
movs r0, 0x66
strh r0, [r7]
ldr r0, =sub_81CE990
str r0, [r7, 0x14]
lsls r2, r4, 2
adds r2, r4
lsls r2, 18
movs r0, 0x80
lsls r0, 12
adds r2, r0
asrs r2, 16
adds r0, r7, 0
movs r1, 0xDE
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x40
beq _081CEBBC
ldr r1, =0x00001806
adds r0, r6, r1
adds r0, r4
strb r3, [r0]
ldr r0, =gSprites
lsls r2, r3, 4
adds r2, r3
lsls r2, 2
adds r2, r0
ldrb r3, [r2, 0x1]
movs r1, 0x3F
adds r0, r1, 0
ands r0, r3
movs r3, 0x40
orrs r0, r3
strb r0, [r2, 0x1]
ldrb r0, [r2, 0x3]
ands r1, r0
movs r0, 0x80
orrs r1, r0
strb r1, [r2, 0x3]
b _081CEBC6
.pool
_081CEBBC:
ldr r2, =0x00001806
adds r0, r6, r2
adds r0, r4
movs r1, 0xFF
strb r1, [r0]
_081CEBC6:
mov r0, r8
mov r1, r10
bl sub_81D32B0
mov r0, r8
bl LoadSpriteSheet
movs r0, 0
mov r3, r10
str r0, [r3, 0x8]
mov r0, r10
bl sub_81C795C
add sp, 0x58
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CE9E4
thumb_func_start sub_81CEBF4
sub_81CEBF4: @ 81CEBF4
push {r4,r5,lr}
adds r5, r0, 0
bl sub_81CDD5C
cmp r0, 0x1
bne _081CEC28
ldr r1, =0x000028dc
adds r0, r5, r1
ldr r0, [r0]
bl DestroySprite
movs r0, 0x6A
bl FreeSpriteTilesByTag
movs r0, 0x69
bl FreeSpriteTilesByTag
movs r0, 0x6A
bl FreeSpritePaletteByTag
movs r0, 0x69
bl FreeSpritePaletteByTag
b _081CEC68
.pool
_081CEC28:
movs r4, 0
_081CEC2A:
ldr r1, =0x00001806
adds r0, r5, r1
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
bl DestroySprite
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x6
bls _081CEC2A
movs r0, 0x65
bl FreeSpriteTilesByTag
movs r0, 0x66
bl FreeSpriteTilesByTag
movs r0, 0x67
bl FreeSpriteTilesByTag
movs r0, 0x65
bl FreeSpritePaletteByTag
movs r0, 0x66
bl FreeSpritePaletteByTag
_081CEC68:
ldr r0, =0x00001816
adds r1, r5, r0
ldrb r0, [r1]
cmp r0, 0xFF
beq _081CEC8E
adds r1, r0, 0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
bl DestroySprite
movs r0, 0x64
bl FreeSpriteTilesByTag
movs r0, 0x64
bl FreeSpritePaletteByTag
_081CEC8E:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CEBF4
thumb_func_start sub_81CECA0
sub_81CECA0: @ 81CECA0
push {r4,lr}
movs r0, 0xC
bl sub_81C763C
adds r4, r0, 0
movs r1, 0xC1
lsls r1, 5
adds r0, r4, r1
ldrb r0, [r0]
bl RemoveWindow
bl sub_81CDD5C
cmp r0, 0x1
bne _081CECEC
ldr r1, =0x00001821
adds r0, r4, r1
ldrb r0, [r0]
bl RemoveWindow
ldr r1, =0x00001822
adds r0, r4, r1
ldrb r0, [r0]
bl RemoveWindow
ldr r1, =0x00001823
adds r0, r4, r1
ldrb r0, [r0]
bl RemoveWindow
b _081CECF0
.pool
_081CECEC:
bl sub_81C7FDC
_081CECF0:
movs r1, 0x8A
lsls r1, 5
movs r0, 0
bl SetGpuReg
adds r0, r4, 0
bl sub_81CEBF4
bl sub_81CEE68
movs r0, 0xC
bl sub_81C7650
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CECA0
thumb_func_start sub_81CED10
sub_81CED10: @ 81CED10
push {r4,lr}
adds r4, r0, 0
movs r0, 0xC
bl sub_81C763C
ldr r1, =0x00001814
adds r0, r1
ldrh r0, [r0]
adds r0, 0x26
strh r0, [r4, 0x20]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CED10
thumb_func_start sub_81CED30
sub_81CED30: @ 81CED30
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x28
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0xC
bl sub_81C763C
mov r8, r0
ldr r7, =0x00001816
add r7, r8
ldrb r0, [r7]
cmp r0, 0xFF
bne _081CEDFC
add r5, sp, 0x18
add r4, sp, 0x20
adds r0, r5, 0
mov r1, sp
adds r2, r4, 0
bl sub_81D31D0
adds r0, r6, 0
bl sub_81CDCB4
str r0, [sp, 0x18]
adds r0, r6, 0
bl sub_81CDCD4
str r0, [sp, 0x20]
adds r0, r4, 0
bl LoadSpritePalette
lsls r0, 24
lsrs r0, 24
ldr r4, =0x00001818
add r4, r8
strh r0, [r4]
adds r0, r5, 0
bl LoadSpriteSheet
ldr r5, =0x0000181a
add r5, r8
strh r0, [r5]
mov r0, sp
movs r1, 0x26
movs r2, 0x68
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
strb r0, [r7]
cmp r0, 0x40
bne _081CEDBC
movs r0, 0x64
bl FreeSpriteTilesByTag
movs r0, 0x64
bl FreeSpritePaletteByTag
movs r0, 0xFF
strb r0, [r7]
b _081CEE26
.pool
_081CEDBC:
strb r0, [r7]
ldr r2, =gSprites
ldrb r1, [r7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, =sub_81CED10
str r1, [r0]
ldr r1, =0x0000181c
add r1, r8
ldrh r0, [r5]
lsls r0, 5
ldr r2, =0x06010000
adds r0, r2
str r0, [r1]
ldrh r0, [r4]
lsls r0, 4
movs r1, 0x80
lsls r1, 1
adds r0, r1
strh r0, [r4]
b _081CEE26
.pool
_081CEDFC:
adds r0, r6, 0
bl sub_81CDCB4
ldr r1, =0x0000181c
add r1, r8
ldr r2, [r1]
ldr r1, =0x040000d4
str r0, [r1]
str r2, [r1, 0x4]
ldr r0, =0x80000400
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r0, r6, 0
bl sub_81CDCD4
ldr r1, =0x00001818
add r1, r8
ldrh r1, [r1]
movs r2, 0x20
bl LoadPalette
_081CEE26:
add sp, 0x28
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CED30
thumb_func_start sub_81CEE44
sub_81CEE44: @ 81CEE44
push {r4,lr}
bl sub_81CDC70
adds r4, r0, 0
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
adds r0, r4, 0
bl sub_81D2108
bl ScanlineEffect_InitHBlankDmaTransfer
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CEE44
thumb_func_start sub_81CEE68
sub_81CEE68: @ 81CEE68
push {lr}
bl sub_81C760C
pop {r0}
bx r0
thumb_func_end sub_81CEE68
thumb_func_start sub_81CEE74
sub_81CEE74: @ 81CEE74
push {lr}
lsls r0, 24
cmp r0, 0
beq _081CEE84
movs r0, 0x2
bl ShowBg
b _081CEE8A
_081CEE84:
movs r0, 0x2
bl HideBg
_081CEE8A:
pop {r0}
bx r0
thumb_func_end sub_81CEE74
thumb_func_start sub_81CEE90
sub_81CEE90: @ 81CEE90
push {r4,lr}
bl sub_81CDC70
adds r4, r0, 0
bl sub_81CDC84
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_030012BC
strb r0, [r1]
adds r1, r4, 0
adds r1, 0x50
lsls r2, r0, 2
adds r2, r0
lsls r2, 2
adds r2, 0x14
adds r2, r4, r2
adds r0, r4, 0
bl sub_81D1F84
adds r0, r4, 0
bl sub_81D2074
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CEE90
thumb_func_start sub_81CEEC8
sub_81CEEC8: @ 81CEEC8
push {r4,r5,lr}
bl sub_81CDC70
adds r5, r0, 0
bl sub_81CDD5C
cmp r0, 0
bne _081CEEF0
bl sub_81CDC60
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
bl sub_81CDC50
lsls r0, 16
lsrs r0, 16
subs r0, 0x1
cmp r4, r0
beq _081CEF0C
_081CEEF0:
bl sub_81CDC84
lsls r0, 24
asrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 2
adds r1, 0x14
adds r1, r5, r1
adds r2, r5, 0
adds r2, 0x50
adds r0, r5, 0
bl sub_81D1F84
_081CEF0C:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81CEEC8
thumb_func_start sub_81CEF14
sub_81CEF14: @ 81CEF14
push {r4,lr}
movs r0, 0xC
bl sub_81C763C
adds r4, r0, 0
bl sub_81CDD5C
cmp r0, 0x1
beq _081CEF2A
movs r0, 0
b _081CEF30
_081CEF2A:
ldr r1, =0x00001828
adds r0, r4, r1
ldrb r0, [r0]
_081CEF30:
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CEF14
thumb_func_start sub_81CEF3C
sub_81CEF3C: @ 81CEF3C
push {r4,lr}
movs r0, 0x7
movs r1, 0x24
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CEF90
ldr r1, =0x000006ac
movs r0, 0x12
bl sub_81C761C
str r0, [r4, 0x20]
cmp r0, 0
beq _081CEF90
ldr r0, =sub_81CF010
str r0, [r4]
ldr r0, =sub_81CF11C
movs r1, 0x1
bl sub_81C7078
str r0, [r4, 0x4]
movs r0, 0
str r0, [r4, 0x18]
bl sub_81C76AC
ldr r1, =gUnknown_086233A0
lsls r0, 2
adds r0, r1
ldr r0, [r0]
str r0, [r4, 0x14]
movs r0, 0x1
b _081CEF92
.pool
_081CEF90:
movs r0, 0
_081CEF92:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CEF3C
thumb_func_start sub_81CEF98
sub_81CEF98: @ 81CEF98
push {r4,lr}
movs r0, 0x7
movs r1, 0x24
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CEFD4
movs r0, 0x12
bl sub_81C763C
str r0, [r4, 0x20]
ldr r0, =sub_81CF030
str r0, [r4]
movs r0, 0x1
str r0, [r4, 0x18]
bl sub_81C76AC
ldr r1, =gUnknown_086233A0
lsls r0, 2
adds r0, r1
ldr r0, [r0]
str r0, [r4, 0x14]
movs r0, 0x1
b _081CEFD6
.pool
_081CEFD4:
movs r0, 0
_081CEFD6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CEF98
thumb_func_start sub_81CEFDC
sub_81CEFDC: @ 81CEFDC
push {lr}
movs r0, 0x7
bl sub_81C763C
ldr r1, [r0]
bl _call_via_r1
pop {r1}
bx r1
thumb_func_end sub_81CEFDC
thumb_func_start sub_81CEFF0
sub_81CEFF0: @ 81CEFF0
push {lr}
movs r0, 0x7
bl sub_81C763C
ldr r0, [r0, 0x1C]
cmp r0, 0
bne _081CF004
movs r0, 0x12
bl sub_81C7650
_081CF004:
movs r0, 0x7
bl sub_81C7650
pop {r0}
bx r0
thumb_func_end sub_81CEFF0
thumb_func_start sub_81CF010
sub_81CF010: @ 81CF010
push {r4,lr}
adds r4, r0, 0
ldr r0, [r4, 0x4]
bl sub_81C70D8
cmp r0, 0
bne _081CF022
ldr r0, =sub_81CF030
str r0, [r4]
_081CF022:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CF010
thumb_func_start sub_81CF030
sub_81CF030: @ 81CF030
push {r4,r5,lr}
adds r4, r0, 0
ldr r2, =gMain
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081CF048
movs r0, 0x1
b _081CF0A6
.pool
_081CF048:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081CF054
movs r0, 0x2
b _081CF0A6
_081CF054:
ldrh r1, [r2, 0x2E]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _081CF062
movs r0, 0x3
b _081CF0A6
_081CF062:
movs r0, 0x10
ands r0, r1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0
beq _081CF072
movs r0, 0x4
b _081CF0A6
_081CF072:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081CF088
str r2, [r4, 0x1C]
ldr r0, =sub_81CF0B0
str r0, [r4]
movs r0, 0x5
b _081CF0A6
.pool
_081CF088:
movs r5, 0x1
adds r0, r5, 0
ands r0, r1
cmp r0, 0
bne _081CF096
movs r0, 0
b _081CF0A6
_081CF096:
bl sub_81C875C
ldr r1, [r4, 0x20]
strh r0, [r1, 0x2]
str r5, [r4, 0x1C]
ldr r0, =sub_81CF0B8
str r0, [r4]
movs r0, 0x6
_081CF0A6:
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CF030
thumb_func_start sub_81CF0B0
sub_81CF0B0: @ 81CF0B0
ldr r0, =0x000186a3
bx lr
.pool
thumb_func_end sub_81CF0B0
thumb_func_start sub_81CF0B8
sub_81CF0B8: @ 81CF0B8
ldr r0, =0x000186a9
bx lr
.pool
thumb_func_end sub_81CF0B8
thumb_func_start sub_81CF0C0
sub_81CF0C0: @ 81CF0C0
push {lr}
movs r0, 0x7
bl sub_81C763C
ldr r0, [r0, 0x18]
pop {r1}
bx r1
thumb_func_end sub_81CF0C0
thumb_func_start sub_81CF0D0
sub_81CF0D0: @ 81CF0D0
push {lr}
movs r0, 0x7
bl sub_81C763C
ldr r0, [r0, 0x20]
adds r0, 0x4
pop {r1}
bx r1
thumb_func_end sub_81CF0D0
thumb_func_start sub_81CF0E0
sub_81CF0E0: @ 81CF0E0
push {lr}
movs r0, 0x7
bl sub_81C763C
ldr r0, [r0, 0x20]
ldrh r0, [r0]
pop {r1}
bx r1
thumb_func_end sub_81CF0E0
thumb_func_start sub_81CF0F0
sub_81CF0F0: @ 81CF0F0
push {r4,lr}
movs r0, 0x7
bl sub_81C763C
adds r4, r0, 0
bl sub_81C875C
ldr r1, [r4, 0x20]
lsls r0, 2
adds r1, r0
ldrh r0, [r1, 0x6]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CF0F0
thumb_func_start sub_81CF10C
sub_81CF10C: @ 81CF10C
push {lr}
movs r0, 0x7
bl sub_81C763C
ldr r0, [r0, 0x20]
ldrh r0, [r0, 0x2]
pop {r1}
bx r1
thumb_func_end sub_81CF10C
thumb_func_start sub_81CF11C
sub_81CF11C: @ 81CF11C
push {lr}
ldr r2, =gUnknown_086233B4
lsls r1, r0, 2
adds r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {r1}
bx r1
.pool
thumb_func_end sub_81CF11C
thumb_func_start sub_81CF134
sub_81CF134: @ 81CF134
push {r4-r6,lr}
sub sp, 0x4
movs r0, 0x7
bl sub_81C763C
adds r6, r0, 0
ldr r0, [r6, 0x20]
movs r1, 0
strh r1, [r0]
ldr r0, [r6, 0x20]
strh r1, [r0, 0x2]
ldr r1, =0xffffff00
ldr r0, [sp]
ands r0, r1
movs r1, 0xE
orrs r0, r1
str r0, [sp]
movs r5, 0
_081CF158:
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x5
bl GetMonData
cmp r0, 0
beq _081CF1AA
adds r0, r4, 0
movs r1, 0x6
bl GetMonData
cmp r0, 0
bne _081CF1A4
lsls r1, r5, 24
lsrs r1, 16
ldr r2, =0xffff00ff
ldr r0, [sp]
ands r0, r2
orrs r0, r1
str r0, [sp]
ldr r1, [r6, 0x14]
adds r0, r4, 0
bl GetMonData
lsls r0, 16
ldr r2, =0x0000ffff
ldr r1, [sp]
ands r1, r2
orrs r1, r0
str r1, [sp]
adds r0, r6, 0
mov r1, sp
bl sub_81CF2C4
_081CF1A4:
adds r5, 0x1
cmp r5, 0x5
ble _081CF158
_081CF1AA:
movs r0, 0x1
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CF134
thumb_func_start sub_81CF1C4
sub_81CF1C4: @ 81CF1C4
push {lr}
movs r0, 0x7
bl sub_81C763C
movs r1, 0
str r1, [r0, 0x10]
str r1, [r0, 0xC]
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end sub_81CF1C4
thumb_func_start sub_81CF1D8
sub_81CF1D8: @ 81CF1D8
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
movs r0, 0x7
bl sub_81C763C
adds r6, r0, 0
ldr r5, [r6, 0xC]
ldr r4, [r6, 0x10]
movs r0, 0
mov r8, r0
cmp r5, 0xD
bgt _081CF268
_081CF1F4:
cmp r4, 0x1D
bgt _081CF260
lsls r0, r5, 24
lsrs r7, r0, 24
_081CF1FC:
adds r0, r5, 0
adds r1, r4, 0
bl sub_80D2270
cmp r0, 0
beq _081CF23A
ldr r1, =0xffffff00
ldr r0, [sp]
ands r0, r1
orrs r0, r7
lsls r1, r4, 24
lsrs r1, 24
lsls r3, r1, 8
ldr r2, =0xffff00ff
ands r0, r2
orrs r0, r3
str r0, [sp]
ldr r2, [r6, 0x14]
adds r0, r7, 0
bl GetBoxMonDataFromAnyBox
lsls r0, 16
ldr r2, =0x0000ffff
ldr r1, [sp]
ands r1, r2
orrs r1, r0
str r1, [sp]
adds r0, r6, 0
mov r1, sp
bl sub_81CF2C4
_081CF23A:
movs r0, 0x1
add r8, r0
adds r4, 0x1
mov r0, r8
cmp r0, 0xE
ble _081CF25C
str r5, [r6, 0xC]
str r4, [r6, 0x10]
movs r0, 0x3
b _081CF26A
.pool
_081CF25C:
cmp r4, 0x1D
ble _081CF1FC
_081CF260:
movs r4, 0
adds r5, 0x1
cmp r5, 0xD
ble _081CF1F4
_081CF268:
movs r0, 0x1
_081CF26A:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81CF1D8
thumb_func_start sub_81CF278
sub_81CF278: @ 81CF278
push {r4-r6,lr}
movs r0, 0x7
bl sub_81C763C
adds r5, r0, 0
ldr r0, [r5, 0x20]
ldrh r6, [r0]
ldrh r4, [r0, 0x6]
movs r1, 0x1
strh r1, [r0, 0x6]
movs r3, 0x1
cmp r3, r6
bge _081CF2B8
_081CF292:
ldr r2, [r5, 0x20]
lsls r0, r3, 2
adds r1, r2, r0
ldrh r0, [r1, 0x6]
cmp r0, r4
bne _081CF2AC
subs r0, r3, 0x1
lsls r0, 2
adds r0, r2, r0
ldrh r0, [r0, 0x6]
strh r0, [r1, 0x6]
adds r0, r3, 0x1
b _081CF2B2
_081CF2AC:
adds r4, r0, 0
adds r0, r3, 0x1
strh r0, [r1, 0x6]
_081CF2B2:
adds r3, r0, 0
cmp r3, r6
blt _081CF292
_081CF2B8:
movs r0, 0x1
str r0, [r5, 0x18]
movs r0, 0x4
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81CF278
thumb_func_start sub_81CF2C4
sub_81CF2C4: @ 81CF2C4
push {r4-r7,lr}
adds r5, r0, 0
adds r7, r1, 0
movs r1, 0
ldr r0, [r5, 0x20]
ldrh r2, [r0]
lsrs r3, r2, 1
cmp r2, r3
beq _081CF2F4
adds r6, r0, 0
ldrh r4, [r7, 0x2]
_081CF2DA:
lsls r0, r3, 2
adds r0, r6, r0
ldrh r0, [r0, 0x6]
cmp r4, r0
bls _081CF2E8
adds r2, r3, 0
b _081CF2EA
_081CF2E8:
adds r1, r3, 0x1
_081CF2EA:
subs r0, r2, r1
lsrs r0, 1
adds r3, r1, r0
cmp r2, r3
bne _081CF2DA
_081CF2F4:
ldr r0, [r5, 0x20]
ldrh r2, [r0]
lsls r6, r3, 2
cmp r2, r3
bls _081CF318
lsls r0, r2, 2
subs r4, r0, 0x4
_081CF302:
ldr r0, [r5, 0x20]
lsls r1, r2, 2
adds r0, 0x4
adds r1, r0, r1
adds r0, r4
ldr r0, [r0]
str r0, [r1]
subs r4, 0x4
subs r2, 0x1
cmp r2, r3
bhi _081CF302
_081CF318:
ldr r0, [r5, 0x20]
adds r0, 0x4
adds r0, r6
ldr r1, [r7]
str r1, [r0]
ldr r1, [r5, 0x20]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81CF2C4
thumb_func_start sub_81CF330
sub_81CF330: @ 81CF330
push {r4,lr}
movs r1, 0x81
lsls r1, 4
movs r0, 0x8
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CF360
ldr r0, =sub_81CF418
movs r1, 0x1
bl sub_81C7078
str r0, [r4, 0x4]
ldr r0, =sub_81CF3E4
str r0, [r4]
movs r0, 0
str r0, [r4, 0xC]
movs r0, 0x1
b _081CF362
.pool
_081CF360:
movs r0, 0
_081CF362:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CF330
thumb_func_start sub_81CF368
sub_81CF368: @ 81CF368
push {r4,lr}
movs r1, 0x81
lsls r1, 4
movs r0, 0x8
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CF398
ldr r0, =sub_81CF418
movs r1, 0x1
bl sub_81C7078
str r0, [r4, 0x4]
ldr r0, =sub_81CF3E4
str r0, [r4]
movs r0, 0x1
str r0, [r4, 0xC]
b _081CF39A
.pool
_081CF398:
movs r0, 0
_081CF39A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CF368
thumb_func_start sub_81CF3A0
sub_81CF3A0: @ 81CF3A0
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x8
bl sub_81C763C
adds r5, r0, 0
ldr r0, =gUnknown_08623598
lsls r4, 2
adds r4, r0
ldr r0, [r4]
movs r1, 0x1
bl sub_81C7078
str r0, [r5, 0x4]
ldr r0, =sub_81CF3E4
str r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CF3A0
thumb_func_start sub_81CF3D0
sub_81CF3D0: @ 81CF3D0
push {lr}
movs r0, 0x8
bl sub_81C763C
ldr r0, [r0]
bl _call_via_r0
pop {r1}
bx r1
thumb_func_end sub_81CF3D0
thumb_func_start sub_81CF3E4
sub_81CF3E4: @ 81CF3E4
push {lr}
movs r0, 0x8
bl sub_81C763C
ldr r0, [r0, 0x4]
bl sub_81C70D8
pop {r1}
bx r1
thumb_func_end sub_81CF3E4
thumb_func_start sub_81CF3F8
sub_81CF3F8: @ 81CF3F8
push {r4,lr}
movs r0, 0x8
bl sub_81C763C
adds r4, r0, 0
bl sub_81C8234
ldrb r0, [r4, 0x8]
bl RemoveWindow
movs r0, 0x8
bl sub_81C7650
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CF3F8
thumb_func_start sub_81CF418
sub_81CF418: @ 81CF418
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
movs r0, 0x8
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x5
bls _081CF42C
b _081CF56E
_081CF42C:
lsls r0, r4, 2
ldr r1, =_081CF43C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081CF43C:
.4byte _081CF454
.4byte _081CF4AC
.4byte _081CF4C0
.4byte _081CF4E0
.4byte _081CF4F6
.4byte _081CF55A
_081CF454:
ldr r0, =gUnknown_08623590
movs r1, 0x2
bl sub_81C7B54
ldr r1, =gUnknown_086233E4
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
adds r1, r5, 0
adds r1, 0x10
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, =gUnknown_086234AC
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, =gUnknown_086233C4
movs r1, 0x10
movs r2, 0x20
bl sub_81C7944
movs r0, 0x1
bl CopyBgTilemapBufferToVram
_081CF498:
movs r0, 0
b _081CF570
.pool
_081CF4AC:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081CF56A
bl sub_81CF0C0
cmp r0, 0
beq _081CF56A
b _081CF498
_081CF4C0:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081CF56A
ldr r0, =gUnknown_08623570
movs r1, 0x20
movs r2, 0x20
bl sub_81C7944
bl sub_81CF88C
b _081CF498
.pool
_081CF4E0:
bl sub_81C8224
cmp r0, 0
bne _081CF56A
adds r0, r5, 0
bl sub_81CF7C8
movs r0, 0x3
bl sub_81C7BA4
b _081CF498
_081CF4F6:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081CF56A
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl HideBg
ldr r0, [r5, 0xC]
cmp r0, 0
bne _081CF552
bl sub_81C76AC
adds r4, r0, 0
adds r4, 0x8
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl sub_81C7DFC
adds r0, r4, 0
movs r1, 0x1
movs r2, 0
bl sub_81C7FA0
movs r0, 0x1
movs r1, 0x1
movs r2, 0
bl sub_81C7FA0
_081CF552:
movs r0, 0x1
bl sub_81C7AC0
b _081CF498
_081CF55A:
bl sub_81C7B34
cmp r0, 0
bne _081CF56A
bl sub_81C8010
cmp r0, 0
beq _081CF56E
_081CF56A:
movs r0, 0x2
b _081CF570
_081CF56E:
movs r0, 0x4
_081CF570:
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CF418
thumb_func_start sub_81CF578
sub_81CF578: @ 81CF578
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x8
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081CF5C6
cmp r4, 0x1
bgt _081CF592
cmp r4, 0
beq _081CF59C
b _081CF5E6
_081CF592:
cmp r4, 0x2
beq _081CF5CE
cmp r4, 0x3
beq _081CF5D8
b _081CF5E6
_081CF59C:
bl sub_81C8658
cmp r0, 0x1
beq _081CF5B4
cmp r0, 0x1
bgt _081CF5AE
cmp r0, 0
beq _081CF5E6
b _081CF5D4
_081CF5AE:
cmp r0, 0x2
beq _081CF5BE
b _081CF5D4
_081CF5B4:
movs r0, 0x5
bl PlaySE
movs r0, 0x7
b _081CF5E8
_081CF5BE:
movs r0, 0x5
bl PlaySE
b _081CF5D4
_081CF5C6:
bl sub_81C8630
cmp r0, 0
bne _081CF5E2
_081CF5CE:
adds r0, r5, 0
bl sub_81CF7F4
_081CF5D4:
movs r0, 0
b _081CF5E8
_081CF5D8:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081CF5E6
_081CF5E2:
movs r0, 0x2
b _081CF5E8
_081CF5E6:
movs r0, 0x4
_081CF5E8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CF578
thumb_func_start sub_81CF5F0
sub_81CF5F0: @ 81CF5F0
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x8
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081CF63E
cmp r4, 0x1
bgt _081CF60A
cmp r4, 0
beq _081CF614
b _081CF65E
_081CF60A:
cmp r4, 0x2
beq _081CF646
cmp r4, 0x3
beq _081CF650
b _081CF65E
_081CF614:
bl sub_81C868C
cmp r0, 0x1
beq _081CF62C
cmp r0, 0x1
bgt _081CF626
cmp r0, 0
beq _081CF65E
b _081CF64C
_081CF626:
cmp r0, 0x2
beq _081CF636
b _081CF64C
_081CF62C:
movs r0, 0x5
bl PlaySE
movs r0, 0x7
b _081CF660
_081CF636:
movs r0, 0x5
bl PlaySE
b _081CF64C
_081CF63E:
bl sub_81C8630
cmp r0, 0
bne _081CF65A
_081CF646:
adds r0, r5, 0
bl sub_81CF7F4
_081CF64C:
movs r0, 0
b _081CF660
_081CF650:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081CF65E
_081CF65A:
movs r0, 0x2
b _081CF660
_081CF65E:
movs r0, 0x4
_081CF660:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CF5F0
thumb_func_start sub_81CF668
sub_81CF668: @ 81CF668
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x8
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081CF6B6
cmp r4, 0x1
bgt _081CF682
cmp r4, 0
beq _081CF68C
b _081CF6D6
_081CF682:
cmp r4, 0x2
beq _081CF6BE
cmp r4, 0x3
beq _081CF6C8
b _081CF6D6
_081CF68C:
bl sub_81C86CC
cmp r0, 0x1
beq _081CF6A4
cmp r0, 0x1
bgt _081CF69E
cmp r0, 0
beq _081CF6D6
b _081CF6C4
_081CF69E:
cmp r0, 0x2
beq _081CF6AE
b _081CF6C4
_081CF6A4:
movs r0, 0x5
bl PlaySE
movs r0, 0x7
b _081CF6D8
_081CF6AE:
movs r0, 0x5
bl PlaySE
b _081CF6C4
_081CF6B6:
bl sub_81C8630
cmp r0, 0
bne _081CF6D2
_081CF6BE:
adds r0, r5, 0
bl sub_81CF7F4
_081CF6C4:
movs r0, 0
b _081CF6D8
_081CF6C8:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081CF6D6
_081CF6D2:
movs r0, 0x2
b _081CF6D8
_081CF6D6:
movs r0, 0x4
_081CF6D8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CF668
thumb_func_start sub_81CF6E0
sub_81CF6E0: @ 81CF6E0
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x8
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081CF72E
cmp r4, 0x1
bgt _081CF6FA
cmp r4, 0
beq _081CF704
b _081CF74E
_081CF6FA:
cmp r4, 0x2
beq _081CF736
cmp r4, 0x3
beq _081CF740
b _081CF74E
_081CF704:
bl sub_81C870C
cmp r0, 0x1
beq _081CF71C
cmp r0, 0x1
bgt _081CF716
cmp r0, 0
beq _081CF74E
b _081CF73C
_081CF716:
cmp r0, 0x2
beq _081CF726
b _081CF73C
_081CF71C:
movs r0, 0x5
bl PlaySE
movs r0, 0x7
b _081CF750
_081CF726:
movs r0, 0x5
bl PlaySE
b _081CF73C
_081CF72E:
bl sub_81C8630
cmp r0, 0
bne _081CF74A
_081CF736:
adds r0, r5, 0
bl sub_81CF7F4
_081CF73C:
movs r0, 0
b _081CF750
_081CF740:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081CF74E
_081CF74A:
movs r0, 0x2
b _081CF750
_081CF74E:
movs r0, 0x4
_081CF750:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CF6E0
thumb_func_start sub_81CF758
sub_81CF758: @ 81CF758
push {lr}
cmp r0, 0
beq _081CF764
cmp r0, 0x1
beq _081CF778
b _081CF790
_081CF764:
movs r0, 0x5
bl PlaySE
movs r0, 0
bl sub_81C7AC0
bl sub_81C78A0
movs r0, 0
b _081CF792
_081CF778:
bl sub_81C7B34
cmp r0, 0
bne _081CF788
bl sub_81C78C0
cmp r0, 0
beq _081CF78C
_081CF788:
movs r0, 0x2
b _081CF792
_081CF78C:
bl sub_81C7FDC
_081CF790:
movs r0, 0x4
_081CF792:
pop {r1}
bx r1
thumb_func_end sub_81CF758
thumb_func_start sub_81CF798
sub_81CF798: @ 81CF798
push {lr}
cmp r0, 0
beq _081CF7A4
cmp r0, 0x1
beq _081CF7B4
b _081CF7C0
_081CF7A4:
movs r0, 0x5
bl PlaySE
movs r0, 0
bl sub_81C7AC0
movs r0, 0
b _081CF7C2
_081CF7B4:
bl sub_81C7B34
cmp r0, 0
beq _081CF7C0
movs r0, 0x2
b _081CF7C2
_081CF7C0:
movs r0, 0x4
_081CF7C2:
pop {r1}
bx r1
thumb_func_end sub_81CF798
thumb_func_start sub_81CF7C8
sub_81CF7C8: @ 81CF7C8
push {r4,lr}
adds r4, r0, 0
ldr r0, =gUnknown_086235B4
bl AddWindow
strh r0, [r4, 0x8]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
ldrb r0, [r4, 0x8]
movs r1, 0x1
bl CopyWindowToVram
adds r0, r4, 0
bl sub_81CF7F4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CF7C8
thumb_func_start sub_81CF7F4
sub_81CF7F4: @ 81CF7F4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
mov r8, r0
bl sub_81CF0F0
adds r7, r0, 0
bl DynamicPlaceholderTextUtil_Reset
ldr r4, =gStringVar1
movs r0, 0
adds r1, r4, 0
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r0, 0xFF
strb r0, [r4]
ldr r5, =gStringVar2
ldr r1, =gText_NumberF700
adds r0, r5, 0
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
mov r1, r8
ldrb r0, [r1, 0x8]
movs r1, 0x1
mov r10, r1
str r1, [sp]
movs r1, 0xFF
mov r9, r1
str r1, [sp, 0x4]
movs r6, 0
str r6, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x4
bl AddTextPrinterParameterized
adds r0, r4, 0
adds r1, r7, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
mov r1, r8
ldrb r0, [r1, 0x8]
mov r1, r10
str r1, [sp]
mov r1, r9
str r1, [sp, 0x4]
str r6, [sp, 0x8]
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x22
bl AddTextPrinterParameterized
mov r1, r8
ldrb r0, [r1, 0x8]
movs r1, 0x2
bl CopyWindowToVram
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CF7F4
thumb_func_start sub_81CF88C
sub_81CF88C: @ 81CF88C
push {r4,lr}
sub sp, 0x18
bl sub_81CF0D0
str r0, [sp]
bl sub_81CF0E0
mov r1, sp
movs r4, 0
strh r0, [r1, 0x4]
movs r0, 0x4
strb r0, [r1, 0x8]
bl sub_81CF10C
mov r1, sp
strh r0, [r1, 0x6]
movs r0, 0xD
strb r0, [r1, 0x9]
movs r0, 0x11
strb r0, [r1, 0xA]
mov r0, sp
movs r2, 0x1
strb r2, [r0, 0xB]
movs r0, 0x8
strb r0, [r1, 0xC]
movs r0, 0x2
strb r0, [r1, 0xD]
mov r0, sp
strb r2, [r0, 0xE]
ldr r0, =sub_81CF8E4
str r0, [sp, 0x10]
str r4, [sp, 0x14]
ldr r0, =gUnknown_08623594
movs r2, 0
bl sub_81C81D4
add sp, 0x18
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CF88C
thumb_func_start sub_81CF8E4
sub_81CF8E4: @ 81CF8E4
push {r4-r7,lr}
adds r2, r0, 0
adds r6, r1, 0
ldrb r0, [r2]
cmp r0, 0xE
bne _081CF924
ldrb r1, [r2, 0x1]
movs r0, 0x64
adds r4, r1, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
adds r0, r4, 0
bl GetMonGender
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
bl GetLevelFromMonExp
lsls r0, 24
lsrs r7, r0, 24
ldr r2, =gStringVar3
adds r0, r4, 0
movs r1, 0x2
bl GetMonData
b _081CF94A
.pool
_081CF924:
ldrb r0, [r2]
ldrb r1, [r2, 0x1]
bl GetBoxedMonPtr
adds r4, r0, 0
bl GetBoxMonGender
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
bl GetLevelFromBoxMonExp
lsls r0, 24
lsrs r7, r0, 24
ldr r2, =gStringVar3
adds r0, r4, 0
movs r1, 0x2
bl GetBoxMonData
_081CF94A:
ldr r4, =gStringVar3
adds r0, r4, 0
bl StringGetEnd10
adds r0, r6, 0
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x3C
bl sub_81DB494
adds r6, r0, 0
cmp r5, 0
beq _081CF974
cmp r5, 0xFE
beq _081CF97C
ldr r1, =gUnknown_086235D4
b _081CF97E
.pool
_081CF974:
ldr r1, =gUnknown_086235BC
b _081CF97E
.pool
_081CF97C:
ldr r1, =gUnknown_086235C8
_081CF97E:
ldr r4, =gStringVar1
adds r0, r4, 0
bl StringCopy
movs r1, 0xBA
strb r1, [r0]
adds r0, 0x1
movs r1, 0xF9
strb r1, [r0]
adds r0, 0x1
movs r1, 0x5
strb r1, [r0]
adds r0, 0x1
adds r1, r7, 0
movs r2, 0
movs r3, 0x3
bl ConvertIntToDecimalStringN
adds r0, r6, 0
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x28
bl sub_81DB494
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CF8E4
thumb_func_start sub_81CF9BC
sub_81CF9BC: @ 81CF9BC
push {r4,lr}
movs r0, 0x9
movs r1, 0x20
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CF9FC
ldr r1, =0x000006ac
movs r0, 0x12
bl sub_81C761C
str r0, [r4, 0x1C]
cmp r0, 0
beq _081CF9FC
ldr r0, =sub_81CFA68
str r0, [r4]
ldr r0, =sub_81CFB74
movs r1, 0x1
bl sub_81C7078
str r0, [r4, 0x4]
movs r0, 0
str r0, [r4, 0x14]
movs r0, 0x1
b _081CF9FE
.pool
_081CF9FC:
movs r0, 0
_081CF9FE:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CF9BC
thumb_func_start sub_81CFA04
sub_81CFA04: @ 81CFA04
push {r4,lr}
movs r0, 0x9
movs r1, 0x20
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CFA2C
movs r0, 0x12
bl sub_81C763C
str r0, [r4, 0x1C]
ldr r0, =sub_81CFA88
str r0, [r4]
movs r0, 0x1
str r0, [r4, 0x14]
b _081CFA2E
.pool
_081CFA2C:
movs r0, 0
_081CFA2E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CFA04
thumb_func_start sub_81CFA34
sub_81CFA34: @ 81CFA34
push {lr}
movs r0, 0x9
bl sub_81C763C
ldr r1, [r0]
bl _call_via_r1
pop {r1}
bx r1
thumb_func_end sub_81CFA34
thumb_func_start sub_81CFA48
sub_81CFA48: @ 81CFA48
push {lr}
movs r0, 0x9
bl sub_81C763C
ldr r0, [r0, 0x18]
cmp r0, 0
bne _081CFA5C
movs r0, 0x12
bl sub_81C7650
_081CFA5C:
movs r0, 0x9
bl sub_81C7650
pop {r0}
bx r0
thumb_func_end sub_81CFA48
thumb_func_start sub_81CFA68
sub_81CFA68: @ 81CFA68
push {r4,lr}
adds r4, r0, 0
ldr r0, [r4, 0x4]
bl sub_81C70D8
cmp r0, 0
bne _081CFA7A
ldr r0, =sub_81CFA88
str r0, [r4]
_081CFA7A:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CFA68
thumb_func_start sub_81CFA88
sub_81CFA88: @ 81CFA88
push {r4,r5,lr}
adds r4, r0, 0
ldr r2, =gMain
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081CFAA0
movs r0, 0x1
b _081CFAFE
.pool
_081CFAA0:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081CFAAC
movs r0, 0x2
b _081CFAFE
_081CFAAC:
ldrh r1, [r2, 0x2E]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _081CFABA
movs r0, 0x3
b _081CFAFE
_081CFABA:
movs r0, 0x10
ands r0, r1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0
beq _081CFACA
movs r0, 0x4
b _081CFAFE
_081CFACA:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081CFAE0
str r2, [r4, 0x18]
ldr r0, =sub_81CFB08
str r0, [r4]
movs r0, 0x5
b _081CFAFE
.pool
_081CFAE0:
movs r5, 0x1
adds r0, r5, 0
ands r0, r1
cmp r0, 0
bne _081CFAEE
movs r0, 0
b _081CFAFE
_081CFAEE:
bl sub_81C875C
ldr r1, [r4, 0x1C]
strh r0, [r1, 0x2]
str r5, [r4, 0x18]
ldr r0, =sub_81CFB10
str r0, [r4]
movs r0, 0x6
_081CFAFE:
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CFA88
thumb_func_start sub_81CFB08
sub_81CFB08: @ 81CFB08
ldr r0, =0x000186a5
bx lr
.pool
thumb_func_end sub_81CFB08
thumb_func_start sub_81CFB10
sub_81CFB10: @ 81CFB10
ldr r0, =0x000186ad
bx lr
.pool
thumb_func_end sub_81CFB10
thumb_func_start sub_81CFB18
sub_81CFB18: @ 81CFB18
push {lr}
movs r0, 0x9
bl sub_81C763C
ldr r0, [r0, 0x14]
pop {r1}
bx r1
thumb_func_end sub_81CFB18
thumb_func_start sub_81CFB28
sub_81CFB28: @ 81CFB28
push {lr}
movs r0, 0x9
bl sub_81C763C
ldr r0, [r0, 0x1C]
adds r0, 0x4
pop {r1}
bx r1
thumb_func_end sub_81CFB28
thumb_func_start sub_81CFB38
sub_81CFB38: @ 81CFB38
push {lr}
movs r0, 0x9
bl sub_81C763C
ldr r0, [r0, 0x1C]
ldrh r0, [r0]
pop {r1}
bx r1
thumb_func_end sub_81CFB38
thumb_func_start sub_81CFB48
sub_81CFB48: @ 81CFB48
push {r4,lr}
movs r0, 0x9
bl sub_81C763C
adds r4, r0, 0
bl sub_81C875C
ldr r1, [r4, 0x1C]
lsls r0, 2
adds r1, r0
ldrh r0, [r1, 0x6]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CFB48
thumb_func_start sub_81CFB64
sub_81CFB64: @ 81CFB64
push {lr}
movs r0, 0x9
bl sub_81C763C
ldr r0, [r0, 0x1C]
ldrh r0, [r0, 0x2]
pop {r1}
bx r1
thumb_func_end sub_81CFB64
thumb_func_start sub_81CFB74
sub_81CFB74: @ 81CFB74
push {lr}
ldr r2, =gUnknown_086235D8
lsls r1, r0, 2
adds r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {r1}
bx r1
.pool
thumb_func_end sub_81CFB74
thumb_func_start sub_81CFB8C
sub_81CFB8C: @ 81CFB8C
push {r4-r6,lr}
sub sp, 0x4
movs r0, 0x9
bl sub_81C763C
adds r6, r0, 0
ldr r0, [r6, 0x1C]
movs r1, 0
strh r1, [r0]
ldr r0, [r6, 0x1C]
strh r1, [r0, 0x2]
ldr r1, =0xffffff00
ldr r0, [sp]
ands r0, r1
movs r1, 0xE
orrs r0, r1
str r0, [sp]
movs r5, 0
_081CFBB0:
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x5
bl GetMonData
cmp r0, 0
beq _081CFC10
adds r0, r4, 0
movs r1, 0x6
bl GetMonData
cmp r0, 0
bne _081CFC0A
adds r0, r4, 0
movs r1, 0x4
bl GetMonData
cmp r0, 0
bne _081CFC0A
adds r0, r4, 0
movs r1, 0x52
bl GetMonData
adds r3, r0, 0
cmp r3, 0
beq _081CFC0A
lsls r1, r5, 24
lsrs r1, 16
ldr r2, =0xffff00ff
ldr r0, [sp]
ands r0, r2
orrs r0, r1
lsls r2, r3, 16
ldr r1, =0x0000ffff
ands r0, r1
orrs r0, r2
str r0, [sp]
adds r0, r6, 0
mov r1, sp
bl sub_81CFCEC
_081CFC0A:
adds r5, 0x1
cmp r5, 0x5
ble _081CFBB0
_081CFC10:
movs r0, 0x1
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_81CFB8C
thumb_func_start sub_81CFC2C
sub_81CFC2C: @ 81CFC2C
push {lr}
movs r0, 0x9
bl sub_81C763C
movs r1, 0
str r1, [r0, 0x10]
str r1, [r0, 0xC]
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end sub_81CFC2C
thumb_func_start sub_81CFC40
sub_81CFC40: @ 81CFC40
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
movs r0, 0x9
bl sub_81C763C
mov r8, r0
ldr r7, [r0, 0xC]
ldr r6, [r0, 0x10]
movs r0, 0
mov r9, r0
cmp r7, 0xD
bgt _081CFCD4
b _081CFCC8
_081CFC60:
adds r0, r7, 0
adds r1, r6, 0
bl sub_80D2270
cmp r0, 0
beq _081CFCA6
lsls r0, r7, 24
lsrs r5, r0, 24
lsls r0, r6, 24
lsrs r4, r0, 24
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x52
bl GetBoxMonDataFromAnyBox
adds r3, r0, 0
cmp r3, 0
beq _081CFCA6
ldr r1, =0xffffff00
ldr r0, [sp]
ands r0, r1
orrs r0, r5
lsls r2, r4, 8
ldr r1, =0xffff00ff
ands r0, r1
orrs r0, r2
lsls r2, r3, 16
ldr r1, =0x0000ffff
ands r0, r1
orrs r0, r2
str r0, [sp]
mov r0, r8
mov r1, sp
bl sub_81CFCEC
_081CFCA6:
movs r1, 0x1
add r9, r1
adds r6, 0x1
mov r0, r9
cmp r0, 0xE
ble _081CFCC8
mov r1, r8
str r7, [r1, 0xC]
str r6, [r1, 0x10]
movs r0, 0x3
b _081CFCDC
.pool
_081CFCC8:
cmp r6, 0x1D
ble _081CFC60
movs r6, 0
adds r7, 0x1
cmp r7, 0xD
ble _081CFCC8
_081CFCD4:
movs r0, 0x1
mov r1, r8
str r0, [r1, 0x14]
movs r0, 0x4
_081CFCDC:
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81CFC40
thumb_func_start sub_81CFCEC
sub_81CFCEC: @ 81CFCEC
push {r4-r7,lr}
adds r5, r0, 0
adds r7, r1, 0
movs r1, 0
ldr r0, [r5, 0x1C]
ldrh r2, [r0]
lsrs r3, r2, 1
cmp r2, r3
beq _081CFD1C
adds r6, r0, 0
ldrh r4, [r7, 0x2]
_081CFD02:
lsls r0, r3, 2
adds r0, r6, r0
ldrh r0, [r0, 0x6]
cmp r4, r0
bls _081CFD10
adds r2, r3, 0
b _081CFD12
_081CFD10:
adds r1, r3, 0x1
_081CFD12:
subs r0, r2, r1
lsrs r0, 1
adds r3, r1, r0
cmp r2, r3
bne _081CFD02
_081CFD1C:
ldr r0, [r5, 0x1C]
ldrh r2, [r0]
lsls r6, r3, 2
cmp r2, r3
bls _081CFD40
lsls r0, r2, 2
subs r4, r0, 0x4
_081CFD2A:
ldr r0, [r5, 0x1C]
lsls r1, r2, 2
adds r0, 0x4
adds r1, r0, r1
adds r0, r4
ldr r0, [r0]
str r0, [r1]
subs r4, 0x4
subs r2, 0x1
cmp r2, r3
bhi _081CFD2A
_081CFD40:
ldr r0, [r5, 0x1C]
adds r0, 0x4
adds r0, r6
ldr r1, [r7]
str r1, [r0]
ldr r1, [r5, 0x1C]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81CFCEC
thumb_func_start sub_81CFD58
sub_81CFD58: @ 81CFD58
push {r4-r6,lr}
movs r5, 0
_081CFD5C:
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x5
bl GetMonData
cmp r0, 0
beq _081CFD8A
adds r0, r4, 0
movs r1, 0x6
bl GetMonData
cmp r0, 0
bne _081CFD8A
adds r0, r4, 0
movs r1, 0x53
bl GetMonData
cmp r0, 0
bne _081CFDB2
_081CFD8A:
adds r5, 0x1
cmp r5, 0x5
ble _081CFD5C
movs r5, 0
_081CFD92:
movs r4, 0
lsls r6, r5, 24
_081CFD96:
adds r0, r5, 0
adds r1, r4, 0
bl sub_80D2270
cmp r0, 0
beq _081CFDBC
lsls r1, r4, 24
lsrs r1, 24
lsrs r0, r6, 24
movs r2, 0x53
bl GetBoxMonDataFromAnyBox
cmp r0, 0
beq _081CFDBC
_081CFDB2:
movs r0, 0x1
b _081CFDCA
.pool
_081CFDBC:
adds r4, 0x1
cmp r4, 0x1D
ble _081CFD96
adds r5, 0x1
cmp r5, 0xD
ble _081CFD92
movs r0, 0
_081CFDCA:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81CFD58
thumb_func_start sub_81CFDD0
sub_81CFDD0: @ 81CFDD0
push {r4,lr}
movs r1, 0x81
lsls r1, 4
movs r0, 0xA
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CFE00
ldr r0, =sub_81CFEB8
movs r1, 0x1
bl sub_81C7078
str r0, [r4, 0x4]
ldr r0, =sub_81CFE84
str r0, [r4]
movs r0, 0
str r0, [r4, 0xC]
movs r0, 0x1
b _081CFE02
.pool
_081CFE00:
movs r0, 0
_081CFE02:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CFDD0
thumb_func_start sub_81CFE08
sub_81CFE08: @ 81CFE08
push {r4,lr}
movs r1, 0x81
lsls r1, 4
movs r0, 0xA
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081CFE38
ldr r0, =sub_81CFEB8
movs r1, 0x1
bl sub_81C7078
str r0, [r4, 0x4]
ldr r0, =sub_81CFE84
str r0, [r4]
movs r0, 0x1
str r0, [r4, 0xC]
b _081CFE3A
.pool
_081CFE38:
movs r0, 0
_081CFE3A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81CFE08
thumb_func_start sub_81CFE40
sub_81CFE40: @ 81CFE40
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0xA
bl sub_81C763C
adds r5, r0, 0
ldr r0, =gUnknown_086237B8
lsls r4, 2
adds r4, r0
ldr r0, [r4]
movs r1, 0x1
bl sub_81C7078
str r0, [r5, 0x4]
ldr r0, =sub_81CFE84
str r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81CFE40
thumb_func_start sub_81CFE70
sub_81CFE70: @ 81CFE70
push {lr}
movs r0, 0xA
bl sub_81C763C
ldr r0, [r0]
bl _call_via_r0
pop {r1}
bx r1
thumb_func_end sub_81CFE70
thumb_func_start sub_81CFE84
sub_81CFE84: @ 81CFE84
push {lr}
movs r0, 0xA
bl sub_81C763C
ldr r0, [r0, 0x4]
bl sub_81C70D8
pop {r1}
bx r1
thumb_func_end sub_81CFE84
thumb_func_start sub_81CFE98
sub_81CFE98: @ 81CFE98
push {r4,lr}
movs r0, 0xA
bl sub_81C763C
adds r4, r0, 0
bl sub_81C8234
ldrb r0, [r4, 0x8]
bl RemoveWindow
movs r0, 0xA
bl sub_81C7650
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81CFE98
thumb_func_start sub_81CFEB8
sub_81CFEB8: @ 81CFEB8
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
movs r0, 0xA
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x5
bls _081CFECC
b _081CFFF2
_081CFECC:
lsls r0, r4, 2
ldr r1, =_081CFEDC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081CFEDC:
.4byte _081CFEF4
.4byte _081CFF48
.4byte _081CFF76
.4byte _081CFF94
.4byte _081CFFA4
.4byte _081CFFDE
_081CFEF4:
ldr r0, =gUnknown_086237B0
movs r1, 0x2
bl sub_81C7B54
ldr r1, =gUnknown_08623604
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
adds r1, r5, 0
adds r1, 0x10
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, =gUnknown_086236CC
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
ldr r0, =gUnknown_086235E4
movs r1, 0x10
movs r2, 0x20
bl sub_81C7944
movs r0, 0x1
bl CopyBgTilemapBufferToVram
_081CFF32:
movs r0, 0
b _081CFFF4
.pool
_081CFF48:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081CFFEE
bl sub_81CFB18
cmp r0, 0
beq _081CFFEE
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x1
bl ShowBg
b _081CFF32
_081CFF76:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081CFFEE
ldr r0, =gUnknown_08623790
movs r1, 0x20
movs r2, 0x20
bl sub_81C7944
bl sub_81D0304
b _081CFF32
.pool
_081CFF94:
bl sub_81C8224
cmp r0, 0
bne _081CFFEE
adds r0, r5, 0
bl sub_81D024C
b _081CFF32
_081CFFA4:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081CFFEE
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl HideBg
movs r0, 0x9
bl sub_81C7BA4
movs r0, 0x1
bl sub_81C7AC0
ldr r0, [r5, 0xC]
cmp r0, 0
bne _081CFF32
movs r0, 0x2
bl sub_81C7DFC
movs r0, 0x2
movs r1, 0x1
movs r2, 0
bl sub_81C7FA0
b _081CFF32
_081CFFDE:
bl sub_81C7B34
cmp r0, 0
bne _081CFFEE
bl sub_81C8010
cmp r0, 0
beq _081CFFF2
_081CFFEE:
movs r0, 0x2
b _081CFFF4
_081CFFF2:
movs r0, 0x4
_081CFFF4:
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CFEB8
thumb_func_start sub_81CFFFC
sub_81CFFFC: @ 81CFFFC
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0xA
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081D004A
cmp r4, 0x1
bgt _081D0016
cmp r4, 0
beq _081D0020
b _081D006A
_081D0016:
cmp r4, 0x2
beq _081D0052
cmp r4, 0x3
beq _081D005C
b _081D006A
_081D0020:
bl sub_81C8658
cmp r0, 0x1
beq _081D0038
cmp r0, 0x1
bgt _081D0032
cmp r0, 0
beq _081D006A
b _081D0058
_081D0032:
cmp r0, 0x2
beq _081D0042
b _081D0058
_081D0038:
movs r0, 0x5
bl PlaySE
movs r0, 0x7
b _081D006C
_081D0042:
movs r0, 0x5
bl PlaySE
b _081D0058
_081D004A:
bl sub_81C8630
cmp r0, 0
bne _081D0066
_081D0052:
adds r0, r5, 0
bl sub_81D0288
_081D0058:
movs r0, 0
b _081D006C
_081D005C:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081D006A
_081D0066:
movs r0, 0x2
b _081D006C
_081D006A:
movs r0, 0x4
_081D006C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81CFFFC
thumb_func_start sub_81D0074
sub_81D0074: @ 81D0074
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0xA
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081D00C2
cmp r4, 0x1
bgt _081D008E
cmp r4, 0
beq _081D0098
b _081D00E2
_081D008E:
cmp r4, 0x2
beq _081D00CA
cmp r4, 0x3
beq _081D00D4
b _081D00E2
_081D0098:
bl sub_81C868C
cmp r0, 0x1
beq _081D00B0
cmp r0, 0x1
bgt _081D00AA
cmp r0, 0
beq _081D00E2
b _081D00D0
_081D00AA:
cmp r0, 0x2
beq _081D00BA
b _081D00D0
_081D00B0:
movs r0, 0x5
bl PlaySE
movs r0, 0x7
b _081D00E4
_081D00BA:
movs r0, 0x5
bl PlaySE
b _081D00D0
_081D00C2:
bl sub_81C8630
cmp r0, 0
bne _081D00DE
_081D00CA:
adds r0, r5, 0
bl sub_81D0288
_081D00D0:
movs r0, 0
b _081D00E4
_081D00D4:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081D00E2
_081D00DE:
movs r0, 0x2
b _081D00E4
_081D00E2:
movs r0, 0x4
_081D00E4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D0074
thumb_func_start sub_81D00EC
sub_81D00EC: @ 81D00EC
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0xA
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081D013A
cmp r4, 0x1
bgt _081D0106
cmp r4, 0
beq _081D0110
b _081D015A
_081D0106:
cmp r4, 0x2
beq _081D0142
cmp r4, 0x3
beq _081D014C
b _081D015A
_081D0110:
bl sub_81C86CC
cmp r0, 0x1
beq _081D0128
cmp r0, 0x1
bgt _081D0122
cmp r0, 0
beq _081D015A
b _081D0148
_081D0122:
cmp r0, 0x2
beq _081D0132
b _081D0148
_081D0128:
movs r0, 0x5
bl PlaySE
movs r0, 0x7
b _081D015C
_081D0132:
movs r0, 0x5
bl PlaySE
b _081D0148
_081D013A:
bl sub_81C8630
cmp r0, 0
bne _081D0156
_081D0142:
adds r0, r5, 0
bl sub_81D0288
_081D0148:
movs r0, 0
b _081D015C
_081D014C:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081D015A
_081D0156:
movs r0, 0x2
b _081D015C
_081D015A:
movs r0, 0x4
_081D015C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D00EC
thumb_func_start sub_81D0164
sub_81D0164: @ 81D0164
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0xA
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081D01B2
cmp r4, 0x1
bgt _081D017E
cmp r4, 0
beq _081D0188
b _081D01D2
_081D017E:
cmp r4, 0x2
beq _081D01BA
cmp r4, 0x3
beq _081D01C4
b _081D01D2
_081D0188:
bl sub_81C870C
cmp r0, 0x1
beq _081D01A0
cmp r0, 0x1
bgt _081D019A
cmp r0, 0
beq _081D01D2
b _081D01C0
_081D019A:
cmp r0, 0x2
beq _081D01AA
b _081D01C0
_081D01A0:
movs r0, 0x5
bl PlaySE
movs r0, 0x7
b _081D01D4
_081D01AA:
movs r0, 0x5
bl PlaySE
b _081D01C0
_081D01B2:
bl sub_81C8630
cmp r0, 0
bne _081D01CE
_081D01BA:
adds r0, r5, 0
bl sub_81D0288
_081D01C0:
movs r0, 0
b _081D01D4
_081D01C4:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081D01D2
_081D01CE:
movs r0, 0x2
b _081D01D4
_081D01D2:
movs r0, 0x4
_081D01D4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D0164
thumb_func_start sub_81D01DC
sub_81D01DC: @ 81D01DC
push {lr}
cmp r0, 0
beq _081D01E8
cmp r0, 0x1
beq _081D01FC
b _081D0214
_081D01E8:
movs r0, 0x5
bl PlaySE
movs r0, 0
bl sub_81C7AC0
bl sub_81C78A0
movs r0, 0
b _081D0216
_081D01FC:
bl sub_81C7B34
cmp r0, 0
bne _081D020C
bl sub_81C78C0
cmp r0, 0
beq _081D0210
_081D020C:
movs r0, 0x2
b _081D0216
_081D0210:
bl sub_81C7FDC
_081D0214:
movs r0, 0x4
_081D0216:
pop {r1}
bx r1
thumb_func_end sub_81D01DC
thumb_func_start sub_81D021C
sub_81D021C: @ 81D021C
push {lr}
cmp r0, 0
beq _081D0228
cmp r0, 0x1
beq _081D0238
b _081D0244
_081D0228:
movs r0, 0x5
bl PlaySE
movs r0, 0
bl sub_81C7AC0
movs r0, 0
b _081D0246
_081D0238:
bl sub_81C7B34
cmp r0, 0
beq _081D0244
movs r0, 0x2
b _081D0246
_081D0244:
movs r0, 0x4
_081D0246:
pop {r1}
bx r1
thumb_func_end sub_81D021C
thumb_func_start sub_81D024C
sub_81D024C: @ 81D024C
push {r4,lr}
adds r4, r0, 0
ldr r0, =gUnknown_086237D4
bl AddWindow
strh r0, [r4, 0x8]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
bl sub_81CFB38
adds r2, r0, 0
ldrh r0, [r4, 0x8]
movs r1, 0
bl sub_81D02B0
ldrb r0, [r4, 0x8]
movs r1, 0x1
bl CopyWindowToVram
adds r0, r4, 0
bl sub_81D0288
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D024C
thumb_func_start sub_81D0288
sub_81D0288: @ 81D0288
push {r4,r5,lr}
adds r5, r0, 0
bl sub_81C875C
adds r4, r0, 0
bl sub_81CFB38
adds r2, r0, 0
ldrh r0, [r5, 0x8]
adds r4, 0x1
adds r1, r4, 0
bl sub_81D02B0
ldrb r0, [r5, 0x8]
movs r1, 0x2
bl CopyWindowToVram
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81D0288
thumb_func_start sub_81D02B0
sub_81D02B0: @ 81D02B0
push {r4,r5,lr}
sub sp, 0x1C
adds r4, r0, 0
adds r5, r2, 0
add r0, sp, 0xC
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
movs r1, 0xBA
strb r1, [r0]
adds r0, 0x1
adds r1, r5, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
movs r0, 0x1
add r1, sp, 0xC
movs r2, 0x38
bl GetStringCenterAlignXOffset
adds r3, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r3, 24
lsrs r3, 24
movs r0, 0x1
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
adds r0, r4, 0
movs r1, 0x1
add r2, sp, 0xC
bl AddTextPrinterParameterized
add sp, 0x1C
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81D02B0
thumb_func_start sub_81D0304
sub_81D0304: @ 81D0304
push {r4,lr}
sub sp, 0x18
bl sub_81CFB28
str r0, [sp]
bl sub_81CFB38
mov r1, sp
movs r4, 0
strh r0, [r1, 0x4]
movs r0, 0x4
strb r0, [r1, 0x8]
bl sub_81CFB64
mov r1, sp
strh r0, [r1, 0x6]
movs r0, 0xD
strb r0, [r1, 0x9]
movs r0, 0x11
strb r0, [r1, 0xA]
mov r0, sp
movs r2, 0x1
strb r2, [r0, 0xB]
movs r0, 0x8
strb r0, [r1, 0xC]
movs r0, 0x2
strb r0, [r1, 0xD]
mov r0, sp
strb r2, [r0, 0xE]
ldr r0, =sub_81D035C
str r0, [sp, 0x10]
str r4, [sp, 0x14]
ldr r0, =gUnknown_086237B4
movs r2, 0
bl sub_81C81D4
add sp, 0x18
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D0304
thumb_func_start sub_81D035C
sub_81D035C: @ 81D035C
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r1, 0
adds r7, r0, 0
ldrb r0, [r7]
cmp r0, 0xE
bne _081D03A4
ldrb r1, [r7, 0x1]
movs r0, 0x64
adds r4, r1, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
adds r0, r4, 0
bl GetMonGender
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
bl GetLevelFromMonExp
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r2, =gStringVar3
adds r0, r4, 0
movs r1, 0x2
bl GetMonData
b _081D03CC
.pool
_081D03A4:
ldrb r0, [r7]
ldrb r1, [r7, 0x1]
bl GetBoxedMonPtr
adds r4, r0, 0
bl GetBoxMonGender
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
bl GetLevelFromBoxMonExp
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r2, =gStringVar3
adds r0, r4, 0
movs r1, 0x2
bl GetBoxMonData
_081D03CC:
ldr r4, =gStringVar3
adds r0, r4, 0
bl StringGetEnd10
adds r0, r6, 0
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x3C
bl sub_81DB494
adds r6, r0, 0
cmp r5, 0
beq _081D03F8
cmp r5, 0xFE
beq _081D0400
ldr r1, =gUnknown_086237F4
b _081D0402
.pool
_081D03F8:
ldr r1, =gUnknown_086237DC
b _081D0402
.pool
_081D0400:
ldr r1, =gUnknown_086237E8
_081D0402:
ldr r4, =gStringVar1
adds r0, r4, 0
bl StringCopy
movs r1, 0xBA
strb r1, [r0]
adds r0, 0x1
movs r1, 0xF9
strb r1, [r0]
adds r0, 0x1
movs r1, 0x5
strb r1, [r0]
adds r0, 0x1
mov r1, r8
movs r2, 0
movs r3, 0x3
bl ConvertIntToDecimalStringN
adds r0, r6, 0
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x36
bl sub_81DB494
adds r6, r0, 0
ldrh r1, [r7, 0x2]
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D035C
thumb_func_start sub_81D0450
sub_81D0450: @ 81D0450
push {r4,lr}
movs r0, 0xD
movs r1, 0x9C
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081D0498
movs r0, 0x12
bl sub_81C763C
str r0, [r4, 0x8]
cmp r0, 0
beq _081D0498
adds r0, r4, 0
bl sub_81D0814
adds r1, r4, 0
adds r1, 0x98
ldr r0, =sub_81D04C4
str r0, [r1]
ldr r1, =gKeyRepeatContinueDelay
movs r0, 0x3
strh r0, [r1]
ldr r1, =gKeyRepeatStartDelay
movs r0, 0xA
strh r0, [r1]
movs r0, 0x1
b _081D049A
.pool
_081D0498:
movs r0, 0
_081D049A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81D0450
thumb_func_start sub_81D04A0
sub_81D04A0: @ 81D04A0
push {lr}
movs r0, 0xD
bl sub_81C763C
adds r1, r0, 0
adds r1, 0x98
ldr r1, [r1]
bl _call_via_r1
pop {r1}
bx r1
thumb_func_end sub_81D04A0
thumb_func_start sub_81D04B8
sub_81D04B8: @ 81D04B8
push {lr}
movs r0, 0xD
bl sub_81C7650
pop {r0}
bx r0
thumb_func_end sub_81D04B8
thumb_func_start sub_81D04C4
sub_81D04C4: @ 81D04C4
push {r4,lr}
adds r4, r0, 0
ldr r2, =gMain
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081D04E4
ldr r3, [r4, 0x8]
ldrh r0, [r3, 0x2]
cmp r0, 0
beq _081D04E4
subs r0, 0x1
b _081D04FC
.pool
_081D04E4:
ldrh r1, [r2, 0x30]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081D050C
ldr r3, [r4, 0x8]
ldrh r1, [r3, 0x2]
ldrh r0, [r3]
subs r0, 0x1
cmp r1, r0
bge _081D050C
adds r0, r1, 0x1
_081D04FC:
movs r1, 0
strh r0, [r3, 0x2]
strh r1, [r4, 0xC]
adds r0, r4, 0
bl sub_81D0814
movs r0, 0x1
b _081D053E
_081D050C:
ldrh r2, [r2, 0x2E]
movs r0, 0x1
ands r0, r2
cmp r0, 0
beq _081D0528
adds r1, r4, 0
adds r1, 0x98
ldr r0, =sub_81D0548
str r0, [r1]
movs r0, 0x2
b _081D053E
.pool
_081D0528:
movs r0, 0x2
ands r0, r2
cmp r0, 0
bne _081D0534
movs r0, 0
b _081D053E
_081D0534:
adds r1, r4, 0
adds r1, 0x98
ldr r0, =sub_81D05D4
str r0, [r1]
movs r0, 0x5
_081D053E:
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D04C4
thumb_func_start sub_81D0548
sub_81D0548: @ 81D0548
push {r4,lr}
adds r4, r0, 0
ldr r0, =gMain
ldrh r1, [r0, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081D0562
adds r0, r4, 0
bl sub_81D05DC
cmp r0, 0
bne _081D05A4
_081D0562:
ldr r0, =gMain
ldrh r1, [r0, 0x30]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081D0578
adds r0, r4, 0
bl sub_81D061C
cmp r0, 0
bne _081D05A4
_081D0578:
ldr r0, =gMain
ldrh r1, [r0, 0x30]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _081D058E
adds r0, r4, 0
bl sub_81D0664
cmp r0, 0
bne _081D05A4
_081D058E:
ldr r0, =gMain
ldrh r1, [r0, 0x30]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _081D05AC
adds r0, r4, 0
bl sub_81D0688
cmp r0, 0
beq _081D05AC
_081D05A4:
movs r0, 0x3
b _081D05CA
.pool
_081D05AC:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _081D05C0
movs r0, 0
b _081D05CA
.pool
_081D05C0:
adds r1, r4, 0
adds r1, 0x98
ldr r0, =sub_81D04C4
str r0, [r1]
movs r0, 0x4
_081D05CA:
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D0548
thumb_func_start sub_81D05D4
sub_81D05D4: @ 81D05D4
ldr r0, =0x000186ae
bx lr
.pool
thumb_func_end sub_81D05D4
thumb_func_start sub_81D05DC
sub_81D05DC: @ 81D05DC
push {r4,lr}
adds r1, r0, 0
ldrh r0, [r1, 0xC]
adds r2, r0, 0
cmp r2, 0x18
bhi _081D05F0
cmp r2, 0x8
bls _081D0612
subs r0, 0x9
b _081D060C
_081D05F0:
ldrh r3, [r1, 0x10]
adds r2, r3, 0
cmp r2, 0
beq _081D0612
ldrh r0, [r1, 0xC]
subs r0, 0x1B
ldrh r4, [r1, 0xE]
adds r0, r4
strh r0, [r1, 0xC]
lsls r0, 16
lsrs r0, 16
cmp r0, r2
bcc _081D060E
subs r0, r3, 0x1
_081D060C:
strh r0, [r1, 0xC]
_081D060E:
movs r0, 0x1
b _081D0614
_081D0612:
movs r0, 0
_081D0614:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81D05DC
thumb_func_start sub_81D061C
sub_81D061C: @ 81D061C
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0xC]
adds r1, r0, 0
cmp r1, 0x18
bhi _081D065C
ldrh r3, [r2, 0xE]
cmp r1, r3
bcs _081D0640
adds r0, 0x9
strh r0, [r2, 0xC]
ldrh r1, [r2, 0x10]
lsls r0, 16
lsrs r0, 16
cmp r0, r1
bcc _081D0658
subs r0, r1, 0x1
b _081D0656
_081D0640:
ldrh r0, [r2, 0x12]
cmp r0, 0
beq _081D065C
ldrh r1, [r2, 0xC]
ldrh r0, [r2, 0xE]
subs r0, r1, r0
ldrh r1, [r2, 0x12]
cmp r0, r1
blt _081D0654
subs r0, r1, 0x1
_081D0654:
adds r0, 0x1B
_081D0656:
strh r0, [r2, 0xC]
_081D0658:
movs r0, 0x1
b _081D065E
_081D065C:
movs r0, 0
_081D065E:
pop {r1}
bx r1
thumb_func_end sub_81D061C
thumb_func_start sub_81D0664
sub_81D0664: @ 81D0664
push {r4,r5,lr}
adds r5, r0, 0
ldrh r4, [r5, 0xC]
adds r0, r4, 0
movs r1, 0x9
bl __umodsi3
lsls r0, 16
cmp r0, 0
bne _081D067C
movs r0, 0
b _081D0682
_081D067C:
subs r0, r4, 0x1
strh r0, [r5, 0xC]
movs r0, 0x1
_081D0682:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D0664
thumb_func_start sub_81D0688
sub_81D0688: @ 81D0688
push {r4,r5,lr}
adds r5, r0, 0
ldrh r4, [r5, 0xC]
adds r0, r4, 0
movs r1, 0x9
bl __umodsi3
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0x7
bgt _081D06BC
cmp r4, 0x1A
bhi _081D06AC
ldrh r0, [r5, 0x10]
subs r0, 0x1
cmp r4, r0
bge _081D06BC
b _081D06B4
_081D06AC:
ldrh r0, [r5, 0x12]
subs r0, 0x1
cmp r1, r0
bge _081D06BC
_081D06B4:
adds r0, r4, 0x1
strh r0, [r5, 0xC]
movs r0, 0x1
b _081D06BE
_081D06BC:
movs r0, 0
_081D06BE:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D0688
thumb_func_start sub_81D06C4
sub_81D06C4: @ 81D06C4
push {lr}
movs r0, 0xD
bl sub_81C763C
ldr r0, [r0, 0x8]
ldrh r0, [r0, 0x2]
pop {r1}
bx r1
thumb_func_end sub_81D06C4
thumb_func_start sub_81D06D4
sub_81D06D4: @ 81D06D4
push {lr}
movs r0, 0xD
bl sub_81C763C
ldr r0, [r0, 0x8]
ldrh r0, [r0]
pop {r1}
bx r1
thumb_func_end sub_81D06D4
thumb_func_start sub_81D06E4
sub_81D06E4: @ 81D06E4
push {r4-r7,lr}
adds r5, r0, 0
adds r7, r1, 0
adds r6, r2, 0
movs r0, 0xD
bl sub_81C763C
ldr r1, [r0, 0x8]
ldrh r0, [r1, 0x2]
lsls r0, 2
adds r0, 0x4
adds r1, r0
ldrb r0, [r1]
cmp r0, 0xE
bne _081D0730
ldrb r1, [r1, 0x1]
movs r0, 0x64
adds r4, r1, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x2
adds r2, r5, 0
bl GetMonData
adds r0, r4, 0
bl GetLevelFromMonExp
strb r0, [r7]
adds r0, r4, 0
bl GetMonGender
strb r0, [r6]
b _081D0752
.pool
_081D0730:
ldrb r0, [r1]
ldrb r1, [r1, 0x1]
bl GetBoxedMonPtr
adds r4, r0, 0
bl GetBoxMonGender
strb r0, [r6]
adds r0, r4, 0
bl GetLevelFromBoxMonExp
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x2
adds r2, r5, 0
bl GetBoxMonData
_081D0752:
adds r0, r5, 0
bl StringGetEnd10
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D06E4
thumb_func_start sub_81D0760
sub_81D0760: @ 81D0760
push {r4-r7,lr}
adds r5, r0, 0
adds r6, r1, 0
adds r7, r2, 0
movs r0, 0xD
bl sub_81C763C
ldr r1, [r0, 0x8]
ldrh r0, [r1, 0x2]
lsls r0, 2
adds r0, 0x4
adds r1, r0
ldrb r0, [r1]
cmp r0, 0xE
bne _081D07AC
ldrb r1, [r1, 0x1]
movs r0, 0x64
adds r4, r1, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
bl GetMonData
strh r0, [r5]
adds r0, r4, 0
movs r1, 0
bl GetMonData
str r0, [r6]
adds r0, r4, 0
movs r1, 0x1
bl GetMonData
b _081D07D0
.pool
_081D07AC:
ldrb r0, [r1]
ldrb r1, [r1, 0x1]
bl GetBoxedMonPtr
adds r4, r0, 0
movs r1, 0xB
bl GetBoxMonData
strh r0, [r5]
adds r0, r4, 0
movs r1, 0
bl GetBoxMonData
str r0, [r6]
adds r0, r4, 0
movs r1, 0x1
bl GetBoxMonData
_081D07D0:
str r0, [r7]
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D0760
thumb_func_start sub_81D07D8
sub_81D07D8: @ 81D07D8
push {lr}
movs r0, 0xD
bl sub_81C763C
ldr r1, [r0, 0x8]
ldrh r0, [r1, 0x2]
lsls r0, 2
adds r0, 0x4
adds r1, r0
ldrb r0, [r1]
cmp r0, 0xE
beq _081D07FA
ldrb r1, [r1, 0x1]
movs r2, 0x52
bl GetBoxMonDataFromAnyBox
b _081D080A
_081D07FA:
ldrb r1, [r1, 0x1]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x52
bl GetMonData
_081D080A:
pop {r1}
bx r1
.pool
thumb_func_end sub_81D07D8
thumb_func_start sub_81D0814
sub_81D0814: @ 81D0814
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r5, r0, 0
ldr r0, [r5, 0x8]
ldrh r1, [r0, 0x2]
lsls r1, 2
adds r1, 0x4
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0xE
bne _081D0848
ldrb r1, [r1, 0x1]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x53
bl GetMonData
b _081D0852
.pool
_081D0848:
ldrb r0, [r1]
ldrb r1, [r1, 0x1]
movs r2, 0x53
bl GetBoxMonDataFromAnyBox
_081D0852:
mov r12, r0
movs r0, 0
strh r0, [r5, 0x10]
strh r0, [r5, 0x12]
movs r6, 0
ldr r0, =gUnknown_086237F8
mov r9, r0
mov r10, r9
_081D0862:
lsls r2, r6, 2
mov r3, r9
adds r1, r2, r3
movs r0, 0x1
ldrb r3, [r1]
lsls r0, r3
subs r4, r0, 0x1
mov r0, r12
ands r4, r0
ldrb r0, [r1, 0x3]
adds r7, r2, 0
cmp r0, 0
bne _081D08AC
movs r3, 0
adds r6, 0x1
mov r8, r6
cmp r3, r4
bge _081D08D6
adds r6, r5, 0
adds r6, 0x14
mov r1, r10
adds r0, r7, r1
ldrb r2, [r0, 0x2]
_081D0890:
ldrh r0, [r5, 0x10]
adds r1, r0, 0x1
strh r1, [r5, 0x10]
lsls r0, 16
lsrs r0, 14
adds r0, r6, r0
adds r1, r2, r3
str r1, [r0]
adds r3, 0x1
cmp r3, r4
blt _081D0890
b _081D08D6
.pool
_081D08AC:
movs r3, 0
adds r6, 0x1
mov r8, r6
cmp r3, r4
bge _081D08D6
adds r6, r5, 0
adds r6, 0x78
mov r1, r10
adds r0, r7, r1
ldrb r2, [r0, 0x2]
_081D08C0:
ldrh r0, [r5, 0x12]
adds r1, r0, 0x1
strh r1, [r5, 0x12]
lsls r0, 16
lsrs r0, 14
adds r0, r6, r0
adds r1, r2, r3
str r1, [r0]
adds r3, 0x1
cmp r3, r4
blt _081D08C0
_081D08D6:
mov r3, r9
adds r0, r7, r3
mov r1, r12
ldrb r0, [r0]
lsrs r1, r0
mov r12, r1
mov r6, r8
cmp r6, 0x10
bls _081D0862
ldrh r0, [r5, 0x10]
cmp r0, 0
beq _081D0900
subs r0, 0x1
movs r1, 0x9
bl __divsi3
lsls r1, r0, 3
adds r1, r0
movs r0, 0
strh r1, [r5, 0xE]
b _081D0904
_081D0900:
strh r0, [r5, 0xE]
movs r0, 0x1B
_081D0904:
strh r0, [r5, 0xC]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D0814
thumb_func_start sub_81D0914
sub_81D0914: @ 81D0914
push {r4,lr}
adds r4, r0, 0
movs r0, 0xD
bl sub_81C763C
ldrh r1, [r0, 0x10]
str r1, [r4]
adds r0, 0x14
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81D0914
thumb_func_start sub_81D092C
sub_81D092C: @ 81D092C
push {r4,lr}
adds r4, r0, 0
movs r0, 0xD
bl sub_81C763C
ldrh r1, [r0, 0x12]
str r1, [r4]
adds r0, 0x78
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81D092C
thumb_func_start sub_81D0944
sub_81D0944: @ 81D0944
push {lr}
movs r0, 0xD
bl sub_81C763C
ldrh r0, [r0, 0xC]
pop {r1}
bx r1
thumb_func_end sub_81D0944
thumb_func_start sub_81D0954
sub_81D0954: @ 81D0954
push {lr}
movs r0, 0xD
bl sub_81C763C
adds r1, r0, 0
ldrh r0, [r1, 0xC]
cmp r0, 0x18
ble _081D096C
subs r0, 0x1B
lsls r0, 2
adds r1, 0x78
b _081D0970
_081D096C:
lsls r0, 2
adds r1, 0x14
_081D0970:
adds r1, r0
ldr r0, [r1]
pop {r1}
bx r1
thumb_func_end sub_81D0954
thumb_func_start sub_81D0978
sub_81D0978: @ 81D0978
push {r4,lr}
ldr r1, =0x0000101c
movs r0, 0xE
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081D09A8
ldr r0, =sub_81D0A6C
movs r1, 0x1
bl sub_81C7078
str r0, [r4, 0x4]
ldr r0, =sub_81D0A58
str r0, [r4]
movs r0, 0x1
b _081D09AA
.pool
_081D09A8:
movs r0, 0
_081D09AA:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81D0978
thumb_func_start sub_81D09B0
sub_81D09B0: @ 81D09B0
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0xE
bl sub_81C763C
adds r5, r0, 0
ldr r0, =gUnknown_08624BA0
lsls r4, 2
adds r4, r0
ldr r0, [r4]
movs r1, 0x1
bl sub_81C7078
str r0, [r5, 0x4]
ldr r0, =sub_81D0A58
str r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D09B0
thumb_func_start sub_81D09E0
sub_81D09E0: @ 81D09E0
push {lr}
movs r0, 0xE
bl sub_81C763C
ldr r0, [r0]
bl _call_via_r0
pop {r1}
bx r1
thumb_func_end sub_81D09E0
thumb_func_start sub_81D09F4
sub_81D09F4: @ 81D09F4
push {r4,lr}
movs r0, 0xE
bl sub_81C763C
adds r4, r0, 0
ldrb r0, [r4, 0xA]
bl RemoveWindow
ldrb r0, [r4, 0x8]
bl RemoveWindow
ldrb r0, [r4, 0xC]
bl RemoveWindow
ldrb r0, [r4, 0xE]
bl RemoveWindow
adds r0, r4, 0
bl sub_81D1178
movs r0, 0x9
bl FreeSpriteTilesByTag
movs r0, 0xF
bl FreeSpritePaletteByTag
movs r0, 0x10
bl FreeSpritePaletteByTag
movs r0, 0x11
bl FreeSpritePaletteByTag
movs r0, 0x12
bl FreeSpritePaletteByTag
movs r0, 0x13
bl FreeSpritePaletteByTag
ldr r0, [r4, 0x14]
bl FreeSpriteOamMatrix
ldr r0, [r4, 0x14]
bl DestroySprite
movs r0, 0xE
bl sub_81C7650
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81D09F4
thumb_func_start sub_81D0A58
sub_81D0A58: @ 81D0A58
push {lr}
movs r0, 0xE
bl sub_81C763C
ldr r0, [r0, 0x4]
bl sub_81C70D8
pop {r1}
bx r1
thumb_func_end sub_81D0A58
thumb_func_start sub_81D0A6C
sub_81D0A6C: @ 81D0A6C
push {r4,r5,lr}
sub sp, 0x8
adds r4, r0, 0
movs r0, 0xE
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x9
bls _081D0A80
b _081D0C48
_081D0A80:
lsls r0, r4, 2
ldr r1, =_081D0A90
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081D0A90:
.4byte _081D0AB8
.4byte _081D0B04
.4byte _081D0B74
.4byte _081D0B88
.4byte _081D0B9C
.4byte _081D0BB0
.4byte _081D0BC4
.4byte _081D0BD8
.4byte _081D0BE8
.4byte _081D0C3C
_081D0AB8:
ldr r0, =gUnknown_08624B98
movs r1, 0x2
bl sub_81C7B54
ldr r1, =gUnknown_08DDE030
movs r0, 0
str r0, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
adds r1, r5, 0
adds r1, 0x1C
movs r0, 0x2
bl SetBgTilemapBuffer
ldr r1, =gUnknown_08DDE12C
movs r0, 0x2
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
ldr r0, =gUnknown_08DDE010
movs r1, 0x10
movs r2, 0x20
bl sub_81C7944
b _081D0BBA
.pool
_081D0B04:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _081D0B12
b _081D0C44
_081D0B12:
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x1
bl sub_8199DF0
ldr r1, =gUnknown_086240B8
str r4, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0x1
bl decompress_and_copy_tile_data_to_vram
ldr r0, =0x0000081c
adds r1, r5, r0
movs r0, 0x1
bl SetBgTilemapBuffer
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
ldr r0, =gUnknown_08623FF8
movs r1, 0x20
movs r2, 0xA0
bl sub_81C7944
ldr r0, =gUnknown_08624098
movs r1, 0xA0
movs r2, 0x20
bl sub_81C7944
movs r0, 0x1
b _081D0BBC
.pool
_081D0B74:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081D0C44
adds r0, r5, 0
bl sub_81D0E60
movs r0, 0
b _081D0C4A
_081D0B88:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081D0C44
adds r0, r5, 0
bl sub_81D0FCC
movs r0, 0
b _081D0C4A
_081D0B9C:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
bne _081D0C44
adds r0, r5, 0
bl sub_81D10A4
movs r0, 0
b _081D0C4A
_081D0BB0:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _081D0C44
_081D0BBA:
movs r0, 0x2
_081D0BBC:
bl CopyBgTilemapBufferToVram
movs r0, 0
b _081D0C4A
_081D0BC4:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _081D0C44
adds r0, r5, 0
bl sub_81D1148
movs r0, 0x1
b _081D0C4A
_081D0BD8:
adds r0, r5, 0
bl sub_81D12D8
movs r0, 0xA
bl sub_81C7BA4
movs r0, 0
b _081D0C4A
_081D0BE8:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _081D0C44
adds r0, r5, 0
bl sub_81D13FC
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
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, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl HideBg
movs r0, 0x1
bl sub_81C7AC0
movs r0, 0
b _081D0C4A
_081D0C3C:
bl sub_81C7B34
cmp r0, 0
beq _081D0C48
_081D0C44:
movs r0, 0x2
b _081D0C4A
_081D0C48:
movs r0, 0x4
_081D0C4A:
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D0A6C
thumb_func_start sub_81D0C54
sub_81D0C54: @ 81D0C54
push {lr}
cmp r0, 0
beq _081D0C60
cmp r0, 0x1
beq _081D0C70
b _081D0C7C
_081D0C60:
movs r0, 0x5
bl PlaySE
movs r0, 0
bl sub_81C7AC0
movs r0, 0
b _081D0C7E
_081D0C70:
bl sub_81C7B34
cmp r0, 0
beq _081D0C7C
movs r0, 0x2
b _081D0C7E
_081D0C7C:
movs r0, 0x4
_081D0C7E:
pop {r1}
bx r1
thumb_func_end sub_81D0C54
thumb_func_start sub_81D0C84
sub_81D0C84: @ 81D0C84
push {r4,r5,lr}
adds r5, r0, 0
movs r0, 0xE
bl sub_81C763C
adds r4, r0, 0
cmp r5, 0x6
bhi _081D0D24
lsls r0, r5, 2
ldr r1, =_081D0CA4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081D0CA4:
.4byte _081D0CC0
.4byte _081D0CD0
.4byte _081D0CE4
.4byte _081D0CEE
.4byte _081D0CF8
.4byte _081D0D02
.4byte _081D0D16
_081D0CC0:
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
bl sub_81D11D8
movs r0, 0
b _081D0D26
_081D0CD0:
adds r0, r4, 0
bl sub_81D1234
cmp r0, 0
bne _081D0D20
adds r0, r4, 0
bl sub_81D0FF0
movs r0, 0x1
b _081D0D26
_081D0CE4:
adds r0, r4, 0
bl sub_81D12D8
movs r0, 0x1
b _081D0D26
_081D0CEE:
adds r0, r4, 0
bl sub_81D10D0
movs r0, 0x1
b _081D0D26
_081D0CF8:
adds r0, r4, 0
bl sub_81D0E84
movs r0, 0x1
b _081D0D26
_081D0D02:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _081D0D20
adds r0, r4, 0
bl sub_81D11FC
movs r0, 0
b _081D0D26
_081D0D16:
adds r0, r4, 0
bl sub_81D1234
cmp r0, 0
beq _081D0D24
_081D0D20:
movs r0, 0x2
b _081D0D26
_081D0D24:
movs r0, 0x4
_081D0D26:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D0C84
thumb_func_start sub_81D0D2C
sub_81D0D2C: @ 81D0D2C
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0xE
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081D0D5C
cmp r4, 0x1
bgt _081D0D46
cmp r4, 0
beq _081D0D4C
b _081D0D84
_081D0D46:
cmp r4, 0x2
beq _081D0D76
b _081D0D84
_081D0D4C:
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
bl sub_81D1448
movs r0, 0
b _081D0D86
_081D0D5C:
adds r0, r5, 0
bl sub_81D1524
cmp r0, 0
bne _081D0D80
adds r0, r5, 0
bl sub_81D0EFC
movs r0, 0xB
bl sub_81C7BA4
movs r0, 0
b _081D0D86
_081D0D76:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081D0D84
_081D0D80:
movs r0, 0x2
b _081D0D86
_081D0D84:
movs r0, 0x4
_081D0D86:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D0D2C
thumb_func_start sub_81D0D8C
sub_81D0D8C: @ 81D0D8C
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0xE
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081D0DC0
cmp r4, 0x1
bgt _081D0DA6
cmp r4, 0
beq _081D0DB0
b _081D0DF6
_081D0DA6:
cmp r4, 0x2
beq _081D0DD4
cmp r4, 0x3
beq _081D0DE8
b _081D0DF6
_081D0DB0:
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
bl sub_81D1500
movs r0, 0
b _081D0DF8
_081D0DC0:
adds r0, r5, 0
bl sub_81D1524
cmp r0, 0
bne _081D0DF2
adds r0, r5, 0
bl sub_81D1448
movs r0, 0
b _081D0DF8
_081D0DD4:
adds r0, r5, 0
bl sub_81D1524
cmp r0, 0
bne _081D0DF2
adds r0, r5, 0
bl sub_81D0EFC
movs r0, 0
b _081D0DF8
_081D0DE8:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081D0DF6
_081D0DF2:
movs r0, 0x2
b _081D0DF8
_081D0DF6:
movs r0, 0x4
_081D0DF8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D0D8C
thumb_func_start sub_81D0E00
sub_81D0E00: @ 81D0E00
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0xE
bl sub_81C763C
adds r5, r0, 0
cmp r4, 0x1
beq _081D0E30
cmp r4, 0x1
bgt _081D0E1A
cmp r4, 0
beq _081D0E20
b _081D0E58
_081D0E1A:
cmp r4, 0x2
beq _081D0E4A
b _081D0E58
_081D0E20:
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
bl sub_81D1500
movs r0, 0
b _081D0E5A
_081D0E30:
adds r0, r5, 0
bl sub_81D1524
cmp r0, 0
bne _081D0E54
adds r0, r5, 0
bl sub_81D0E84
movs r0, 0xA
bl sub_81C7BA4
movs r0, 0
b _081D0E5A
_081D0E4A:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _081D0E58
_081D0E54:
movs r0, 0x2
b _081D0E5A
_081D0E58:
movs r0, 0x4
_081D0E5A:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D0E00
thumb_func_start sub_81D0E60
sub_81D0E60: @ 81D0E60
push {r4,lr}
adds r4, r0, 0
ldr r0, =gUnknown_08624BB8
bl AddWindow
strh r0, [r4, 0xA]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
adds r0, r4, 0
bl sub_81D0E84
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D0E60
thumb_func_start sub_81D0E84
sub_81D0E84: @ 81D0E84
push {r4,r5,lr}
sub sp, 0x10
adds r5, r0, 0
ldr r1, =gUnknown_08624BC0
add r0, sp, 0xC
movs r2, 0x3
bl memcpy
ldr r4, =gStringVar1
bl sub_81D07D8
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0
movs r3, 0x2
bl ConvertIntToDecimalStringN
bl DynamicPlaceholderTextUtil_Reset
movs r0, 0
adds r1, r4, 0
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r4, =gStringVar4
ldr r1, =gText_RibbonsF700
adds r0, r4, 0
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
ldrb r0, [r5, 0xA]
movs r1, 0x44
bl FillWindowPixelBuffer
ldrb r0, [r5, 0xA]
add r1, sp, 0xC
str r1, [sp]
movs r1, 0x1
negs r1, r1
str r1, [sp, 0x4]
str r4, [sp, 0x8]
movs r1, 0x1
movs r2, 0
movs r3, 0x1
bl AddTextPrinterParameterized3
ldrb r0, [r5, 0xA]
movs r1, 0x2
bl CopyWindowToVram
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D0E84
thumb_func_start sub_81D0EFC
sub_81D0EFC: @ 81D0EFC
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
adds r7, r0, 0
bl sub_81D0954
adds r5, r0, 0
ldr r1, =gUnknown_08624BC0
add r0, sp, 0xC
movs r2, 0x3
bl memcpy
ldrb r0, [r7, 0xA]
movs r1, 0x44
bl FillWindowPixelBuffer
cmp r5, 0x18
bhi _081D0F60
lsls r1, r5, 3
ldr r0, =gRibbonDescriptionPointers
adds r6, r1, r0
movs r5, 0x80
lsls r5, 17
movs r4, 0x1
_081D0F2E:
ldrb r0, [r7, 0xA]
lsrs r3, r5, 24
add r1, sp, 0xC
str r1, [sp]
movs r1, 0x1
negs r1, r1
str r1, [sp, 0x4]
ldm r6!, {r1}
str r1, [sp, 0x8]
movs r1, 0x1
movs r2, 0
bl AddTextPrinterParameterized3
movs r0, 0x80
lsls r0, 21
adds r5, r0
subs r4, 0x1
cmp r4, 0
bge _081D0F2E
b _081D0FAA
.pool
_081D0F60:
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, r5
ldr r1, =0x0000318f
adds r0, r1
ldrb r5, [r0]
cmp r5, 0
beq _081D0FB2
subs r5, 0x1
movs r4, 0
ldr r0, =gGiftRibbonDescriptionPointers
mov r8, r0
movs r6, 0x80
lsls r6, 17
_081D0F7C:
ldrb r0, [r7, 0xA]
lsrs r3, r6, 24
add r1, sp, 0xC
str r1, [sp]
movs r1, 0x1
negs r1, r1
str r1, [sp, 0x4]
lsls r1, r4, 2
lsls r2, r5, 3
adds r1, r2
add r1, r8
ldr r1, [r1]
str r1, [sp, 0x8]
movs r1, 0x1
movs r2, 0
bl AddTextPrinterParameterized3
movs r0, 0x80
lsls r0, 21
adds r6, r0
adds r4, 0x1
cmp r4, 0x1
ble _081D0F7C
_081D0FAA:
ldrb r0, [r7, 0xA]
movs r1, 0x2
bl CopyWindowToVram
_081D0FB2:
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D0EFC
thumb_func_start sub_81D0FCC
sub_81D0FCC: @ 81D0FCC
push {r4,lr}
adds r4, r0, 0
ldr r0, =gUnknown_08624BC4
bl AddWindow
strh r0, [r4, 0x8]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
adds r0, r4, 0
bl sub_81D0FF0
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D0FCC
thumb_func_start sub_81D0FF0
sub_81D0FF0: @ 81D0FF0
push {r4-r7,lr}
sub sp, 0x10
ldrh r7, [r0, 0x8]
ldrb r5, [r0, 0x8]
adds r0, r5, 0
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r4, =gStringVar3
mov r6, sp
adds r6, 0xD
adds r0, r4, 0
add r1, sp, 0xC
adds r2, r6, 0
bl sub_81D06E4
movs r0, 0x1
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
adds r0, r5, 0
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
bl AddTextPrinterParameterized
ldrb r0, [r6]
cmp r0, 0
beq _081D1040
cmp r0, 0xFE
beq _081D1048
ldr r1, =gUnknown_08624BE4
b _081D104A
.pool
_081D1040:
ldr r1, =gUnknown_08624BCC
b _081D104A
.pool
_081D1048:
ldr r1, =gUnknown_08624BD8
_081D104A:
ldr r5, =gStringVar1
adds r0, r5, 0
bl StringCopy
movs r1, 0xBA
strb r1, [r0]
adds r0, 0x1
movs r1, 0xF9
strb r1, [r0]
adds r0, 0x1
movs r1, 0x5
strb r1, [r0]
adds r0, 0x1
add r1, sp, 0xC
ldrb r1, [r1]
movs r2, 0
movs r3, 0x3
bl ConvertIntToDecimalStringN
lsls r4, r7, 24
lsrs r4, 24
movs r0, 0x1
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
adds r0, r4, 0
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x3C
bl AddTextPrinterParameterized
adds r0, r4, 0
movs r1, 0x2
bl CopyWindowToVram
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D0FF0
thumb_func_start sub_81D10A4
sub_81D10A4: @ 81D10A4
push {r4,lr}
adds r4, r0, 0
ldr r0, =gUnknown_08624BE8
bl AddWindow
strh r0, [r4, 0xC]
lsls r0, 24
lsrs r0, 24
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r4, 0xC]
bl PutWindowTilemap
adds r0, r4, 0
bl sub_81D10D0
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D10A4
thumb_func_start sub_81D10D0
sub_81D10D0: @ 81D10D0
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0xC
mov r8, r0
bl sub_81D06C4
adds r4, r0, 0
adds r4, 0x1
bl sub_81D06D4
adds r6, r0, 0
ldr r5, =gStringVar1
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
movs r1, 0xBA
strb r1, [r0]
adds r0, 0x1
adds r1, r6, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
movs r0, 0x1
adds r1, r5, 0
movs r2, 0x38
bl GetStringCenterAlignXOffset
adds r3, r0, 0
mov r1, r8
ldrb r0, [r1, 0xC]
lsls r3, 24
lsrs r3, 24
movs r1, 0x1
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
bl AddTextPrinterParameterized
mov r1, r8
ldrb r0, [r1, 0xC]
movs r1, 0x2
bl CopyWindowToVram
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D10D0
thumb_func_start sub_81D1148
sub_81D1148: @ 81D1148
push {r4,lr}
sub sp, 0xC
adds r4, r0, 0
add r1, sp, 0x4
add r2, sp, 0x8
mov r0, sp
bl sub_81D0760
bl ResetAllPicSprites
movs r0, 0x28
movs r1, 0x68
bl sub_81D1184
strh r0, [r4, 0x10]
movs r0, 0xF
movs r1, 0
bl sub_81C7990
add sp, 0xC
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81D1148
thumb_func_start sub_81D1178
sub_81D1178: @ 81D1178
push {lr}
ldrh r0, [r0, 0x10]
bl FreeAndDestroyMonPicSprite
pop {r0}
bx r0
thumb_func_end sub_81D1178
thumb_func_start sub_81D1184
sub_81D1184: @ 81D1184
push {lr}
sub sp, 0x1C
add r1, sp, 0x14
add r2, sp, 0x18
add r0, sp, 0x10
bl sub_81D0760
add r0, sp, 0x10
ldrh r0, [r0]
ldr r1, [sp, 0x18]
ldr r2, [sp, 0x14]
movs r3, 0x28
str r3, [sp]
movs r3, 0x68
str r3, [sp, 0x4]
movs r3, 0xF
str r3, [sp, 0x8]
ldr r3, =0x0000ffff
str r3, [sp, 0xC]
movs r3, 0x1
bl CreateMonPicSprite_HandleDeoxys
lsls r0, 16
lsrs r0, 16
ldr r1, =gSprites
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r1
ldrb r3, [r2, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r3
strb r1, [r2, 0x5]
add sp, 0x1C
pop {r1}
bx r1
.pool
thumb_func_end sub_81D1184
thumb_func_start sub_81D11D8
sub_81D11D8: @ 81D11D8
push {lr}
ldrh r1, [r0, 0x10]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
movs r2, 0x20
negs r2, r2
movs r1, 0x28
movs r3, 0x6
bl sub_81D1258
pop {r0}
bx r0
.pool
thumb_func_end sub_81D11D8
thumb_func_start sub_81D11FC
sub_81D11FC: @ 81D11FC
push {r4,r5,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x10]
bl FreeAndDestroyMonPicSprite
movs r5, 0x20
negs r5, r5
adds r0, r5, 0
movs r1, 0x68
bl sub_81D1184
strh r0, [r4, 0x10]
ldrh r1, [r4, 0x10]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
adds r1, r5, 0
movs r2, 0x28
movs r3, 0x6
bl sub_81D1258
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D11FC
thumb_func_start sub_81D1234
sub_81D1234: @ 81D1234
ldr r2, =gSprites
ldrh r1, [r0, 0x10]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, =SpriteCallbackDummy
eors r1, r0
negs r0, r1
orrs r0, r1
lsrs r0, 31
bx lr
.pool
thumb_func_end sub_81D1234
thumb_func_start sub_81D1258
sub_81D1258: @ 81D1258
push {r4-r6,lr}
adds r4, r0, 0
adds r6, r2, 0
adds r5, r3, 0
subs r0, r6, r1
strh r1, [r4, 0x20]
lsls r1, 4
strh r1, [r4, 0x2E]
lsls r0, 4
adds r1, r5, 0
bl __udivsi3
strh r0, [r4, 0x30]
strh r5, [r4, 0x32]
strh r6, [r4, 0x34]
ldr r0, =sub_81D1284
str r0, [r4, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D1258
thumb_func_start sub_81D1284
sub_81D1284: @ 81D1284
push {lr}
adds r2, r0, 0
ldrh r1, [r2, 0x32]
movs r3, 0x32
ldrsh r0, [r2, r3]
cmp r0, 0
beq _081D12C8
subs r0, r1, 0x1
strh r0, [r2, 0x32]
ldrh r0, [r2, 0x30]
ldrh r1, [r2, 0x2E]
adds r0, r1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 20
strh r0, [r2, 0x20]
movs r1, 0x20
negs r1, r1
cmp r0, r1
bgt _081D12BA
adds r0, r2, 0
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
b _081D12D0
_081D12BA:
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
b _081D12D0
_081D12C8:
ldrh r0, [r2, 0x34]
strh r0, [r2, 0x20]
ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_081D12D0:
pop {r0}
bx r0
.pool
thumb_func_end sub_81D1284
thumb_func_start sub_81D12D8
sub_81D12D8: @ 81D12D8
push {r4-r6,lr}
bl sub_81D1350
ldr r5, =gUnknown_030012C0
adds r0, r5, 0
bl sub_81D0914
adds r6, r0, 0
ldr r2, =gUnknown_030012C4
movs r1, 0
str r1, [r2]
ldr r0, [r5]
cmp r1, r0
bcs _081D130A
adds r4, r2, 0
_081D12F6:
ldr r0, [r4]
ldm r6!, {r1}
bl sub_81D1370
ldr r1, [r4]
adds r1, 0x1
str r1, [r4]
ldr r0, [r5]
cmp r1, r0
bcc _081D12F6
_081D130A:
ldr r4, =gUnknown_030012C0
adds r0, r4, 0
bl sub_81D092C
adds r6, r0, 0
ldr r2, =gUnknown_030012C4
movs r1, 0
str r1, [r2]
ldr r0, [r4]
cmp r1, r0
bcs _081D133A
adds r4, r2, 0
_081D1322:
ldr r0, [r4]
adds r0, 0x1B
ldm r6!, {r1}
bl sub_81D1370
ldr r1, [r4]
adds r1, 0x1
str r1, [r4]
ldr r0, =gUnknown_030012C0
ldr r0, [r0]
cmp r1, r0
bcc _081D1322
_081D133A:
movs r0, 0x1
bl CopyBgTilemapBufferToVram
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D12D8
thumb_func_start sub_81D1350
sub_81D1350: @ 81D1350
push {lr}
sub sp, 0x8
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_81D1350
thumb_func_start sub_81D1370
sub_81D1370: @ 81D1370
push {r4-r6,lr}
sub sp, 0x10
adds r4, r0, 0
adds r6, r1, 0
movs r1, 0x9
bl __umodsi3
adds r5, r0, 0
lsls r5, 1
adds r5, 0xB
adds r0, r4, 0
movs r1, 0x9
bl __udivsi3
adds r4, r0, 0
lsls r4, 1
adds r4, 0x4
add r0, sp, 0x8
adds r1, r6, 0
bl sub_81D13BC
lsls r5, 24
lsrs r5, 24
lsls r4, 24
lsrs r4, 24
movs r0, 0x2
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x1
add r1, sp, 0x8
adds r2, r5, 0
adds r3, r4, 0
bl CopyToBgTilemapBufferRect
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81D1370
thumb_func_start sub_81D13BC
sub_81D13BC: @ 81D13BC
push {r4,r5,lr}
ldr r2, =gUnknown_08624BF8
lsls r1, 2
adds r1, r2
ldrh r3, [r1, 0x2]
adds r3, 0x2
lsls r3, 16
ldrh r1, [r1]
lsls r1, 1
adds r1, 0x1
lsls r1, 16
lsrs r1, 16
lsrs r3, 4
adds r2, r1, 0
orrs r2, r3
strh r2, [r0]
movs r5, 0x80
lsls r5, 3
adds r4, r5, 0
orrs r2, r4
strh r2, [r0, 0x2]
adds r1, 0x1
orrs r1, r3
strh r1, [r0, 0x4]
orrs r1, r4
strh r1, [r0, 0x6]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D13BC
thumb_func_start sub_81D13FC
sub_81D13FC: @ 81D13FC
push {r4,lr}
adds r4, r0, 0
ldr r0, =gUnknown_08624C78
bl LoadCompressedObjectPic
ldr r0, =gUnknown_08624C80
bl sub_81C795C
ldr r0, =gUnknown_08624D04
movs r1, 0
movs r2, 0
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, =gSprites
adds r1, r0
str r1, [r4, 0x14]
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D13FC
thumb_func_start sub_81D1448
sub_81D1448: @ 81D1448
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r6, r0, 0
bl sub_81D0944
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r4, 0
movs r1, 0x9
bl __modsi3
adds r5, r0, 0
lsls r5, 4
adds r5, 0x60
adds r0, r4, 0
movs r1, 0x9
bl __divsi3
lsls r0, 4
adds r0, 0x28
ldr r1, [r6, 0x14]
movs r2, 0
mov r8, r2
strh r5, [r1, 0x20]
ldr r1, [r6, 0x14]
strh r0, [r1, 0x22]
bl sub_81D0954
adds r4, r0, 0
movs r0, 0x9
bl GetSpriteTileStartByTag
ldr r3, [r6, 0x14]
ldr r1, =gUnknown_08624BF8
lsls r4, 2
adds r4, r1
ldrh r1, [r4]
lsls r1, 4
adds r0, r1
ldr r2, =0x000003ff
adds r1, r2, 0
ands r0, r1
ldrh r2, [r3, 0x4]
ldr r1, =0xfffffc00
ands r1, r2
orrs r1, r0
strh r1, [r3, 0x4]
ldrh r0, [r4, 0x2]
adds r0, 0xF
lsls r0, 16
lsrs r0, 16
bl IndexOfSpritePaletteTag
ldr r3, [r6, 0x14]
lsls r0, 4
ldrb r2, [r3, 0x5]
movs r1, 0xF
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x5]
ldr r0, [r6, 0x14]
movs r1, 0x1
bl StartSpriteAffineAnim
ldr r1, [r6, 0x14]
adds r1, 0x3E
ldrb r2, [r1]
movs r0, 0x5
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r0, [r6, 0x14]
mov r1, r8
strh r1, [r0, 0x2E]
ldr r1, [r6, 0x14]
ldr r0, =sub_81D1538
str r0, [r1, 0x1C]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D1448
thumb_func_start sub_81D1500
sub_81D1500: @ 81D1500
push {r4,lr}
adds r4, r0, 0
ldr r1, [r4, 0x14]
movs r0, 0x1
strh r0, [r1, 0x2E]
ldr r0, [r4, 0x14]
movs r1, 0x2
bl StartSpriteAffineAnim
ldr r1, [r4, 0x14]
ldr r0, =sub_81D1538
str r0, [r1, 0x1C]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D1500
thumb_func_start sub_81D1524
sub_81D1524: @ 81D1524
ldr r0, [r0, 0x14]
ldr r1, [r0, 0x1C]
ldr r0, =SpriteCallbackDummy
eors r1, r0
negs r0, r1
orrs r0, r1
lsrs r0, 31
bx lr
.pool
thumb_func_end sub_81D1524
thumb_func_start sub_81D1538
sub_81D1538: @ 81D1538
push {lr}
adds r3, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _081D156A
movs r0, 0x3E
adds r0, r3
mov r12, r0
movs r0, 0x1
ldrh r1, [r3, 0x2E]
ands r1, r0
lsls r1, 2
mov r0, r12
ldrb r2, [r0]
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
mov r1, r12
strb r0, [r1]
ldr r0, =SpriteCallbackDummy
str r0, [r3, 0x1C]
_081D156A:
pop {r0}
bx r0
.pool
thumb_func_end sub_81D1538
.section .text.after.match.call
thumb_func_start sub_81D1C44
sub_81D1C44: @ 81D1C44
push {r4,lr}
lsls r0, 24
ldr r4, =gUnknown_0203CF4C
lsrs r0, 21
adds r0, 0x8
bl Alloc
str r0, [r4]
cmp r0, 0
bne _081D1C60
movs r0, 0
b _081D1C7A
.pool
_081D1C60:
movs r2, 0
ldr r4, =gUnknown_0203CF48
movs r3, 0xFF
_081D1C66:
adds r0, r2, r4
ldrb r1, [r0]
orrs r1, r3
strb r1, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x2
bls _081D1C66
movs r0, 0x1
_081D1C7A:
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D1C44
thumb_func_start sub_81D1C84
sub_81D1C84: @ 81D1C84
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r6, =gUnknown_0203CF48
adds r5, r4, r6
ldrb r0, [r5]
cmp r0, 0xFF
bne _081D1CEC
cmp r4, 0x2
bne _081D1CD4
ldr r0, =gUnknown_086253E8
ldr r1, [r0, 0x14]
ldr r0, [r0, 0x10]
str r0, [sp]
str r1, [sp, 0x4]
ldr r0, =gMailboxMailOptions
movs r1, 0x4
bl GetMaxWidthInMenuTable
lsls r0, 24
ldr r2, =0x00ffffff
ldr r1, [sp]
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
bl AddWindow
strb r0, [r6, 0x2]
b _081D1CE0
.pool
_081D1CD4:
lsls r0, r4, 3
ldr r1, =gUnknown_086253E8
adds r0, r1
bl AddWindow
strb r0, [r5]
_081D1CE0:
ldr r0, =gUnknown_0203CF48
adds r0, r4, r0
ldrb r0, [r0]
movs r1, 0
bl SetStandardWindowBorderStyle
_081D1CEC:
ldr r0, =gUnknown_0203CF48
adds r0, r4, r0
ldrb r0, [r0]
add sp, 0x8
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D1C84
thumb_func_start sub_81D1D04
sub_81D1D04: @ 81D1D04
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gUnknown_0203CF48
adds r4, r0
ldrb r0, [r4]
movs r1, 0
bl sub_8198070
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
bl RemoveWindow
movs r0, 0xFF
strb r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D1D04
thumb_func_start sub_81D1D34
sub_81D1D34: @ 81D1D34
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_0203CF48
adds r0, r1
ldrb r0, [r0]
bx lr
.pool
thumb_func_end sub_81D1D34
thumb_func_start sub_81D1D44
sub_81D1D44: @ 81D1D44
push {r4,r5,lr}
sub sp, 0x34
adds r3, r1, 0
lsls r0, 24
lsrs r4, r0, 24
lsls r2, 24
lsrs r5, r2, 24
movs r0, 0x2
negs r0, r0
cmp r3, r0
beq _081D1DAC
ldr r0, =gSaveBlock1Ptr
lsls r1, r3, 3
adds r1, r3
lsls r1, 2
ldr r0, [r0]
adds r1, r0
ldr r0, =0x00002cca
adds r1, r0
add r0, sp, 0x14
bl StringCopy
add r0, sp, 0x14
bl sub_81DB52C
add r0, sp, 0x14
bl StringLength
lsls r0, 16
lsrs r0, 16
cmp r0, 0x5
bhi _081D1D8C
add r0, sp, 0x14
movs r1, 0x1
bl ConvertInternationalString
_081D1D8C:
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
ldr r0, =gUnknown_08625400
str r0, [sp, 0x8]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0xC]
add r0, sp, 0x14
str r0, [sp, 0x10]
adds r0, r4, 0
movs r1, 0x1
movs r2, 0x8
adds r3, r5, 0
bl AddTextPrinterParameterized4
_081D1DAC:
add sp, 0x34
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D1D44
thumb_func_start sub_81D1DC0
sub_81D1DC0: @ 81D1DC0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r5, r0, 0
movs r3, 0
ldr r7, =gUnknown_0203CF4C
ldr r0, =gText_Cancel2
mov r12, r0
ldr r4, =gMultiuseListMenuTemplate
ldr r1, =gUnknown_0203CF48
mov r8, r1
ldr r2, =sub_81D1E7C
mov r9, r2
ldr r0, =sub_81D1D44
mov r10, r0
ldrb r1, [r5, 0x5]
cmp r3, r1
bcs _081D1E02
adds r6, r7, 0
ldr r2, =gUnknown_08625403
_081D1DEC:
ldr r1, [r6]
lsls r0, r3, 3
adds r0, r1
str r2, [r0]
str r3, [r0, 0x4]
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
ldrb r0, [r5, 0x5]
cmp r3, r0
bcc _081D1DEC
_081D1E02:
ldr r2, [r7]
lsls r0, r3, 3
adds r0, r2
mov r1, r12
str r1, [r0]
movs r1, 0x2
negs r1, r1
str r1, [r0, 0x4]
str r2, [r4]
ldrb r0, [r5, 0x5]
adds r0, 0x1
movs r1, 0
strh r0, [r4, 0xC]
mov r2, r8
ldrb r0, [r2, 0x1]
strb r0, [r4, 0x10]
strb r1, [r4, 0x11]
movs r0, 0x8
strb r0, [r4, 0x12]
strb r1, [r4, 0x13]
strh r0, [r4, 0xE]
movs r0, 0x29
strb r0, [r4, 0x14]
movs r0, 0x31
strb r0, [r4, 0x15]
mov r0, r9
str r0, [r4, 0x4]
mov r1, r10
str r1, [r4, 0x8]
movs r0, 0x1
strb r0, [r4, 0x17]
movs r0, 0
strb r0, [r4, 0x16]
ldrh r1, [r5, 0x2]
ldrh r2, [r5]
adds r0, r4, 0
bl ListMenuInit
lsls r0, 24
lsrs r0, 24
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D1DC0
thumb_func_start sub_81D1E7C
sub_81D1E7C: @ 81D1E7C
push {lr}
lsls r1, 24
lsrs r1, 24
cmp r1, 0x1
beq _081D1E8C
movs r0, 0x5
bl PlaySE
_081D1E8C:
pop {r0}
bx r0
thumb_func_end sub_81D1E7C
thumb_func_start sub_81D1E90
sub_81D1E90: @ 81D1E90
push {r4,lr}
sub sp, 0x10
adds r4, r0, 0
ldrb r0, [r4, 0x5]
ldrb r1, [r4, 0x4]
subs r0, r1
adds r0, 0x1
str r0, [sp]
movs r0, 0x6E
str r0, [sp, 0x4]
str r0, [sp, 0x8]
adds r0, r4, 0x2
str r0, [sp, 0xC]
movs r0, 0x2
movs r1, 0xC8
movs r2, 0xC
movs r3, 0x94
bl AddScrollIndicatorArrowPairParameterized
strb r0, [r4, 0x9]
add sp, 0x10
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81D1E90
thumb_func_start sub_81D1EC0
sub_81D1EC0: @ 81D1EC0
push {lr}
ldr r0, =gUnknown_0203CF4C
ldr r0, [r0]
bl Free
pop {r0}
bx r0
.pool
thumb_func_end sub_81D1EC0
thumb_func_start sub_81D1ED4
sub_81D1ED4: @ 81D1ED4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
adds r3, r0, 0
movs r6, 0
movs r7, 0
_081D1EE6:
movs r2, 0
lsls r5, r6, 2
adds r0, r6, 0x1
mov r10, r0
adds r4, r5, 0
_081D1EF0:
lsls r0, r2, 2
adds r0, r2
lsls r0, 2
adds r0, r4, r0
adds r0, r3, r0
adds r1, r0, 0
adds r1, 0x64
strh r7, [r1]
adds r0, 0x66
strh r7, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x9
bls _081D1EF0
movs r2, 0
mov r9, r2
str r5, [sp]
movs r1, 0x9B
mov r8, r1
movs r4, 0x5B
mov r12, r4
_081D1F1C:
lsls r0, r2, 2
adds r0, r2
adds r1, r6, r0
adds r1, r3, r1
mov r4, r9
strb r4, [r1]
lsls r0, 2
ldr r1, [sp]
adds r0, r1, r0
adds r0, r3, r0
mov r4, r8
strh r4, [r0, 0x14]
mov r1, r12
strh r1, [r0, 0x16]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3
bls _081D1F1C
adds r1, r3, r5
movs r2, 0x96
lsls r2, 1
adds r0, r1, r2
strh r7, [r0]
movs r4, 0x97
lsls r4, 1
adds r0, r1, r4
strh r7, [r0]
mov r1, r10
lsls r0, r1, 24
lsrs r6, r0, 24
cmp r6, 0x4
bls _081D1EE6
movs r2, 0xD5
lsls r2, 2
adds r0, r3, r2
movs r1, 0
strb r1, [r0]
ldr r4, =0x00000352
adds r0, r3, r4
strh r1, [r0]
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D1ED4
thumb_func_start sub_81D1F84
sub_81D1F84: @ 81D1F84
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
mov r8, r0
str r1, [sp]
mov r9, r2
movs r7, 0
_081D1F98:
lsls r4, r7, 2
ldr r1, [sp]
adds r0, r4, r1
ldrh r1, [r0]
lsls r5, r1, 8
mov r2, r9
adds r0, r4, r2
ldrh r0, [r0]
subs r0, r1
lsls r0, 8
movs r1, 0xA
bl __divsi3
adds r6, r0, 0
movs r3, 0
adds r7, 0x1
mov r10, r7
mov r12, r4
_081D1FBC:
lsls r0, r3, 2
adds r0, r3
lsls r0, 2
add r0, r12
add r0, r8
asrs r2, r5, 8
asrs r1, r5, 7
movs r7, 0x1
ands r1, r7
adds r2, r1
adds r0, 0x64
strh r2, [r0]
adds r5, r6
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0x8
bls _081D1FBC
lsls r0, r3, 2
adds r0, r3
lsls r0, 2
adds r0, r4, r0
add r0, r8
mov r1, r9
adds r2, r4, r1
ldrh r1, [r2]
adds r0, 0x64
strh r1, [r0]
ldr r7, [sp]
adds r0, r4, r7
ldrh r1, [r0, 0x2]
lsls r5, r1, 8
ldrh r0, [r2, 0x2]
subs r0, r1
lsls r0, 8
movs r1, 0xA
bl __divsi3
adds r6, r0, 0
movs r3, 0
str r4, [sp, 0x4]
movs r0, 0x1
mov r12, r0
_081D2012:
lsls r0, r3, 2
adds r0, r3
lsls r0, 2
ldr r1, [sp, 0x4]
adds r0, r1, r0
add r0, r8
asrs r2, r5, 8
asrs r1, r5, 7
mov r7, r12
ands r1, r7
adds r2, r1
adds r0, 0x66
strh r2, [r0]
adds r5, r6
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0x8
bls _081D2012
lsls r0, r3, 2
adds r0, r3
lsls r0, 2
adds r0, r4, r0
add r0, r8
mov r2, r9
adds r1, r4, r2
ldrh r1, [r1, 0x2]
adds r0, 0x66
strh r1, [r0]
mov r7, r10
lsls r0, r7, 16
lsrs r7, r0, 16
cmp r7, 0x4
bls _081D1F98
ldr r1, =0x00000352
add r1, r8
movs r0, 0
strh r0, [r1]
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D1F84
thumb_func_start sub_81D2074
sub_81D2074: @ 81D2074
push {r4,lr}
adds r1, r0, 0
ldr r0, =0x00000352
adds r4, r1, r0
ldrh r0, [r4]
cmp r0, 0x9
bls _081D208C
movs r0, 0
b _081D20A6
.pool
_081D208C:
adds r0, r1, 0
bl sub_81D2230
ldrh r1, [r4]
adds r1, 0x1
strh r1, [r4]
lsls r1, 16
lsrs r1, 16
movs r0, 0xA
eors r1, r0
negs r0, r1
orrs r0, r1
lsrs r0, 31
_081D20A6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81D2074
thumb_func_start sub_81D20AC
sub_81D20AC: @ 81D20AC
ldr r1, =0x00000355
adds r0, r1
movs r1, 0
strb r1, [r0]
bx lr
.pool
thumb_func_end sub_81D20AC
thumb_func_start sub_81D20BC
sub_81D20BC: @ 81D20BC
push {r4,r5,lr}
sub sp, 0xC
ldr r1, =0x00000355
adds r4, r0, r1
ldrb r0, [r4]
cmp r0, 0
beq _081D20D4
cmp r0, 0x1
beq _081D20E2
b _081D20FA
.pool
_081D20D4:
bl ScanlineEffect_Clear
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
movs r0, 0x1
b _081D20FC
_081D20E2:
mov r0, sp
ldr r1, =gUnknown_08625404
ldm r1!, {r2,r3,r5}
stm r0!, {r2,r3,r5}
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
bl ScanlineEffect_SetParams
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
_081D20FA:
movs r0, 0
_081D20FC:
add sp, 0xC
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D20BC
thumb_func_start sub_81D2108
sub_81D2108: @ 81D2108
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
adds r6, r0, 0
movs r1, 0xD5
lsls r1, 2
adds r0, r6, r1
ldrb r0, [r0]
cmp r0, 0
beq _081D21BE
adds r0, r6, 0
bl sub_81D24A4
adds r0, r6, 0
bl sub_81D2634
movs r7, 0
ldr r5, =gScanlineEffectRegBuffers
mov r12, r5
movs r0, 0xF0
lsls r0, 3
add r0, r12
mov r9, r0
movs r1, 0xA0
lsls r1, 1
adds r1, r6, r1
str r1, [sp]
ldr r5, =0x0000ffff
mov r8, r5
movs r0, 0xA1
lsls r0, 1
adds r0, r6, r0
str r0, [sp, 0x4]
movs r1, 0x92
lsls r1, 2
adds r1, r6, r1
str r1, [sp, 0x8]
ldr r5, =0x0000024a
adds r5, r6
mov r10, r5
_081D215E:
adds r2, r7, 0
adds r2, 0x37
lsls r3, r2, 2
mov r0, r9
adds r0, r3, r0
str r0, [sp, 0xC]
add r3, r12
lsls r4, r7, 2
ldr r1, [sp]
adds r0, r1, r4
ldrh r0, [r0]
lsls r0, 8
ldr r5, [sp, 0x4]
adds r1, r5, r4
ldrh r1, [r1]
orrs r0, r1
strh r0, [r3]
mov r1, r8
ands r0, r1
ldr r5, [sp, 0xC]
strh r0, [r5]
lsls r2, 1
adds r2, 0x1
lsls r2, 1
mov r0, r9
adds r3, r2, r0
add r2, r12
ldr r1, [sp, 0x8]
adds r0, r1, r4
ldrh r0, [r0]
lsls r0, 8
add r4, r10
ldrh r1, [r4]
orrs r0, r1
strh r0, [r2]
mov r5, r8
ands r0, r5
strh r0, [r3]
adds r0, r7, 0x1
lsls r0, 16
lsrs r7, r0, 16
cmp r7, 0x41
bls _081D215E
movs r0, 0xD5
lsls r0, 2
adds r1, r6, r0
movs r0, 0
strb r0, [r1]
_081D21BE:
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D2108
thumb_func_start sub_81D21DC
sub_81D21DC: @ 81D21DC
push {r4,r5,lr}
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x3
bls _081D21E8
movs r1, 0
_081D21E8:
movs r0, 0x1
lsls r0, r1
movs r5, 0x1F
bics r5, r0
movs r0, 0x40
movs r1, 0xF0
bl SetGpuReg
movs r0, 0x42
movs r1, 0x9B
bl SetGpuReg
ldr r4, =0x00003879
movs r0, 0x44
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x46
adds r1, r4, 0
bl SetGpuReg
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
movs r0, 0x4A
adds r1, r5, 0
bl SetGpuReg
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D21DC
thumb_func_start sub_81D2230
sub_81D2230: @ 81D2230
push {r4-r7,lr}
mov r12, r0
movs r4, 0
movs r7, 0x96
lsls r7, 1
add r7, r12
ldr r6, =0x00000352
add r6, r12
mov r5, r12
adds r5, 0x64
_081D2244:
lsls r2, r4, 2
adds r3, r7, r2
ldrh r1, [r6]
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r2, r0
adds r2, r5, r2
ldr r0, [r2]
str r0, [r3]
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x4
bls _081D2244
movs r1, 0xD5
lsls r1, 2
add r1, r12
movs r0, 0x1
strb r0, [r1]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D2230
thumb_func_start sub_81D2278
sub_81D2278: @ 81D2278
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
str r0, [sp]
adds r6, r1, 0
adds r5, r2, 0
str r3, [sp, 0x4]
ldr r0, [sp, 0x38]
ldr r7, [sp, 0x3C]
lsls r0, 24
lsrs r0, 24
mov r9, r0
movs r0, 0
str r0, [sp, 0xC]
ldrh r0, [r5, 0x2]
ldrh r1, [r3, 0x2]
cmp r0, r1
bcs _081D22B2
adds r2, r0, 0
mov r10, r2
ldrh r0, [r3, 0x2]
ldrh r1, [r5]
lsls r4, r1, 10
ldrh r3, [r3]
str r3, [sp, 0x8]
b _081D22C6
_081D22B2:
ldrh r0, [r5, 0x2]
ldr r1, [sp, 0x4]
ldrh r1, [r1, 0x2]
mov r10, r1
ldr r2, [sp, 0x4]
ldrh r1, [r2]
lsls r4, r1, 10
ldrh r3, [r5]
str r3, [sp, 0x8]
mov r2, r10
_081D22C6:
subs r0, r2
lsls r0, 16
lsrs r0, 16
mov r8, r0
cmp r0, 0
beq _081D22DE
subs r0, r3, r1
lsls r0, 10
mov r1, r8
bl __divsi3
str r0, [sp, 0xC]
_081D22DE:
mov r0, r8
adds r0, 0x1
lsls r0, 16
lsrs r0, 16
mov r8, r0
cmp r7, 0
bne _081D2328
mov r0, r10
subs r0, 0x38
lsls r0, 2
adds r6, r0
movs r5, 0
mov r3, r9
lsls r3, 1
mov r12, r3
ldr r0, [sp, 0x8]
add r0, r9
str r0, [sp, 0x10]
cmp r7, r8
bcs _081D23B6
movs r7, 0x1
_081D2308:
adds r2, r3, r6
asrs r1, r4, 10
asrs r0, r4, 9
ands r0, r7
adds r1, r0
add r1, r9
strh r1, [r2]
ldr r1, [sp, 0xC]
adds r4, r1
adds r6, 0x4
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, r8
bcc _081D2308
b _081D23B6
_081D2328:
ldr r2, [sp, 0xC]
cmp r2, 0
ble _081D23C0
mov r0, r10
subs r0, 0x38
lsls r0, 2
adds r7, r0
movs r5, 0
mov r3, r9
lsls r3, 1
mov r12, r3
ldr r0, [sp, 0x8]
add r0, r9
str r0, [sp, 0x10]
cmp r5, r8
bcs _081D237A
ldr r0, =0x00026bff
cmp r4, r0
bgt _081D237A
mov r1, r12
str r1, [sp, 0x14]
_081D2352:
ldr r3, [sp, 0x14]
adds r2, r3, r7
asrs r1, r4, 10
asrs r0, r4, 9
movs r3, 0x1
ands r0, r3
adds r1, r0
add r1, r9
strh r1, [r2]
ldr r0, [sp, 0xC]
adds r4, r0
adds r7, 0x4
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, r8
bcs _081D237A
ldr r1, =0x00026bff
cmp r4, r1
ble _081D2352
_081D237A:
mov r2, r10
adds r1, r2, r5
ldr r3, [sp]
movs r2, 0xD4
lsls r2, 2
adds r0, r3, r2
strh r1, [r0]
ldrh r0, [r0]
subs r0, 0x38
lsls r0, 2
adds r6, r0
cmp r5, r8
bcs _081D23B6
mov r3, r12
movs r7, 0x1
_081D2398:
adds r2, r3, r6
asrs r1, r4, 10
asrs r0, r4, 9
ands r0, r7
adds r1, r0
add r1, r9
strh r1, [r2]
ldr r0, [sp, 0xC]
adds r4, r0
adds r6, 0x4
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, r8
bcc _081D2398
_081D23B6:
subs r0, r6, 0x4
b _081D248C
.pool
_081D23C0:
ldr r1, [sp, 0xC]
cmp r1, 0
bge _081D2464
mov r0, r10
subs r0, 0x38
lsls r0, 2
adds r6, r0
movs r5, 0
mov r2, r9
lsls r2, 1
mov r12, r2
ldr r3, [sp, 0x8]
add r3, r9
str r3, [sp, 0x10]
cmp r5, r8
bcs _081D241E
adds r3, r2, r6
asrs r1, r4, 10
asrs r0, r4, 9
movs r2, 0x1
ands r0, r2
adds r1, r0
add r1, r9
strh r1, [r3]
b _081D2414
_081D23F2:
ldr r0, [sp, 0xC]
adds r4, r0
adds r6, 0x4
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, r8
bcs _081D241E
mov r1, r12
adds r3, r1, r6
asrs r2, r4, 10
asrs r0, r4, 9
movs r1, 0x1
ands r0, r1
adds r2, r0
add r2, r9
strh r2, [r3]
_081D2414:
ldr r0, =0x00026bff
cmp r4, r0
bgt _081D23F2
movs r0, 0x9B
strh r0, [r3]
_081D241E:
mov r2, r10
adds r1, r2, r5
ldr r3, [sp]
movs r2, 0xD4
lsls r2, 2
adds r0, r3, r2
strh r1, [r0]
ldrh r0, [r0]
subs r0, 0x38
lsls r0, 2
adds r7, r0
cmp r5, r8
bcs _081D245A
mov r3, r12
movs r6, 0x1
_081D243C:
adds r2, r3, r7
asrs r1, r4, 10
asrs r0, r4, 9
ands r0, r6
adds r1, r0
add r1, r9
strh r1, [r2]
ldr r0, [sp, 0xC]
adds r4, r0
adds r7, 0x4
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, r8
bcc _081D243C
_081D245A:
subs r0, r7, 0x4
b _081D248C
.pool
_081D2464:
ldr r1, [sp]
movs r2, 0xD4
lsls r2, 2
adds r0, r1, r2
mov r3, r10
strh r3, [r0]
mov r0, r10
subs r0, 0x38
lsls r0, 2
adds r6, r0
adds r7, r0
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r6, 0x2]
ldr r1, [sp, 0x4]
ldrh r0, [r1]
strh r0, [r7]
movs r0, 0x9B
strh r0, [r7, 0x2]
b _081D2494
_081D248C:
add r0, r12
mov r2, sp
ldrh r2, [r2, 0x10]
strh r2, [r0]
_081D2494:
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D2278
thumb_func_start sub_81D24A4
sub_81D24A4: @ 81D24A4
push {r4-r7,lr}
sub sp, 0x8
adds r4, r0, 0
movs r0, 0x97
lsls r0, 1
adds r2, r4, r0
movs r3, 0x99
lsls r3, 1
adds r1, r4, r3
ldrh r0, [r2]
ldrh r3, [r1]
cmp r0, r3
bcs _081D24E0
adds r7, r0, 0
movs r0, 0xA0
lsls r0, 1
adds r1, r4, r0
movs r3, 0x96
lsls r3, 1
adds r2, r4, r3
subs r0, 0x10
adds r3, r4, r0
movs r0, 0x1
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
adds r0, r4, 0
bl sub_81D2278
b _081D2500
_081D24E0:
ldrh r7, [r1]
movs r2, 0xA0
lsls r2, 1
adds r1, r4, r2
movs r3, 0x98
lsls r3, 1
adds r2, r4, r3
movs r0, 0x96
lsls r0, 1
adds r3, r4, r0
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r4, 0
bl sub_81D2278
_081D2500:
movs r1, 0xA0
lsls r1, 1
adds r5, r4, r1
movs r3, 0x98
lsls r3, 1
adds r2, r4, r3
movs r0, 0x9A
lsls r0, 1
adds r6, r4, r0
movs r0, 0x1
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
adds r0, r4, 0
adds r1, r5, 0
adds r3, r6, 0
bl sub_81D2278
movs r2, 0
movs r1, 0x9B
lsls r1, 1
adds r0, r4, r1
movs r3, 0x9D
lsls r3, 1
adds r1, r4, r3
ldrh r0, [r0]
ldrh r1, [r1]
cmp r0, r1
bhi _081D253C
movs r2, 0x1
_081D253C:
movs r0, 0x9C
lsls r0, 1
adds r3, r4, r0
str r2, [sp]
movs r1, 0x92
lsls r1, 2
adds r0, r4, r1
str r0, [sp, 0x4]
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl sub_81D2278
movs r2, 0x38
cmp r2, r7
bcs _081D257E
adds r6, r5, 0
movs r3, 0
movs r0, 0xA1
lsls r0, 1
adds r5, r4, r0
_081D2566:
adds r0, r2, 0
subs r0, 0x38
lsls r0, 2
adds r1, r6, r0
strh r3, [r1]
adds r0, r5, r0
strh r3, [r0]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, r7
bcc _081D2566
_081D257E:
movs r1, 0x97
lsls r1, 1
adds r0, r4, r1
ldrh r2, [r0]
movs r3, 0xD4
lsls r3, 2
adds r0, r4, r3
ldrh r1, [r0]
cmp r2, r1
bhi _081D25B2
movs r1, 0xA0
lsls r1, 1
adds r3, r4, r1
movs r5, 0x9B
adds r1, r0, 0
_081D259C:
adds r0, r2, 0
subs r0, 0x38
lsls r0, 2
adds r0, r3, r0
strh r5, [r0]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
ldrh r0, [r1]
cmp r2, r0
bls _081D259C
_081D25B2:
movs r2, 0x9B
lsls r2, 1
adds r1, r4, r2
movs r3, 0xD4
lsls r3, 2
adds r0, r4, r3
ldrh r0, [r0]
ldrh r1, [r1]
cmp r0, r1
bcs _081D25C8
adds r0, r1, 0
_081D25C8:
adds r0, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0x79
bhi _081D25F8
movs r0, 0xA0
lsls r0, 1
adds r6, r4, r0
movs r3, 0
movs r1, 0xA1
lsls r1, 1
adds r5, r4, r1
_081D25E0:
adds r0, r2, 0
subs r0, 0x38
lsls r0, 2
adds r1, r6, r0
strh r3, [r1]
adds r0, r5, r0
strh r3, [r0]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0x79
bls _081D25E0
_081D25F8:
movs r2, 0x38
movs r3, 0xA0
lsls r3, 1
adds r5, r4, r3
movs r0, 0xA1
lsls r0, 1
adds r4, r0
movs r6, 0x9B
_081D2608:
adds r0, r2, 0
subs r0, 0x38
lsls r1, r0, 2
adds r3, r5, r1
ldrh r0, [r3]
cmp r0, 0
bne _081D2620
adds r0, r4, r1
ldrh r0, [r0]
cmp r0, 0
beq _081D2620
strh r6, [r3]
_081D2620:
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0x79
bls _081D2608
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D24A4
thumb_func_start sub_81D2634
sub_81D2634: @ 81D2634
push {r4-r6,lr}
sub sp, 0x8
adds r4, r0, 0
movs r0, 0x97
lsls r0, 1
adds r2, r4, r0
movs r3, 0x9F
lsls r3, 1
adds r1, r4, r3
ldrh r0, [r2]
ldrh r5, [r1]
cmp r0, r5
bcs _081D266E
adds r6, r0, 0
movs r0, 0x92
lsls r0, 2
adds r1, r4, r0
subs r3, 0x12
adds r2, r4, r3
movs r5, 0x9E
lsls r5, 1
adds r3, r4, r5
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r4, 0
bl sub_81D2278
b _081D2690
_081D266E:
ldrh r6, [r1]
movs r0, 0x92
lsls r0, 2
adds r1, r4, r0
movs r3, 0x9E
lsls r3, 1
adds r2, r4, r3
movs r5, 0x96
lsls r5, 1
adds r3, r4, r5
movs r0, 0x1
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
adds r0, r4, 0
bl sub_81D2278
_081D2690:
movs r0, 0x92
lsls r0, 2
adds r5, r4, r0
movs r1, 0x9E
lsls r1, 1
adds r2, r4, r1
movs r0, 0x9C
lsls r0, 1
adds r3, r4, r0
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r4, 0
adds r1, r5, 0
bl sub_81D2278
cmp r6, 0x38
ble _081D26C8
movs r0, 0
adds r1, r5, 0
adds r2, r6, 0
subs r2, 0x38
_081D26BC:
strh r0, [r1]
strh r0, [r1, 0x2]
adds r1, 0x4
subs r2, 0x1
cmp r2, 0
bne _081D26BC
_081D26C8:
movs r1, 0x97
lsls r1, 1
adds r0, r4, r1
ldrh r2, [r0]
movs r3, 0xD4
lsls r3, 2
adds r0, r4, r3
ldrh r5, [r0]
cmp r2, r5
bgt _081D26F6
movs r3, 0x9B
adds r1, r0, 0
lsls r0, r2, 2
movs r5, 0xB5
lsls r5, 1
adds r0, r5
adds r0, r4
_081D26EA:
strh r3, [r0]
adds r0, 0x4
adds r2, 0x1
ldrh r5, [r1]
cmp r2, r5
ble _081D26EA
_081D26F6:
movs r1, 0x9D
lsls r1, 1
adds r0, r4, r1
ldrh r0, [r0]
adds r1, r0, 0x1
movs r2, 0xD4
lsls r2, 2
adds r0, r4, r2
ldrh r0, [r0]
cmp r0, r1
bge _081D270E
adds r0, r1, 0
_081D270E:
adds r2, r0, 0
cmp r2, 0x79
bgt _081D272C
movs r1, 0
lsls r0, r2, 2
movs r3, 0xB4
lsls r3, 1
adds r0, r3
adds r0, r4
_081D2720:
strh r1, [r0]
strh r1, [r0, 0x2]
adds r0, 0x4
adds r2, 0x1
cmp r2, 0x79
ble _081D2720
_081D272C:
movs r3, 0
movs r5, 0x92
lsls r5, 2
adds r1, r4, r5
movs r2, 0x41
_081D2736:
ldrh r0, [r1]
ldrh r4, [r1, 0x2]
cmp r0, r4
bcc _081D2742
strh r3, [r1, 0x2]
strh r3, [r1]
_081D2742:
adds r1, 0x4
subs r2, 0x1
cmp r2, 0
bge _081D2736
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81D2634
thumb_func_start sub_81D2754
sub_81D2754: @ 81D2754
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r6, r0, 0
mov r8, r1
ldr r1, =gUnknown_08625410
ldrb r0, [r6]
adds r0, r1
ldrb r2, [r0]
adds r6, 0x1
movs r0, 0x9B
mov r3, r8
strh r0, [r3]
movs r0, 0x5B
subs r0, r2
strh r0, [r3, 0x2]
movs r7, 0x40
movs r0, 0
mov r12, r0
movs r2, 0x1
mov r9, r2
ldr r3, =gSineTable
mov r10, r3
_081D2786:
adds r0, r7, 0
adds r0, 0x33
lsls r0, 24
lsrs r7, r0, 24
mov r1, r12
lsls r0, r1, 24
movs r2, 0xFF
lsls r2, 24
adds r0, r2
lsrs r3, r0, 24
mov r12, r3
cmp r0, 0
bge _081D27A4
movs r0, 0x4
mov r12, r0
_081D27A4:
mov r1, r12
lsls r0, r1, 24
asrs r4, r0, 24
cmp r4, 0x2
bne _081D27B4
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
_081D27B4:
ldrb r0, [r6]
ldr r2, =gUnknown_08625410
adds r0, r2
ldrb r2, [r0]
adds r6, 0x1
lsls r0, r4, 2
mov r1, r8
adds r3, r0, r1
adds r0, r7, 0
adds r0, 0x40
lsls r0, 1
add r0, r10
movs r1, 0
ldrsh r0, [r0, r1]
muls r0, r2
asrs r5, r0, 8
adds r0, r5, 0
adds r0, 0x9B
strh r0, [r3]
lsls r0, r7, 1
add r0, r10
movs r1, 0
ldrsh r0, [r0, r1]
adds r1, r2, 0
muls r1, r0
asrs r1, 8
movs r0, 0x5B
subs r0, r1
strh r0, [r3, 0x2]
cmp r4, 0x2
bgt _081D2800
cmp r2, 0x20
bne _081D27FA
cmp r4, 0x2
beq _081D2800
_081D27FA:
adds r0, r5, 0
adds r0, 0x9C
strh r0, [r3]
_081D2800:
mov r0, r9
adds r0, 0x1
lsls r0, 16
lsrs r0, 16
mov r9, r0
cmp r0, 0x4
bls _081D2786
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D2754
thumb_func_start sub_81D2824
sub_81D2824: @ 81D2824
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, =gUnknown_08625510
bl InitWindows
bl DeactivateAllTextPrinters
movs r0, 0
movs r1, 0x1
movs r2, 0xE0
bl LoadUserWindowBorderGfx
ldr r0, =gUnknown_0860F074
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
movs r4, 0
_081D284A:
adds r0, r4, 0
movs r1, 0x11
bl FillWindowPixelBuffer
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
bls _081D284A
cmp r5, 0
bne _081D287C
movs r0, 0
bl PutWindowTilemap
movs r0, 0
movs r1, 0
movs r2, 0x1
movs r3, 0xE
bl SetWindowBorderStyle
b _081D288E
.pool
_081D287C:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x1
movs r1, 0
movs r2, 0x1
movs r3, 0xE
bl SetWindowBorderStyle
_081D288E:
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0x3
bl PutWindowTilemap
movs r0, 0x2
movs r1, 0
movs r2, 0x1
movs r3, 0xE
bl SetWindowBorderStyle
movs r0, 0x3
movs r1, 0
movs r2, 0x1
movs r3, 0xE
bl SetWindowBorderStyle
bl nullsub_79
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81D2824
thumb_func_start nullsub_79
nullsub_79: @ 81D28C4
bx lr
thumb_func_end nullsub_79
thumb_func_start sub_81D28C8
sub_81D28C8: @ 81D28C8
push {r4-r7,lr}
lsls r1, 16
lsrs r4, r1, 16
ldr r3, =gMultiuseListMenuTemplate
adds r2, r3, 0
ldr r1, =gUnknown_08625548
ldm r1!, {r5-r7}
stm r2!, {r5-r7}
ldm r1!, {r5-r7}
stm r2!, {r5-r7}
strh r4, [r3, 0xC]
str r0, [r3]
cmp r4, 0x5
bhi _081D28F0
strh r4, [r3, 0xE]
b _081D28F4
.pool
_081D28F0:
movs r0, 0x6
strh r0, [r3, 0xE]
_081D28F4:
ldrb r0, [r3, 0xE]
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81D28C8
thumb_func_start sub_81D28FC
sub_81D28FC: @ 81D28FC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x2C
mov r9, r0
movs r0, 0
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r5, =gText_BattleMoves2
movs r0, 0x1
adds r1, r5, 0
movs r2, 0x80
bl GetStringCenterAlignXOffset
adds r4, r0, 0
lsls r3, r4, 24
lsrs r3, 24
movs r0, 0x1
str r0, [sp]
movs r0, 0xFF
mov r8, r0
str r0, [sp, 0x4]
movs r7, 0
str r7, [sp, 0x8]
movs r0, 0
movs r1, 0x1
adds r2, r5, 0
bl AddTextPrinterParameterized
ldr r5, =gText_PPSlash
movs r1, 0x29
mov r10, r1
str r1, [sp]
mov r0, r8
str r0, [sp, 0x4]
str r7, [sp, 0x8]
movs r0, 0
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x4
bl AddTextPrinterParameterized
ldr r5, =gText_PowerSlash
movs r0, 0x1
adds r1, r5, 0
movs r2, 0x6A
bl GetStringRightAlignXOffset
adds r4, r0, 0
lsls r3, r4, 24
lsrs r3, 24
movs r1, 0x19
str r1, [sp]
mov r0, r8
str r0, [sp, 0x4]
str r7, [sp, 0x8]
movs r0, 0
movs r1, 0x1
adds r2, r5, 0
bl AddTextPrinterParameterized
ldr r5, =gText_AccuracySlash
movs r0, 0x1
adds r1, r5, 0
movs r2, 0x6A
bl GetStringRightAlignXOffset
adds r4, r0, 0
lsls r3, r4, 24
lsrs r3, 24
mov r1, r10
str r1, [sp]
mov r0, r8
str r0, [sp, 0x4]
str r7, [sp, 0x8]
movs r0, 0
movs r1, 0x1
adds r2, r5, 0
bl AddTextPrinterParameterized
movs r0, 0x2
negs r0, r0
cmp r9, r0
bne _081D29C4
movs r0, 0
movs r1, 0x2
bl CopyWindowToVram
b _081D2AB6
.pool
_081D29C4:
mov r1, r9
lsls r0, r1, 1
add r0, r9
lsls r0, 2
ldr r1, =gBattleMoves
adds r6, r0, r1
ldrb r1, [r6, 0x2]
lsls r0, r1, 3
subs r0, r1
ldr r1, =gTypeNames
adds r5, r0, r1
movs r0, 0x19
str r0, [sp]
mov r1, r8
str r1, [sp, 0x4]
str r7, [sp, 0x8]
movs r0, 0
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x4
bl AddTextPrinterParameterized
ldr r1, =gText_PPSlash
movs r0, 0x1
movs r2, 0
bl GetStringWidth
adds r4, r0, 0x4
ldrb r1, [r6, 0x4]
add r0, sp, 0xC
movs r2, 0
movs r3, 0x2
bl ConvertIntToDecimalStringN
lsls r3, r4, 24
lsrs r3, 24
mov r0, r10
str r0, [sp]
mov r1, r8
str r1, [sp, 0x4]
str r7, [sp, 0x8]
movs r0, 0
movs r1, 0x1
add r2, sp, 0xC
bl AddTextPrinterParameterized
ldrb r0, [r6, 0x1]
cmp r0, 0x1
bhi _081D2A3C
ldr r5, =gText_ThreeDashes
b _081D2A4A
.pool
_081D2A3C:
ldrb r1, [r6, 0x1]
add r0, sp, 0xC
movs r2, 0
movs r3, 0x3
bl ConvertIntToDecimalStringN
add r5, sp, 0xC
_081D2A4A:
movs r0, 0x19
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x6A
bl AddTextPrinterParameterized
ldrb r0, [r6, 0x3]
cmp r0, 0
bne _081D2A70
ldr r5, =gText_ThreeDashes
b _081D2A7E
.pool
_081D2A70:
ldrb r1, [r6, 0x3]
add r0, sp, 0xC
movs r2, 0
movs r3, 0x3
bl ConvertIntToDecimalStringN
add r5, sp, 0xC
_081D2A7E:
movs r0, 0x29
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r4, 0
str r4, [sp, 0x8]
movs r0, 0
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x6A
bl AddTextPrinterParameterized
ldr r1, =gMoveDescriptionPointers
mov r0, r9
subs r0, 0x1
lsls r0, 2
adds r0, r1
ldr r5, [r0]
movs r0, 0x41
str r0, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0
movs r1, 0x7
adds r2, r5, 0
movs r3, 0
bl AddTextPrinterParameterized
_081D2AB6:
add sp, 0x2C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D28FC
thumb_func_start sub_81D2ACC
sub_81D2ACC: @ 81D2ACC
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xC
adds r4, r0, 0
bl ShowHideHearts
movs r0, 0x1
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r5, =gText_ContestMoves2
movs r0, 0x1
adds r1, r5, 0
movs r2, 0x80
bl GetStringCenterAlignXOffset
lsls r3, r0, 24
lsrs r3, 24
movs r0, 0x1
str r0, [sp]
movs r7, 0xFF
str r7, [sp, 0x4]
movs r6, 0
str r6, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
bl AddTextPrinterParameterized
ldr r5, =gText_Appeal2
movs r0, 0x1
adds r1, r5, 0
movs r2, 0x5C
bl GetStringRightAlignXOffset
lsls r3, r0, 24
lsrs r3, 24
movs r0, 0x19
mov r8, r0
str r0, [sp]
str r7, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
adds r2, r5, 0
bl AddTextPrinterParameterized
ldr r5, =gText_Jam2
movs r0, 0x1
adds r1, r5, 0
movs r2, 0x5C
bl GetStringRightAlignXOffset
lsls r3, r0, 24
lsrs r3, 24
movs r0, 0x29
str r0, [sp]
str r7, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
adds r2, r5, 0
bl AddTextPrinterParameterized
movs r0, 0x2
negs r0, r0
cmp r4, r0
bne _081D2B6C
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
b _081D2BB8
.pool
_081D2B6C:
lsls r4, 3
ldr r0, =gContestMoves
adds r4, r0
ldr r1, =gContestMoveTypeTextPointers
ldrb r0, [r4, 0x1]
lsls r0, 29
lsrs r0, 27
adds r0, r1
ldr r5, [r0]
mov r0, r8
str r0, [sp]
str r7, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x4
bl AddTextPrinterParameterized
ldr r1, =gContestEffectDescriptionPointers
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r5, [r0]
movs r0, 0x41
str r0, [sp]
str r7, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0x1
movs r1, 0x7
adds r2, r5, 0
movs r3, 0
bl AddTextPrinterParameterized
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
_081D2BB8:
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D2ACC
thumb_func_start sub_81D2BD0
sub_81D2BD0: @ 81D2BD0
push {r4,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r1, 24
cmp r1, 0x1
beq _081D2BE2
movs r0, 0x5
bl PlaySE
_081D2BE2:
adds r0, r4, 0
bl sub_81D28FC
adds r0, r4, 0
bl sub_81D2ACC
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81D2BD0
thumb_func_start sub_81D2BF4
sub_81D2BF4: @ 81D2BF4
push {r4,lr}
sub sp, 0x10
adds r4, r0, 0
movs r0, 0x3
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r2, =gTextFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
bl GetPlayerTextSpeed
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
str r0, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r1, 0x1
adds r2, r4, 0
bl AddTextPrinterParameterized2
add sp, 0x10
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D2BF4
thumb_func_start sub_81D2C3C
sub_81D2C3C: @ 81D2C3C
push {lr}
bl RunTextPrinters
movs r0, 0x3
bl IsTextPrinterActive
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
thumb_func_end sub_81D2C3C
thumb_func_start sub_81D2C50
sub_81D2C50: @ 81D2C50
push {lr}
ldr r0, =gUnknown_08625540
movs r1, 0x1
movs r2, 0xE
movs r3, 0
bl CreateYesNoMenu
pop {r0}
bx r0
.pool
thumb_func_end sub_81D2C50
thumb_func_start sub_81D2C68
sub_81D2C68: @ 81D2C68
push {lr}
lsls r0, 16
lsrs r0, 16
lsls r1, 16
lsrs r1, 16
cmp r0, 0xE
bne _081D2CA8
cmp r2, 0x2
beq _081D2C7E
cmp r2, 0x7
bne _081D2C94
_081D2C7E:
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
adds r1, r2, 0
adds r2, r3, 0
bl GetMonData
b _081D2CCA
.pool
_081D2C94:
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
adds r1, r2, 0
bl GetMonData
b _081D2CCA
.pool
_081D2CA8:
cmp r2, 0x2
beq _081D2CB0
cmp r2, 0x7
bne _081D2CBE
_081D2CB0:
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
bl GetAndCopyBoxMonDataFromAnyBox
b _081D2CCA
_081D2CBE:
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
bl GetBoxMonDataFromAnyBox
_081D2CCA:
pop {r1}
bx r1
thumb_func_end sub_81D2C68
thumb_func_start sub_81D2CD0
sub_81D2CD0: @ 81D2CD0
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
lsls r1, 16
lsrs r4, r1, 16
lsls r2, 16
lsrs r6, r2, 16
movs r0, 0xFC
strb r0, [r5]
adds r5, 0x1
movs r0, 0x4
strb r0, [r5]
adds r5, 0x1
movs r0, 0x8
strb r0, [r5]
adds r5, 0x1
movs r0, 0
strb r0, [r5]
adds r5, 0x1
movs r0, 0x9
strb r0, [r5]
adds r5, 0x1
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0x2D
movs r3, 0
bl sub_81D2C68
cmp r0, 0
beq _081D2D20
ldr r1, =gText_EggNickname
adds r0, r5, 0
movs r2, 0
movs r3, 0xC
bl StringCopyPadded
b _081D2E70
.pool
_081D2D20:
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0x2
adds r3, r5, 0
bl sub_81D2C68
adds r0, r5, 0
bl StringGetEnd10
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0xB
movs r3, 0
bl sub_81D2C68
lsls r0, 16
lsrs r7, r0, 16
cmp r4, 0xE
bne _081D2D70
movs r0, 0x64
adds r4, r6, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x38
bl GetMonData
lsls r0, 16
lsrs r0, 16
mov r8, r0
adds r0, r4, 0
bl GetMonGender
lsls r0, 24
lsrs r6, r0, 24
b _081D2D92
.pool
_081D2D70:
lsls r0, r4, 24
lsrs r0, 24
lsls r1, r6, 24
lsrs r1, 24
bl GetBoxedMonPtr
adds r4, r0, 0
bl GetBoxMonGender
lsls r0, 24
lsrs r6, r0, 24
adds r0, r4, 0
bl GetLevelFromBoxMonExp
lsls r0, 24
lsrs r0, 24
mov r8, r0
_081D2D92:
cmp r7, 0x1D
beq _081D2D9A
cmp r7, 0x20
bne _081D2DB0
_081D2D9A:
movs r0, 0xB
adds r1, r7, 0
muls r1, r0
ldr r0, =gSpeciesNames
adds r1, r0
adds r0, r5, 0
bl StringCompare
cmp r0, 0
bne _081D2DB0
movs r6, 0xFF
_081D2DB0:
adds r3, r5, 0
b _081D2DBA
.pool
_081D2DB8:
adds r3, 0x1
_081D2DBA:
ldrb r0, [r3]
cmp r0, 0xFF
bne _081D2DB8
movs r1, 0xFC
strb r1, [r3]
adds r3, 0x1
movs r0, 0x12
strb r0, [r3]
adds r3, 0x1
movs r0, 0x3C
strb r0, [r3]
adds r3, 0x1
cmp r6, 0
beq _081D2DDE
cmp r6, 0xFE
beq _081D2E02
movs r0, 0
b _081D2E24
_081D2DDE:
strb r1, [r3]
adds r3, 0x1
movs r0, 0x1
strb r0, [r3]
adds r3, 0x1
movs r0, 0x4
strb r0, [r3]
adds r3, 0x1
strb r1, [r3]
adds r3, 0x1
movs r0, 0x3
strb r0, [r3]
adds r3, 0x1
movs r0, 0x5
strb r0, [r3]
adds r3, 0x1
movs r0, 0xB5
b _081D2E24
_081D2E02:
strb r1, [r3]
adds r3, 0x1
movs r0, 0x1
strb r0, [r3]
adds r3, 0x1
movs r0, 0x6
strb r0, [r3]
adds r3, 0x1
strb r1, [r3]
adds r3, 0x1
movs r0, 0x3
strb r0, [r3]
adds r3, 0x1
movs r0, 0x7
strb r0, [r3]
adds r3, 0x1
movs r0, 0xB6
_081D2E24:
strb r0, [r3]
adds r3, 0x1
movs r0, 0xFC
strb r0, [r3]
adds r3, 0x1
movs r0, 0x4
strb r0, [r3]
adds r3, 0x1
movs r0, 0x8
strb r0, [r3]
adds r3, 0x1
movs r4, 0
strb r4, [r3]
adds r3, 0x1
movs r0, 0x9
strb r0, [r3]
adds r3, 0x1
movs r0, 0xBA
strb r0, [r3]
adds r3, 0x1
movs r0, 0xF9
strb r0, [r3]
adds r3, 0x1
movs r0, 0x5
strb r0, [r3]
adds r3, 0x1
adds r0, r3, 0
mov r1, r8
movs r2, 0
movs r3, 0x3
bl ConvertIntToDecimalStringN
adds r3, r0, 0
strb r4, [r3]
adds r3, 0x1
movs r0, 0xFF
strb r0, [r3]
adds r0, r3, 0
_081D2E70:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81D2CD0
thumb_func_start sub_81D2E7C
sub_81D2E7C: @ 81D2E7C
push {r4,lr}
adds r4, r0, 0
lsls r2, 16
lsrs r2, 16
b _081D2E94
_081D2E86:
strb r3, [r4]
adds r1, 0x1
adds r4, 0x1
lsls r0, r2, 16
ldr r2, =0xffff0000
adds r0, r2
lsrs r2, r0, 16
_081D2E94:
ldrb r3, [r1]
adds r0, r3, 0
cmp r0, 0xFF
bne _081D2E86
adds r1, r2, 0
lsls r0, r1, 16
ldr r2, =0xffff0000
adds r0, r2
lsrs r2, r0, 16
lsls r1, 16
cmp r1, 0
ble _081D2EC2
movs r3, 0
_081D2EAE:
strb r3, [r4]
adds r4, 0x1
adds r1, r2, 0
lsls r0, r1, 16
ldr r2, =0xffff0000
adds r0, r2
lsrs r2, r0, 16
lsls r1, 16
cmp r1, 0
bgt _081D2EAE
_081D2EC2:
movs r0, 0xFF
strb r0, [r4]
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D2E7C
thumb_func_start sub_81D2ED4
sub_81D2ED4: @ 81D2ED4
push {r4-r7,lr}
adds r5, r0, 0
adds r6, r1, 0
ldr r0, [sp, 0x14]
ldr r1, [sp, 0x18]
ldr r4, [sp, 0x1C]
lsls r2, 16
lsrs r7, r2, 16
lsls r3, 16
lsrs r3, 16
lsls r0, 16
lsrs r2, r0, 16
lsls r1, 16
lsrs r0, r1, 16
lsls r4, 24
cmp r4, 0
bne _081D2EFC
subs r0, 0x1
lsls r0, 16
lsrs r0, 16
_081D2EFC:
cmp r2, r0
beq _081D2F42
adds r0, r6, 0
adds r1, r7, 0
adds r2, r3, 0
bl sub_81D2CD0
movs r0, 0xFC
strb r0, [r5]
movs r0, 0x4
strb r0, [r5, 0x1]
movs r0, 0x8
strb r0, [r5, 0x2]
movs r0, 0
strb r0, [r5, 0x3]
movs r0, 0x9
strb r0, [r5, 0x4]
cmp r7, 0xE
bne _081D2F2C
adds r0, r5, 0x5
ldr r1, =gText_InParty
b _081D2F3A
.pool
_081D2F2C:
adds r4, r5, 0x5
lsls r0, r7, 24
lsrs r0, 24
bl GetBoxNamePtr
adds r1, r0, 0
adds r0, r4, 0
_081D2F3A:
movs r2, 0x8
bl sub_81D2E7C
b _081D2F72
_081D2F42:
movs r1, 0
movs r2, 0
_081D2F46:
adds r0, r6, r1
strb r2, [r0]
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0xB
bls _081D2F46
adds r1, r6, r1
movs r0, 0xFF
strb r0, [r1]
movs r1, 0
movs r2, 0
_081D2F5E:
adds r0, r5, r1
strb r2, [r0]
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0x7
bls _081D2F5E
adds r1, r5, r1
movs r0, 0xFF
strb r0, [r1]
_081D2F72:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D2ED4
thumb_func_start sub_81D2F78
sub_81D2F78: @ 81D2F78
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
mov r8, r0
mov r10, r1
ldr r0, [sp, 0x20]
ldr r1, [sp, 0x24]
ldr r4, [sp, 0x28]
ldr r5, [sp, 0x2C]
lsls r2, 16
lsrs r7, r2, 16
lsls r3, 16
lsrs r6, r3, 16
lsls r0, 16
lsrs r2, r0, 16
lsls r1, 16
lsrs r1, 16
mov r9, r1
lsls r4, 16
lsrs r0, r4, 16
lsls r5, 24
cmp r5, 0
bne _081D2FB0
subs r0, 0x1
lsls r0, 16
lsrs r0, 16
_081D2FB0:
cmp r2, r0
beq _081D305C
adds r0, r7, 0
adds r1, r6, 0
movs r2, 0x16
movs r3, 0
bl sub_81D2C68
mov r1, r9
lsls r5, r1, 2
adds r4, r5, r1
mov r2, r8
adds r1, r2, r4
strb r0, [r1]
adds r0, r7, 0
adds r1, r6, 0
movs r2, 0x2F
movs r3, 0
bl sub_81D2C68
mov r1, r8
adds r1, 0x1
adds r1, r4
strb r0, [r1]
adds r0, r7, 0
adds r1, r6, 0
movs r2, 0x21
movs r3, 0
bl sub_81D2C68
mov r1, r8
adds r1, 0x2
adds r1, r4
strb r0, [r1]
adds r0, r7, 0
adds r1, r6, 0
movs r2, 0x18
movs r3, 0
bl sub_81D2C68
mov r1, r8
adds r1, 0x3
adds r1, r4
strb r0, [r1]
adds r0, r7, 0
adds r1, r6, 0
movs r2, 0x17
movs r3, 0
bl sub_81D2C68
mov r1, r8
adds r1, 0x4
adds r1, r4
strb r0, [r1]
mov r4, r10
add r4, r9
adds r0, r7, 0
adds r1, r6, 0
movs r2, 0x30
movs r3, 0
bl sub_81D2C68
cmp r0, 0xFF
beq _081D3044
adds r0, r7, 0
adds r1, r6, 0
movs r2, 0x30
movs r3, 0
bl sub_81D2C68
movs r1, 0x1D
bl __udivsi3
b _081D3046
_081D3044:
movs r0, 0x9
_081D3046:
strb r0, [r4]
mov r0, r9
adds r1, r5, r0
mov r2, r8
adds r0, r2, r1
lsls r1, 2
adds r1, 0x14
add r1, r8
bl sub_81D2754
b _081D3086
_081D305C:
movs r2, 0
mov r0, r9
lsls r5, r0, 2
adds r1, r5, r0
movs r6, 0
lsls r3, r1, 2
movs r5, 0x9B
movs r4, 0x5B
_081D306C:
adds r0, r2, r1
add r0, r8
strb r6, [r0]
lsls r0, r2, 2
adds r0, r3
add r0, r8
strh r5, [r0, 0x14]
strh r4, [r0, 0x16]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0x4
bls _081D306C
_081D3086:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D2F78
thumb_func_start sub_81D3094
sub_81D3094: @ 81D3094
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
mov r8, r0
mov r9, r1
ldr r0, [sp, 0x20]
ldr r1, [sp, 0x24]
ldr r4, [sp, 0x28]
lsls r2, 16
lsrs r7, r2, 16
lsls r3, 16
lsrs r5, r3, 16
lsls r0, 16
lsrs r2, r0, 16
lsls r1, 16
lsrs r0, r1, 16
lsls r4, 24
cmp r4, 0
bne _081D30C4
subs r0, 0x1
lsls r0, 16
lsrs r0, 16
_081D30C4:
cmp r2, r0
beq _081D311A
adds r0, r7, 0
adds r1, r5, 0
movs r2, 0x41
movs r3, 0
bl sub_81D2C68
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r7, 0
adds r1, r5, 0
movs r2, 0x1
movs r3, 0
bl sub_81D2C68
adds r6, r0, 0
adds r0, r7, 0
adds r1, r5, 0
movs r2, 0
movs r3, 0
bl sub_81D2C68
adds r5, r0, 0
lsls r0, r4, 3
ldr r1, =gMonFrontPicTable
adds r0, r1
movs r1, 0x1
str r1, [sp]
mov r1, r8
adds r2, r4, 0
adds r3, r5, 0
bl LoadSpecialPokePic
adds r0, r4, 0
adds r1, r6, 0
adds r2, r5, 0
bl GetFrontSpritePalFromSpeciesAndPersonality
mov r1, r9
bl LZ77UnCompWram
_081D311A:
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D3094
thumb_func_start sub_81D312C
sub_81D312C: @ 81D312C
push {lr}
adds r1, r0, 0
ldrh r0, [r1]
adds r0, 0x18
strh r0, [r1]
lsls r0, 16
cmp r0, 0
ble _081D3140
movs r0, 0
strh r0, [r1]
_081D3140:
movs r0, 0
ldrsh r1, [r1, r0]
negs r0, r1
orrs r0, r1
lsrs r0, 31
pop {r1}
bx r1
thumb_func_end sub_81D312C
thumb_func_start sub_81D3150
sub_81D3150: @ 81D3150
push {lr}
adds r1, r0, 0
ldrh r0, [r1]
subs r0, 0x18
strh r0, [r1]
lsls r0, 16
asrs r0, 16
movs r2, 0x50
negs r2, r2
cmp r0, r2
bge _081D3168
strh r2, [r1]
_081D3168:
movs r0, 0
ldrsh r1, [r1, r0]
eors r1, r2
negs r0, r1
orrs r0, r1
lsrs r0, 31
pop {r1}
bx r1
thumb_func_end sub_81D3150
thumb_func_start sub_81D3178
sub_81D3178: @ 81D3178
push {r4,r5,lr}
adds r5, r1, 0
bl sub_81D2074
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
bl sub_81D312C
lsls r0, 24
lsrs r0, 24
movs r1, 0
cmp r4, 0
bne _081D319A
cmp r0, 0
beq _081D319C
_081D319A:
movs r1, 0x1
_081D319C:
adds r0, r1, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D3178
thumb_func_start sub_81D31A4
sub_81D31A4: @ 81D31A4
push {r4,r5,lr}
adds r5, r1, 0
bl sub_81D2074
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
bl sub_81D3150
lsls r0, 24
lsrs r0, 24
movs r1, 0
cmp r4, 0
bne _081D31C6
cmp r0, 0
beq _081D31C8
_081D31C6:
movs r1, 0x1
_081D31C8:
adds r0, r1, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D31A4
thumb_func_start sub_81D31D0
sub_81D31D0: @ 81D31D0
push {r4-r7,lr}
sub sp, 0x20
ldr r3, =gUnknown_08625A48
ldr r4, [r3]
ldr r5, [r3, 0x4]
str r4, [sp, 0x18]
str r5, [sp, 0x1C]
mov r4, sp
ldr r3, =gUnknown_08625A50
ldm r3!, {r5-r7}
stm r4!, {r5-r7}
ldm r3!, {r5-r7}
stm r4!, {r5-r7}
ldr r3, =gUnknown_08625A68
ldr r4, [r3, 0x4]
ldr r3, [r3]
ldr r5, [sp, 0x18]
ldr r6, [sp, 0x1C]
str r5, [r0]
str r6, [r0, 0x4]
mov r0, sp
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
str r3, [r2]
str r4, [r2, 0x4]
add sp, 0x20
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D31D0
thumb_func_start sub_81D321C
sub_81D321C: @ 81D321C
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x50
adds r5, r0, 0
mov r12, r1
mov r8, r2
mov r1, sp
ldr r0, =gUnknown_08625A70
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
ldm r0!, {r3,r4}
stm r1!, {r3,r4}
add r3, sp, 0x20
adds r1, r3, 0
ldr r0, =gUnknown_08625A90
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
add r2, sp, 0x38
adds r1, r2, 0
ldr r0, =gUnknown_08625AA8
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
movs r4, 0
_081D3258:
lsls r0, r4, 3
add r0, sp
ldr r1, [r0, 0x4]
ldr r0, [r0]
stm r5!, {r0,r1}
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _081D3258
mov r1, r12
adds r0, r2, 0
ldm r0!, {r2,r4,r5}
stm r1!, {r2,r4,r5}
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
movs r4, 0
_081D327A:
lsls r0, r4, 3
adds r0, r3, r0
ldr r1, [r0, 0x4]
ldr r0, [r0]
mov r5, r8
adds r5, 0x8
mov r8, r5
subs r5, 0x8
stm r5!, {r0,r1}
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x2
bls _081D327A
add sp, 0x50
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D321C
thumb_func_start sub_81D32B0
sub_81D32B0: @ 81D32B0
push {r4,r5,lr}
ldr r2, =gUnknown_08625AC0
ldr r4, [r2]
ldr r5, [r2, 0x4]
ldr r2, =gUnknown_08625AC8
ldr r3, [r2, 0x4]
ldr r2, [r2]
str r4, [r0]
str r5, [r0, 0x4]
str r2, [r1]
str r3, [r1, 0x4]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D32B0
thumb_func_start sub_81D32D4
sub_81D32D4: @ 81D32D4
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x30]
adds r0, 0x1
strh r0, [r1, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3C
ble _081D32F0
movs r0, 0
strh r0, [r1, 0x30]
adds r0, r1, 0
bl sub_81D3408
_081D32F0:
pop {r0}
bx r0
thumb_func_end sub_81D32D4
thumb_func_start sub_81D32F4
sub_81D32F4: @ 81D32F4
push {lr}
adds r2, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _081D330C
movs r0, 0
strh r0, [r2, 0x30]
ldr r0, =sub_81D32D4
str r0, [r2, 0x1C]
_081D330C:
pop {r0}
bx r0
.pool
thumb_func_end sub_81D32F4
thumb_func_start sub_81D3314
sub_81D3314: @ 81D3314
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x36
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, =gSprites
adds r3, r1, r0
cmp r3, 0
beq _081D3360
ldrh r1, [r3, 0x24]
ldrh r2, [r3, 0x20]
adds r1, r2
ldr r2, =gUnknown_08625B2C
movs r5, 0x2E
ldrsh r0, [r4, r5]
lsls r0, 2
adds r0, r2
ldrh r0, [r0]
adds r0, r1
strh r0, [r4, 0x20]
ldrh r1, [r3, 0x26]
ldrh r3, [r3, 0x22]
adds r1, r3
movs r3, 0x2E
ldrsh r0, [r4, r3]
lsls r0, 2
adds r2, 0x2
adds r0, r2
ldrh r0, [r0]
adds r0, r1
b _081D337E
.pool
_081D3360:
ldr r1, =gUnknown_08625B2C
movs r5, 0x2E
ldrsh r0, [r4, r5]
lsls r0, 2
adds r0, r1
ldrh r0, [r0]
adds r0, 0x28
strh r0, [r4, 0x20]
movs r2, 0x2E
ldrsh r0, [r4, r2]
lsls r0, 2
adds r1, 0x2
adds r0, r1
ldrh r0, [r0]
adds r0, 0x68
_081D337E:
strh r0, [r4, 0x22]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D3314
thumb_func_start sub_81D338C
sub_81D338C: @ 81D338C
push {r4-r7,lr}
mov r7, r8
push {r7}
mov r8, r2
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 24
lsrs r7, r1, 24
movs r5, 0
_081D339E:
lsls r0, r5, 2
mov r1, r8
adds r4, r0, r1
ldr r0, [r4]
cmp r0, 0
beq _081D33F0
strh r5, [r0, 0x2E]
ldr r1, [r4]
lsls r0, r5, 4
adds r0, 0x1
strh r0, [r1, 0x30]
ldr r0, [r4]
strh r6, [r0, 0x32]
ldr r0, [r4]
strh r5, [r0, 0x34]
cmp r7, 0
beq _081D33C4
cmp r6, 0x9
beq _081D33D0
_081D33C4:
ldr r1, [r4]
ldr r0, =sub_81D3564
str r0, [r1, 0x1C]
b _081D33F0
.pool
_081D33D0:
ldr r0, [r4]
bl sub_81D3314
ldr r0, [r4]
bl sub_81D35E8
ldr r2, [r4]
ldr r0, =sub_81D32F4
str r0, [r2, 0x1C]
adds r2, 0x3E
ldrb r0, [r2]
movs r3, 0x5
negs r3, r3
adds r1, r3, 0
ands r0, r1
strb r0, [r2]
_081D33F0:
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0x9
bls _081D339E
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D338C
thumb_func_start sub_81D3408
sub_81D3408: @ 81D3408
push {r4-r7,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x38]
lsls r0, 24
lsrs r2, r0, 24
movs r3, 0
movs r1, 0x32
ldrsh r0, [r4, r1]
adds r0, 0x1
cmp r3, r0
bge _081D3454
ldr r5, =gSprites
movs r7, 0x1C
adds r7, r5
mov r12, r7
ldr r6, =sub_81D3564
_081D3428:
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r2, r1, r5
movs r7, 0x2E
ldrsh r0, [r2, r7]
lsls r0, 4
adds r0, 0x1
strh r0, [r2, 0x30]
add r1, r12
str r6, [r1]
ldrh r0, [r2, 0x38]
lsls r0, 24
lsrs r2, r0, 24
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
movs r1, 0x32
ldrsh r0, [r4, r1]
adds r0, 0x1
cmp r3, r0
blt _081D3428
_081D3454:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D3408
thumb_func_start sub_81D3464
sub_81D3464: @ 81D3464
push {lr}
adds r2, r0, 0
movs r1, 0
movs r3, 0
_081D346C:
lsls r0, r1, 2
adds r0, r2
str r3, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x9
bls _081D346C
pop {r0}
bx r0
thumb_func_end sub_81D3464
thumb_func_start sub_81D3480
sub_81D3480: @ 81D3480
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
mov r8, r0
lsls r1, 24
lsrs r1, 24
mov r10, r1
lsls r2, 24
movs r0, 0
mov r9, r0
lsrs r7, r2, 24
movs r5, 0
adds r0, r7, 0x1
cmp r9, r0
bge _081D34FE
_081D34A2:
ldr r0, =gUnknown_08625B14
movs r1, 0
movs r2, 0
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r3, r0, 24
adds r6, r3, 0
cmp r3, 0x40
beq _081D34FE
lsls r0, r5, 2
mov r1, r8
adds r4, r0, r1
lsls r0, r3, 4
adds r0, r3
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
str r0, [r4]
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
ldr r0, [r4]
mov r1, r10
strh r1, [r0, 0x36]
cmp r5, 0
beq _081D34F0
subs r0, r4, 0x4
ldr r0, [r0]
strh r3, [r0, 0x38]
b _081D34F2
.pool
_081D34F0:
mov r9, r6
_081D34F2:
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
adds r0, r7, 0x1
cmp r5, r0
blt _081D34A2
_081D34FE:
lsls r0, r7, 2
add r0, r8
ldr r0, [r0]
mov r1, r9
strh r1, [r0, 0x38]
adds r0, r7, 0
movs r1, 0x1
mov r2, r8
bl sub_81D338C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D3480
thumb_func_start sub_81D3520
sub_81D3520: @ 81D3520
push {r4-r6,lr}
adds r6, r0, 0
movs r5, 0
_081D3526:
cmp r5, 0x9
bhi _081D3544
lsls r0, r5, 2
adds r4, r0, r6
ldr r0, [r4]
cmp r0, 0
beq _081D3544
bl DestroySprite
movs r0, 0
str r0, [r4]
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
b _081D3526
_081D3544:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81D3520
thumb_func_start sub_81D354C
sub_81D354C: @ 81D354C
push {lr}
bl sub_81D3520
movs r0, 0x68
bl FreeSpriteTilesByTag
movs r0, 0x68
bl FreeSpritePaletteByTag
pop {r0}
bx r0
thumb_func_end sub_81D354C
thumb_func_start sub_81D3564
sub_81D3564: @ 81D3564
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x30]
movs r2, 0x30
ldrsh r0, [r4, r2]
cmp r0, 0
beq _081D3592
subs r0, r1, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
cmp r0, 0
bne _081D35DC
adds r0, r4, 0
movs r1, 0
bl SeekSpriteAnim
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
_081D3592:
adds r0, r4, 0
bl sub_81D3314
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _081D35DC
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
movs r0, 0x34
ldrsh r1, [r4, r0]
movs r2, 0x32
ldrsh r0, [r4, r2]
cmp r1, r0
bne _081D35D8
cmp r1, 0x9
bne _081D35D0
adds r0, r4, 0
bl sub_81D35E8
ldr r0, =sub_81D32F4
b _081D35DA
.pool
_081D35D0:
ldr r0, =sub_81D32D4
b _081D35DA
.pool
_081D35D8:
ldr r0, =SpriteCallbackDummy
_081D35DA:
str r0, [r4, 0x1C]
_081D35DC:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D3564
thumb_func_start sub_81D35E8
sub_81D35E8: @ 81D35E8
push {r4-r7,lr}
adds r6, r0, 0
ldrh r0, [r6, 0x38]
lsls r0, 24
lsrs r1, r0, 24
movs r5, 0
movs r2, 0x32
ldrsh r0, [r6, r2]
adds r0, 0x1
cmp r5, r0
bge _081D3636
movs r0, 0x5
negs r0, r0
adds r7, r0, 0
_081D3604:
lsls r4, r1, 4
adds r4, r1
lsls r4, 2
ldr r0, =gSprites
adds r4, r0
adds r0, r4, 0
movs r1, 0
bl SeekSpriteAnim
adds r1, r4, 0
adds r1, 0x3E
ldrb r0, [r1]
ands r0, r7
strb r0, [r1]
ldrh r0, [r4, 0x38]
lsls r0, 24
lsrs r1, r0, 24
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
movs r2, 0x32
ldrsh r0, [r6, r2]
adds r0, 0x1
cmp r5, r0
blt _081D3604
_081D3636:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D35E8
thumb_func_start sub_81D3640
sub_81D3640: @ 81D3640
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x2C
mov r8, r0
adds r6, r1, 0
adds r5, r2, 0
adds r4, r3, 0
ldr r3, [sp, 0x4C]
ldr r0, [sp, 0x50]
mov r9, r0
lsls r4, 24
lsrs r4, 24
lsls r3, 24
lsrs r3, 24
mov r1, r9
lsls r1, 24
lsrs r1, 24
mov r9, r1
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r1, r4, 4
orrs r1, r4
lsls r1, 24
lsrs r1, 24
str r3, [sp, 0x28]
bl FillWindowPixelBuffer
add r2, sp, 0xC
ldrh r0, [r5]
ldrh r1, [r6]
subs r0, r1
strh r0, [r2]
ldrh r0, [r5, 0x2]
ldrh r1, [r6, 0x2]
subs r0, r1
strh r0, [r2, 0x2]
ldrh r0, [r5, 0x4]
ldrh r1, [r6, 0x4]
subs r0, r1
strh r0, [r2, 0x4]
ldrh r0, [r5, 0x8]
ldrh r1, [r6, 0x8]
subs r0, r1
strh r0, [r2, 0x6]
ldrh r0, [r5, 0xA]
ldrh r1, [r6, 0xA]
subs r0, r1
strh r0, [r2, 0x8]
ldrh r0, [r5, 0x6]
ldrh r1, [r6, 0x6]
subs r0, r1
strh r0, [r2, 0xA]
add r0, sp, 0x24
strb r4, [r0]
ldr r3, [sp, 0x28]
strb r3, [r0, 0x1]
mov r1, r9
strb r1, [r0, 0x2]
movs r7, 0
mov r10, r0
movs r0, 0x1
negs r0, r0
mov r9, r0
add r6, sp, 0x18
_081D36CA:
lsls r0, r7, 4
subs r0, r7
lsls r0, 24
lsrs r5, r0, 24
mov r1, r10
str r1, [sp]
mov r0, r9
str r0, [sp, 0x4]
ldr r1, =gUnknown_08625B54
lsls r0, r7, 2
adds r0, r1
ldr r0, [r0]
str r0, [sp, 0x8]
mov r0, r8
movs r1, 0x1
movs r2, 0
adds r3, r5, 0
bl AddTextPrinterParameterized3
lsls r0, r7, 1
mov r4, sp
adds r4, r0
adds r4, 0xC
movs r1, 0
ldrsh r0, [r4, r1]
ldr r1, =gText_Dash
cmp r0, 0
blt _081D3704
ldr r1, =gText_UnkCtrlF904
_081D3704:
adds r0, r6, 0
bl StringCopy
mov r0, r10
str r0, [sp]
mov r1, r9
str r1, [sp, 0x4]
str r6, [sp, 0x8]
mov r0, r8
movs r1, 0x1
movs r2, 0x38
adds r3, r5, 0
bl AddTextPrinterParameterized3
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r1, 0
cmp r1, 0
bge _081D372C
negs r0, r1
_081D372C:
movs r4, 0xC
cmp r0, 0x9
bgt _081D3734
movs r4, 0x12
_081D3734:
cmp r1, 0
bge _081D373A
negs r1, r1
_081D373A:
adds r0, r6, 0
movs r2, 0
movs r3, 0x2
bl ConvertIntToDecimalStringN
adds r2, r4, 0
adds r2, 0x38
mov r1, r10
str r1, [sp]
mov r0, r9
str r0, [sp, 0x4]
str r6, [sp, 0x8]
mov r0, r8
movs r1, 0x1
adds r3, r5, 0
bl AddTextPrinterParameterized3
adds r0, r7, 0x1
lsls r0, 16
lsrs r7, r0, 16
cmp r7, 0x5
bls _081D36CA
add sp, 0x2C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D3640
thumb_func_start sub_81D3784
sub_81D3784: @ 81D3784
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x2C
mov r8, r0
adds r5, r1, 0
adds r4, r2, 0
adds r6, r3, 0
ldr r2, [sp, 0x4C]
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
lsls r2, 24
lsrs r2, 24
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r1, r4, 4
orrs r1, r4
lsls r1, 24
lsrs r1, 24
str r2, [sp, 0x28]
bl FillWindowPixelBuffer
add r1, sp, 0xC
ldrh r0, [r5]
strh r0, [r1]
ldrh r0, [r5, 0x2]
strh r0, [r1, 0x2]
ldrh r0, [r5, 0x4]
strh r0, [r1, 0x4]
ldrh r0, [r5, 0x8]
strh r0, [r1, 0x6]
ldrh r0, [r5, 0xA]
strh r0, [r1, 0x8]
ldrh r0, [r5, 0x6]
strh r0, [r1, 0xA]
add r0, sp, 0x24
strb r4, [r0]
strb r6, [r0, 0x1]
ldr r2, [sp, 0x28]
strb r2, [r0, 0x2]
movs r6, 0
add r1, sp, 0x18
mov r9, r1
mov r7, r8
mov r10, r0
movs r2, 0x1
negs r2, r2
mov r8, r2
_081D37EE:
lsls r1, r6, 1
mov r0, sp
adds r0, r1
adds r0, 0xC
movs r2, 0
ldrsh r0, [r0, r2]
movs r4, 0x3
cmp r0, 0x63
bgt _081D3808
movs r4, 0x1
cmp r0, 0x9
ble _081D3808
movs r4, 0x2
_081D3808:
mov r0, sp
adds r0, r1
adds r0, 0xC
movs r2, 0
ldrsh r1, [r0, r2]
mov r0, r9
movs r2, 0
adds r3, r4, 0
bl ConvertIntToDecimalStringN
movs r0, 0x4
subs r0, r4
lsls r4, r0, 1
adds r4, r0
lsls r4, 17
lsrs r4, 16
lsls r5, r6, 4
subs r5, r6
lsls r5, 24
lsrs r5, 24
mov r0, r10
str r0, [sp]
mov r1, r8
str r1, [sp, 0x4]
ldr r1, =gUnknown_08625B54
lsls r0, r6, 2
adds r0, r1
ldr r0, [r0]
str r0, [sp, 0x8]
adds r0, r7, 0
movs r1, 0x1
movs r2, 0
adds r3, r5, 0
bl AddTextPrinterParameterized3
adds r4, 0x38
lsls r4, 24
lsrs r4, 24
mov r2, r10
str r2, [sp]
mov r0, r8
str r0, [sp, 0x4]
mov r1, r9
str r1, [sp, 0x8]
adds r0, r7, 0
movs r1, 0x1
adds r2, r4, 0
adds r3, r5, 0
bl AddTextPrinterParameterized3
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
cmp r6, 0x5
bls _081D37EE
add sp, 0x2C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D3784
thumb_func_start sub_81D388C
sub_81D388C: @ 81D388C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r1, 0x3A
bl GetMonData
strh r0, [r5]
adds r0, r4, 0
movs r1, 0x3B
bl GetMonData
strh r0, [r5, 0x2]
adds r0, r4, 0
movs r1, 0x3C
bl GetMonData
strh r0, [r5, 0x4]
adds r0, r4, 0
movs r1, 0x3D
bl GetMonData
strh r0, [r5, 0x6]
adds r0, r4, 0
movs r1, 0x3E
bl GetMonData
strh r0, [r5, 0x8]
adds r0, r4, 0
movs r1, 0x3F
bl GetMonData
strh r0, [r5, 0xA]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81D388C
thumb_func_start sub_81D38D4
sub_81D38D4: @ 81D38D4
push {lr}
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00003d6d
adds r0, r1
ldrb r1, [r0]
adds r2, r1, 0x1
adds r0, r2, 0
asrs r0, 8
lsls r0, 8
subs r0, r2, r0
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.pool
thumb_func_end sub_81D38D4
thumb_func_start sub_81D38FC
sub_81D38FC: @ 81D38FC
push {r4,r5,lr}
adds r4, r0, 0
movs r5, 0x9C
lsls r5, 2
adds r1, r5, 0
bl CalcByteArraySum
adds r4, r5
ldr r1, [r4]
cmp r0, r1
bne _081D3916
movs r0, 0x1
b _081D3918
_081D3916:
movs r0, 0
_081D3918:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D38FC
thumb_func_start sub_81D3920
sub_81D3920: @ 81D3920
push {r4-r7,lr}
adds r7, r0, 0
ldrb r6, [r7]
subs r0, r6, 0x1
cmp r0, 0x7
bhi _081D3964
movs r5, 0
cmp r5, r6
bcs _081D394C
adds r4, r7, 0
adds r4, 0x8
_081D3936:
adds r0, r4, 0
bl sub_81D38FC
cmp r0, 0
beq _081D3964
movs r0, 0x9D
lsls r0, 2
adds r4, r0
adds r5, 0x1
cmp r5, r6
bcc _081D3936
_081D394C:
adds r0, r7, 0
adds r0, 0x8
movs r1, 0x9D
lsls r1, 2
muls r1, r6
bl CalcByteArraySum
ldr r1, [r7, 0x4]
cmp r0, r1
bne _081D3964
movs r0, 0x1
b _081D3966
_081D3964:
movs r0, 0
_081D3966:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81D3920
thumb_func_start sub_81D396C
sub_81D396C: @ 81D396C
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
subs r0, 0x1
cmp r0, 0x7
bhi _081D398E
adds r0, r4, 0
adds r0, 0x8
movs r1, 0xEE
lsls r1, 4
bl CalcByteArraySum
ldr r1, [r4, 0x4]
cmp r0, r1
bne _081D398E
movs r0, 0x1
b _081D3990
_081D398E:
movs r0, 0
_081D3990:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81D396C
thumb_func_start sub_81D3998
sub_81D3998: @ 81D3998
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r7, r0, 0
mov r8, r1
movs r2, 0x80
lsls r2, 5
mov r0, r8
movs r1, 0
bl memset
ldrb r0, [r7]
mov r1, r8
strb r0, [r1]
bl sub_81D38D4
mov r2, r8
strb r0, [r2, 0x1]
ldrb r0, [r7]
adds r0, 0x1
asrs r0, 1
strb r0, [r2, 0x2]
movs r6, 0
b _081D3A42
_081D39C8:
movs r0, 0x1
ands r0, r6
cmp r0, 0
bne _081D3A14
lsrs r0, r6, 31
adds r0, r6, r0
asrs r0, 1
lsls r4, r0, 4
subs r4, r0
lsls r4, 3
subs r4, r0
lsls r4, 3
add r4, r8
movs r0, 0x9D
lsls r0, 2
adds r5, r6, 0
muls r5, r0
adds r5, r7, r5
ldrb r0, [r5, 0x8]
strb r0, [r4, 0x8]
movs r1, 0xA7
lsls r1, 2
adds r0, r4, r1
movs r2, 0xAA
lsls r2, 1
adds r1, r5, r2
subs r2, 0x30
bl memcpy
adds r4, 0xC
adds r5, 0xC
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xA4
lsls r2, 1
bl memcpy
b _081D3A40
_081D3A14:
lsrs r1, r6, 31
adds r1, r6, r1
asrs r1, 1
lsls r0, r1, 4
subs r0, r1
lsls r0, 3
subs r0, r1
lsls r0, 3
add r0, r8
movs r1, 0x9D
lsls r1, 2
muls r1, r6
adds r1, r7, r1
ldrb r2, [r1, 0x8]
strb r2, [r0, 0x9]
movs r2, 0xAA
lsls r2, 1
adds r0, r2
adds r1, 0xC
subs r2, 0xC
bl memcpy
_081D3A40:
adds r6, 0x1
_081D3A42:
ldrb r0, [r7]
cmp r6, r0
blt _081D39C8
movs r0, 0x1
ands r0, r6
cmp r0, 0
beq _081D3A7E
lsrs r2, r6, 31
adds r2, r6, r2
asrs r2, 1
lsls r0, r2, 4
subs r0, r2
lsls r0, 3
subs r0, r2
lsls r0, 3
add r0, r8
movs r1, 0xAA
lsls r1, 1
adds r0, r1
ldr r3, =gUnknown_08625B6C
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r2
lsls r1, 3
adds r1, r3
movs r2, 0xA4
lsls r2, 1
bl memcpy
_081D3A7E:
mov r0, r8
adds r0, 0x8
movs r1, 0xEE
lsls r1, 4
bl CalcByteArraySum
mov r2, r8
str r0, [r2, 0x4]
movs r0, 0x1E
mov r1, r8
bl sub_8153634
cmp r0, 0x1
bne _081D3AA4
movs r0, 0x1
b _081D3AA6
.pool
_081D3AA4:
movs r0, 0
_081D3AA6:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81D3998
thumb_func_start sub_81D3AB0
sub_81D3AB0: @ 81D3AB0
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x80
lsls r0, 5
bl AllocZeroed
adds r5, r0, 0
adds r0, r4, 0
adds r1, r5, 0
bl sub_81D3998
adds r4, r0, 0
adds r0, r5, 0
bl Free
adds r0, r4, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D3AB0
thumb_func_start sub_81D3AD8
sub_81D3AD8: @ 81D3AD8
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r0, 0x1E
bl TryCopySpecialSaveSection
cmp r0, 0x1
bne _081D3B04
ldr r2, =0x00000ee8
adds r0, r5, 0
adds r1, r4, 0
bl memcpy
adds r0, r5, 0
bl sub_81D396C
cmp r0, 0
beq _081D3B04
movs r0, 0x1
b _081D3B06
.pool
_081D3B04:
movs r0, 0
_081D3B06:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D3AD8
thumb_func_start sub_81D3B0C
sub_81D3B0C: @ 81D3B0C
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x80
lsls r0, 5
bl AllocZeroed
adds r5, r0, 0
adds r0, r4, 0
adds r1, r5, 0
bl sub_81D3AD8
adds r4, r0, 0
adds r0, r5, 0
bl Free
adds r0, r4, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D3B0C
thumb_func_start sub_81D3B34
sub_81D3B34: @ 81D3B34
push {r4,r5,lr}
movs r0, 0x80
lsls r0, 5
bl AllocZeroed
adds r4, r0, 0
bl sub_81D3B0C
adds r5, r0, 0
adds r0, r4, 0
bl Free
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D3B34
thumb_func_start sub_81D3B54
sub_81D3B54: @ 81D3B54
push {r4-r7,lr}
sub sp, 0x4
adds r6, r0, 0
adds r5, r1, 0
bl sub_81D41A0
movs r7, 0x2
ldr r4, =gShouldAdvanceLinkState
_081D3B64:
bl sub_81D4170
ldr r0, =gUnknown_030012E2
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081D3B76
strb r7, [r4]
_081D3B76:
movs r0, 0x1
adds r1, r6, 0
adds r2, r5, 0
movs r3, 0
bl sub_81D3D70
adds r1, r0, 0
ldr r0, =gUnknown_030012E4
strh r1, [r0]
movs r0, 0x13
ands r0, r1
cmp r0, 0x10
bne _081D3BA0
movs r4, 0
b _081D3BC2
.pool
_081D3BA0:
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _081D3BAC
movs r4, 0x1
b _081D3BC2
_081D3BAC:
movs r0, 0x4
ands r0, r1
lsls r0, 16
lsrs r0, 16
cmp r0, 0
bne _081D3BC0
strb r0, [r4]
bl VBlankIntrWait
b _081D3B64
_081D3BC0:
movs r4, 0x2
_081D3BC2:
movs r0, 0
str r0, [sp]
ldr r1, =gUnknown_030012C8
ldr r2, =0x05000006
mov r0, sp
bl CpuSet
bl sub_81D41F4
adds r0, r4, 0
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D3B54
thumb_func_start sub_81D3BE8
sub_81D3BE8: @ 81D3BE8
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
bl sub_81D41A0
movs r6, 0x2
ldr r4, =gShouldAdvanceLinkState
_081D3BF6:
bl sub_81D4170
ldr r0, =gUnknown_030012E2
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081D3C08
strb r6, [r4]
_081D3C08:
movs r0, 0
movs r1, 0
movs r2, 0
adds r3, r5, 0
bl sub_81D3D70
adds r1, r0, 0
ldr r0, =gUnknown_030012E4
strh r1, [r0]
movs r0, 0x13
ands r0, r1
cmp r0, 0x10
bne _081D3C34
movs r4, 0
b _081D3C56
.pool
_081D3C34:
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _081D3C40
movs r4, 0x1
b _081D3C56
_081D3C40:
movs r0, 0x4
ands r0, r1
lsls r0, 16
lsrs r0, 16
cmp r0, 0
bne _081D3C54
strb r0, [r4]
bl VBlankIntrWait
b _081D3BF6
_081D3C54:
movs r4, 0x2
_081D3C56:
movs r0, 0
str r0, [sp]
ldr r1, =gUnknown_030012C8
ldr r2, =0x05000006
mov r0, sp
bl CpuSet
bl sub_81D41F4
adds r0, r4, 0
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D3BE8
thumb_func_start sub_81D3C7C
sub_81D3C7C: @ 81D3C7C
push {r4,lr}
ldr r4, =0x04000208
movs r3, 0
strh r3, [r4]
ldr r2, =0x04000200
ldrh r1, [r2]
ldr r0, =0x0000ff3f
ands r0, r1
strh r0, [r2]
movs r0, 0x1
strh r0, [r4]
ldr r0, =0x04000128
strh r3, [r0]
subs r0, 0x1A
strh r3, [r0]
ldr r1, =0x04000202
movs r0, 0xC0
strh r0, [r1]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D3C7C
thumb_func_start sub_81D3CBC
sub_81D3CBC: @ 81D3CBC
push {r4-r7,lr}
sub sp, 0x4
ldr r5, =0x04000208
movs r4, 0
strh r4, [r5]
ldr r3, =0x04000200
ldrh r1, [r3]
ldr r0, =0x0000ff3f
ands r0, r1
strh r0, [r3]
movs r6, 0x1
strh r6, [r5]
ldr r0, =0x04000134
strh r4, [r0]
ldr r2, =0x04000128
movs r1, 0x80
lsls r1, 6
adds r0, r1, 0
strh r0, [r2]
ldrh r0, [r2]
ldr r7, =0x00004003
adds r1, r7, 0
orrs r0, r1
strh r0, [r2]
strh r4, [r5]
ldrh r0, [r3]
movs r1, 0x80
orrs r0, r1
strh r0, [r3]
strh r6, [r5]
ldr r1, =gUnknown_030012C8
ldrb r0, [r1, 0x1]
cmp r0, 0
bne _081D3D0A
str r0, [sp]
ldr r2, =0x05000006
mov r0, sp
bl CpuSet
_081D3D0A:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D3CBC
thumb_func_start sub_81D3D34
sub_81D3D34: @ 81D3D34
ldr r0, =0x04000134
movs r3, 0
strh r3, [r0]
ldr r2, =0x04000128
movs r1, 0xA0
lsls r1, 7
adds r0, r1, 0
strh r0, [r2]
ldrh r0, [r2]
movs r1, 0x8
orrs r0, r1
strh r0, [r2]
ldr r0, =gShouldAdvanceLinkState
strb r3, [r0]
ldr r0, =gUnknown_030012E6
strh r3, [r0]
ldr r1, =gUnknown_030012E8
movs r0, 0
str r0, [r1]
bx lr
.pool
thumb_func_end sub_81D3D34
thumb_func_start sub_81D3D70
sub_81D3D70: @ 81D3D70
push {r4-r6,lr}
adds r4, r1, 0
adds r5, r2, 0
adds r6, r3, 0
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gUnknown_030012C8
ldrb r0, [r0, 0x1]
cmp r0, 0x6
bls _081D3D86
b _081D3ECC
_081D3D86:
lsls r0, 2
ldr r1, =_081D3D98
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081D3D98:
.4byte _081D3DB4
.4byte _081D3DC8
.4byte _081D3DE8
.4byte _081D3DFC
.4byte _081D3E74
.4byte _081D3E84
.4byte _081D3EBC
_081D3DB4:
bl sub_81D3CBC
ldr r1, =gUnknown_030012C8
movs r0, 0x1
strb r0, [r1, 0x2]
strb r0, [r1, 0x1]
b _081D3ECC
.pool
_081D3DC8:
adds r0, r2, 0
bl sub_81D3EE8
lsls r0, 16
cmp r0, 0
beq _081D3DD8
bl sub_81D413C
_081D3DD8:
ldr r0, =gShouldAdvanceLinkState
ldrb r0, [r0]
cmp r0, 0x2
beq _081D3DE2
b _081D3ECC
_081D3DE2:
b _081D3E04
.pool
_081D3DE8:
bl sub_81D3D34
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl sub_81D3F1C
ldr r1, =gUnknown_030012C8
movs r0, 0x3
strb r0, [r1, 0x1]
_081D3DFC:
ldr r0, =gShouldAdvanceLinkState
ldrb r0, [r0]
cmp r0, 0x2
bne _081D3E18
_081D3E04:
ldr r1, =gUnknown_030012C8
strb r0, [r1, 0x4]
movs r0, 0x6
strb r0, [r1, 0x1]
b _081D3ECC
.pool
_081D3E18:
ldr r2, =gUnknown_030012E6
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
ldr r1, =gUnknown_030012E8
ldr r0, [r1]
adds r3, r0, 0x1
str r3, [r1]
ldr r1, =gUnknown_030012C8
ldrb r0, [r1]
cmp r0, 0
bne _081D3E3C
cmp r3, 0x3C
bls _081D3E3C
movs r0, 0x1
strb r0, [r1, 0x4]
movs r0, 0x6
strb r0, [r1, 0x1]
_081D3E3C:
ldr r4, =gUnknown_030012C8
ldrb r0, [r4, 0x2]
cmp r0, 0x2
beq _081D3ECC
ldrb r0, [r4]
cmp r0, 0
beq _081D3E64
ldrh r0, [r2]
cmp r0, 0x2
bls _081D3E64
bl sub_81D413C
movs r0, 0x2
b _081D3ECA
.pool
_081D3E64:
bl sub_81D413C
ldr r1, =gUnknown_030012C8
movs r0, 0x2
strb r0, [r1, 0x2]
b _081D3ECC
.pool
_081D3E74:
bl sub_81D3CBC
ldr r1, =gUnknown_030012C8
movs r0, 0x5
strb r0, [r1, 0x1]
b _081D3ECC
.pool
_081D3E84:
ldr r0, =gUnknown_030012C8
ldrb r0, [r0]
cmp r0, 0x1
bne _081D3E98
ldr r0, =gUnknown_030012E6
ldrh r0, [r0]
cmp r0, 0x2
bls _081D3E98
bl sub_81D413C
_081D3E98:
ldr r1, =gUnknown_030012E6
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x3C
bls _081D3ECC
ldr r0, =gUnknown_030012C8
movs r1, 0x1
strb r1, [r0, 0x4]
movs r1, 0x6
strb r1, [r0, 0x1]
b _081D3ECC
.pool
_081D3EBC:
ldr r4, =gUnknown_030012C8
ldrb r0, [r4, 0x2]
cmp r0, 0
beq _081D3ECC
bl sub_81D3C7C
movs r0, 0
_081D3ECA:
strb r0, [r4, 0x2]
_081D3ECC:
ldr r2, =gUnknown_030012C8
ldrb r0, [r2, 0x2]
ldrb r1, [r2, 0x4]
lsls r1, 2
orrs r0, r1
ldrb r1, [r2, 0x3]
lsls r1, 4
orrs r0, r1
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D3D70
thumb_func_start sub_81D3EE8
sub_81D3EE8: @ 81D3EE8
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =0x04000128
ldr r0, [r0]
movs r1, 0xC
ands r0, r1
cmp r0, 0x8
bne _081D3F0C
cmp r2, 0
beq _081D3F0C
ldr r1, =gUnknown_030012C8
movs r0, 0x1
b _081D3F10
.pool
_081D3F0C:
ldr r1, =gUnknown_030012C8
movs r0, 0
_081D3F10:
strb r0, [r1]
pop {r1}
bx r1
.pool
thumb_func_end sub_81D3EE8
thumb_func_start sub_81D3F1C
sub_81D3F1C: @ 81D3F1C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldr r3, =gUnknown_030012C8
ldrb r0, [r3]
cmp r0, 0
beq _081D3F54
ldr r2, =0x04000128
ldrh r0, [r2]
movs r1, 0x1
orrs r0, r1
strh r0, [r2]
str r5, [r3, 0x8]
ldr r0, =0x04000120
str r4, [r0]
lsrs r0, r4, 2
adds r0, 0x1
str r0, [r3, 0x10]
bl sub_81D3F68
b _081D3F5C
.pool
_081D3F54:
ldr r1, =0x04000128
ldrh r0, [r1]
strh r0, [r1]
str r2, [r3, 0x8]
_081D3F5C:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D3F1C
thumb_func_start sub_81D3F68
sub_81D3F68: @ 81D3F68
ldr r1, =0x0400010c
ldr r2, =0x0000fda7
adds r0, r2, 0
strh r0, [r1]
ldr r0, =0x0400010e
movs r2, 0x40
strh r2, [r0]
ldr r3, =0x04000208
movs r0, 0
strh r0, [r3]
adds r1, 0xF4
ldrh r0, [r1]
orrs r0, r2
strh r0, [r1]
movs r0, 0x1
strh r0, [r3]
bx lr
.pool
thumb_func_end sub_81D3F68
thumb_func_start sub_81D3F9C
sub_81D3F9C: @ 81D3F9C
push {lr}
bl sub_81D414C
bl sub_81D413C
pop {r0}
bx r0
thumb_func_end sub_81D3F9C
thumb_func_start sub_81D3FAC
sub_81D3FAC: @ 81D3FAC
push {r4-r6,lr}
sub sp, 0x8
ldr r2, =gUnknown_030012C8
ldrb r0, [r2, 0x1]
adds r3, r2, 0
cmp r0, 0x3
beq _081D4034
cmp r0, 0x3
bgt _081D3FC8
cmp r0, 0x1
beq _081D3FD0
b _081D412A
.pool
_081D3FC8:
cmp r0, 0x5
bne _081D3FCE
b _081D40FC
_081D3FCE:
b _081D412A
_081D3FD0:
ldr r1, =0x0400012a
ldr r2, =0x0000ccd0
adds r0, r2, 0
strh r0, [r1]
ldr r0, =0x04000120
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp]
str r1, [sp, 0x4]
movs r1, 0
movs r2, 0
movs r4, 0
ldr r6, =0x0000ccd0
ldr r5, =0x0000ffff
_081D3FEC:
lsls r0, r1, 1
add r0, sp
ldrh r0, [r0]
cmp r0, r6
bne _081D4010
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
b _081D401A
.pool
_081D4010:
cmp r0, r5
beq _081D401A
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
_081D401A:
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0x3
bls _081D3FEC
cmp r2, 0x2
beq _081D402A
b _081D412A
_081D402A:
cmp r4, 0
beq _081D4030
b _081D412A
_081D4030:
strb r2, [r3, 0x1]
b _081D412A
_081D4034:
ldr r0, =0x04000120
ldr r4, [r0]
ldr r0, [r2, 0xC]
cmp r0, 0
bne _081D404A
ldrb r0, [r2]
cmp r0, 0
bne _081D404A
lsrs r0, r4, 2
adds r0, 0x1
str r0, [r2, 0x10]
_081D404A:
ldrb r0, [r3]
cmp r0, 0x1
bne _081D4080
ldr r1, [r3, 0xC]
ldr r0, [r3, 0x10]
cmp r1, r0
bge _081D4074
ldr r2, =0x04000120
ldr r0, [r3, 0x8]
lsls r1, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2]
ldr r0, [r3, 0x14]
ldr r1, [r1]
adds r0, r1
str r0, [r3, 0x14]
b _081D40BA
.pool
_081D4074:
ldr r1, =0x04000120
ldr r0, [r3, 0x14]
b _081D40B8
.pool
_081D4080:
ldr r1, [r3, 0xC]
cmp r1, 0
ble _081D40A0
ldr r0, [r3, 0x10]
adds r0, 0x1
cmp r1, r0
bge _081D40A0
ldr r0, [r3, 0x8]
lsls r1, 2
adds r1, r0
subs r1, 0x4
str r4, [r1]
ldr r0, [r3, 0x14]
adds r0, r4
str r0, [r3, 0x14]
b _081D40B4
_081D40A0:
ldr r0, [r3, 0xC]
cmp r0, 0
beq _081D40B4
ldr r0, [r3, 0x14]
cmp r0, r4
bne _081D40B0
movs r0, 0x1
b _081D40B2
_081D40B0:
movs r0, 0x2
_081D40B2:
strb r0, [r3, 0x3]
_081D40B4:
ldr r1, =gUnknown_030012E8
movs r0, 0
_081D40B8:
str r0, [r1]
_081D40BA:
ldr r1, [r3, 0xC]
adds r1, 0x1
str r1, [r3, 0xC]
ldr r0, [r3, 0x10]
adds r0, 0x2
cmp r1, r0
bge _081D40EA
ldrb r0, [r3]
cmp r0, 0
beq _081D40E4
ldr r0, =0x0400010e
ldrh r1, [r0]
movs r2, 0x80
orrs r1, r2
strh r1, [r0]
b _081D412A
.pool
_081D40E4:
bl sub_81D413C
b _081D412A
_081D40EA:
movs r0, 0
movs r1, 0x4
strb r1, [r3, 0x1]
ldr r1, =gUnknown_030012E6
strh r0, [r1]
b _081D412A
.pool
_081D40FC:
ldrb r3, [r2]
cmp r3, 0
bne _081D4108
ldr r1, =0x0400012a
ldrb r0, [r2, 0x3]
strh r0, [r1]
_081D4108:
ldr r0, =0x04000120
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp]
str r1, [sp, 0x4]
mov r0, sp
ldrh r1, [r0, 0x2]
subs r0, r1, 0x1
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
bhi _081D412A
cmp r3, 0x1
bne _081D4126
strb r1, [r2, 0x3]
_081D4126:
movs r0, 0x6
strb r0, [r2, 0x1]
_081D412A:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D3FAC
thumb_func_start sub_81D413C
sub_81D413C: @ 81D413C
ldr r0, =0x04000128
ldrh r1, [r0]
movs r2, 0x80
orrs r1, r2
strh r1, [r0]
bx lr
.pool
thumb_func_end sub_81D413C
thumb_func_start sub_81D414C
sub_81D414C: @ 81D414C
ldr r2, =0x0400010e
ldrh r1, [r2]
ldr r0, =0x0000ff7f
ands r0, r1
strh r0, [r2]
ldr r1, =0x0400010c
ldr r2, =0x0000fda7
adds r0, r2, 0
strh r0, [r1]
bx lr
.pool
thumb_func_end sub_81D414C
thumb_func_start sub_81D4170
sub_81D4170: @ 81D4170
push {r4,lr}
ldr r0, =0x04000130
ldrh r0, [r0]
ldr r2, =0x000003ff
adds r1, r2, 0
eors r1, r0
ldr r4, =gUnknown_030012E2
ldr r3, =gUnknown_030012E0
ldrh r2, [r3]
adds r0, r1, 0
bics r0, r2
strh r0, [r4]
strh r1, [r3]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D4170
thumb_func_start sub_81D41A0
sub_81D41A0: @ 81D41A0
ldr r1, =gUnknown_030012EC
ldr r0, =0x04000208
ldrh r0, [r0]
strh r0, [r1]
ldr r1, =gUnknown_030012EE
ldr r0, =0x04000200
ldrh r0, [r0]
strh r0, [r1]
ldr r1, =gUnknown_030012F0
ldr r0, =0x0400010e
ldrh r0, [r0]
strh r0, [r1]
ldr r1, =gUnknown_030012F2
ldr r0, =0x04000128
ldrh r0, [r0]
strh r0, [r1]
ldr r1, =gUnknown_030012F4
ldr r0, =0x04000134
ldrh r0, [r0]
strh r0, [r1]
bx lr
.pool
thumb_func_end sub_81D41A0
thumb_func_start sub_81D41F4
sub_81D41F4: @ 81D41F4
ldr r1, =0x04000208
ldr r0, =gUnknown_030012EC
ldrh r0, [r0]
strh r0, [r1]
subs r1, 0x8
ldr r0, =gUnknown_030012EE
ldrh r0, [r0]
strh r0, [r1]
subs r1, 0xF2
ldr r0, =gUnknown_030012F0
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x1A
ldr r0, =gUnknown_030012F2
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0xC
ldr r0, =gUnknown_030012F4
ldrh r0, [r0]
strh r0, [r1]
bx lr
.pool
thumb_func_end sub_81D41F4
thumb_func_start sub_81D4238
sub_81D4238: @ 81D4238
push {lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
ldr r1, =gUnknown_030012C8
ldr r2, =0x05000006
mov r0, sp
bl CpuSet
add sp, 0x4
pop {r0}
bx r0
.pool
thumb_func_end sub_81D4238
thumb_func_start sub_81D4258
sub_81D4258: @ 81D4258
push {lr}
sub sp, 0x4
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
movs r0, 0x1
mov r3, sp
bl TryGetEventObjectIdByLocalIdAndMap
mov r0, sp
ldrb r0, [r0]
add sp, 0x4
pop {r1}
bx r1
.pool
thumb_func_end sub_81D4258
thumb_func_start sub_81D427C
sub_81D427C: @ 81D427C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
bl sub_81D4258
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r2, =gEventObjects
adds r5, r1, r2
ldr r4, =gUnknown_030012F8
ldr r3, =gPlayerAvatar
ldrb r1, [r3, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r0, [r0, 0x14]
ldrh r1, [r5, 0x10]
subs r0, r1
strh r0, [r4]
ldr r4, =gUnknown_030012FA
ldrb r1, [r3, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r0, [r0, 0x16]
ldrh r1, [r5, 0x12]
subs r0, r1
strh r0, [r4]
movs r0, 0
mov r8, r0
ldr r2, =gUnknown_030012FC
movs r1, 0
_081D42CA:
mov r3, r8
adds r0, r3, r2
strb r1, [r0]
mov r0, r8
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r8, r0
cmp r0, 0x3
bls _081D42CA
ldr r2, =gEventObjects
ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r2, r0, r2
movs r4, 0x14
ldrsh r1, [r2, r4]
movs r6, 0x10
ldrsh r0, [r2, r6]
cmp r1, r0
bne _081D4304
movs r0, 0x16
ldrsh r1, [r2, r0]
movs r3, 0x12
ldrsh r0, [r2, r3]
cmp r1, r0
beq _081D4356
_081D4304:
ldr r0, =0x0000403a
bl VarGet
lsls r0, 16
movs r1, 0xE0
lsls r1, 11
ands r1, r0
cmp r1, 0
bne _081D4338
ldrb r1, [r5, 0x1]
movs r0, 0x21
negs r0, r0
ands r0, r1
b _081D433E
.pool
_081D4338:
ldrb r0, [r5, 0x1]
movs r1, 0x20
orrs r0, r1
_081D433E:
strb r0, [r5, 0x1]
ldr r0, =0x0000403a
bl VarGet
lsls r0, 16
lsrs r0, 16
movs r1, 0x9
bl __umodsi3
lsls r0, 16
cmp r0, 0
bne _081D4360
_081D4356:
movs r0, 0
b _081D4816
.pool
_081D4360:
movs r4, 0
mov r8, r4
ldr r6, =gEventObjects
mov r10, r6
_081D4368:
ldr r3, =gPlayerAvatar
ldrb r1, [r3, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
mov r1, r10
adds r4, r0, r1
mov r2, r8
lsls r1, r2, 2
ldr r6, =gUnknown_0862608C
adds r0, r1, r6
movs r6, 0x14
ldrsh r2, [r4, r6]
movs r6, 0
ldrsh r0, [r0, r6]
ldr r6, =gEventObjects
mov r9, r6
mov r12, r3
adds r7, r1, 0
cmp r2, r0
beq _081D4394
b _081D449E
_081D4394:
movs r3, 0
ldr r1, =gUnknown_0862608C + 2
adds r0, r7, r1
movs r2, 0x16
ldrsh r1, [r4, r2]
movs r4, 0
ldrsh r2, [r0, r4]
cmp r1, r2
bge _081D43C0
movs r6, 0x12
ldrsh r0, [r5, r6]
cmp r0, r2
bgt _081D43CA
b _081D449E
.pool
_081D43C0:
movs r1, 0x12
ldrsh r0, [r5, r1]
cmp r0, r2
blt _081D43CA
movs r3, 0x1
_081D43CA:
cmp r3, 0
bne _081D449E
ldr r0, =gUnknown_030012F8
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0
ble _081D4410
movs r3, 0x10
ldrsh r2, [r5, r3]
adds r2, 0x1
mov r4, r12
ldrb r1, [r4, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
add r0, r9
movs r6, 0x14
ldrsh r0, [r0, r6]
cmp r2, r0
bne _081D4446
ldrh r0, [r5, 0x10]
adds r0, 0x1
lsls r0, 16
asrs r0, 16
movs r2, 0x12
ldrsh r1, [r5, r2]
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D4446
_081D4408:
movs r0, 0x4
b _081D4816
.pool
_081D4410:
cmp r0, 0
bge _081D4446
movs r3, 0x10
ldrsh r2, [r5, r3]
subs r2, 0x1
mov r4, r12
ldrb r1, [r4, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
add r0, r9
movs r6, 0x14
ldrsh r0, [r0, r6]
cmp r2, r0
bne _081D4446
ldrh r0, [r5, 0x10]
subs r0, 0x1
lsls r0, 16
asrs r0, 16
movs r2, 0x12
ldrsh r1, [r5, r2]
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D4446
b _081D45AA
_081D4446:
ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
add r0, r10
movs r3, 0x10
ldrsh r1, [r5, r3]
movs r4, 0x14
ldrsh r0, [r0, r4]
cmp r1, r0
bne _081D449E
ldr r0, =gUnknown_030012FA
movs r6, 0
ldrsh r0, [r0, r6]
cmp r0, 0
ble _081D4488
adds r0, r1, 0
ldrh r1, [r5, 0x12]
subs r1, 0x1
lsls r1, 16
asrs r1, 16
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D449E
_081D447C:
movs r0, 0x2
b _081D4816
.pool
_081D4488:
movs r2, 0x10
ldrsh r0, [r5, r2]
ldrh r1, [r5, 0x12]
adds r1, 0x1
lsls r1, 16
asrs r1, 16
bl sub_81D4834
lsls r0, 24
cmp r0, 0
bne _081D4538
_081D449E:
ldr r2, =gPlayerAvatar
ldrb r1, [r2, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
mov r3, r10
adds r4, r0, r3
ldr r6, =gUnknown_0862608C
ldr r1, =gUnknown_0862608C + 2
adds r0, r7, r1
movs r3, 0x16
ldrsh r1, [r4, r3]
movs r3, 0
ldrsh r0, [r0, r3]
ldr r3, =gEventObjects
mov r9, r3
mov r12, r2
cmp r1, r0
beq _081D44C6
b _081D45D0
_081D44C6:
movs r3, 0
adds r0, r7, r6
movs r6, 0x14
ldrsh r1, [r4, r6]
movs r4, 0
ldrsh r2, [r0, r4]
cmp r1, r2
bge _081D44F0
movs r6, 0x10
ldrsh r0, [r5, r6]
cmp r0, r2
bgt _081D44FA
b _081D45D0
.pool
_081D44F0:
movs r1, 0x10
ldrsh r0, [r5, r1]
cmp r0, r2
blt _081D44FA
movs r3, 0x1
_081D44FA:
cmp r3, 0
bne _081D45D0
ldr r0, =gUnknown_030012FA
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0
ble _081D4540
movs r3, 0x12
ldrsh r2, [r5, r3]
adds r2, 0x1
mov r4, r12
ldrb r1, [r4, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
add r0, r9
movs r6, 0x16
ldrsh r0, [r0, r6]
cmp r2, r0
bne _081D4576
movs r1, 0x10
ldrsh r0, [r5, r1]
ldrh r1, [r5, 0x12]
adds r1, 0x1
lsls r1, 16
asrs r1, 16
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D4576
_081D4538:
movs r0, 0x1
b _081D4816
.pool
_081D4540:
cmp r0, 0
bge _081D4576
movs r3, 0x12
ldrsh r2, [r5, r3]
subs r2, 0x1
mov r4, r12
ldrb r1, [r4, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
add r0, r9
movs r6, 0x16
ldrsh r0, [r0, r6]
cmp r2, r0
bne _081D4576
movs r1, 0x10
ldrsh r0, [r5, r1]
ldrh r1, [r5, 0x12]
subs r1, 0x1
lsls r1, 16
asrs r1, 16
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D4576
b _081D447C
_081D4576:
ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
add r0, r10
movs r2, 0x12
ldrsh r1, [r5, r2]
movs r3, 0x16
ldrsh r0, [r0, r3]
cmp r1, r0
bne _081D45D0
ldr r0, =gUnknown_030012F8
movs r4, 0
ldrsh r0, [r0, r4]
cmp r0, 0
ble _081D45B8
ldrh r0, [r5, 0x10]
subs r0, 0x1
lsls r0, 16
asrs r0, 16
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D45D0
_081D45AA:
movs r0, 0x3
b _081D4816
.pool
_081D45B8:
ldrh r0, [r5, 0x10]
adds r0, 0x1
lsls r0, 16
asrs r0, 16
movs r2, 0x12
ldrsh r1, [r5, r2]
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D45D0
b _081D4408
_081D45D0:
mov r0, r8
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r8, r0
cmp r0, 0x3
bhi _081D45E0
b _081D4368
_081D45E0:
adds r0, r5, 0
movs r1, 0
bl sub_81D4C14
lsls r0, 24
cmp r0, 0
beq _081D461C
adds r0, r5, 0
movs r1, 0x1
bl sub_81D4C58
lsls r0, 24
cmp r0, 0
beq _081D4604
movs r0, 0x2
bl sub_81D4D24
b _081D4812
_081D4604:
adds r0, r5, 0
movs r1, 0x1
bl sub_81D4CE0
lsls r0, 24
cmp r0, 0
bne _081D4614
b _081D447C
_081D4614:
movs r0, 0x2
bl sub_81D4D24
b _081D4812
_081D461C:
adds r0, r5, 0
movs r1, 0
bl sub_81D4C9C
lsls r0, 24
cmp r0, 0
beq _081D4658
adds r0, r5, 0
movs r1, 0x1
bl sub_81D4C58
lsls r0, 24
cmp r0, 0
beq _081D4640
movs r0, 0x2
bl sub_81D4D24
b _081D4812
_081D4640:
adds r0, r5, 0
movs r1, 0x1
bl sub_81D4CE0
lsls r0, 24
cmp r0, 0
bne _081D4650
b _081D4538
_081D4650:
movs r0, 0x2
bl sub_81D4D24
b _081D4812
_081D4658:
adds r0, r5, 0
movs r1, 0
bl sub_81D4C58
lsls r0, 24
cmp r0, 0
beq _081D4694
adds r0, r5, 0
movs r1, 0x1
bl sub_81D4C14
lsls r0, 24
cmp r0, 0
beq _081D467C
movs r0, 0x2
bl sub_81D4D24
b _081D4812
_081D467C:
adds r0, r5, 0
movs r1, 0x1
bl sub_81D4C9C
lsls r0, 24
cmp r0, 0
bne _081D468C
b _081D4408
_081D468C:
movs r0, 0x2
bl sub_81D4D24
b _081D4812
_081D4694:
adds r0, r5, 0
movs r1, 0
bl sub_81D4CE0
lsls r0, 24
cmp r0, 0
beq _081D46D0
adds r0, r5, 0
movs r1, 0x1
bl sub_81D4C14
lsls r0, 24
cmp r0, 0
beq _081D46B8
movs r0, 0x2
bl sub_81D4D24
b _081D4812
_081D46B8:
adds r0, r5, 0
movs r1, 0x1
bl sub_81D4C9C
lsls r0, 24
cmp r0, 0
bne _081D46C8
b _081D45AA
_081D46C8:
movs r0, 0x2
bl sub_81D4D24
b _081D4812
_081D46D0:
ldr r0, =gUnknown_030012FA
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
bne _081D476E
ldr r2, =gEventObjects
ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
movs r4, 0x12
ldrsh r1, [r0, r4]
ldrh r2, [r5, 0x12]
movs r6, 0x12
ldrsh r0, [r5, r6]
cmp r1, r0
ble _081D470C
movs r1, 0x10
ldrsh r0, [r5, r1]
subs r1, r2, 0x1
lsls r1, 16
asrs r1, 16
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D470C
b _081D447C
_081D470C:
ldr r2, =gEventObjects
ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
movs r2, 0x12
ldrsh r1, [r0, r2]
ldrh r2, [r5, 0x12]
movs r3, 0x12
ldrsh r0, [r5, r3]
cmp r1, r0
bge _081D473E
movs r4, 0x10
ldrsh r0, [r5, r4]
adds r1, r2, 0x1
lsls r1, 16
asrs r1, 16
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D473E
b _081D4538
_081D473E:
movs r6, 0x10
ldrsh r0, [r5, r6]
ldrh r1, [r5, 0x12]
subs r1, 0x1
lsls r1, 16
asrs r1, 16
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D4756
b _081D447C
_081D4756:
movs r1, 0x10
ldrsh r0, [r5, r1]
ldrh r1, [r5, 0x12]
adds r1, 0x1
lsls r1, 16
asrs r1, 16
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D476E
b _081D4538
_081D476E:
ldr r0, =gUnknown_030012F8
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0
bne _081D480C
ldr r2, =gEventObjects
ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
movs r3, 0x10
ldrsh r1, [r0, r3]
ldrh r2, [r5, 0x10]
movs r4, 0x10
ldrsh r0, [r5, r4]
cmp r1, r0
ble _081D47AA
subs r0, r2, 0x1
lsls r0, 16
asrs r0, 16
movs r6, 0x12
ldrsh r1, [r5, r6]
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D47AA
b _081D45AA
_081D47AA:
ldr r2, =gEventObjects
ldr r0, =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
movs r2, 0x10
ldrsh r1, [r0, r2]
ldrh r2, [r5, 0x10]
movs r3, 0x10
ldrsh r0, [r5, r3]
cmp r1, r0
bge _081D47DC
adds r0, r2, 0x1
lsls r0, 16
asrs r0, 16
movs r4, 0x12
ldrsh r1, [r5, r4]
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D47DC
b _081D4408
_081D47DC:
ldrh r0, [r5, 0x10]
adds r0, 0x1
lsls r0, 16
asrs r0, 16
movs r6, 0x12
ldrsh r1, [r5, r6]
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D47F4
b _081D4408
_081D47F4:
ldrh r0, [r5, 0x10]
subs r0, 0x1
lsls r0, 16
asrs r0, 16
movs r2, 0x12
ldrsh r1, [r5, r2]
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D480C
b _081D45AA
_081D480C:
movs r0, 0
bl sub_81D4890
_081D4812:
lsls r0, 24
lsrs r0, 24
_081D4816:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D427C
thumb_func_start sub_81D4834
sub_81D4834: @ 81D4834
push {r4,lr}
lsls r0, 16
lsls r1, 16
lsrs r4, r1, 16
ldr r3, =gEventObjects
ldr r1, =gPlayerAvatar
ldrb r2, [r1, 0x5]
lsls r1, r2, 3
adds r1, r2
lsls r1, 2
adds r2, r1, r3
movs r3, 0x10
ldrsh r1, [r2, r3]
lsrs r3, r0, 16
asrs r0, 16
cmp r1, r0
bne _081D4870
movs r0, 0x12
ldrsh r1, [r2, r0]
lsls r0, r4, 16
asrs r0, 16
cmp r1, r0
bne _081D4870
movs r0, 0
b _081D4888
.pool
_081D4870:
lsls r0, r3, 16
asrs r0, 16
lsls r1, r4, 16
asrs r1, 16
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl MetatileBehavior_IsPokeGrass
lsls r0, 24
lsrs r0, 24
_081D4888:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81D4834
thumb_func_start sub_81D4890
sub_81D4890: @ 81D4890
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
bl sub_81D4258
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r0, =gEventObjects
adds r4, r1, r0
movs r1, 0
ldr r3, =gUnknown_030012FC
movs r2, 0
_081D48B0:
adds r0, r1, r3
strb r2, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x3
bls _081D48B0
movs r1, 0x10
ldrsh r0, [r4, r1]
ldrh r1, [r4, 0x12]
subs r1, 0x1
lsls r1, 16
asrs r1, 16
bl sub_81D4834
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081D48E8
cmp r6, 0x2
beq _081D48E8
ldr r0, =gUnknown_030012FC
adds r0, r5, r0
movs r1, 0x2
strb r1, [r0]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
_081D48E8:
ldrh r0, [r4, 0x10]
adds r0, 0x1
lsls r0, 16
asrs r0, 16
movs r2, 0x12
ldrsh r1, [r4, r2]
bl sub_81D4834
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081D4912
cmp r6, 0x4
beq _081D4912
ldr r0, =gUnknown_030012FC
adds r0, r5, r0
movs r1, 0x4
strb r1, [r0]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
_081D4912:
movs r1, 0x10
ldrsh r0, [r4, r1]
ldrh r1, [r4, 0x12]
adds r1, 0x1
lsls r1, 16
asrs r1, 16
bl sub_81D4834
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x1
bne _081D493A
cmp r6, 0x1
beq _081D493A
ldr r0, =gUnknown_030012FC
adds r0, r5, r0
strb r1, [r0]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
_081D493A:
ldrh r0, [r4, 0x10]
subs r0, 0x1
lsls r0, 16
asrs r0, 16
movs r2, 0x12
ldrsh r1, [r4, r2]
bl sub_81D4834
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081D4964
cmp r6, 0x3
beq _081D4964
ldr r0, =gUnknown_030012FC
adds r0, r5, r0
movs r1, 0x3
strb r1, [r0]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
_081D4964:
cmp r5, 0x1
bhi _081D4974
ldr r0, =gUnknown_030012FC
b _081D4988
.pool
_081D4974:
ldr r4, =gUnknown_030012FC
ldr r0, =0x0000403a
bl VarGet
lsls r0, 16
lsrs r0, 16
adds r1, r5, 0
bl __modsi3
adds r0, r4
_081D4988:
ldrb r0, [r0]
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D4890
thumb_func_start sub_81D4998
sub_81D4998: @ 81D4998
push {r4,lr}
ldr r4, =0x0000403a
adds r0, r4, 0
bl VarGet
lsls r0, 16
lsrs r2, r0, 16
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, =0x0000391a
cmp r1, r0
bne _081D49E0
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
ldr r0, =0x0000270e
cmp r2, r0
bls _081D49D8
adds r0, r4, 0
movs r1, 0
bl VarSet
b _081D49E0
.pool
_081D49D8:
adds r0, r4, 0
adds r1, r2, 0
bl VarSet
_081D49E0:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81D4998
thumb_func_start EventObjectIsFarawayIslandMew
@ bool8 EventObjectIsFarawayIslandMew(struct npc_state *eventObject)
EventObjectIsFarawayIslandMew: @ 81D49E8
push {lr}
adds r2, r0, 0
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, =0x0000391a
cmp r1, r0
bne _081D4A0C
ldrb r0, [r2, 0x5]
cmp r0, 0xE5
bne _081D4A0C
movs r0, 0x1
b _081D4A0E
.pool
_081D4A0C:
movs r0, 0
_081D4A0E:
pop {r1}
bx r1
thumb_func_end EventObjectIsFarawayIslandMew
thumb_func_start IsMewPlayingHideAndSeek
IsMewPlayingHideAndSeek: @ 81D4A14
push {lr}
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, =0x0000391a
cmp r1, r0
bne _081D4A50
movs r0, 0xE5
lsls r0, 1
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081D4A50
ldr r0, =0x000002ce
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081D4A50
movs r0, 0x1
b _081D4A52
.pool
_081D4A50:
movs r0, 0
_081D4A52:
pop {r1}
bx r1
thumb_func_end IsMewPlayingHideAndSeek
thumb_func_start sub_81D4A58
sub_81D4A58: @ 81D4A58
push {r4,lr}
ldr r4, =0x0000403a
adds r0, r4, 0
bl VarGet
lsls r0, 16
ldr r1, =0xffff0000
cmp r0, r1
beq _081D4A88
adds r0, r4, 0
bl VarGet
lsls r0, 16
movs r1, 0xC0
lsls r1, 10
ands r1, r0
cmp r1, 0
bne _081D4A88
movs r0, 0x1
b _081D4A8A
.pool
_081D4A88:
movs r0, 0
_081D4A8A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81D4A58
thumb_func_start sub_81D4A90
sub_81D4A90: @ 81D4A90
push {r4-r6,lr}
sub sp, 0x4
bl sub_81D4258
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r0, =gEventObjects
adds r5, r1, r0
ldrb r1, [r5, 0x1]
movs r0, 0x21
negs r0, r0
ands r0, r1
strb r0, [r5, 0x1]
ldr r0, =gSpecialVar_0x8004
ldrh r4, [r0]
cmp r4, 0x1
bne _081D4AF8
ldrb r0, [r5, 0x3]
movs r1, 0x4
orrs r0, r1
strb r0, [r5, 0x3]
ldr r3, =gSprites
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x42
ldrb r2, [r0]
movs r1, 0x3F
ands r1, r2
movs r2, 0x80
orrs r1, r2
strb r1, [r0]
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x43
strb r4, [r0]
b _081D4BC4
.pool
_081D4AF8:
ldr r0, =0x0000403a
ldr r1, =0x0000ffff
bl VarSet
ldrb r0, [r5, 0x3]
movs r1, 0x4
orrs r0, r1
strb r0, [r5, 0x3]
ldr r6, =gSprites
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
adds r0, 0x42
ldrb r2, [r0]
movs r1, 0x3F
ands r1, r2
movs r2, 0x80
orrs r1, r2
strb r1, [r0]
ldr r0, =gSpecialVar_Facing
ldrh r0, [r0]
cmp r0, 0x2
beq _081D4B3A
ldrb r0, [r5, 0x4]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
adds r1, 0x43
movs r0, 0x1
strb r0, [r1]
_081D4B3A:
ldr r4, =gFieldEffectObjectPaletteInfo1
adds r0, r4, 0
bl LoadSpritePalette
ldrh r0, [r4, 0x4]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
bl UpdateSpritePaletteWithWeather
ldrh r1, [r5, 0x10]
mov r0, sp
strh r1, [r0]
ldrh r0, [r5, 0x12]
mov r4, sp
adds r4, 0x2
strh r0, [r4]
mov r0, sp
adds r1, r4, 0
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x3C]
mov r1, sp
movs r2, 0
ldrsh r1, [r1, r2]
movs r3, 0
ldrsh r2, [r4, r3]
ldrb r4, [r5, 0x4]
lsls r3, r4, 4
adds r3, r4
lsls r3, 2
adds r3, r6
adds r3, 0x43
ldrb r3, [r3]
subs r3, 0x1
lsls r3, 24
lsrs r3, 24
bl CreateSpriteAtEnd
ldr r1, =gUnknown_0203CF50
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x40
beq _081D4BC4
ldrb r0, [r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
adds r3, r1, 0
adds r3, 0x3E
ldrb r0, [r3]
movs r2, 0x2
orrs r0, r2
strb r0, [r3]
ldrb r2, [r1, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
movs r2, 0x8
orrs r0, r2
strb r0, [r1, 0x5]
ldr r0, =SpriteCallbackDummy
str r0, [r1, 0x1C]
_081D4BC4:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D4A90
thumb_func_start sub_81D4BEC
sub_81D4BEC: @ 81D4BEC
push {lr}
ldr r1, =gUnknown_0203CF50
ldrb r0, [r1]
cmp r0, 0x40
beq _081D4C06
adds r1, r0, 0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
bl DestroySprite
_081D4C06:
pop {r0}
bx r0
.pool
thumb_func_end sub_81D4BEC
thumb_func_start sub_81D4C14
sub_81D4C14: @ 81D4C14
push {r4,lr}
adds r2, r0, 0
lsls r1, 24
lsrs r4, r1, 24
ldr r0, =gUnknown_030012FA
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
ble _081D4C50
movs r1, 0x10
ldrsh r0, [r2, r1]
ldrh r1, [r2, 0x12]
subs r1, 0x1
lsls r1, 16
asrs r1, 16
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D4C50
ldr r0, =gUnknown_030012FC
adds r0, r4, r0
movs r1, 0x2
strb r1, [r0]
movs r0, 0x1
b _081D4C52
.pool
_081D4C50:
movs r0, 0
_081D4C52:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81D4C14
thumb_func_start sub_81D4C58
sub_81D4C58: @ 81D4C58
push {r4,lr}
adds r2, r0, 0
lsls r1, 24
lsrs r4, r1, 24
ldr r0, =gUnknown_030012F8
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bge _081D4C94
ldrh r0, [r2, 0x10]
adds r0, 0x1
lsls r0, 16
asrs r0, 16
movs r3, 0x12
ldrsh r1, [r2, r3]
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D4C94
ldr r0, =gUnknown_030012FC
adds r0, r4, r0
movs r1, 0x4
strb r1, [r0]
movs r0, 0x1
b _081D4C96
.pool
_081D4C94:
movs r0, 0
_081D4C96:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81D4C58
thumb_func_start sub_81D4C9C
sub_81D4C9C: @ 81D4C9C
push {r4,lr}
adds r2, r0, 0
lsls r1, 24
lsrs r4, r1, 24
ldr r0, =gUnknown_030012FA
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bge _081D4CD8
movs r1, 0x10
ldrsh r0, [r2, r1]
ldrh r1, [r2, 0x12]
adds r1, 0x1
lsls r1, 16
asrs r1, 16
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D4CD8
ldr r0, =gUnknown_030012FC
adds r0, r4, r0
movs r1, 0x1
strb r1, [r0]
movs r0, 0x1
b _081D4CDA
.pool
_081D4CD8:
movs r0, 0
_081D4CDA:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81D4C9C
thumb_func_start sub_81D4CE0
sub_81D4CE0: @ 81D4CE0
push {r4,lr}
adds r2, r0, 0
lsls r1, 24
lsrs r4, r1, 24
ldr r0, =gUnknown_030012F8
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
ble _081D4D1C
ldrh r0, [r2, 0x10]
subs r0, 0x1
lsls r0, 16
asrs r0, 16
movs r3, 0x12
ldrsh r1, [r2, r3]
bl sub_81D4834
lsls r0, 24
cmp r0, 0
beq _081D4D1C
ldr r0, =gUnknown_030012FC
adds r0, r4, r0
movs r1, 0x3
strb r1, [r0]
movs r0, 0x1
b _081D4D1E
.pool
_081D4D1C:
movs r0, 0
_081D4D1E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81D4CE0
thumb_func_start sub_81D4D24
sub_81D4D24: @ 81D4D24
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, =gUnknown_030012FC
ldr r0, =0x0000403a
bl VarGet
lsls r0, 16
lsrs r0, 16
adds r1, r4, 0
bl __modsi3
adds r0, r5
ldrb r0, [r0]
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D4D24
thumb_func_start sub_81D4D50
sub_81D4D50: @ 81D4D50
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
mov r8, r2
mov r1, sp
ldr r4, =0x04000208
ldrh r0, [r4]
strh r0, [r1]
movs r0, 0
strh r0, [r4]
ldr r1, =gIntrTable
ldr r0, =sub_81D3FAC
str r0, [r1, 0x4]
ldr r0, =sub_81D3F9C
str r0, [r1, 0x8]
bl sub_81D41A0
bl sub_81D4238
ldr r2, =0x04000200
ldrh r0, [r2]
movs r1, 0x4
orrs r0, r1
strh r0, [r2]
mov r0, sp
ldrh r0, [r0]
strh r0, [r4]
movs r0, 0
strh r0, [r5]
str r6, [r5, 0x4]
mov r0, r8
str r0, [r5, 0x8]
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D4D50
thumb_func_start sub_81D4DB8
sub_81D4DB8: @ 81D4DB8
push {r4,lr}
sub sp, 0x4
mov r1, sp
ldr r4, =0x04000208
ldrh r0, [r4]
strh r0, [r1]
movs r0, 0
strh r0, [r4]
bl sub_81D4238
bl sub_81D41F4
bl RestoreSerialTimer3IntrHandlers
mov r0, sp
ldrh r0, [r0]
strh r0, [r4]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D4DB8
thumb_func_start sub_81D4DE8
sub_81D4DE8: @ 81D4DE8
push {r4,r5,lr}
adds r4, r0, 0
movs r5, 0
ldr r1, [r4, 0x4]
ldr r2, [r4, 0x8]
movs r0, 0x1
movs r3, 0
bl sub_81D3D70
adds r1, r0, 0
strh r1, [r4]
movs r0, 0x13
ands r0, r1
cmp r0, 0x10
bne _081D4E08
movs r5, 0x1
_081D4E08:
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _081D4E12
movs r5, 0x2
_081D4E12:
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _081D4E1C
movs r5, 0x3
_081D4E1C:
ldr r1, =gShouldAdvanceLinkState
movs r0, 0
strb r0, [r1]
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D4DE8
thumb_func_start sub_81D4E30
sub_81D4E30: @ 81D4E30
push {lr}
ldr r0, =gDecompressionBuffer
movs r2, 0x80
lsls r2, 6
movs r1, 0
bl memset
ldr r1, =gLinkType
ldr r2, =0x00005503
adds r0, r2, 0
strh r0, [r1]
bl OpenLink
movs r0, 0x1
bl SetSuppressLinkErrorMessage
pop {r0}
bx r0
.pool
thumb_func_end sub_81D4E30
thumb_func_start sub_81D4E60
sub_81D4E60: @ 81D4E60
push {lr}
sub sp, 0xC
mov r1, sp
ldr r2, =0x04000208
ldrh r0, [r2]
strh r0, [r1]
movs r0, 0
strh r0, [r2]
ldr r0, =gLink+0x4
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x4]
str r1, [sp, 0x8]
mov r0, sp
ldrh r0, [r0]
strh r0, [r2]
add r2, sp, 0x4
ldrh r1, [r2]
ldr r0, =0x0000b9a0
cmp r1, r0
bne _081D4EB8
ldrh r1, [r2, 0x2]
ldr r0, =0x0000ccd0
cmp r1, r0
bne _081D4EB8
ldrh r1, [r2, 0x4]
ldr r0, =0x0000ffff
cmp r1, r0
bne _081D4EB8
ldrh r0, [r2, 0x6]
cmp r0, r1
bne _081D4EB8
movs r0, 0x1
b _081D4EBA
.pool
_081D4EB8:
movs r0, 0
_081D4EBA:
add sp, 0xC
pop {r1}
bx r1
thumb_func_end sub_81D4E60
thumb_func_start sub_81D4EC0
sub_81D4EC0: @ 81D4EC0
push {lr}
bl IsLinkMaster
lsls r0, 24
cmp r0, 0
beq _081D4EDC
bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _081D4EDC
movs r0, 0x1
b _081D4EDE
_081D4EDC:
movs r0, 0
_081D4EDE:
pop {r1}
bx r1
thumb_func_end sub_81D4EC0
thumb_func_start sub_81D4EE4
sub_81D4EE4: @ 81D4EE4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4]
subs r0, 0x3
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bhi _081D4F08
bl HasLinkErrorOccurred
lsls r0, 24
cmp r0, 0
beq _081D4F08
movs r0, 0
strb r0, [r4]
movs r0, 0x3
b _081D500E
_081D4F08:
ldrb r0, [r4]
cmp r0, 0x5
bls _081D4F10
b _081D500C
_081D4F10:
lsls r0, 2
ldr r1, =_081D4F20
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081D4F20:
.4byte _081D4F38
.4byte _081D4F54
.4byte _081D4F6C
.4byte _081D4FA0
.4byte _081D4FEC
.4byte _081D4FF8
_081D4F38:
bl IsLinkMaster
lsls r0, 24
cmp r0, 0
beq _081D4F88
bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _081D4F88
movs r0, 0x1
strb r0, [r4]
b _081D500C
_081D4F54:
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x5
bls _081D500C
movs r0, 0
strh r0, [r5]
movs r0, 0x2
strb r0, [r4]
b _081D500C
_081D4F6C:
bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _081D4F88
movs r0, 0x49
bl PlaySE
bl sub_800A620
movs r0, 0
strh r0, [r5]
b _081D4FE6
_081D4F88:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081D500C
movs r0, 0
strb r0, [r4]
movs r0, 0x1
b _081D500E
.pool
_081D4FA0:
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1E
bls _081D4FB6
movs r0, 0
strb r0, [r4]
movs r0, 0x5
b _081D500E
_081D4FB6:
bl IsLinkConnectionEstablished
lsls r0, 24
cmp r0, 0
beq _081D500C
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
beq _081D4FE6
bl IsLinkPlayerDataExchangeComplete
lsls r0, 24
cmp r0, 0
beq _081D4FE0
movs r0, 0
strb r0, [r4]
movs r0, 0x2
b _081D500E
.pool
_081D4FE0:
movs r0, 0x4
strb r0, [r4]
b _081D500C
_081D4FE6:
movs r0, 0x3
strb r0, [r4]
b _081D500C
_081D4FEC:
movs r0, 0
bl sub_800ABF4
movs r0, 0x5
strb r0, [r4]
b _081D500C
_081D4FF8:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _081D500C
strb r0, [r4]
movs r0, 0x4
b _081D500E
.pool
_081D500C:
movs r0, 0
_081D500E:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81D4EE4
thumb_func_start sub_81D5014
sub_81D5014: @ 81D5014
push {r4,lr}
ldr r0, =sub_81D5084
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
movs r0, 0
strb r0, [r4, 0x8]
strb r0, [r4, 0x9]
strb r0, [r4, 0xA]
strb r0, [r4, 0xB]
strb r0, [r4, 0xC]
strb r0, [r4, 0xD]
movs r1, 0
strh r0, [r4]
strh r0, [r4, 0x2]
strh r0, [r4, 0x4]
strh r0, [r4, 0x6]
strb r1, [r4, 0xE]
movs r0, 0x40
bl AllocZeroed
str r0, [r4, 0x10]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D5014
thumb_func_start sub_81D505C
sub_81D505C: @ 81D505C
movs r1, 0
strh r1, [r0]
bx lr
thumb_func_end sub_81D505C
thumb_func_start sub_81D5064
sub_81D5064: @ 81D5064
push {lr}
adds r2, r0, 0
lsls r1, 16
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
lsls r0, 16
cmp r0, r1
bhi _081D507A
movs r0, 0
b _081D5080
_081D507A:
movs r0, 0
strh r0, [r2]
movs r0, 0x1
_081D5080:
pop {r1}
bx r1
thumb_func_end sub_81D5064
thumb_func_start sub_81D5084
sub_81D5084: @ 81D5084
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
ldrb r0, [r4, 0x8]
cmp r0, 0x1A
bls _081D509C
b _081D548A
_081D509C:
lsls r0, 2
ldr r1, =_081D50B0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081D50B0:
.4byte _081D511C
.4byte _081D5138
.4byte _081D5148
.4byte _081D515C
.4byte _081D516C
.4byte _081D5198
.4byte _081D51D0
.4byte _081D524C
.4byte _081D5268
.4byte _081D5290
.4byte _081D52AC
.4byte _081D52DC
.4byte _081D52F2
.4byte _081D5308
.4byte _081D536A
.4byte _081D5390
.4byte _081D53A8
.4byte _081D53C6
.4byte _081D53F2
.4byte _081D5418
.4byte _081D5448
.4byte _081D5454
.4byte _081D5460
.4byte _081D5430
.4byte _081D548A
.4byte _081D548A
.4byte _081D5478
_081D511C:
adds r0, r4, 0
adds r0, 0x9
ldr r1, =gUnknown_085EDFD6
bl mevent_0814257C
cmp r0, 0
bne _081D512C
b _081D548A
_081D512C:
movs r0, 0x1
strb r0, [r4, 0x8]
b _081D548A
.pool
_081D5138:
bl sub_81D4E30
adds r0, r4, 0
bl sub_81D505C
movs r0, 0x2
strb r0, [r4, 0x8]
b _081D548A
_081D5148:
adds r0, r4, 0
movs r1, 0xA
bl sub_81D5064
cmp r0, 0
bne _081D5156
b _081D548A
_081D5156:
movs r0, 0x3
strb r0, [r4, 0x8]
b _081D548A
_081D515C:
bl sub_81D4EC0
cmp r0, 0
beq _081D5166
b _081D52FC
_081D5166:
bl CloseLink
b _081D525C
_081D516C:
adds r0, r4, 0
adds r0, 0x9
ldr r1, =gUnknown_085EDFF5
bl mevent_0814257C
cmp r0, 0
bne _081D517C
b _081D548A
_081D517C:
ldr r0, =gUnknown_085EE014
bl sub_8018884
adds r0, r4, 0
bl sub_81D505C
movs r0, 0x5
strb r0, [r4, 0x8]
b _081D548A
.pool
_081D5198:
adds r0, r4, 0
movs r1, 0x5A
bl sub_81D5064
cmp r0, 0
beq _081D51AE
bl sub_81D4E30
movs r0, 0x6
strb r0, [r4, 0x8]
b _081D548A
_081D51AE:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _081D51BC
b _081D548A
_081D51BC:
adds r0, r4, 0
bl sub_81D505C
movs r0, 0x5
bl PlaySE
b _081D535A
.pool
_081D51D0:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081D51F4
movs r0, 0x5
bl PlaySE
bl CloseLink
adds r0, r4, 0
bl sub_81D505C
b _081D535A
.pool
_081D51F4:
bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _081D5210
adds r0, r4, 0
bl sub_81D505C
bl CloseLink
movs r0, 0x7
strb r0, [r4, 0x8]
b _081D548A
_081D5210:
bl sub_81D4E60
cmp r0, 0
beq _081D522E
movs r0, 0x5
bl PlaySE
bl CloseLink
adds r0, r4, 0
bl sub_81D505C
movs r0, 0x8
strb r0, [r4, 0x8]
b _081D548A
_081D522E:
adds r0, r4, 0
movs r1, 0xA
bl sub_81D5064
cmp r0, 0
bne _081D523C
b _081D548A
_081D523C:
bl CloseLink
bl sub_81D4E30
adds r0, r4, 0
bl sub_81D505C
b _081D548A
_081D524C:
adds r0, r4, 0
adds r0, 0x9
ldr r1, =gUnknown_085EE05C
bl mevent_0814257C
cmp r0, 0
bne _081D525C
b _081D548A
_081D525C:
movs r0, 0x4
strb r0, [r4, 0x8]
b _081D548A
.pool
_081D5268:
ldr r0, =gUnknown_085EE097
bl sub_8018884
ldr r0, =gUnknown_03006370
ldr r1, =gMultiBootProgram_BerryGlitchFix_Start
ldr r2, =gUnknown_089A3470
subs r1, r2
bl sub_81D4D50
movs r0, 0x9
strb r0, [r4, 0x8]
b _081D548A
.pool
_081D5290:
ldr r0, =gUnknown_03006370
bl sub_81D4DE8
strb r0, [r4, 0xE]
lsls r0, 24
cmp r0, 0
bne _081D52A0
b _081D548A
_081D52A0:
movs r0, 0xA
strb r0, [r4, 0x8]
b _081D548A
.pool
_081D52AC:
ldr r0, =gUnknown_03006370
bl sub_81D4DB8
ldrb r0, [r4, 0xE]
cmp r0, 0x3
bne _081D52BA
b _081D53C0
_081D52BA:
cmp r0, 0x1
beq _081D52C0
b _081D546E
_081D52C0:
adds r0, r4, 0
bl sub_81D505C
ldr r0, =gUnknown_085EE120
bl sub_8018884
movs r0, 0xB
strb r0, [r4, 0x8]
b _081D548A
.pool
_081D52DC:
movs r1, 0xD2
lsls r1, 2
adds r0, r4, 0
bl sub_81D5064
cmp r0, 0
bne _081D52EC
b _081D548A
_081D52EC:
movs r0, 0xC
strb r0, [r4, 0x8]
b _081D548A
_081D52F2:
bl sub_81D4E30
ldr r0, =gUnknown_085EE0DC
bl sub_8018884
_081D52FC:
movs r0, 0xD
strb r0, [r4, 0x8]
b _081D548A
.pool
_081D5308:
adds r0, r4, 0
adds r0, 0x9
adds r1, r4, 0
bl sub_81D4EE4
cmp r0, 0x5
bls _081D5318
b _081D548A
_081D5318:
lsls r0, 2
ldr r1, =_081D5328
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081D5328:
.4byte _081D548A
.4byte _081D5350
.4byte _081D5340
.4byte _081D5374
.4byte _081D5374
.4byte _081D5360
_081D5340:
ldr r0, =gUnknown_085EE097
bl sub_8018884
movs r0, 0xE
strb r0, [r4, 0x8]
b _081D548A
.pool
_081D5350:
movs r0, 0x5
bl PlaySE
bl CloseLink
_081D535A:
movs r0, 0x17
strb r0, [r4, 0x8]
b _081D548A
_081D5360:
bl CloseLink
movs r0, 0x15
strb r0, [r4, 0x8]
b _081D548A
_081D536A:
bl HasLinkErrorOccurred
lsls r0, 24
cmp r0, 0
beq _081D537A
_081D5374:
bl CloseLink
b _081D53C0
_081D537A:
bl GetBlockReceivedStatus
lsls r0, 24
cmp r0, 0
bne _081D5386
b _081D548A
_081D5386:
bl ResetBlockReceivedFlags
movs r0, 0xF
strb r0, [r4, 0x8]
b _081D548A
_081D5390:
ldr r0, =gDecompressionBuffer
bl sub_81D3920
strb r0, [r4, 0xE]
ldrb r0, [r4, 0xE]
bl sub_800ABF4
movs r0, 0x10
strb r0, [r4, 0x8]
b _081D548A
.pool
_081D53A8:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _081D548A
ldrb r0, [r4, 0xE]
cmp r0, 0x1
bne _081D53C0
movs r0, 0x11
strb r0, [r4, 0x8]
b _081D548A
.pool
_081D53C0:
movs r0, 0x14
strb r0, [r4, 0x8]
b _081D548A
_081D53C6:
ldr r0, =gDecompressionBuffer
bl sub_81D3AB0
cmp r0, 0
beq _081D53EC
ldr r0, =gUnknown_085EE0FA
bl sub_8018884
adds r0, r4, 0
bl sub_81D505C
movs r0, 0x12
strb r0, [r4, 0x8]
b _081D548A
.pool
_081D53EC:
movs r0, 0x16
strb r0, [r4, 0x8]
b _081D548A
_081D53F2:
adds r0, r4, 0
movs r1, 0x78
bl sub_81D5064
cmp r0, 0
beq _081D548A
ldr r0, =gUnknown_085EE107
bl sub_8018884
movs r0, 0xB9
lsls r0, 1
bl PlayFanfare
movs r0, 0x13
strb r0, [r4, 0x8]
b _081D548A
.pool
_081D5418:
bl IsFanfareTaskInactive
lsls r0, 24
cmp r0, 0
beq _081D548A
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
b _081D543A
.pool
_081D5430:
adds r0, r4, 0
adds r0, 0x9
ldr r1, =gUnknown_085EE06B
bl mevent_0814257C
_081D543A:
cmp r0, 0
beq _081D548A
movs r0, 0x1A
strb r0, [r4, 0x8]
b _081D548A
.pool
_081D5448:
adds r0, r4, 0
adds r0, 0x9
ldr r1, =gUnknown_085EE0A3
b _081D5466
.pool
_081D5454:
adds r0, r4, 0
adds r0, 0x9
ldr r1, =gUnknown_085EE0BF
b _081D5466
.pool
_081D5460:
adds r0, r4, 0
adds r0, 0x9
ldr r1, =gUnknown_085EE12D
_081D5466:
bl mevent_0814257C
cmp r0, 0
beq _081D548A
_081D546E:
movs r0, 0
strb r0, [r4, 0x8]
b _081D548A
.pool
_081D5478:
ldr r0, [r4, 0x10]
bl Free
adds r0, r5, 0
bl DestroyTask
ldr r0, =sub_80186A4
bl SetMainCallback2
_081D548A:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D5084
thumb_func_start sp194_trainer_tower
sp194_trainer_tower: @ 81D5494
push {lr}
bl sub_81D56B0
ldr r1, =gUnknown_0862A618
ldr r0, =gSpecialVar_0x8004
ldrh r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
bl sub_81D5710
pop {r0}
bx r0
.pool
thumb_func_end sp194_trainer_tower
thumb_func_start sub_81D54BC
sub_81D54BC: @ 81D54BC
push {r4-r6,lr}
ldr r4, =gSaveBlock2Ptr
ldr r1, [r4]
ldr r3, =0x00000ef9
adds r1, r3
ldrb r2, [r1]
movs r0, 0x7F
ands r0, r2
strb r0, [r1]
ldr r1, [r4]
adds r1, r3
ldrb r2, [r1]
movs r0, 0x80
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r2, =gSaveBlock1Ptr
ldr r0, [r2]
ldr r1, =0x00003d68
adds r0, r1
movs r1, 0
str r1, [r0]
adds r6, r2, 0
ldr r5, =0x00003718
movs r4, 0x3
_081D54EE:
ldr r0, [r6]
adds r0, r5
ldr r1, =0x00034bbf
bl sub_81D5DF4
adds r5, 0x4
subs r4, 0x1
cmp r4, 0
bge _081D54EE
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D54BC
thumb_func_start sub_81D5520
sub_81D5520: @ 81D5520
ldr r0, =gMapHeader
ldrb r0, [r0, 0x12]
adds r0, 0x61
lsls r0, 24
lsrs r0, 24
bx lr
.pool
thumb_func_end sub_81D5520
thumb_func_start sub_81D5530
sub_81D5530: @ 81D5530
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
ldr r2, =gFacilityClassToTrainerClass
ldr r1, =gUnknown_0203CF58
ldr r1, [r1]
adds r1, 0x16
adds r1, r0
ldrb r0, [r1]
adds r0, r2
ldrb r0, [r0]
bx lr
.pool
thumb_func_end sub_81D5530
thumb_func_start sub_81D5554
sub_81D5554: @ 81D5554
push {r4,lr}
adds r4, r0, 0
lsls r1, 24
movs r0, 0xFF
lsls r0, 24
adds r1, r0
lsrs r1, 24
movs r3, 0
ldr r0, =gUnknown_0203CF58
ldr r2, [r0]
movs r0, 0xB
muls r0, r1
adds r2, r0, r2
_081D556E:
adds r1, r4, r3
ldrb r0, [r2]
strb r0, [r1]
adds r2, 0x1
adds r3, 0x1
cmp r3, 0xA
ble _081D556E
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D5554
thumb_func_start sub_81D5588
sub_81D5588: @ 81D5588
push {r4,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
bl sub_81D56B0
subs r4, 0x1
lsls r4, 24
lsrs r4, 24
ldr r0, =gUnknown_0203CF54
ldr r3, [r0]
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r4
ldrb r2, [r3]
lsls r0, r2, 4
subs r0, r2
lsls r0, 3
subs r0, r2
adds r0, r1
lsls r0, 3
adds r3, r0
ldrb r4, [r3, 0x1B]
bl sub_81D5710
ldr r0, =gFacilityClassToPicIndex
adds r4, r0
ldrb r0, [r4]
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D5588
thumb_func_start sub_81D55D0
sub_81D55D0: @ 81D55D0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
bl sub_81D56B0
ldr r4, =gUnknown_0203CF58
movs r0, 0x18
bl AllocZeroed
str r0, [r4]
movs r6, 0
ldr r0, =gUnknown_0203CF54
mov r10, r0
_081D55EE:
movs r5, 0
lsls r1, r6, 2
mov r8, r1
adds r0, r6, 0x1
mov r9, r0
movs r0, 0xB
adds r1, r6, 0
muls r1, r0
mov r12, r1
mov r1, r8
adds r0, r1, r6
lsls r0, 3
adds r0, r6
lsls r7, r0, 3
_081D560A:
ldr r0, =gUnknown_0203CF58
ldr r4, [r0]
mov r1, r12
adds r0, r5, r1
adds r4, r0
mov r0, r10
ldr r2, [r0]
adds r3, r5, r7
ldrb r1, [r2]
lsls r0, r1, 4
subs r0, r1
lsls r0, 3
subs r0, r1
lsls r0, 3
adds r3, r0
adds r2, 0x10
adds r2, r3
ldrb r0, [r2]
strb r0, [r4]
adds r5, 0x1
cmp r5, 0xA
ble _081D560A
ldr r1, =gUnknown_0203CF58
ldr r4, [r1]
adds r4, 0x16
adds r4, r6
mov r0, r10
ldr r3, [r0]
mov r1, r8
adds r2, r1, r6
lsls r2, 3
adds r2, r6
ldrb r1, [r3]
lsls r0, r1, 4
subs r0, r1
lsls r0, 3
subs r0, r1
adds r0, r2
lsls r0, 3
adds r3, r0
ldrb r0, [r3, 0x1B]
strb r0, [r4]
mov r6, r9
cmp r6, 0x1
ble _081D55EE
ldr r1, =gSaveBlock1Ptr
ldr r0, [r1]
ldr r1, =0x00003d64
adds r0, r1
bl sub_80008DC
bl sub_81D5710
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D55D0
thumb_func_start sub_81D5694
sub_81D5694: @ 81D5694
push {r4,lr}
ldr r4, =gUnknown_0203CF58
ldr r0, [r4]
cmp r0, 0
beq _081D56A6
bl Free
movs r0, 0
str r0, [r4]
_081D56A6:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D5694
thumb_func_start sub_81D56B0
sub_81D56B0: @ 81D56B0
push {r4,lr}
ldr r4, =gUnknown_0203CF54
ldr r0, [r4]
cmp r0, 0
bne _081D56EC
ldr r0, =0x00000eec
bl AllocZeroed
str r0, [r4]
ldr r1, =gMapHeader
ldrb r1, [r1, 0x12]
adds r1, 0x61
strb r1, [r0]
ldr r1, =gUnknown_0862A5F8
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, =0x00003d6e
adds r0, r2
ldrb r0, [r0]
lsrs r0, 6
lsls r0, 2
adds r0, r1
ldr r0, [r0]
ldr r1, [r4]
adds r1, 0x4
ldr r2, =0x040003ba
bl CpuSet
bl nullsub_2
_081D56EC:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D56B0
thumb_func_start sub_81D5710
sub_81D5710: @ 81D5710
push {r4,lr}
ldr r4, =gUnknown_0203CF54
ldr r0, [r4]
cmp r0, 0
beq _081D5722
bl Free
movs r0, 0
str r0, [r4]
_081D5722:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D5710
thumb_func_start sub_81D572C
sub_81D572C: @ 81D572C
push {r4-r6,lr}
adds r4, r1, 0
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
lsls r4, 16
lsrs r4, 16
bl sub_81D56B0
bl sub_81D5520
lsls r0, 24
lsrs r2, r0, 24
subs r4, 0x1
lsls r4, 24
lsrs r4, 24
cmp r5, 0x3
beq _081D5790
cmp r5, 0x3
bgt _081D575A
cmp r5, 0x2
beq _081D5764
b _081D580E
_081D575A:
cmp r6, 0x4
beq _081D57BC
cmp r6, 0x5
beq _081D57E8
b _081D580E
_081D5764:
ldr r0, =gUnknown_0203CF54
lsls r1, r2, 4
subs r1, r2
lsls r1, 3
subs r1, r2
lsls r1, 3
adds r1, 0xC
ldr r0, [r0]
adds r0, r1
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r4
lsls r1, 3
adds r1, 0x4
adds r0, r1
adds r0, 0x10
bl ConvertBattleFrontierTrainerSpeechToString
b _081D580E
.pool
_081D5790:
ldr r0, =gUnknown_0203CF54
lsls r1, r2, 4
subs r1, r2
lsls r1, 3
subs r1, r2
lsls r1, 3
adds r1, 0xC
ldr r0, [r0]
adds r0, r1
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r4
lsls r1, 3
adds r1, 0x4
adds r0, r1
adds r0, 0x1C
bl ConvertBattleFrontierTrainerSpeechToString
b _081D580E
.pool
_081D57BC:
ldr r0, =gUnknown_0203CF54
lsls r1, r2, 4
subs r1, r2
lsls r1, 3
subs r1, r2
lsls r1, 3
adds r1, 0xC
ldr r0, [r0]
adds r0, r1
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r4
lsls r1, 3
adds r1, 0x4
adds r0, r1
adds r0, 0x28
bl ConvertBattleFrontierTrainerSpeechToString
b _081D580E
.pool
_081D57E8:
ldr r0, =gUnknown_0203CF54
lsls r1, r2, 4
subs r1, r2
lsls r1, 3
subs r1, r2
lsls r1, 3
adds r1, 0xC
ldr r0, [r0]
adds r0, r1
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r4
lsls r1, 3
adds r1, 0x4
adds r0, r1
adds r0, 0x34
bl ConvertBattleFrontierTrainerSpeechToString
_081D580E:
bl sub_81D5710
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D572C
thumb_func_start sub_81D581C
sub_81D581C: @ 81D581C
push {r4-r6,lr}
bl nullsub_2
bl sub_81D3B34
cmp r0, 0
bne _081D5844
ldr r3, =gSaveBlock1Ptr
ldr r1, [r3]
ldr r0, =0x00003d6e
adds r1, r0
ldrb r0, [r1]
movs r2, 0x20
orrs r0, r2
b _081D5854
.pool
_081D5844:
ldr r3, =gSaveBlock1Ptr
ldr r1, [r3]
ldr r0, =0x00003d6e
adds r1, r0
ldrb r2, [r1]
movs r0, 0x21
negs r0, r0
ands r0, r2
_081D5854:
strb r0, [r1]
adds r6, r3, 0
ldr r0, [r6]
ldr r1, =0x00003d6c
adds r0, r1
movs r5, 0
strb r5, [r0]
ldr r0, [r6]
ldr r4, =0x00003d64
adds r0, r4
bl sub_80008DC
ldr r1, [r6]
adds r4, r1, r4
str r5, [r4]
ldr r3, =0x00003d6e
adds r1, r3
ldrb r2, [r1]
movs r0, 0x5
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r1, [r6]
adds r1, r3
ldrb r2, [r1]
movs r0, 0x3
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r1, [r6]
adds r1, r3
ldrb r2, [r1]
movs r0, 0x11
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
movs r1, 0xEE
lsls r1, 4
adds r0, r1
strb r5, [r0]
ldr r0, =gBattleOutcome
strb r5, [r0]
ldr r1, [r6]
adds r1, r3
ldrb r2, [r1]
movs r0, 0x2
negs r0, r0
ands r0, r2
strb r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D581C
thumb_func_start sub_81D58D8
sub_81D58D8: @ 81D58D8
push {lr}
bl sub_80008E8
ldr r3, =gSpecialVar_Result
movs r0, 0
strh r0, [r3]
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00003d6e
adds r2, r0, r1
ldrb r1, [r2]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _081D58FA
movs r0, 0x1
strh r0, [r3]
_081D58FA:
ldrb r1, [r2]
movs r0, 0x3
ands r0, r1
cmp r0, 0x3
bne _081D590A
ldrh r0, [r3]
adds r0, 0x1
strh r0, [r3]
_081D590A:
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
pop {r0}
bx r0
.pool
thumb_func_end sub_81D58D8
thumb_func_start sub_81D5924
sub_81D5924: @ 81D5924
push {r4-r7,lr}
mov r7, r8
push {r7}
bl sub_81D6640
lsls r0, 16
lsrs r5, r0, 16
ldr r0, =gUnknown_0203CF54
ldr r0, [r0]
ldrb r0, [r0, 0x6]
cmp r0, 0x4
bne _081D5952
ldr r0, =gSaveBlock1Ptr
mov r8, r0
ldr r0, [r0]
ldr r7, =0x00003d6e
adds r0, r7
ldrb r0, [r0]
movs r6, 0x1
adds r4, r6, 0
ands r4, r0
cmp r4, 0
beq _081D596C
_081D5952:
ldr r1, =gSpecialVar_Result
movs r0, 0x2
strh r0, [r1]
b _081D59C0
.pool
_081D596C:
adds r0, r5, 0
movs r1, 0x1
bl AddBagItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081D59BC
ldr r1, =gStringVar2
adds r0, r5, 0
bl CopyItemName
mov r0, r8
ldr r1, [r0]
adds r1, r7
ldrb r0, [r1]
movs r2, 0x1
orrs r0, r2
strb r0, [r1]
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0x00000ef9
adds r1, r0
ldrb r2, [r1]
movs r0, 0x80
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r0, =gSpecialVar_Result
strh r4, [r0]
b _081D59C0
.pool
_081D59BC:
ldr r0, =gSpecialVar_Result
strh r6, [r0]
_081D59C0:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D5924
thumb_func_start sub_81D59D0
sub_81D59D0: @ 81D59D0
push {r4-r6,lr}
ldr r4, =gSaveBlock1Ptr
ldr r2, [r4]
ldr r6, =0x00003d6e
adds r0, r2, r6
ldrb r1, [r0]
movs r3, 0x2
adds r0, r3, 0
ands r0, r1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
beq _081D59FC
ldr r0, =gSpecialVar_Result
strh r3, [r0]
b _081D5A4E
.pool
_081D59FC:
ldr r1, =0x00003d68
adds r0, r2, r1
bl free_203F458
ldr r2, [r4]
ldr r3, =0x00003d64
adds r1, r2, r3
ldr r1, [r1]
cmp r0, r1
bls _081D5A48
adds r3, 0x4
adds r0, r2, r3
bl sub_81D5DF4
ldr r2, [r4]
adds r0, r2, r6
ldrb r0, [r0]
lsrs r0, 6
lsls r0, 2
ldr r3, =0x00003718
adds r1, r2, r3
adds r1, r0
ldr r0, =0x00003d68
adds r2, r0
ldr r0, [r2]
str r0, [r1]
ldr r0, =gSpecialVar_Result
strh r5, [r0]
b _081D5A4E
.pool
_081D5A48:
ldr r1, =gSpecialVar_Result
movs r0, 0x1
strh r0, [r1]
_081D5A4E:
ldr r0, =gSaveBlock1Ptr
ldr r1, [r0]
ldr r3, =0x00003d6e
adds r1, r3
ldrb r0, [r1]
movs r2, 0x2
orrs r0, r2
strb r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D59D0
thumb_func_start sub_81D5A70
sub_81D5A70: @ 81D5A70
push {lr}
ldr r0, =gSaveBlock1Ptr
ldr r2, [r0]
ldr r1, =0x00003d6e
adds r0, r2, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
bne _081D5AAE
ldr r0, =0x00003d64
adds r2, r0
ldr r1, [r2]
ldr r0, =0x00034bbe
cmp r1, r0
bls _081D5AA8
adds r0, 0x1
str r0, [r2]
b _081D5AAE
.pool
_081D5AA8:
adds r0, r2, 0
bl sub_80008DC
_081D5AAE:
pop {r0}
bx r0
thumb_func_end sub_81D5A70
thumb_func_start sub_81D5AB4
sub_81D5AB4: @ 81D5AB4
ldr r0, =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, =0x00003d6e
adds r1, r0
ldrb r0, [r1]
movs r2, 0x8
orrs r0, r2
strb r0, [r1]
bx lr
.pool
thumb_func_end sub_81D5AB4
thumb_func_start sub_81D5AD0
sub_81D5AD0: @ 81D5AD0
push {lr}
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00003d6e
adds r2, r0, r1
ldrb r1, [r2]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _081D5B00
movs r0, 0x9
negs r0, r0
ands r0, r1
strb r0, [r2]
ldr r1, =gSpecialVar_Result
movs r0, 0
b _081D5B20
.pool
_081D5B00:
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _081D5B1C
movs r0, 0x11
negs r0, r0
ands r0, r1
strb r0, [r2]
ldr r1, =gSpecialVar_Result
movs r0, 0x1
b _081D5B20
.pool
_081D5B1C:
ldr r1, =gSpecialVar_Result
movs r0, 0x2
_081D5B20:
strh r0, [r1]
pop {r0}
bx r0
.pool
thumb_func_end sub_81D5AD0
thumb_func_start sub_81D5B2C
sub_81D5B2C: @ 81D5B2C
push {r4-r7,lr}
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00003d64
adds r0, r1
ldr r7, [r0]
ldr r0, =0x00034bbe
cmp r7, r0
ble _081D5B40
ldr r7, =0x00034bbf
_081D5B40:
movs r4, 0xE1
lsls r4, 4
adds r0, r7, 0
adds r1, r4, 0
bl __divsi3
adds r6, r0, 0
adds r0, r7, 0
adds r1, r4, 0
bl __modsi3
adds r7, r0, 0
movs r1, 0x3C
bl __divsi3
adds r5, r0, 0
adds r0, r7, 0
movs r1, 0x3C
bl __modsi3
adds r7, r0, 0
movs r0, 0xA8
muls r0, r7
movs r1, 0x64
bl __divsi3
adds r4, r0, 0
ldr r0, =gStringVar1
adds r1, r6, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r0, =gStringVar2
adds r1, r5, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r0, =gStringVar3
adds r1, r4, 0
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D5B2C
thumb_func_start sub_81D5BBC
sub_81D5BBC: @ 81D5BBC
push {lr}
bl sub_81D56B0
ldr r0, =gUnknown_0203CF54
ldr r1, [r0]
ldrb r0, [r1, 0x6]
cmp r0, 0x4
beq _081D5BEC
ldr r0, =gStringVar1
ldrb r1, [r1, 0x6]
movs r2, 0
movs r3, 0x1
bl ConvertIntToDecimalStringN
ldr r1, =gSpecialVar_Result
movs r0, 0
b _081D5BF0
.pool
_081D5BEC:
ldr r1, =gSpecialVar_Result
movs r0, 0x1
_081D5BF0:
strh r0, [r1]
bl sub_81D5710
pop {r0}
bx r0
.pool
thumb_func_end sub_81D5BBC
thumb_func_start sub_81D5C00
sub_81D5C00: @ 81D5C00
push {lr}
bl sub_81D56B0
ldr r1, =gSpecialVar_Result
movs r0, 0
strh r0, [r1]
bl sub_81D5710
pop {r0}
bx r0
.pool
thumb_func_end sub_81D5C00
thumb_func_start sub_81D5C18
sub_81D5C18: @ 81D5C18
push {lr}
ldr r0, =0x000040d6
bl VarGet
lsls r0, 16
cmp r0, 0
beq _081D5C42
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00003d6e
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
bne _081D5C42
bl GetCurrentTrainerHillMapId
lsls r0, 24
cmp r0, 0
bne _081D5C54
_081D5C42:
movs r0, 0
b _081D5C56
.pool
_081D5C54:
movs r0, 0x1
_081D5C56:
pop {r1}
bx r1
thumb_func_end sub_81D5C18
thumb_func_start sub_81D5C5C
sub_81D5C5C: @ 81D5C5C
push {lr}
bl sub_81D5C18
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _081D5C74
ldr r0, =gSpecialVar_Result
strh r1, [r0]
b _081D5C7A
.pool
_081D5C74:
ldr r1, =gSpecialVar_Result
movs r0, 0x1
strh r0, [r1]
_081D5C7A:
pop {r0}
bx r0
.pool
thumb_func_end sub_81D5C5C
thumb_func_start nullsub_129
nullsub_129: @ 81D5C84
bx lr
thumb_func_end nullsub_129
thumb_func_start nullsub_2
nullsub_2: @ 81D5C88
bx lr
thumb_func_end nullsub_2
thumb_func_start PrintOnTrainerHillRecordsWindow
PrintOnTrainerHillRecordsWindow: @ 81D5C8C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
bl sub_81D56B0
movs r0, 0
movs r1, 0
bl FillWindowPixelBuffer
ldr r5, =gText_TimeBoard
movs r0, 0x1
adds r1, r5, 0
movs r2, 0xD0
bl GetStringCenterAlignXOffset
lsls r2, r0, 24
lsrs r2, 24
ldr r6, =gUnknown_0862A5F4
str r6, [sp]
movs r4, 0x1
negs r4, r4
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x1
movs r3, 0x2
bl AddTextPrinterParameterized3
movs r7, 0x12
movs r0, 0
mov r8, r0
mov r10, r4
ldr r1, =gStringVar4
mov r9, r1
_081D5CD6:
lsls r3, r7, 24
lsrs r3, 24
ldr r0, =gUnknown_0862A5F4
str r0, [sp]
mov r1, r10
str r1, [sp, 0x4]
ldr r0, =gUnknown_0862A660
mov r1, r8
lsls r4, r1, 2
adds r0, r4, r0
ldr r0, [r0]
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0x1
movs r2, 0
bl AddTextPrinterParameterized3
adds r7, 0xF
ldr r0, =gSaveBlock1Ptr
ldr r1, =0x00003718
adds r4, r1
ldr r0, [r0]
adds r0, r4
bl free_203F458
adds r4, r0, 0
movs r5, 0xE1
lsls r5, 4
adds r1, r5, 0
bl __udivsi3
adds r6, r0, 0
adds r0, r4, 0
adds r1, r5, 0
bl __umodsi3
adds r5, r0, 0
ldr r0, =gStringVar1
adds r1, r6, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
adds r0, r5, 0
movs r1, 0x3C
bl __udivsi3
adds r4, r0, 0
adds r0, r5, 0
movs r1, 0x3C
bl __umodsi3
adds r5, r0, 0
ldr r0, =gStringVar2
adds r1, r4, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
movs r0, 0xA8
muls r0, r5
movs r1, 0x64
bl __udivsi3
adds r1, r0, 0
ldr r0, =gStringVar3
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
mov r0, r9
ldr r1, =gText_TimeCleared
bl StringCopy
ldr r1, =gText_XMinYDotZSec
bl StringExpandPlaceholders
movs r0, 0x1
mov r1, r9
movs r2, 0xD0
bl GetStringRightAlignXOffset
lsls r2, r0, 24
lsrs r2, 24
lsls r3, r7, 24
lsrs r3, 24
ldr r0, =gUnknown_0862A5F4
str r0, [sp]
mov r1, r10
str r1, [sp, 0x4]
mov r0, r9
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0x1
bl AddTextPrinterParameterized3
adds r7, 0x11
movs r1, 0x1
add r8, r1
mov r0, r8
cmp r0, 0x3
ble _081D5CD6
movs r0, 0
bl PutWindowTilemap
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
bl sub_81D5710
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end PrintOnTrainerHillRecordsWindow
thumb_func_start free_203F458
free_203F458: @ 81D5DF0
ldr r0, [r0]
bx lr
thumb_func_end free_203F458
thumb_func_start sub_81D5DF4
sub_81D5DF4: @ 81D5DF4
str r1, [r0]
bx lr
thumb_func_end sub_81D5DF4
thumb_func_start sub_81D5DF8
sub_81D5DF8: @ 81D5DF8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xC7
lsls r1, 4
adds r1, r0, r1
str r1, [sp, 0x4]
bl sub_81D5F48
cmp r0, 0
beq _081D5F0E
bl sub_81D56B0
movs r7, 0
ldr r4, =gSaveBlock2Ptr
ldr r3, =0x00000cb4
ldr r0, =0x0000ffff
adds r2, r0, 0
_081D5E26:
ldr r1, [r4]
lsls r0, r7, 1
adds r1, r3
adds r1, r0
ldrh r0, [r1]
orrs r0, r2
strh r0, [r1]
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x1
bls _081D5E26
movs r0, 0
str r0, [sp]
ldr r0, =gSaveBlock1Ptr
ldr r1, [r0]
movs r2, 0xC7
lsls r2, 4
adds r1, r2
ldr r2, =0x05000180
mov r0, sp
bl CpuSet
bl sub_81D5520
lsls r0, 24
lsrs r0, 24
mov r9, r0
movs r7, 0
ldr r3, =gUnknown_0203CF54
mov r10, r3
_081D5E64:
lsls r4, r7, 1
mov r8, r4
adds r5, r4, r7
lsls r5, 3
ldr r0, [sp, 0x4]
adds r5, r0
adds r1, r5, 0
ldr r0, =gUnknown_0862A670
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
adds r6, r7, 0x1
strb r6, [r5]
mov r0, r10
ldr r1, [r0]
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r7
lsls r0, 3
mov r2, r9
lsls r4, r2, 4
subs r4, r2
lsls r4, 3
subs r4, r2
lsls r4, 3
adds r0, r4
adds r1, r0
ldrb r0, [r1, 0x1B]
bl sub_81660B8
strb r0, [r5, 0x1]
mov r0, r10
ldr r3, [r0]
adds r0, r7, r4
movs r2, 0xF0
lsls r2, 2
adds r1, r3, r2
adds r1, r0
ldrb r2, [r1]
movs r0, 0xF
ands r0, r2
strh r0, [r5, 0x4]
ldrb r0, [r1]
lsrs r0, 4
movs r1, 0xF
ands r0, r1
adds r0, 0x5
strh r0, [r5, 0x6]
lsls r1, r7, 26
lsrs r1, 24
adds r3, r4
ldr r2, =0x000003c2
adds r3, r2
ldrb r0, [r3]
asrs r0, r1
movs r3, 0xF
ands r0, r3
adds r0, 0x7
strb r0, [r5, 0x9]
mov r2, r10
ldr r0, [r2]
adds r0, r4
ldr r3, =0x000003c3
adds r0, r3
ldrb r0, [r0]
asrs r0, r1
movs r1, 0xF
ands r0, r1
strh r0, [r5, 0xE]
ldr r0, =EventScript_2C83F0
str r0, [r5, 0x10]
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldr r4, =0x00000cb4
adds r0, r4
add r0, r8
strh r6, [r0]
lsls r6, 24
lsrs r7, r6, 24
cmp r7, 0x1
bls _081D5E64
bl sub_81D5710
_081D5F0E:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D5DF8
thumb_func_start sub_81D5F48
sub_81D5F48: @ 81D5F48
push {lr}
bl sub_81D56B0
bl sub_81D5710
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end sub_81D5F48
thumb_func_start sub_81D5F58
sub_81D5F58: @ 81D5F58
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r4, =gUnknown_0203CF54
ldr r4, [r4]
mov r12, r4
lsls r4, r2, 1
lsls r5, r0, 4
subs r5, r0
lsls r5, 3
subs r5, r0
lsls r5, 3
adds r4, r5
movs r0, 0xE8
lsls r0, 2
add r0, r12
adds r0, r4
ldrh r0, [r0]
movs r4, 0xF
subs r4, r1
asrs r0, r4
movs r4, 0x1
ands r0, r4
muls r2, r3
adds r2, r1
adds r2, r5
movs r1, 0xA8
lsls r1, 2
add r1, r12
adds r1, r2
ldrb r1, [r1]
movs r2, 0x80
lsls r2, 2
adds r3, r2, 0
movs r2, 0xC0
lsls r2, 6
lsls r0, 10
orrs r0, r2
orrs r1, r3
orrs r0, r1
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D5F58
thumb_func_start sub_81D5FB4
sub_81D5FB4: @ 81D5FB4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r4, r0, 0
bl GetCurrentTrainerHillMapId
lsls r0, 24
lsrs r0, 24
mov r9, r0
cmp r0, 0x6
bne _081D5FD2
bl sub_8087D74
b _081D605E
_081D5FD2:
bl sub_81D56B0
mov r0, r9
cmp r0, 0x5
bne _081D5FE6
bl sub_8087D74
bl sub_81D5710
b _081D605E
_081D5FE6:
bl sub_81D5520
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r0, =gMapHeader
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r1, =gUnknown_03005DC0
str r4, [r1, 0x8]
movs r0, 0x1F
str r0, [r1]
movs r0, 0x23
str r0, [r1, 0x4]
movs r0, 0xE0
lsls r0, 1
adds r3, r4, r0
movs r6, 0x4
_081D600A:
adds r4, r2, 0
adds r4, 0x20
adds r1, r3, 0
movs r5, 0xF
_081D6012:
ldrh r0, [r2]
strh r0, [r1]
adds r2, 0x2
adds r1, 0x2
subs r5, 0x1
cmp r5, 0
bge _081D6012
adds r3, 0x3E
adds r2, r4, 0
subs r6, 0x1
cmp r6, 0
bge _081D600A
movs r6, 0
_081D602C:
movs r5, 0
adds r7, r3, 0
adds r7, 0x3E
adds r0, r6, 0x1
mov r8, r0
adds r4, r3, 0
_081D6038:
mov r0, r9
adds r1, r5, 0
adds r2, r6, 0
movs r3, 0x10
bl sub_81D5F58
strh r0, [r4]
adds r4, 0x2
adds r5, 0x1
cmp r5, 0xF
ble _081D6038
adds r3, r7, 0
mov r6, r8
cmp r6, 0xF
ble _081D602C
bl mapheader_run_script_with_tag_x1
bl sub_81D5710
_081D605E:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D5FB4
thumb_func_start InTrainerHill
InTrainerHill: @ 81D6074
push {lr}
ldr r1, =gMapHeader
ldr r2, =0xfffffe61
adds r0, r2, 0
ldrh r1, [r1, 0x12]
adds r0, r1
lsls r0, 16
lsrs r0, 16
movs r1, 0
cmp r0, 0x3
bhi _081D608C
movs r1, 0x1
_081D608C:
adds r0, r1, 0
pop {r1}
bx r1
.pool
thumb_func_end InTrainerHill
thumb_func_start GetCurrentTrainerHillMapId
@ u8 GetCurrentTrainerHillMapId()
GetCurrentTrainerHillMapId: @ 81D609C
push {lr}
ldr r0, =gMapHeader
ldrh r2, [r0, 0x12]
ldr r0, =0x0000019f
cmp r2, r0
bne _081D60B4
movs r1, 0x1
b _081D60F8
.pool
_081D60B4:
movs r0, 0xD0
lsls r0, 1
cmp r2, r0
bne _081D60C0
movs r1, 0x2
b _081D60F8
_081D60C0:
ldr r0, =0x000001a1
cmp r2, r0
bne _081D60D0
movs r1, 0x3
b _081D60F8
.pool
_081D60D0:
movs r0, 0xD1
lsls r0, 1
cmp r2, r0
bne _081D60DC
movs r1, 0x4
b _081D60F8
_081D60DC:
ldr r0, =0x000001a3
cmp r2, r0
bne _081D60EC
movs r1, 0x5
b _081D60F8
.pool
_081D60EC:
movs r0, 0xCF
lsls r0, 1
movs r1, 0
cmp r2, r0
bne _081D60F8
movs r1, 0x6
_081D60F8:
adds r0, r1, 0
pop {r1}
bx r1
thumb_func_end GetCurrentTrainerHillMapId
thumb_func_start sub_81D6100
sub_81D6100: @ 81D6100
push {lr}
ldr r0, =gMapHeader
ldrh r1, [r0, 0x12]
ldr r0, =0x000001a3
movs r2, 0
cmp r1, r0
bne _081D6110
movs r2, 0x1
_081D6110:
adds r0, r2, 0
pop {r1}
bx r1
.pool
thumb_func_end sub_81D6100
thumb_func_start sub_81D6120
sub_81D6120: @ 81D6120
push {lr}
movs r0, 0x1A
movs r1, 0x40
bl Overworld_GetMapHeaderByGroupAndId
ldr r0, [r0, 0x4]
ldr r0, [r0, 0x8]
adds r0, 0x8
pop {r1}
bx r1
thumb_func_end sub_81D6120
thumb_func_start sub_81D6134
sub_81D6134: @ 81D6134
push {lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081D614C
ldr r0, =gMapHeader
ldr r0, [r0, 0x4]
ldr r0, [r0, 0x8]
adds r0, 0x8
b _081D6176
.pool
_081D614C:
bl sub_81D6490
lsls r0, 24
lsrs r2, r0, 24
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
cmp r0, 0x3
bls _081D6162
movs r2, 0x4
_081D6162:
ldr r1, =gUnknown_0862A688
subs r0, r2, 0x1
lsls r0, 2
adds r0, r1
ldrh r1, [r0]
movs r0, 0x1A
bl Overworld_GetMapHeaderByGroupAndId
ldr r0, [r0, 0x4]
ldr r0, [r0, 0x8]
_081D6176:
pop {r1}
bx r1
.pool
thumb_func_end sub_81D6134
thumb_func_start sub_81D6180
sub_81D6180: @ 81D6180
lsls r0, 24
ldr r1, =gSaveBlock2Ptr
ldr r1, [r1]
lsrs r0, 23
adds r1, r0
ldr r0, =0x00000cb2
adds r1, r0
ldrh r0, [r1]
bx lr
.pool
thumb_func_end sub_81D6180
thumb_func_start GetTrainerHillTrainerFlag
@ u8 GetTrainerHillTrainerFlag(u8 eventObjectId)
GetTrainerHillTrainerFlag: @ 81D619C
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_81D5520
lsls r0, 24
lsrs r0, 23
ldr r2, =gEventObjects
lsls r1, r4, 3
adds r1, r4
lsls r1, 2
adds r1, r2
adds r0, 0xFF
ldrb r1, [r1, 0x8]
adds r0, r1
lsls r0, 24
ldr r1, =gSaveBlock2Ptr
ldr r1, [r1]
movs r2, 0xEE
lsls r2, 4
adds r1, r2
ldr r2, =gBitTable
lsrs r0, 22
adds r0, r2
ldr r0, [r0]
ldrb r1, [r1]
ands r0, r1
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end GetTrainerHillTrainerFlag
thumb_func_start sub_81D61E8
sub_81D61E8: @ 81D61E8
push {r4-r7,lr}
mov r7, r8
push {r7}
bl sub_81D5520
lsls r0, 25
lsrs r4, r0, 24
movs r3, 0
ldr r0, =gTrainerBattleOpponent_A
mov r8, r0
ldr r6, =gSaveBlock2Ptr
ldr r1, =gBitTable
mov r12, r1
adds r5, r6, 0
_081D6204:
ldr r2, [r5]
lsls r0, r3, 1
ldr r7, =0x00000cb4
adds r1, r2, r7
adds r1, r0
ldrh r0, [r1]
mov r1, r8
ldrh r1, [r1]
cmp r0, r1
bne _081D6240
movs r7, 0xEE
lsls r7, 4
adds r2, r7
adds r0, r4, r3
lsls r0, 2
add r0, r12
ldr r0, [r0]
ldrb r1, [r2]
orrs r0, r1
strb r0, [r2]
b _081D624A
.pool
_081D6240:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x1
bls _081D6204
_081D624A:
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x80
lsls r1, 8
ands r0, r1
cmp r0, 0
beq _081D62A2
movs r3, 0
ldr r5, =gTrainerBattleOpponent_B
ldr r0, =gBitTable
mov r8, r0
_081D6260:
ldr r2, [r6]
lsls r0, r3, 1
ldr r7, =0x00000cb4
adds r1, r2, r7
adds r1, r0
ldrh r0, [r1]
ldrh r1, [r5]
cmp r0, r1
bne _081D6298
movs r7, 0xEE
lsls r7, 4
adds r2, r7
adds r0, r4, r3
lsls r0, 2
add r0, r8
ldr r0, [r0]
ldrb r1, [r2]
orrs r0, r1
strb r0, [r2]
b _081D62A2
.pool
_081D6298:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x1
bls _081D6260
_081D62A2:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81D61E8
thumb_func_start sub_81D62AC
sub_81D62AC: @ 81D62AC
ldr r0, =EventScript_2C83F0
bx lr
.pool
thumb_func_end sub_81D62AC
thumb_func_start sub_81D62B4
sub_81D62B4: @ 81D62B4
push {lr}
ldr r0, =gSpecialVar_LastTalked
ldrh r1, [r0]
movs r0, 0x5
bl sub_81D572C
bl sub_80982B8
pop {r0}
bx r0
.pool
thumb_func_end sub_81D62B4
thumb_func_start sub_81D62CC
sub_81D62CC: @ 81D62CC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 16
lsrs r0, 16
lsls r1, 24
lsrs r1, 24
mov r9, r1
subs r1, r0, 0x1
lsls r0, r1, 16
lsrs r0, 16
cmp r0, 0x1
bhi _081D636A
lsls r0, r1, 24
lsrs r6, r0, 24
bl sub_81D56B0
bl sub_8165CB4
lsls r0, 24
lsrs r0, 24
mov r10, r0
bl sub_81D5520
lsls r0, 24
lsrs r0, 24
mov r8, r0
mov r5, r9
adds r0, r5, 0x3
cmp r5, r0
bge _081D6366
ldr r1, =gUnknown_0862A698
lsls r0, r6, 1
adds r0, r6
adds r7, r0, r1
_081D6316:
ldrb r2, [r7]
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gEnemyParty
adds r4, r0
mov r1, r8
lsls r0, r1, 4
subs r0, r1
lsls r0, 3
subs r0, r1
lsls r0, 3
adds r0, 0xC
ldr r3, =gUnknown_0203CF54
ldr r1, [r3]
adds r1, r0
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r0, r6
lsls r0, 3
adds r0, 0x4
adds r1, r0
movs r0, 0x2C
muls r0, r2
adds r0, 0x40
adds r1, r0
adds r0, r4, 0
bl sub_806819C
adds r0, r4, 0
mov r1, r10
bl sub_81D642C
adds r5, 0x1
adds r7, 0x1
mov r0, r9
adds r0, 0x3
cmp r5, r0
blt _081D6316
_081D6366:
bl sub_81D5710
_081D636A:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D62CC
thumb_func_start sub_81D6384
sub_81D6384: @ 81D6384
push {lr}
bl ZeroEnemyPartyMons
ldr r0, =gTrainerBattleOpponent_A
ldrh r0, [r0]
movs r1, 0
bl sub_81D62CC
pop {r0}
bx r0
.pool
thumb_func_end sub_81D6384
thumb_func_start sub_81D639C
sub_81D639C: @ 81D639C
push {lr}
bl ZeroEnemyPartyMons
ldr r0, =gTrainerBattleOpponent_A
ldrh r0, [r0]
movs r1, 0
bl sub_81D62CC
ldr r0, =gTrainerBattleOpponent_B
ldrh r0, [r0]
movs r1, 0x3
bl sub_81D62CC
pop {r0}
bx r0
.pool
thumb_func_end sub_81D639C
thumb_func_start sub_81D63C4
sub_81D63C4: @ 81D63C4
movs r0, 0x7
bx lr
thumb_func_end sub_81D63C4
thumb_func_start sub_81D63C8
sub_81D63C8: @ 81D63C8
push {r4,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
bl sub_81D56B0
subs r4, 0x1
lsls r4, 24
lsrs r4, 24
ldr r0, =gUnknown_0203CF54
ldr r3, [r0]
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r4
ldrb r2, [r3]
lsls r0, r2, 4
subs r0, r2
lsls r0, 3
subs r0, r2
adds r0, r1
lsls r0, 3
adds r3, r0
ldrb r4, [r3, 0x1B]
bl sub_81D5710
movs r2, 0
ldr r0, =gFacilityClassToTrainerClass
adds r4, r0
ldrb r3, [r4]
ldr r1, =gUnknown_0862A3B4
_081D6406:
ldrb r0, [r1]
cmp r0, r3
bne _081D641C
ldrb r0, [r1, 0x1]
b _081D6426
.pool
_081D641C:
adds r1, 0x4
adds r2, 0x1
cmp r2, 0x35
bls _081D6406
movs r0, 0
_081D6426:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81D63C8
thumb_func_start sub_81D642C
sub_81D642C: @ 81D642C
push {r4,r5,lr}
sub sp, 0x8
adds r4, r0, 0
mov r0, sp
strb r1, [r0]
adds r0, r4, 0
movs r1, 0xB
movs r2, 0
bl GetMonData
lsls r0, 16
lsrs r0, 16
ldr r5, =gExperienceTables
mov r1, sp
ldrb r2, [r1]
lsls r2, 2
ldr r3, =gBaseStats
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r3
ldrb r1, [r1, 0x13]
movs r0, 0xCA
lsls r0, 1
muls r0, r1
adds r2, r0
adds r2, r5
ldr r0, [r2]
str r0, [sp, 0x4]
add r2, sp, 0x4
adds r0, r4, 0
movs r1, 0x19
bl SetMonData
adds r0, r4, 0
movs r1, 0x38
mov r2, sp
bl SetMonData
adds r0, r4, 0
bl CalculateMonStats
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D642C
thumb_func_start sub_81D6490
sub_81D6490: @ 81D6490
push {r4,lr}
bl sub_81D56B0
ldr r0, =gUnknown_0203CF54
ldr r0, [r0]
ldrb r4, [r0, 0x6]
bl sub_81D5710
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D6490
thumb_func_start sub_81D64AC
sub_81D64AC: @ 81D64AC
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
movs r1, 0xEE
lsls r1, 4
adds r0, r1
movs r1, 0xFF
strb r1, [r0]
bx lr
.pool
thumb_func_end sub_81D64AC
thumb_func_start sub_81D64C0
sub_81D64C0: @ 81D64C0
push {lr}
bl sub_81D6534
cmp r0, 0x1
bne _081D64D4
ldr r0, =gUnknown_0862A5D4
movs r1, 0x70
movs r2, 0x20
bl LoadPalette
_081D64D4:
pop {r0}
bx r0
.pool
thumb_func_end sub_81D64C0
thumb_func_start sub_81D64DC
sub_81D64DC: @ 81D64DC
ldr r1, =gSpecialVar_Result
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldr r2, =0x00000ef9
adds r0, r2
ldrb r0, [r0]
lsrs r0, 7
strh r0, [r1]
bx lr
.pool
thumb_func_end sub_81D64DC
thumb_func_start sub_81D64FC
sub_81D64FC: @ 81D64FC
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0x00000ef9
adds r1, r0
ldrb r0, [r1]
movs r2, 0x80
orrs r0, r2
strb r0, [r1]
bx lr
.pool
thumb_func_end sub_81D64FC
thumb_func_start sub_81D6518
sub_81D6518: @ 81D6518
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0x00000ef9
adds r1, r0
ldrb r2, [r1]
movs r0, 0x7F
ands r0, r2
strb r0, [r1]
bx lr
.pool
thumb_func_end sub_81D6518
thumb_func_start sub_81D6534
sub_81D6534: @ 81D6534
push {lr}
bl sub_81D5C18
lsls r0, 24
cmp r0, 0
beq _081D6560
bl GetCurrentTrainerHillMapId
lsls r0, 24
lsrs r0, 24
cmp r0, 0x6
beq _081D6560
bl sub_81D5C00
ldr r0, =gSpecialVar_Result
ldrh r0, [r0]
cmp r0, 0
beq _081D6560
movs r0, 0x1
b _081D6562
.pool
_081D6560:
movs r0, 0
_081D6562:
pop {r1}
bx r1
thumb_func_end sub_81D6534
thumb_func_start sub_81D6568
sub_81D6568: @ 81D6568
push {lr}
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00003d6e
adds r0, r1
ldrb r1, [r0]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _081D6590
ldr r1, =gSpecialVar_Result
movs r0, 0
b _081D6594
.pool
_081D6590:
ldr r1, =gSpecialVar_Result
movs r0, 0x1
_081D6594:
strh r0, [r1]
pop {r0}
bx r0
.pool
thumb_func_end sub_81D6568
thumb_func_start sub_81D65A0
sub_81D65A0: @ 81D65A0
push {r4,r5,lr}
ldr r4, =gSaveBlock1Ptr
ldr r2, [r4]
ldr r5, =gSpecialVar_0x8005
ldr r0, =0x00003d6e
adds r2, r0
ldrb r1, [r5]
lsls r1, 6
ldrb r3, [r2]
movs r0, 0x3F
ands r0, r3
orrs r0, r1
strb r0, [r2]
ldr r1, [r4]
ldr r3, =0x00003d68
adds r2, r1, r3
ldrh r0, [r5]
lsls r0, 2
ldr r3, =0x00003718
adds r1, r3
adds r1, r0
ldr r0, [r1]
str r0, [r2]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81D65A0
thumb_func_start sub_81D65E8
sub_81D65E8: @ 81D65E8
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
movs r3, 0
movs r4, 0
ldr r0, =gUnknown_0203CF54
ldr r6, [r0]
movs r5, 0x1F
_081D65F8:
lsls r1, r4, 4
subs r1, r4
lsls r1, 3
subs r1, r4
lsls r1, 3
adds r1, r6, r1
ldrb r2, [r1, 0xC]
adds r0, r5, 0
ands r0, r2
eors r3, r0
ldrb r1, [r1, 0xD]
adds r0, r5, 0
ands r0, r1
eors r3, r0
lsls r0, r3, 24
lsrs r3, r0, 24
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _081D65F8
movs r1, 0x5
cmp r7, 0
beq _081D662A
movs r1, 0xA
_081D662A:
adds r0, r3, 0
bl __umodsi3
lsls r0, 24
lsrs r3, r0, 24
adds r0, r3, 0
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D65E8
thumb_func_start sub_81D6640
sub_81D6640: @ 81D6640
push {r4,r5,lr}
movs r3, 0
movs r2, 0
ldr r0, =gUnknown_0203CF54
ldr r4, [r0]
_081D664A:
lsls r0, r2, 4
subs r0, r2
lsls r0, 3
subs r0, r2
lsls r0, 3
adds r0, r4, r0
ldrb r1, [r0, 0xC]
adds r1, r3, r1
ldrb r0, [r0, 0xD]
adds r3, r1, r0
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3
bls _081D664A
adds r0, r3, 0
cmp r0, 0
bge _081D6670
adds r0, 0xFF
_081D6670:
asrs r4, r0, 8
lsrs r0, 31
adds r0, r4, r0
asrs r0, 1
lsls r0, 1
subs r4, r0
ldr r0, =0x00000864
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _081D66A0
ldr r0, =gUnknown_0203CF54
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0x8
bne _081D66A0
movs r0, 0x1
b _081D66A2
.pool
_081D66A0:
movs r0, 0
_081D66A2:
bl sub_81D65E8
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gSaveBlock1Ptr
ldr r5, [r0]
ldr r1, =0x00003d6e
adds r0, r5, r1
ldrb r1, [r0]
movs r0, 0xC0
ands r0, r1
cmp r0, 0xC0
bne _081D66C8
adds r0, r2, 0x1
movs r1, 0xA
bl __modsi3
lsls r0, 24
lsrs r2, r0, 24
_081D66C8:
ldr r1, =gUnknown_0862A5CC
lsls r0, r4, 2
adds r0, r1
ldr r1, [r0]
lsls r0, r2, 2
adds r0, r1
ldr r4, [r0]
ldr r1, =0x00003d64
adds r0, r5, r1
ldr r0, [r0]
movs r1, 0xE1
lsls r1, 4
bl __divsi3
movs r1, 0
cmp r0, 0xB
ble _081D6704
movs r1, 0x1
cmp r0, 0xC
ble _081D6704
movs r1, 0x2
cmp r0, 0xD
ble _081D6704
movs r1, 0x3
cmp r0, 0xF
ble _081D6704
movs r1, 0x5
cmp r0, 0x11
bgt _081D6704
movs r1, 0x4
_081D6704:
lsls r0, r1, 1
adds r0, r4
ldrh r0, [r0]
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_81D6640
.align 2, 0 @ Don't pad with nop.