pokeemerald/asm/pokenav_unk_7.s
Phlosioneer 0dc73b0b3a Break up pokenav into subfiles
The files are separated based on the pokenav resources substruct
ID they use.
2019-04-07 14:40:35 -04:00

2002 lines
30 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
@ File centered around AllocSubstruct(0xC)
thumb_func_start sub_81CDDD4
sub_81CDDD4: @ 81CDDD4
push {r4,lr}
ldr r1, =0x000038ac
movs r0, 0xC
bl AllocSubstruct
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 CreateLoopedTask
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 GetSubstructPtr
adds r5, r0, 0
ldr r0, =gUnknown_08623384
lsls r4, 2
adds r4, r0
ldr r0, [r4]
movs r1, 0x1
bl CreateLoopedTask
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 GetSubstructPtr
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 GetSubstructPtr
ldr r0, [r0]
bl IsLoopedTaskActive
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 GetSubstructPtr
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 InitBgTemplates
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 CopyPaletteIntoBufferUnfaded
ldr r0, =gUnknown_08623208
movs r1, 0xF0
movs r2, 0x20
bl CopyPaletteIntoBufferUnfaded
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 CopyPaletteIntoBufferUnfaded
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 LoadLeftHeaderGfxForIndex
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 IsPaletteFadeActive
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 SetVBlankCallback_
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 GetSubstructPtr
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 IsPaletteFadeActive
cmp r0, 0
bne _081CE34E
bl MainMenuLoopedTaskIsBusy
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 GetSubstructPtr
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 GetSubstructPtr
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 GetSubstructPtr
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 IsDma3ManagerBusyWithBgCopy_
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 IsDma3ManagerBusyWithBgCopy_
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 GetSubstructPtr
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 GetSubstructPtr
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 GetSubstructPtr
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 Pokenav_AllocAndLoadPalettes
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 Pokenav_AllocAndLoadPalettes
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 GetSubstructPtr
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 FreePokenavSubstruct
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 GetSubstructPtr
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 GetSubstructPtr
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 SetPokenavVBlankCallback
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 GetSubstructPtr
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
.align 2, 0 @ Don't pad with nop.