pokeemerald/asm/pokemon_summary_screen.s
2018-02-02 16:06:20 +01:00

6079 lines
93 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_81C3E2C
sub_81C3E2C: @ 81C3E2C
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x4
bne _081C3E48
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c4
b _081C3E50
.pool
_081C3E48:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
lsls r1, 1
adds r0, 0x84
_081C3E50:
adds r0, r1
ldrh r4, [r0]
cmp r4, 0
beq _081C3E82
ldr r0, =gUnknown_0861CD14
movs r1, 0x2
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
ldr r3, =gContestEffectDescriptionPointers
ldr r2, =gContestMoves
lsls r1, r4, 3
adds r1, r2
ldrb r1, [r1]
lsls r1, 2
adds r1, r3
ldr r1, [r1]
movs r2, 0
str r2, [sp]
str r2, [sp, 0x4]
movs r2, 0x6
movs r3, 0x1
bl sub_81C25A4
_081C3E82:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C3E2C
thumb_func_start sub_81C3E9C
sub_81C3E9C: @ 81C3E9C
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 16
lsrs r4, r0, 16
adds r6, r4, 0
ldr r0, =gUnknown_0861CD14
movs r1, 0x2
bl sub_81C2D2C
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
movs r1, 0
bl FillWindowPixelBuffer
cmp r4, 0
beq _081C3F30
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c0
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x2
bne _081C3F00
adds r0, r4, 0
bl sub_81C3C5C
ldr r1, =gMoveDescriptionPointers
subs r0, r4, 0x1
lsls r0, 2
adds r0, r1
ldr r1, [r0]
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r5, 0
movs r2, 0x6
movs r3, 0x1
bl sub_81C25A4
b _081C3F20
.pool
_081C3F00:
ldr r2, =gContestEffectDescriptionPointers
ldr r1, =gContestMoves
lsls r0, r6, 3
adds r0, r1
ldrb r0, [r0]
lsls r0, 2
adds r0, r2
ldr r1, [r0]
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r5, 0
movs r2, 0x6
movs r3, 0x1
bl sub_81C25A4
_081C3F20:
adds r0, r5, 0
bl PutWindowTilemap
b _081C3F36
.pool
_081C3F30:
adds r0, r5, 0
bl ClearWindowTilemap
_081C3F36:
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81C3E9C
thumb_func_start sub_81C3F44
sub_81C3F44: @ 81C3F44
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
ldr r4, =gUnknown_0861CD14
adds r0, r4, 0
movs r1, 0
bl sub_81C2D2C
lsls r0, 24
lsrs r6, r0, 24
adds r7, r6, 0
adds r0, r4, 0
movs r1, 0x1
bl sub_81C2D2C
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r2, =0x000040c4
adds r0, r1, r2
ldrh r2, [r0]
cmp r2, 0
bne _081C3F9C
ldr r1, =gText_Cancel
str r2, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
adds r0, r6, 0
movs r2, 0
movs r3, 0x41
bl sub_81C25A4
b _081C4044
.pool
_081C3F9C:
ldrh r5, [r0]
ldr r2, =0x000040c0
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x2
bne _081C3FD0
movs r0, 0xD
adds r1, r5, 0
muls r1, r0
ldr r0, =gMoveNames
adds r1, r0
movs r0, 0
str r0, [sp]
movs r0, 0x6
str r0, [sp, 0x4]
adds r0, r6, 0
movs r2, 0
movs r3, 0x41
bl sub_81C25A4
b _081C3FEC
.pool
_081C3FD0:
movs r0, 0xD
adds r1, r5, 0
muls r1, r0
ldr r0, =gMoveNames
adds r1, r0
movs r0, 0
str r0, [sp]
movs r0, 0x5
str r0, [sp, 0x4]
adds r0, r7, 0
movs r2, 0
movs r3, 0x41
bl sub_81C25A4
_081C3FEC:
ldr r4, =gStringVar1
ldr r1, =gBattleMoves
lsls r0, r5, 1
adds r0, r5
lsls r0, 2
adds r0, r1
ldrb r1, [r0, 0x4]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
bl UnkTextUtil_Reset
movs r0, 0
adds r1, r4, 0
bl UnkTextUtil_SetPtrI
movs r0, 0x1
adds r1, r4, 0
bl UnkTextUtil_SetPtrI
ldr r4, =gStringVar4
ldr r1, =gUnknown_0861CE97
adds r0, r4, 0
bl UnkTextUtil_StringExpandPlaceholders
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x2C
bl GetStringRightAlignXOffset
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
movs r0, 0
str r0, [sp]
movs r0, 0xC
str r0, [sp, 0x4]
mov r0, r8
adds r1, r4, 0
movs r3, 0x41
bl sub_81C25A4
_081C4044:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C3F44
thumb_func_start sub_81C4064
sub_81C4064: @ 81C4064
push {r4,lr}
sub sp, 0x8
ldr r0, =gUnknown_0861CD14
movs r1, 0
bl sub_81C2D2C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x48
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
adds r0, r4, 0
movs r1, 0
movs r2, 0
movs r3, 0x42
bl FillWindowPixelRect
adds r0, r4, 0
movs r1, 0x2
bl CopyWindowToVram
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4064
thumb_func_start sub_81C40A0
sub_81C40A0: @ 81C40A0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
mov r9, r0
mov r10, r1
lsls r0, 24
lsrs r0, 24
mov r9, r0
mov r0, r10
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r5, =gUnknown_0861CD14
adds r0, r5, 0
movs r1, 0
bl sub_81C2D2C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x1
bl sub_81C2D2C
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
mov r0, r9
lsls r6, r0, 4
movs r0, 0x48
mov r8, r0
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
adds r0, r4, 0
movs r1, 0
movs r2, 0
adds r3, r6, 0
bl FillWindowPixelRect
mov r0, r10
lsls r7, r0, 4
mov r0, r8
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
adds r0, r4, 0
movs r1, 0
movs r2, 0
adds r3, r7, 0
bl FillWindowPixelRect
movs r4, 0x30
str r4, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0
movs r2, 0
adds r3, r6, 0
bl FillWindowPixelRect
str r4, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0
movs r2, 0
adds r3, r7, 0
bl FillWindowPixelRect
mov r0, r9
bl sub_81C3B08
mov r0, r10
bl sub_81C3B08
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_81C40A0
thumb_func_start sub_81C4154
sub_81C4154: @ 81C4154
push {r4,lr}
sub sp, 0x8
ldr r0, =gUnknown_0861CD14
movs r1, 0x2
bl sub_81C2D2C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
bl FillWindowPixelBuffer
ldr r1, =gText_HMMovesCantBeForgotten2
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r4, 0
movs r2, 0x6
movs r3, 0x1
bl sub_81C25A4
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4154
thumb_func_start sub_81C4190
sub_81C4190: @ 81C4190
push {r4,r5,lr}
movs r2, 0
ldr r5, =gUnknown_0203CF1C
ldr r4, =0x000040d3
movs r3, 0xFF
_081C419A:
ldr r0, [r5]
adds r0, r4
adds r0, r2
ldrb r1, [r0]
orrs r1, r3
strb r1, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x1B
bls _081C419A
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4190
thumb_func_start sub_81C41C0
sub_81C41C0: @ 81C41C0
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r5, =gUnknown_0203CF1C
ldr r0, [r5]
ldr r1, =0x000040d3
adds r0, r1
adds r1, r0, r4
ldrb r0, [r1]
cmp r0, 0xFF
beq _081C41F2
adds r1, r0, 0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
bl DestroySprite
ldr r0, [r5]
ldr r1, =0x000040d3
adds r0, r1
adds r0, r4
movs r1, 0xFF
strb r1, [r0]
_081C41F2:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C41C0
thumb_func_start sub_81C4204
sub_81C4204: @ 81C4204
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
ldr r3, =gSprites
ldr r2, =gUnknown_0203CF1C
ldr r2, [r2]
ldr r4, =0x000040d3
adds r2, r4
adds r2, r0
ldrb r0, [r2]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r3
adds r2, 0x3E
movs r0, 0x1
ands r1, r0
lsls r1, 2
ldrb r3, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4204
thumb_func_start sub_81C424C
sub_81C424C: @ 81C424C
push {r4,lr}
movs r4, 0x3
_081C4250:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040d3
adds r0, r1
adds r0, r4
ldrb r0, [r0]
cmp r0, 0xFF
beq _081C4268
adds r0, r4, 0
movs r1, 0x1
bl sub_81C4204
_081C4268:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x1B
bls _081C4250
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C424C
thumb_func_start sub_81C4280
sub_81C4280: @ 81C4280
push {lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c0
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x2
beq _081C42B0
cmp r0, 0x2
bgt _081C42A4
cmp r0, 0
beq _081C42AA
b _081C42C2
.pool
_081C42A4:
cmp r0, 0x3
beq _081C42BA
b _081C42C2
_081C42AA:
bl sub_81C43A0
b _081C42C2
_081C42B0:
bl sub_81C4420
bl sub_81C44F0
b _081C42C2
_081C42BA:
bl sub_81C4484
bl sub_81C44F0
_081C42C2:
pop {r0}
bx r0
thumb_func_end sub_81C4280
thumb_func_start sub_81C42C8
sub_81C42C8: @ 81C42C8
push {r4,r5,lr}
movs r4, 0x3
ldr r5, =gUnknown_0203CF1C
_081C42CE:
ldr r0, [r5]
ldr r1, =0x000040d3
adds r0, r1
adds r0, r4
ldrb r0, [r0]
cmp r0, 0xFF
bne _081C42F2
ldr r0, =gUnknown_0861CFC4
movs r1, 0
movs r2, 0
movs r3, 0x2
bl CreateSprite
ldr r1, [r5]
ldr r2, =0x000040d3
adds r1, r2
adds r1, r4
strb r0, [r1]
_081C42F2:
adds r0, r4, 0
movs r1, 0x1
bl sub_81C4204
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x7
bls _081C42CE
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C42C8
thumb_func_start sub_81C4318
sub_81C4318: @ 81C4318
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
mov r8, r2
lsls r5, 24
lsrs r5, 24
lsls r6, 24
lsrs r6, 24
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r3, 24
lsrs r3, 24
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040d3
adds r0, r1
adds r0, r3
ldrb r0, [r0]
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r0, =gSprites
adds r4, r0
adds r0, r4, 0
adds r1, r5, 0
str r3, [sp]
bl StartSpriteAnim
ldr r0, =gUnknown_0861CFDC
adds r5, r0
ldrb r1, [r5]
lsls r1, 4
ldrb r2, [r4, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
adds r6, 0x10
strh r6, [r4, 0x20]
movs r0, 0x8
add r8, r0
mov r1, r8
strh r1, [r4, 0x22]
ldr r3, [sp]
adds r0, r3, 0
movs r1, 0
bl sub_81C4204
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4318
thumb_func_start sub_81C43A0
sub_81C43A0: @ 81C43A0
push {r4,r5,lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r5, r0, 0
adds r5, 0x70
ldrb r0, [r5, 0x4]
cmp r0, 0
beq _081C43CC
movs r0, 0x9
movs r1, 0x78
movs r2, 0x30
movs r3, 0x3
bl sub_81C4318
movs r0, 0x4
movs r1, 0x1
bl sub_81C4204
b _081C4418
.pool
_081C43CC:
ldr r4, =gBaseStats
ldrh r1, [r5]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
adds r0, r4
ldrb r0, [r0, 0x6]
movs r1, 0x78
movs r2, 0x30
movs r3, 0x3
bl sub_81C4318
ldrh r1, [r5]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
adds r1, r0, r4
ldrb r0, [r1, 0x6]
ldrb r2, [r1, 0x7]
cmp r0, r2
beq _081C4410
ldrb r0, [r1, 0x7]
movs r1, 0xA0
movs r2, 0x30
movs r3, 0x4
bl sub_81C4318
movs r0, 0x4
movs r1, 0
bl sub_81C4204
b _081C4418
.pool
_081C4410:
movs r0, 0x4
movs r1, 0x1
bl sub_81C4204
_081C4418:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C43A0
thumb_func_start sub_81C4420
sub_81C4420: @ 81C4420
push {r4-r6,lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r5, r0, 0
adds r5, 0x70
movs r4, 0
ldr r6, =gBattleMoves
_081C442E:
lsls r0, r4, 1
adds r1, r5, 0
adds r1, 0x14
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
beq _081C4468
adds r1, r0, 0
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r6
ldrb r0, [r0, 0x2]
lsls r2, r4, 28
movs r1, 0x80
lsls r1, 22
adds r2, r1
lsrs r2, 24
adds r3, r4, 0x3
lsls r3, 24
lsrs r3, 24
movs r1, 0x55
bl sub_81C4318
b _081C4474
.pool
_081C4468:
adds r0, r4, 0x3
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
bl sub_81C4204
_081C4474:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _081C442E
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81C4420
thumb_func_start sub_81C4484
sub_81C4484: @ 81C4484
push {r4,r5,lr}
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r5, r0, 0
adds r5, 0x70
movs r4, 0
_081C4490:
lsls r0, r4, 1
adds r1, r5, 0
adds r1, 0x14
adds r2, r1, r0
ldrh r0, [r2]
cmp r0, 0
beq _081C44D4
ldr r1, =gContestMoves
lsls r0, 3
adds r0, r1
ldrb r0, [r0, 0x1]
lsls r0, 29
lsrs r0, 5
movs r1, 0x90
lsls r1, 21
adds r0, r1
lsrs r0, 24
lsls r2, r4, 28
movs r1, 0x80
lsls r1, 22
adds r2, r1
lsrs r2, 24
adds r3, r4, 0x3
lsls r3, 24
lsrs r3, 24
movs r1, 0x55
bl sub_81C4318
b _081C44E0
.pool
_081C44D4:
adds r0, r4, 0x3
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
bl sub_81C4204
_081C44E0:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _081C4490
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C4484
thumb_func_start sub_81C44F0
sub_81C44F0: @ 81C44F0
push {lr}
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
ldr r0, =0x000040c4
adds r3, r1, r0
ldrh r0, [r3]
cmp r0, 0
bne _081C4514
movs r0, 0x7
movs r1, 0x1
bl sub_81C4204
b _081C4560
.pool
_081C4514:
ldr r2, =0x000040c0
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x2
bne _081C4540
ldr r2, =gBattleMoves
ldrh r1, [r3]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x2]
movs r1, 0x55
movs r2, 0x60
movs r3, 0x7
bl sub_81C4318
b _081C4560
.pool
_081C4540:
ldr r1, =gContestMoves
ldrh r0, [r3]
lsls r0, 3
adds r0, r1
ldrb r0, [r0, 0x1]
lsls r0, 29
lsrs r0, 5
movs r1, 0x90
lsls r1, 21
adds r0, r1
lsrs r0, 24
movs r1, 0x55
movs r2, 0x60
movs r3, 0x7
bl sub_81C4318
_081C4560:
pop {r0}
bx r0
.pool
thumb_func_end sub_81C44F0
thumb_func_start sub_81C4568
sub_81C4568: @ 81C4568
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
ldr r2, =gUnknown_0203CF1C
ldr r2, [r2]
adds r0, 0x3
ldr r3, =0x000040d3
adds r2, r3
adds r0, r2, r0
ldrb r0, [r0]
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r5, =gSprites
adds r4, r5
adds r1, 0x3
adds r2, r1
ldrb r0, [r2]
lsls r3, r0, 4
adds r3, r0
lsls r3, 2
adds r3, r5
adds r5, r4, 0
adds r5, 0x2A
ldrb r1, [r5]
adds r2, r3, 0
adds r2, 0x2A
ldrb r0, [r2]
strb r0, [r5]
strb r1, [r2]
ldrb r6, [r4, 0x5]
lsrs r5, r6, 4
ldrb r2, [r3, 0x5]
lsrs r2, 4
lsls r2, 4
movs r1, 0xF
adds r0, r1, 0
ands r0, r6
orrs r0, r2
strb r0, [r4, 0x5]
lsls r5, 4
ldrb r0, [r3, 0x5]
ands r1, r0
orrs r1, r5
strb r1, [r3, 0x5]
adds r4, 0x3F
ldrb r0, [r4]
movs r2, 0x4
orrs r0, r2
movs r1, 0x11
negs r1, r1
ands r0, r1
strb r0, [r4]
adds r3, 0x3F
ldrb r0, [r3]
orrs r0, r2
ands r0, r1
strb r0, [r3]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4568
thumb_func_start sub_81C45F4
sub_81C45F4: @ 81C45F4
push {r4-r6,lr}
adds r3, r0, 0
adds r6, r1, 0
ldr r0, =gUnknown_0203CF1C
ldr r2, [r0]
adds r5, r2, 0
adds r5, 0x70
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
beq _081C4620
cmp r0, 0x1
bne _081C4610
b _081C4750
_081C4610:
adds r0, r3, 0
bl sub_81C47B4
lsls r0, 24
lsrs r0, 24
b _081C4770
.pool
_081C4620:
ldr r0, =gMain
ldr r1, =0x00000439
adds r0, r1
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081C4680
ldr r1, =0x000040be
adds r0, r2, r1
ldrb r1, [r0]
movs r0, 0x3
bl sub_80688F8
lsls r0, 24
cmp r0, 0
beq _081C4668
ldrh r2, [r5, 0x2]
lsls r0, r2, 3
ldr r1, =gMonFrontPicTable
adds r0, r1
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
ldr r1, [r1, 0x8]
b _081C46D6
.pool
_081C4668:
ldrh r2, [r5, 0x2]
lsls r0, r2, 3
ldr r1, =gMonFrontPicTable
adds r0, r1
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
b _081C46B0
.pool
_081C4680:
ldr r0, =gMonSpritesGfxPtr
ldr r3, [r0]
adds r4, r0, 0
cmp r3, 0
beq _081C46E4
ldr r1, [r2]
ldr r0, =gPlayerParty
cmp r1, r0
beq _081C46A6
ldr r1, =0x000040bc
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0x2
beq _081C46A6
adds r1, 0x33
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _081C46CC
_081C46A6:
ldrh r2, [r5, 0x2]
lsls r0, r2, 3
ldr r1, =gMonFrontPicTable
adds r0, r1
ldr r1, [r4]
_081C46B0:
ldr r1, [r1, 0x8]
ldr r3, [r5, 0xC]
bl HandleLoadSpecialPokePic_2
b _081C4768
.pool
_081C46CC:
ldrh r2, [r5, 0x2]
lsls r0, r2, 3
ldr r1, =gMonFrontPicTable
adds r0, r1
ldr r1, [r3, 0x8]
_081C46D6:
ldr r3, [r5, 0xC]
bl HandleLoadSpecialPokePic_DontHandleDeoxys
b _081C4768
.pool
_081C46E4:
ldr r1, [r2]
ldr r0, =gPlayerParty
cmp r1, r0
beq _081C4700
ldr r1, =0x000040bc
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0x2
beq _081C4700
adds r1, 0x33
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _081C472C
_081C4700:
ldrh r4, [r5, 0x2]
lsls r4, 3
ldr r0, =gMonFrontPicTable
adds r4, r0
movs r0, 0
movs r1, 0x1
bl sub_806F4F8
adds r1, r0, 0
ldrh r2, [r5, 0x2]
ldr r3, [r5, 0xC]
adds r0, r4, 0
bl HandleLoadSpecialPokePic_2
b _081C4768
.pool
_081C472C:
ldrh r4, [r5, 0x2]
lsls r4, 3
ldr r0, =gMonFrontPicTable
adds r4, r0
movs r0, 0
movs r1, 0x1
bl sub_806F4F8
adds r1, r0, 0
ldrh r2, [r5, 0x2]
ldr r3, [r5, 0xC]
adds r0, r4, 0
bl HandleLoadSpecialPokePic_DontHandleDeoxys
b _081C4768
.pool
_081C4750:
ldrh r0, [r5, 0x2]
ldr r1, [r5, 0x48]
ldr r2, [r5, 0xC]
bl GetMonSpritePalStructFromOtIdPersonality
adds r4, r0, 0
bl LoadCompressedObjectPalette
ldrh r0, [r4, 0x4]
movs r1, 0x1
bl sub_806A068
_081C4768:
ldrh r0, [r6]
adds r0, 0x1
strh r0, [r6]
movs r0, 0xFF
_081C4770:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81C45F4
thumb_func_start sub_81C4778
sub_81C4778: @ 81C4778
push {r4,lr}
ldr r0, =gUnknown_0203CF1C
ldr r1, [r0]
adds r4, r1, 0
adds r4, 0x70
ldrb r0, [r4, 0x4]
cmp r0, 0
bne _081C47AE
adds r0, r1, 0
adds r0, 0xC
bl ShouldPlayNormalPokeCry
cmp r0, 0x1
bne _081C47A4
ldrh r0, [r4, 0x2]
movs r1, 0
movs r2, 0
bl PlayCry3
b _081C47AE
.pool
_081C47A4:
ldrh r0, [r4, 0x2]
movs r1, 0
movs r2, 0xB
bl PlayCry3
_081C47AE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C4778
thumb_func_start sub_81C47B4
sub_81C47B4: @ 81C47B4
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r0, =gUnknown_0203CF1C
ldr r6, [r0]
adds r6, 0x70
ldr r0, =gUnknown_0202499C
movs r1, 0x28
movs r2, 0x40
movs r3, 0x5
bl CreateSprite
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r4, r0, 4
add r4, r8
lsls r4, 2
ldr r5, =gSprites
adds r7, r4, r5
adds r0, r7, 0
bl FreeSpriteOamMatrix
ldrh r0, [r6, 0x2]
movs r1, 0
strh r0, [r7, 0x2E]
strh r1, [r7, 0x32]
adds r5, 0x1C
adds r4, r5
ldr r0, =sub_81C4844
str r0, [r4]
ldrb r1, [r7, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r1
strb r0, [r7, 0x5]
ldrh r0, [r6, 0x2]
bl IsPokeSpriteNotFlipped
lsls r0, 24
cmp r0, 0
bne _081C4828
adds r0, r7, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
strb r1, [r0]
b _081C4836
.pool
_081C4828:
adds r2, r7, 0
adds r2, 0x3F
ldrb r1, [r2]
movs r0, 0x2
negs r0, r0
ands r0, r1
strb r0, [r2]
_081C4836:
mov r0, r8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81C47B4
thumb_func_start sub_81C4844
sub_81C4844: @ 81C4844
push {r4,r5,lr}
adds r4, r0, 0
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
adds r5, r0, 0
adds r5, 0x70
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081C487E
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _081C487E
ldrh r0, [r4, 0x2E]
bl IsPokeSpriteNotFlipped
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x30]
bl sub_81C4778
ldrh r1, [r4, 0x2E]
ldrb r2, [r5, 0x4]
adds r0, r4, 0
bl PokemonSummaryDoMonAnimation
_081C487E:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4844
thumb_func_start sub_81C488C
sub_81C488C: @ 81C488C
ldr r1, =gUnknown_0203CF24
strb r0, [r1]
bx lr
.pool
thumb_func_end sub_81C488C
thumb_func_start sub_81C4898
sub_81C4898: @ 81C4898
push {r4,lr}
ldr r4, =gUnknown_0203CF24
ldrb r0, [r4]
cmp r0, 0xFF
beq _081C48AA
bl DestroyTask
movs r0, 0xFF
strb r0, [r4]
_081C48AA:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4898
thumb_func_start sub_81C48B4
sub_81C48B4: @ 81C48B4
push {lr}
ldr r2, =gSprites
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040d3
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _081C48E8
movs r0, 0x1
b _081C48EA
.pool
_081C48E8:
movs r0, 0
_081C48EA:
pop {r1}
bx r1
thumb_func_end sub_81C48B4
thumb_func_start sub_81C48F0
sub_81C48F0: @ 81C48F0
push {r4-r6,lr}
ldr r6, =gSprites
ldr r5, =gUnknown_0203CF1C
ldr r0, [r5]
ldr r4, =0x000040d3
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
adds r0, 0x2C
ldrb r1, [r0]
movs r2, 0x40
orrs r1, r2
strb r1, [r0]
ldr r0, [r5]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r6, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =SpriteCallbackDummy
str r1, [r0]
bl sub_806EE98
ldr r0, [r5]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
ldrb r0, [r0, 0x5]
lsrs r0, 4
lsls r3, r0, 4
movs r1, 0x80
lsls r1, 1
adds r0, r1, 0
orrs r3, r0
movs r2, 0
ldr r5, =gPlttBufferUnfaded
ldr r4, =gPlttBufferFaded
_081C494C:
adds r0, r2, r3
lsls r0, 16
lsrs r0, 15
adds r1, r0, r5
adds r0, r4
ldrh r0, [r0]
strh r0, [r1]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0xF
bls _081C494C
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C48F0
thumb_func_start sub_81C4984
sub_81C4984: @ 81C4984
push {r4-r6,lr}
adds r5, r0, 0
ldr r1, =0x00007533
ldr r2, =gUnknown_0861D120
adds r0, r1, 0
bl sub_811FF94
adds r4, r0, 0
ldr r6, =gUnknown_0203CF1C
ldr r0, [r6]
str r4, [r0, 0x8]
cmp r4, 0
beq _081C49CE
adds r0, r5, 0
movs r1, 0x8
bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
ldr r1, [r6]
ldr r2, [r1, 0x8]
movs r0, 0x3C
strh r0, [r2, 0x20]
ldr r2, [r1, 0x8]
movs r0, 0x1A
strh r0, [r2, 0x22]
ldr r2, [r1, 0x8]
ldrb r1, [r2, 0x5]
subs r0, 0x27
ands r0, r1
movs r1, 0x4
orrs r0, r1
strb r0, [r2, 0x5]
_081C49CE:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4984
thumb_func_start sub_81C49E0
sub_81C49E0: @ 81C49E0
push {r4,lr}
adds r4, r0, 0
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r0, [r0, 0x8]
bl DestroySprite
ldr r0, =0x00007533
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl sub_81C4984
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C49E0
thumb_func_start sub_81C4A08
sub_81C4A08: @ 81C4A08
push {r4,lr}
movs r1, 0x26
bl GetMonData
lsls r0, 16
lsrs r0, 16
bl ItemIdToBallId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl LoadBallGfx
lsls r0, r4, 1
adds r0, r4
lsls r0, 3
ldr r1, =gBallSpriteTemplates
adds r0, r1
movs r1, 0x10
movs r2, 0x88
movs r3, 0
bl CreateSprite
ldr r2, =gUnknown_0203CF1C
ldr r1, [r2]
ldr r3, =0x000040d4
adds r1, r3
strb r0, [r1]
ldr r4, =gSprites
ldr r2, [r2]
adds r2, r3
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r4, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =SpriteCallbackDummy
str r1, [r0]
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0, 0x5]
movs r2, 0xC
orrs r1, r2
strb r1, [r0, 0x5]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4A08
thumb_func_start sub_81C4A88
sub_81C4A88: @ 81C4A88
push {r4,r5,lr}
ldr r5, =gUnknown_0203CF1C
ldr r0, [r5]
ldr r1, =0x000040d5
adds r4, r0, r1
ldrb r0, [r4]
cmp r0, 0xFF
bne _081C4AA6
ldr r0, =gUnknown_0861D108
movs r1, 0x40
movs r2, 0x98
movs r3, 0
bl CreateSprite
strb r0, [r4]
_081C4AA6:
ldr r0, [r5]
adds r0, 0xC
bl sub_81B205C
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _081C4AE8
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
subs r1, r2, 0x1
lsls r1, 24
lsrs r1, 24
bl StartSpriteAnim
movs r0, 0x2
movs r1, 0
bl sub_81C4204
b _081C4AF0
.pool
_081C4AE8:
movs r0, 0x2
movs r1, 0x1
bl sub_81C4204
_081C4AF0:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C4A88
thumb_func_start sub_81C4AF8
sub_81C4AF8: @ 81C4AF8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, =gUnknown_0203CF1C
ldr r1, =0x000040d3
add r1, r8
ldr r0, [r0]
adds r7, r0, r1
ldr r1, =0x000040c0
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bls _081C4BD2
movs r0, 0
mov r9, r0
mov r1, r8
cmp r1, 0x8
bne _081C4B2A
movs r0, 0x1
mov r9, r0
_081C4B2A:
movs r5, 0
ldr r6, =gSprites
mov r10, r5
_081C4B30:
lsls r1, r5, 20
movs r0, 0xB2
lsls r0, 15
adds r1, r0
asrs r1, 16
ldr r0, =gUnknown_0861D084
movs r2, 0x28
mov r3, r9
bl CreateSprite
adds r1, r7, r5
strb r0, [r1]
adds r4, r1, 0
cmp r5, 0
bne _081C4B74
ldrb r1, [r7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x4
bl StartSpriteAnim
b _081C4B9A
.pool
_081C4B74:
cmp r5, 0x9
bne _081C4B8A
ldrb r1, [r7, 0x9]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x5
bl StartSpriteAnim
b _081C4B9A
_081C4B8A:
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x6
bl StartSpriteAnim
_081C4B9A:
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r6, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =sub_81C4BE4
str r1, [r0]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
mov r1, r8
strh r1, [r0, 0x2E]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
mov r1, r10
strh r1, [r0, 0x30]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x9
bls _081C4B30
_081C4BD2:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4AF8
thumb_func_start sub_81C4BE4
sub_81C4BE4: @ 81C4BE4
push {lr}
adds r3, r0, 0
adds r0, 0x2A
ldrb r0, [r0]
subs r0, 0x4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bhi _081C4C1C
ldrh r0, [r3, 0x30]
adds r0, 0x1
movs r1, 0x1F
ands r0, r1
strh r0, [r3, 0x30]
cmp r0, 0x18
ble _081C4C10
adds r2, r3, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
b _081C4C2A
_081C4C10:
adds r2, r3, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
b _081C4C28
_081C4C1C:
movs r0, 0
strh r0, [r3, 0x30]
adds r2, r3, 0
adds r2, 0x3E
ldrb r1, [r2]
subs r0, 0x5
_081C4C28:
ands r0, r1
_081C4C2A:
strb r0, [r2]
movs r1, 0x2E
ldrsh r0, [r3, r1]
cmp r0, 0x8
bne _081C4C44
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c6
b _081C4C4A
.pool
_081C4C44:
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040c7
_081C4C4A:
adds r0, r1
ldrb r0, [r0]
lsls r0, 4
strh r0, [r3, 0x26]
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4BE4
thumb_func_start sub_81C4C60
sub_81C4C60: @ 81C4C60
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
_081C4C68:
adds r0, r5, r4
lsls r0, 24
lsrs r0, 24
bl sub_81C41C0
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x9
bls _081C4C68
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C4C60
thumb_func_start sub_81C4C84
sub_81C4C84: @ 81C4C84
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r6, r0, 24
ldr r0, =gUnknown_0203CF1C
ldr r0, [r0]
ldr r1, =0x000040db
adds r5, r0, r1
lsls r0, r6, 1
adds r0, r6
lsls r0, 24
movs r4, 0
ldr r7, =gSprites
movs r2, 0x80
lsls r2, 19
adds r2, r0
mov r9, r2
lsrs r6, r0, 24
movs r1, 0xA0
lsls r1, 19
adds r1, r0
mov r8, r1
_081C4CB4:
cmp r4, 0
bne _081C4CD4
ldrb r1, [r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
mov r2, r9
b _081C4CE4
.pool
_081C4CD4:
cmp r4, 0x9
bne _081C4CEC
ldrb r1, [r5, 0x9]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
mov r2, r8
_081C4CE4:
lsrs r1, r2, 24
bl StartSpriteAnim
b _081C4D02
_081C4CEC:
adds r0, r5, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
adds r1, r6, 0x6
lsls r1, 24
lsrs r1, 24
bl StartSpriteAnim
_081C4D02:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x9
bls _081C4CB4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C4C84
thumb_func_start sub_81C4D18
sub_81C4D18: @ 81C4D18
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_0203CF1C
ldr r2, =0x000040d3
adds r0, r2
ldr r1, [r1]
adds r5, r1, r0
movs r3, 0
ldr r4, =gSprites
movs r7, 0x5
negs r7, r7
movs r6, 0
_081C4D32:
adds r2, r5, r3
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
strh r6, [r0, 0x30]
ldrb r0, [r2]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
adds r1, 0x3E
ldrb r2, [r1]
adds r0, r7, 0
ands r0, r2
strb r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x9
bls _081C4D32
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4D18
thumb_func_start sub_81C4D70
sub_81C4D70: @ 81C4D70
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
ldr r4, =gUnknown_0203CF28
movs r0, 0x4
bl Alloc
str r0, [r4]
ldr r1, [r5]
lsls r0, r1, 20
lsrs r4, r0, 30
cmp r4, 0
bne _081C4DDC
lsls r0, r1, 30
lsrs r0, 30
movs r1, 0x8
movs r2, 0
bl SetBgAttribute
ldr r3, [r5]
lsls r0, r3, 30
lsrs r0, 30
ldr r1, =gUnknown_0861D1A0
lsls r3, 22
lsrs r3, 24
str r4, [sp]
movs r2, 0
bl decompress_and_copy_tile_data_to_vram
ldr r0, [r5]
lsls r0, 30
lsrs r0, 30
ldr r1, =gUnknown_0861DEF4
movs r2, 0x1
str r2, [sp]
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, [r5]
lsls r1, 22
lsrs r1, 24
str r4, [sp]
movs r2, 0x20
movs r3, 0x20
bl sub_8199D3C
b _081C4E2E
.pool
_081C4DDC:
lsls r0, r1, 30
lsrs r0, 30
movs r1, 0x8
movs r2, 0x2
bl SetBgAttribute
ldr r0, [r5]
lsls r0, 30
lsrs r0, 30
movs r1, 0x9
movs r2, 0x1
bl SetBgAttribute
ldr r3, [r5]
lsls r0, r3, 30
lsrs r0, 30
ldr r1, =gUnknown_0861E208
lsls r3, 22
lsrs r3, 24
movs r2, 0
str r2, [sp]
bl decompress_and_copy_tile_data_to_vram
ldr r0, [r5]
lsls r0, 30
lsrs r0, 30
ldr r1, =gUnknown_0861EF64
movs r4, 0x1
str r4, [sp]
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, [r5]
lsls r1, 22
lsrs r1, 24
str r4, [sp]
movs r2, 0x40
movs r3, 0x40
bl sub_8199D3C
_081C4E2E:
ldr r0, [r5]
lsls r0, 30
lsrs r0, 30
movs r1, 0
movs r2, 0
bl ChangeBgX
ldr r0, [r5]
lsls r0, 30
lsrs r0, 30
movs r1, 0
movs r2, 0
bl ChangeBgY
ldr r0, [r5]
lsls r0, 30
lsrs r0, 30
movs r1, 0x4
movs r2, 0x1
bl SetBgAttribute
ldr r0, =gUnknown_0861D140
ldr r1, =gPlttBufferUnfaded + 0xE0
ldr r2, =0x04000018
bl CpuSet
ldr r0, =gUnknown_0203CF28
ldr r1, [r0]
ldr r0, [r5]
lsls r0, 30
lsrs r0, 30
strb r0, [r1]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4D70
thumb_func_start sub_81C4E90
sub_81C4E90: @ 81C4E90
push {lr}
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
beq _081C4EA0
movs r0, 0x1
b _081C4EAC
_081C4EA0:
ldr r0, =gUnknown_0203CF28
ldr r0, [r0]
ldrb r0, [r0]
bl ShowBg
movs r0, 0
_081C4EAC:
pop {r1}
bx r1
.pool
thumb_func_end sub_81C4E90
thumb_func_start sub_81C4EB4
sub_81C4EB4: @ 81C4EB4
push {r4,lr}
ldr r4, =gUnknown_0203CF28
ldr r0, [r4]
cmp r0, 0
beq _081C4EC6
bl Free
movs r0, 0
str r0, [r4]
_081C4EC6:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4EB4
thumb_func_start sub_81C4ED0
sub_81C4ED0: @ 81C4ED0
push {lr}
adds r1, r0, 0
ldr r0, =gUnknown_0203CF28
ldr r0, [r0]
ldrb r0, [r0]
lsls r1, 8
movs r2, 0
bl ChangeBgY
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4ED0
thumb_func_start sub_81C4EEC
sub_81C4EEC: @ 81C4EEC
ldr r1, =gUnknown_0203CF30
movs r0, 0
strh r0, [r1, 0x6]
strh r0, [r1, 0x8]
bx lr
.pool
thumb_func_end sub_81C4EEC
thumb_func_start sub_81C4EFC
sub_81C4EFC: @ 81C4EFC
push {lr}
ldr r1, =sub_8086194
movs r0, 0
bl sub_81C4F98
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4EFC
thumb_func_start sub_81C4F10
sub_81C4F10: @ 81C4F10
push {lr}
ldr r1, =SetCB2ToReshowScreenAfterMenu2
movs r0, 0x1
bl sub_81C4F98
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4F10
thumb_func_start sub_81C4F24
sub_81C4F24: @ 81C4F24
push {lr}
bl ScriptContext2_Enable
movs r0, 0x1
movs r1, 0
bl FadeScreen
ldr r0, =sub_81C4F44
movs r1, 0xA
bl CreateTask
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4F24
thumb_func_start sub_81C4F44
sub_81C4F44: @ 81C4F44
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081C4F6E
bl overworld_free_bg_tilemaps
ldr r0, =gUnknown_03005DB0
ldr r1, =hm_add_c3_without_phase_2
str r1, [r0]
ldr r1, =c2_exit_to_overworld_2_switch
movs r0, 0x3
bl sub_81C4F98
adds r0, r4, 0
bl DestroyTask
_081C4F6E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4F44
thumb_func_start sub_81C4F84
sub_81C4F84: @ 81C4F84
push {lr}
ldr r0, =gUnknown_0203CF30
ldr r1, [r0]
movs r0, 0x4
bl sub_81C4F98
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4F84
thumb_func_start sub_81C4F98
sub_81C4F98: @ 81C4F98
push {r4-r6,lr}
adds r5, r1, 0
lsls r0, 24
lsrs r4, r0, 24
ldr r6, =gUnknown_0203CF2C
ldr r0, =0x0000098c
bl AllocZeroed
str r0, [r6]
cmp r4, 0x4
beq _081C4FB2
ldr r0, =gUnknown_0203CF30
strb r4, [r0, 0x4]
_081C4FB2:
cmp r5, 0
beq _081C4FBA
ldr r0, =gUnknown_0203CF30
str r5, [r0]
_081C4FBA:
ldr r0, [r6]
movs r1, 0
str r1, [r0]
ldr r1, =0x00000814
adds r0, r1
movs r1, 0xFF
strb r1, [r0]
ldr r0, [r6]
ldr r1, =0x00000816
adds r0, r1
movs r1, 0x1
negs r1, r1
strb r1, [r0]
ldr r0, [r6]
ldr r1, =0x00000804
adds r0, r1
movs r1, 0xFF
movs r2, 0xB
bl memset
ldr r0, [r6]
ldr r1, =0x0000080f
adds r0, r1
movs r1, 0xFF
movs r2, 0x5
bl memset
ldr r0, =sub_81C504C
bl SetMainCallback2
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C4F98
thumb_func_start sub_81C501C
sub_81C501C: @ 81C501C
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl do_scheduled_bg_tilemap_copies_to_vram
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_81C501C
thumb_func_start sub_81C5038
sub_81C5038: @ 81C5038
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_81C5038
thumb_func_start sub_81C504C
sub_81C504C: @ 81C504C
push {lr}
_081C504E:
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C5072
bl sub_81C5078
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C5072
bl sub_81221AC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C504E
_081C5072:
pop {r0}
bx r0
thumb_func_end sub_81C504C
thumb_func_start sub_81C5078
sub_81C5078: @ 81C5078
push {lr}
sub sp, 0x4
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x10
bls _081C508C
b _081C51BC
_081C508C:
lsls r0, 2
ldr r1, =_081C50A0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C50A0:
.4byte _081C50E4
.4byte _081C50EE
.4byte _081C50F4
.4byte _081C50FA
.4byte _081C510C
.4byte _081C5112
.4byte _081C5122
.4byte _081C513C
.4byte _081C5148
.4byte _081C514E
.4byte _081C515C
.4byte _081C5162
.4byte _081C5168
.4byte _081C516E
.4byte _081C5174
.4byte _081C517A
.4byte _081C5188
_081C50E4:
bl SetVBlankHBlankCallbacksToNull
bl clear_scheduled_bg_copies_to_vram
b _081C51A2
_081C50EE:
bl ScanlineEffect_Stop
b _081C51A2
_081C50F4:
bl FreeAllSpritePalettes
b _081C51A2
_081C50FA:
bl ResetPaletteFade
ldr r2, =gPaletteFade
ldrb r0, [r2, 0x8]
movs r1, 0x80
orrs r0, r1
b _081C51A0
.pool
_081C510C:
bl ResetSpriteData
b _081C51A2
_081C5112:
bl sub_81221AC
lsls r0, 24
cmp r0, 0
bne _081C51A2
bl ResetTasks
b _081C51A2
_081C5122:
bl sub_81C51DC
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000984
adds r0, r1
movs r1, 0
strh r1, [r0]
b _081C51A2
.pool
_081C513C:
bl sub_81C5238
lsls r0, 24
cmp r0, 0
beq _081C51D4
b _081C51A2
_081C5148:
bl sub_81C6BD8
b _081C51A2
_081C514E:
bl sub_81C5924
bl sub_81C59BC
bl sub_81C5A20
b _081C51A2
_081C515C:
bl sub_81C5314
b _081C51A2
_081C5162:
bl sub_81C56F8
b _081C51A2
_081C5168:
bl sub_81C6EF4
b _081C51A2
_081C516E:
bl sub_81C5674
b _081C51A2
_081C5174:
bl sub_81C700C
b _081C51A2
_081C517A:
movs r0, 0x1
negs r0, r0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
b _081C51A2
_081C5188:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r2, =gPaletteFade
ldrb r1, [r2, 0x8]
movs r0, 0x7F
ands r0, r1
_081C51A0:
strb r0, [r2, 0x8]
_081C51A2:
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _081C51D4
.pool
_081C51BC:
ldr r0, =sub_81C5038
bl SetVBlankCallback
ldr r0, =sub_81C501C
bl SetMainCallback2
movs r0, 0x1
b _081C51D6
.pool
_081C51D4:
movs r0, 0
_081C51D6:
add sp, 0x4
pop {r1}
bx r1
thumb_func_end sub_81C5078
thumb_func_start sub_81C51DC
sub_81C51DC: @ 81C51DC
push {lr}
bl ResetVramOamAndBgCntRegs
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_0861F2B4
movs r0, 0
movs r2, 0x3
bl InitBgsFromTemplates
ldr r0, =gUnknown_0203CF2C
ldr r1, [r0]
adds r1, 0x4
movs r0, 0x2
bl SetBgTilemapBuffer
bl ResetAllBgsCoordinates
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuReg
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
pop {r0}
bx r0
.pool
thumb_func_end sub_81C51DC
thumb_func_start sub_81C5238
sub_81C5238: @ 81C5238
push {r4,lr}
sub sp, 0x4
ldr r4, =gUnknown_0203CF2C
ldr r0, [r4]
ldr r1, =0x00000984
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x4
bhi _081C52F0
lsls r0, 2
ldr r1, =_081C5264
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081C5264:
.4byte _081C5278
.4byte _081C5294
.4byte _081C52B8
.4byte _081C52C8
.4byte _081C52D4
_081C5278:
bl reset_temp_tile_data_buffers
ldr r1, =gBagScreen_Gfx
movs r0, 0
str r0, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
b _081C52D8
.pool
_081C5294:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C5308
ldr r0, =gUnknown_08D9AE04
ldr r4, =gUnknown_0203CF2C
ldr r1, [r4]
adds r1, 0x4
bl LZDecompressWram
ldr r1, [r4]
b _081C52DC
.pool
_081C52B8:
ldr r0, =gUnknown_08D9AF44
movs r1, 0
movs r2, 0x20
bl LoadCompressedPalette
b _081C52D8
.pool
_081C52C8:
ldr r0, =gUnknown_0861F3CC
bl LoadCompressedObjectPic
b _081C52D8
.pool
_081C52D4:
bl sub_81C6E98
_081C52D8:
ldr r0, =gUnknown_0203CF2C
ldr r1, [r0]
_081C52DC:
ldr r0, =0x00000984
adds r1, r0
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _081C5308
.pool
_081C52F0:
bl LoadListMenuArrowsGfx
ldr r0, [r4]
ldr r1, =0x00000984
adds r0, r1
movs r1, 0
strh r1, [r0]
movs r0, 0x1
b _081C530A
.pool
_081C5308:
movs r0, 0
_081C530A:
add sp, 0x4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C5238
thumb_func_start sub_81C5314
sub_81C5314: @ 81C5314
push {r4-r7,lr}
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldr r1, =0x00000ca9
adds r0, r2, r1
ldrb r1, [r0]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
ldr r3, =0x00000e2c
adds r0, r3
adds r7, r2, r0
movs r6, 0
ldr r1, =gUnknown_0203CF2C
ldr r0, [r1]
ldr r4, =0x00000821
adds r0, r4
ldrb r0, [r0]
subs r0, 0x1
cmp r6, r0
bge _081C5382
adds r5, r1, 0
_081C5344:
lsls r1, r6, 1
adds r4, r1, r6
lsls r4, 3
ldr r0, =0x0000087c
adds r4, r0
ldr r0, [r5]
adds r0, r4
adds r1, r7
ldrh r1, [r1]
bl sub_81C540C
ldr r1, [r5]
lsls r2, r6, 3
ldr r3, =0x00000824
adds r0, r1, r3
adds r0, r2
adds r4, r1, r4
str r4, [r0]
ldr r4, =0x00000828
adds r0, r1, r4
adds r0, r2
str r6, [r0]
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
ldr r0, =0x00000821
adds r1, r0
ldrb r0, [r1]
subs r0, 0x1
cmp r6, r0
blt _081C5344
_081C5382:
ldr r5, =gUnknown_0203CF2C
lsls r4, r6, 1
adds r4, r6
lsls r4, 3
ldr r1, =0x0000087c
adds r4, r1
ldr r0, [r5]
adds r0, r4
ldr r1, =gText_CloseBag
bl StringCopy
ldr r1, [r5]
lsls r2, r6, 3
ldr r3, =0x00000824
adds r0, r1, r3
adds r0, r2
adds r4, r1, r4
str r4, [r0]
ldr r4, =0x00000828
adds r1, r4
adds r1, r2
movs r0, 0x2
negs r0, r0
str r0, [r1]
ldr r2, =gMultiuseListMenuTemplate
adds r1, r2, 0
ldr r0, =gUnknown_0861F2C0
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldr r1, [r5]
ldr r6, =0x00000821
adds r0, r1, r6
ldrb r0, [r0]
strh r0, [r2, 0xC]
adds r3, r1, r3
str r3, [r2]
ldr r7, =0x00000822
adds r1, r7
ldrb r0, [r1]
strh r0, [r2, 0xE]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5314
thumb_func_start sub_81C540C
sub_81C540C: @ 81C540C
push {r4,r5,lr}
adds r5, r0, 0
lsls r1, 16
lsrs r4, r1, 16
adds r0, r4, 0
bl ItemId_GetPocket
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bne _081C5450
ldr r0, =gStringVar1
adds r1, r4, 0
subs r1, 0x84
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r1, =gStringVar2
adds r0, r4, 0
bl CopyItemName
ldr r1, =gText_UnkF908Var1Clear7Var2
adds r0, r5, 0
bl StringExpandPlaceholders
b _081C5458
.pool
_081C5450:
adds r0, r4, 0
adds r1, r5, 0
bl CopyItemName
_081C5458:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C540C
thumb_func_start sub_81C5460
sub_81C5460: @ 81C5460
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r1, 24
cmp r1, 0x1
beq _081C5476
movs r0, 0x5
bl PlaySE
bl sub_81C6F20
_081C5476:
ldr r5, =gUnknown_0203CF2C
ldr r1, [r5]
ldr r2, =0x00000814
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0xFF
bne _081C5504
adds r2, 0x1
adds r0, r1, r2
ldrb r1, [r0]
movs r0, 0x1
eors r0, r1
bl sub_81C6FF8
movs r0, 0x2
negs r0, r0
cmp r4, r0
beq _081C54E0
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
lsls r3, r4, 1
ldr r1, =0x00000ca9
adds r0, r2, r1
ldrb r1, [r0]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r3, r0
ldr r0, =0x00000e2c
adds r2, r0
adds r2, r3
ldrh r0, [r2]
ldr r1, [r5]
ldr r2, =0x00000815
adds r1, r2
ldrb r1, [r1]
bl sub_81C6F90
b _081C54EE
.pool
_081C54E0:
ldr r0, =0x0000ffff
ldr r1, [r5]
ldr r2, =0x00000815
adds r1, r2
ldrb r1, [r1]
bl sub_81C6F90
_081C54EE:
ldr r0, =gUnknown_0203CF2C
ldr r1, [r0]
ldr r0, =0x00000815
adds r1, r0
ldrb r0, [r1]
movs r2, 0x1
eors r0, r2
strb r0, [r1]
adds r0, r4, 0
bl sub_81C55D8
_081C5504:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5460
thumb_func_start sub_81C5518
sub_81C5518: @ 81C5518
push {r4-r6,lr}
sub sp, 0x10
adds r4, r1, 0
lsls r0, 24
lsrs r6, r0, 24
lsls r2, 24
lsrs r5, r2, 24
movs r0, 0x2
negs r0, r0
cmp r4, r0
beq _081C55B8
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000814
adds r0, r1
ldrb r1, [r0]
cmp r1, 0xFF
beq _081C5560
lsls r0, r4, 24
lsrs r0, 24
cmp r1, r0
bne _081C5558
adds r0, r5, 0
movs r1, 0x1
bl sub_81C5AB8
b _081C5560
.pool
_081C5558:
adds r0, r5, 0
movs r1, 0xFF
bl sub_81C5AB8
_081C5560:
ldr r0, =gStringVar1
ldr r1, =gSaveBlock2Ptr
ldr r3, [r1]
ldr r2, =0x00000ca9
adds r1, r3, r2
ldrb r2, [r1]
lsls r2, 30
lsrs r2, 30
lsls r1, r2, 2
adds r1, r2
lsls r1, 1
adds r1, r4, r1
ldr r2, =0x00000e54
adds r3, r2
adds r3, r1
ldrb r1, [r3]
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, =gStringVar4
ldr r1, =gText_xVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x7
adds r1, r4, 0
movs r2, 0x77
bl GetStringRightAlignXOffset
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
movs r1, 0
str r1, [sp]
str r1, [sp, 0x4]
movs r0, 0xFF
str r0, [sp, 0x8]
str r1, [sp, 0xC]
adds r0, r6, 0
adds r1, r4, 0
adds r3, r5, 0
bl sub_81C6C94
_081C55B8:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5518
thumb_func_start sub_81C55D8
sub_81C55D8: @ 81C55D8
push {r4,lr}
sub sp, 0x10
adds r3, r0, 0
movs r0, 0x2
negs r0, r0
cmp r3, r0
beq _081C561C
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
lsls r3, 1
ldr r1, =0x00000ca9
adds r0, r2, r1
ldrb r1, [r0]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r3, r0
ldr r0, =0x00000e2c
adds r2, r0
adds r2, r3
ldrh r0, [r2]
bl ItemId_GetDescription
adds r4, r0, 0
b _081C5638
.pool
_081C561C:
ldr r0, =gStringVar1
ldr r2, =gReturnToXStringsTable2
ldr r1, =gUnknown_0203CF30
ldrb r1, [r1, 0x4]
lsls r1, 2
adds r1, r2
ldr r1, [r1]
bl StringCopy
ldr r4, =gStringVar4
ldr r1, =gText_ReturnToVar1
adds r0, r4, 0
bl StringExpandPlaceholders
_081C5638:
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r1, 0
str r1, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
adds r1, r4, 0
movs r2, 0x3
movs r3, 0
bl sub_81C6C3C
add sp, 0x10
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C55D8
thumb_func_start sub_81C5674
sub_81C5674: @ 81C5674
push {r4,lr}
sub sp, 0x10
ldr r4, =gUnknown_0203CF2C
ldr r1, [r4]
ldr r2, =0x00000816
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0xFF
bne _081C56B4
adds r2, 0xB
adds r0, r1, r2
ldrb r0, [r0]
adds r2, 0x1
adds r1, r2
ldrb r1, [r1]
subs r0, r1
str r0, [sp]
ldr r0, =0x00000b5e
str r0, [sp, 0x4]
str r0, [sp, 0x8]
ldr r0, =gUnknown_0203CF38
str r0, [sp, 0xC]
movs r0, 0x2
movs r1, 0xAC
movs r2, 0xC
movs r3, 0x94
bl AddScrollIndicatorArrowPairParametrized
ldr r1, [r4]
ldr r2, =0x00000816
adds r1, r2
strb r0, [r1]
_081C56B4:
add sp, 0x10
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5674
thumb_func_start sub_81C56CC
sub_81C56CC: @ 81C56CC
push {r4,lr}
ldr r4, =gUnknown_0203CF2C
ldr r0, [r4]
ldr r2, =0x00000816
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0xFF
beq _081C56EA
bl RemoveScrollIndicatorArrowPair
ldr r0, [r4]
ldr r1, =0x00000816
adds r0, r1
movs r1, 0xFF
strb r1, [r0]
_081C56EA:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C56CC
thumb_func_start sub_81C56F8
sub_81C56F8: @ 81C56F8
push {r4,lr}
ldr r0, =sub_81C5BC8
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
ldr r0, =gMultiuseListMenuTemplate
ldr r2, =gUnknown_0203CF30
ldrh r1, [r2, 0x8]
ldrh r2, [r2, 0x6]
bl ListMenuInit
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C56F8
thumb_func_start sub_81C5738
sub_81C5738: @ 81C5738
push {r4-r6,lr}
mov r6, r8
push {r6}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
ldr r2, =gSaveBlock2Ptr
ldr r6, [r2]
ldr r3, =0x00000ca9
adds r2, r6, r3
ldrb r3, [r2]
lsls r3, 30
lsrs r2, r3, 30
lsls r4, r2, 2
adds r4, r2
lsls r4, 2
ldr r2, =0x00000e2c
adds r4, r2
adds r4, r6, r4
lsrs r3, 30
lsls r2, r3, 2
adds r2, r3
lsls r2, 1
ldr r3, =0x00000e54
adds r2, r3
adds r6, r2
lsls r5, r0, 1
adds r5, r4
ldrh r2, [r5]
mov r8, r2
lsls r2, r1, 1
adds r2, r4
ldrh r3, [r2]
strh r3, [r5]
mov r3, r8
strh r3, [r2]
adds r0, r6, r0
ldrb r2, [r0]
adds r6, r1
ldrb r1, [r6]
strb r1, [r0]
strb r2, [r6]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5738
thumb_func_start sub_81C57A8
sub_81C57A8: @ 81C57A8
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r4, r0, 24
adds r7, r4, 0
lsls r1, 24
lsrs r5, r1, 24
ldr r0, =gSaveBlock2Ptr
ldr r3, [r0]
ldr r1, =0x00000ca9
adds r0, r3, r1
ldrb r1, [r0]
lsls r1, 30
lsrs r2, r1, 30
lsls r0, r2, 2
adds r0, r2
lsls r0, 2
ldr r2, =0x00000e2c
adds r0, r2
adds r6, r3, r0
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 1
ldr r1, =0x00000e54
adds r0, r1
adds r3, r0
cmp r4, r5
beq _081C5862
lsls r0, r4, 1
adds r0, r6
ldrh r0, [r0]
mov r12, r0
adds r0, r3, r4
ldrb r0, [r0]
mov r8, r0
cmp r5, r4
bls _081C5830
subs r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
lsls r2, r4, 16
cmp r4, r5
bge _081C5854
_081C5802:
asrs r2, 16
lsls r0, r2, 1
adds r0, r6
ldrh r1, [r0, 0x2]
strh r1, [r0]
adds r1, r3, r2
ldrb r0, [r1, 0x1]
strb r0, [r1]
adds r2, 0x1
lsls r2, 16
asrs r0, r2, 16
cmp r0, r5
blt _081C5802
b _081C5854
.pool
_081C5830:
lsls r2, r7, 16
cmp r7, r5
ble _081C5854
_081C5836:
asrs r2, 16
lsls r1, r2, 1
adds r1, r6
subs r0, r1, 0x2
ldrh r0, [r0]
strh r0, [r1]
adds r1, r3, r2
subs r0, r1, 0x1
ldrb r0, [r0]
strb r0, [r1]
subs r2, 0x1
lsls r2, 16
asrs r0, r2, 16
cmp r0, r5
bgt _081C5836
_081C5854:
lsls r0, r5, 1
adds r0, r6
mov r2, r12
strh r2, [r0]
adds r0, r3, r5
mov r1, r8
strb r1, [r0]
_081C5862:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C57A8
thumb_func_start sub_81C586C
sub_81C586C: @ 81C586C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r0, =gSaveBlock2Ptr
ldr r3, [r0]
ldr r1, =0x00000ca9
adds r0, r3, r1
ldrb r1, [r0]
lsls r1, 30
lsrs r2, r1, 30
lsls r0, r2, 2
adds r0, r2
lsls r0, 2
ldr r2, =0x00000e2c
adds r0, r2
adds r0, r3
mov r9, r0
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 1
ldr r4, =0x00000e54
adds r0, r4
adds r3, r0
mov r8, r3
movs r5, 0
movs r3, 0
_081C58A4:
lsls r0, r5, 1
mov r1, r9
adds r2, r0, r1
ldrh r0, [r2]
mov r4, r8
adds r1, r4, r5
cmp r0, 0
beq _081C58BA
ldrb r0, [r1]
cmp r0, 0
bne _081C58BE
_081C58BA:
strh r3, [r2]
strb r3, [r1]
_081C58BE:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x9
bls _081C58A4
movs r5, 0
_081C58CA:
adds r1, r5, 0x1
lsls r0, r1, 24
lsrs r4, r0, 24
adds r7, r1, 0
cmp r4, 0x9
bhi _081C58FE
lsls r0, r5, 1
mov r1, r9
adds r6, r0, r1
_081C58DC:
ldrh r0, [r6]
cmp r0, 0
beq _081C58EC
mov r2, r8
adds r0, r2, r5
ldrb r0, [r0]
cmp r0, 0
bne _081C58F4
_081C58EC:
adds r0, r5, 0
adds r1, r4, 0
bl sub_81C5738
_081C58F4:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x9
bls _081C58DC
_081C58FE:
lsls r0, r7, 24
lsrs r5, r0, 24
cmp r5, 0x8
bls _081C58CA
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C586C
thumb_func_start sub_81C5924
sub_81C5924: @ 81C5924
push {r4-r6,lr}
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldr r1, =0x00000ca9
adds r0, r2, r1
ldrb r1, [r0]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
ldr r1, =0x00000e2c
adds r0, r1
adds r5, r2, r0
bl sub_81C586C
ldr r3, =gUnknown_0203CF2C
ldr r0, [r3]
ldr r2, =0x00000821
adds r0, r2
movs r1, 0
strb r1, [r0]
movs r4, 0
adds r6, r3, 0
_081C5954:
lsls r0, r4, 1
adds r0, r5
ldrh r0, [r0]
ldr r3, =gUnknown_0203CF2C
cmp r0, 0
beq _081C596A
ldr r1, [r6]
adds r1, r2
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
_081C596A:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x9
bls _081C5954
ldr r0, [r3]
ldr r2, =0x00000821
adds r0, r2
ldrb r1, [r0]
adds r1, 0x1
strb r1, [r0]
ldr r0, [r3]
adds r2, r0, r2
ldrb r2, [r2]
cmp r2, 0x8
bls _081C59AC
ldr r2, =0x00000822
adds r1, r0, r2
movs r0, 0x8
strb r0, [r1]
b _081C59B2
.pool
_081C59AC:
ldr r1, =0x00000822
adds r0, r1
strb r2, [r0]
_081C59B2:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5924
thumb_func_start sub_81C59BC
sub_81C59BC: @ 81C59BC
push {r4,r5,lr}
ldr r0, =gUnknown_0203CF30
ldrh r1, [r0, 0x8]
adds r3, r0, 0
ldr r4, =gUnknown_0203CF2C
cmp r1, 0
beq _081C59E4
ldrh r0, [r3, 0x8]
ldr r1, [r4]
ldr r5, =0x00000822
adds r2, r1, r5
ldrb r2, [r2]
adds r0, r2
subs r5, 0x1
adds r1, r5
ldrb r1, [r1]
cmp r0, r1
ble _081C59E4
subs r0, r1, r2
strh r0, [r3, 0x8]
_081C59E4:
adds r2, r3, 0
ldrh r1, [r2, 0x8]
ldrh r0, [r2, 0x6]
adds r1, r0
ldr r0, [r4]
ldr r4, =0x00000821
adds r0, r4
ldrb r0, [r0]
cmp r1, r0
blt _081C5A18
adds r1, r0, 0
cmp r1, 0
bne _081C5A14
strh r1, [r2, 0x6]
b _081C5A18
.pool
_081C5A14:
subs r0, 0x1
strh r0, [r3, 0x6]
_081C5A18:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C59BC
thumb_func_start sub_81C5A20
sub_81C5A20: @ 81C5A20
push {r4-r7,lr}
ldr r0, =gUnknown_0203CF30
ldrh r1, [r0, 0x6]
adds r5, r0, 0
cmp r1, 0x4
bls _081C5A80
movs r4, 0
ldrh r0, [r5, 0x6]
subs r0, 0x4
cmp r4, r0
bgt _081C5A80
ldrh r2, [r5, 0x8]
ldr r6, =gUnknown_0203CF2C
ldr r0, [r6]
ldr r3, =0x00000822
adds r1, r0, r3
ldrb r1, [r1]
adds r2, r1
ldr r7, =0x00000821
adds r0, r7
ldrb r0, [r0]
cmp r2, r0
beq _081C5A80
adds r3, r5, 0
_081C5A50:
ldrh r0, [r3, 0x6]
subs r0, 0x1
strh r0, [r3, 0x6]
ldrh r0, [r3, 0x8]
adds r0, 0x1
strh r0, [r3, 0x8]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
ldrh r0, [r3, 0x6]
subs r0, 0x4
cmp r4, r0
bgt _081C5A80
ldrh r2, [r5, 0x8]
ldr r1, [r6]
ldr r7, =0x00000822
adds r0, r1, r7
ldrb r0, [r0]
adds r2, r0
ldr r0, =0x00000821
adds r1, r0
ldrb r1, [r1]
cmp r2, r1
bne _081C5A50
_081C5A80:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5A20
thumb_func_start sub_81C5A98
sub_81C5A98: @ 81C5A98
push {r4,lr}
adds r4, r1, 0
lsls r0, 24
lsrs r0, 24
lsls r4, 24
lsrs r4, 24
bl ListMenuGetYCoordForPrintingArrowCursor
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
bl sub_81C5AB8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81C5A98
thumb_func_start sub_81C5AB8
sub_81C5AB8: @ 81C5AB8
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
lsrs r2, r1, 24
cmp r2, 0xFF
bne _081C5AF4
movs r0, 0x1
movs r1, 0
bl GetMenuCursorDimensionByFont
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
movs r1, 0x1
bl GetMenuCursorDimensionByFont
lsls r0, 24
lsrs r0, 24
str r4, [sp]
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
adds r3, r5, 0
bl FillWindowPixelRect
b _081C5B08
_081C5AF4:
ldr r1, =gText_SelectorArrow2
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
str r0, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0
adds r3, r5, 0
bl sub_81C6C3C
_081C5B08:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5AB8
thumb_func_start sub_81C5B14
sub_81C5B14: @ 81C5B14
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, =sub_81C5B4C
str r1, [r0]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5B14
thumb_func_start sub_81C5B4C
sub_81C5B4C: @ 81C5B4C
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 r2, r0, r1
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081C5BBC
ldrb r0, [r2]
ldr r4, =gUnknown_0203CF38
subs r2, r4, 0x2
adds r1, r4, 0
bl sub_81AE6C8
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0
beq _081C5B94
bl SetMainCallback2
b _081C5B9E
.pool
_081C5B94:
adds r0, r4, 0
subs r0, 0x8
ldr r0, [r0]
bl SetMainCallback2
_081C5B9E:
bl sub_81C56CC
bl ResetSpriteData
bl FreeAllSpritePalettes
bl FreeAllWindowBuffers
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
bl Free
adds r0, r5, 0
bl DestroyTask
_081C5BBC:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5B4C
thumb_func_start sub_81C5BC8
sub_81C5BC8: @ 81C5BC8
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r7, r0, r1
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C5BEA
b _081C5D16
_081C5BEA:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081C5BF8
b _081C5D16
_081C5BF8:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
ands r0, r1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
beq _081C5C5C
ldr r4, =gUnknown_0203CF30
ldrb r0, [r4, 0x4]
cmp r0, 0x2
bne _081C5C12
b _081C5D16
_081C5C12:
ldrb r0, [r7]
adds r1, r4, 0
adds r1, 0x8
adds r2, r4, 0x6
bl sub_81AE860
ldrh r1, [r4, 0x8]
ldrh r0, [r4, 0x6]
adds r1, r0
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r2, =0x00000821
adds r0, r2
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
beq _081C5D16
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
bl sub_81C67CC
b _081C5D16
.pool
_081C5C5C:
ldrb r0, [r7]
bl ListMenuHandleInputGetItemId
adds r6, r0, 0
ldrb r0, [r7]
ldr r1, =gUnknown_0203CF38
mov r8, r1
mov r2, r8
subs r2, 0x2
bl sub_81AE860
movs r0, 0x2
negs r0, r0
cmp r6, r0
beq _081C5C88
adds r0, 0x1
cmp r6, r0
bne _081C5CA0
b _081C5D16
.pool
_081C5C88:
movs r0, 0x5
bl PlaySE
ldr r0, =gSpecialVar_ItemId
strh r4, [r0]
adds r0, r5, 0
bl sub_81C5B14
b _081C5D16
.pool
_081C5CA0:
movs r0, 0x5
bl PlaySE
ldr r2, =gSpecialVar_ItemId
mov r12, r2
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
lsls r3, r6, 1
ldr r0, =0x00000ca9
adds r4, r2, r0
ldrb r1, [r4]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r3, r0
ldr r1, =0x00000e2c
adds r0, r2, r1
adds r0, r3
ldrh r0, [r0]
mov r1, r12
strh r0, [r1]
strh r6, [r7, 0x2]
ldrb r1, [r4]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 1
adds r0, r6, r0
ldr r1, =0x00000e54
adds r2, r1
adds r2, r0
ldrb r0, [r2]
strh r0, [r7, 0x4]
mov r0, r8
subs r0, 0x8
ldrb r0, [r0, 0x4]
cmp r0, 0x2
bne _081C5D10
adds r0, r5, 0
bl sub_81C674C
b _081C5D16
.pool
_081C5D10:
adds r0, r5, 0
bl sub_81C5D20
_081C5D16:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C5BC8
thumb_func_start sub_81C5D20
sub_81C5D20: @ 81C5D20
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
bl sub_81C56CC
ldrb r0, [r4]
movs r1, 0x1
bl sub_81C5A98
ldr r0, =gUnknown_0203CF30
ldrb r4, [r0, 0x4]
cmp r4, 0x1
beq _081C5D74
cmp r4, 0x3
beq _081C5DC4
ldr r0, =gUnknown_0203CF2C
ldr r1, [r0]
ldr r0, =0x00000818
adds r2, r1, r0
ldr r0, =gUnknown_0861F308
str r0, [r2]
movs r0, 0x82
lsls r0, 4
adds r1, r0
movs r0, 0x4
b _081C5DD8
.pool
_081C5D74:
ldr r0, =gSpecialVar_ItemId
ldrh r0, [r0]
bl ItemId_GetBattleUsage
lsls r0, 24
cmp r0, 0
beq _081C5DA0
ldr r0, =gUnknown_0203CF2C
ldr r1, [r0]
ldr r0, =0x00000818
adds r2, r1, r0
ldr r0, =gUnknown_0861F30E
b _081C5DCE
.pool
_081C5DA0:
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000818
adds r2, r0, r1
ldr r1, =gUnknown_0861F310
str r1, [r2]
movs r1, 0x82
lsls r1, 4
adds r0, r1
strb r4, [r0]
b _081C5DDA
.pool
_081C5DC4:
ldr r0, =gUnknown_0203CF2C
ldr r1, [r0]
ldr r0, =0x00000818
adds r2, r1, r0
ldr r0, =gUnknown_0861F30C
_081C5DCE:
str r0, [r2]
movs r0, 0x82
lsls r0, 4
adds r1, r0
movs r0, 0x2
_081C5DD8:
strb r0, [r1]
_081C5DDA:
ldr r0, =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, =gStringVar1
bl CopyItemName
ldr r4, =gStringVar4
ldr r1, =gText_Var1IsSelected
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r1, 0
str r1, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
adds r1, r4, 0
movs r2, 0x3
movs r3, 0
bl sub_81C6C3C
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
movs r1, 0x82
lsls r1, 4
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _081C5E3C
movs r0, 0
b _081C5E42
.pool
_081C5E3C:
cmp r0, 0x2
bne _081C5E50
movs r0, 0x1
_081C5E42:
bl sub_81C6D24
lsls r0, 24
lsrs r0, 24
bl sub_81C5EAC
b _081C5E62
_081C5E50:
movs r0, 0x2
bl sub_81C6D24
lsls r0, 24
lsrs r0, 24
movs r1, 0x2
movs r2, 0x2
bl sub_81C5F08
_081C5E62:
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
movs r1, 0x82
lsls r1, 4
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x4
bne _081C5E8C
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, =sub_81C5FE4
b _081C5E98
.pool
_081C5E8C:
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, =sub_81C5F68
_081C5E98:
str r0, [r1]
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5D20
thumb_func_start sub_81C5EAC
sub_81C5EAC: @ 81C5EAC
push {r4-r6,lr}
sub sp, 0x14
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
ldr r6, =gUnknown_0203CF2C
ldr r1, [r6]
movs r5, 0x82
lsls r5, 4
adds r0, r1, r5
ldrb r0, [r0]
str r0, [sp, 0x8]
ldr r0, =gUnknown_0861F2D8
str r0, [sp, 0xC]
ldr r0, =0x00000818
adds r1, r0
ldr r0, [r1]
str r0, [sp, 0x10]
adds r0, r4, 0
movs r1, 0x7
movs r2, 0x8
movs r3, 0x1
bl AddItemMenuActionTextPrinters
ldr r0, [r6]
adds r0, r5
ldrb r1, [r0]
adds r0, r4, 0
movs r2, 0
bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5EAC
thumb_func_start sub_81C5F08
sub_81C5F08: @ 81C5F08
push {r4-r6,lr}
sub sp, 0x14
adds r4, r0, 0
adds r5, r1, 0
adds r6, r2, 0
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
lsls r6, 24
lsrs r6, 24
movs r0, 0x38
str r0, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
ldr r0, =gUnknown_0861F2D8
str r0, [sp, 0xC]
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000818
adds r0, r1
ldr r0, [r0]
str r0, [sp, 0x10]
adds r0, r4, 0
movs r1, 0x7
movs r2, 0x8
movs r3, 0x1
bl sub_8198DBC
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r1, 0x38
adds r2, r5, 0
adds r3, r6, 0
bl sub_8199944
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5F08
thumb_func_start sub_81C5F68
sub_81C5F68: @ 81C5F68
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C5FD0
bl ProcessMenuInputNoWrapAround
lsls r0, 24
asrs r4, r0, 24
movs r0, 0x2
negs r0, r0
cmp r4, r0
beq _081C5FD0
adds r0, 0x1
cmp r4, r0
bne _081C5FA8
movs r0, 0x5
bl PlaySE
ldr r0, =gUnknown_0861F2D8
ldr r1, [r0, 0x1C]
adds r0, r5, 0
bl _call_via_r1
b _081C5FD0
.pool
_081C5FA8:
movs r0, 0x5
bl PlaySE
ldr r1, =gUnknown_0861F2D8
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r2, =0x00000818
adds r0, r2
ldr r0, [r0]
adds r0, r4
ldrb r0, [r0]
lsls r0, 3
adds r1, 0x4
adds r0, r1
ldr r1, [r0]
cmp r1, 0
beq _081C5FD0
adds r0, r6, 0
bl _call_via_r1
_081C5FD0:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5F68
thumb_func_start sub_81C5FE4
sub_81C5FE4: @ 81C5FE4
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C5FF8
b _081C6160
_081C5FF8:
bl GetMenuCursorPos
lsls r0, 24
lsrs r4, r0, 24
ldr r5, =gMain
ldrh r1, [r5, 0x2E]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081C6040
lsls r0, r4, 24
asrs r0, 24
cmp r0, 0
bgt _081C6016
b _081C6160
_081C6016:
subs r0, 0x2
lsls r0, 24
asrs r0, 24
bl sub_81C616C
lsls r0, 24
cmp r0, 0
bne _081C6028
b _081C6160
_081C6028:
movs r0, 0x5
bl PlaySE
movs r1, 0x1
negs r1, r1
movs r0, 0
bl sub_8199134
b _081C6160
.pool
_081C6040:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081C6084
lsls r0, r4, 24
asrs r1, r0, 24
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
movs r2, 0x82
lsls r2, 4
adds r0, r2
ldrb r0, [r0]
subs r0, 0x2
cmp r1, r0
blt _081C6060
b _081C6160
_081C6060:
adds r0, r1, 0x2
lsls r0, 24
asrs r0, 24
bl sub_81C616C
lsls r0, 24
cmp r0, 0
beq _081C6160
movs r0, 0x5
bl PlaySE
movs r0, 0
movs r1, 0x1
bl sub_8199134
b _081C6160
.pool
_081C6084:
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _081C6098
bl GetLRKeysState
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C60C0
_081C6098:
lsls r0, r4, 24
asrs r1, r0, 24
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C6160
subs r0, r1, 0x1
lsls r0, 24
asrs r0, 24
bl sub_81C616C
lsls r0, 24
cmp r0, 0
beq _081C6160
movs r0, 0x5
bl PlaySE
movs r0, 0x1
negs r0, r0
b _081C60FA
_081C60C0:
ldrh r1, [r5, 0x2E]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _081C60D6
bl GetLRKeysState
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _081C6102
_081C60D6:
lsls r0, r4, 24
asrs r1, r0, 24
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _081C6160
adds r0, r1, 0x1
lsls r0, 24
asrs r0, 24
bl sub_81C616C
lsls r0, 24
cmp r0, 0
beq _081C6160
movs r0, 0x5
bl PlaySE
movs r0, 0x1
_081C60FA:
movs r1, 0
bl sub_8199134
b _081C6160
_081C6102:
ldrh r1, [r5, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C6148
movs r0, 0x5
bl PlaySE
ldr r2, =gUnknown_0861F2D8
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
lsls r1, r4, 24
asrs r1, 24
ldr r3, =0x00000818
adds r0, r3
ldr r0, [r0]
adds r0, r1
ldrb r0, [r0]
lsls r0, 3
adds r2, 0x4
adds r0, r2
ldr r1, [r0]
cmp r1, 0
beq _081C6160
adds r0, r6, 0
bl _call_via_r1
b _081C6160
.pool
_081C6148:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081C6160
movs r0, 0x5
bl PlaySE
ldr r0, =gUnknown_0861F2D8
ldr r1, [r0, 0x1C]
adds r0, r6, 0
bl _call_via_r1
_081C6160:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C5FE4
thumb_func_start sub_81C616C
sub_81C616C: @ 81C616C
push {lr}
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
blt _081C61A0
ldr r0, =gUnknown_0203CF2C
ldr r2, [r0]
movs r3, 0x82
lsls r3, 4
adds r0, r2, r3
ldrb r0, [r0]
cmp r1, r0
bgt _081C61A0
ldr r3, =0x00000818
adds r0, r2, r3
ldr r0, [r0]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x5
beq _081C61A0
movs r0, 0x1
b _081C61A2
.pool
_081C61A0:
movs r0, 0
_081C61A2:
pop {r1}
bx r1
thumb_func_end sub_81C616C
thumb_func_start sub_81C61A8
sub_81C61A8: @ 81C61A8
push {lr}
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
movs r1, 0x82
lsls r1, 4
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _081C61C8
movs r0, 0
bl sub_81C6D6C
b _081C61DA
.pool
_081C61C8:
cmp r0, 0x2
bne _081C61D4
movs r0, 0x1
bl sub_81C6D6C
b _081C61DA
_081C61D4:
movs r0, 0x2
bl sub_81C6D6C
_081C61DA:
pop {r0}
bx r0
thumb_func_end sub_81C61A8
thumb_func_start sub_81C61E0
sub_81C61E0: @ 81C61E0
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r4, =gSpecialVar_ItemId
ldrh r0, [r4]
bl ItemId_GetPocket
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
beq _081C620C
cmp r0, 0x2
beq _081C620C
cmp r0, 0x3
beq _081C620C
ldrh r0, [r4]
bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C6228
_081C620C:
bl sub_81C61A8
ldr r1, =gText_DadsAdvice
ldr r2, =sub_81C6714
adds r0, r5, 0
bl DisplayItemMessageInBattlePyramid
b _081C6252
.pool
_081C6228:
ldrh r0, [r4]
bl ItemId_GetFieldFunc
cmp r0, 0
beq _081C6252
bl sub_81C61A8
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldrh r0, [r4]
bl ItemId_GetFieldFunc
adds r1, r0, 0
adds r0, r5, 0
bl _call_via_r1
_081C6252:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81C61E0
thumb_func_start sub_81C6258
sub_81C6258: @ 81C6258
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
bl sub_81C61A8
movs r1, 0x2
ldrsh r0, [r4, r1]
bl sub_81C55D8
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
ldrb r0, [r4]
movs r1, 0
bl sub_81C5A98
adds r0, r5, 0
bl sub_81C629C
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6258
thumb_func_start sub_81C629C
sub_81C629C: @ 81C629C
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_81C5674
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, =sub_81C5BC8
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C629C
thumb_func_start sub_81C62C4
sub_81C62C4: @ 81C62C4
push {r4-r7,lr}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r6, r0, 3
ldr r7, =gTasks + 0x8
adds r4, r6, r7
bl sub_81C61A8
movs r0, 0x1
strh r0, [r4, 0x10]
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _081C62F4
adds r0, r5, 0
bl sub_81C6350
b _081C6334
.pool
_081C62F4:
ldr r0, =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, =gStringVar1
bl CopyItemName
ldr r4, =gStringVar4
ldr r1, =gText_TossHowManyVar1s
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r1, 0
str r1, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
adds r1, r4, 0
movs r2, 0x3
movs r3, 0
bl sub_81C6C3C
bl sub_81C6404
adds r0, r7, 0
subs r0, 0x8
adds r0, r6, r0
ldr r1, =sub_81C64B4
str r1, [r0]
_081C6334:
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C62C4
thumb_func_start sub_81C6350
sub_81C6350: @ 81C6350
push {r4,r5,lr}
sub sp, 0x10
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
ldr r0, =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, =gStringVar1
bl CopyItemName
ldr r0, =gStringVar2
movs r2, 0x10
ldrsh r1, [r4, r2]
movs r2, 0
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, =gStringVar4
ldr r1, =gText_ConfirmTossItems
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r1, 0
str r1, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
adds r1, r4, 0
movs r2, 0x3
movs r3, 0
bl sub_81C6C3C
ldr r1, =gUnknown_0861F314
adds r0, r5, 0
bl sub_81C6DAC
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6350
thumb_func_start sub_81C63D0
sub_81C63D0: @ 81C63D0
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
movs r1, 0x2
ldrsh r0, [r4, r1]
bl sub_81C55D8
ldrb r0, [r4]
movs r1, 0
bl sub_81C5A98
adds r0, r5, 0
bl sub_81C629C
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C63D0
thumb_func_start sub_81C6404
sub_81C6404: @ 81C6404
push {r4,lr}
sub sp, 0xC
ldr r0, =gStringVar1
movs r1, 0x1
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, =gStringVar4
ldr r1, =gText_xVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x3
bl sub_81C6CEC
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x28
bl GetStringCenterAlignXOffset
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x2
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0x1
adds r2, r4, 0
bl PrintTextOnWindow
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6404
thumb_func_start sub_81C645C
sub_81C645C: @ 81C645C
push {r4,lr}
sub sp, 0xC
adds r1, r0, 0
ldr r0, =gStringVar1
lsls r1, 16
asrs r1, 16
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, =gStringVar4
ldr r1, =gText_xVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x28
bl GetStringCenterAlignXOffset
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x2
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0x1
adds r2, r4, 0
bl PrintTextOnWindow
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C645C
thumb_func_start sub_81C64B4
sub_81C64B4: @ 81C64B4
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
adds r0, r4, 0
adds r0, 0x10
ldrh r1, [r4, 0x4]
bl AdjustQuantityAccordingToDPadInput
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C64E8
movs r1, 0x10
ldrsh r0, [r4, r1]
bl sub_81C645C
b _081C6544
.pool
_081C64E8:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C651C
movs r0, 0x5
bl PlaySE
movs r0, 0x3
movs r1, 0
bl sub_8198070
movs r0, 0x3
bl ClearWindowTilemap
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
adds r0, r5, 0
bl sub_81C6350
b _081C6544
.pool
_081C651C:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081C6544
movs r0, 0x5
bl PlaySE
movs r0, 0x3
movs r1, 0
bl sub_8198070
movs r0, 0x3
bl ClearWindowTilemap
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
adds r0, r6, 0
bl sub_81C63D0
_081C6544:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81C64B4
thumb_func_start sub_81C654C
sub_81C654C: @ 81C654C
push {r4-r6,lr}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r5, =gTasks + 0x8
adds r6, r4, r5
ldr r0, =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, =gStringVar1
bl CopyItemName
ldr r0, =gStringVar2
movs r2, 0x10
ldrsh r1, [r6, r2]
movs r2, 0
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r6, =gStringVar4
ldr r1, =gText_ThrewAwayVar2Var1s
adds r0, r6, 0
bl StringExpandPlaceholders
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r1, 0
str r1, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
adds r1, r6, 0
movs r2, 0x3
movs r3, 0
bl sub_81C6C3C
subs r5, 0x8
adds r4, r5
ldr r0, =sub_81C65CC
str r0, [r4]
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C654C
thumb_func_start sub_81C65CC
sub_81C65CC: @ 81C65CC
push {r4-r7,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
ldr r6, =gUnknown_0203CF38
subs r7, r6, 0x2
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _081C662E
movs r0, 0x5
bl PlaySE
ldr r0, =gSpecialVar_ItemId
ldrh r0, [r0]
ldrh r1, [r4, 0x10]
bl RemovePyramidBagItem
ldrb r0, [r4]
adds r1, r6, 0
adds r2, r7, 0
bl sub_81AE6C8
bl sub_81C5924
bl sub_81C59BC
bl sub_81C5314
ldr r0, =gMultiuseListMenuTemplate
ldrh r1, [r6]
ldrh r2, [r7]
bl ListMenuInit
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
adds r0, r5, 0
bl sub_81C629C
_081C662E:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C65CC
thumb_func_start sub_81C6648
sub_81C6648: @ 81C6648
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r6, r4, 0
bl sub_81C61A8
ldr r5, =gSpecialVar_ItemId
ldrh r0, [r5]
bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081C667C
ldr r1, =gText_CantWriteMail
ldr r2, =sub_81C66EC
adds r0, r4, 0
bl DisplayItemMessageInBattlePyramid
b _081C66A6
.pool
_081C667C:
ldrh r0, [r5]
bl itemid_is_unique
lsls r0, 24
cmp r0, 0
bne _081C66A0
ldr r0, =gUnknown_0203CF2C
ldr r1, [r0]
ldr r0, =sub_81B7F60
str r0, [r1]
adds r0, r4, 0
bl sub_81C5B14
b _081C66A6
.pool
_081C66A0:
adds r0, r6, 0
bl sub_81C66AC
_081C66A6:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81C6648
thumb_func_start sub_81C66AC
sub_81C66AC: @ 81C66AC
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, =gStringVar1
bl CopyItemName
ldr r5, =gStringVar4
ldr r1, =gText_Var1CantBeHeld
adds r0, r5, 0
bl StringExpandPlaceholders
ldr r2, =sub_81C66EC
adds r0, r4, 0
adds r1, r5, 0
bl DisplayItemMessageInBattlePyramid
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C66AC
thumb_func_start sub_81C66EC
sub_81C66EC: @ 81C66EC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C670A
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
bl sub_81C6714
_081C670A:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C66EC
thumb_func_start sub_81C6714
sub_81C6714: @ 81C6714
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
bl sub_81C6E1C
movs r1, 0x2
ldrsh r0, [r4, r1]
bl sub_81C55D8
ldrb r0, [r4]
movs r1, 0
bl sub_81C5A98
adds r0, r5, 0
bl sub_81C629C
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6714
thumb_func_start sub_81C674C
sub_81C674C: @ 81C674C
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r6, r4, 0
ldr r5, =gSpecialVar_ItemId
ldrh r0, [r5]
bl itemid_80BF6D8_mail_related
lsls r0, 24
cmp r0, 0
bne _081C677C
ldr r1, =gText_CantWriteMail
ldr r2, =sub_81C66EC
adds r0, r4, 0
bl DisplayItemMessageInBattlePyramid
b _081C6796
.pool
_081C677C:
ldrh r0, [r5]
bl itemid_is_unique
lsls r0, 24
cmp r0, 0
bne _081C6790
adds r0, r4, 0
bl sub_81C5B14
b _081C6796
_081C6790:
adds r0, r6, 0
bl sub_81C66AC
_081C6796:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81C674C
thumb_func_start sub_81C679C
sub_81C679C: @ 81C679C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r4, =gSpecialVar_ItemId
ldrh r0, [r4]
bl ItemId_GetBattleFunc
cmp r0, 0
beq _081C67C0
bl sub_81C61A8
ldrh r0, [r4]
bl ItemId_GetBattleFunc
adds r1, r0, 0
adds r0, r5, 0
bl _call_via_r1
_081C67C0:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C679C
thumb_func_start sub_81C67CC
sub_81C67CC: @ 81C67CC
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks + 0x8
mov r9, r0
adds r5, r4, r0
ldr r0, =gUnknown_0203CF30
ldrh r1, [r0, 0x6]
ldrh r0, [r0, 0x8]
adds r1, r0
strh r1, [r5, 0x2]
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r2, =0x00000814
adds r0, r2
movs r2, 0
mov r8, r2
strb r1, [r0]
ldrb r0, [r5]
movs r1, 0x10
movs r2, 0x1
bl sub_81AF15C
ldr r0, =gSaveBlock2Ptr
ldr r3, [r0]
movs r0, 0x2
ldrsh r2, [r5, r0]
lsls r2, 1
ldr r1, =0x00000ca9
adds r0, r3, r1
ldrb r1, [r0]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r2, r0
ldr r0, =0x00000e2c
adds r3, r0
adds r3, r2
ldrh r0, [r3]
ldr r1, =gStringVar1
bl CopyItemName
ldr r6, =gStringVar4
ldr r1, =gText_MoveVar1Where
adds r0, r6, 0
bl StringExpandPlaceholders
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
mov r1, r8
str r1, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
adds r1, r6, 0
movs r2, 0x3
movs r3, 0
bl sub_81C6C3C
ldrb r0, [r5]
movs r1, 0x1
bl sub_81C5A98
ldrb r0, [r5, 0x2]
bl sub_81C704C
movs r2, 0x8
negs r2, r2
add r9, r2
add r4, r9
ldr r0, =sub_81C68B0
str r0, [r4]
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C67CC
thumb_func_start sub_81C68B0
sub_81C68B0: @ 81C68B0
push {r4-r7,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
bl sub_81221EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081C695C
ldr r7, =gMain
ldrh r1, [r7, 0x2E]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _081C68F8
movs r0, 0x5
bl PlaySE
ldrb r0, [r4]
ldr r1, =gUnknown_0203CF38
subs r2, r1, 0x2
bl sub_81AE860
b _081C6940
.pool
_081C68F8:
ldrb r0, [r4]
bl ListMenuHandleInputGetItemId
adds r6, r0, 0
ldrb r0, [r4]
ldr r4, =gUnknown_0203CF38
subs r2, r4, 0x2
adds r1, r4, 0
bl sub_81AE860
movs r0, 0
bl sub_81C7028
subs r4, 0x8
ldrb r0, [r4, 0x6]
bl sub_81C704C
movs r0, 0x2
negs r0, r0
cmp r6, r0
beq _081C6930
adds r0, 0x1
cmp r6, r0
bne _081C6950
b _081C695C
.pool
_081C6930:
movs r0, 0x5
bl PlaySE
ldrh r1, [r7, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081C6948
_081C6940:
adds r0, r5, 0
bl sub_81C6964
b _081C695C
_081C6948:
adds r0, r5, 0
bl sub_81C6A14
b _081C695C
_081C6950:
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
bl sub_81C6964
_081C695C:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81C68B0
thumb_func_start sub_81C6964
sub_81C6964: @ 81C6964
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r5, r0, r1
ldr r7, =gUnknown_0203CF38
subs r0, r7, 0x2
mov r8, r0
ldrh r0, [r0]
ldrh r1, [r7]
adds r0, r1
lsls r0, 16
lsrs r4, r0, 16
movs r3, 0x2
ldrsh r1, [r5, r3]
cmp r1, r4
beq _081C6996
subs r0, r4, 0x1
cmp r1, r0
bne _081C69A8
_081C6996:
adds r0, r6, 0
bl sub_81C6A14
b _081C69FC
.pool
_081C69A8:
ldrb r0, [r5, 0x2]
lsls r1, r4, 24
lsrs r1, 24
bl sub_81C57A8
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000814
adds r0, r1
movs r1, 0xFF
strb r1, [r0]
movs r0, 0x1
bl sub_81C7028
ldrb r0, [r5]
adds r1, r7, 0
mov r2, r8
bl sub_81AE6C8
movs r3, 0x2
ldrsh r0, [r5, r3]
cmp r0, r4
bge _081C69E0
adds r1, r7, 0
subs r1, 0x8
ldrh r0, [r1, 0x6]
subs r0, 0x1
strh r0, [r1, 0x6]
_081C69E0:
bl sub_81C5314
ldr r0, =gMultiuseListMenuTemplate
ldrh r1, [r7]
mov r3, r8
ldrh r2, [r3]
bl ListMenuInit
lsls r0, 24
lsrs r0, 24
strh r0, [r5]
adds r0, r6, 0
bl sub_81C629C
_081C69FC:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6964
thumb_func_start sub_81C6A14
sub_81C6A14: @ 81C6A14
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
ldr r5, =gUnknown_0203CF38
subs r7, r5, 0x2
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000814
adds r0, r1
movs r1, 0xFF
strb r1, [r0]
movs r0, 0x1
bl sub_81C7028
ldrb r0, [r4]
adds r1, r5, 0
adds r2, r7, 0
bl sub_81AE6C8
movs r0, 0x2
ldrsh r2, [r4, r0]
ldrh r0, [r5]
ldrh r1, [r7]
adds r0, r1
cmp r2, r0
bge _081C6A5E
adds r1, r5, 0
subs r1, 0x8
ldrh r0, [r1, 0x6]
subs r0, 0x1
strh r0, [r1, 0x6]
_081C6A5E:
bl sub_81C5314
ldr r0, =gMultiuseListMenuTemplate
ldrh r1, [r5]
ldrh r2, [r7]
bl ListMenuInit
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
adds r0, r6, 0
bl sub_81C629C
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6A14
thumb_func_start sub_81C6A94
sub_81C6A94: @ 81C6A94
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
ldr r0, =gPlayerParty
mov r9, r0
movs r0, 0x14
bl Alloc
adds r7, r0, 0
movs r0, 0xA
bl Alloc
adds r5, r0, 0
ldr r1, =gSaveBlock2Ptr
mov r8, r1
ldr r2, [r1]
ldr r4, =0x00000ca9
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, 30
lsrs r0, 30
lsls r1, r0, 2
adds r1, r0
lsls r1, 2
adds r1, r2
ldr r0, =0x00000e2c
adds r1, r0
adds r0, r7, 0
movs r2, 0x14
bl memcpy
mov r1, r8
ldr r2, [r1]
adds r0, r2, r4
ldrb r0, [r0]
lsls r0, 30
lsrs r0, 30
lsls r1, r0, 2
adds r1, r0
lsls r1, 1
adds r1, r2
ldr r0, =0x00000e54
adds r1, r0
adds r0, r5, 0
movs r2, 0xA
bl memcpy
movs r6, 0
_081C6AF8:
movs r0, 0x64
muls r0, r6
add r0, r9
movs r1, 0xC
bl GetMonData
lsls r0, 16
lsrs r0, 16
mov r1, sp
strh r0, [r1]
cmp r0, 0
beq _081C6B88
movs r1, 0x1
bl AddBagItem
lsls r0, 24
cmp r0, 0
bne _081C6B88
mov r1, r8
ldr r2, [r1]
adds r0, r2, r4
ldrb r1, [r0]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, =0x00000e2c
adds r0, r1
adds r1, r7, 0
movs r2, 0x14
bl memcpy
mov r0, r8
ldr r2, [r0]
adds r0, r2, r4
ldrb r1, [r0]
lsls r1, 30
lsrs r1, 30
lsls r0, r1, 2
adds r0, r1
lsls r0, 1
adds r0, r2
ldr r1, =0x00000e54
adds r0, r1
adds r1, r5, 0
movs r2, 0xA
bl memcpy
adds r0, r7, 0
bl Free
adds r0, r5, 0
bl Free
ldr r1, =gSpecialVar_Result
movs r0, 0x1
strh r0, [r1]
b _081C6BC6
.pool
_081C6B88:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x2
bls _081C6AF8
movs r1, 0
mov r0, sp
strh r1, [r0]
movs r6, 0
movs r4, 0x64
_081C6B9C:
adds r0, r6, 0
muls r0, r4
add r0, r9
movs r1, 0xC
mov r2, sp
bl SetMonData
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x2
bls _081C6B9C
ldr r1, =gSpecialVar_Result
movs r0, 0
strh r0, [r1]
adds r0, r7, 0
bl Free
adds r0, r5, 0
bl Free
_081C6BC6:
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6A94
thumb_func_start sub_81C6BD8
sub_81C6BD8: @ 81C6BD8
push {r4,lr}
ldr r0, =gUnknown_0861F328
bl InitWindows
bl DeactivateAllTextPrinters
movs r0, 0
movs r1, 0x1
movs r2, 0xE0
bl sub_809882C
movs r0, 0
movs r1, 0xA
movs r2, 0xD0
bl copy_textbox_border_tile_patterns_to_vram
ldr r0, =gUnknown_0860F074
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
movs r4, 0
_081C6C04:
adds r0, r4, 0
movs r1, 0
bl FillWindowPixelBuffer
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
bls _081C6C04
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6BD8
thumb_func_start sub_81C6C3C
sub_81C6C3C: @ 81C6C3C
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x14
ldr r4, [sp, 0x28]
ldr r6, [sp, 0x2C]
ldr r5, [sp, 0x30]
mov r8, r5
ldr r5, [sp, 0x34]
lsls r0, 24
lsrs r0, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r6, [sp, 0x4]
lsls r4, r5, 1
adds r4, r5
ldr r5, =gUnknown_0861F31C
adds r4, r5
str r4, [sp, 0x8]
mov r4, r8
lsls r4, 24
asrs r4, 24
str r4, [sp, 0xC]
str r1, [sp, 0x10]
movs r1, 0x1
bl AddTextPrinterParameterized2
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6C3C
thumb_func_start sub_81C6C94
sub_81C6C94: @ 81C6C94
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x14
ldr r4, [sp, 0x28]
ldr r6, [sp, 0x2C]
ldr r5, [sp, 0x30]
mov r8, r5
ldr r5, [sp, 0x34]
lsls r0, 24
lsrs r0, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r6, [sp, 0x4]
lsls r4, r5, 1
adds r4, r5
ldr r5, =gUnknown_0861F31C
adds r4, r5
str r4, [sp, 0x8]
mov r4, r8
lsls r4, 24
asrs r4, 24
str r4, [sp, 0xC]
str r1, [sp, 0x10]
movs r1, 0x7
bl AddTextPrinterParameterized2
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6C94
thumb_func_start sub_81C6CEC
sub_81C6CEC: @ 81C6CEC
push {lr}
lsls r0, 24
lsrs r0, 24
movs r1, 0
movs r2, 0x1
movs r3, 0xE
bl SetWindowBorderStyle
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
pop {r0}
bx r0
thumb_func_end sub_81C6CEC
thumb_func_start sub_81C6D08
sub_81C6D08: @ 81C6D08
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_0203CF2C
ldr r1, [r1]
ldr r2, =0x0000080f
adds r1, r2
adds r1, r0
ldrb r0, [r1]
bx lr
.pool
thumb_func_end sub_81C6D08
thumb_func_start sub_81C6D24
sub_81C6D24: @ 81C6D24
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gUnknown_0203CF2C
ldr r3, =0x0000080f
adds r1, r2, r3
ldr r0, [r0]
adds r4, r0, r1
ldrb r0, [r4]
cmp r0, 0xFF
bne _081C6D58
lsls r0, r2, 3
ldr r1, =gUnknown_0861F350
adds r0, r1
bl AddWindow
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0
movs r2, 0x1
movs r3, 0xE
bl SetWindowBorderStyle
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
_081C6D58:
ldrb r0, [r4]
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_81C6D24
thumb_func_start sub_81C6D6C
sub_81C6D6C: @ 81C6D6C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_0203CF2C
ldr r2, =0x0000080f
adds r0, r2
ldr r1, [r1]
adds r4, r1, r0
ldrb r0, [r4]
cmp r0, 0xFF
beq _081C6D9E
movs r1, 0
bl sub_8198070
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
bl RemoveWindow
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0xFF
strb r0, [r4]
_081C6D9E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6D6C
thumb_func_start sub_81C6DAC
sub_81C6DAC: @ 81C6DAC
push {lr}
sub sp, 0x10
adds r3, r1, 0
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_0861F370
movs r2, 0x2
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0xE
str r2, [sp, 0x8]
str r3, [sp, 0xC]
movs r2, 0x1
movs r3, 0
bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6DAC
thumb_func_start DisplayItemMessageInBattlePyramid
@ void DisplayItemMessageInBattlePyramid(u8 taskId, u8 *str, void ( *callback)(u8 taskId))
DisplayItemMessageInBattlePyramid: @ 81C6DD8
push {r4-r6,lr}
sub sp, 0x10
adds r4, r0, 0
adds r5, r1, 0
adds r6, r2, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x2
movs r1, 0x11
bl FillWindowPixelBuffer
bl GetPlayerTextSpeed
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
str r1, [sp]
str r0, [sp, 0x4]
str r5, [sp, 0x8]
str r6, [sp, 0xC]
adds r0, r4, 0
movs r1, 0x2
movs r2, 0xA
movs r3, 0xD
bl DisplayMessageAndContinueTask
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end DisplayItemMessageInBattlePyramid
thumb_func_start sub_81C6E1C
sub_81C6E1C: @ 81C6E1C
push {lr}
movs r0, 0x2
movs r1, 0
bl sub_8197DF8
movs r0, 0x2
bl ClearWindowTilemap
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
pop {r0}
bx r0
thumb_func_end sub_81C6E1C
thumb_func_start sub_81C6E38
sub_81C6E38: @ 81C6E38
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gUnknown_0203CF2C
ldr r2, =0x00000804
adds r1, r4, r2
ldr r0, [r0]
adds r5, r0, r1
ldrb r0, [r5]
cmp r0, 0xFF
beq _081C6E80
ldr r0, =0x00001024
adds r4, r0
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
ldrb r1, [r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl FreeSpriteOamMatrix
ldrb r1, [r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
movs r0, 0xFF
strb r0, [r5]
_081C6E80:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6E38
thumb_func_start sub_81C6E98
sub_81C6E98: @ 81C6E98
push {r4,lr}
sub sp, 0x8
movs r0, 0x40
bl Alloc
adds r4, r0, 0
ldr r0, =gUnknown_08D9ADD0
adds r1, r4, 0
bl LZDecompressWram
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, =0x00000ca9
adds r0, r1
ldrb r0, [r0]
lsls r0, 30
lsrs r0, 25
adds r0, r4, r0
str r0, [sp]
ldr r1, =0xffff0000
ldr r0, [sp, 0x4]
ands r0, r1
ldr r1, =0x00001024
orrs r0, r1
str r0, [sp, 0x4]
mov r0, sp
bl LoadSpritePalette
adds r0, r4, 0
bl Free
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6E98
thumb_func_start sub_81C6EF4
sub_81C6EF4: @ 81C6EF4
push {r4,lr}
ldr r0, =gUnknown_0203CF2C
ldr r4, [r0]
ldr r0, =0x00000804
adds r4, r0
ldr r0, =gUnknown_0861F3D4
movs r1, 0x44
movs r2, 0x38
movs r3, 0
bl CreateSprite
strb r0, [r4]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6EF4
thumb_func_start sub_81C6F20
sub_81C6F20: @ 81C6F20
push {r4,lr}
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000804
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r4, r0, r1
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _081C6F50
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
ldr r0, =sub_81C6F68
str r0, [r4, 0x1C]
_081C6F50:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6F20
thumb_func_start sub_81C6F68
sub_81C6F68: @ 81C6F68
push {r4,lr}
adds r4, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _081C6F84
adds r0, r4, 0
movs r1, 0
bl StartSpriteAffineAnim
ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_081C6F84:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6F68
thumb_func_start sub_81C6F90
sub_81C6F90: @ 81C6F90
push {r4-r6,lr}
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 24
lsrs r4, r1, 24
ldr r0, =gUnknown_0203CF2C
ldr r2, =0x00000805
adds r1, r4, r2
ldr r0, [r0]
adds r5, r0, r1
ldrb r0, [r5]
cmp r0, 0xFF
bne _081C6FE0
ldr r0, =0x00001025
adds r4, r0
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
adds r0, r4, 0
adds r1, r4, 0
adds r2, r6, 0
bl AddItemIconSprite
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
beq _081C6FE0
strb r2, [r5]
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
movs r1, 0x18
strh r1, [r0, 0x24]
movs r1, 0x58
strh r1, [r0, 0x26]
_081C6FE0:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81C6F90
thumb_func_start sub_81C6FF8
sub_81C6FF8: @ 81C6FF8
push {lr}
lsls r0, 24
movs r1, 0x80
lsls r1, 17
adds r0, r1
lsrs r0, 24
bl sub_81C6E38
pop {r0}
bx r0
thumb_func_end sub_81C6FF8
thumb_func_start sub_81C700C
sub_81C700C: @ 81C700C
push {lr}
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000807
adds r0, r1
movs r1, 0x8
bl sub_8122344
pop {r0}
bx r0
.pool
thumb_func_end sub_81C700C
thumb_func_start sub_81C7028
sub_81C7028: @ 81C7028
push {lr}
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000807
adds r0, r1
movs r1, 0x8
bl sub_81223FC
pop {r0}
bx r0
.pool
thumb_func_end sub_81C7028
thumb_func_start sub_81C704C
sub_81C704C: @ 81C704C
push {lr}
adds r3, r0, 0
lsls r3, 24
ldr r0, =gUnknown_0203CF2C
ldr r0, [r0]
ldr r1, =0x00000807
adds r0, r1
lsrs r3, 4
movs r1, 0x80
lsls r1, 13
adds r3, r1
lsrs r3, 16
movs r1, 0x88
movs r2, 0x78
bl sub_8122448
pop {r0}
bx r0
.pool
thumb_func_end sub_81C704C
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
.align 2, 0 @ Don't pad with nop.