pokeemerald/asm/cable_car.s

2883 lines
44 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_814FC70
sub_814FC70: @ 814FC70
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 _0814FC8E
ldr r0, =sub_814FCC8
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
_0814FC8E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_814FC70
thumb_func_start sub_814FC9C
sub_814FC9C: @ 814FC9C
push {lr}
sub sp, 0x4
bl ScriptContext2_Enable
ldr r0, =sub_814FC70
movs r1, 0x1
bl CreateTask
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
add sp, 0x4
pop {r0}
bx r0
.pool
thumb_func_end sub_814FC9C
thumb_func_start sub_814FCC8
sub_814FCC8: @ 814FCC8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x18
movs r4, 0
str r4, [sp, 0x14]
ldr r1, =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r1, r2
ldrb r0, [r0]
adds r6, r1, 0
cmp r0, 0x9
bhi _0814FD20
lsls r0, 2
ldr r1, =_0814FCF8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0814FCF8:
.4byte _0814FD20
.4byte _0814FDD8
.4byte _0814FE90
.4byte _0814FF50
.4byte _0814FF7C
.4byte _0814FF98
.4byte _0814FFF8
.4byte _08150090
.4byte _08150190
.4byte _081501C8
_0814FD20:
movs r0, 0
bl SetVBlankCallback
movs r0, 0
bl sub_8150B6C
bl ScanlineEffect_Stop
movs r3, 0xC0
lsls r3, 19
movs r4, 0xC0
lsls r4, 9
add r0, sp, 0x10
mov r9, r0
add r2, sp, 0xC
movs r6, 0
ldr r1, =0x040000d4
movs r5, 0x80
lsls r5, 5
ldr r7, =0x81000800
movs r0, 0x81
lsls r0, 24
mov r8, r0
_0814FD4E:
strh r6, [r2]
add r0, sp, 0xC
str r0, [r1]
str r3, [r1, 0x4]
str r7, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r3, r5
subs r4, r5
cmp r4, r5
bhi _0814FD4E
strh r6, [r2]
add r2, sp, 0xC
str r2, [r1]
str r3, [r1, 0x4]
lsrs r0, r4, 1
mov r3, r8
orrs r0, r3
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
movs r0, 0xE0
lsls r0, 19
movs r3, 0x80
lsls r3, 3
movs r4, 0
str r4, [sp, 0x10]
ldr r2, =0x040000d4
mov r1, r9
str r1, [r2]
str r0, [r2, 0x4]
lsrs r0, r3, 2
movs r1, 0x85
lsls r1, 24
orrs r0, r1
str r0, [r2, 0x8]
ldr r0, [r2, 0x8]
movs r1, 0xA0
lsls r1, 19
add r0, sp, 0xC
strh r4, [r0]
str r0, [r2]
str r1, [r2, 0x4]
lsrs r3, 1
movs r0, 0x81
lsls r0, 24
orrs r3, r0
str r3, [r2, 0x8]
ldr r0, [r2, 0x8]
ldr r4, =gUnknown_0203ABAC
ldr r0, =0x00004110
bl AllocZeroed
str r0, [r4]
ldr r1, =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
ldrb r0, [r1]
adds r0, 0x1
b _08150224
.pool
_0814FDD8:
bl ResetSpriteData
bl ResetTasks
bl FreeAllSpritePalettes
bl ResetPaletteFade
bl reset_temp_tile_data_buffers
bl sub_80AAFA4
movs r4, 0
ldr r0, =gUnknown_0854C14C
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0xF0
movs r2, 0
_0814FDFC:
lsls r0, r4, 2
adds r0, r1, r0
str r2, [r0]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x13
bls _0814FDFC
bl InitMapMusic
bl ResetMapMusic
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_085CD66C
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
ldr r4, =gUnknown_0203ABAC
ldr r1, [r4]
adds r1, 0xFC
movs r0, 0
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r3, =0x000010fc
adds r1, r3
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x000020fc
adds r1, r0
movs r0, 0x2
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r2, =0x000030fc
adds r1, r2
movs r0, 0x3
bl SetBgTilemapBuffer
ldr r2, =gSpriteCoordOffsetX
ldr r1, =gSpriteCoordOffsetY
movs r0, 0
strh r0, [r1]
strh r0, [r2]
ldr r1, =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
ldrb r0, [r1]
adds r0, 0x1
b _08150224
.pool
_0814FE90:
movs r4, 0
add r5, sp, 0x14
ldr r6, =gUnknown_085CDB54
_0814FE96:
lsls r0, r4, 3
adds r0, r6
bl LoadCompressedObjectPic
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x2
bls _0814FE96
ldr r0, =gUnknown_085CDB74
bl LoadSpritePalettes
ldr r0, =gCableCarMtChimneyTilemap
adds r1, r5, 0
bl malloc_and_decompress
ldr r4, =gUnknown_0203ABAC
ldr r1, [r4]
ldr r2, =0x000040fc
adds r1, r2
str r0, [r1]
ldr r0, =gCableCarTreeTilemap
adds r1, r5, 0
bl malloc_and_decompress
ldr r1, [r4]
movs r3, 0x82
lsls r3, 7
adds r1, r3
str r0, [r1]
ldr r0, =gCableCarMountainTilemap
adds r1, r5, 0
bl malloc_and_decompress
ldr r1, [r4]
ldr r2, =0x00004104
adds r1, r2
str r0, [r1]
ldr r0, =gCableCarPylonStemTilemap
adds r1, r5, 0
bl malloc_and_decompress
ldr r1, [r4]
ldr r3, =0x0000410c
adds r2, r1, r3
str r0, [r2]
ldr r0, =0x00004108
adds r1, r0
ldr r0, =gCableCarPylonHookTilemapEntries
str r0, [r1]
ldr r1, =gUnknown_08DBA5B8
movs r0, 0
str r0, [sp]
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
ldrb r0, [r1]
adds r0, 0x1
b _08150224
.pool
_0814FF50:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
cmp r0, 0
beq _0814FF5C
b _08150226
_0814FF5C:
ldr r0, =gUnknown_08DBA518
movs r1, 0
movs r2, 0x80
bl LoadPalette
ldr r1, =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
ldrb r0, [r1]
adds r0, 0x1
b _08150224
.pool
_0814FF7C:
bl sub_8150D28
bl RunTasks
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
b _08150224
.pool
_0814FF98:
ldr r0, =gUnknown_0203ABAC
ldr r0, [r0]
ldrb r0, [r0, 0x2]
cmp r0, 0x7
bne _0814FFB4
movs r2, 0x87
lsls r2, 3
adds r1, r6, r2
ldrb r0, [r1]
adds r0, 0x1
b _08150224
.pool
_0814FFB4:
ldr r0, =gUnknown_0854C14C
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0xF0
ldr r0, [r1]
cmp r0, 0
bne _0814FFC4
b _08150226
_0814FFC4:
movs r4, 0
adds r3, r1, 0
movs r5, 0xD
negs r5, r5
_0814FFCC:
lsls r0, r4, 2
adds r0, r3, r0
ldr r2, [r0]
cmp r2, 0
beq _0814FFDE
ldrb r1, [r2, 0x5]
adds r0, r5, 0
ands r0, r1
strb r0, [r2, 0x5]
_0814FFDE:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x13
bls _0814FFCC
movs r3, 0x87
lsls r3, 3
adds r1, r6, r3
ldrb r0, [r1]
adds r0, 0x1
b _08150224
.pool
_0814FFF8:
ldr r6, =gUnknown_0203ABAC
ldr r0, [r6]
movs r1, 0x82
lsls r1, 7
adds r0, r1
ldr r1, [r0]
movs r0, 0x20
str r0, [sp]
movs r0, 0xF
str r0, [sp, 0x4]
movs r5, 0x11
str r5, [sp, 0x8]
movs r0, 0x1
movs r2, 0
movs r3, 0x11
bl CopyToBgTilemapBufferRect_ChangePalette
ldr r0, [r6]
ldr r2, =0x00004104
adds r0, r2
ldr r1, [r0]
movs r0, 0x1E
str r0, [sp]
movs r3, 0x14
mov r8, r3
str r3, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBufferRect_ChangePalette
ldr r0, [r6]
ldr r1, =0x00004108
adds r0, r1
ldr r1, [r0]
movs r0, 0x5
str r0, [sp]
movs r4, 0x2
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x3
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBufferRect_ChangePalette
ldr r0, [r6]
ldr r2, =0x0000410c
adds r0, r2
ldr r1, [r0]
str r4, [sp]
mov r3, r8
str r3, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x3
movs r2, 0
movs r3, 0x2
bl CopyToBgTilemapBufferRect_ChangePalette
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
b _08150224
.pool
_08150090:
ldr r0, =gSpecialVar_0x8004
ldrb r0, [r0]
bl sub_81514C8
ldr r1, =gUnknown_0203ABAC
mov r9, r1
ldr r0, [r1]
ldr r2, =0x000040fc
mov r8, r2
add r0, r8
ldr r1, [r0]
adds r1, 0x90
movs r6, 0xC
str r6, [sp]
movs r5, 0x3
str r5, [sp, 0x4]
movs r4, 0x11
str r4, [sp, 0x8]
movs r0, 0
movs r2, 0
movs r3, 0xE
bl CopyToBgTilemapBufferRect_ChangePalette
mov r3, r9
ldr r0, [r3]
add r0, r8
ldr r1, [r0]
adds r1, 0xD8
str r6, [sp]
str r5, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0
movs r2, 0xC
movs r3, 0x11
bl CopyToBgTilemapBufferRect_ChangePalette
mov r1, r9
ldr r0, [r1]
add r0, r8
ldr r1, [r0]
movs r2, 0x90
lsls r2, 1
adds r1, r2
str r6, [sp]
str r5, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0
movs r2, 0x18
movs r3, 0x14
bl CopyToBgTilemapBufferRect_ChangePalette
mov r3, r9
ldr r0, [r3]
add r0, r8
ldr r1, [r0]
str r6, [sp]
str r5, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0
movs r2, 0
movs r3, 0x11
bl CopyToBgTilemapBufferRect_ChangePalette
mov r1, r9
ldr r0, [r1]
add r0, r8
ldr r1, [r0]
adds r1, 0x48
str r6, [sp]
str r5, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0
movs r2, 0
movs r3, 0x14
bl CopyToBgTilemapBufferRect_ChangePalette
mov r2, r9
ldr r0, [r2]
add r0, r8
ldr r1, [r0]
str r6, [sp]
str r5, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0
movs r2, 0xC
movs r3, 0x14
bl CopyToBgTilemapBufferRect_ChangePalette
mov r3, r9
ldr r0, [r3]
add r0, r8
ldr r1, [r0]
adds r1, 0x48
str r6, [sp]
str r5, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0
movs r2, 0xC
movs r3, 0x17
bl CopyToBgTilemapBufferRect_ChangePalette
mov r1, r9
ldr r0, [r1]
add r0, r8
ldr r1, [r0]
str r6, [sp]
str r5, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0
movs r2, 0x18
movs r3, 0x17
bl CopyToBgTilemapBufferRect_ChangePalette
ldr r1, =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
ldrb r0, [r1]
adds r0, 0x1
b _08150224
.pool
_08150190:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r1, 0x3
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r0, =0x000001a9
movs r1, 0x1
bl FadeInNewBGM
movs r0, 0x1
bl sub_8150B6C
ldr r1, =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
ldrb r0, [r1]
adds r0, 0x1
b _08150224
.pool
_081501C8:
ldr r3, =0x04000208
ldrh r2, [r3]
movs r0, 0
strh r0, [r3]
ldr r4, =0x04000200
ldrh r0, [r4]
movs r1, 0x1
orrs r0, r1
strh r0, [r4]
strh r2, [r3]
ldr r0, =sub_8150800
bl SetVBlankCallback
ldr r0, =mainloop
bl SetMainCallback2
ldr r0, =sub_81503E4
movs r1, 0
bl CreateTask
ldr r0, =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
bne _08150218
ldr r0, =sub_8150550
b _0815021A
.pool
_08150218:
ldr r0, =sub_8150664
_0815021A:
movs r1, 0x1
bl CreateTask
ldr r1, =gUnknown_0203ABAC
ldr r1, [r1]
_08150224:
strb r0, [r1]
_08150226:
add sp, 0x18
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_814FCC8
thumb_func_start mainloop
mainloop: @ 815023C
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
bl MapMusicMain
pop {r0}
bx r0
thumb_func_end mainloop
thumb_func_start c2_8011A1C
c2_8011A1C: @ 8150258
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
movs r4, 0
movs r0, 0
bl HideBg
movs r0, 0x1
bl HideBg
movs r0, 0x2
bl HideBg
movs r0, 0x3
bl HideBg
movs r0, 0
bl sub_8150B6C
ldr r0, =gSpriteCoordOffsetX
strh r4, [r0]
movs r0, 0
bl sub_80AB130
add r0, sp, 0x4
mov r8, r0
ldr r0, =gUnknown_0854C14C
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0xF0
movs r2, 0
_08150298:
lsls r0, r4, 2
adds r0, r1, r0
str r2, [r0]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x13
bls _08150298
bl ResetTasks
bl ResetSpriteData
bl ResetPaletteFade
movs r0, 0
bl UnsetBgTilemapBuffer
movs r0, 0x1
bl UnsetBgTilemapBuffer
movs r0, 0x2
bl UnsetBgTilemapBuffer
movs r0, 0x3
bl UnsetBgTilemapBuffer
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r6, =gUnknown_0203ABAC
ldr r0, [r6]
ldr r2, =0x00004108
adds r1, r0, r2
movs r5, 0
str r5, [r1]
ldr r4, =0x0000410c
adds r0, r4
ldr r0, [r0]
bl Free
ldr r0, [r6]
adds r4, r0, r4
str r5, [r4]
ldr r4, =0x00004104
adds r0, r4
ldr r0, [r0]
bl Free
ldr r0, [r6]
adds r4, r0, r4
str r5, [r4]
movs r4, 0x82
lsls r4, 7
adds r0, r4
ldr r0, [r0]
bl Free
ldr r0, [r6]
adds r4, r0, r4
str r5, [r4]
ldr r4, =0x000040fc
adds r0, r4
ldr r0, [r0]
bl Free
ldr r0, [r6]
adds r4, r0, r4
str r5, [r4]
bl Free
str r5, [r6]
movs r2, 0xC0
lsls r2, 19
movs r3, 0xC0
lsls r3, 9
mov r4, sp
movs r6, 0
ldr r1, =0x040000d4
movs r5, 0x80
lsls r5, 5
ldr r7, =0x81000800
movs r0, 0x81
lsls r0, 24
mov r12, r0
_08150340:
strh r6, [r4]
mov r0, sp
str r0, [r1]
str r2, [r1, 0x4]
str r7, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r2, r5
subs r3, r5
cmp r3, r5
bhi _08150340
strh r6, [r4]
mov r0, sp
str r0, [r1]
str r2, [r1, 0x4]
lsrs r0, r3, 1
mov r2, r12
orrs r0, r2
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
movs r0, 0xE0
lsls r0, 19
movs r3, 0x80
lsls r3, 3
movs r4, 0
str r4, [sp, 0x4]
ldr r2, =0x040000d4
mov r1, r8
str r1, [r2]
str r0, [r2, 0x4]
lsrs r0, r3, 2
movs r1, 0x85
lsls r1, 24
orrs r0, r1
str r0, [r2, 0x8]
ldr r0, [r2, 0x8]
movs r1, 0xA0
lsls r1, 19
mov r0, sp
strh r4, [r0]
str r0, [r2]
str r1, [r2, 0x4]
lsrs r3, 1
movs r0, 0x81
lsls r0, 24
orrs r3, r0
str r3, [r2, 0x8]
ldr r0, [r2, 0x8]
bl warp_in
ldr r0, =gFieldCallback
str r4, [r0]
ldr r0, =CB2_LoadMap
bl SetMainCallback2
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end c2_8011A1C
thumb_func_start sub_81503E4
sub_81503E4: @ 81503E4
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
ldr r5, =gUnknown_0203ABAC
ldr r3, [r5]
ldrh r0, [r3, 0x6]
adds r0, 0x1
strh r0, [r3, 0x6]
ldrb r2, [r3, 0x1]
adds r7, r5, 0
cmp r2, 0x2
beq _081504EA
cmp r2, 0x2
bgt _08150414
cmp r2, 0
beq _08150422
cmp r2, 0x1
beq _0815043C
b _08150542
.pool
_08150414:
cmp r2, 0x3
bne _0815041A
b _08150510
_0815041A:
cmp r2, 0xFF
bne _08150420
b _08150528
_08150420:
b _08150542
_08150422:
lsls r0, 16
lsrs r0, 16
ldrh r1, [r3, 0x4]
cmp r0, r1
beq _0815042E
b _08150542
_0815042E:
ldrb r0, [r3, 0x2]
bl weather_set
ldr r1, [r5]
movs r0, 0x1
strb r0, [r1, 0x1]
b _08150542
_0815043C:
ldrb r0, [r3, 0x2]
cmp r0, 0x2
beq _08150490
cmp r0, 0x7
beq _08150448
b _08150542
_08150448:
ldr r0, =gUnknown_0854C14C
ldr r0, [r0]
adds r2, r0, 0
adds r2, 0xF0
ldr r0, [r2]
cmp r0, 0
beq _08150542
ldrb r1, [r0, 0x5]
movs r0, 0xC
ands r0, r1
cmp r0, 0
beq _08150542
adds r3, r2, 0
movs r5, 0xD
negs r5, r5
_08150466:
lsls r0, r4, 2
adds r0, r3, r0
ldr r2, [r0]
cmp r2, 0
beq _08150478
ldrb r1, [r2, 0x5]
adds r0, r5, 0
ands r0, r1
strb r0, [r2, 0x5]
_08150478:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x13
bls _08150466
ldr r1, [r7]
movs r0, 0x2
strb r0, [r1, 0x1]
b _08150542
.pool
_08150490:
ldr r0, =gUnknown_0854C14C
ldr r2, [r0]
movs r1, 0xDA
lsls r1, 3
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0x2
bne _081504A8
strb r0, [r3, 0x1]
b _08150542
.pool
_081504A8:
ldrh r1, [r3, 0x6]
ldrh r0, [r3, 0x4]
adds r0, 0x8
cmp r1, r0
blt _08150542
adds r6, r2, 0
adds r6, 0xF0
movs r5, 0x1
movs r7, 0x5
negs r7, r7
_081504BC:
lsls r0, r4, 2
adds r0, r6, r0
ldr r0, [r0]
cmp r0, 0
beq _081504DE
adds r3, r0, 0
adds r3, 0x3E
ldrb r2, [r3]
lsls r1, r2, 29
lsrs r1, 31
eors r1, r5
ands r1, r5
lsls r1, 2
adds r0, r7, 0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_081504DE:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x13
bls _081504BC
b _08150542
_081504EA:
lsls r1, r0, 16
ldr r0, =0x023a0000
cmp r1, r0
bne _08150542
movs r0, 0x3
strb r0, [r3, 0x1]
subs r0, 0x4
str r4, [sp]
movs r1, 0x3
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
movs r0, 0x4
bl FadeOutBGM
b _08150542
.pool
_08150510:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08150542
movs r0, 0xFF
strb r0, [r3, 0x1]
b _08150542
.pool
_08150528:
movs r0, 0
bl SetVBlankCallback
adds r0, r6, 0
bl DestroyTask
ldr r0, [r5]
ldrb r0, [r0]
bl DestroyTask
ldr r0, =c2_8011A1C
bl SetMainCallback2
_08150542:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81503E4
thumb_func_start sub_8150550
sub_8150550: @ 8150550
push {r4-r6,lr}
sub sp, 0xC
ldr r6, =gUnknown_0203ABAC
ldr r1, [r6]
ldrb r0, [r1, 0x1]
cmp r0, 0xFF
beq _08150630
ldrb r0, [r1, 0x14]
subs r0, 0x1
strb r0, [r1, 0x14]
ldr r1, [r6]
ldrh r0, [r1, 0x6]
movs r3, 0x1
ands r0, r3
cmp r0, 0
bne _08150576
ldrb r0, [r1, 0x15]
subs r0, 0x1
strb r0, [r1, 0x15]
_08150576:
ldr r2, [r6]
ldrh r0, [r2, 0x6]
movs r1, 0x7
ands r0, r1
cmp r0, 0
bne _08150590
ldrb r0, [r2, 0xC]
subs r0, 0x1
strb r0, [r2, 0xC]
ldr r1, [r6]
ldrb r0, [r1, 0xD]
subs r0, 0x1
strb r0, [r1, 0xD]
_08150590:
ldr r0, [r6]
ldrb r1, [r0, 0x14]
cmp r1, 0x20
beq _081505DC
cmp r1, 0x20
bgt _081505A8
cmp r1, 0x10
beq _081505F4
b _08150630
.pool
_081505A8:
cmp r1, 0x28
beq _081505CA
cmp r1, 0xAF
bne _08150630
movs r0, 0x2
str r0, [sp]
movs r0, 0xA
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0
movs r2, 0
movs r3, 0x16
bl FillBgTilemapBufferRect
b _08150630
_081505CA:
movs r0, 0x2
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0
movs r2, 0x3
b _081505EC
_081505DC:
str r3, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0
movs r2, 0x2
_081505EC:
movs r3, 0
bl FillBgTilemapBufferRect
b _08150630
_081505F4:
ldr r1, =0x00004108
adds r0, r1
ldr r1, [r0]
movs r0, 0x5
str r0, [sp]
movs r4, 0x2
str r4, [sp, 0x4]
movs r5, 0x11
str r5, [sp, 0x8]
movs r0, 0x3
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBufferRect_ChangePalette
ldr r0, [r6]
ldr r1, =0x0000410c
adds r0, r1
ldr r1, [r0]
str r4, [sp]
movs r0, 0x1E
str r0, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x3
movs r2, 0
movs r3, 0x2
bl CopyToBgTilemapBufferRect_ChangePalette
ldr r1, [r6]
movs r0, 0x40
strb r0, [r1, 0x15]
_08150630:
bl sub_815115C
ldr r3, =gSpriteCoordOffsetX
movs r0, 0
ldrsh r2, [r3, r0]
adds r1, r2, 0x1
adds r0, r1, 0
cmp r1, 0
bge _08150646
adds r0, r2, 0
adds r0, 0x80
_08150646:
asrs r0, 7
lsls r0, 7
subs r0, r1, r0
strh r0, [r3]
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8150550
thumb_func_start sub_8150664
sub_8150664: @ 8150664
push {r4-r7,lr}
sub sp, 0xC
ldr r7, =gUnknown_0203ABAC
ldr r1, [r7]
ldrb r0, [r1, 0x1]
cmp r0, 0xFF
bne _08150674
b _081507B6
_08150674:
ldrb r0, [r1, 0x14]
adds r0, 0x1
strb r0, [r1, 0x14]
ldr r1, [r7]
ldrh r0, [r1, 0x6]
movs r6, 0x1
ands r0, r6
cmp r0, 0
bne _0815068C
ldrb r0, [r1, 0x15]
adds r0, 0x1
strb r0, [r1, 0x15]
_0815068C:
ldr r2, [r7]
ldrh r0, [r2, 0x6]
movs r1, 0x7
ands r0, r1
cmp r0, 0
bne _081506A6
ldrb r0, [r2, 0xC]
adds r0, 0x1
strb r0, [r2, 0xC]
ldr r1, [r7]
ldrb r0, [r1, 0xD]
adds r0, 0x1
strb r0, [r1, 0xD]
_081506A6:
ldr r0, [r7]
ldrb r1, [r0, 0x14]
cmp r1, 0x20
beq _0815071A
cmp r1, 0x20
bgt _081506BC
cmp r1, 0x10
beq _081506E8
b _081507B6
.pool
_081506BC:
cmp r1, 0x28
beq _08150784
cmp r1, 0xB0
bne _081507B6
ldr r1, =0x0000410c
adds r0, r1
ldr r1, [r0]
movs r0, 0x2
str r0, [sp]
movs r0, 0x1E
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0x3
movs r2, 0
movs r3, 0x2
bl CopyToBgTilemapBufferRect_ChangePalette
b _081507B6
.pool
_081506E8:
movs r0, 0x3
str r0, [sp]
movs r4, 0x2
str r4, [sp, 0x4]
movs r5, 0x11
str r5, [sp, 0x8]
movs r1, 0
movs r2, 0x2
movs r3, 0
bl FillBgTilemapBufferRect
str r4, [sp]
movs r0, 0xA
str r0, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x3
movs r1, 0
movs r2, 0
movs r3, 0x16
bl FillBgTilemapBufferRect
ldr r1, [r7]
movs r0, 0xC0
strb r0, [r1, 0x15]
b _081507B6
_0815071A:
ldr r5, =0x00004108
adds r0, r5
ldr r0, [r0]
ldrh r1, [r0, 0x4]
str r6, [sp]
str r6, [sp, 0x4]
movs r4, 0x11
str r4, [sp, 0x8]
movs r0, 0x3
movs r2, 0x2
movs r3, 0
bl FillBgTilemapBufferRect
ldr r0, [r7]
adds r0, r5
ldr r0, [r0]
ldrh r1, [r0, 0x6]
str r6, [sp]
str r6, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x3
movs r2, 0x3
movs r3, 0
bl FillBgTilemapBufferRect
ldr r0, [r7]
adds r0, r5
ldr r0, [r0]
ldrh r1, [r0, 0xE]
str r6, [sp]
str r6, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x3
movs r2, 0x2
movs r3, 0x1
bl FillBgTilemapBufferRect
ldr r0, [r7]
adds r0, r5
ldr r0, [r0]
ldrh r1, [r0, 0x10]
str r6, [sp]
str r6, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x3
movs r2, 0x3
movs r3, 0x1
bl FillBgTilemapBufferRect
b _081507B6
.pool
_08150784:
ldr r5, =0x00004108
adds r0, r5
ldr r0, [r0]
ldrh r1, [r0, 0x8]
str r6, [sp]
str r6, [sp, 0x4]
movs r4, 0x11
str r4, [sp, 0x8]
movs r0, 0x3
movs r2, 0x4
movs r3, 0
bl FillBgTilemapBufferRect
ldr r0, [r7]
adds r0, r5
ldr r0, [r0]
ldrh r1, [r0, 0x12]
str r6, [sp]
str r6, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x3
movs r2, 0x4
movs r3, 0x1
bl FillBgTilemapBufferRect
_081507B6:
bl sub_81511B8
ldr r0, =gUnknown_0203ABAC
ldr r1, [r0]
ldrh r0, [r1, 0x6]
ldrh r1, [r1, 0x4]
cmp r0, r1
bcs _081507DC
ldr r4, =gSpriteCoordOffsetX
movs r1, 0
ldrsh r0, [r4, r1]
b _081507E6
.pool
_081507DC:
ldr r0, =gUnknown_0854C14C
ldr r4, [r0]
ldr r0, =0x000006fc
adds r4, r0
ldrh r0, [r4]
_081507E6:
adds r0, 0xF7
movs r1, 0xF8
bl __modsi3
strh r0, [r4]
add sp, 0xC
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8150664
thumb_func_start sub_8150800
sub_8150800: @ 8150800
push {r4,lr}
movs r0, 0
bl CopyBgTilemapBufferToVram
movs r0, 0x3
bl CopyBgTilemapBufferToVram
ldr r4, =gUnknown_0203ABAC
ldr r0, [r4]
ldrb r1, [r0, 0x14]
movs r0, 0x1C
bl SetGpuReg
ldr r0, [r4]
ldrb r1, [r0, 0x15]
movs r0, 0x1E
bl SetGpuReg
ldr r0, [r4]
ldrb r1, [r0, 0xC]
movs r0, 0x14
bl SetGpuReg
ldr r0, [r4]
ldrb r1, [r0, 0xD]
movs r0, 0x16
bl SetGpuReg
ldr r0, [r4]
ldrb r1, [r0, 0x8]
movs r0, 0x10
bl SetGpuReg
ldr r0, [r4]
ldrb r1, [r0, 0x9]
movs r0, 0x12
bl SetGpuReg
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8150800
thumb_func_start nullsub_58
nullsub_58: @ 8150864
bx lr
thumb_func_end nullsub_58
thumb_func_start sub_8150868
sub_8150868: @ 8150868
push {r4-r6,lr}
adds r5, r0, 0
ldr r0, =gUnknown_0203ABAC
ldr r6, [r0]
ldrb r0, [r6, 0x1]
cmp r0, 0xFF
beq _08150934
ldr r0, =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
bne _081508E4
movs r0, 0x6
ldrsh r4, [r6, r0]
adds r0, r4, 0
bl __floatsisf
cmp r4, 0
bge _08150892
ldr r1, =0x47800000
bl __addsf3
_08150892:
ldr r1, =0x3e0f5c29
bl __mulsf3
bl __fixunssfsi
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x2E]
subs r1, r0
strh r1, [r5, 0x20]
movs r1, 0x6
ldrsh r4, [r6, r1]
adds r0, r4, 0
bl __floatsisf
cmp r4, 0
bge _081508BA
ldr r1, =0x47800000
bl __addsf3
_081508BA:
ldr r1, =0x3d89374c
bl __mulsf3
bl __fixunssfsi
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x30]
subs r1, r0
strh r1, [r5, 0x22]
b _08150934
.pool
_081508E4:
movs r0, 0x6
ldrsh r4, [r6, r0]
adds r0, r4, 0
bl __floatsisf
cmp r4, 0
bge _081508F8
ldr r1, =0x47800000
bl __addsf3
_081508F8:
ldr r1, =0x3e0f5c29
bl __mulsf3
bl __fixunssfsi
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x2E]
adds r0, r1
strh r0, [r5, 0x20]
movs r0, 0x6
ldrsh r4, [r6, r0]
adds r0, r4, 0
bl __floatsisf
cmp r4, 0
bge _08150920
ldr r1, =0x47800000
bl __addsf3
_08150920:
ldr r1, =0x3d89374c
bl __mulsf3
bl __fixunssfsi
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x30]
adds r0, r1
strh r0, [r5, 0x22]
_08150934:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8150868
thumb_func_start sub_8150948
sub_8150948: @ 8150948
push {r4-r6,lr}
adds r5, r0, 0
ldr r0, =gUnknown_0203ABAC
ldr r6, [r0]
ldrb r0, [r6, 0x1]
cmp r0, 0xFF
bne _08150958
b _08150A60
_08150958:
ldr r0, =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
bne _081509C8
movs r0, 0x6
ldrsh r4, [r6, r0]
adds r0, r4, 0
bl __floatsisf
cmp r4, 0
bge _08150974
ldr r1, =0x47800000
bl __addsf3
_08150974:
ldr r1, =0x3e0f5c29
bl __mulsf3
bl __fixunssfsi
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x2E]
subs r1, r0
strh r1, [r5, 0x20]
movs r1, 0x6
ldrsh r4, [r6, r1]
adds r0, r4, 0
bl __floatsisf
cmp r4, 0
bge _0815099C
ldr r1, =0x47800000
bl __addsf3
_0815099C:
ldr r1, =0x3d89374c
bl __mulsf3
bl __fixunssfsi
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x30]
subs r1, r0
strh r1, [r5, 0x22]
b _08150A18
.pool
_081509C8:
movs r0, 0x6
ldrsh r4, [r6, r0]
adds r0, r4, 0
bl __floatsisf
cmp r4, 0
bge _081509DC
ldr r1, =0x47800000
bl __addsf3
_081509DC:
ldr r1, =0x3e0f5c29
bl __mulsf3
bl __fixunssfsi
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x2E]
adds r0, r1
strh r0, [r5, 0x20]
movs r0, 0x6
ldrsh r4, [r6, r0]
adds r0, r4, 0
bl __floatsisf
cmp r4, 0
bge _08150A04
ldr r1, =0x47800000
bl __addsf3
_08150A04:
ldr r1, =0x3d89374c
bl __mulsf3
bl __fixunssfsi
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x30]
adds r0, r1
strh r0, [r5, 0x22]
_08150A18:
movs r0, 0x32
ldrsh r2, [r5, r0]
cmp r2, 0
bne _08150A48
movs r0, 0x11
strh r0, [r5, 0x26]
ldrh r0, [r5, 0x34]
adds r1, r0, 0x1
strh r1, [r5, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x9
ble _08150A60
strh r2, [r5, 0x34]
ldrh r0, [r5, 0x32]
adds r0, 0x1
strh r0, [r5, 0x32]
b _08150A60
.pool
_08150A48:
movs r2, 0
movs r0, 0x10
strh r0, [r5, 0x26]
ldrh r0, [r5, 0x34]
adds r1, r0, 0x1
strh r1, [r5, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x9
ble _08150A60
strh r2, [r5, 0x34]
strh r2, [r5, 0x32]
_08150A60:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8150948
thumb_func_start sub_8150A68
sub_8150A68: @ 8150A68
push {lr}
adds r2, r0, 0
movs r1, 0x2E
ldrsh r0, [r2, r1]
cmp r0, 0
bne _08150A98
adds r0, r2, 0
adds r0, 0x28
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
lsls r0, 1
ldrh r3, [r2, 0x20]
adds r0, r3
strh r0, [r2, 0x20]
ldrh r1, [r2, 0x22]
adds r1, 0x10
adds r0, r2, 0
adds r0, 0x29
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
adds r0, r1
strh r0, [r2, 0x22]
_08150A98:
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 16
movs r3, 0x32
ldrsh r1, [r2, r3]
cmp r0, r1
blt _08150AEE
movs r0, 0x30
ldrsh r1, [r2, r0]
cmp r1, 0
beq _08150AB8
cmp r1, 0x1
beq _08150AC2
b _08150AE0
_08150AB8:
ldrh r0, [r2, 0x20]
adds r0, 0x1
strh r0, [r2, 0x20]
ldrh r0, [r2, 0x2E]
b _08150AD2
_08150AC2:
ldrh r0, [r2, 0x2E]
ands r0, r1
cmp r0, 0
beq _08150AE0
ldrh r0, [r2, 0x20]
adds r0, 0x1
strh r0, [r2, 0x20]
ldrh r0, [r2, 0x20]
_08150AD2:
movs r1, 0x3
ands r0, r1
cmp r0, 0
bne _08150AE0
ldrh r0, [r2, 0x22]
adds r0, 0x1
strh r0, [r2, 0x22]
_08150AE0:
movs r1, 0x22
ldrsh r0, [r2, r1]
cmp r0, 0xA0
ble _08150AEE
adds r0, r2, 0
bl DestroySprite
_08150AEE:
pop {r0}
bx r0
thumb_func_end sub_8150A68
thumb_func_start sub_8150AF4
sub_8150AF4: @ 8150AF4
push {lr}
adds r2, r0, 0
movs r1, 0x2E
ldrsh r0, [r2, r1]
cmp r0, 0
bne _08150B12
ldrh r1, [r2, 0x22]
adds r1, 0x10
adds r0, r2, 0
adds r0, 0x29
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
adds r0, r1
strh r0, [r2, 0x22]
_08150B12:
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
lsls r0, 16
asrs r0, 16
movs r3, 0x32
ldrsh r1, [r2, r3]
cmp r0, r1
blt _08150B68
movs r0, 0x30
ldrsh r1, [r2, r0]
cmp r1, 0
beq _08150B32
cmp r1, 0x1
beq _08150B3C
b _08150B5A
_08150B32:
ldrh r0, [r2, 0x20]
subs r0, 0x1
strh r0, [r2, 0x20]
ldrh r0, [r2, 0x2E]
b _08150B4C
_08150B3C:
ldrh r0, [r2, 0x2E]
ands r0, r1
cmp r0, 0
beq _08150B5A
ldrh r0, [r2, 0x20]
subs r0, 0x1
strh r0, [r2, 0x20]
ldrh r0, [r2, 0x20]
_08150B4C:
movs r1, 0x3
ands r0, r1
cmp r0, 0
bne _08150B5A
ldrh r0, [r2, 0x22]
subs r0, 0x1
strh r0, [r2, 0x22]
_08150B5A:
movs r1, 0x22
ldrsh r0, [r2, r1]
cmp r0, 0x4F
bgt _08150B68
adds r0, r2, 0
bl DestroySprite
_08150B68:
pop {r0}
bx r0
thumb_func_end sub_8150AF4
thumb_func_start sub_8150B6C
sub_8150B6C: @ 8150B6C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _08150B7A
cmp r0, 0x1
beq _08150C1C
_08150B7A:
movs r0, 0x48
movs r1, 0
bl SetGpuReg
movs r0, 0x4A
movs r1, 0
bl SetGpuReg
movs r0, 0x40
movs r1, 0
bl SetGpuReg
movs r0, 0x42
movs r1, 0
bl SetGpuReg
movs r0, 0x44
movs r1, 0
bl SetGpuReg
movs r0, 0x46
movs r1, 0
bl SetGpuReg
movs r0, 0
movs r1, 0
bl SetGpuReg
movs r0, 0xE
movs r1, 0
bl SetGpuReg
movs r0, 0xC
movs r1, 0
bl SetGpuReg
movs r0, 0xA
movs r1, 0
bl SetGpuReg
movs r0, 0x8
movs r1, 0
bl SetGpuReg
movs r0, 0x1C
movs r1, 0
bl SetGpuReg
movs r0, 0x1E
movs r1, 0
bl SetGpuReg
movs r0, 0x18
movs r1, 0
bl SetGpuReg
movs r0, 0x1A
movs r1, 0
bl SetGpuReg
movs r0, 0x14
movs r1, 0
bl SetGpuReg
movs r0, 0x16
movs r1, 0
bl SetGpuReg
movs r0, 0x10
movs r1, 0
bl SetGpuReg
movs r0, 0x12
movs r1, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
b _08150D1C
_08150C1C:
movs r0, 0x48
movs r1, 0
bl SetGpuReg
movs r0, 0x4A
movs r1, 0
bl SetGpuReg
movs r0, 0x40
movs r1, 0
bl SetGpuReg
movs r0, 0x42
movs r1, 0
bl SetGpuReg
movs r0, 0x44
movs r1, 0
bl SetGpuReg
movs r0, 0x46
movs r1, 0
bl SetGpuReg
ldr r0, =gSpecialVar_0x8004
ldrh r3, [r0]
cmp r3, 0
bne _08150C74
ldr r1, =gUnknown_0203ABAC
ldr r2, [r1]
movs r0, 0xB0
strb r0, [r2, 0x14]
ldr r2, [r1]
movs r0, 0x10
strb r0, [r2, 0x15]
ldr r0, [r1]
strb r3, [r0, 0xC]
ldr r2, [r1]
movs r0, 0x50
b _08150C8C
.pool
_08150C74:
ldr r1, =gUnknown_0203ABAC
ldr r2, [r1]
movs r3, 0
movs r0, 0x60
strb r0, [r2, 0x14]
ldr r2, [r1]
movs r0, 0xE8
strb r0, [r2, 0x15]
ldr r0, [r1]
strb r3, [r0, 0xC]
ldr r2, [r1]
movs r0, 0x4
_08150C8C:
strb r0, [r2, 0xD]
ldr r0, [r1]
strb r3, [r0, 0x9]
ldr r0, [r1]
strb r3, [r0, 0x9]
adds r4, r1, 0
ldr r0, [r4]
ldrb r1, [r0, 0x14]
movs r0, 0x1C
bl SetGpuReg
ldr r0, [r4]
ldrb r1, [r0, 0x15]
movs r0, 0x1E
bl SetGpuReg
movs r0, 0x18
movs r1, 0
bl SetGpuReg
movs r0, 0x1A
movs r1, 0
bl SetGpuReg
ldr r0, [r4]
ldrb r1, [r0, 0xC]
movs r0, 0x14
bl SetGpuReg
ldr r0, [r4]
ldrb r1, [r0, 0xD]
movs r0, 0x16
bl SetGpuReg
ldr r0, [r4]
ldrb r1, [r0, 0x8]
movs r0, 0x10
bl SetGpuReg
ldr r0, [r4]
ldrb r1, [r0, 0x9]
movs r0, 0x12
bl SetGpuReg
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuReg
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl ShowBg
movs r1, 0xFC
lsls r1, 6
movs r0, 0x50
bl SetGpuReg
_08150D1C:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8150B6C
thumb_func_start sub_8150D28
sub_8150D28: @ 8150D28
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
ldr r1, =gCableCarPlayerGraphicsIDs
add r0, sp, 0xC
movs r2, 0x2
bl memcpy
bl Random
lsls r0, 16
lsrs r0, 16
mov r9, r0
add r6, sp, 0x10
ldr r1, =gMtChimneyHikerGraphicsIDs
adds r0, r6, 0
movs r2, 0x4
bl memcpy
add r5, sp, 0x14
ldr r1, =gMtChimneyHikerCoords
adds r0, r5, 0
movs r2, 0x8
bl memcpy
add r4, sp, 0x1C
ldr r1, =gMtChimneyHikerMovementDelayTable
adds r0, r4, 0
movs r2, 0x4
bl memcpy
ldr r0, =gUnknown_085CDBF8
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x20]
str r1, [sp, 0x24]
ldr r0, =gSpecialVar_0x8004
ldrh r0, [r0]
mov r8, r6
mov r10, r5
cmp r0, 0
beq _08150D86
cmp r0, 0x1
beq _08150E68
_08150D86:
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
add r0, sp
adds r0, 0xC
ldrb r0, [r0]
ldr r1, =sub_8150948
movs r2, 0x66
str r2, [sp]
movs r2, 0xC8
movs r3, 0x49
bl AddPseudoEventObject
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x40
beq _08150DD0
ldr r0, =gSprites
lsls r1, r6, 4
adds r1, r6
lsls r1, 2
adds r1, r0
ldrb r2, [r1, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
movs r2, 0x8
orrs r0, r2
strb r0, [r1, 0x5]
movs r0, 0x8
strh r0, [r1, 0x24]
movs r0, 0x10
strh r0, [r1, 0x26]
movs r0, 0xC8
strh r0, [r1, 0x2E]
movs r0, 0x49
strh r0, [r1, 0x30]
_08150DD0:
ldr r4, =gSpriteTemplate_85CDB9C
adds r0, r4, 0
movs r1, 0xB0
movs r2, 0x2B
movs r3, 0x67
bl CreateSprite
lsls r0, 24
lsrs r6, r0, 24
ldr r5, =gSprites
lsls r0, r6, 4
adds r0, r6
lsls r0, 2
adds r0, r5
movs r1, 0x20
strh r1, [r0, 0x26]
strh r1, [r0, 0x24]
movs r1, 0xB0
strh r1, [r0, 0x2E]
movs r1, 0x2B
strh r1, [r0, 0x30]
adds r4, 0x18
adds r0, r4, 0
movs r1, 0xC8
movs r2, 0x63
movs r3, 0x65
bl CreateSprite
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 4
adds r0, r6
lsls r0, 2
adds r0, r5
movs r1, 0x8
strh r1, [r0, 0x24]
movs r1, 0x4
strh r1, [r0, 0x26]
movs r1, 0xC8
strh r1, [r0, 0x2E]
movs r1, 0x63
strh r1, [r0, 0x30]
ldr r2, =gUnknown_0203ABAC
ldr r1, [r2]
movs r0, 0x7
strb r0, [r1, 0x2]
ldr r1, [r2]
movs r0, 0xAF
lsls r0, 1
strh r0, [r1, 0x4]
movs r0, 0x2
bl sub_80AB130
b _08150F3A
.pool
_08150E68:
ldr r7, =gUnknown_0203ABAC
ldr r0, [r7]
ldr r1, =0x000040fc
adds r0, r1
ldr r1, [r0]
adds r1, 0x48
movs r0, 0xC
str r0, [sp]
movs r0, 0x3
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0
movs r2, 0x18
movs r3, 0x1A
bl CopyToBgTilemapBufferRect_ChangePalette
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
add r0, sp
adds r0, 0xC
ldrb r0, [r0]
ldr r1, =sub_8150948
movs r2, 0x66
str r2, [sp]
movs r2, 0x80
movs r3, 0x27
bl AddPseudoEventObject
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x40
beq _08150ED4
ldr r0, =gSprites
lsls r1, r6, 4
adds r1, r6
lsls r1, 2
adds r1, r0
ldrb r2, [r1, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
movs r2, 0x8
orrs r0, r2
strb r0, [r1, 0x5]
movs r0, 0x8
strh r0, [r1, 0x24]
movs r0, 0x10
strh r0, [r1, 0x26]
movs r0, 0x80
strh r0, [r1, 0x2E]
movs r0, 0x27
strh r0, [r1, 0x30]
_08150ED4:
ldr r4, =gSpriteTemplate_85CDB9C
adds r0, r4, 0
movs r1, 0x68
movs r2, 0x9
movs r3, 0x67
bl CreateSprite
lsls r0, 24
lsrs r6, r0, 24
ldr r5, =gSprites
lsls r0, r6, 4
adds r0, r6
lsls r0, 2
adds r0, r5
movs r1, 0x20
strh r1, [r0, 0x26]
strh r1, [r0, 0x24]
movs r1, 0x68
strh r1, [r0, 0x2E]
movs r1, 0x9
strh r1, [r0, 0x30]
adds r4, 0x18
adds r0, r4, 0
movs r1, 0x80
movs r2, 0x41
movs r3, 0x65
bl CreateSprite
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 4
adds r0, r6
lsls r0, 2
adds r0, r5
movs r1, 0x8
strh r1, [r0, 0x24]
movs r1, 0x4
strh r1, [r0, 0x26]
movs r1, 0x80
strh r1, [r0, 0x2E]
movs r1, 0x41
strh r1, [r0, 0x30]
ldr r1, [r7]
movs r0, 0x2
strb r0, [r1, 0x2]
ldr r1, [r7]
ldr r0, =0x00000109
strh r0, [r1, 0x4]
movs r0, 0x7
bl sub_80AB130
_08150F3A:
movs r4, 0
ldr r5, =gSprites
_08150F3E:
lsls r1, r4, 20
movs r2, 0xC0
lsls r2, 15
adds r1, r2
asrs r1, 16
lsls r2, r4, 19
ldr r3, =0xfff80000
adds r2, r3
asrs r2, 16
ldr r0, =gSpriteTemplate_85CDBCC
movs r3, 0x68
bl CreateSprite
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 4
adds r0, r6
lsls r0, 2
adds r0, r5
movs r1, 0x8
strh r1, [r0, 0x24]
strh r1, [r0, 0x26]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x8
bls _08150F3E
movs r0, 0x3F
mov r4, r9
ands r0, r4
cmp r0, 0
bne _08151074
mov r0, r9
movs r1, 0x3
bl __umodsi3
lsls r0, 16
lsrs r0, 16
add r0, r8
ldrb r0, [r0]
ldr r5, =gSpecialVar_0x8004
ldrh r4, [r5]
lsls r4, 2
add r1, sp, 0x20
adds r1, r4, r1
ldr r1, [r1]
mov r3, r10
adds r2, r3, r4
movs r3, 0
ldrsh r2, [r2, r3]
mov r3, sp
adds r3, 0x16
adds r3, r4
movs r4, 0
ldrsh r3, [r3, r4]
movs r4, 0x6A
str r4, [sp]
bl AddPseudoEventObject
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x40
beq _08151074
ldr r1, =gSprites
lsls r2, r6, 4
adds r0, r2, r6
lsls r0, 2
adds r4, r0, r1
ldrb r1, [r4, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r1
movs r1, 0x8
orrs r0, r1
strb r0, [r4, 0x5]
adds r0, r4, 0
adds r0, 0x28
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
negs r0, r0
strh r0, [r4, 0x24]
adds r0, r4, 0
adds r0, 0x29
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
negs r0, r0
strh r0, [r4, 0x26]
ldrh r0, [r5]
mov r8, r2
cmp r0, 0
bne _08151036
movs r7, 0x1
mov r5, r9
ands r5, r7
cmp r5, 0
beq _08151030
adds r0, r4, 0
movs r1, 0x6
b _08151044
.pool
_08151030:
adds r0, r4, 0
movs r1, 0x7
b _08151056
_08151036:
movs r7, 0x1
mov r5, r9
ands r5, r7
cmp r5, 0
beq _08151052
adds r0, r4, 0
movs r1, 0x7
_08151044:
bl StartSpriteAnim
strh r7, [r4, 0x30]
ldrh r0, [r4, 0x22]
adds r0, 0x2
strh r0, [r4, 0x22]
b _0815105C
_08151052:
adds r0, r4, 0
movs r1, 0x6
_08151056:
bl StartSpriteAnim
strh r5, [r4, 0x30]
_0815105C:
ldr r0, =gSprites
mov r2, r8
adds r1, r2, r6
lsls r1, 2
adds r1, r0
movs r0, 0x3
mov r3, r9
ands r0, r3
add r0, sp
adds r0, 0x1C
ldrb r0, [r0]
strh r0, [r1, 0x32]
_08151074:
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8150D28
thumb_func_start sub_8151088
sub_8151088: @ 8151088
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
movs r3, 0
mov r9, r3
ldr r2, =gUnknown_0203ABAC
ldr r0, [r2]
ldrb r1, [r0, 0x1B]
adds r1, 0x2
lsls r0, r1, 3
adds r0, r1
lsls r0, 26
lsrs r0, 24
mov r12, r0
_081510AA:
movs r7, 0
lsls r0, r3, 1
adds r1, r3, 0x3
adds r2, r3, 0x6
adds r4, r3, 0x1
str r4, [sp, 0x4]
adds r0, r3
lsls r0, 3
str r0, [sp]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
mov r10, r0
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
mov r8, r0
_081510CC:
ldr r0, =gUnknown_0203ABAC
ldr r6, [r0]
lsls r3, r7, 1
ldr r1, [sp]
adds r2, r3, r1
adds r4, r6, 0
adds r4, 0x22
adds r2, r4, r2
mov r1, r12
adds r0, r1, 0x1
lsls r0, 24
lsrs r0, 24
mov r12, r0
ldr r0, =0x000040fc
adds r5, r6, r0
ldr r0, [r5]
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
strh r0, [r2]
mov r1, r10
adds r2, r3, r1
adds r2, r4, r2
str r2, [sp, 0x8]
ldr r0, [r5]
mov r2, r9
lsls r1, r2, 1
adds r0, r1, r0
ldrh r0, [r0]
ldr r2, [sp, 0x8]
strh r0, [r2]
add r3, r8
adds r4, r3
ldr r0, [r5]
adds r1, r0
adds r1, 0x48
ldrh r0, [r1]
strh r0, [r4]
mov r0, r9
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r9, r0
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0xB
bls _081510CC
ldr r4, [sp, 0x4]
lsls r0, r4, 24
lsrs r3, r0, 24
cmp r3, 0x2
bls _081510AA
ldrb r0, [r6, 0x1B]
adds r0, 0x1
movs r1, 0x3
bl __modsi3
strb r0, [r6, 0x1B]
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8151088
thumb_func_start sub_815115C
sub_815115C: @ 815115C
push {r4,r5,lr}
ldr r5, =gUnknown_0203ABAC
ldr r4, [r5]
ldrb r0, [r4, 0x1C]
adds r0, 0x1
movs r1, 0x60
bl __modsi3
strb r0, [r4, 0x1C]
ldr r1, [r5]
ldrb r0, [r1, 0x1F]
ldrb r2, [r1, 0x1D]
subs r0, r2
strb r0, [r1, 0x8]
ldr r2, [r5]
adds r0, r2, 0
adds r0, 0x20
ldrb r0, [r0]
ldrb r1, [r2, 0x1E]
subs r0, r1
strb r0, [r2, 0x9]
ldr r1, [r5]
ldrb r0, [r1, 0x1D]
adds r0, 0x1
strb r0, [r1, 0x1D]
ldr r2, [r5]
ldrb r0, [r2, 0x1D]
movs r1, 0x3
ands r0, r1
cmp r0, 0
bne _081511A0
ldrb r0, [r2, 0x1E]
adds r0, 0x1
strb r0, [r2, 0x1E]
_081511A0:
ldr r0, [r5]
ldrb r0, [r0, 0x1D]
cmp r0, 0x10
bls _081511AC
bl sub_8151214
_081511AC:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_815115C
thumb_func_start sub_81511B8
sub_81511B8: @ 81511B8
push {r4,r5,lr}
ldr r5, =gUnknown_0203ABAC
ldr r4, [r5]
ldrb r0, [r4, 0x1C]
adds r0, 0x1
movs r1, 0x60
bl __modsi3
strb r0, [r4, 0x1C]
ldr r1, [r5]
ldrb r0, [r1, 0x1D]
ldrb r2, [r1, 0x1F]
adds r0, r2
strb r0, [r1, 0x8]
ldr r1, [r5]
adds r2, r1, 0
adds r2, 0x20
ldrb r0, [r1, 0x1E]
ldrb r2, [r2]
adds r0, r2
strb r0, [r1, 0x9]
ldr r1, [r5]
ldrb r0, [r1, 0x1D]
adds r0, 0x1
strb r0, [r1, 0x1D]
ldr r2, [r5]
ldrb r0, [r2, 0x1D]
movs r1, 0x3
ands r0, r1
cmp r0, 0
bne _081511FC
ldrb r0, [r2, 0x1E]
adds r0, 0x1
strb r0, [r2, 0x1E]
_081511FC:
ldr r0, [r5]
ldrb r0, [r0, 0x1D]
cmp r0, 0x10
bls _08151208
bl sub_8151388
_08151208:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81511B8
thumb_func_start sub_8151214
sub_8151214: @ 8151214
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
movs r7, 0
ldr r3, =gUnknown_0203ABAC
ldr r0, [r3]
strb r7, [r0, 0x1E]
strb r7, [r0, 0x1D]
ldr r1, [r3]
ldrb r0, [r1, 0x8]
strb r0, [r1, 0x1F]
ldr r0, [r3]
ldrb r1, [r0, 0x9]
adds r0, 0x20
strb r1, [r0]
ldr r4, [r3]
ldrb r1, [r4, 0x19]
adds r2, r1, 0
adds r2, 0x1E
adds r0, r2, 0
asrs r0, 5
lsls r0, 5
subs r0, r2, r0
strb r0, [r4, 0x19]
ldr r1, [r3]
ldrb r0, [r1, 0x18]
subs r0, 0x2
strb r0, [r1, 0x18]
ldr r4, =gUnknown_0203ABB2
ldr r0, [r3]
ldrb r1, [r0, 0x1A]
adds r2, r1, 0
adds r2, 0x17
adds r0, r2, 0
asrs r0, 5
lsls r0, 5
subs r0, r2, r0
strb r0, [r4]
ldr r6, =gUnknown_0203ABB0
mov r9, r3
ldr r0, =gUnknown_0203ABB1
mov r8, r0
_0815126E:
mov r1, r9
ldr r2, [r1]
ldrb r0, [r2, 0x19]
strb r0, [r6]
ldr r0, =gUnknown_0203ABB2
ldrb r0, [r0]
adds r1, r0, r7
adds r0, r1, 0
asrs r0, 5
lsls r0, 5
subs r0, r1, r0
mov r1, r8
strb r0, [r1]
ldrb r1, [r2, 0x18]
lsls r1, 1
lsls r0, r7, 1
adds r0, r7
lsls r5, r0, 3
adds r1, r5
adds r0, r2, 0
adds r0, 0x22
adds r0, r1
ldrh r1, [r0]
ldrb r2, [r6]
mov r0, r8
ldrb r3, [r0]
movs r4, 0x1
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0x11
mov r10, r0
str r0, [sp, 0x8]
movs r0, 0
bl FillBgTilemapBufferRect
ldrb r1, [r6]
adds r2, r1, 0x1
adds r0, r2, 0
asrs r0, 5
lsls r0, 5
subs r0, r2, r0
strb r0, [r6]
mov r0, r9
ldr r1, [r0]
ldrb r0, [r1, 0x18]
adds r0, 0x1
lsls r0, 1
adds r0, r5
adds r1, 0x22
adds r1, r0
ldrh r1, [r1]
ldrb r2, [r6]
mov r0, r8
ldrb r3, [r0]
str r4, [sp]
str r4, [sp, 0x4]
mov r0, r10
str r0, [sp, 0x8]
movs r0, 0
bl FillBgTilemapBufferRect
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x8
bls _0815126E
ldr r5, =gUnknown_0203ABB0
ldr r4, =gUnknown_0203ABAC
ldr r0, [r4]
ldrb r1, [r0, 0x19]
adds r2, r1, 0
adds r2, 0x1E
adds r0, r2, 0
asrs r0, 5
lsls r0, 5
subs r0, r2, r0
strb r0, [r5]
ldrb r2, [r5]
movs r0, 0x2
str r0, [sp]
movs r6, 0x20
str r6, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r3, 0
bl FillBgTilemapBufferRect
ldr r1, [r4]
ldrb r0, [r1, 0x18]
cmp r0, 0
bne _08151368
ldrb r2, [r1, 0x1A]
adds r3, r2, 0
adds r3, 0x1D
adds r0, r3, 0
asrs r0, 5
lsls r0, 5
subs r0, r3, r0
strb r0, [r1, 0x1A]
ldr r1, [r4]
movs r0, 0xC
strb r0, [r1, 0x18]
bl sub_8151088
ldr r0, [r4]
ldrb r1, [r0, 0x1A]
adds r2, r1, 0x1
adds r0, r2, 0
asrs r0, 5
lsls r0, 5
subs r0, r2, r0
strb r0, [r5]
ldrb r3, [r5]
str r6, [sp]
movs r0, 0x9
str r0, [sp, 0x4]
mov r1, r10
str r1, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0
bl FillBgTilemapBufferRect
_08151368:
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8151214
thumb_func_start sub_8151388
sub_8151388: @ 8151388
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
movs r7, 0
ldr r2, =gUnknown_0203ABAC
ldr r0, [r2]
strb r7, [r0, 0x1E]
strb r7, [r0, 0x1D]
ldr r1, [r2]
ldrb r0, [r1, 0x8]
strb r0, [r1, 0x1F]
ldr r0, [r2]
ldrb r1, [r0, 0x9]
adds r0, 0x20
strb r1, [r0]
ldr r4, [r2]
ldrb r1, [r4, 0x19]
adds r3, r1, 0x2
adds r0, r3, 0
asrs r0, 5
lsls r0, 5
subs r0, r3, r0
strb r0, [r4, 0x19]
ldr r1, [r2]
ldrb r0, [r1, 0x18]
adds r0, 0x2
strb r0, [r1, 0x18]
ldr r1, =gUnknown_0203ABB5
ldr r0, [r2]
ldrb r0, [r0, 0x1A]
strb r0, [r1]
ldr r6, =gUnknown_0203ABB3
mov r10, r2
ldr r0, =gUnknown_0203ABB4
mov r9, r0
_081513D4:
mov r1, r10
ldr r2, [r1]
ldrb r0, [r2, 0x19]
strb r0, [r6]
ldr r0, =gUnknown_0203ABB5
ldrb r0, [r0]
adds r1, r0, r7
adds r0, r1, 0
asrs r0, 5
lsls r0, 5
subs r0, r1, r0
mov r1, r9
strb r0, [r1]
ldrb r1, [r2, 0x18]
lsls r1, 1
lsls r0, r7, 1
adds r0, r7
lsls r5, r0, 3
adds r1, r5
adds r0, r2, 0
adds r0, 0x22
adds r0, r1
ldrh r1, [r0]
ldrb r2, [r6]
mov r0, r9
ldrb r3, [r0]
movs r4, 0x1
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0x11
mov r8, r0
str r0, [sp, 0x8]
movs r0, 0
bl FillBgTilemapBufferRect
ldrb r1, [r6]
adds r2, r1, 0x1
adds r0, r2, 0
asrs r0, 5
lsls r0, 5
subs r0, r2, r0
strb r0, [r6]
mov r0, r10
ldr r1, [r0]
ldrb r0, [r1, 0x18]
adds r0, 0x1
lsls r0, 1
adds r0, r5
adds r1, 0x22
adds r1, r0
ldrh r1, [r1]
ldrb r2, [r6]
mov r0, r9
ldrb r3, [r0]
str r4, [sp]
str r4, [sp, 0x4]
mov r0, r8
str r0, [sp, 0x8]
movs r0, 0
bl FillBgTilemapBufferRect
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x8
bls _081513D4
ldr r4, =gUnknown_0203ABB4
ldr r5, =gUnknown_0203ABAC
ldr r3, [r5]
ldrb r1, [r3, 0x1A]
adds r2, r1, 0
adds r2, 0x17
adds r0, r2, 0
asrs r0, 5
lsls r0, 5
subs r0, r2, r0
strb r0, [r4]
ldrb r2, [r3, 0x19]
ldrb r3, [r4]
movs r0, 0x2
str r0, [sp]
movs r0, 0x9
str r0, [sp, 0x4]
mov r1, r8
str r1, [sp, 0x8]
movs r0, 0
movs r1, 0
bl FillBgTilemapBufferRect
ldr r1, [r5]
ldrb r0, [r1, 0x18]
cmp r0, 0xA
bne _081514A6
ldrb r2, [r1, 0x1A]
adds r3, r2, 0x3
adds r0, r3, 0
asrs r0, 5
lsls r0, 5
subs r0, r3, r0
strb r0, [r1, 0x1A]
ldr r1, [r5]
movs r0, 0xFE
strb r0, [r1, 0x18]
bl sub_8151088
_081514A6:
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8151388
thumb_func_start sub_81514C8
sub_81514C8: @ 81514C8
push {lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _081514D6
cmp r0, 0x1
beq _08151500
_081514D6:
ldr r1, =gUnknown_0203ABAC
ldr r2, [r1]
movs r3, 0
movs r0, 0x2
strb r0, [r2, 0x1B]
ldr r0, [r1]
strb r3, [r0, 0x19]
ldr r2, [r1]
movs r0, 0x14
strb r0, [r2, 0x1A]
ldr r1, [r1]
movs r0, 0xC
strb r0, [r1, 0x18]
bl sub_8151088
bl sub_8151214
b _08151522
.pool
_08151500:
ldr r1, =gUnknown_0203ABAC
ldr r2, [r1]
movs r0, 0x2
strb r0, [r2, 0x1B]
ldr r2, [r1]
movs r0, 0x1C
strb r0, [r2, 0x19]
ldr r2, [r1]
movs r0, 0x14
strb r0, [r2, 0x1A]
ldr r1, [r1]
movs r0, 0x4
strb r0, [r1, 0x18]
bl sub_8151088
bl sub_8151388
_08151522:
ldr r0, =gUnknown_0203ABAC
ldr r1, [r0]
movs r0, 0
strb r0, [r1, 0x1C]
pop {r0}
bx r0
.pool
thumb_func_end sub_81514C8
.align 2, 0 @ Don't pad with nop.