sovereignx/asm/union_room_chat.s
2019-03-28 20:20:52 -05:00

1272 lines
19 KiB
ArmAsm
Executable file

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_80201A4
sub_80201A4: @ 80201A4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4C
movs r0, 0x2
movs r1, 0xFF
bl FillWindowPixelBuffer
bl sub_801F0B0
lsls r0, 24
lsrs r2, r0, 24
add r1, sp, 0xC
movs r0, 0
strb r0, [r1]
movs r0, 0xE
strb r0, [r1, 0x1]
movs r0, 0xD
strb r0, [r1, 0x2]
cmp r2, 0x3
beq _08020240
add r1, sp, 0x10
movs r0, 0xFC
strb r0, [r1]
movs r0, 0x14
strb r0, [r1, 0x1]
movs r0, 0x8
strb r0, [r1, 0x2]
str r0, [sp, 0x40]
str r1, [sp, 0x44]
cmp r2, 0x2
bne _080201EC
movs r1, 0x6
str r1, [sp, 0x40]
_080201EC:
movs r7, 0
movs r6, 0
lsls r0, r2, 2
ldr r1, =gUnknown_082F2BA8
adds r0, r2
lsls r0, 3
adds r4, r0, r1
ldr r0, [sp, 0x40]
lsls r5, r0, 24
_080201FE:
ldr r1, [r4]
cmp r1, 0
bne _08020206
b _0802030C
_08020206:
mov r0, sp
adds r0, 0x13
bl StringCopy
lsls r3, r6, 24
lsrs r3, 24
add r1, sp, 0xC
str r1, [sp]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x4]
ldr r0, [sp, 0x44]
str r0, [sp, 0x8]
movs r0, 0x2
movs r1, 0
lsrs r2, r5, 24
bl AddTextPrinterParameterized3
adds r4, 0x4
adds r7, 0x1
adds r0, r6, 0
adds r0, 0xC
lsls r0, 16
lsrs r6, r0, 16
cmp r7, 0x9
ble _080201FE
b _0802030C
.pool
_08020240:
movs r1, 0x4
str r1, [sp, 0x40]
movs r7, 0
movs r6, 0
_08020248:
adds r0, r7, 0
bl sub_801EE6C
adds r5, r0, 0
movs r0, 0
adds r1, r5, 0
movs r2, 0
bl GetStringWidth
cmp r0, 0x28
bgt _08020286
lsls r3, r6, 24
lsrs r3, 24
add r4, sp, 0xC
str r4, [sp]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x2
movs r1, 0
movs r4, 0x80
lsls r4, 19
lsrs r2, r4, 24
bl AddTextPrinterParameterized3
adds r0, r7, 0x1
str r0, [sp, 0x48]
adds r6, 0xC
mov r10, r6
b _08020300
_08020286:
adds r0, r5, 0
bl StringLength_Multibyte
adds r4, r0, 0
mov r1, sp
adds r1, 0x10
str r1, [sp, 0x44]
ldr r0, [sp, 0x40]
lsls r0, 24
mov r8, r0
lsls r1, r6, 24
mov r9, r1
adds r0, r7, 0x1
str r0, [sp, 0x48]
adds r6, 0xC
mov r10, r6
ldr r7, [sp, 0x40]
adds r7, 0x23
ldr r6, [sp, 0x44]
_080202AC:
subs r4, 0x1
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl StringCopyN_Multibyte
movs r0, 0
adds r1, r6, 0
movs r2, 0
bl GetStringWidth
cmp r0, 0x23
bgt _080202AC
mov r1, r8
lsrs r2, r1, 24
mov r0, r9
lsrs r4, r0, 24
add r1, sp, 0xC
str r1, [sp]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x4]
ldr r1, [sp, 0x44]
str r1, [sp, 0x8]
movs r0, 0x2
movs r1, 0
adds r3, r4, 0
bl AddTextPrinterParameterized3
adds r2, r7, 0
add r0, sp, 0xC
str r0, [sp]
movs r1, 0x1
negs r1, r1
str r1, [sp, 0x4]
ldr r0, =gText_Ellipsis
str r0, [sp, 0x8]
movs r0, 0x2
movs r1, 0
adds r3, r4, 0
bl AddTextPrinterParameterized3
_08020300:
ldr r7, [sp, 0x48]
mov r4, r10
lsls r0, r4, 16
lsrs r6, r0, 16
cmp r7, 0x9
ble _08020248
_0802030C:
add sp, 0x4C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80201A4
thumb_func_start sub_8020320
sub_8020320: @ 8020320
push {r4,lr}
ldr r1, =gUnknown_02022C88
ldr r2, [r1]
ldrh r3, [r2, 0x20]
movs r4, 0x20
ldrsh r0, [r2, r4]
cmp r0, 0x37
bgt _08020354
adds r0, r3, 0
adds r0, 0xC
strh r0, [r2, 0x20]
lsls r0, 16
asrs r0, 16
cmp r0, 0x37
ble _08020348
movs r0, 0x38
strh r0, [r2, 0x20]
b _08020354
.pool
_08020348:
movs r1, 0x20
ldrsh r0, [r2, r1]
bl sub_80207C0
movs r0, 0x1
b _08020360
_08020354:
ldr r0, [r1]
movs r4, 0x20
ldrsh r0, [r0, r4]
bl sub_8020818
movs r0, 0
_08020360:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8020320
thumb_func_start sub_8020368
sub_8020368: @ 8020368
push {r4,lr}
ldr r1, =gUnknown_02022C88
ldr r2, [r1]
ldrh r3, [r2, 0x20]
movs r4, 0x20
ldrsh r0, [r2, r4]
cmp r0, 0
ble _0802039C
adds r0, r3, 0
subs r0, 0xC
strh r0, [r2, 0x20]
lsls r0, 16
cmp r0, 0
bgt _08020390
movs r0, 0
strh r0, [r2, 0x20]
b _0802039C
.pool
_08020390:
movs r1, 0x20
ldrsh r0, [r2, r1]
bl sub_80207C0
movs r0, 0x1
b _080203A8
_0802039C:
ldr r0, [r1]
movs r4, 0x20
ldrsh r0, [r0, r4]
bl sub_8020818
movs r0, 0
_080203A8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8020368
thumb_func_start sub_80203B0
sub_80203B0: @ 80203B0
push {r4,r5,lr}
sub sp, 0xC
movs r0, 0x3
movs r1, 0x11
bl FillWindowPixelBuffer
movs r0, 0x3
movs r1, 0x1
movs r2, 0xD
bl sub_8098858
movs r5, 0xE
str r5, [sp]
movs r4, 0x5
str r4, [sp, 0x4]
ldr r0, =gUnknown_082F2DC8
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0x2
movs r2, 0x8
movs r3, 0x1
bl PrintTextArray
bl sub_801F0B0
lsls r0, 24
lsrs r0, 24
str r5, [sp]
str r4, [sp, 0x4]
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0x2
movs r2, 0
movs r3, 0x1
bl sub_81983AC
movs r0, 0x3
bl PutWindowTilemap
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80203B0
thumb_func_start sub_802040C
sub_802040C: @ 802040C
push {lr}
movs r0, 0x3
movs r1, 0
bl ClearStdWindowAndFrameToTransparent
movs r0, 0x3
bl ClearWindowTilemap
pop {r0}
bx r0
thumb_func_end sub_802040C
thumb_func_start sub_8020420
sub_8020420: @ 8020420
push {r4,r5,lr}
sub sp, 0x10
adds r5, r1, 0
lsls r0, 16
lsrs r0, 16
lsls r2, 24
add r3, sp, 0xC
movs r1, 0x1
strb r1, [r3]
lsrs r2, 23
adds r1, r2, 0x2
strb r1, [r3, 0x1]
adds r1, r3, 0
adds r2, 0x3
strb r2, [r1, 0x2]
lsls r4, r0, 4
subs r4, r0
lsls r3, r4, 16
lsrs r3, 16
movs r0, 0xA8
str r0, [sp]
movs r0, 0xF
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0x11
movs r2, 0
bl FillWindowPixelRect
adds r4, 0x1
lsls r4, 24
lsrs r4, 24
add r0, sp, 0xC
str r0, [sp]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x2
movs r2, 0
adds r3, r4, 0
bl AddTextPrinterParameterized3
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8020420
thumb_func_start sub_8020480
sub_8020480: @ 8020480
push {lr}
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
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
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl ShowBg
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuRegBits
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r1, 0xE0
lsls r1, 8
movs r0, 0
bl ClearGpuRegBits
movs r1, 0x80
lsls r1, 6
movs r0, 0
bl SetGpuRegBits
ldr r1, =0x000040f0
movs r0, 0x40
bl SetGpuReg
movs r0, 0x44
movs r1, 0x90
bl SetGpuReg
movs r0, 0x48
movs r1, 0x3D
bl SetGpuReg
movs r0, 0x4A
movs r1, 0x3F
bl SetGpuReg
pop {r0}
bx r0
.pool
thumb_func_end sub_8020480
thumb_func_start sub_8020538
sub_8020538: @ 8020538
push {r4,lr}
ldr r4, =gUnknown_02022C88
ldr r1, [r4]
movs r0, 0x94
lsls r0, 1
adds r1, r0
movs r0, 0
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00000928
adds r1, r0
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00001128
adds r1, r0
movs r0, 0x3
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00001928
adds r1, r0
movs r0, 0x2
bl SetBgTilemapBuffer
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8020538
thumb_func_start sub_8020584
sub_8020584: @ 8020584
push {lr}
sub sp, 0x8
movs r1, 0xC0
lsls r1, 19
movs r0, 0
movs r2, 0x20
movs r3, 0x1
bl RequestDma3Fill
movs r0, 0x20
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0
bl CopyBgTilemapBufferToVram
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_8020584
thumb_func_start sub_80205B4
sub_80205B4: @ 80205B4
push {lr}
sub sp, 0x4
ldr r0, =gUnknown_08DD4BD0
movs r1, 0x70
movs r2, 0x20
bl LoadPalette
ldr r0, =gUnknown_08DD4BB0
movs r1, 0xC0
movs r2, 0x20
bl LoadPalette
ldr r1, =gUnknown_08DD4BF0
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, =gUnknown_08DD4C4C
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
movs r0, 0x1
bl CopyBgTilemapBufferToVram
add sp, 0x4
pop {r0}
bx r0
.pool
thumb_func_end sub_80205B4
thumb_func_start task_tutorial_story_unknown
task_tutorial_story_unknown: @ 8020604
push {r4,r5,lr}
sub sp, 0x4
ldr r0, =gLinkMiscMenu_Pal
movs r1, 0
movs r2, 0x20
bl LoadPalette
ldr r1, =gLinkMiscMenu_Gfx
movs r0, 0
str r0, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
adds r5, r0, 0
cmp r5, 0
beq _0802064E
movs r1, 0x88
lsls r1, 2
adds r0, r5, r1
ldr r4, =gUnknown_02022C88
ldr r1, [r4]
ldr r2, =0x00002128
adds r1, r2
movs r2, 0x8
bl CpuFastSet
movs r1, 0x84
lsls r1, 3
adds r0, r5, r1
ldr r1, [r4]
ldr r2, =0x00002148
adds r1, r2
movs r2, 0x8
bl CpuFastSet
_0802064E:
ldr r1, =gLinkMiscMenu_Tilemap
movs r0, 0x2
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
movs r0, 0x2
bl CopyBgTilemapBufferToVram
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end task_tutorial_story_unknown
thumb_func_start sub_8020680
sub_8020680: @ 8020680
push {lr}
ldr r0, =gUnknown_082F2C20
movs r1, 0x80
movs r2, 0x20
bl LoadPalette
ldr r1, =0x06004020
movs r0, 0
movs r2, 0x20
movs r3, 0x1
bl RequestDma3Fill
pop {r0}
bx r0
.pool
thumb_func_end sub_8020680
thumb_func_start sub_80206A4
sub_80206A4: @ 80206A4
push {lr}
ldr r0, =gUnknown_082F2C40
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
movs r0, 0
bl PutWindowTilemap
movs r0, 0
movs r1, 0x11
bl FillWindowPixelBuffer
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
pop {r0}
bx r0
.pool
thumb_func_end sub_80206A4
thumb_func_start sub_80206D0
sub_80206D0: @ 80206D0
push {lr}
movs r0, 0x2
bl PutWindowTilemap
bl sub_80201A4
movs r0, 0x2
movs r1, 0x3
bl CopyWindowToVram
pop {r0}
bx r0
thumb_func_end sub_80206D0
thumb_func_start sub_80206E8
sub_80206E8: @ 80206E8
push {r4,lr}
sub sp, 0xC
add r1, sp, 0x8
movs r0, 0
strb r0, [r1]
movs r0, 0xFF
strb r0, [r1, 0x1]
movs r4, 0
_080206F8:
ldr r0, =gUnknown_02022C88
ldr r1, [r0]
ldr r0, =0x00002128
adds r1, r0
lsls r2, r4, 19
lsrs r2, 16
movs r0, 0x8
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0x1
movs r3, 0
bl BlitBitmapToWindow
adds r4, 0x1
cmp r4, 0xE
ble _080206F8
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x1
movs r1, 0x3
bl CopyWindowToVram
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80206E8
thumb_func_start sub_8020740
sub_8020740: @ 8020740
push {lr}
movs r0, 0x3
movs r1, 0x11
bl FillWindowPixelBuffer
movs r0, 0x3
movs r1, 0x1
movs r2, 0xD0
bl LoadUserWindowBorderGfx
movs r0, 0x3
movs r1, 0xA
movs r2, 0x20
bl LoadUserWindowBorderGfx_
ldr r0, =gUnknown_0860F074
movs r1, 0xE0
movs r2, 0x20
bl LoadPalette
pop {r0}
bx r0
.pool
thumb_func_end sub_8020740
thumb_func_start sub_8020770
sub_8020770: @ 8020770
push {lr}
sub sp, 0x10
ldr r0, =0xa2600001
str r0, [sp, 0x4]
ldr r0, =0x04000014
str r0, [sp]
mov r2, sp
movs r1, 0
movs r0, 0x1
strb r0, [r2, 0x8]
mov r0, sp
strb r1, [r0, 0x9]
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
strh r1, [r0, 0x20]
str r1, [sp, 0xC]
add r0, sp, 0xC
ldr r1, =gScanlineEffectRegBuffers
ldr r2, =0x010003c0
bl CpuFastSet
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
bl ScanlineEffect_SetParams
add sp, 0x10
pop {r0}
bx r0
.pool
thumb_func_end sub_8020770
thumb_func_start sub_80207C0
sub_80207C0: @ 80207C0
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 16
lsrs r0, 16
mov r1, sp
strh r0, [r1]
ldr r5, =gScanlineEffect
ldrb r0, [r5, 0x14]
lsls r1, r0, 4
subs r1, r0
lsls r1, 7
ldr r4, =gScanlineEffectRegBuffers
adds r1, r4
ldr r2, =0x01000090
mov r0, sp
bl CpuSet
mov r0, sp
adds r0, 0x2
movs r1, 0
strh r1, [r0]
ldrb r2, [r5, 0x14]
lsls r1, r2, 4
subs r1, r2
lsls r1, 7
movs r2, 0x90
lsls r2, 1
adds r4, r2
adds r1, r4
ldr r2, =0x01000010
bl CpuSet
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80207C0
thumb_func_start sub_8020818
sub_8020818: @ 8020818
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x8
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
mov r0, sp
strh r4, [r0]
ldr r5, =gScanlineEffectRegBuffers
ldr r0, =0x01000090
mov r9, r0
mov r0, sp
adds r1, r5, 0
mov r2, r9
bl CpuSet
mov r0, sp
adds r0, 0x2
movs r6, 0
strh r6, [r0]
movs r2, 0x90
lsls r2, 1
adds r1, r5, r2
ldr r2, =0x01000010
mov r8, r2
bl CpuSet
add r0, sp, 0x4
strh r4, [r0]
movs r2, 0xF0
lsls r2, 3
adds r1, r5, r2
mov r2, r9
bl CpuSet
mov r0, sp
adds r0, 0x6
strh r6, [r0]
movs r1, 0x8A
lsls r1, 4
adds r5, r1
adds r1, r5, 0
mov r2, r8
bl CpuSet
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8020818
thumb_func_start sub_8020890
sub_8020890: @ 8020890
push {r4,r5,lr}
movs r5, 0
ldr r4, =gUnknown_082F3134
_08020896:
adds r0, r4, 0
bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x4
bls _08020896
ldr r0, =gUnknown_082F315C
bl LoadSpritePalette
ldr r4, =gUnknown_02022C8C
movs r0, 0x18
bl Alloc
str r0, [r4]
cmp r0, 0
beq _080208C8
movs r0, 0x1
b _080208CA
.pool
_080208C8:
movs r0, 0
_080208CA:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8020890
thumb_func_start sub_80208D0
sub_80208D0: @ 80208D0
push {lr}
ldr r0, =gUnknown_02022C8C
ldr r0, [r0]
cmp r0, 0
beq _080208DE
bl Free
_080208DE:
pop {r0}
bx r0
.pool
thumb_func_end sub_80208D0
thumb_func_start sub_80208E8
sub_80208E8: @ 80208E8
push {lr}
ldr r0, =gUnknown_082F319C
movs r1, 0xA
movs r2, 0x18
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_02022C8C
ldr r2, [r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, =gSprites
adds r1, r0
str r1, [r2]
pop {r0}
bx r0
.pool
thumb_func_end sub_80208E8
thumb_func_start sub_802091C
sub_802091C: @ 802091C
ldr r1, =gUnknown_02022C8C
ldr r1, [r1]
ldr r2, [r1]
adds r2, 0x3E
movs r1, 0x1
ands r0, r1
lsls r0, 2
ldrb r3, [r2]
movs r1, 0x5
negs r1, r1
ands r1, r3
orrs r1, r0
strb r1, [r2]
bx lr
.pool
thumb_func_end sub_802091C
thumb_func_start sub_802093C
sub_802093C: @ 802093C
push {r4,r5,lr}
sub sp, 0x4
bl sub_801F0B0
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
mov r5, sp
adds r5, 0x1
mov r0, sp
adds r1, r5, 0
bl sub_801F0BC
cmp r4, 0x3
beq _0802097C
ldr r4, =gUnknown_02022C8C
ldr r0, [r4]
ldr r0, [r0]
movs r1, 0
bl StartSpriteAnim
ldr r1, [r4]
ldr r2, [r1]
mov r0, sp
ldrb r0, [r0]
lsls r0, 3
adds r0, 0xA
strh r0, [r2, 0x20]
ldr r2, [r1]
b _08020992
.pool
_0802097C:
ldr r4, =gUnknown_02022C8C
ldr r0, [r4]
ldr r0, [r0]
movs r1, 0x2
bl StartSpriteAnim
ldr r2, [r4]
ldr r1, [r2]
movs r0, 0x18
strh r0, [r1, 0x20]
ldr r2, [r2]
_08020992:
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, 0x18
strh r0, [r2, 0x22]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_802093C
thumb_func_start sub_80209AC
sub_80209AC: @ 80209AC
push {r4,lr}
adds r4, r0, 0
lsls r4, 2
ldr r0, =gUnknown_082F2DF0+2
adds r4, r0
movs r0, 0
bl IndexOfSpritePaletteTag
adds r1, r0, 0
lsls r1, 24
lsrs r1, 4
ldr r0, =0x01010000
adds r1, r0
lsrs r1, 16
adds r0, r4, 0
movs r2, 0x4
bl LoadPalette
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80209AC
thumb_func_start sub_80209E0
sub_80209E0: @ 80209E0
push {lr}
bl sub_801F0B0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08020A00
ldr r0, =gUnknown_02022C8C
ldr r0, [r0]
ldr r0, [r0]
movs r1, 0x1
bl StartSpriteAnim
b _08020A0C
.pool
_08020A00:
ldr r0, =gUnknown_02022C8C
ldr r0, [r0]
ldr r0, [r0]
movs r1, 0x3
bl StartSpriteAnim
_08020A0C:
ldr r0, =gUnknown_02022C8C
ldr r1, [r0]
movs r0, 0
strh r0, [r1, 0x14]
pop {r0}
bx r0
.pool
thumb_func_end sub_80209E0
thumb_func_start sub_8020A1C
sub_8020A1C: @ 8020A1C
push {r4,lr}
ldr r4, =gUnknown_02022C8C
ldr r1, [r4]
ldrh r0, [r1, 0x14]
cmp r0, 0x3
bls _08020A30
_08020A28:
movs r0, 0
b _08020A62
.pool
_08020A30:
adds r0, 0x1
strh r0, [r1, 0x14]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x3
bls _08020A60
bl sub_801F0B0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08020A54
ldr r0, [r4]
ldr r0, [r0]
movs r1, 0
bl StartSpriteAnim
b _08020A28
_08020A54:
ldr r0, [r4]
ldr r0, [r0]
movs r1, 0x2
bl StartSpriteAnim
b _08020A28
_08020A60:
movs r0, 0x1
_08020A62:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8020A1C
thumb_func_start sub_8020A68
sub_8020A68: @ 8020A68
push {r4,r5,lr}
ldr r0, =gUnknown_082F31BC
movs r1, 0x4C
movs r2, 0x98
movs r3, 0x2
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r5, =gUnknown_02022C8C
ldr r2, [r5]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r4, =gSprites
adds r1, r4
str r1, [r2, 0x8]
ldr r0, =gUnknown_082F31D4
movs r1, 0x40
movs r2, 0x98
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r2, [r5]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
str r1, [r2, 0x4]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8020A68
thumb_func_start sub_8020ABC
sub_8020ABC: @ 8020ABC
push {r4,lr}
adds r4, r0, 0
bl sub_801F198
adds r3, r0, 0
cmp r3, 0xF
bne _08020AD8
adds r0, r4, 0
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
b _08020AEC
_08020AD8:
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x5
negs r1, r1
ands r1, r0
strb r1, [r2]
lsls r0, r3, 3
adds r0, 0x4C
strh r0, [r4, 0x20]
_08020AEC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8020ABC
thumb_func_start sub_8020AF4
sub_8020AF4: @ 8020AF4
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x2E]
adds r0, 0x1
movs r2, 0
strh r0, [r1, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
ble _08020B1A
strh r2, [r1, 0x2E]
ldrh r0, [r1, 0x24]
adds r0, 0x1
strh r0, [r1, 0x24]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
ble _08020B1A
strh r2, [r1, 0x24]
_08020B1A:
pop {r0}
bx r0
thumb_func_end sub_8020AF4
thumb_func_start sub_8020B20
sub_8020B20: @ 8020B20
push {r4,r5,lr}
ldr r0, =gUnknown_082F322C
movs r1, 0x8
movs r2, 0x98
movs r3, 0x3
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r5, =gUnknown_02022C8C
ldr r2, [r5]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r4, =gSprites
adds r1, r4
str r1, [r2, 0xC]
ldr r0, =gUnknown_082F3244
movs r1, 0x20
movs r2, 0x98
movs r3, 0x4
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r2, [r5]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
str r1, [r2, 0x10]
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8020B20
thumb_func_start sub_8020B80
sub_8020B80: @ 8020B80
push {r4,lr}
bl sub_801F0B0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bne _08020BB8
bl sub_801F0DC
cmp r0, 0
beq _08020BC2
ldr r3, =gUnknown_02022C8C
ldr r0, [r3]
ldr r1, [r0, 0x10]
adds r1, 0x3E
ldrb r2, [r1]
movs r0, 0x5
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r0, [r3]
ldr r0, [r0, 0x10]
movs r1, 0x3
bl StartSpriteAnim
b _08020BF6
.pool
_08020BB8:
bl sub_801F1A4
adds r4, r0, 0
cmp r4, 0x3
bne _08020BD8
_08020BC2:
ldr r0, =gUnknown_02022C8C
ldr r0, [r0]
ldr r1, [r0, 0x10]
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
b _08020BF6
.pool
_08020BD8:
ldr r3, =gUnknown_02022C8C
ldr r0, [r3]
ldr r1, [r0, 0x10]
adds r1, 0x3E
ldrb r2, [r1]
movs r0, 0x5
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r0, [r3]
ldr r0, [r0, 0x10]
lsls r1, r4, 24
lsrs r1, 24
bl StartSpriteAnim
_08020BF6:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8020B80
.align 2, 0 @ don't pad with nop