pokeruby/asm/slot_machine.s
2017-05-21 20:21:00 +02:00

10160 lines
165 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start PlaySlotMachine
PlaySlotMachine: @ 81018A0
push {lr}
lsls r0, 24
lsrs r0, 24
bl sub_81019B0
ldr r0, _081018B4 @ =sub_81018B8
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_081018B4: .4byte sub_81018B8
thumb_func_end PlaySlotMachine
thumb_func_start sub_81018B8
sub_81018B8: @ 81018B8
push {lr}
ldr r0, _081018D0 @ =gMain
ldr r1, _081018D4 @ =0x0000043c
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x6
bhi _0810194A
lsls r0, 2
ldr r1, _081018D8 @ =_081018DC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081018D0: .4byte gMain
_081018D4: .4byte 0x0000043c
_081018D8: .4byte _081018DC
.align 2, 0
_081018DC:
.4byte _081018F8
.4byte _08101902
.4byte _08101908
.4byte _08101912
.4byte _08101918
.4byte _0810191E
.4byte _08101938
_081018F8:
bl sub_8101A28
bl sub_8101BA4
b _08101922
_08101902:
bl sub_8101A8C
b _08101922
_08101908:
bl sub_8101AE0
bl sub_8101B04
b _08101922
_08101912:
bl sub_8101C84
b _08101922
_08101918:
bl sub_8101CA0
b _08101922
_0810191E:
bl sub_8101CC0
_08101922:
ldr r1, _08101930 @ =gMain
ldr r0, _08101934 @ =0x0000043c
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _0810194A
.align 2, 0
_08101930: .4byte gMain
_08101934: .4byte 0x0000043c
_08101938:
bl sub_8101CD4
bl sub_8101CEC
bl sub_8101A44
ldr r0, _08101950 @ =sub_8101954
bl SetMainCallback2
_0810194A:
pop {r0}
bx r0
.align 2, 0
_08101950: .4byte sub_8101954
thumb_func_end sub_81018B8
thumb_func_start sub_8101954
sub_8101954: @ 8101954
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_8101954
thumb_func_start sub_810196C
sub_810196C: @ 810196C
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
ldr r1, _081019A8 @ =REG_WIN0H
ldr r2, _081019AC @ =0x02000000
adds r0, r2, 0
adds r0, 0x58
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x4
adds r0, r2, 0
adds r0, 0x5A
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x4
adds r0, r2, 0
adds r0, 0x5C
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
adds r0, r2, 0
adds r0, 0x5E
ldrh r0, [r0]
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
_081019A8: .4byte REG_WIN0H
_081019AC: .4byte 0x02000000
thumb_func_end sub_810196C
thumb_func_start sub_81019B0
sub_81019B0: @ 81019B0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _081019E4 @ =nullsub_67
movs r1, 0xFF
bl CreateTask
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
ldr r1, _081019E8 @ =gTasks
adds r0, r1
strh r4, [r0, 0x8]
adds r0, 0xA
adds r1, r5, 0
bl StoreWordInTwoHalfwords
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_081019E4: .4byte nullsub_67
_081019E8: .4byte gTasks
thumb_func_end sub_81019B0
thumb_func_start sub_81019EC
sub_81019EC: @ 81019EC
push {lr}
ldr r0, _08101A18 @ =nullsub_67
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
lsls r2, r0, 2
adds r2, r0
lsls r2, 3
ldr r0, _08101A1C @ =gTasks
adds r2, r0
ldr r1, _08101A20 @ =0x02000000
ldrh r0, [r2, 0x8]
strb r0, [r1, 0x1]
adds r2, 0xA
adds r1, 0x64
adds r0, r2, 0
bl LoadWordFromTwoHalfwords
pop {r0}
bx r0
.align 2, 0
_08101A18: .4byte nullsub_67
_08101A1C: .4byte gTasks
_08101A20: .4byte 0x02000000
thumb_func_end sub_81019EC
thumb_func_start nullsub_67
nullsub_67: @ 8101A24
bx lr
thumb_func_end nullsub_67
thumb_func_start sub_8101A28
sub_8101A28: @ 8101A28
push {lr}
movs r0, 0
bl SetVBlankCallback
movs r0, 0
bl SetHBlankCallback
movs r1, 0x80
lsls r1, 19
movs r0, 0
strh r0, [r1]
pop {r0}
bx r0
thumb_func_end sub_8101A28
thumb_func_start sub_8101A44
sub_8101A44: @ 8101A44
push {r4,lr}
ldr r0, _08101A7C @ =sub_810196C
bl SetVBlankCallback
ldr r3, _08101A80 @ =0x04000208
ldrh r2, [r3]
movs r0, 0
strh r0, [r3]
ldr r4, _08101A84 @ =0x04000200
ldrh r0, [r4]
movs r1, 0x1
orrs r0, r1
strh r0, [r4]
strh r2, [r3]
ldr r2, _08101A88 @ =REG_DISPSTAT
ldrh r0, [r2]
movs r1, 0x8
orrs r0, r1
strh r0, [r2]
movs r1, 0x80
lsls r1, 19
movs r2, 0xFD
lsls r2, 6
adds r0, r2, 0
strh r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08101A7C: .4byte sub_810196C
_08101A80: .4byte 0x04000208
_08101A84: .4byte 0x04000200
_08101A88: .4byte REG_DISPSTAT
thumb_func_end sub_8101A44
thumb_func_start sub_8101A8C
sub_8101A8C: @ 8101A8C
push {r4-r7,lr}
sub sp, 0x4
movs r2, 0xC0
lsls r2, 19
movs r3, 0x80
lsls r3, 9
mov r4, sp
movs r6, 0
ldr r1, _08101AD8 @ =0x040000d4
movs r5, 0x80
lsls r5, 5
ldr r7, _08101ADC @ =0x81000800
movs r0, 0x81
lsls r0, 24
mov r12, r0
_08101AAA:
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 _08101AAA
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]
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08101AD8: .4byte 0x040000d4
_08101ADC: .4byte 0x81000800
thumb_func_end sub_8101A8C
thumb_func_start sub_8101AE0
sub_8101AE0: @ 8101AE0
sub sp, 0x4
movs r2, 0xE0
lsls r2, 19
mov r1, sp
movs r0, 0
strh r0, [r1]
ldr r0, _08101AFC @ =0x040000d4
str r1, [r0]
str r2, [r0, 0x4]
ldr r1, _08101B00 @ =0x81000200
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
add sp, 0x4
bx lr
.align 2, 0
_08101AFC: .4byte 0x040000d4
_08101B00: .4byte 0x81000200
thumb_func_end sub_8101AE0
thumb_func_start sub_8101B04
sub_8101B04: @ 8101B04
push {r4,r5,lr}
ldr r5, _08101B70 @ =REG_BG0CNT
movs r1, 0
strh r1, [r5]
ldr r2, _08101B74 @ =REG_BG1CNT
strh r1, [r2]
ldr r3, _08101B78 @ =REG_BG2CNT
strh r1, [r3]
ldr r4, _08101B7C @ =REG_BG3CNT
strh r1, [r4]
ldr r0, _08101B80 @ =REG_BG0HOFS
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
ldr r1, _08101B84 @ =0x00001f08
adds r0, r1, 0
strh r0, [r5]
ldr r1, _08101B88 @ =0x00001c01
adds r0, r1, 0
strh r0, [r2]
ldr r2, _08101B8C @ =0x00001d02
adds r0, r2, 0
strh r0, [r3]
ldr r1, _08101B90 @ =0x00001e02
adds r0, r1, 0
strh r0, [r4]
ldr r0, _08101B94 @ =REG_WININ
movs r1, 0x3F
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
ldr r1, _08101B98 @ =REG_BLDCNT
ldr r2, _08101B9C @ =0x00001048
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x2
ldr r2, _08101BA0 @ =0x00000809
adds r0, r2, 0
strh r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08101B70: .4byte REG_BG0CNT
_08101B74: .4byte REG_BG1CNT
_08101B78: .4byte REG_BG2CNT
_08101B7C: .4byte REG_BG3CNT
_08101B80: .4byte REG_BG0HOFS
_08101B84: .4byte 0x00001f08
_08101B88: .4byte 0x00001c01
_08101B8C: .4byte 0x00001d02
_08101B90: .4byte 0x00001e02
_08101B94: .4byte REG_WININ
_08101B98: .4byte REG_BLDCNT
_08101B9C: .4byte 0x00001048
_08101BA0: .4byte 0x00000809
thumb_func_end sub_8101B04
thumb_func_start sub_8101BA4
sub_8101BA4: @ 8101BA4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
bl sub_81019EC
ldr r5, _08101C74 @ =0x02000000
movs r4, 0
strb r4, [r5]
strb r4, [r5, 0x2]
bl Random
movs r1, 0x1
ands r1, r0
strb r1, [r5, 0x3]
strb r4, [r5, 0x4]
movs r0, 0
strh r4, [r5, 0x8]
strb r0, [r5, 0xA]
strb r0, [r5, 0xB]
ldr r0, _08101C78 @ =gSaveBlock1
ldr r1, _08101C7C @ =0x00000494
adds r0, r1
ldrh r0, [r0]
strh r0, [r5, 0xC]
strh r4, [r5, 0xE]
strh r4, [r5, 0x10]
strh r4, [r5, 0x12]
strh r4, [r5, 0x18]
movs r0, 0x8
strh r0, [r5, 0x1A]
adds r1, r5, 0
adds r1, 0x58
movs r0, 0xF0
strh r0, [r1]
adds r1, 0x2
movs r0, 0xA0
strh r0, [r1]
adds r0, r5, 0
adds r0, 0x5C
movs r1, 0x3F
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
bl GetCurrentMapMusic
adds r1, r5, 0
adds r1, 0x60
strh r0, [r1]
movs r7, 0
adds r6, r5, 0
ldr r2, _08101C80 @ =gUnknown_083ECCF8
mov r9, r2
movs r0, 0x1C
adds r0, r6
mov r8, r0
_08101C14:
lsls r5, r7, 1
adds r0, r6, 0
adds r0, 0x22
adds r0, r5, r0
movs r1, 0
strh r1, [r0]
adds r4, r6, 0
adds r4, 0x28
adds r4, r5, r4
ldrb r0, [r6, 0x3]
lsls r0, 1
lsls r1, r7, 2
adds r0, r1
add r0, r9
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0x15
bl __modsi3
strh r0, [r4]
add r5, r8
movs r2, 0
ldrsh r0, [r4, r2]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
movs r2, 0xFC
lsls r2, 1
adds r0, r2, 0
subs r0, r1
strh r0, [r5]
movs r1, 0
ldrsh r0, [r5, r1]
adds r1, r2, 0
bl __modsi3
strh r0, [r5]
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x2
bls _08101C14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08101C74: .4byte 0x02000000
_08101C78: .4byte gSaveBlock1
_08101C7C: .4byte 0x00000494
_08101C80: .4byte gUnknown_083ECCF8
thumb_func_end sub_8101BA4
thumb_func_start sub_8101C84
sub_8101C84: @ 8101C84
push {r4,lr}
ldr r4, _08101C9C @ =gWindowConfig_81E7128
adds r0, r4, 0
bl SetUpWindowConfig
adds r0, r4, 0
bl InitMenuWindow
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08101C9C: .4byte gWindowConfig_81E7128
thumb_func_end sub_8101C84
thumb_func_start sub_8101CA0
sub_8101CA0: @ 8101CA0
push {lr}
bl ResetPaletteFade
bl ResetSpriteData
ldr r1, _08101CBC @ =gOamLimit
movs r0, 0x80
strb r0, [r1]
bl FreeAllSpritePalettes
bl ResetTasks
pop {r0}
bx r0
.align 2, 0
_08101CBC: .4byte gOamLimit
thumb_func_end sub_8101CA0
thumb_func_start sub_8101CC0
sub_8101CC0: @ 8101CC0
push {lr}
bl sub_8106448
bl sub_81064B8
bl sub_81063C0
pop {r0}
bx r0
thumb_func_end sub_8101CC0
thumb_func_start sub_8101CD4
sub_8101CD4: @ 8101CD4
push {lr}
bl sub_8104EA8
bl sub_8104F8C
bl sub_8103DC8
bl sub_81050C4
pop {r0}
bx r0
thumb_func_end sub_8101CD4
thumb_func_start sub_8101CEC
sub_8101CEC: @ 8101CEC
push {lr}
bl sub_8104048
bl sub_8102DA8
bl sub_8104C5C
bl sub_8101D04
pop {r0}
bx r0
thumb_func_end sub_8101CEC
thumb_func_start sub_8101D04
sub_8101D04: @ 8101D04
push {r4,lr}
ldr r4, _08101D20 @ =sub_8101D24
adds r0, r4, 0
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
bl _call_via_r4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08101D20: .4byte sub_8101D24
thumb_func_end sub_8101D04
thumb_func_start sub_8101D24
sub_8101D24: @ 8101D24
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
ldr r7, _08101D50 @ =gUnknown_083ECAAC
lsls r1, r0, 2
adds r1, r0
lsls r4, r1, 3
ldr r6, _08101D54 @ =0x02000000
ldr r5, _08101D58 @ =gTasks
_08101D36:
ldrb r0, [r6]
lsls r0, 2
adds r0, r7
ldr r1, [r0]
adds r0, r4, r5
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _08101D36
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08101D50: .4byte gUnknown_083ECAAC
_08101D54: .4byte 0x02000000
_08101D58: .4byte gTasks
thumb_func_end sub_8101D24
thumb_func_start sub_8101D5C
sub_8101D5C: @ 8101D5C
push {r4,lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r4, _08101D88 @ =0x02000000
ldrb r0, [r4, 0x2]
bl sub_810423C
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
movs r0, 0
add sp, 0x4
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08101D88: .4byte 0x02000000
thumb_func_end sub_8101D5C
thumb_func_start sub_8101D8C
sub_8101D8C: @ 8101D8C
push {lr}
ldr r0, _08101DA8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08101DA2
ldr r1, _08101DAC @ =0x02000000
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
_08101DA2:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08101DA8: .4byte gPaletteFade
_08101DAC: .4byte 0x02000000
thumb_func_end sub_8101D8C
thumb_func_start sub_8101DB0
sub_8101DB0: @ 8101DB0
push {lr}
ldr r2, _08101DD8 @ =0x02000000
movs r0, 0
strh r0, [r2, 0xE]
strh r0, [r2, 0x12]
strh r0, [r2, 0x18]
ldrb r1, [r2, 0x4]
movs r0, 0xC0
ands r0, r1
strb r0, [r2, 0x4]
movs r0, 0x4
strb r0, [r2]
movs r1, 0xC
ldrsh r0, [r2, r1]
cmp r0, 0
bgt _08101DDC
movs r0, 0x19
strb r0, [r2]
b _08101DEC
.align 2, 0
_08101DD8: .4byte 0x02000000
_08101DDC:
ldrb r0, [r2, 0xA]
cmp r0, 0
beq _08101DEC
movs r0, 0x3
strb r0, [r2]
movs r0, 0x4
bl sub_8104CAC
_08101DEC:
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end sub_8101DB0
thumb_func_start sub_8101DF4
sub_8101DF4: @ 8101DF4
push {lr}
bl sub_8104E18
lsls r0, 24
cmp r0, 0
beq _08101E06
ldr r1, _08101E0C @ =0x02000000
movs r0, 0x4
strb r0, [r1]
_08101E06:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08101E0C: .4byte 0x02000000
thumb_func_end sub_8101DF4
thumb_func_start sub_8101E10
sub_8101E10: @ 8101E10
push {lr}
movs r0, 0
bl sub_8104CAC
ldr r2, _08101E34 @ =0x02000000
movs r0, 0x5
strb r0, [r2]
movs r0, 0xC
ldrsh r1, [r2, r0]
ldr r0, _08101E38 @ =0x0000270e
cmp r1, r0
ble _08101E2C
movs r0, 0x17
strb r0, [r2]
_08101E2C:
movs r0, 0x1
pop {r1}
bx r1
.align 2, 0
_08101E34: .4byte 0x02000000
_08101E38: .4byte 0x0000270e
thumb_func_end sub_8101E10
thumb_func_start sub_8101E3C
sub_8101E3C: @ 8101E3C
push {r4,lr}
ldr r0, _08101E58 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08101E60
movs r0, 0
bl sub_8104AB8
ldr r1, _08101E5C @ =0x02000000
movs r0, 0x8
strb r0, [r1]
b _08101F1A
.align 2, 0
_08101E58: .4byte gMain
_08101E5C: .4byte 0x02000000
_08101E60:
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _08101EC2
ldr r2, _08101EB8 @ =0x02000000
movs r1, 0xC
ldrsh r0, [r2, r1]
subs r0, 0x3
movs r3, 0x12
ldrsh r1, [r2, r3]
adds r0, r1
cmp r0, 0
blt _08101EBC
ldrh r4, [r2, 0x12]
adds r0, r1, 0
cmp r0, 0x2
bgt _08101E9C
_08101E84:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8103D50
lsls r0, r4, 16
movs r2, 0x80
lsls r2, 9
adds r0, r2
lsrs r4, r0, 16
asrs r0, 16
cmp r0, 0x2
ble _08101E84
_08101E9C:
ldr r1, _08101EB8 @ =0x02000000
ldrh r0, [r1, 0xC]
subs r0, 0x3
ldrh r3, [r1, 0x12]
adds r0, r3
strh r0, [r1, 0xC]
movs r0, 0x3
strh r0, [r1, 0x12]
movs r0, 0x9
strb r0, [r1]
movs r0, 0x5F
bl PlaySE
b _08101F1A
.align 2, 0
_08101EB8: .4byte 0x02000000
_08101EBC:
movs r0, 0x6
strb r0, [r2]
b _08101F1A
_08101EC2:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08101EEC
ldr r4, _08101F24 @ =0x02000000
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08101EEC
movs r0, 0x5F
bl PlaySE
ldrb r0, [r4, 0x12]
bl sub_8103D50
ldrh r0, [r4, 0xC]
subs r0, 0x1
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x12]
adds r0, 0x1
strh r0, [r4, 0x12]
_08101EEC:
ldr r0, _08101F24 @ =0x02000000
movs r2, 0x12
ldrsh r1, [r0, r2]
ldr r2, _08101F28 @ =gMain
adds r3, r0, 0
cmp r1, 0x2
bgt _08101F08
cmp r1, 0
beq _08101F0C
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08101F0C
_08101F08:
movs r0, 0x9
strb r0, [r3]
_08101F0C:
ldrh r1, [r2, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08101F1A
movs r0, 0x15
strb r0, [r3]
_08101F1A:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08101F24: .4byte 0x02000000
_08101F28: .4byte gMain
thumb_func_end sub_8101E3C
thumb_func_start sub_8101F2C
sub_8101F2C: @ 8101F2C
push {r4,lr}
adds r4, r0, 0
bl MenuDisplayMessageBox
adds r0, r4, 0
movs r1, 0x2
movs r2, 0xF
bl MenuPrint
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8101F2C
thumb_func_start sub_8101F44
sub_8101F44: @ 8101F44
push {lr}
ldr r0, _08101F58 @ =gOtherText_DontHaveThreeCoins
bl sub_8101F2C
ldr r1, _08101F5C @ =0x02000000
movs r0, 0x7
strb r0, [r1]
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08101F58: .4byte gOtherText_DontHaveThreeCoins
_08101F5C: .4byte 0x02000000
thumb_func_end sub_8101F44
thumb_func_start sub_8101F60
sub_8101F60: @ 8101F60
push {lr}
ldr r0, _08101F80 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _08101F78
bl MenuZeroFillScreen
ldr r1, _08101F84 @ =0x02000000
movs r0, 0x5
strb r0, [r1]
_08101F78:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08101F80: .4byte gMain
_08101F84: .4byte 0x02000000
thumb_func_end sub_8101F60
thumb_func_start sub_8101F88
sub_8101F88: @ 8101F88
push {lr}
bl sub_8104AEC
lsls r0, 24
cmp r0, 0
beq _08101F9A
ldr r1, _08101FA0 @ =0x02000000
movs r0, 0x5
strb r0, [r1]
_08101F9A:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08101FA0: .4byte 0x02000000
thumb_func_end sub_8101F88
thumb_func_start sub_8101FA4
sub_8101FA4: @ 8101FA4
push {r4,lr}
adds r4, r0, 0
bl sub_8102484
bl sub_8104DA4
movs r0, 0
bl sub_8102DEC
movs r0, 0x1
bl sub_8102DEC
movs r0, 0x2
bl sub_8102DEC
movs r0, 0
strh r0, [r4, 0x8]
ldr r4, _08101FDC @ =0x02000000
ldrb r1, [r4, 0x4]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08101FE0
bl sub_810430C
movs r0, 0xA
b _08101FE8
.align 2, 0
_08101FDC: .4byte 0x02000000
_08101FE0:
movs r0, 0x1
bl sub_8104CAC
movs r0, 0xB
_08101FE8:
strb r0, [r4]
ldr r4, _08102004 @ =0x02000000
movs r0, 0x8
strh r0, [r4, 0x1A]
ldrb r0, [r4, 0xA]
cmp r0, 0
beq _08101FFC
bl dp15_jump_random_unknown
strh r0, [r4, 0x1A]
_08101FFC:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08102004: .4byte 0x02000000
thumb_func_end sub_8101FA4
thumb_func_start sub_8102008
sub_8102008: @ 8102008
push {lr}
bl sub_810432C
lsls r0, 24
cmp r0, 0
beq _08102028
movs r0, 0x1
bl sub_8104CAC
ldr r1, _08102030 @ =0x02000000
ldrb r2, [r1, 0x4]
movs r0, 0xDF
ands r0, r2
strb r0, [r1, 0x4]
movs r0, 0xB
strb r0, [r1]
_08102028:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08102030: .4byte 0x02000000
thumb_func_end sub_8102008
thumb_func_start sub_8102034
sub_8102034: @ 8102034
push {lr}
ldrh r1, [r0, 0x8]
adds r1, 0x1
strh r1, [r0, 0x8]
lsls r1, 16
asrs r1, 16
cmp r1, 0x1D
ble _0810204E
bl sub_81024F0
ldr r1, _08102054 @ =0x02000000
movs r0, 0xC
strb r0, [r1]
_0810204E:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08102054: .4byte 0x02000000
thumb_func_end sub_8102034
thumb_func_start sub_8102058
sub_8102058: @ 8102058
push {r4,lr}
ldr r0, _08102088 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810207E
movs r0, 0x18
bl PlaySE
ldr r4, _0810208C @ =0x02000000
ldrb r0, [r4, 0x18]
bl sub_8102E1C
ldrb r0, [r4, 0x18]
bl sub_8103C14
movs r0, 0xD
strb r0, [r4]
_0810207E:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08102088: .4byte gMain
_0810208C: .4byte 0x02000000
thumb_func_end sub_8102058
thumb_func_start sub_8102090
sub_8102090: @ 8102090
push {r4,lr}
ldr r4, _081020BC @ =0x02000000
ldrb r0, [r4, 0x18]
bl sub_8102E40
lsls r0, 24
cmp r0, 0
bne _081020C0
ldrh r0, [r4, 0x18]
adds r0, 0x1
strh r0, [r4, 0x18]
movs r1, 0xC
strb r1, [r4]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _081020B6
movs r0, 0xE
strb r0, [r4]
_081020B6:
movs r0, 0x1
b _081020C2
.align 2, 0
_081020BC: .4byte 0x02000000
_081020C0:
movs r0, 0
_081020C2:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8102090
thumb_func_start sub_81020C8
sub_81020C8: @ 81020C8
push {r4,lr}
ldr r4, _08102128 @ =0x02000000
ldrb r1, [r4, 0x4]
movs r0, 0xC0
ands r0, r1
strb r0, [r4, 0x4]
bl sub_81027A0
ldrb r0, [r4, 0xA]
cmp r0, 0
beq _081020E8
subs r0, 0x1
strb r0, [r4, 0xA]
ldrb r0, [r4, 0xB]
adds r0, 0x1
strb r0, [r4, 0xB]
_081020E8:
ldrh r0, [r4, 0x8]
cmp r0, 0
beq _081021B4
movs r0, 0xF
strb r0, [r4]
bl sub_8102A24
bl sub_8103F70
ldrh r0, [r4, 0x10]
ldrh r1, [r4, 0xE]
subs r0, r1
strh r0, [r4, 0x10]
lsls r0, 16
cmp r0, 0
bge _0810210C
movs r0, 0
strh r0, [r4, 0x10]
_0810210C:
ldrh r1, [r4, 0x8]
movs r0, 0xC0
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _08102130
ldr r0, _0810212C @ =0x00000185
bl PlayFanfare
movs r0, 0x6
bl sub_8104CAC
b _0810215A
.align 2, 0
_08102128: .4byte 0x02000000
_0810212C: .4byte 0x00000185
_08102130:
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _0810214C
ldr r0, _08102148 @ =0x00000185
bl PlayFanfare
movs r0, 0x5
bl sub_8104CAC
b _0810215A
.align 2, 0
_08102148: .4byte 0x00000185
_0810214C:
movs r0, 0xC3
lsls r0, 1
bl PlayFanfare
movs r0, 0x2
bl sub_8104CAC
_0810215A:
ldr r1, _081021B0 @ =0x02000000
ldrh r3, [r1, 0x8]
movs r0, 0xE0
lsls r0, 1
ands r0, r3
adds r2, r1, 0
cmp r0, 0
beq _08102192
ldrb r1, [r2, 0x4]
movs r0, 0x3F
ands r0, r1
movs r1, 0
strb r0, [r2, 0x4]
movs r0, 0xC0
lsls r0, 1
ands r0, r3
cmp r0, 0
beq _08102192
strb r1, [r2, 0xA]
strb r1, [r2, 0xB]
strb r1, [r2, 0x3]
movs r0, 0x80
lsls r0, 1
ands r0, r3
cmp r0, 0
beq _08102192
movs r0, 0x1
strb r0, [r2, 0x3]
_08102192:
ldrh r1, [r2, 0x8]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _081021D2
ldrb r0, [r2, 0x2]
cmp r0, 0xF
bhi _081021D2
adds r0, 0x1
strb r0, [r2, 0x2]
ldrb r0, [r2, 0x2]
bl sub_8104064
b _081021D2
.align 2, 0
_081021B0: .4byte 0x02000000
_081021B4:
movs r0, 0x3
bl sub_8104CAC
movs r0, 0x14
strb r0, [r4]
ldrh r0, [r4, 0x12]
ldrh r1, [r4, 0x10]
adds r0, r1
strh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 16
ldr r1, _081021DC @ =0x0000270f
cmp r0, r1
ble _081021D2
strh r1, [r4, 0x10]
_081021D2:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_081021DC: .4byte 0x0000270f
thumb_func_end sub_81020C8
thumb_func_start sub_81021E0
sub_81021E0: @ 81021E0
push {lr}
bl sub_8102A44
lsls r0, 24
cmp r0, 0
beq _081021F2
ldr r1, _081021F8 @ =0x02000000
movs r0, 0x10
strb r0, [r1]
_081021F2:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_081021F8: .4byte 0x02000000
thumb_func_end sub_81021E0
thumb_func_start sub_81021FC
sub_81021FC: @ 81021FC
push {r4,lr}
bl sub_8103FA0
lsls r0, 24
cmp r0, 0
beq _08102256
ldr r4, _08102260 @ =0x02000000
movs r0, 0x13
strb r0, [r4]
ldrh r1, [r4, 0x8]
movs r0, 0xC0
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _08102220
movs r0, 0x1C
bl IncrementGameStat
_08102220:
ldrh r1, [r4, 0x8]
movs r0, 0x4
ands r0, r1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0
beq _08102236
movs r0, 0
strh r0, [r4, 0x18]
movs r0, 0x9
strb r0, [r4]
_08102236:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08102242
movs r0, 0x11
strb r0, [r4]
_08102242:
ldrb r0, [r4, 0xA]
cmp r0, 0
beq _08102256
cmp r2, 0
beq _08102256
movs r0, 0x4
bl sub_8104CAC
movs r0, 0x12
strb r0, [r4]
_08102256:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08102260: .4byte 0x02000000
thumb_func_end sub_81021FC
thumb_func_start sub_8102264
sub_8102264: @ 8102264
push {r4,lr}
bl sub_81040C8
lsls r0, 24
cmp r0, 0
bne _08102294
ldr r4, _0810229C @ =0x02000000
movs r0, 0x13
strb r0, [r4]
ldrh r1, [r4, 0x8]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08102294
movs r0, 0x9
strb r0, [r4]
ldrb r0, [r4, 0xA]
cmp r0, 0
beq _08102294
movs r0, 0x4
bl sub_8104CAC
movs r0, 0x12
strb r0, [r4]
_08102294:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0810229C: .4byte 0x02000000
thumb_func_end sub_8102264
thumb_func_start sub_81022A0
sub_81022A0: @ 81022A0
push {lr}
bl sub_8104E18
lsls r0, 24
cmp r0, 0
beq _081022C0
ldr r2, _081022C8 @ =0x02000000
movs r0, 0x13
strb r0, [r2]
ldrh r1, [r2, 0x8]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _081022C0
movs r0, 0x9
strb r0, [r2]
_081022C0:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_081022C8: .4byte 0x02000000
thumb_func_end sub_81022A0
thumb_func_start sub_81022CC
sub_81022CC: @ 81022CC
push {lr}
movs r0, 0
bl sub_8103D8C
movs r0, 0x1
bl sub_8103D8C
movs r0, 0x2
bl sub_8103D8C
ldr r1, _081022EC @ =0x02000000
movs r0, 0x2
strb r0, [r1]
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_081022EC: .4byte 0x02000000
thumb_func_end sub_81022CC
thumb_func_start sub_81022F0
sub_81022F0: @ 81022F0
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0xA]
adds r0, 0x1
strh r0, [r1, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x40
ble _0810230C
movs r0, 0
strh r0, [r1, 0xA]
ldr r1, _08102314 @ =0x02000000
movs r0, 0x13
strb r0, [r1]
_0810230C:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08102314: .4byte 0x02000000
thumb_func_end sub_81022F0
thumb_func_start sub_8102318
sub_8102318: @ 8102318
push {lr}
ldr r0, _0810233C @ =gOtherText_QuitGamePrompt
bl sub_8101F2C
movs r0, 0x15
movs r1, 0x7
movs r2, 0x1
bl DisplayYesNoMenu
bl sub_814AB84
ldr r1, _08102340 @ =0x02000000
movs r0, 0x16
strb r0, [r1]
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_0810233C: .4byte gOtherText_QuitGamePrompt
_08102340: .4byte 0x02000000
thumb_func_end sub_8102318
thumb_func_start sub_8102344
sub_8102344: @ 8102344
push {lr}
bl ProcessMenuInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
bne _0810237C
bl MenuZeroFillScreen
movs r0, 0
bl sub_8103D8C
movs r0, 0x1
bl sub_8103D8C
movs r0, 0x2
bl sub_8103D8C
ldr r0, _08102378 @ =0x02000000
ldrh r1, [r0, 0x12]
ldrh r2, [r0, 0xC]
adds r1, r2
strh r1, [r0, 0xC]
movs r1, 0x1B
strb r1, [r0]
b _08102392
.align 2, 0
_08102378: .4byte 0x02000000
_0810237C:
cmp r1, 0x1
beq _08102388
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _08102392
_08102388:
bl MenuZeroFillScreen
ldr r1, _08102398 @ =0x02000000
movs r0, 0x5
strb r0, [r1]
_08102392:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08102398: .4byte 0x02000000
thumb_func_end sub_8102344
thumb_func_start sub_810239C
sub_810239C: @ 810239C
push {lr}
ldr r0, _081023B0 @ =gOtherText_MaxCoins
bl sub_8101F2C
ldr r1, _081023B4 @ =0x02000000
movs r0, 0x18
strb r0, [r1]
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_081023B0: .4byte gOtherText_MaxCoins
_081023B4: .4byte 0x02000000
thumb_func_end sub_810239C
thumb_func_start sub_81023B8
sub_81023B8: @ 81023B8
push {lr}
ldr r0, _081023D8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _081023D0
bl MenuZeroFillScreen
ldr r1, _081023DC @ =0x02000000
movs r0, 0x5
strb r0, [r1]
_081023D0:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_081023D8: .4byte gMain
_081023DC: .4byte 0x02000000
thumb_func_end sub_81023B8
thumb_func_start sub_81023E0
sub_81023E0: @ 81023E0
push {lr}
ldr r0, _081023F4 @ =gOtherText_OutOfCoins
bl sub_8101F2C
ldr r1, _081023F8 @ =0x02000000
movs r0, 0x1A
strb r0, [r1]
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_081023F4: .4byte gOtherText_OutOfCoins
_081023F8: .4byte 0x02000000
thumb_func_end sub_81023E0
thumb_func_start sub_81023FC
sub_81023FC: @ 81023FC
push {lr}
ldr r0, _0810241C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _08102414
bl MenuZeroFillScreen
ldr r1, _08102420 @ =0x02000000
movs r0, 0x1B
strb r0, [r1]
_08102414:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_0810241C: .4byte gMain
_08102420: .4byte 0x02000000
thumb_func_end sub_81023FC
thumb_func_start sub_8102424
sub_8102424: @ 8102424
push {r4,lr}
sub sp, 0x4
ldr r0, _08102454 @ =gSaveBlock1
ldr r4, _08102458 @ =0x02000000
ldrh r1, [r4, 0xC]
ldr r2, _0810245C @ =0x00000494
adds r0, r2
movs r2, 0
strh r1, [r0]
movs r0, 0x1
negs r0, r0
str r2, [sp]
movs r1, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
movs r0, 0
add sp, 0x4
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08102454: .4byte gSaveBlock1
_08102458: .4byte 0x02000000
_0810245C: .4byte 0x00000494
thumb_func_end sub_8102424
thumb_func_start sub_8102460
sub_8102460: @ 8102460
push {lr}
ldr r0, _0810247C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08102476
ldr r0, _08102480 @ =0x02000000
ldr r0, [r0, 0x64]
bl SetMainCallback2
_08102476:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_0810247C: .4byte gPaletteFade
_08102480: .4byte 0x02000000
thumb_func_end sub_8102460
thumb_func_start sub_8102484
sub_8102484: @ 8102484
push {r4,lr}
ldr r4, _081024E4 @ =0x02000000
ldrb r0, [r4, 0xA]
cmp r0, 0
bne _081024DC
ldrb r1, [r4, 0x4]
movs r0, 0xC0
ands r0, r1
cmp r0, 0
bne _081024DC
bl sub_8102540
lsls r0, 24
cmp r0, 0
beq _081024C0
bl sub_8102578
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
beq _081024C0
ldr r1, _081024E8 @ =gUnknown_083ECE42
lsls r0, r3, 1
adds r0, r1
ldrb r1, [r0]
ldrb r0, [r4, 0x4]
orrs r0, r1
strb r0, [r4, 0x4]
cmp r3, 0x1
bne _081024DC
_081024C0:
bl sub_81025BC
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x5
beq _081024DC
ldr r2, _081024E4 @ =0x02000000
ldr r1, _081024EC @ =gUnknown_083ECE48
lsls r0, r3, 1
adds r0, r1
ldrb r1, [r0]
ldrb r0, [r2, 0x4]
orrs r0, r1
strb r0, [r2, 0x4]
_081024DC:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081024E4: .4byte 0x02000000
_081024E8: .4byte gUnknown_083ECE42
_081024EC: .4byte gUnknown_083ECE48
thumb_func_end sub_8102484
thumb_func_start sub_81024F0
sub_81024F0: @ 81024F0
push {lr}
ldr r1, _08102508 @ =0x02000000
movs r0, 0
strb r0, [r1, 0x6]
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _08102502
movs r0, 0x1
strb r0, [r1, 0x6]
_08102502:
pop {r0}
bx r0
.align 2, 0
_08102508: .4byte 0x02000000
thumb_func_end sub_81024F0
thumb_func_start sub_810250C
sub_810250C: @ 810250C
push {r4,lr}
lsls r0, 24
lsrs r1, r0, 24
movs r2, 0
movs r3, 0x1
ldr r4, _08102528 @ =gUnknown_083ECE3A
_08102518:
adds r0, r1, 0
ands r0, r3
cmp r0, 0
beq _0810252C
adds r0, r2, r4
ldrb r0, [r0]
b _0810253A
.align 2, 0
_08102528: .4byte gUnknown_083ECE3A
_0810252C:
lsrs r1, 1
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x7
bls _08102518
movs r0, 0
_0810253A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_810250C
thumb_func_start sub_8102540
sub_8102540: @ 8102540
push {r4,lr}
bl Random
lsls r0, 24
lsrs r0, 24
ldr r4, _08102568 @ =gUnknown_083ECD04
ldr r1, _0810256C @ =0x02000000
movs r3, 0x12
ldrsh r2, [r1, r3]
ldrb r3, [r1, 0x1]
lsls r1, r3, 1
adds r1, r3
subs r1, 0x1
adds r2, r1
adds r2, r4
ldrb r1, [r2]
cmp r1, r0
bhi _08102570
movs r0, 0
b _08102572
.align 2, 0
_08102568: .4byte gUnknown_083ECD04
_0810256C: .4byte 0x02000000
_08102570:
movs r0, 0x1
_08102572:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8102540
thumb_func_start sub_8102578
sub_8102578: @ 8102578
push {r4-r6,lr}
movs r5, 0
ldr r6, _081025B4 @ =gUnknown_083ECD16
_0810257E:
bl Random
movs r2, 0xFF
ldr r3, _081025B8 @ =0x02000000
lsls r1, r5, 16
asrs r4, r1, 16
lsls r1, r4, 1
adds r1, r4
lsls r1, 1
ldrb r3, [r3, 0x1]
adds r1, r3
adds r1, r6
ldrb r1, [r1]
ands r2, r0
cmp r1, r2
bgt _081025AA
adds r0, r4, 0x1
lsls r0, 16
lsrs r5, r0, 16
asrs r0, 16
cmp r0, 0x2
ble _0810257E
_081025AA:
lsls r0, r5, 24
lsrs r0, 24
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_081025B4: .4byte gUnknown_083ECD16
_081025B8: .4byte 0x02000000
thumb_func_end sub_8102578
thumb_func_start sub_81025BC
sub_81025BC: @ 81025BC
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r6, 0
ldr r0, _08102600 @ =gUnknown_083ECD28
mov r8, r0
ldr r5, _08102604 @ =0x02000000
movs r7, 0x80
lsls r7, 17
_081025CE:
bl Random
movs r4, 0xFF
ands r4, r0
lsls r2, r6, 16
asrs r1, r2, 16
lsls r0, r1, 1
adds r0, r1
lsls r0, 1
ldrb r3, [r5, 0x1]
adds r0, r3
add r0, r8
ldrb r3, [r0]
cmp r1, 0
bne _08102608
ldrb r0, [r5, 0x3]
cmp r0, 0x1
bne _08102608
adds r3, 0xA
asrs r0, r7, 16
cmp r3, r0
ble _08102622
adds r3, r0, 0
b _08102622
.align 2, 0
_08102600: .4byte gUnknown_083ECD28
_08102604: .4byte 0x02000000
_08102608:
asrs r0, r2, 16
cmp r0, 0x4
bne _08102622
ldrb r0, [r5, 0x3]
cmp r0, 0x1
bne _08102622
lsls r0, r3, 16
ldr r1, _08102648 @ =0xfff60000
adds r0, r1
lsrs r3, r0, 16
cmp r0, 0
bge _08102622
movs r3, 0
_08102622:
lsls r0, r3, 16
asrs r0, 16
cmp r0, r4
bgt _08102638
movs r3, 0x80
lsls r3, 9
adds r0, r2, r3
lsrs r6, r0, 16
asrs r0, 16
cmp r0, 0x4
ble _081025CE
_08102638:
lsls r0, r6, 24
lsrs r0, 24
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08102648: .4byte 0xfff60000
thumb_func_end sub_81025BC
thumb_func_start sub_810264C
sub_810264C: @ 810264C
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r3, _08102660 @ =0x02000000
ldrb r0, [r3, 0x3]
cmp r0, 0
beq _08102668
ldr r0, _08102664 @ =gUnknown_083ECDAC
b _0810266A
.align 2, 0
_08102660: .4byte 0x02000000
_08102664: .4byte gUnknown_083ECDAC
_08102668:
ldr r0, _0810267C @ =gUnknown_083ECD46
_0810266A:
lsls r1, r2, 4
adds r1, r2
ldrb r3, [r3, 0x2]
adds r1, r3
adds r1, r0
ldrb r0, [r1]
pop {r1}
bx r1
.align 2, 0
_0810267C: .4byte gUnknown_083ECD46
thumb_func_end sub_810264C
thumb_func_start sub_8102680
sub_8102680: @ 8102680
push {r4-r6,lr}
ldr r1, _081026A4 @ =0x02000000
movs r0, 0
strb r0, [r1, 0x5]
bl Random
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0
bl sub_810264C
lsls r0, 24
lsrs r0, 24
cmp r4, r0
bcc _081026D2
movs r6, 0x5
b _081026AE
.align 2, 0
_081026A4: .4byte 0x02000000
_081026A8:
subs r0, r5, 0x1
lsls r0, 16
lsrs r6, r0, 16
_081026AE:
lsls r0, r6, 16
asrs r5, r0, 16
cmp r5, 0
ble _081026CE
bl Random
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r6, 24
lsrs r0, 24
bl sub_810264C
lsls r0, 24
lsrs r0, 24
cmp r4, r0
bcs _081026A8
_081026CE:
ldr r0, _081026D8 @ =0x02000000
strb r6, [r0, 0x5]
_081026D2:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_081026D8: .4byte 0x02000000
thumb_func_end sub_8102680
thumb_func_start sub_81026DC
sub_81026DC: @ 81026DC
push {r4,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
bl Random
movs r1, 0xFF
ands r1, r0
ldr r0, _081026FC @ =gUnknown_083ECE12
lsls r4, 1
adds r4, r0
ldrh r4, [r4]
cmp r1, r4
bcc _08102700
movs r0, 0
b _08102702
.align 2, 0
_081026FC: .4byte gUnknown_083ECE12
_08102700:
movs r0, 0x1
_08102702:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81026DC
thumb_func_start dp15_jump_random_unknown
dp15_jump_random_unknown: @ 8102708
push {r4,r5,lr}
movs r4, 0
ldr r0, _0810271C @ =0x02000000
movs r2, 0x10
ldrsh r1, [r0, r2]
ldr r0, _08102720 @ =0x0000012b
cmp r1, r0
ble _08102724
movs r4, 0x4
b _0810273A
.align 2, 0
_0810271C: .4byte 0x02000000
_08102720: .4byte 0x0000012b
_08102724:
cmp r1, 0xF9
ble _0810272C
movs r4, 0x3
b _0810273A
_0810272C:
cmp r1, 0xC7
ble _08102734
movs r4, 0x2
b _0810273A
_08102734:
cmp r1, 0x95
ble _0810273A
movs r4, 0x1
_0810273A:
bl Random
lsls r0, 16
lsrs r0, 16
movs r1, 0x64
bl __umodsi3
lsls r0, 24
lsrs r1, r0, 24
ldr r5, _0810275C @ =gUnknown_083ECE1C
lsls r4, 2
adds r0, r4, r5
ldrb r0, [r0]
cmp r1, r0
bcs _08102760
movs r0, 0x4
b _0810279A
.align 2, 0
_0810275C: .4byte gUnknown_083ECE1C
_08102760:
bl Random
lsls r0, 16
lsrs r0, 16
movs r1, 0x64
bl __umodsi3
lsls r0, 24
adds r2, r5, 0x2
adds r2, r4, r2
ldr r3, _08102790 @ =gUnknown_083ECE30
ldr r1, _08102794 @ =0x02000000
ldrb r1, [r1, 0xB]
lsls r1, 1
adds r1, r3
ldrb r1, [r1]
ldrb r2, [r2]
adds r1, r2
lsls r1, 24
cmp r0, r1
bcc _08102798
movs r0, 0x8
b _0810279A
.align 2, 0
_08102790: .4byte gUnknown_083ECE30
_08102794: .4byte 0x02000000
_08102798:
movs r0, 0x2
_0810279A:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end dp15_jump_random_unknown
thumb_func_start sub_81027A0
sub_81027A0: @ 81027A0
push {r4,lr}
ldr r4, _081027CC @ =0x02000000
movs r0, 0
strh r0, [r4, 0x8]
bl sub_81027D0
movs r1, 0x12
ldrsh r0, [r4, r1]
cmp r0, 0x1
ble _081027B8
bl sub_8102840
_081027B8:
movs r1, 0x12
ldrsh r0, [r4, r1]
cmp r0, 0x2
ble _081027C4
bl sub_810290C
_081027C4:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081027CC: .4byte 0x02000000
thumb_func_end sub_81027A0
thumb_func_start sub_81027D0
sub_81027D0: @ 81027D0
push {r4,r5,lr}
movs r0, 0
movs r1, 0x2
bl sub_8102BA4
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
movs r0, 0x1
movs r1, 0x2
bl sub_8102BA4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x2
movs r1, 0x2
bl sub_8102BA4
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_81029D4
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x9
beq _0810282E
ldr r2, _08102834 @ =0x02000000
ldr r0, _08102838 @ =gUnknown_083ECE6C
lsls r1, 1
adds r0, r1, r0
ldrh r0, [r0]
ldrh r3, [r2, 0xE]
adds r0, r3
strh r0, [r2, 0xE]
ldr r0, _0810283C @ =gUnknown_083ECE5A
adds r1, r0
ldrh r0, [r2, 0x8]
ldrh r1, [r1]
orrs r0, r1
strh r0, [r2, 0x8]
movs r0, 0
bl sub_8103E04
_0810282E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08102834: .4byte 0x02000000
_08102838: .4byte gUnknown_083ECE6C
_0810283C: .4byte gUnknown_083ECE5A
thumb_func_end sub_81027D0
thumb_func_start sub_8102840
sub_8102840: @ 8102840
push {r4,r5,lr}
movs r0, 0
movs r1, 0x1
bl sub_8102BA4
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0x1
movs r1, 0x1
bl sub_8102BA4
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x2
movs r1, 0x1
bl sub_8102BA4
lsls r0, 24
lsrs r2, r0, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_81029D4
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x9
beq _0810289E
cmp r1, 0
bne _0810287C
movs r1, 0x1
_0810287C:
ldr r2, _08102900 @ =0x02000000
ldr r0, _08102904 @ =gUnknown_083ECE6C
lsls r1, 1
adds r0, r1, r0
ldrh r0, [r0]
ldrh r3, [r2, 0xE]
adds r0, r3
strh r0, [r2, 0xE]
ldr r0, _08102908 @ =gUnknown_083ECE5A
adds r1, r0
ldrh r0, [r2, 0x8]
ldrh r1, [r1]
orrs r0, r1
strh r0, [r2, 0x8]
movs r0, 0x1
bl sub_8103E04
_0810289E:
movs r0, 0
movs r1, 0x3
bl sub_8102BA4
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0x1
movs r1, 0x3
bl sub_8102BA4
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x2
movs r1, 0x3
bl sub_8102BA4
lsls r0, 24
lsrs r2, r0, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_81029D4
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x9
beq _081028FA
cmp r1, 0
bne _081028D8
movs r1, 0x1
_081028D8:
ldr r2, _08102900 @ =0x02000000
ldr r0, _08102904 @ =gUnknown_083ECE6C
lsls r1, 1
adds r0, r1, r0
ldrh r0, [r0]
ldrh r3, [r2, 0xE]
adds r0, r3
strh r0, [r2, 0xE]
ldr r0, _08102908 @ =gUnknown_083ECE5A
adds r1, r0
ldrh r0, [r2, 0x8]
ldrh r1, [r1]
orrs r0, r1
strh r0, [r2, 0x8]
movs r0, 0x2
bl sub_8103E04
_081028FA:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08102900: .4byte 0x02000000
_08102904: .4byte gUnknown_083ECE6C
_08102908: .4byte gUnknown_083ECE5A
thumb_func_end sub_8102840
thumb_func_start sub_810290C
sub_810290C: @ 810290C
push {r4,r5,lr}
movs r0, 0
movs r1, 0x1
bl sub_8102BA4
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0x1
movs r1, 0x2
bl sub_8102BA4
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x2
movs r1, 0x3
bl sub_8102BA4
lsls r0, 24
lsrs r2, r0, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_81029D4
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x9
beq _08102968
cmp r1, 0
beq _08102962
ldr r2, _081029C8 @ =0x02000000
ldr r0, _081029CC @ =gUnknown_083ECE6C
lsls r1, 1
adds r0, r1, r0
ldrh r0, [r0]
ldrh r3, [r2, 0xE]
adds r0, r3
strh r0, [r2, 0xE]
ldr r0, _081029D0 @ =gUnknown_083ECE5A
adds r1, r0
ldrh r0, [r2, 0x8]
ldrh r1, [r1]
orrs r0, r1
strh r0, [r2, 0x8]
_08102962:
movs r0, 0x3
bl sub_8103E04
_08102968:
movs r0, 0
movs r1, 0x3
bl sub_8102BA4
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0x1
movs r1, 0x2
bl sub_8102BA4
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x2
movs r1, 0x1
bl sub_8102BA4
lsls r0, 24
lsrs r2, r0, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_81029D4
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x9
beq _081029C2
cmp r1, 0
beq _081029BC
ldr r2, _081029C8 @ =0x02000000
ldr r0, _081029CC @ =gUnknown_083ECE6C
lsls r1, 1
adds r0, r1, r0
ldrh r0, [r0]
ldrh r3, [r2, 0xE]
adds r0, r3
strh r0, [r2, 0xE]
ldr r0, _081029D0 @ =gUnknown_083ECE5A
adds r1, r0
ldrh r0, [r2, 0x8]
ldrh r1, [r1]
orrs r0, r1
strh r0, [r2, 0x8]
_081029BC:
movs r0, 0x4
bl sub_8103E04
_081029C2:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_081029C8: .4byte 0x02000000
_081029CC: .4byte gUnknown_083ECE6C
_081029D0: .4byte gUnknown_083ECE5A
thumb_func_end sub_810290C
thumb_func_start sub_81029D4
sub_81029D4: @ 81029D4
push {lr}
lsls r0, 24
lsrs r3, r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
cmp r3, r1
bne _081029F8
cmp r3, r2
bne _081029F8
ldr r0, _081029F4 @ =gUnknown_083ECE52
adds r0, r3, r0
ldrb r0, [r0]
b _08102A1E
.align 2, 0
_081029F4: .4byte gUnknown_083ECE52
_081029F8:
cmp r3, 0
bne _08102A04
cmp r1, 0
bne _08102A04
cmp r2, 0x1
beq _08102A10
_08102A04:
cmp r3, 0x1
bne _08102A14
cmp r1, 0x1
bne _08102A14
cmp r2, 0
bne _08102A14
_08102A10:
movs r0, 0x6
b _08102A1E
_08102A14:
cmp r3, 0x4
beq _08102A1C
movs r0, 0x9
b _08102A1E
_08102A1C:
movs r0, 0
_08102A1E:
pop {r1}
bx r1
thumb_func_end sub_81029D4
thumb_func_start sub_8102A24
sub_8102A24: @ 8102A24
push {r4,lr}
ldr r4, _08102A40 @ =sub_8102A64
adds r0, r4, 0
movs r1, 0x4
bl CreateTask
lsls r0, 24
lsrs r0, 24
bl _call_via_r4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08102A40: .4byte sub_8102A64
thumb_func_end sub_8102A24
thumb_func_start sub_8102A44
sub_8102A44: @ 8102A44
push {lr}
ldr r0, _08102A58 @ =sub_8102A64
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _08102A5C
movs r0, 0
b _08102A5E
.align 2, 0
_08102A58: .4byte sub_8102A64
_08102A5C:
movs r0, 0x1
_08102A5E:
pop {r1}
bx r1
thumb_func_end sub_8102A44
thumb_func_start sub_8102A64
sub_8102A64: @ 8102A64
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _08102A94 @ =gUnknown_083ECB20
ldr r2, _08102A98 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_08102A76:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _08102A76
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08102A94: .4byte gUnknown_083ECB20
_08102A98: .4byte gTasks
thumb_func_end sub_8102A64
thumb_func_start sub_8102A9C
sub_8102A9C: @ 8102A9C
push {r4,lr}
adds r4, r0, 0
bl sub_8103E38
lsls r0, 24
cmp r0, 0
beq _08102AC8
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
ldr r0, _08102AC4 @ =0x02000000
movs r1, 0xE
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08102AC8
movs r0, 0x2
strh r0, [r4, 0x8]
movs r0, 0x1
b _08102ACA
.align 2, 0
_08102AC4: .4byte 0x02000000
_08102AC8:
movs r0, 0
_08102ACA:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8102A9C
thumb_func_start sub_8102AD0
sub_8102AD0: @ 8102AD0
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0xA]
subs r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _08102B22
bl IsFanfareTaskInactive
lsls r0, 24
cmp r0, 0
beq _08102AF6
movs r0, 0x15
bl PlaySE
_08102AF6:
ldr r2, _08102B70 @ =0x02000000
ldrh r0, [r2, 0xE]
subs r0, 0x1
strh r0, [r2, 0xE]
ldrh r3, [r2, 0xC]
movs r0, 0xC
ldrsh r1, [r2, r0]
ldr r0, _08102B74 @ =0x0000270e
cmp r1, r0
bgt _08102B0E
adds r0, r3, 0x1
strh r0, [r2, 0xC]
_08102B0E:
movs r0, 0x8
strh r0, [r4, 0xA]
ldr r0, _08102B78 @ =gMain
ldrh r1, [r0, 0x2C]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08102B22
movs r0, 0x4
strh r0, [r4, 0xA]
_08102B22:
bl IsFanfareTaskInactive
lsls r0, 24
cmp r0, 0
beq _08102B58
ldr r0, _08102B78 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08102B58
movs r0, 0x15
bl PlaySE
ldr r1, _08102B70 @ =0x02000000
ldrh r0, [r1, 0xE]
ldrh r2, [r1, 0xC]
adds r0, r2
strh r0, [r1, 0xC]
lsls r0, 16
asrs r0, 16
ldr r2, _08102B7C @ =0x0000270f
cmp r0, r2
ble _08102B54
strh r2, [r1, 0xC]
_08102B54:
movs r0, 0
strh r0, [r1, 0xE]
_08102B58:
ldr r0, _08102B70 @ =0x02000000
movs r1, 0xE
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08102B68
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_08102B68:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08102B70: .4byte 0x02000000
_08102B74: .4byte 0x0000270e
_08102B78: .4byte gMain
_08102B7C: .4byte 0x0000270f
thumb_func_end sub_8102AD0
thumb_func_start sub_8102B80
sub_8102B80: @ 8102B80
push {lr}
bl sub_8103E7C
lsls r0, 24
cmp r0, 0
beq _08102B9A
ldr r0, _08102BA0 @ =sub_8102A64
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_08102B9A:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08102BA0: .4byte sub_8102A64
thumb_func_end sub_8102B80
thumb_func_start sub_8102BA4
sub_8102BA4: @ 8102BA4
push {r4,lr}
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
ldr r0, _08102BF0 @ =0x02000000
lsls r2, r4, 1
adds r0, 0x28
adds r2, r0
movs r3, 0
ldrsh r0, [r2, r3]
lsls r1, 16
asrs r1, 16
adds r0, r1
movs r1, 0x15
bl __modsi3
lsls r0, 16
lsrs r1, r0, 16
asrs r0, 16
cmp r0, 0
bge _08102BD4
adds r0, 0x15
lsls r0, 16
lsrs r1, r0, 16
_08102BD4:
ldr r2, _08102BF4 @ =gUnknown_083ECCB2
lsls r1, 16
asrs r1, 16
lsls r0, r4, 2
adds r0, r4
lsls r0, 2
adds r0, r4
adds r1, r0
adds r1, r2
ldrb r0, [r1]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08102BF0: .4byte 0x02000000
_08102BF4: .4byte gUnknown_083ECCB2
thumb_func_end sub_8102BA4
thumb_func_start sub_8102BF8
sub_8102BF8: @ 8102BF8
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
lsls r1, 16
lsrs r4, r1, 16
movs r6, 0
ldr r0, _08102C40 @ =0x02000000
lsls r1, r5, 1
adds r0, 0x1C
adds r1, r0
movs r2, 0
ldrsh r0, [r1, r2]
movs r1, 0x18
bl __modsi3
lsls r0, 16
cmp r0, 0
beq _08102C20
ldr r6, _08102C44 @ =0x0000ffff
_08102C20:
lsls r1, r4, 16
asrs r1, 16
lsls r0, r6, 16
asrs r0, 16
adds r1, r0
lsls r1, 16
asrs r1, 16
adds r0, r5, 0
bl sub_8102BA4
lsls r0, 24
lsrs r0, 24
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08102C40: .4byte 0x02000000
_08102C44: .4byte 0x0000ffff
thumb_func_end sub_8102BF8
thumb_func_start sub_8102C48
sub_8102C48: @ 8102C48
push {lr}
ldr r1, _08102C7C @ =0x02000000
movs r2, 0x16
ldrsh r1, [r1, r2]
lsls r0, 16
asrs r0, 16
adds r1, r0
adds r0, r1, 0
movs r1, 0x6
bl __modsi3
lsls r0, 16
lsrs r1, r0, 16
asrs r0, 16
cmp r0, 0
bge _08102C6E
adds r0, 0x6
lsls r0, 16
lsrs r1, r0, 16
_08102C6E:
ldr r0, _08102C80 @ =gUnknown_083ECCF1
lsls r1, 16
asrs r1, 16
adds r1, r0
ldrb r0, [r1]
pop {r1}
bx r1
.align 2, 0
_08102C7C: .4byte 0x02000000
_08102C80: .4byte gUnknown_083ECCF1
thumb_func_end sub_8102C48
thumb_func_start sub_8102C84
sub_8102C84: @ 8102C84
push {r4-r6,lr}
adds r5, r0, 0
lsls r5, 24
ldr r6, _08102CC8 @ =0x02000000
lsrs r5, 23
adds r4, r6, 0
adds r4, 0x1C
adds r4, r5, r4
lsls r1, 16
asrs r1, 16
ldrh r0, [r4]
adds r1, r0
strh r1, [r4]
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0xFC
lsls r1, 1
bl __modsi3
strh r0, [r4]
adds r6, 0x28
adds r5, r6
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0x18
bl __divsi3
movs r1, 0x15
subs r1, r0
strh r1, [r5]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08102CC8: .4byte 0x02000000
thumb_func_end sub_8102C84
thumb_func_start sub_8102CCC
sub_8102CCC: @ 8102CCC
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
lsls r1, 16
lsrs r4, r1, 16
ldr r0, _08102D24 @ =0x02000000
lsls r1, r6, 1
adds r0, 0x1C
adds r5, r1, r0
movs r1, 0
ldrsh r0, [r5, r1]
movs r1, 0x18
bl __modsi3
lsls r0, 16
lsrs r0, 16
lsls r2, r0, 16
asrs r1, r2, 16
cmp r1, 0
beq _08102D18
lsls r0, r4, 16
asrs r0, 16
cmp r1, r0
bge _08102D00
lsrs r4, r2, 16
_08102D00:
lsls r1, r4, 16
asrs r1, 16
adds r0, r6, 0
bl sub_8102C84
movs r1, 0
ldrsh r0, [r5, r1]
movs r1, 0x18
bl __modsi3
lsls r0, 16
lsrs r0, 16
_08102D18:
lsls r0, 16
asrs r0, 16
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08102D24: .4byte 0x02000000
thumb_func_end sub_8102CCC
thumb_func_start sub_8102D28
sub_8102D28: @ 8102D28
push {r4,lr}
ldr r4, _08102D58 @ =0x02000000
lsls r0, 16
asrs r0, 16
ldrh r1, [r4, 0x14]
adds r0, r1
strh r0, [r4, 0x14]
movs r1, 0x14
ldrsh r0, [r4, r1]
movs r1, 0x78
bl __modsi3
strh r0, [r4, 0x14]
movs r1, 0x14
ldrsh r0, [r4, r1]
movs r1, 0x14
bl __divsi3
movs r1, 0x6
subs r1, r0
strh r1, [r4, 0x16]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08102D58: .4byte 0x02000000
thumb_func_end sub_8102D28
thumb_func_start sub_8102D5C
sub_8102D5C: @ 8102D5C
push {r4,r5,lr}
lsls r0, 16
lsrs r4, r0, 16
ldr r5, _08102DA4 @ =0x02000000
movs r1, 0x14
ldrsh r0, [r5, r1]
movs r1, 0x14
bl __modsi3
lsls r0, 16
lsrs r0, 16
lsls r2, r0, 16
asrs r1, r2, 16
cmp r1, 0
beq _08102D9A
lsls r0, r4, 16
asrs r0, 16
cmp r1, r0
bge _08102D84
lsrs r4, r2, 16
_08102D84:
lsls r0, r4, 16
asrs r0, 16
bl sub_8102D28
movs r1, 0x14
ldrsh r0, [r5, r1]
movs r1, 0x14
bl __modsi3
lsls r0, 16
lsrs r0, 16
_08102D9A:
lsls r0, 16
asrs r0, 16
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08102DA4: .4byte 0x02000000
thumb_func_end sub_8102D5C
thumb_func_start sub_8102DA8
sub_8102DA8: @ 8102DA8
push {r4-r7,lr}
movs r4, 0
ldr r5, _08102DE0 @ =sub_8102E68
ldr r7, _08102DE4 @ =gTasks
ldr r6, _08102DE8 @ =0x0200003a
_08102DB2:
adds r0, r5, 0
movs r1, 0x2
bl CreateTask
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r7
strh r4, [r1, 0x26]
adds r1, r4, r6
strb r0, [r1]
bl _call_via_r5
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x2
bls _08102DB2
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08102DE0: .4byte sub_8102E68
_08102DE4: .4byte gTasks
_08102DE8: .4byte 0x0200003a
thumb_func_end sub_8102DA8
thumb_func_start sub_8102DEC
sub_8102DEC: @ 8102DEC
lsls r0, 24
lsrs r0, 24
ldr r3, _08102E14 @ =gTasks
ldr r1, _08102E18 @ =0x02000000
adds r1, 0x3A
adds r0, r1
ldrb r2, [r0]
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r3
movs r2, 0x1
strh r2, [r1, 0x8]
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r3
strh r2, [r0, 0x24]
bx lr
.align 2, 0
_08102E14: .4byte gTasks
_08102E18: .4byte 0x02000000
thumb_func_end sub_8102DEC
thumb_func_start sub_8102E1C
sub_8102E1C: @ 8102E1C
lsls r0, 24
lsrs r0, 24
ldr r2, _08102E38 @ =gTasks
ldr r1, _08102E3C @ =0x02000000
adds r1, 0x3A
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
movs r1, 0x2
strh r1, [r0, 0x8]
bx lr
.align 2, 0
_08102E38: .4byte gTasks
_08102E3C: .4byte 0x02000000
thumb_func_end sub_8102E1C
thumb_func_start sub_8102E40
sub_8102E40: @ 8102E40
lsls r0, 24
lsrs r0, 24
ldr r2, _08102E60 @ =gTasks
ldr r1, _08102E64 @ =0x02000000
adds r1, 0x3A
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldrh r0, [r0, 0x24]
lsls r0, 24
lsrs r0, 24
bx lr
.align 2, 0
_08102E60: .4byte gTasks
_08102E64: .4byte 0x02000000
thumb_func_end sub_8102E40
thumb_func_start sub_8102E68
sub_8102E68: @ 8102E68
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _08102E98 @ =gUnknown_083ECB2C
ldr r2, _08102E9C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
_08102E7A:
movs r1, 0x8
ldrsh r0, [r4, r1]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _08102E7A
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08102E98: .4byte gUnknown_083ECB2C
_08102E9C: .4byte gTasks
thumb_func_end sub_8102E68
thumb_func_start sub_8102EA0
sub_8102EA0: @ 8102EA0
movs r0, 0
bx lr
thumb_func_end sub_8102EA0
thumb_func_start sub_8102EA4
sub_8102EA4: @ 8102EA4
push {lr}
ldrh r0, [r0, 0x26]
lsls r0, 24
lsrs r0, 24
ldr r1, _08102EBC @ =0x02000000
movs r2, 0x1A
ldrsh r1, [r1, r2]
bl sub_8102C84
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08102EBC: .4byte 0x02000000
thumb_func_end sub_8102EA4
thumb_func_start sub_8102EC0
sub_8102EC0: @ 8102EC0
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x8]
adds r0, 0x1
movs r2, 0
strh r0, [r4, 0x8]
ldr r3, _08102F40 @ =0x02000000
movs r1, 0x26
ldrsh r0, [r4, r1]
lsls r0, 1
adds r1, r3, 0
adds r1, 0x34
adds r0, r1
strh r2, [r0]
movs r1, 0x26
ldrsh r0, [r4, r1]
lsls r0, 1
adds r1, r3, 0
adds r1, 0x2E
adds r0, r1
strh r2, [r0]
ldrb r0, [r3, 0xA]
cmp r0, 0
bne _08102F28
ldrb r0, [r3, 0x4]
cmp r0, 0
beq _08102F12
ldrb r0, [r3, 0x6]
cmp r0, 0
beq _08102F12
ldr r1, _08102F44 @ =gUnknown_083ECB40
movs r2, 0x26
ldrsh r0, [r4, r2]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
lsls r0, 24
cmp r0, 0
bne _08102F28
_08102F12:
ldr r1, _08102F40 @ =0x02000000
movs r0, 0
strb r0, [r1, 0x6]
ldr r1, _08102F48 @ =gUnknown_083ECB4C
movs r2, 0x26
ldrsh r0, [r4, r2]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
_08102F28:
ldr r0, _08102F40 @ =0x02000000
movs r2, 0x26
ldrsh r1, [r4, r2]
lsls r1, 1
adds r0, 0x2E
adds r1, r0
ldrh r0, [r1]
strh r0, [r4, 0xA]
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08102F40: .4byte 0x02000000
_08102F44: .4byte gUnknown_083ECB40
_08102F48: .4byte gUnknown_083ECB4C
thumb_func_end sub_8102EC0
thumb_func_start sub_8102F4C
sub_8102F4C: @ 8102F4C
push {r4-r7,lr}
sub sp, 0xC
adds r4, r0, 0
ldr r1, _08102F8C @ =gUnknown_083ECB58
mov r0, sp
movs r2, 0xA
bl memcpy
ldr r5, _08102F90 @ =0x02000000
movs r1, 0x26
ldrsh r0, [r4, r1]
lsls r6, r0, 1
adds r7, r5, 0
adds r7, 0x1C
adds r0, r6, r7
movs r2, 0
ldrsh r0, [r0, r2]
movs r1, 0x18
bl __modsi3
lsls r0, 16
lsrs r2, r0, 16
cmp r0, 0
beq _08102F94
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
movs r6, 0x1A
ldrsh r1, [r5, r6]
bl sub_8102CCC
b _08102FC8
.align 2, 0
_08102F8C: .4byte gUnknown_083ECB58
_08102F90: .4byte 0x02000000
_08102F94:
adds r0, r5, 0
adds r0, 0x2E
adds r1, r6, r0
ldrh r3, [r1]
movs r6, 0
ldrsh r0, [r1, r6]
cmp r0, 0
beq _08102FCC
subs r0, r3, 0x1
strh r0, [r1]
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
movs r2, 0x1A
ldrsh r1, [r5, r2]
bl sub_8102C84
movs r6, 0x26
ldrsh r0, [r4, r6]
lsls r0, 1
adds r0, r7
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0x18
bl __modsi3
_08102FC8:
lsls r0, 16
lsrs r2, r0, 16
_08102FCC:
cmp r2, 0
bne _08102FF8
ldr r1, _08103004 @ =0x02000000
movs r2, 0x26
ldrsh r0, [r4, r2]
lsls r0, 1
adds r1, 0x2E
adds r0, r1
movs r6, 0
ldrsh r1, [r0, r6]
cmp r1, 0
bne _08102FF8
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 1
add r0, sp
ldrh r0, [r0]
strh r0, [r4, 0xA]
strh r1, [r4, 0xC]
_08102FF8:
movs r0, 0
add sp, 0xC
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08103004: .4byte 0x02000000
thumb_func_end sub_8102F4C
thumb_func_start sub_8103008
sub_8103008: @ 8103008
push {r4,lr}
adds r2, r0, 0
ldr r1, _08103058 @ =0x02000000
movs r3, 0x26
ldrsh r0, [r2, r3]
lsls r0, 1
adds r4, r1, 0
adds r4, 0x22
adds r0, r4
ldrh r1, [r2, 0xA]
strh r1, [r0]
ldrh r0, [r2, 0xA]
negs r3, r0
strh r3, [r2, 0xA]
ldrh r0, [r2, 0xC]
adds r0, 0x1
strh r0, [r2, 0xC]
movs r1, 0x3
ands r0, r1
cmp r0, 0
bne _08103038
lsls r0, r3, 16
asrs r0, 17
strh r0, [r2, 0xA]
_08103038:
movs r0, 0xA
ldrsh r3, [r2, r0]
cmp r3, 0
bne _0810304E
strh r3, [r2, 0x8]
strh r3, [r2, 0x24]
movs r1, 0x26
ldrsh r0, [r2, r1]
lsls r0, 1
adds r0, r4
strh r3, [r0]
_0810304E:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08103058: .4byte 0x02000000
thumb_func_end sub_8103008
thumb_func_start sub_810305C
sub_810305C: @ 810305C
push {r4,r5,lr}
ldr r4, _0810309C @ =0x02000000
ldrb r0, [r4, 0x4]
bl sub_810250C
lsls r0, 24
lsrs r3, r0, 24
adds r5, r3, 0
ldrb r1, [r4, 0x4]
movs r0, 0xC0
ands r0, r1
cmp r0, 0
beq _0810307A
movs r5, 0
movs r3, 0x1
_0810307A:
ldr r1, _081030A0 @ =gUnknown_083ECB64
movs r2, 0x12
ldrsh r0, [r4, r2]
subs r0, 0x1
lsls r0, 2
adds r0, r1
ldr r2, [r0]
adds r0, r5, 0
adds r1, r3, 0
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0810309C: .4byte 0x02000000
_081030A0: .4byte gUnknown_083ECB64
thumb_func_end sub_810305C
thumb_func_start sub_81030A4
sub_81030A4: @ 81030A4
push {r4,r5,lr}
adds r3, r0, 0
adds r4, r1, 0
lsls r4, 24
lsrs r4, 24
lsls r2, 24
lsrs r5, r2, 24
lsls r3, 16
asrs r3, 16
movs r0, 0
adds r1, r3, 0
bl sub_8102BF8
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
cmp r0, r4
beq _081030CC
cmp r0, r5
bne _081030D8
_081030CC:
ldr r0, _081030D4 @ =0x02000000
strb r1, [r0, 0x7]
movs r0, 0x1
b _081030DA
.align 2, 0
_081030D4: .4byte 0x02000000
_081030D8:
movs r0, 0
_081030DA:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81030A4
thumb_func_start sub_81030E0
sub_81030E0: @ 81030E0
push {r4,lr}
movs r1, 0x1
lsls r0, 16
asrs r4, r0, 16
subs r1, r4
lsls r1, 16
asrs r1, 16
movs r0, 0
bl sub_8102BF8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
beq _08103128
movs r1, 0x2
subs r1, r4
lsls r1, 16
asrs r1, 16
movs r0, 0
bl sub_8102BF8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
beq _08103128
movs r1, 0x3
subs r1, r4
lsls r1, 16
asrs r1, 16
movs r0, 0
bl sub_8102BF8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bne _0810312C
_08103128:
movs r0, 0x1
b _0810312E
_0810312C:
movs r0, 0
_0810312E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81030E0
thumb_func_start sub_8103134
sub_8103134: @ 8103134
push {lr}
ldr r0, _08103148 @ =0x02000000
ldrb r1, [r0, 0x4]
movs r0, 0xC2
ands r0, r1
cmp r0, 0
bne _0810314C
movs r0, 0
b _0810314E
.align 2, 0
_08103148: .4byte 0x02000000
_0810314C:
movs r0, 0x1
_0810314E:
pop {r1}
bx r1
thumb_func_end sub_8103134
thumb_func_start sub_8103154
sub_8103154: @ 8103154
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r1, 24
lsrs r7, r1, 24
movs r5, 0
movs r0, 0x2
mov r9, r0
ldr r6, _08103194 @ =0x02000000
_0810316E:
lsls r0, r5, 16
asrs r4, r0, 16
mov r1, r9
subs r0, r1, r4
lsls r0, 16
asrs r0, 16
mov r1, r8
adds r2, r7, 0
bl sub_81030A4
lsls r0, 24
cmp r0, 0
beq _08103198
movs r0, 0x2
strh r0, [r6, 0x34]
strh r5, [r6, 0x2E]
movs r0, 0x1
b _081031A6
.align 2, 0
_08103194: .4byte 0x02000000
_08103198:
adds r0, r4, 0x1
lsls r0, 16
lsrs r5, r0, 16
asrs r0, 16
cmp r0, 0x4
ble _0810316E
movs r0, 0
_081031A6:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8103154
thumb_func_start sub_81031B4
sub_81031B4: @ 81031B4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
mov r10, r0
lsls r1, 24
lsrs r1, 24
mov r9, r1
bl sub_8103134
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
bne _081031E2
movs r0, 0
bl sub_81030E0
lsls r0, 24
cmp r0, 0
bne _0810321E
_081031E2:
movs r0, 0x1
mov r8, r0
ldr r5, _0810320C @ =0x02000000
movs r7, 0
_081031EA:
mov r1, r8
lsls r0, r1, 16
asrs r4, r0, 16
adds r0, r4, 0
mov r1, r10
mov r2, r9
bl sub_81030A4
lsls r0, 24
cmp r0, 0
beq _08103210
mov r0, r8
strh r0, [r5, 0x34]
strh r7, [r5, 0x2E]
movs r0, 0x1
b _081032B2
.align 2, 0
_0810320C: .4byte 0x02000000
_08103210:
adds r0, r4, 0x1
lsls r0, 16
lsrs r1, r0, 16
mov r8, r1
asrs r0, 16
cmp r0, 0x3
ble _081031EA
_0810321E:
movs r0, 0x1
mov r8, r0
adds r7, r6, 0
ldr r6, _0810326C @ =0x02000000
_08103226:
mov r1, r8
lsls r5, r1, 16
cmp r7, 0
bne _0810323A
asrs r0, r5, 16
bl sub_81030E0
lsls r0, 24
cmp r0, 0
bne _081032A0
_0810323A:
movs r0, 0x1
asrs r4, r5, 16
subs r0, r4
lsls r0, 16
asrs r0, 16
mov r1, r10
mov r2, r9
bl sub_81030A4
lsls r0, 24
cmp r0, 0
beq _081032A0
cmp r4, 0x1
bne _08103270
cmp r7, 0
bne _08103266
movs r0, 0x3
bl sub_81030E0
lsls r0, 24
cmp r0, 0
bne _08103270
_08103266:
movs r0, 0x3
strh r0, [r6, 0x34]
b _0810329A
.align 2, 0
_0810326C: .4byte 0x02000000
_08103270:
asrs r0, r5, 16
cmp r0, 0x3
bgt _08103294
adds r4, r0, 0x1
cmp r7, 0
bne _0810328A
lsls r0, r4, 16
asrs r0, 16
bl sub_81030E0
lsls r0, 24
cmp r0, 0
bne _08103294
_0810328A:
movs r0, 0x2
strh r0, [r6, 0x34]
strh r4, [r6, 0x2E]
movs r0, 0x1
b _081032B2
_08103294:
movs r0, 0x1
strh r0, [r6, 0x34]
mov r0, r8
_0810329A:
strh r0, [r6, 0x2E]
movs r0, 0x1
b _081032B2
_081032A0:
movs r1, 0x80
lsls r1, 9
adds r0, r5, r1
lsrs r1, r0, 16
mov r8, r1
asrs r0, 16
cmp r0, 0x4
ble _08103226
movs r0, 0
_081032B2:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81031B4
thumb_func_start sub_81032C0
sub_81032C0: @ 81032C0
push {lr}
ldr r1, _081032E0 @ =gUnknown_083ECB70
ldr r0, _081032E4 @ =0x02000000
movs r2, 0x12
ldrsh r0, [r0, r2]
subs r0, 0x1
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_081032E0: .4byte gUnknown_083ECB70
_081032E4: .4byte 0x02000000
thumb_func_end sub_81032C0
thumb_func_start sub_81032E8
sub_81032E8: @ 81032E8
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r0, _08103320 @ =0x02000000
movs r6, 0
ldrh r1, [r0, 0x34]
mov r8, r1
movs r1, 0x34
ldrsh r7, [r0, r1]
adds r5, r0, 0
_081032FC:
lsls r0, r6, 16
asrs r4, r0, 16
subs r1, r7, r4
lsls r1, 16
asrs r1, 16
movs r0, 0x1
bl sub_8102BF8
lsls r0, 24
lsrs r0, 24
ldrb r1, [r5, 0x7]
cmp r0, r1
bne _08103324
mov r0, r8
strh r0, [r5, 0x36]
strh r6, [r5, 0x30]
movs r0, 0x1
b _08103332
.align 2, 0
_08103320: .4byte 0x02000000
_08103324:
adds r0, r4, 0x1
lsls r0, 16
lsrs r6, r0, 16
asrs r0, 16
cmp r0, 0x4
ble _081032FC
movs r0, 0
_08103332:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81032E8
thumb_func_start sub_810333C
sub_810333C: @ 810333C
push {r4-r7,lr}
bl sub_81032E8
lsls r0, 24
cmp r0, 0
beq _0810339A
ldr r1, _0810338C @ =0x02000000
movs r2, 0x34
ldrsh r0, [r1, r2]
cmp r0, 0x2
beq _08103396
movs r2, 0x30
ldrsh r0, [r1, r2]
cmp r0, 0x1
ble _08103396
cmp r0, 0x4
beq _08103396
movs r5, 0
movs r7, 0x2
adds r6, r1, 0
_08103364:
lsls r0, r5, 16
asrs r4, r0, 16
subs r1, r7, r4
lsls r1, 16
asrs r1, 16
movs r0, 0x1
bl sub_8102BF8
lsls r0, 24
lsrs r0, 24
ldrb r1, [r6, 0x7]
cmp r0, r1
beq _08103390
adds r0, r4, 0x1
lsls r0, 16
lsrs r5, r0, 16
asrs r0, 16
cmp r0, 0x4
ble _08103364
b _08103396
.align 2, 0
_0810338C: .4byte 0x02000000
_08103390:
movs r0, 0x2
strh r0, [r6, 0x36]
strh r5, [r6, 0x30]
_08103396:
movs r0, 0x1
b _081033D2
_0810339A:
ldr r1, _081033D8 @ =0x02000000
movs r2, 0x34
ldrsh r0, [r1, r2]
cmp r0, 0x2
beq _081033D0
movs r5, 0
movs r7, 0x2
adds r6, r1, 0
_081033AA:
lsls r0, r5, 16
asrs r4, r0, 16
subs r1, r7, r4
lsls r1, 16
asrs r1, 16
movs r0, 0x1
bl sub_8102BF8
lsls r0, 24
lsrs r0, 24
ldrb r1, [r6, 0x7]
cmp r0, r1
beq _08103390
adds r0, r4, 0x1
lsls r0, 16
lsrs r5, r0, 16
asrs r0, 16
cmp r0, 0x4
ble _081033AA
_081033D0:
movs r0, 0
_081033D2:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_081033D8: .4byte 0x02000000
thumb_func_end sub_810333C
thumb_func_start sub_81033DC
sub_81033DC: @ 81033DC
push {r4,lr}
ldr r0, _08103414 @ =0x02000000
ldrb r3, [r0, 0x7]
adds r4, r3, 0
ldrb r2, [r0, 0x4]
movs r1, 0x40
ands r1, r2
cmp r1, 0
beq _081033F6
movs r3, 0
cmp r4, 0
bne _081033F6
movs r3, 0x1
_081033F6:
ldr r1, _08103418 @ =gUnknown_083ECB7C
movs r2, 0x12
ldrsh r0, [r0, r2]
subs r0, 0x1
lsls r0, 2
adds r0, r1
ldr r1, [r0]
adds r0, r3, 0
bl _call_via_r1
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08103414: .4byte 0x02000000
_08103418: .4byte gUnknown_083ECB7C
thumb_func_end sub_81033DC
thumb_func_start sub_810341C
sub_810341C: @ 810341C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r0, _0810345C @ =0x02000000
movs r5, 0
ldrh r1, [r0, 0x36]
mov r8, r1
movs r1, 0x36
ldrsh r7, [r0, r1]
adds r6, r0, 0
_08103438:
lsls r0, r5, 16
asrs r4, r0, 16
subs r1, r7, r4
lsls r1, 16
asrs r1, 16
movs r0, 0x2
bl sub_8102BF8
lsls r0, 24
lsrs r0, 24
cmp r0, r9
bne _08103460
mov r0, r8
strh r0, [r6, 0x38]
strh r5, [r6, 0x32]
movs r0, 0x1
b _0810346E
.align 2, 0
_0810345C: .4byte 0x02000000
_08103460:
adds r0, r4, 0x1
lsls r0, 16
lsrs r5, r0, 16
asrs r0, 16
cmp r0, 0x4
ble _08103438
movs r0, 0
_0810346E:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_810341C
thumb_func_start sub_810347C
sub_810347C: @ 810347C
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _081034A0 @ =0x02000000
movs r2, 0x34
ldrsh r1, [r0, r2]
movs r2, 0x36
ldrsh r0, [r0, r2]
cmp r1, r0
bne _081034B4
adds r0, r6, 0
bl sub_810341C
lsls r0, 24
lsrs r0, 24
b _081034EA
.align 2, 0
_081034A0: .4byte 0x02000000
_081034A4:
ldr r0, _081034B0 @ =0x02000000
strh r5, [r0, 0x32]
mov r1, r8
strh r1, [r0, 0x38]
movs r0, 0x1
b _081034EA
.align 2, 0
_081034B0: .4byte 0x02000000
_081034B4:
movs r2, 0x1
mov r8, r2
cmp r1, 0x1
bne _081034C0
movs r0, 0x3
mov r8, r0
_081034C0:
movs r5, 0
mov r7, r8
_081034C4:
lsls r0, r5, 16
asrs r4, r0, 16
subs r1, r7, r4
lsls r1, 16
asrs r1, 16
movs r0, 0x2
bl sub_8102BF8
lsls r0, 24
lsrs r0, 24
cmp r0, r6
beq _081034A4
adds r0, r4, 0x1
lsls r0, 16
lsrs r5, r0, 16
asrs r0, 16
cmp r0, 0x4
ble _081034C4
movs r0, 0
_081034EA:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_810347C
thumb_func_start sub_81034F4
sub_81034F4: @ 81034F4
push {r4,r5,lr}
movs r5, 0
b _08103500
_081034FA:
adds r0, r4, 0x1
lsls r0, 16
lsrs r5, r0, 16
_08103500:
lsls r0, r5, 16
asrs r4, r0, 16
adds r0, r4, 0
bl sub_81030E0
lsls r0, 24
cmp r0, 0
bne _081034FA
ldr r0, _0810351C @ =0x02000000
strh r5, [r0, 0x2E]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810351C: .4byte 0x02000000
thumb_func_end sub_81034F4
thumb_func_start sub_8103520
sub_8103520: @ 8103520
push {lr}
adds r1, r0, 0
ldrb r0, [r1]
cmp r0, 0
bne _0810352E
movs r0, 0x1
b _08103538
_0810352E:
cmp r0, 0x1
beq _08103536
movs r0, 0
b _0810353C
_08103536:
movs r0, 0
_08103538:
strb r0, [r1]
movs r0, 0x1
_0810353C:
pop {r1}
bx r1
thumb_func_end sub_8103520
thumb_func_start sub_8103540
sub_8103540: @ 8103540
push {lr}
ldr r1, _0810355C @ =gUnknown_083ECB88
ldr r0, _08103560 @ =0x02000000
movs r2, 0x12
ldrsh r0, [r0, r2]
subs r0, 0x1
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {r0}
bx r0
.align 2, 0
_0810355C: .4byte gUnknown_083ECB88
_08103560: .4byte 0x02000000
thumb_func_end sub_8103540
thumb_func_start sub_8103564
sub_8103564: @ 8103564
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
ldr r4, _081035D0 @ =0x02000000
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0
beq _081035E0
ldrb r1, [r4, 0x4]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081035E0
ldrh r0, [r4, 0x2E]
movs r1, 0x2
subs r1, r0
lsls r1, 16
asrs r1, 16
movs r0, 0
bl sub_8102BF8
mov r1, sp
strb r0, [r1]
mov r0, sp
bl sub_8103520
lsls r0, 24
cmp r0, 0
beq _081035E0
movs r5, 0
mov r7, sp
movs r0, 0x2
mov r8, r0
adds r6, r4, 0
_081035AA:
lsls r0, r5, 16
asrs r4, r0, 16
mov r0, r8
subs r1, r0, r4
lsls r1, 16
asrs r1, 16
movs r0, 0x1
bl sub_8102BF8
ldrb r1, [r7]
lsls r0, 24
lsrs r0, 24
cmp r1, r0
bne _081035D4
movs r0, 0x2
strh r0, [r6, 0x36]
strh r5, [r6, 0x30]
b _081035E0
.align 2, 0
_081035D0: .4byte 0x02000000
_081035D4:
adds r0, r4, 0x1
lsls r0, 16
lsrs r5, r0, 16
asrs r0, 16
cmp r0, 0x4
ble _081035AA
_081035E0:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8103564
thumb_func_start j5_08111E84
j5_08111E84: @ 81035EC
push {r4-r7,lr}
sub sp, 0x4
ldr r4, _08103650 @ =0x02000000
ldrh r2, [r4, 0x34]
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08103660
ldrb r1, [r4, 0x4]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08103660
ldrh r1, [r4, 0x2E]
subs r1, r2, r1
lsls r1, 16
asrs r1, 16
movs r0, 0
bl sub_8102BF8
mov r1, sp
strb r0, [r1]
mov r0, sp
bl sub_8103520
lsls r0, 24
cmp r0, 0
beq _08103660
movs r6, 0
mov r7, sp
adds r5, r4, 0
_0810362A:
ldrh r1, [r5, 0x34]
lsls r0, r6, 16
asrs r4, r0, 16
subs r1, r4
lsls r1, 16
asrs r1, 16
movs r0, 0x1
bl sub_8102BF8
ldrb r1, [r7]
lsls r0, 24
lsrs r0, 24
cmp r1, r0
bne _08103654
ldrh r0, [r5, 0x34]
strh r0, [r5, 0x36]
strh r6, [r5, 0x30]
b _08103660
.align 2, 0
_08103650: .4byte 0x02000000
_08103654:
adds r0, r4, 0x1
lsls r0, 16
lsrs r6, r0, 16
asrs r0, 16
cmp r0, 0x4
ble _0810362A
_08103660:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end j5_08111E84
thumb_func_start sub_8103668
sub_8103668: @ 8103668
push {r4-r7,lr}
sub sp, 0x4
ldr r4, _0810368C @ =0x02000000
ldrh r3, [r4, 0x34]
movs r0, 0x34
ldrsh r2, [r4, r0]
cmp r2, 0
beq _0810375A
ldrb r1, [r4, 0x4]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0810375A
cmp r2, 0x2
bne _081036AE
bl j5_08111E84
b _0810375A
.align 2, 0
_0810368C: .4byte 0x02000000
_08103690:
ldr r0, _0810369C @ =0x02000000
movs r1, 0
strh r6, [r0, 0x36]
strh r1, [r0, 0x30]
b _0810375A
.align 2, 0
_0810369C: .4byte 0x02000000
_081036A0:
movs r0, 0x2
strh r0, [r5, 0x36]
adds r0, r4, 0x1
strh r0, [r5, 0x30]
b _0810375A
_081036AA:
movs r0, 0x3
b _08103736
_081036AE:
ldrh r1, [r4, 0x2E]
subs r1, r3, r1
lsls r1, 16
asrs r1, 16
movs r0, 0
bl sub_8102BF8
mov r1, sp
strb r0, [r1]
mov r0, sp
bl sub_8103520
lsls r0, 24
cmp r0, 0
beq _0810375A
movs r6, 0x2
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0x3
bne _081036D8
movs r6, 0x3
_081036D8:
movs r5, 0
mov r7, sp
_081036DC:
lsls r0, r6, 16
asrs r4, r0, 16
movs r0, 0x1
adds r1, r4, 0
bl sub_8102BF8
ldrb r1, [r7]
lsls r0, 24
lsrs r0, 24
cmp r1, r0
beq _08103690
lsls r1, r5, 16
movs r0, 0x80
lsls r0, 9
adds r1, r0
subs r0, r4, 0x1
lsls r0, 16
lsrs r6, r0, 16
lsrs r5, r1, 16
asrs r1, 16
cmp r1, 0x1
ble _081036DC
movs r6, 0x1
mov r7, sp
ldr r5, _0810373C @ =0x02000000
_0810370E:
ldrh r1, [r5, 0x34]
lsls r0, r6, 16
asrs r4, r0, 16
subs r1, r4
lsls r1, 16
asrs r1, 16
movs r0, 0x1
bl sub_8102BF8
ldrb r1, [r7]
lsls r0, 24
lsrs r0, 24
cmp r1, r0
bne _0810374E
movs r1, 0x34
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _08103740
cmp r4, 0x2
ble _081036A0
_08103736:
strh r0, [r5, 0x36]
strh r6, [r5, 0x30]
b _0810375A
.align 2, 0
_0810373C: .4byte 0x02000000
_08103740:
cmp r4, 0x2
ble _081036AA
movs r0, 0x2
strh r0, [r5, 0x36]
subs r0, r4, 0x1
strh r0, [r5, 0x30]
b _0810375A
_0810374E:
adds r0, r4, 0x1
lsls r0, 16
lsrs r6, r0, 16
asrs r0, 16
cmp r0, 0x4
ble _0810370E
_0810375A:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8103668
thumb_func_start sub_8103764
sub_8103764: @ 8103764
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
adds r2, r1, 0
cmp r0, 0
bne _08103778
cmp r1, 0x1
beq _08103780
_08103778:
cmp r0, 0x1
bne _08103784
cmp r2, 0
bne _08103784
_08103780:
movs r0, 0x1
b _08103786
_08103784:
movs r0, 0
_08103786:
pop {r1}
bx r1
thumb_func_end sub_8103764
thumb_func_start sub_810378C
sub_810378C: @ 810378C
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
cmp r0, 0
bne _081037A6
cmp r1, 0x1
bne _081037A6
cmp r2, 0
beq _081037B2
_081037A6:
cmp r0, 0x1
bne _081037B6
cmp r1, 0
bne _081037B6
cmp r2, 0x1
bne _081037B6
_081037B2:
movs r0, 0x1
b _081037B8
_081037B6:
movs r0, 0
_081037B8:
pop {r1}
bx r1
thumb_func_end sub_810378C
thumb_func_start sub_81037BC
sub_81037BC: @ 81037BC
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
cmp r0, 0
bne _081037D6
cmp r1, 0x1
bne _081037D6
cmp r2, 0
beq _08103802
_081037D6:
cmp r0, 0x1
bne _081037E2
cmp r1, 0
bne _081037E2
cmp r2, 0x1
beq _08103802
_081037E2:
cmp r0, 0
bne _081037EE
cmp r1, 0
bne _081037EE
cmp r2, 0x1
beq _08103802
_081037EE:
cmp r0, 0x1
bne _081037FA
cmp r1, 0x1
bne _081037FA
cmp r2, 0
beq _08103802
_081037FA:
cmp r0, r1
bne _08103806
cmp r0, r2
bne _08103806
_08103802:
movs r0, 0
b _08103808
_08103806:
movs r0, 0x1
_08103808:
pop {r1}
bx r1
thumb_func_end sub_81037BC
thumb_func_start sub_810380C
sub_810380C: @ 810380C
push {lr}
ldr r1, _08103828 @ =gUnknown_083ECB94
ldr r0, _0810382C @ =0x02000000
movs r2, 0x12
ldrsh r0, [r0, r2]
subs r0, 0x1
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {r0}
bx r0
.align 2, 0
_08103828: .4byte gUnknown_083ECB94
_0810382C: .4byte 0x02000000
thumb_func_end sub_810380C
thumb_func_start sub_8103830
sub_8103830: @ 8103830
push {r4-r7,lr}
movs r6, 0
ldr r7, _08103868 @ =0x02000000
ldrh r1, [r7, 0x2E]
movs r4, 0x2
subs r1, r4, r1
lsls r1, 16
asrs r1, 16
movs r0, 0
bl sub_8102BF8
lsls r0, 24
lsrs r5, r0, 24
ldrh r0, [r7, 0x30]
subs r4, r0
lsls r4, 16
asrs r4, 16
movs r0, 0x1
adds r1, r4, 0
bl sub_8102BF8
lsls r0, 24
lsrs r1, r0, 24
cmp r5, r1
bne _081038A0
movs r4, 0x2
b _08103876
.align 2, 0
_08103868: .4byte 0x02000000
_0810386C:
lsls r0, r6, 16
movs r1, 0x80
lsls r1, 9
adds r0, r1
lsrs r6, r0, 16
_08103876:
lsls r1, r6, 16
asrs r1, 16
subs r1, r4, r1
lsls r1, 16
asrs r1, 16
movs r0, 0x2
bl sub_8102BF8
lsls r0, 24
lsrs r0, 24
cmp r5, r0
beq _0810386C
cmp r5, 0
bne _08103896
cmp r0, 0x1
beq _0810386C
_08103896:
cmp r5, 0x1
bne _08103900
cmp r0, 0
beq _0810386C
b _08103900
_081038A0:
adds r0, r5, 0
bl sub_8103764
lsls r0, 24
cmp r0, 0
beq _08103900
ldrb r1, [r7, 0x4]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081038DC
movs r7, 0x2
_081038B8:
lsls r0, r6, 16
asrs r4, r0, 16
subs r1, r7, r4
lsls r1, 16
asrs r1, 16
movs r0, 0x2
bl sub_8102BF8
lsls r0, 24
lsrs r0, 24
cmp r5, r0
beq _08103900
adds r0, r4, 0x1
lsls r0, 16
lsrs r6, r0, 16
asrs r0, 16
cmp r0, 0x4
ble _081038B8
_081038DC:
movs r6, 0
movs r7, 0x2
b _081038E8
_081038E2:
adds r0, r4, 0x1
lsls r0, 16
lsrs r6, r0, 16
_081038E8:
lsls r0, r6, 16
asrs r4, r0, 16
subs r1, r7, r4
lsls r1, 16
asrs r1, 16
movs r0, 0x2
bl sub_8102BF8
lsls r0, 24
lsrs r0, 24
cmp r5, r0
beq _081038E2
_08103900:
ldr r0, _0810390C @ =0x02000000
strh r6, [r0, 0x32]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810390C: .4byte 0x02000000
thumb_func_end sub_8103830
thumb_func_start sub_8103910
sub_8103910: @ 8103910
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
movs r0, 0
str r0, [sp]
ldr r4, _08103978 @ =0x02000000
movs r2, 0x36
ldrsh r1, [r4, r2]
cmp r1, 0
beq _081039A6
ldrh r2, [r4, 0x34]
movs r3, 0x34
ldrsh r0, [r4, r3]
cmp r0, r1
bne _081039A6
ldrb r1, [r4, 0x4]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081039A6
ldrh r1, [r4, 0x2E]
subs r1, r2, r1
lsls r1, 16
asrs r1, 16
movs r0, 0
bl sub_8102BF8
lsls r0, 24
lsrs r7, r0, 24
ldrh r1, [r4, 0x36]
ldrh r0, [r4, 0x30]
subs r1, r0
lsls r1, 16
asrs r1, 16
movs r0, 0x1
bl sub_8102BF8
lsls r0, 24
lsrs r6, r0, 24
adds r0, r7, 0
adds r1, r6, 0
bl sub_8103764
lsls r0, 24
cmp r0, 0
beq _081039A6
movs r5, 0
b _08103982
.align 2, 0
_08103978: .4byte 0x02000000
_0810397C:
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
_08103982:
lsls r6, r5, 16
asrs r5, r6, 16
cmp r5, 0x4
bgt _081039A6
ldr r0, _08103A34 @ =0x02000000
ldrh r1, [r0, 0x36]
subs r1, r5
lsls r1, 16
asrs r1, 16
movs r0, 0x2
bl sub_8102BF8
lsls r0, 24
lsrs r4, r0, 24
cmp r7, r4
bne _0810397C
lsrs r6, 16
str r6, [sp]
_081039A6:
ldr r0, _08103A34 @ =0x02000000
mov r9, r0
_081039AA:
movs r5, 0x1
movs r1, 0
mov r8, r1
ldr r2, [sp]
lsls r2, 16
mov r10, r2
_081039B6:
mov r3, r9
ldrh r1, [r3, 0x2E]
lsls r5, 16
asrs r4, r5, 16
subs r1, r4, r1
lsls r1, 16
asrs r1, 16
movs r0, 0
bl sub_8102BF8
lsls r0, 24
lsrs r7, r0, 24
mov r0, r9
ldrh r1, [r0, 0x30]
subs r1, r4, r1
lsls r1, 16
asrs r1, 16
movs r0, 0x1
bl sub_8102BF8
lsls r0, 24
lsrs r6, r0, 24
mov r1, r10
asrs r0, r1, 16
subs r4, r0
lsls r4, 16
asrs r4, 16
movs r0, 0x2
adds r1, r4, 0
bl sub_8102BF8
lsls r0, 24
lsrs r4, r0, 24
adds r0, r7, 0
adds r1, r6, 0
adds r2, r4, 0
bl sub_81037BC
lsls r0, 24
cmp r0, 0
bne _08103A38
adds r0, r7, 0
adds r1, r6, 0
adds r2, r4, 0
bl sub_810378C
lsls r0, 24
cmp r0, 0
beq _08103A24
mov r2, r9
ldrb r1, [r2, 0x4]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08103A38
_08103A24:
mov r3, r8
lsls r0, r3, 16
movs r1, 0x80
lsls r1, 9
adds r0, r1
lsrs r0, 16
mov r8, r0
b _08103A46
.align 2, 0
_08103A34: .4byte 0x02000000
_08103A38:
movs r2, 0x80
lsls r2, 9
adds r0, r5, r2
lsrs r5, r0, 16
asrs r0, 16
cmp r0, 0x3
ble _081039B6
_08103A46:
mov r3, r8
cmp r3, 0
beq _08103A5C
ldr r1, [sp]
lsls r0, r1, 16
movs r2, 0x80
lsls r2, 9
adds r0, r2
lsrs r0, 16
str r0, [sp]
b _081039AA
_08103A5C:
ldr r0, _08103A74 @ =0x02000000
mov r3, sp
ldrh r3, [r3]
strh r3, [r0, 0x32]
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08103A74: .4byte 0x02000000
thumb_func_end sub_8103910
thumb_func_start sub_8103A78
sub_8103A78: @ 8103A78
push {r4-r7,lr}
mov r7, r8
push {r7}
bl sub_8103910
ldr r4, _08103B10 @ =0x02000000
movs r0, 0x36
ldrsh r1, [r4, r0]
cmp r1, 0
beq _08103B20
ldrh r2, [r4, 0x34]
movs r3, 0x34
ldrsh r0, [r4, r3]
cmp r0, r1
beq _08103B20
ldrb r1, [r4, 0x4]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08103B20
ldrh r1, [r4, 0x2E]
subs r1, r2, r1
lsls r1, 16
asrs r1, 16
movs r0, 0
bl sub_8102BF8
lsls r0, 24
lsrs r6, r0, 24
ldrh r1, [r4, 0x36]
ldrh r0, [r4, 0x30]
subs r1, r0
lsls r1, 16
asrs r1, 16
movs r0, 0x1
bl sub_8102BF8
lsls r0, 24
lsrs r5, r0, 24
adds r0, r6, 0
adds r1, r5, 0
bl sub_8103764
lsls r0, 24
cmp r0, 0
beq _08103B20
movs r1, 0x1
movs r2, 0x34
ldrsh r0, [r4, r2]
cmp r0, 0x1
bne _08103AE0
movs r1, 0x3
_08103AE0:
movs r3, 0
lsls r1, 16
mov r8, r1
adds r7, r4, 0
_08103AE8:
ldrh r2, [r7, 0x32]
lsls r0, r3, 16
asrs r5, r0, 16
adds r2, r5, r2
mov r3, r8
asrs r1, r3, 16
subs r1, r2
lsls r1, 16
asrs r1, 16
movs r0, 0x2
bl sub_8102BF8
lsls r0, 24
lsrs r4, r0, 24
cmp r6, r4
bne _08103B14
ldrh r0, [r7, 0x32]
adds r0, r5, r0
strh r0, [r7, 0x32]
b _08103B20
.align 2, 0
_08103B10: .4byte 0x02000000
_08103B14:
adds r0, r5, 0x1
lsls r0, 16
lsrs r3, r0, 16
asrs r0, 16
cmp r0, 0x4
ble _08103AE8
_08103B20:
ldr r7, _08103B90 @ =0x02000000
_08103B22:
ldrh r0, [r7, 0x2E]
movs r1, 0x1
subs r1, r0
lsls r1, 16
asrs r1, 16
movs r0, 0
bl sub_8102BF8
lsls r0, 24
lsrs r6, r0, 24
ldrh r0, [r7, 0x30]
movs r1, 0x2
subs r1, r0
lsls r1, 16
asrs r1, 16
movs r0, 0x1
bl sub_8102BF8
lsls r0, 24
lsrs r5, r0, 24
ldrh r0, [r7, 0x32]
movs r1, 0x3
subs r1, r0
lsls r1, 16
asrs r1, 16
movs r0, 0x2
bl sub_8102BF8
lsls r0, 24
lsrs r4, r0, 24
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl sub_81037BC
lsls r0, 24
cmp r0, 0
bne _08103B94
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl sub_810378C
lsls r0, 24
cmp r0, 0
beq _08103B88
ldrb r1, [r7, 0x4]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08103B94
_08103B88:
ldrh r0, [r7, 0x32]
adds r0, 0x1
strh r0, [r7, 0x32]
b _08103B22
.align 2, 0
_08103B90: .4byte 0x02000000
_08103B94:
ldr r7, _08103C04 @ =0x02000000
_08103B96:
ldrh r0, [r7, 0x2E]
movs r1, 0x3
subs r1, r0
lsls r1, 16
asrs r1, 16
movs r0, 0
bl sub_8102BF8
lsls r0, 24
lsrs r6, r0, 24
ldrh r0, [r7, 0x30]
movs r1, 0x2
subs r1, r0
lsls r1, 16
asrs r1, 16
movs r0, 0x1
bl sub_8102BF8
lsls r0, 24
lsrs r5, r0, 24
ldrh r0, [r7, 0x32]
movs r1, 0x1
subs r1, r0
lsls r1, 16
asrs r1, 16
movs r0, 0x2
bl sub_8102BF8
lsls r0, 24
lsrs r4, r0, 24
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl sub_81037BC
lsls r0, 24
cmp r0, 0
bne _08103C08
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl sub_810378C
lsls r0, 24
cmp r0, 0
beq _08103BFC
ldrb r1, [r7, 0x4]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08103C08
_08103BFC:
ldrh r0, [r7, 0x32]
adds r0, 0x1
strh r0, [r7, 0x32]
b _08103B96
.align 2, 0
_08103C04: .4byte 0x02000000
_08103C08:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8103A78
thumb_func_start sub_8103C14
sub_8103C14: @ 8103C14
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, _08103C40 @ =sub_8103C48
adds r0, r5, 0
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08103C44 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x26]
bl _call_via_r5
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08103C40: .4byte sub_8103C48
_08103C44: .4byte gTasks
thumb_func_end sub_8103C14
thumb_func_start sub_8103C48
sub_8103C48: @ 8103C48
push {r4,lr}
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r3, _08103C70 @ =gUnknown_083ECBA0
ldr r2, _08103C74 @ =gTasks
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
movs r4, 0x8
ldrsh r2, [r0, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08103C70: .4byte gUnknown_083ECBA0
_08103C74: .4byte gTasks
thumb_func_end sub_8103C48
thumb_func_start sub_8103C78
sub_8103C78: @ 8103C78
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
ldr r1, _08103CA8 @ =gUnknown_083ECBAC
movs r2, 0x26
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0x73
str r1, [sp]
movs r1, 0x62
movs r2, 0x63
movs r3, 0x72
bl sub_81065A8
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08103CA8: .4byte gUnknown_083ECBAC
thumb_func_end sub_8103C78
thumb_func_start sub_8103CAC
sub_8103CAC: @ 8103CAC
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0xA]
adds r0, 0x1
strh r0, [r1, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0xB
ble _08103CC4
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
_08103CC4:
pop {r0}
bx r0
thumb_func_end sub_8103CAC
thumb_func_start sub_8103CC8
sub_8103CC8: @ 8103CC8
push {r4,lr}
sub sp, 0x4
lsls r4, r1, 24
lsrs r4, 24
ldr r1, _08103CFC @ =gUnknown_083ECBAC
movs r2, 0x26
ldrsh r0, [r0, r2]
lsls r0, 1
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0x53
str r1, [sp]
movs r1, 0x42
movs r2, 0x43
movs r3, 0x52
bl sub_81065A8
adds r0, r4, 0
bl DestroyTask
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08103CFC: .4byte gUnknown_083ECBAC
thumb_func_end sub_8103CC8
thumb_func_start sub_8103D00
sub_8103D00: @ 8103D00
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _08103D20 @ =gUnknown_083EDD08
lsls r1, r0, 2
adds r1, r2
ldr r2, [r1]
ldr r1, _08103D24 @ =gUnknown_083EDD30
adds r0, r1
ldrb r1, [r0]
adds r0, r2, 0
movs r2, 0x2
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
_08103D20: .4byte gUnknown_083EDD08
_08103D24: .4byte gUnknown_083EDD30
thumb_func_end sub_8103D00
thumb_func_start sub_8103D28
sub_8103D28: @ 8103D28
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _08103D48 @ =gUnknown_083EDD1C
lsls r1, r0, 2
adds r1, r2
ldr r2, [r1]
ldr r1, _08103D4C @ =gUnknown_083EDD30
adds r0, r1
ldrb r1, [r0]
adds r0, r2, 0
movs r2, 0x2
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
_08103D48: .4byte gUnknown_083EDD1C
_08103D4C: .4byte gUnknown_083EDD30
thumb_func_end sub_8103D28
thumb_func_start sub_8103D50
sub_8103D50: @ 8103D50
push {r4-r7,lr}
lsls r0, 24
lsrs r1, r0, 24
movs r4, 0
ldr r0, _08103D84 @ =gUnknown_083EDD3B
adds r0, r1, r0
ldrb r0, [r0]
cmp r4, r0
bcs _08103D7C
ldr r7, _08103D88 @ =gUnknown_083EDD35
adds r6, r0, 0
lsls r5, r1, 1
_08103D68:
adds r0, r4, r5
adds r0, r7
ldrb r0, [r0]
bl sub_8103D00
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r6
bcc _08103D68
_08103D7C:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08103D84: .4byte gUnknown_083EDD3B
_08103D88: .4byte gUnknown_083EDD35
thumb_func_end sub_8103D50
thumb_func_start sub_8103D8C
sub_8103D8C: @ 8103D8C
push {r4-r7,lr}
lsls r0, 24
lsrs r1, r0, 24
movs r4, 0
ldr r0, _08103DC0 @ =gUnknown_083EDD3B
adds r0, r1, r0
ldrb r0, [r0]
cmp r4, r0
bcs _08103DB8
ldr r7, _08103DC4 @ =gUnknown_083EDD35
adds r6, r0, 0
lsls r5, r1, 1
_08103DA4:
adds r0, r4, r5
adds r0, r7
ldrb r0, [r0]
bl sub_8103D28
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r6
bcc _08103DA4
_08103DB8:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08103DC0: .4byte gUnknown_083EDD3B
_08103DC4: .4byte gUnknown_083EDD35
thumb_func_end sub_8103D8C
thumb_func_start sub_8103DC8
sub_8103DC8: @ 8103DC8
push {r4-r6,lr}
movs r4, 0
ldr r6, _08103DF8 @ =gSprites
ldr r5, _08103DFC @ =0x02000044
_08103DD0:
ldr r0, _08103E00 @ =sub_8103EE4
bl CreateInvisibleSprite
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
strh r4, [r1, 0x2E]
adds r1, r4, r5
strb r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
bls _08103DD0
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08103DF8: .4byte gSprites
_08103DFC: .4byte 0x02000044
_08103E00: .4byte sub_8103EE4
thumb_func_end sub_8103DC8
thumb_func_start sub_8103E04
sub_8103E04: @ 8103E04
lsls r0, 24
lsrs r0, 24
ldr r1, _08103E30 @ =0x02000000
adds r1, 0x44
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08103E34 @ =gSprites
adds r0, r1
movs r2, 0
movs r1, 0x1
strh r1, [r0, 0x30]
movs r1, 0x4
strh r1, [r0, 0x32]
strh r2, [r0, 0x34]
strh r2, [r0, 0x36]
movs r1, 0x2
strh r1, [r0, 0x38]
strh r2, [r0, 0x3C]
bx lr
.align 2, 0
_08103E30: .4byte 0x02000000
_08103E34: .4byte gSprites
thumb_func_end sub_8103E04
thumb_func_start sub_8103E38
sub_8103E38: @ 8103E38
push {r4,r5,lr}
movs r2, 0
ldr r4, _08103E60 @ =0x02000044
ldr r3, _08103E64 @ =gSprites
_08103E40:
adds r0, r2, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r0, r3
movs r5, 0x30
ldrsh r0, [r1, r5]
cmp r0, 0
beq _08103E68
movs r5, 0x32
ldrsh r0, [r1, r5]
cmp r0, 0
beq _08103E68
movs r0, 0
b _08103E74
.align 2, 0
_08103E60: .4byte 0x02000044
_08103E64: .4byte gSprites
_08103E68:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x4
bls _08103E40
movs r0, 0x1
_08103E74:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8103E38
thumb_func_start sub_8103E7C
sub_8103E7C: @ 8103E7C
push {r4,r5,lr}
movs r4, 0
ldr r5, _08103E94 @ =0x02000044
_08103E82:
adds r0, r4, r5
ldrb r0, [r0]
bl sub_8103EAC
lsls r0, 24
cmp r0, 0
bne _08103E98
movs r0, 0
b _08103EA4
.align 2, 0
_08103E94: .4byte 0x02000044
_08103E98:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
bls _08103E82
movs r0, 0x1
_08103EA4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8103E7C
thumb_func_start sub_8103EAC
sub_8103EAC: @ 8103EAC
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, _08103EC8 @ =gSprites
adds r1, r0
movs r2, 0x30
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08103ECC
movs r0, 0x1
b _08103EDE
.align 2, 0
_08103EC8: .4byte gSprites
_08103ECC:
ldrh r2, [r1, 0x3C]
movs r3, 0x3C
ldrsh r0, [r1, r3]
cmp r0, 0
beq _08103EDA
movs r0, 0
strh r0, [r1, 0x30]
_08103EDA:
lsls r0, r2, 24
lsrs r0, 24
_08103EDE:
pop {r1}
bx r1
thumb_func_end sub_8103EAC
thumb_func_start sub_8103EE4
sub_8103EE4: @ 8103EE4
push {r4-r7,lr}
adds r2, r0, 0
movs r1, 0x30
ldrsh r0, [r2, r1]
cmp r0, 0
beq _08103F66
ldrh r0, [r2, 0x34]
subs r0, 0x1
strh r0, [r2, 0x34]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _08103F4E
movs r0, 0
strh r0, [r2, 0x3C]
movs r6, 0x1
strh r6, [r2, 0x34]
ldrh r1, [r2, 0x38]
ldrh r3, [r2, 0x36]
adds r0, r1, r3
strh r0, [r2, 0x36]
movs r4, 0x4
ldrh r5, [r2, 0x32]
movs r7, 0x32
ldrsh r3, [r2, r7]
cmp r3, 0
beq _08103F20
movs r4, 0x8
_08103F20:
lsls r0, 16
asrs r0, 16
cmp r0, 0
bgt _08103F38
strh r6, [r2, 0x3C]
negs r0, r1
strh r0, [r2, 0x38]
cmp r3, 0
beq _08103F4E
subs r0, r5, 0x1
strh r0, [r2, 0x32]
b _08103F40
_08103F38:
cmp r0, r4
blt _08103F40
negs r0, r1
strh r0, [r2, 0x38]
_08103F40:
movs r1, 0x32
ldrsh r0, [r2, r1]
cmp r0, 0
beq _08103F4E
ldrh r0, [r2, 0x34]
lsls r0, 1
strh r0, [r2, 0x34]
_08103F4E:
ldr r1, _08103F6C @ =gUnknown_083EDD30
movs r3, 0x2E
ldrsh r0, [r2, r3]
adds r0, r1
ldrb r0, [r0]
ldrh r3, [r2, 0x36]
lsls r3, 24
lsrs r3, 24
adds r1, r3, 0
adds r2, r3, 0
bl MultiplyPaletteRGBComponents
_08103F66:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08103F6C: .4byte gUnknown_083EDD30
thumb_func_end sub_8103EE4
thumb_func_start sub_8103F70
sub_8103F70: @ 8103F70
push {r4,lr}
ldr r4, _08103F98 @ =sub_8103FE8
adds r0, r4, 0
movs r1, 0x6
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08103F9C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r2, 0x1
strh r2, [r1, 0xE]
bl _call_via_r4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08103F98: .4byte sub_8103FE8
_08103F9C: .4byte gTasks
thumb_func_end sub_8103F70
thumb_func_start sub_8103FA0
sub_8103FA0: @ 8103FA0
push {lr}
ldr r0, _08103FC4 @ =sub_8103FE8
bl FindTaskIdByFunc
lsls r0, 24
lsrs r2, r0, 24
ldr r1, _08103FC8 @ =gTasks
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r1
movs r1, 0xC
ldrsh r0, [r0, r1]
cmp r0, 0
beq _08103FCC
movs r0, 0
b _08103FE0
.align 2, 0
_08103FC4: .4byte sub_8103FE8
_08103FC8: .4byte gTasks
_08103FCC:
adds r0, r2, 0
bl DestroyTask
ldr r0, _08103FE4 @ =gUnknown_083EDDAC
ldr r0, [r0]
movs r1, 0x10
movs r2, 0x20
bl LoadPalette
movs r0, 0x1
_08103FE0:
pop {r1}
bx r1
.align 2, 0
_08103FE4: .4byte gUnknown_083EDDAC
thumb_func_end sub_8103FA0
thumb_func_start sub_8103FE8
sub_8103FE8: @ 8103FE8
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _08104040 @ =gTasks
adds r2, r1, r0
ldrh r0, [r2, 0xA]
subs r0, 0x1
strh r0, [r2, 0xA]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _08104026
movs r0, 0x4
strh r0, [r2, 0xA]
ldrh r1, [r2, 0xE]
ldrh r3, [r2, 0xC]
adds r0, r1, r3
strh r0, [r2, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0
beq _08104022
cmp r0, 0x2
bne _08104026
_08104022:
negs r0, r1
strh r0, [r2, 0xE]
_08104026:
ldr r0, _08104044 @ =gUnknown_083EDDA0
movs r3, 0xC
ldrsh r1, [r2, r3]
lsls r1, 2
adds r1, r0
ldr r0, [r1]
movs r1, 0x10
movs r2, 0x20
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
_08104040: .4byte gTasks
_08104044: .4byte gUnknown_083EDDA0
thumb_func_end sub_8103FE8
thumb_func_start sub_8104048
sub_8104048: @ 8104048
push {lr}
ldr r0, _0810405C @ =sub_81040E8
movs r1, 0x8
bl CreateTask
ldr r1, _08104060 @ =0x02000000
adds r1, 0x3E
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0810405C: .4byte sub_81040E8
_08104060: .4byte 0x02000000
thumb_func_end sub_8104048
thumb_func_start sub_8104064
sub_8104064: @ 8104064
push {r4,lr}
ldr r0, _08104090 @ =0x02000000
adds r0, 0x3E
ldrb r0, [r0]
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, _08104094 @ =gTasks
adds r4, r0
adds r0, r4, 0
bl sub_810421C
movs r1, 0x1
strh r1, [r4, 0x8]
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
strh r1, [r4, 0x26]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08104090: .4byte 0x02000000
_08104094: .4byte gTasks
thumb_func_end sub_8104064
thumb_func_start sub_8104098
sub_8104098: @ 8104098
push {r4,lr}
ldr r0, _081040C0 @ =0x02000000
adds r0, 0x3E
ldrb r0, [r0]
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, _081040C4 @ =gTasks
adds r4, r0
adds r0, r4, 0
bl sub_810421C
movs r0, 0x3
strh r0, [r4, 0x8]
movs r0, 0x1
strh r0, [r4, 0x26]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081040C0: .4byte 0x02000000
_081040C4: .4byte gTasks
thumb_func_end sub_8104098
thumb_func_start sub_81040C8
sub_81040C8: @ 81040C8
ldr r2, _081040E0 @ =gTasks
ldr r0, _081040E4 @ =0x02000000
adds r0, 0x3E
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldrh r0, [r0, 0x26]
lsls r0, 24
lsrs r0, 24
bx lr
.align 2, 0
_081040E0: .4byte gTasks
_081040E4: .4byte 0x02000000
thumb_func_end sub_81040C8
thumb_func_start sub_81040E8
sub_81040E8: @ 81040E8
push {lr}
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r3, _08104110 @ =gUnknown_083ECBB4
ldr r2, _08104114 @ =gTasks
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
movs r2, 0x8
ldrsh r1, [r0, r2]
lsls r1, 2
adds r1, r3
ldr r1, [r1]
bl _call_via_r1
pop {r0}
bx r0
.align 2, 0
_08104110: .4byte gUnknown_083ECBB4
_08104114: .4byte gTasks
thumb_func_end sub_81040E8
thumb_func_start nullsub_68
nullsub_68: @ 8104118
bx lr
thumb_func_end nullsub_68
thumb_func_start sub_810411C
sub_810411C: @ 810411C
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0xA]
lsls r0, 19
movs r1, 0xA0
lsls r1, 13
adds r0, r1
asrs r0, 16
movs r1, 0x14
bl sub_8105B1C
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810411C
thumb_func_start sub_8104144
sub_8104144: @ 8104144
push {r4,lr}
adds r4, r0, 0
ldr r2, _08104174 @ =gSprites
movs r0, 0xC
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x3C
ldrsh r0, [r0, r1]
cmp r0, 0
beq _0810419E
ldrh r1, [r4, 0xA]
adds r0, r1, 0x2
lsls r0, 16
lsrs r2, r0, 16
movs r0, 0
lsls r1, 16
asrs r1, 16
cmp r1, 0x1
bne _08104178
movs r0, 0x1
b _0810417E
.align 2, 0
_08104174: .4byte gSprites
_08104178:
cmp r1, 0x10
bne _0810417E
movs r0, 0x2
_0810417E:
lsls r1, r2, 16
asrs r1, 15
ldr r2, _081041A4 @ =0x0600e800
adds r1, r2
adds r1, 0x80
ldr r2, _081041A8 @ =gUnknown_083ECBC4
lsls r0, 2
adds r0, r2
ldrh r0, [r0]
strh r0, [r1]
ldrb r0, [r4, 0xC]
bl sub_8105B88
movs r0, 0
strh r0, [r4, 0x8]
strh r0, [r4, 0x26]
_0810419E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081041A4: .4byte 0x0600e800
_081041A8: .4byte gUnknown_083ECBC4
thumb_func_end sub_8104144
thumb_func_start sub_81041AC
sub_81041AC: @ 81041AC
push {r4,lr}
adds r3, r0, 0
ldrh r1, [r3, 0xA]
adds r0, r1, 0x2
lsls r0, 16
lsrs r4, r0, 16
movs r2, 0
lsls r1, 16
asrs r1, 16
cmp r1, 0x1
bne _081041C6
movs r2, 0x1
b _081041CC
_081041C6:
cmp r1, 0x10
bne _081041CC
movs r2, 0x2
_081041CC:
movs r1, 0xC
ldrsh r0, [r3, r1]
cmp r0, 0
bne _081041F0
lsls r0, r4, 16
asrs r0, 15
ldr r1, _08104214 @ =0x0600e800
adds r0, r1
adds r0, 0x80
ldr r1, _08104218 @ =gUnknown_083ECBC4
lsls r2, 2
adds r1, 0x2
adds r2, r1
ldrh r1, [r2]
strh r1, [r0]
ldrh r0, [r3, 0xA]
subs r0, 0x1
strh r0, [r3, 0xA]
_081041F0:
ldrh r0, [r3, 0xC]
adds r0, 0x1
strh r0, [r3, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x13
ble _08104202
movs r0, 0
strh r0, [r3, 0xC]
_08104202:
movs r1, 0xA
ldrsh r0, [r3, r1]
cmp r0, 0
bne _0810420E
strh r0, [r3, 0x8]
strh r0, [r3, 0x26]
_0810420E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08104214: .4byte 0x0600e800
_08104218: .4byte gUnknown_083ECBC4
thumb_func_end sub_81041AC
thumb_func_start sub_810421C
sub_810421C: @ 810421C
push {lr}
movs r1, 0x2
adds r2, r0, 0
adds r2, 0x8
movs r3, 0
_08104226:
lsls r0, r1, 1
adds r0, r2, r0
strh r3, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0xF
bls _08104226
pop {r0}
bx r0
thumb_func_end sub_810421C
thumb_func_start sub_810423C
sub_810423C: @ 810423C
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r5, r0, 24
movs r2, 0x3
ldr r6, _08104268 @ =0x0600e800
movs r4, 0
ldr r0, _0810426C @ =gTasks
mov r8, r0
ldr r1, _08104270 @ =0x02000000
mov r12, r1
cmp r4, r5
bge _081042A6
ldr r7, _08104274 @ =gUnknown_083ECBC4
_0810425A:
movs r3, 0
lsls r0, r4, 16
asrs r0, 16
cmp r0, 0
bne _08104278
movs r3, 0x1
b _0810427E
.align 2, 0
_08104268: .4byte 0x0600e800
_0810426C: .4byte gTasks
_08104270: .4byte 0x02000000
_08104274: .4byte gUnknown_083ECBC4
_08104278:
cmp r0, 0xF
bne _0810427E
movs r3, 0x2
_0810427E:
lsls r2, 16
asrs r2, 16
lsls r1, r2, 1
adds r1, r6
adds r1, 0x80
lsls r0, r3, 2
adds r0, r7
ldrh r0, [r0]
strh r0, [r1]
lsls r0, r4, 16
movs r1, 0x80
lsls r1, 9
adds r0, r1
adds r2, 0x1
lsls r2, 16
lsrs r2, 16
lsrs r4, r0, 16
asrs r0, 16
cmp r0, r5
blt _0810425A
_081042A6:
lsls r1, r4, 16
asrs r0, r1, 16
cmp r0, 0xF
bgt _081042F0
ldr r7, _081042BC @ =gUnknown_083ECBC4 + 0x2
_081042B0:
movs r3, 0
asrs r0, r1, 16
cmp r0, 0
bne _081042C0
movs r3, 0x1
b _081042C6
.align 2, 0
_081042BC: .4byte gUnknown_083ECBC4 + 0x2
_081042C0:
cmp r0, 0xF
bne _081042C6
movs r3, 0x2
_081042C6:
lsls r2, 16
asrs r2, 16
lsls r1, r2, 1
adds r1, r6
adds r1, 0x80
lsls r0, r3, 2
adds r0, r7
ldrh r0, [r0]
strh r0, [r1]
lsls r0, r4, 16
movs r1, 0x80
lsls r1, 9
adds r0, r1
lsrs r4, r0, 16
adds r2, 0x1
lsls r2, 16
lsrs r2, 16
lsls r1, r4, 16
asrs r0, r1, 16
cmp r0, 0xF
ble _081042B0
_081042F0:
mov r0, r12
adds r0, 0x3E
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
add r0, r8
strh r5, [r0, 0xA]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_810423C
thumb_func_start sub_810430C
sub_810430C: @ 810430C
push {r4,lr}
ldr r4, _08104328 @ =sub_810434C
adds r0, r4, 0
movs r1, 0x7
bl CreateTask
lsls r0, 24
lsrs r0, 24
bl _call_via_r4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08104328: .4byte sub_810434C
thumb_func_end sub_810430C
thumb_func_start sub_810432C
sub_810432C: @ 810432C
push {lr}
ldr r0, _08104340 @ =sub_810434C
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _08104344
movs r0, 0
b _08104346
.align 2, 0
_08104340: .4byte sub_810434C
_08104344:
movs r0, 0x1
_08104346:
pop {r1}
bx r1
thumb_func_end sub_810432C
thumb_func_start sub_810434C
sub_810434C: @ 810434C
push {lr}
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r3, _08104374 @ =gUnknown_083ECBD0
ldr r2, _08104378 @ =gTasks
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
movs r2, 0x8
ldrsh r1, [r0, r2]
lsls r1, 2
adds r1, r3
ldr r1, [r1]
bl _call_via_r1
pop {r0}
bx r0
.align 2, 0
_08104374: .4byte gUnknown_083ECBD0
_08104378: .4byte gTasks
thumb_func_end sub_810434C
thumb_func_start sub_810437C
sub_810437C: @ 810437C
push {lr}
ldr r1, _081043DC @ =0x02000000
movs r2, 0
strb r2, [r1, 0xA]
strh r2, [r1, 0x14]
strh r2, [r1, 0x16]
ldrh r1, [r0, 0x8]
adds r1, 0x1
strh r1, [r0, 0x8]
strh r2, [r0, 0xA]
movs r1, 0x1E
strh r1, [r0, 0xC]
movs r1, 0xA0
lsls r1, 3
strh r1, [r0, 0x10]
ldr r0, _081043E0 @ =gSpriteCoordOffsetX
strh r2, [r0]
ldr r0, _081043E4 @ =gSpriteCoordOffsetY
strh r2, [r0]
ldr r0, _081043E8 @ =REG_BG1HOFS
strh r2, [r0]
adds r0, 0x2
strh r2, [r0]
movs r0, 0x1E
movs r1, 0
bl sub_8104A40
bl sub_81051C0
bl sub_8105100
bl sub_81052EC
bl sub_81053A0
bl sub_810545C
bl sub_8102680
bl StopMapMusic
movs r0, 0xC4
lsls r0, 1
bl PlayNewMapMusic
pop {r0}
bx r0
.align 2, 0
_081043DC: .4byte 0x02000000
_081043E0: .4byte gSpriteCoordOffsetX
_081043E4: .4byte gSpriteCoordOffsetY
_081043E8: .4byte REG_BG1HOFS
thumb_func_end sub_810437C
thumb_func_start sub_81043EC
sub_81043EC: @ 81043EC
push {r4,lr}
adds r4, r0, 0
ldr r1, _0810445C @ =gSpriteCoordOffsetX
ldrh r0, [r1]
subs r0, 0x8
strh r0, [r1]
ldrh r2, [r4, 0xA]
adds r2, 0x8
strh r2, [r4, 0xA]
movs r1, 0xA
ldrsh r0, [r4, r1]
adds r0, 0xF0
movs r1, 0xFF
ands r0, r1
lsrs r3, r0, 3
ldr r1, _08104460 @ =REG_BG1HOFS
ldr r0, _08104464 @ =0x000001ff
ands r2, r0
strh r2, [r1]
adds r2, r3, 0
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r2, r0
beq _08104438
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0x12
bgt _08104438
strh r3, [r4, 0xC]
ldrh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 19
strh r0, [r4, 0xE]
movs r0, 0xE
ldrsh r1, [r4, r0]
adds r0, r2, 0
bl sub_8104A40
_08104438:
movs r1, 0xA
ldrsh r0, [r4, r1]
cmp r0, 0xC7
ble _0810444A
ldrh r0, [r4, 0x8]
adds r0, 0x1
movs r1, 0
strh r0, [r4, 0x8]
strh r1, [r4, 0xE]
_0810444A:
ldrh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 24
bl sub_8102D28
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810445C: .4byte gSpriteCoordOffsetX
_08104460: .4byte REG_BG1HOFS
_08104464: .4byte 0x000001ff
thumb_func_end sub_81043EC
thumb_func_start sub_8104468
sub_8104468: @ 8104468
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 24
bl sub_8102D28
ldrh r0, [r4, 0x12]
adds r0, 0x1
strh r0, [r4, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3B
ble _08104492
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
bl sub_8105578
bl sub_81056F0
_08104492:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8104468
thumb_func_start sub_8104498
sub_8104498: @ 8104498
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x14
adds r7, r0, 0
ldr r1, _08104534 @ =gUnknown_083ECC1C
mov r0, sp
movs r2, 0x4
bl memcpy
add r0, sp, 0x4
mov r8, r0
ldr r1, _08104538 @ =gUnknown_083ECC20
movs r2, 0x8
bl memcpy
add r6, sp, 0xC
ldr r1, _0810453C @ =gUnknown_083ECC28
adds r0, r6, 0
movs r2, 0x8
bl memcpy
ldrh r0, [r7, 0x10]
lsls r0, 16
asrs r0, 24
bl sub_8102D28
ldrh r0, [r7, 0x10]
subs r0, 0x4
strh r0, [r7, 0x10]
lsls r0, 16
asrs r0, 24
movs r5, 0x4
subs r5, r0
lsls r4, r5, 1
add r8, r4
mov r1, r8
movs r2, 0
ldrsh r0, [r1, r2]
bl sub_8105688
adds r6, r4
movs r1, 0
ldrsh r0, [r6, r1]
bl sub_81057E8
ldr r0, _08104540 @ =0x02000000
adds r0, 0x3F
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08104544 @ =gSprites
adds r0, r1
mov r2, sp
adds r1, r2, r5
ldrb r1, [r1]
bl StartSpriteAnimIfDifferent
movs r1, 0x10
ldrsh r0, [r7, r1]
movs r1, 0x80
lsls r1, 1
cmp r0, r1
bgt _08104526
ldrh r0, [r7, 0x8]
adds r0, 0x1
strh r0, [r7, 0x8]
strh r1, [r7, 0x10]
movs r0, 0
strh r0, [r7, 0x12]
_08104526:
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08104534: .4byte gUnknown_083ECC1C
_08104538: .4byte gUnknown_083ECC20
_0810453C: .4byte gUnknown_083ECC28
_08104540: .4byte 0x02000000
_08104544: .4byte gSprites
thumb_func_end sub_8104498
thumb_func_start sub_8104548
sub_8104548: @ 8104548
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 24
bl sub_8102D28
ldrh r0, [r4, 0x12]
adds r0, 0x1
strh r0, [r4, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4F
ble _0810458A
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0
strh r0, [r4, 0x12]
movs r0, 0x2
bl sub_81057E8
ldr r0, _08104590 @ =0x02000000
adds r0, 0x3F
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08104594 @ =gSprites
adds r0, r1
movs r1, 0x3
bl StartSpriteAnimIfDifferent
_0810458A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08104590: .4byte 0x02000000
_08104594: .4byte gSprites
thumb_func_end sub_8104548
thumb_func_start sub_8104598
sub_8104598: @ 8104598
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 24
bl sub_8102D28
ldrb r0, [r4, 0x10]
adds r0, 0x80
strh r0, [r4, 0x10]
ldrh r0, [r4, 0x12]
adds r0, 0x1
strh r0, [r4, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4F
ble _081045C4
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
movs r0, 0
strh r0, [r4, 0x12]
_081045C4:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8104598
thumb_func_start sub_81045CC
sub_81045CC: @ 81045CC
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 24
bl sub_8102D28
ldrb r0, [r4, 0x10]
adds r0, 0x40
strh r0, [r4, 0x10]
ldrh r0, [r4, 0x12]
adds r0, 0x1
strh r0, [r4, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x27
ble _08104634
movs r0, 0
strh r0, [r4, 0x12]
ldr r1, _0810460C @ =0x02000000
ldrb r0, [r1, 0x5]
cmp r0, 0
beq _08104610
ldrb r1, [r1, 0xA]
movs r2, 0x14
ldrsh r0, [r4, r2]
cmp r1, r0
bgt _0810462E
ldrh r0, [r4, 0x8]
adds r0, 0x1
b _0810462C
.align 2, 0
_0810460C: .4byte 0x02000000
_08104610:
movs r1, 0x14
ldrsh r0, [r4, r1]
cmp r0, 0x3
ble _0810461E
ldrh r0, [r4, 0x8]
adds r0, 0x1
b _0810462C
_0810461E:
ldrh r0, [r4, 0x14]
bl sub_81026DC
lsls r0, 24
cmp r0, 0
beq _0810462E
movs r0, 0xE
_0810462C:
strh r0, [r4, 0x8]
_0810462E:
ldrh r0, [r4, 0x14]
adds r0, 0x1
strh r0, [r4, 0x14]
_08104634:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81045CC
thumb_func_start sub_810463C
sub_810463C: @ 810463C
push {r4-r6,lr}
adds r4, r0, 0
ldr r6, _08104660 @ =0x02000000
movs r1, 0x14
ldrsh r0, [r6, r1]
movs r1, 0x14
bl __modsi3
lsls r0, 16
lsrs r5, r0, 16
cmp r0, 0
beq _08104664
ldrh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 24
bl sub_8102D5C
b _08104688
.align 2, 0
_08104660: .4byte 0x02000000
_08104664:
movs r0, 0x1
bl sub_8102C48
lsls r0, 24
lsrs r0, 24
ldrb r1, [r6, 0x5]
cmp r0, r1
beq _08104692
ldrh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 24
bl sub_8102D28
movs r1, 0x14
ldrsh r0, [r6, r1]
movs r1, 0x14
bl __modsi3
_08104688:
lsls r0, 16
lsrs r5, r0, 16
ldrb r0, [r4, 0x10]
adds r0, 0x40
strh r0, [r4, 0x10]
_08104692:
lsls r0, r5, 16
asrs r5, r0, 16
cmp r5, 0
bne _081046B4
movs r0, 0x1
bl sub_8102C48
ldr r1, _081046BC @ =0x02000000
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1, 0x5]
cmp r0, r1
bne _081046B4
strh r5, [r4, 0x10]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_081046B4:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_081046BC: .4byte 0x02000000
thumb_func_end sub_810463C
thumb_func_start sub_81046C0
sub_81046C0: @ 81046C0
push {r4-r7,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x10]
adds r0, 0x1
movs r7, 0
strh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3B
ble _08104758
bl StopMapMusic
bl sub_81056C0
bl sub_8105804
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
ldr r5, _08104710 @ =0x02000000
ldrb r0, [r5, 0x5]
cmp r0, 0
bne _0810471C
movs r0, 0xA0
strh r0, [r4, 0x10]
adds r0, r5, 0
adds r0, 0x3F
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08104714 @ =gSprites
adds r0, r1
movs r1, 0x5
bl StartSpriteAnimIfDifferent
ldr r0, _08104718 @ =0x00000187
bl PlayFanfare
b _08104758
.align 2, 0
_08104710: .4byte 0x02000000
_08104714: .4byte gSprites
_08104718: .4byte 0x00000187
_0810471C:
movs r0, 0xC0
strh r0, [r4, 0x10]
adds r6, r5, 0
adds r6, 0x3F
ldrb r1, [r6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, _08104760 @ =gSprites
adds r0, r4
movs r1, 0x4
bl StartSpriteAnimIfDifferent
ldrb r1, [r6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
adds r0, 0x2B
strb r7, [r0]
ldrb r0, [r5, 0x2]
cmp r0, 0
beq _08104750
bl sub_8104098
strb r7, [r5, 0x2]
_08104750:
movs r0, 0xC3
lsls r0, 1
bl PlayFanfare
_08104758:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08104760: .4byte gSprites
thumb_func_end sub_81046C0
thumb_func_start sub_8104764
sub_8104764: @ 8104764
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x10]
movs r2, 0x10
ldrsh r0, [r4, r2]
cmp r0, 0
beq _0810477C
subs r0, r1, 0x1
strh r0, [r4, 0x10]
lsls r0, 16
cmp r0, 0
bne _0810478C
_0810477C:
bl sub_81040C8
lsls r0, 24
cmp r0, 0
bne _0810478C
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_0810478C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8104764
thumb_func_start sub_8104794
sub_8104794: @ 8104794
push {r4,lr}
adds r3, r0, 0
ldr r1, _081047D4 @ =gSpriteCoordOffsetX
ldrh r0, [r1]
subs r0, 0x8
strh r0, [r1]
ldrh r2, [r3, 0xA]
adds r2, 0x8
strh r2, [r3, 0xA]
ldrh r0, [r3, 0xE]
adds r0, 0x8
strh r0, [r3, 0xE]
movs r1, 0xA
ldrsh r0, [r3, r1]
subs r0, 0x8
movs r1, 0xFF
ands r0, r1
lsrs r4, r0, 3
ldr r1, _081047D8 @ =REG_BG1HOFS
ldr r0, _081047DC @ =0x000001ff
ands r2, r0
strh r2, [r1]
ldrh r0, [r3, 0xE]
lsls r0, 16
asrs r0, 19
cmp r0, 0x19
bgt _081047E0
adds r0, r4, 0
bl sub_8104A88
b _081047E6
.align 2, 0
_081047D4: .4byte gSpriteCoordOffsetX
_081047D8: .4byte REG_BG1HOFS
_081047DC: .4byte 0x000001ff
_081047E0:
ldrh r0, [r3, 0x8]
adds r0, 0x1
strh r0, [r3, 0x8]
_081047E6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8104794
thumb_func_start sub_81047EC
sub_81047EC: @ 81047EC
push {r4-r6,lr}
adds r5, r0, 0
ldr r4, _08104834 @ =0x02000000
movs r6, 0
strb r6, [r4, 0xB]
ldrb r0, [r4, 0x5]
strb r0, [r4, 0xA]
ldr r0, _08104838 @ =gSpriteCoordOffsetX
strh r6, [r0]
ldr r0, _0810483C @ =REG_BG1HOFS
strh r6, [r0]
movs r0, 0x8
strh r0, [r4, 0x1A]
bl sub_810514C
bl sub_81054B8
bl sub_8105524
adds r0, r4, 0
adds r0, 0x60
ldrh r0, [r0]
bl PlayNewMapMusic
ldrb r0, [r4, 0xA]
cmp r0, 0
bne _08104844
ldr r0, _08104840 @ =sub_810434C
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
b _0810485A
.align 2, 0
_08104834: .4byte 0x02000000
_08104838: .4byte gSpriteCoordOffsetX
_0810483C: .4byte REG_BG1HOFS
_08104840: .4byte sub_810434C
_08104844:
movs r0, 0x4
bl sub_8104CAC
bl dp15_jump_random_unknown
strh r0, [r5, 0xA]
strh r6, [r5, 0xC]
strh r6, [r5, 0xE]
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
_0810485A:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81047EC
thumb_func_start sub_8104860
sub_8104860: @ 8104860
push {r4-r6,lr}
adds r4, r0, 0
ldr r5, _0810487C @ =0x02000000
ldrh r0, [r5, 0x1A]
lsls r6, r0, 16
asrs r1, r6, 16
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r1, r0
bne _08104880
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _081048A2
.align 2, 0
_0810487C: .4byte 0x02000000
_08104880:
movs r1, 0x1C
ldrsh r0, [r5, r1]
movs r1, 0x18
bl __modsi3
lsls r0, 16
cmp r0, 0
bne _081048A2
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0x7
ands r0, r1
cmp r0, 0
bne _081048A2
asrs r0, r6, 17
strh r0, [r5, 0x1A]
_081048A2:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8104860
thumb_func_start sub_81048A8
sub_81048A8: @ 81048A8
push {lr}
bl sub_8104E18
lsls r0, 24
cmp r0, 0
beq _081048C2
ldr r0, _081048C8 @ =sub_810434C
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_081048C2:
pop {r0}
bx r0
.align 2, 0
_081048C8: .4byte sub_810434C
thumb_func_end sub_81048A8
thumb_func_start sub_81048CC
sub_81048CC: @ 81048CC
push {r4,r5,lr}
adds r4, r0, 0
bl sub_81054B8
bl sub_81056C0
bl sub_8105804
bl sub_8105854
ldr r5, _08104934 @ =gSprites
ldr r3, _08104938 @ =0x02000000
adds r0, r3, 0
adds r0, 0x4E
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
adds r3, 0x3F
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x5
bl StartSpriteAnimIfDifferent
ldrh r0, [r4, 0x8]
adds r0, 0x1
movs r1, 0
strh r0, [r4, 0x8]
movs r0, 0x4
strh r0, [r4, 0x10]
strh r1, [r4, 0x12]
bl StopMapMusic
ldr r0, _0810493C @ =0x00000187
bl PlayFanfare
movs r0, 0xB2
bl PlaySE
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08104934: .4byte gSprites
_08104938: .4byte 0x02000000
_0810493C: .4byte 0x00000187
thumb_func_end sub_81048CC
thumb_func_start sub_8104940
sub_8104940: @ 8104940
push {r4,r5,lr}
adds r4, r0, 0
ldr r0, _081049B8 @ =gSpriteCoordOffsetY
ldrh r1, [r4, 0x10]
strh r1, [r0]
ldr r0, _081049BC @ =REG_BG1VOFS
strh r1, [r0]
ldrh r1, [r4, 0x12]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810495E
ldrh r0, [r4, 0x10]
negs r0, r0
strh r0, [r4, 0x10]
_0810495E:
ldrh r0, [r4, 0x12]
adds r0, 0x1
strh r0, [r4, 0x12]
movs r1, 0x1F
ands r0, r1
cmp r0, 0
bne _08104974
ldrh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 17
strh r0, [r4, 0x10]
_08104974:
movs r0, 0x10
ldrsh r5, [r4, r0]
cmp r5, 0
bne _081049B0
bl sub_81058A0
bl sub_81058C4
bl sub_8105284
bl sub_81059E8
ldr r2, _081049C0 @ =gSprites
ldr r0, _081049C4 @ =0x02000000
adds r0, 0x4E
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
strh r5, [r4, 0x12]
_081049B0:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_081049B8: .4byte gSpriteCoordOffsetY
_081049BC: .4byte REG_BG1VOFS
_081049C0: .4byte gSprites
_081049C4: .4byte 0x02000000
thumb_func_end sub_8104940
thumb_func_start sub_81049C8
sub_81049C8: @ 81049C8
push {r4,lr}
adds r4, r0, 0
ldr r0, _081049F0 @ =gSpriteCoordOffsetY
movs r1, 0
strh r1, [r0]
ldr r0, _081049F4 @ =REG_BG1VOFS
strh r1, [r0]
bl sub_8105ACC
lsls r0, 24
cmp r0, 0
beq _081049EA
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
bl sub_8105AEC
_081049EA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081049F0: .4byte gSpriteCoordOffsetY
_081049F4: .4byte REG_BG1VOFS
thumb_func_end sub_81049C8
thumb_func_start sub_81049F8
sub_81049F8: @ 81049F8
push {lr}
ldr r0, _08104A30 @ =gSpriteCoordOffsetX
movs r1, 0
strh r1, [r0]
ldr r0, _08104A34 @ =REG_BG1HOFS
strh r1, [r0]
ldr r0, _08104A38 @ =0x02000000
adds r0, 0x60
ldrh r0, [r0]
bl PlayNewMapMusic
bl sub_810514C
bl sub_8105554
bl sub_8105524
bl sub_81059B8
ldr r0, _08104A3C @ =sub_810434C
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
pop {r0}
bx r0
.align 2, 0
_08104A30: .4byte gSpriteCoordOffsetX
_08104A34: .4byte REG_BG1HOFS
_08104A38: .4byte 0x02000000
_08104A3C: .4byte sub_810434C
thumb_func_end sub_81049F8
thumb_func_start sub_8104A40
sub_8104A40: @ 8104A40
push {r4-r7,lr}
movs r3, 0x4
ldr r7, _08104A80 @ =gReelTimeWindowTilemap
lsls r1, 16
asrs r5, r1, 16
lsls r0, 16
asrs r4, r0, 16
ldr r6, _08104A84 @ =0x0600e000
_08104A50:
lsls r2, r3, 16
asrs r2, 16
subs r1, r2, 0x4
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r0, r5, r0
lsls r0, 1
adds r0, r7
ldrh r1, [r0]
lsls r0, r2, 5
adds r0, r4
lsls r0, 1
adds r0, r6
strh r1, [r0]
adds r2, 0x1
lsls r2, 16
lsrs r3, r2, 16
asrs r2, 16
cmp r2, 0xE
ble _08104A50
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08104A80: .4byte gReelTimeWindowTilemap
_08104A84: .4byte 0x0600e000
thumb_func_end sub_8104A40
thumb_func_start sub_8104A88
sub_8104A88: @ 8104A88
push {r4,r5,lr}
movs r2, 0x4
lsls r0, 16
asrs r3, r0, 16
ldr r5, _08104AB4 @ =0x0600e000
movs r4, 0
_08104A94:
lsls r1, r2, 16
asrs r1, 16
lsls r0, r1, 5
adds r0, r3
lsls r0, 1
adds r0, r5
strh r4, [r0]
adds r1, 0x1
lsls r1, 16
lsrs r2, r1, 16
asrs r1, 16
cmp r1, 0xE
ble _08104A94
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08104AB4: .4byte 0x0600e000
thumb_func_end sub_8104A88
thumb_func_start sub_8104AB8
sub_8104AB8: @ 8104AB8
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, _08104AE4 @ =sub_8104B0C
adds r0, r5, 0
movs r1, 0x1
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _08104AE8 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0xA]
bl _call_via_r5
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08104AE4: .4byte sub_8104B0C
_08104AE8: .4byte gTasks
thumb_func_end sub_8104AB8
thumb_func_start sub_8104AEC
sub_8104AEC: @ 8104AEC
push {lr}
ldr r0, _08104B00 @ =sub_8104B0C
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _08104B04
movs r0, 0
b _08104B06
.align 2, 0
_08104B00: .4byte sub_8104B0C
_08104B04:
movs r0, 0x1
_08104B06:
pop {r1}
bx r1
thumb_func_end sub_8104AEC
thumb_func_start sub_8104B0C
sub_8104B0C: @ 8104B0C
push {lr}
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r3, _08104B34 @ =gUnknown_083ECC30
ldr r2, _08104B38 @ =gTasks
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
movs r2, 0x8
ldrsh r1, [r0, r2]
lsls r1, 2
adds r1, r3
ldr r1, [r1]
bl _call_via_r1
pop {r0}
bx r0
.align 2, 0
_08104B34: .4byte gUnknown_083ECC30
_08104B38: .4byte gTasks
thumb_func_end sub_8104B0C
thumb_func_start sub_8104B3C
sub_8104B3C: @ 8104B3C
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8104B3C
thumb_func_start sub_8104B60
sub_8104B60: @ 8104B60
push {lr}
adds r2, r0, 0
ldr r0, _08104B7C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08104B76
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
_08104B76:
pop {r0}
bx r0
.align 2, 0
_08104B7C: .4byte gPaletteFade
thumb_func_end sub_8104B60
thumb_func_start sub_8104B80
sub_8104B80: @ 8104B80
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
bl sub_8104DA4
bl sub_81065DC
ldr r0, _08104BC0 @ =gWindowConfig_81E7144
bl BasicInitMenuWindow
ldr r0, _08104BC4 @ =gOtherText_ReelTime
movs r1, 0xA
movs r2, 0x20
movs r3, 0x1
bl MenuPrint_PixelCoords
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08104BC0: .4byte gWindowConfig_81E7144
_08104BC4: .4byte gOtherText_ReelTime
thumb_func_end sub_8104B80
thumb_func_start sub_8104BC8
sub_8104BC8: @ 8104BC8
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
ldr r0, _08104BF8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x6
ands r0, r1
cmp r0, 0
beq _08104BF0
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
_08104BF0:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08104BF8: .4byte gMain
thumb_func_end sub_8104BC8
thumb_func_start sub_8104BFC
sub_8104BFC: @ 8104BFC
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
bl MenuZeroFillScreen
ldr r0, _08104C3C @ =gWindowConfig_81E7128
bl BasicInitMenuWindow
bl sub_81064B8
ldrb r0, [r4, 0xA]
bl sub_8104CAC
ldr r0, _08104C40 @ =0x02000000
ldrb r0, [r0, 0x2]
bl sub_810423C
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08104C3C: .4byte gWindowConfig_81E7128
_08104C40: .4byte 0x02000000
thumb_func_end sub_8104BFC
thumb_func_start sub_8104C44
sub_8104C44: @ 8104C44
push {lr}
ldr r0, _08104C58 @ =sub_8104B0C
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
pop {r0}
bx r0
.align 2, 0
_08104C58: .4byte sub_8104B0C
thumb_func_end sub_8104C44
thumb_func_start sub_8104C5C
sub_8104C5C: @ 8104C5C
push {lr}
ldr r0, _08104C9C @ =sub_8104E74
movs r1, 0x3
bl CreateTask
lsls r0, 24
lsrs r1, r0, 24
ldr r0, _08104CA0 @ =0x02000000
adds r0, 0x3D
strb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
ldr r1, _08104CA4 @ =gTasks
adds r0, r1
ldr r1, _08104CA8 @ =0x0000ffff
strh r1, [r0, 0xA]
movs r1, 0x4
adds r2, r0, 0
adds r2, 0x8
movs r3, 0x40
_08104C86:
lsls r0, r1, 1
adds r0, r2, r0
strh r3, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0xF
bls _08104C86
pop {r0}
bx r0
.align 2, 0
_08104C9C: .4byte sub_8104E74
_08104CA0: .4byte 0x02000000
_08104CA4: .4byte gTasks
_08104CA8: .4byte 0x0000ffff
thumb_func_end sub_8104C5C
.section .text_8104D30
thumb_func_start sub_8104D30
sub_8104D30: @ 8104D30
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
mov r8, r1
ldr r4, [sp, 0x1C]
lsls r0, 24
lsrs r7, r0, 24
ldr r0, _08104D84 @ =0x02000000
adds r0, 0x3D
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
ldr r1, _08104D88 @ =gTasks
adds r0, r1
mov r12, r0
movs r5, 0x4
lsls r4, 16
asrs r6, r4, 16
lsls r2, 16
lsls r3, 16
_08104D5C:
lsls r0, r5, 1
mov r1, r12
adds r1, 0x8
adds r4, r1, r0
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0x40
bne _08104D8C
str r6, [sp]
adds r0, r7, 0
mov r1, r8
asrs r2, 16
asrs r3, 16
bl sub_8105BF8
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
b _08104D96
.align 2, 0
_08104D84: .4byte 0x02000000
_08104D88: .4byte gTasks
_08104D8C:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0xF
bls _08104D5C
_08104D96:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8104D30
thumb_func_start sub_8104DA4
sub_8104DA4: @ 8104DA4
push {r4-r6,lr}
ldr r0, _08104E04 @ =0x02000000
adds r0, 0x3D
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
ldr r1, _08104E08 @ =gTasks
adds r4, r0, r1
ldrh r1, [r4, 0xA]
ldr r0, _08104E0C @ =0x0000ffff
cmp r1, r0
beq _08104DCE
ldr r0, _08104E10 @ =gUnknown_083ED064
movs r2, 0xA
ldrsh r1, [r4, r2]
lsls r1, 2
adds r1, r0
ldr r0, [r1]
bl _call_via_r0
_08104DCE:
movs r5, 0x4
adds r6, r4, 0
adds r6, 0x8
_08104DD4:
lsls r0, r5, 1
adds r4, r6, r0
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0x40
beq _08104DF4
adds r1, r0, 0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08104E14 @ =gSprites
adds r0, r1
bl DestroySprite
movs r0, 0x40
strh r0, [r4]
_08104DF4:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0xF
bls _08104DD4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08104E04: .4byte 0x02000000
_08104E08: .4byte gTasks
_08104E0C: .4byte 0x0000ffff
_08104E10: .4byte gUnknown_083ED064
_08104E14: .4byte gSprites
thumb_func_end sub_8104DA4
thumb_func_start sub_8104E18
sub_8104E18: @ 8104E18
push {r4,r5,lr}
ldr r0, _08104E54 @ =0x02000000
adds r0, 0x3D
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
ldr r1, _08104E58 @ =gTasks
adds r0, r1
movs r2, 0x4
adds r3, r0, 0
adds r3, 0x8
ldr r4, _08104E5C @ =gSprites
_08104E32:
lsls r0, r2, 1
adds r1, r3, r0
movs r5, 0
ldrsh r0, [r1, r5]
cmp r0, 0x40
beq _08104E60
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
movs r5, 0x3C
ldrsh r0, [r1, r5]
cmp r0, 0
beq _08104E60
movs r0, 0
b _08104E6C
.align 2, 0
_08104E54: .4byte 0x02000000
_08104E58: .4byte gTasks
_08104E5C: .4byte gSprites
_08104E60:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xF
bls _08104E32
movs r0, 0x1
_08104E6C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8104E18
thumb_func_start sub_8104E74
sub_8104E74: @ 8104E74
push {lr}
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r3, _08104E9C @ =gUnknown_083ECC54
ldr r2, _08104EA0 @ =gTasks
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
movs r2, 0x8
ldrsh r1, [r0, r2]
lsls r1, 2
adds r1, r3
ldr r1, [r1]
bl _call_via_r1
pop {r0}
bx r0
.align 2, 0
_08104E9C: .4byte gUnknown_083ECC54
_08104EA0: .4byte gTasks
thumb_func_end sub_8104E74
thumb_func_start nullsub_69
nullsub_69: @ 8104EA4
bx lr
thumb_func_end nullsub_69
thumb_func_start sub_8104EA8
sub_8104EA8: @ 8104EA8
push {r4-r7,lr}
movs r6, 0
movs r0, 0x30
_08104EAE:
movs r4, 0
lsls r5, r0, 16
lsls r7, r6, 16
_08104EB4:
ldr r0, _08104F0C @ =gSpriteTemplate_83ED414
asrs r1, r5, 16
movs r2, 0
movs r3, 0xE
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, _08104F10 @ =gSprites
adds r1, r0
ldrb r0, [r1, 0x5]
movs r2, 0xC
orrs r0, r2
strb r0, [r1, 0x5]
strh r6, [r1, 0x2E]
strh r4, [r1, 0x30]
ldr r0, _08104F14 @ =0x0000ffff
strh r0, [r1, 0x34]
lsls r0, r4, 16
movs r1, 0xC0
lsls r1, 13
adds r0, r1
lsrs r4, r0, 16
asrs r0, 16
cmp r0, 0x77
ble _08104EB4
movs r2, 0x80
lsls r2, 9
adds r1, r7, r2
movs r2, 0xA0
lsls r2, 14
adds r0, r5, r2
lsrs r0, 16
lsrs r6, r1, 16
asrs r1, 16
cmp r1, 0x2
ble _08104EAE
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08104F0C: .4byte gSpriteTemplate_83ED414
_08104F10: .4byte gSprites
_08104F14: .4byte 0x0000ffff
thumb_func_end sub_8104EA8
thumb_func_start sub_8104F18
sub_8104F18: @ 8104F18
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, _08104F88 @ =0x02000000
movs r0, 0x2E
ldrsh r1, [r5, r0]
lsls r1, 1
adds r0, r4, 0
adds r0, 0x1C
adds r1, r0
ldrh r0, [r5, 0x30]
ldrh r1, [r1]
adds r0, r1
strh r0, [r5, 0x32]
movs r1, 0x32
ldrsh r0, [r5, r1]
movs r1, 0x78
bl __modsi3
strh r0, [r5, 0x32]
movs r2, 0x2E
ldrsh r1, [r5, r2]
lsls r1, 1
adds r4, 0x22
adds r1, r4
ldrh r1, [r1]
adds r1, 0x1C
adds r0, r1
strh r0, [r5, 0x22]
ldrh r4, [r5, 0x2E]
lsls r4, 24
lsrs r4, 24
movs r1, 0x32
ldrsh r0, [r5, r1]
movs r1, 0x18
bl __divsi3
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl sub_8102BA4
lsls r0, 24
lsrs r0, 24
bl GetSpriteTileStartByTag
adds r1, r5, 0
adds r1, 0x40
strh r0, [r1]
adds r0, r5, 0
bl SetSpriteSheetFrameTileNum
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08104F88: .4byte 0x02000000
thumb_func_end sub_8104F18
thumb_func_start sub_8104F8C
sub_8104F8C: @ 8104F8C
push {r4-r6,lr}
movs r4, 0xCB
movs r5, 0x1
ldr r6, _08104FF0 @ =0x0000270f
_08104F94:
lsls r4, 16
asrs r4, 16
lsls r5, 16
asrs r5, 16
adds r0, r4, 0
movs r1, 0x17
movs r2, 0
adds r3, r5, 0
bl sub_8104FF4
lsls r0, r5, 2
adds r0, r5
lsls r0, 17
subs r4, 0x7
lsls r4, 16
lsrs r4, 16
lsrs r5, r0, 16
asrs r0, 16
cmp r0, r6
ble _08104F94
movs r4, 0xEB
movs r5, 0x1
ldr r6, _08104FF0 @ =0x0000270f
_08104FC2:
lsls r4, 16
asrs r4, 16
lsls r5, 16
asrs r5, 16
adds r0, r4, 0
movs r1, 0x17
movs r2, 0x1
adds r3, r5, 0
bl sub_8104FF4
lsls r0, r5, 2
adds r0, r5
lsls r0, 17
subs r4, 0x7
lsls r4, 16
lsrs r4, 16
lsrs r5, r0, 16
asrs r0, 16
cmp r0, r6
ble _08104FC2
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08104FF0: .4byte 0x0000270f
thumb_func_end sub_8104F8C
thumb_func_start sub_8104FF4
sub_8104FF4: @ 8104FF4
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r5, r0, 0
adds r6, r1, 0
mov r8, r2
adds r4, r3, 0
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r4, 16
lsrs r4, 16
ldr r0, _08105060 @ =gSpriteTemplate_83ED42C
lsls r5, 16
asrs r5, 16
lsls r6, 16
asrs r6, 16
adds r1, r5, 0
adds r2, r6, 0
movs r3, 0xD
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
ldr r0, _08105064 @ =gSprites
adds r2, r0
ldrb r1, [r2, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r1
movs r1, 0x8
orrs r0, r1
strb r0, [r2, 0x5]
mov r0, r8
strh r0, [r2, 0x2E]
strh r4, [r2, 0x30]
lsls r4, 16
asrs r4, 16
lsls r0, r4, 2
adds r0, r4
lsls r0, 1
strh r0, [r2, 0x32]
ldr r0, _08105068 @ =0x0000ffff
strh r0, [r2, 0x34]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08105060: .4byte gSpriteTemplate_83ED42C
_08105064: .4byte gSprites
_08105068: .4byte 0x0000ffff
thumb_func_end sub_8104FF4
thumb_func_start sub_810506C
sub_810506C: @ 810506C
push {r4,lr}
adds r4, r0, 0
ldr r1, _081050C0 @ =0x02000000
ldrh r2, [r1, 0xC]
movs r3, 0x2E
ldrsh r0, [r4, r3]
cmp r0, 0
beq _0810507E
ldrh r2, [r1, 0xE]
_0810507E:
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, r2
beq _081050B8
strh r2, [r4, 0x34]
ldrh r1, [r4, 0x32]
adds r0, r2, 0
bl __umodsi3
lsls r0, 16
lsrs r2, r0, 16
ldrh r1, [r4, 0x30]
adds r0, r2, 0
bl __udivsi3
lsls r0, 16
movs r3, 0xE0
lsls r3, 11
adds r0, r3
lsrs r2, r0, 16
adds r0, r2, 0
bl GetSpriteTileStartByTag
adds r1, r4, 0
adds r1, 0x40
strh r0, [r1]
adds r0, r4, 0
bl SetSpriteSheetFrameTileNum
_081050B8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081050C0: .4byte 0x02000000
thumb_func_end sub_810506C
thumb_func_start sub_81050C4
sub_81050C4: @ 81050C4
push {lr}
ldr r0, _081050F4 @ =gSpriteTemplate_83ED444
movs r1, 0x58
movs r2, 0x48
movs r3, 0xF
bl CreateSprite
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r2, _081050F8 @ =gSprites
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x5]
movs r2, 0xC
orrs r1, r2
strb r1, [r0, 0x5]
ldr r1, _081050FC @ =gSubspriteTables_83ED704
bl SetSubspriteTables
pop {r0}
bx r0
.align 2, 0
_081050F4: .4byte gSpriteTemplate_83ED444
_081050F8: .4byte gSprites
_081050FC: .4byte gSubspriteTables_83ED704
thumb_func_end sub_81050C4
thumb_func_start sub_8105100
sub_8105100: @ 8105100
push {lr}
ldr r0, _08105140 @ =gSpriteTemplate_83ED45C
movs r1, 0x8C
lsls r1, 1
movs r2, 0x50
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r1, _08105144 @ =gSprites
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r1
ldrb r3, [r2, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r3
movs r3, 0x4
orrs r1, r3
strb r1, [r2, 0x5]
adds r2, 0x3E
ldrb r1, [r2]
movs r3, 0x2
orrs r1, r3
strb r1, [r2]
ldr r1, _08105148 @ =0x02000000
adds r1, 0x3F
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08105140: .4byte gSpriteTemplate_83ED45C
_08105144: .4byte gSprites
_08105148: .4byte 0x02000000
thumb_func_end sub_8105100
thumb_func_start sub_810514C
sub_810514C: @ 810514C
push {lr}
ldr r0, _08105168 @ =0x02000000
adds r0, 0x3F
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0810516C @ =gSprites
adds r0, r1
bl DestroySprite
pop {r0}
bx r0
.align 2, 0
_08105168: .4byte 0x02000000
_0810516C: .4byte gSprites
thumb_func_end sub_810514C
thumb_func_start sub_8105170
sub_8105170: @ 8105170
push {lr}
adds r2, r0, 0
movs r0, 0
strh r0, [r2, 0x24]
strh r0, [r2, 0x26]
adds r0, r2, 0
adds r0, 0x2A
ldrb r0, [r0]
cmp r0, 0x4
bne _081051B6
movs r0, 0x8
strh r0, [r2, 0x24]
strh r0, [r2, 0x26]
adds r0, r2, 0
adds r0, 0x2B
ldrb r0, [r0]
cmp r0, 0
beq _081051A4
adds r0, r2, 0
adds r0, 0x2C
ldrb r1, [r0]
movs r0, 0x3F
ands r0, r1
cmp r0, 0
bne _081051B2
b _081051B6
_081051A4:
adds r0, r2, 0
adds r0, 0x2C
ldrb r1, [r0]
movs r0, 0x3F
ands r0, r1
cmp r0, 0
bne _081051B6
_081051B2:
ldr r0, _081051BC @ =0x0000fff8
strh r0, [r2, 0x26]
_081051B6:
pop {r0}
bx r0
.align 2, 0
_081051BC: .4byte 0x0000fff8
thumb_func_end sub_8105170
thumb_func_start sub_81051C0
sub_81051C0: @ 81051C0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r0, _0810526C @ =gSpriteTemplate_83ED474
movs r7, 0xB8
lsls r7, 1
adds r1, r7, 0
movs r2, 0x34
movs r3, 0x7
bl CreateSprite
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
ldr r1, _08105270 @ =gSprites
mov r10, r1
adds r2, r0, r1
ldrb r1, [r2, 0x5]
movs r5, 0xD
negs r5, r5
adds r0, r5, 0
ands r0, r1
movs r3, 0x4
mov r9, r3
mov r1, r9
orrs r0, r1
strb r0, [r2, 0x5]
adds r1, r2, 0
adds r1, 0x3E
ldrb r0, [r1]
movs r3, 0x2
mov r8, r3
mov r3, r8
orrs r0, r3
strb r0, [r1]
ldr r1, _08105274 @ =gSubspriteTables_83ED73C
adds r0, r2, 0
bl SetSubspriteTables
ldr r6, _08105278 @ =0x02000000
adds r0, r6, 0
adds r0, 0x49
strb r4, [r0]
ldr r0, _0810527C @ =gSpriteTemplate_83ED48C
adds r1, r7, 0
movs r2, 0x54
movs r3, 0x7
bl CreateSprite
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
mov r1, r10
adds r2, r0, r1
ldrb r0, [r2, 0x5]
ands r5, r0
mov r3, r9
orrs r5, r3
strb r5, [r2, 0x5]
adds r1, r2, 0
adds r1, 0x3E
ldrb r0, [r1]
mov r3, r8
orrs r0, r3
strb r0, [r1]
ldr r1, _08105280 @ =gSubspriteTables_83ED75C
adds r0, r2, 0
bl SetSubspriteTables
adds r6, 0x4A
strb r4, [r6]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810526C: .4byte gSpriteTemplate_83ED474
_08105270: .4byte gSprites
_08105274: .4byte gSubspriteTables_83ED73C
_08105278: .4byte 0x02000000
_0810527C: .4byte gSpriteTemplate_83ED48C
_08105280: .4byte gSubspriteTables_83ED75C
thumb_func_end sub_81051C0
thumb_func_start sub_8105284
sub_8105284: @ 8105284
push {r4,lr}
ldr r0, _081052D8 @ =gSpriteTemplate_83ED4A4
ldr r1, _081052DC @ =gSpriteCoordOffsetX
ldrh r2, [r1]
movs r1, 0xA8
subs r1, r2
lsls r1, 16
asrs r1, 16
movs r2, 0x50
movs r3, 0x7
bl CreateSprite
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
ldr r1, _081052E0 @ =gSprites
adds r0, r1
ldrb r2, [r0, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
movs r2, 0x4
orrs r1, r2
strb r1, [r0, 0x5]
adds r3, r0, 0
adds r3, 0x3E
ldrb r1, [r3]
movs r2, 0x2
orrs r1, r2
strb r1, [r3]
ldr r1, _081052E4 @ =gSubspriteTables_83ED78C
bl SetSubspriteTables
ldr r0, _081052E8 @ =0x02000000
adds r0, 0x42
strb r4, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081052D8: .4byte gSpriteTemplate_83ED4A4
_081052DC: .4byte gSpriteCoordOffsetX
_081052E0: .4byte gSprites
_081052E4: .4byte gSubspriteTables_83ED78C
_081052E8: .4byte 0x02000000
thumb_func_end sub_8105284
thumb_func_start sub_81052EC
sub_81052EC: @ 81052EC
push {r4-r7,lr}
movs r4, 0
movs r5, 0
ldr r6, _08105350 @ =0x0200004b
_081052F4:
ldr r0, _08105354 @ =gSpriteTemplate_83ED4BC
movs r1, 0xB8
lsls r1, 1
movs r2, 0
movs r3, 0xA
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r3, r0, 4
adds r3, r0
lsls r3, 2
ldr r1, _08105358 @ =gSprites
adds r3, r1
ldrb r2, [r3, 0x5]
movs r7, 0xD
negs r7, r7
adds r1, r7, 0
ands r2, r1
movs r1, 0x4
orrs r2, r1
strb r2, [r3, 0x5]
movs r1, 0x3E
adds r1, r3
mov r12, r1
ldrb r1, [r1]
movs r2, 0x2
orrs r1, r2
mov r2, r12
strb r1, [r2]
strh r5, [r3, 0x3C]
adds r1, r4, r6
strb r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r5, 16
movs r7, 0xA0
lsls r7, 13
adds r0, r7
lsrs r5, r0, 16
cmp r4, 0x2
bls _081052F4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08105350: .4byte 0x0200004b
_08105354: .4byte gSpriteTemplate_83ED4BC
_08105358: .4byte gSprites
thumb_func_end sub_81052EC
thumb_func_start sub_810535C
sub_810535C: @ 810535C
push {r4,lr}
adds r4, r0, 0
ldr r1, _0810539C @ =0x02000000
ldrh r0, [r4, 0x3C]
ldrh r1, [r1, 0x14]
adds r0, r1
lsls r0, 16
asrs r0, 16
movs r1, 0x28
bl __modsi3
lsls r0, 16
asrs r0, 16
adds r1, r0, 0
adds r1, 0x3B
strh r1, [r4, 0x22]
movs r1, 0x14
bl __divsi3
lsls r0, 16
asrs r0, 16
bl sub_8102C48
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnimIfDifferent
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810539C: .4byte 0x02000000
thumb_func_end sub_810535C
thumb_func_start sub_81053A0
sub_81053A0: @ 81053A0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r1, 0xB8
lsls r1, 1
ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4
movs r2, 0x64
movs r3, 0x9
bl CreateSprite
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
ldr r7, _08105450 @ =gSprites
adds r2, r0, r7
adds r1, r2, 0
adds r1, 0x3E
ldrb r0, [r1]
movs r3, 0x2
mov r10, r3
mov r3, r10
orrs r0, r3
strb r0, [r1]
ldrb r1, [r2, 0x5]
movs r5, 0xD
negs r5, r5
adds r0, r5, 0
ands r0, r1
movs r1, 0x4
mov r8, r1
mov r3, r8
orrs r0, r3
strb r0, [r2, 0x5]
ldr r0, _08105454 @ =gSubspriteTables_83ED7B4
mov r9, r0
adds r0, r2, 0
mov r1, r9
bl SetSubspriteTables
ldr r6, _08105458 @ =0x02000000
adds r0, r6, 0
adds r0, 0x4E
strb r4, [r0]
movs r1, 0x90
lsls r1, 1
ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4
movs r2, 0x68
movs r3, 0x4
bl CreateSprite
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
adds r2, r0, r7
adds r1, r2, 0
adds r1, 0x3E
ldrb r0, [r1]
mov r3, r10
orrs r0, r3
strb r0, [r1]
ldrb r0, [r2, 0x5]
ands r5, r0
mov r0, r8
orrs r5, r0
strb r5, [r2, 0x5]
adds r0, r2, 0
mov r1, r9
bl SetSubspriteTables
adds r6, 0x4F
strb r4, [r6]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810544C: .4byte gSpriteTemplate_83ED4D4
_08105450: .4byte gSprites
_08105454: .4byte gSubspriteTables_83ED7B4
_08105458: .4byte 0x02000000
thumb_func_end sub_81053A0
thumb_func_start sub_810545C
sub_810545C: @ 810545C
push {r4,lr}
ldr r0, _081054A8 @ =gSpriteTemplate_83ED4EC
movs r1, 0xB8
lsls r1, 1
movs r2, 0x4C
movs r3, 0xB
bl CreateSprite
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
ldr r1, _081054AC @ =gSprites
adds r0, r1
adds r3, r0, 0
adds r3, 0x3E
ldrb r1, [r3]
movs r2, 0x2
orrs r1, r2
strb r1, [r3]
ldrb r2, [r0, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
movs r2, 0x4
orrs r1, r2
strb r1, [r0, 0x5]
ldr r1, _081054B0 @ =gSubspriteTables_83ED7D4
bl SetSubspriteTables
ldr r0, _081054B4 @ =0x02000000
adds r0, 0x40
strb r4, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081054A8: .4byte gSpriteTemplate_83ED4EC
_081054AC: .4byte gSprites
_081054B0: .4byte gSubspriteTables_83ED7D4
_081054B4: .4byte 0x02000000
thumb_func_end sub_810545C
thumb_func_start sub_81054B8
sub_81054B8: @ 81054B8
push {r4,r5,lr}
ldr r4, _08105518 @ =0x02000000
adds r0, r4, 0
adds r0, 0x40
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0810551C @ =gSprites
adds r0, r1
bl DestroySprite
movs r5, 0
adds r4, 0x49
_081054D4:
adds r0, r5, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0810551C @ =gSprites
adds r0, r1
bl DestroySprite
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x1
bls _081054D4
movs r5, 0
ldr r4, _08105520 @ =0x0200004b
_081054F4:
adds r0, r5, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0810551C @ =gSprites
adds r0, r1
bl DestroySprite
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x2
bls _081054F4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08105518: .4byte 0x02000000
_0810551C: .4byte gSprites
_08105520: .4byte 0x0200004b
thumb_func_end sub_81054B8
thumb_func_start sub_8105524
sub_8105524: @ 8105524
push {r4,r5,lr}
movs r4, 0
ldr r5, _0810554C @ =0x0200004e
_0810552A:
adds r0, r4, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08105550 @ =gSprites
adds r0, r1
bl DestroySprite
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x1
bls _0810552A
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810554C: .4byte 0x0200004e
_08105550: .4byte gSprites
thumb_func_end sub_8105524
thumb_func_start sub_8105554
sub_8105554: @ 8105554
push {lr}
ldr r0, _08105570 @ =0x02000000
adds r0, 0x42
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08105574 @ =gSprites
adds r0, r1
bl DestroySprite
pop {r0}
bx r0
.align 2, 0
_08105570: .4byte 0x02000000
_08105574: .4byte gSprites
thumb_func_end sub_8105554
thumb_func_start sub_8105578
sub_8105578: @ 8105578
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
ldr r0, _0810561C @ =gSpriteTemplate_83ED504
mov r10, r0
movs r1, 0x98
movs r2, 0x20
movs r3, 0x5
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r2, _08105620 @ =gSprites
mov r9, r2
adds r3, r1, r2
ldrb r2, [r3, 0x5]
movs r4, 0xD
negs r4, r4
adds r1, r4, 0
ands r1, r2
movs r2, 0x4
mov r8, r2
mov r2, r8
orrs r1, r2
strb r1, [r3, 0x5]
adds r5, r3, 0
adds r5, 0x3F
ldrb r1, [r5]
movs r2, 0x1
orrs r1, r2
strb r1, [r5]
ldr r5, _08105624 @ =0x02000000
adds r1, r5, 0
adds r1, 0x50
strb r0, [r1]
movs r0, 0x8
strh r0, [r3, 0x2E]
ldr r0, _08105628 @ =0x0000ffff
strh r0, [r3, 0x30]
movs r0, 0x1
negs r0, r0
strh r0, [r3, 0x32]
movs r6, 0x20
strh r6, [r3, 0x3C]
mov r0, r10
movs r1, 0xB8
movs r2, 0x20
movs r3, 0x5
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
mov r2, r9
adds r3, r1, r2
ldrb r1, [r3, 0x5]
ands r4, r1
mov r1, r8
orrs r4, r1
strb r4, [r3, 0x5]
adds r5, 0x51
strb r0, [r5]
movs r0, 0x1
strh r0, [r3, 0x30]
subs r0, 0x2
strh r0, [r3, 0x32]
strh r6, [r3, 0x3C]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810561C: .4byte gSpriteTemplate_83ED504
_08105620: .4byte gSprites
_08105624: .4byte 0x02000000
_08105628: .4byte 0x0000ffff
thumb_func_end sub_8105578
thumb_func_start sub_810562C
sub_810562C: @ 810562C
push {r4,lr}
adds r2, r0, 0
ldrh r0, [r2, 0x2E]
movs r1, 0x2E
ldrsh r4, [r2, r1]
cmp r4, 0
beq _08105650
subs r0, 0x1
movs r1, 0
strh r0, [r2, 0x2E]
strh r1, [r2, 0x24]
strh r1, [r2, 0x26]
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
b _08105682
_08105650:
adds r3, r2, 0
adds r3, 0x3E
ldrb r1, [r3]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r3]
ldrh r0, [r2, 0x30]
ldrh r1, [r2, 0x24]
adds r0, r1
strh r0, [r2, 0x24]
ldrh r0, [r2, 0x32]
ldrh r1, [r2, 0x26]
adds r0, r1
strh r0, [r2, 0x26]
ldrh r0, [r2, 0x34]
adds r0, 0x1
strh r0, [r2, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x7
ble _08105682
ldrh r0, [r2, 0x3C]
strh r0, [r2, 0x2E]
strh r4, [r2, 0x34]
_08105682:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810562C
thumb_func_start sub_8105688
sub_8105688: @ 8105688
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _081056B8 @ =gSprites
ldr r3, _081056BC @ =0x02000000
adds r1, r3, 0
adds r1, 0x50
ldrb r2, [r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
strh r0, [r1, 0x3C]
adds r3, 0x51
ldrb r2, [r3]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
strh r0, [r1, 0x3C]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081056B8: .4byte gSprites
_081056BC: .4byte 0x02000000
thumb_func_end sub_8105688
thumb_func_start sub_81056C0
sub_81056C0: @ 81056C0
push {r4,r5,lr}
movs r4, 0
ldr r5, _081056E8 @ =0x02000050
_081056C6:
adds r0, r4, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _081056EC @ =gSprites
adds r0, r1
bl DestroySprite
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x1
bls _081056C6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_081056E8: .4byte 0x02000050
_081056EC: .4byte gSprites
thumb_func_end sub_81056C0
thumb_func_start sub_81056F0
sub_81056F0: @ 81056F0
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
ldr r0, _08105778 @ =gSpriteTemplate_83ED51C
mov r8, r0
movs r1, 0x48
movs r2, 0x50
movs r3, 0x3
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r1, _0810577C @ =gSprites
mov r9, r1
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
add r2, r9
ldrb r3, [r2, 0x5]
movs r4, 0xD
negs r4, r4
adds r1, r4, 0
ands r1, r3
movs r6, 0x4
orrs r1, r6
strb r1, [r2, 0x5]
movs r3, 0
movs r1, 0x1
strh r1, [r2, 0x2E]
strh r3, [r2, 0x38]
movs r1, 0x10
strh r1, [r2, 0x3A]
movs r1, 0x8
strh r1, [r2, 0x3C]
ldr r5, _08105780 @ =0x02000000
adds r1, r5, 0
adds r1, 0x52
strb r0, [r1]
mov r0, r8
movs r1, 0x68
movs r2, 0x50
movs r3, 0x3
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r9
ldrb r2, [r1, 0x5]
ands r4, r2
orrs r4, r6
strb r4, [r1, 0x5]
adds r1, 0x3F
ldrb r2, [r1]
movs r3, 0x1
orrs r2, r3
strb r2, [r1]
adds r5, 0x53
strb r0, [r5]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08105778: .4byte gSpriteTemplate_83ED51C
_0810577C: .4byte gSprites
_08105780: .4byte 0x02000000
thumb_func_end sub_81056F0
thumb_func_start sub_8105784
sub_8105784: @ 8105784
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
ldr r1, _081057E0 @ =gUnknown_083ECC58
mov r0, sp
movs r2, 0x2
bl memcpy
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
beq _081057D6
ldrh r0, [r4, 0x3A]
subs r0, 0x1
strh r0, [r4, 0x3A]
lsls r0, 16
cmp r0, 0
bgt _081057D6
movs r0, 0x7
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 4
ldr r2, _081057E4 @ =0x01030000
adds r0, r2
lsrs r0, 16
movs r2, 0x38
ldrsh r1, [r4, r2]
add r1, sp
ldrb r3, [r1]
adds r1, r3, 0
adds r2, r3, 0
bl MultiplyInvertedPaletteRGBComponents
ldrh r0, [r4, 0x38]
adds r0, 0x1
movs r1, 0x1
ands r0, r1
strh r0, [r4, 0x38]
ldrh r0, [r4, 0x3C]
strh r0, [r4, 0x3A]
_081057D6:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081057E0: .4byte gUnknown_083ECC58
_081057E4: .4byte 0x01030000
thumb_func_end sub_8105784
thumb_func_start sub_81057E8
sub_81057E8: @ 81057E8
ldr r3, _081057FC @ =gSprites
ldr r1, _08105800 @ =0x02000000
adds r1, 0x52
ldrb r2, [r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r3
strh r0, [r1, 0x3C]
bx lr
.align 2, 0
_081057FC: .4byte gSprites
_08105800: .4byte 0x02000000
thumb_func_end sub_81057E8
thumb_func_start sub_8105804
sub_8105804: @ 8105804
push {r4,r5,lr}
movs r0, 0x7
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 4
ldr r1, _08105848 @ =0x01030000
adds r0, r1
lsrs r0, 16
movs r1, 0
movs r2, 0
movs r3, 0
bl MultiplyInvertedPaletteRGBComponents
movs r4, 0
ldr r5, _0810584C @ =0x02000052
_08105824:
adds r0, r4, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08105850 @ =gSprites
adds r0, r1
bl DestroySprite
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x1
bls _08105824
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08105848: .4byte 0x01030000
_0810584C: .4byte 0x02000052
_08105850: .4byte gSprites
thumb_func_end sub_8105804
thumb_func_start sub_8105854
sub_8105854: @ 8105854
push {lr}
ldr r0, _08105888 @ =gSpriteTemplate_83ED534
movs r1, 0xA8
movs r2, 0x50
movs r3, 0x6
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r2, _0810588C @ =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r3, [r1, 0x5]
movs r2, 0xD
negs r2, r2
ands r2, r3
movs r3, 0x4
orrs r2, r3
strb r2, [r1, 0x5]
ldr r1, _08105890 @ =0x02000000
adds r1, 0x41
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08105888: .4byte gSpriteTemplate_83ED534
_0810588C: .4byte gSprites
_08105890: .4byte 0x02000000
thumb_func_end sub_8105854
thumb_func_start sub_8105894
sub_8105894: @ 8105894
ldr r1, _0810589C @ =gSpriteCoordOffsetY
ldrh r1, [r1]
strh r1, [r0, 0x26]
bx lr
.align 2, 0
_0810589C: .4byte gSpriteCoordOffsetY
thumb_func_end sub_8105894
thumb_func_start sub_81058A0
sub_81058A0: @ 81058A0
push {lr}
ldr r0, _081058BC @ =0x02000000
adds r0, 0x41
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _081058C0 @ =gSprites
adds r0, r1
bl DestroySprite
pop {r0}
bx r0
.align 2, 0
_081058BC: .4byte 0x02000000
_081058C0: .4byte gSprites
thumb_func_end sub_81058A0
thumb_func_start sub_81058C4
sub_81058C4: @ 81058C4
push {r4-r6,lr}
sub sp, 0x8
ldr r1, _08105938 @ =gUnknown_083ECC5A
mov r0, sp
movs r2, 0x8
bl memcpy
movs r4, 0
ldr r5, _0810593C @ =0x02000054
_081058D6:
ldr r0, _08105940 @ =gSpriteCoordOffsetX
ldrh r0, [r0]
movs r1, 0x50
subs r1, r0
lsls r1, 16
asrs r1, 16
ldr r0, _08105944 @ =gSpriteTemplate_83ED54C
movs r2, 0x44
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r3, r0, 4
adds r3, r0
lsls r3, 2
ldr r1, _08105948 @ =gSprites
adds r3, r1
ldrb r2, [r3, 0x5]
movs r6, 0xD
negs r6, r6
adds r1, r6, 0
ands r2, r1
movs r1, 0x4
orrs r2, r1
strb r2, [r3, 0x5]
movs r1, 0x3E
adds r1, r3
mov r12, r1
ldrb r1, [r1]
movs r2, 0x2
orrs r1, r2
mov r2, r12
strb r1, [r2]
lsls r1, r4, 1
add r1, sp
ldrh r1, [r1]
strh r1, [r3, 0x2E]
adds r1, r4, r5
strb r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _081058D6
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08105938: .4byte gUnknown_083ECC5A
_0810593C: .4byte 0x02000054
_08105940: .4byte gSpriteCoordOffsetX
_08105944: .4byte gSpriteTemplate_83ED54C
_08105948: .4byte gSprites
thumb_func_end sub_81058C4
thumb_func_start sub_810594C
sub_810594C: @ 810594C
push {r4,r5,lr}
adds r5, r0, 0
ldrh r0, [r5, 0x2E]
subs r0, 0x2
movs r4, 0
movs r1, 0xFF
ands r0, r1
strh r0, [r5, 0x2E]
movs r1, 0x2E
ldrsh r0, [r5, r1]
movs r1, 0x14
bl Cos
strh r0, [r5, 0x24]
movs r2, 0x2E
ldrsh r0, [r5, r2]
movs r1, 0x6
bl Sin
strh r0, [r5, 0x26]
adds r1, r5, 0
adds r1, 0x43
strb r4, [r1]
movs r2, 0x2E
ldrsh r0, [r5, r2]
cmp r0, 0x7F
ble _08105986
movs r0, 0x2
strb r0, [r1]
_08105986:
ldrh r0, [r5, 0x30]
adds r0, 0x1
strh r0, [r5, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0xF
ble _081059B0
adds r3, r5, 0
adds r3, 0x3F
ldrb r2, [r3]
lsls r0, r2, 31
lsrs r0, 31
movs r1, 0x1
eors r1, r0
movs r0, 0x2
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
movs r0, 0
strh r0, [r5, 0x30]
_081059B0:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_810594C
thumb_func_start sub_81059B8
sub_81059B8: @ 81059B8
push {r4,r5,lr}
movs r4, 0
ldr r5, _081059E0 @ =0x02000054
_081059BE:
adds r0, r4, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _081059E4 @ =gSprites
adds r0, r1
bl DestroySprite
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _081059BE
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_081059E0: .4byte 0x02000054
_081059E4: .4byte gSprites
thumb_func_end sub_81059B8
thumb_func_start sub_81059E8
sub_81059E8: @ 81059E8
push {r4,lr}
ldr r0, _08105A2C @ =gSpriteTemplate_83ED564
movs r1, 0xA8
movs r2, 0x3C
movs r3, 0x8
bl CreateSprite
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
ldr r1, _08105A30 @ =gSprites
adds r0, r1
ldrb r2, [r0, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
movs r2, 0x4
orrs r1, r2
strb r1, [r0, 0x5]
ldrb r1, [r0, 0x1]
movs r2, 0x3
orrs r1, r2
strb r1, [r0, 0x1]
bl InitSpriteAffineAnim
ldr r0, _08105A34 @ =0x02000000
adds r0, 0x43
strb r4, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08105A2C: .4byte gSpriteTemplate_83ED564
_08105A30: .4byte gSprites
_08105A34: .4byte 0x02000000
thumb_func_end sub_81059E8
thumb_func_start sub_8105A38
sub_8105A38: @ 8105A38
push {lr}
adds r3, r0, 0
ldrh r2, [r3, 0x2E]
movs r1, 0x2E
ldrsh r0, [r3, r1]
cmp r0, 0
bne _08105A5A
adds r0, r3, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08105AB4
adds r0, r2, 0x1
strh r0, [r3, 0x2E]
b _08105AB4
_08105A5A:
cmp r0, 0x1
bne _08105A96
movs r0, 0x3E
adds r0, r3
mov r12, r0
ldrb r2, [r0]
lsls r0, r2, 29
lsrs r0, 31
movs r1, 0x1
eors r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
mov r1, r12
strb r0, [r1]
ldrh r0, [r3, 0x32]
adds r0, 0x1
strh r0, [r3, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0x17
ble _08105AB4
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
movs r0, 0
strh r0, [r3, 0x32]
b _08105AB4
_08105A96:
adds r2, r3, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldrh r0, [r3, 0x32]
adds r0, 0x1
strh r0, [r3, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0xF
ble _08105AB4
movs r0, 0x1
strh r0, [r3, 0x3C]
_08105AB4:
ldrh r0, [r3, 0x30]
movs r1, 0xFF
ands r1, r0
adds r1, 0x10
strh r1, [r3, 0x30]
lsrs r1, 8
ldrh r0, [r3, 0x26]
subs r0, r1
strh r0, [r3, 0x26]
pop {r0}
bx r0
thumb_func_end sub_8105A38
thumb_func_start sub_8105ACC
sub_8105ACC: @ 8105ACC
ldr r2, _08105AE4 @ =gSprites
ldr r0, _08105AE8 @ =0x02000000
adds r0, 0x43
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r0, [r0, 0x3C]
lsls r0, 24
lsrs r0, 24
bx lr
.align 2, 0
_08105AE4: .4byte gSprites
_08105AE8: .4byte 0x02000000
thumb_func_end sub_8105ACC
thumb_func_start sub_8105AEC
sub_8105AEC: @ 8105AEC
push {r4,lr}
ldr r0, _08105B14 @ =0x02000000
adds r0, 0x43
ldrb r0, [r0]
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r0, _08105B18 @ =gSprites
adds r4, r0
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
adds r0, r4, 0
bl DestroySprite
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08105B14: .4byte 0x02000000
_08105B18: .4byte gSprites
thumb_func_end sub_8105AEC
thumb_func_start sub_8105B1C
sub_8105B1C: @ 8105B1C
push {r4,lr}
adds r3, r0, 0
adds r2, r1, 0
ldr r0, _08105B68 @ =gSpriteTemplate_83ED6CC
lsls r3, 16
asrs r3, 16
lsls r2, 16
asrs r2, 16
adds r1, r3, 0
movs r3, 0xC
bl CreateSprite
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
ldr r1, _08105B6C @ =gSprites
adds r0, r1
ldrb r2, [r0, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r2
movs r2, 0x8
orrs r1, r2
strb r1, [r0, 0x5]
ldrb r1, [r0, 0x1]
movs r2, 0x3
orrs r1, r2
strb r1, [r0, 0x1]
bl InitSpriteAffineAnim
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08105B68: .4byte gSpriteTemplate_83ED6CC
_08105B6C: .4byte gSprites
thumb_func_end sub_8105B1C
thumb_func_start sub_8105B70
sub_8105B70: @ 8105B70
push {lr}
adds r2, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08105B84
movs r0, 0x1
strh r0, [r2, 0x3C]
_08105B84:
pop {r0}
bx r0
thumb_func_end sub_8105B70
thumb_func_start sub_8105B88
sub_8105B88: @ 8105B88
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r0, _08105BB0 @ =gSprites
adds r4, r0
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
adds r0, r4, 0
bl DestroySprite
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08105BB0: .4byte gSprites
thumb_func_end sub_8105B88
thumb_func_start sub_8105BB4
sub_8105BB4: @ 8105BB4
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 24
ldr r3, _08105BF0 @ =gUnknown_083ECF0C
lsrs r1, 22
adds r3, r1, r3
ldr r5, [r3]
ldr r3, _08105BF4 @ =gUnknown_083ECE7E
adds r4, r1, r3
movs r6, 0
ldrsh r4, [r4, r6]
adds r3, 0x2
adds r1, r3
movs r6, 0
ldrsh r3, [r1, r6]
lsls r2, 16
asrs r2, 16
str r2, [sp]
adds r1, r5, 0
adds r2, r4, 0
bl sub_8105BF8
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08105BF0: .4byte gUnknown_083ECF0C
_08105BF4: .4byte gUnknown_083ECE7E
thumb_func_end sub_8105BB4
thumb_func_start sub_8105BF8
sub_8105BF8: @ 8105BF8
push {r4-r7,lr}
adds r4, r0, 0
adds r6, r1, 0
adds r1, r2, 0
adds r2, r3, 0
ldr r5, [sp, 0x14]
lsls r4, 24
lsls r5, 16
lsrs r5, 16
ldr r0, _08105C58 @ =gUnknown_083EDB5C
lsrs r4, 22
adds r0, r4, r0
ldr r0, [r0]
lsls r1, 16
asrs r1, 16
lsls r2, 16
asrs r2, 16
movs r3, 0x10
bl CreateSprite
lsls r0, 24
lsrs r0, 24
adds r7, r0, 0
lsls r0, r7, 4
adds r0, r7
lsls r0, 2
ldr r1, _08105C5C @ =gSprites
adds r2, r0, r1
ldrb r0, [r2, 0x5]
movs r1, 0xC
orrs r0, r1
strb r0, [r2, 0x5]
str r6, [r2, 0x1C]
strh r5, [r2, 0x3A]
movs r0, 0x1
strh r0, [r2, 0x3C]
ldr r0, _08105C60 @ =gUnknown_083EDBC4
adds r4, r0
ldr r1, [r4]
cmp r1, 0
beq _08105C50
adds r0, r2, 0
bl SetSubspriteTables
_08105C50:
adds r0, r7, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08105C58: .4byte gUnknown_083EDB5C
_08105C5C: .4byte gSprites
_08105C60: .4byte gUnknown_083EDBC4
thumb_func_end sub_8105BF8
thumb_func_start sub_8105C64
sub_8105C64: @ 8105C64
movs r1, 0
strh r1, [r0, 0x3C]
bx lr
thumb_func_end sub_8105C64
thumb_func_start sub_8105C6C
sub_8105C6C: @ 8105C6C
push {r4,r5,lr}
sub sp, 0x10
adds r4, r0, 0
ldr r1, _08105CE8 @ =gUnknown_083ECC62
mov r0, sp
movs r2, 0x8
bl memcpy
add r5, sp, 0x8
ldr r1, _08105CEC @ =gUnknown_083ECC6A
adds r0, r5, 0
movs r2, 0x8
bl memcpy
ldrh r0, [r4, 0x30]
adds r1, r0, 0x1
strh r1, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0xF
ble _08105CB2
adds r3, r4, 0
adds r3, 0x42
ldrb r2, [r3]
lsls r0, r2, 26
lsrs r0, 26
movs r1, 0x1
eors r1, r0
movs r0, 0x40
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
movs r0, 0
strh r0, [r4, 0x30]
_08105CB2:
movs r0, 0
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
adds r0, r4, 0
adds r0, 0x42
ldrb r1, [r0]
movs r0, 0x3F
ands r0, r1
cmp r0, 0
beq _08105CDE
movs r1, 0x3A
ldrsh r0, [r4, r1]
lsls r0, 1
add r0, sp
ldrh r0, [r0]
strh r0, [r4, 0x24]
movs r1, 0x3A
ldrsh r0, [r4, r1]
lsls r0, 1
adds r0, r5, r0
ldrh r0, [r0]
strh r0, [r4, 0x26]
_08105CDE:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08105CE8: .4byte gUnknown_083ECC62
_08105CEC: .4byte gUnknown_083ECC6A
thumb_func_end sub_8105C6C
thumb_func_start sub_8105CF0
sub_8105CF0: @ 8105CF0
push {lr}
adds r3, r0, 0
adds r3, 0x3F
ldrb r1, [r3]
movs r2, 0x1
orrs r1, r2
strb r1, [r3]
bl sub_8105C6C
pop {r0}
bx r0
thumb_func_end sub_8105CF0
thumb_func_start sub_8105D08
sub_8105D08: @ 8105D08
push {lr}
adds r3, r0, 0
adds r3, 0x3F
ldrb r1, [r3]
movs r2, 0x2
orrs r1, r2
strb r1, [r3]
bl sub_8105C6C
pop {r0}
bx r0
thumb_func_end sub_8105D08
thumb_func_start sub_8105D20
sub_8105D20: @ 8105D20
push {lr}
adds r3, r0, 0
adds r3, 0x3F
ldrb r1, [r3]
movs r2, 0x1
orrs r1, r2
movs r2, 0x2
orrs r1, r2
strb r1, [r3]
bl sub_8105C6C
pop {r0}
bx r0
thumb_func_end sub_8105D20
thumb_func_start sub_8105D3C
sub_8105D3C: @ 8105D3C
push {lr}
adds r2, r0, 0
movs r1, 0x2E
ldrsh r0, [r2, r1]
cmp r0, 0x1
beq _08105D70
cmp r0, 0x1
bgt _08105D52
cmp r0, 0
beq _08105D5C
b _08105DA0
_08105D52:
cmp r0, 0x2
beq _08105D80
cmp r0, 0x3
beq _08105D9C
b _08105DA0
_08105D5C:
ldrh r0, [r2, 0x20]
adds r0, 0x4
strh r0, [r2, 0x20]
lsls r0, 16
asrs r0, 16
cmp r0, 0xCF
ble _08105DA0
movs r0, 0xD0
strh r0, [r2, 0x20]
b _08105D8E
_08105D70:
ldrh r0, [r2, 0x30]
adds r0, 0x1
strh r0, [r2, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5A
ble _08105DA0
b _08105D8E
_08105D80:
ldrh r0, [r2, 0x20]
adds r0, 0x4
strh r0, [r2, 0x20]
lsls r0, 16
ldr r1, _08105D98 @ =0x010f0000
cmp r0, r1
ble _08105DA0
_08105D8E:
ldrh r0, [r2, 0x2E]
adds r0, 0x1
strh r0, [r2, 0x2E]
b _08105DA0
.align 2, 0
_08105D98: .4byte 0x010f0000
_08105D9C:
movs r0, 0
strh r0, [r2, 0x3C]
_08105DA0:
pop {r0}
bx r0
thumb_func_end sub_8105D3C
thumb_func_start sub_8105DA4
sub_8105DA4: @ 8105DA4
push {lr}
adds r1, r0, 0
movs r2, 0x2E
ldrsh r0, [r1, r2]
cmp r0, 0x1
beq _08105DD8
cmp r0, 0x1
bgt _08105DBA
cmp r0, 0
beq _08105DC4
b _08105E02
_08105DBA:
cmp r0, 0x2
beq _08105DE8
cmp r0, 0x3
beq _08105DFE
b _08105E02
_08105DC4:
ldrh r0, [r1, 0x20]
subs r0, 0x4
strh r0, [r1, 0x20]
lsls r0, 16
asrs r0, 16
cmp r0, 0xD0
bgt _08105E02
movs r0, 0xD0
strh r0, [r1, 0x20]
b _08105DF6
_08105DD8:
ldrh r0, [r1, 0x30]
adds r0, 0x1
strh r0, [r1, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5A
ble _08105E02
b _08105DF6
_08105DE8:
ldrh r0, [r1, 0x20]
subs r0, 0x4
strh r0, [r1, 0x20]
lsls r0, 16
asrs r0, 16
cmp r0, 0x90
bgt _08105E02
_08105DF6:
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
b _08105E02
_08105DFE:
movs r0, 0
strh r0, [r1, 0x3C]
_08105E02:
pop {r0}
bx r0
thumb_func_end sub_8105DA4
thumb_func_start sub_8105E08
sub_8105E08: @ 8105E08
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0x5
bhi _08105EAE
lsls r0, 2
ldr r1, _08105E20 @ =_08105E24
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08105E20: .4byte _08105E24
.align 2, 0
_08105E24:
.4byte _08105E3C
.4byte _08105E52
.4byte _08105E70
.4byte _08105E84
.4byte _08105E94
.4byte _08105EAA
_08105E3C:
ldr r0, _08105E6C @ =0x02000000
ldrb r1, [r0, 0xA]
subs r1, 0x1
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
_08105E52:
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
ble _08105EAE
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
movs r0, 0
strh r0, [r4, 0x30]
b _08105EAE
.align 2, 0
_08105E6C: .4byte 0x02000000
_08105E70:
ldrh r0, [r4, 0x20]
adds r0, 0x4
strh r0, [r4, 0x20]
lsls r0, 16
asrs r0, 16
cmp r0, 0xCF
ble _08105EAE
movs r0, 0xD0
strh r0, [r4, 0x20]
b _08105EA2
_08105E84:
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5A
ble _08105EAE
b _08105EA2
_08105E94:
ldrh r0, [r4, 0x20]
adds r0, 0x4
strh r0, [r4, 0x20]
lsls r0, 16
asrs r0, 16
cmp r0, 0xF7
ble _08105EAE
_08105EA2:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
b _08105EAE
_08105EAA:
movs r0, 0
strh r0, [r4, 0x3C]
_08105EAE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8105E08
thumb_func_start sub_8105EB4
sub_8105EB4: @ 8105EB4
push {lr}
adds r3, r0, 0
movs r1, 0x2E
ldrsh r0, [r3, r1]
cmp r0, 0x1
beq _08105EE2
cmp r0, 0x1
bgt _08105ECA
cmp r0, 0
beq _08105ED0
b _08105F50
_08105ECA:
cmp r0, 0x2
beq _08105F00
b _08105F50
_08105ED0:
adds r2, r3, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
_08105EE2:
ldrh r0, [r3, 0x22]
adds r0, 0x8
strh r0, [r3, 0x22]
lsls r0, 16
asrs r0, 16
cmp r0, 0x6F
ble _08105F50
movs r0, 0x70
strh r0, [r3, 0x22]
movs r0, 0x10
strh r0, [r3, 0x30]
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
b _08105F50
_08105F00:
movs r0, 0x32
ldrsh r2, [r3, r0]
cmp r2, 0
bne _08105F46
ldrh r0, [r3, 0x22]
ldrh r1, [r3, 0x30]
subs r0, r1
strh r0, [r3, 0x22]
negs r1, r1
strh r1, [r3, 0x30]
ldrh r0, [r3, 0x34]
adds r0, 0x1
strh r0, [r3, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08105F46
lsls r0, r1, 16
asrs r0, 18
strh r0, [r3, 0x30]
strh r2, [r3, 0x34]
adds r1, r0, 0
cmp r1, 0
bne _08105F46
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
strh r1, [r3, 0x3C]
adds r2, r3, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
_08105F46:
ldrh r0, [r3, 0x32]
adds r0, 0x1
movs r1, 0x7
ands r0, r1
strh r0, [r3, 0x32]
_08105F50:
pop {r0}
bx r0
thumb_func_end sub_8105EB4
thumb_func_start sub_8105F54
sub_8105F54: @ 8105F54
push {lr}
adds r1, r0, 0
movs r2, 0x2E
ldrsh r0, [r1, r2]
cmp r0, 0
beq _08105F66
cmp r0, 0x1
beq _08105F7C
b _08105F98
_08105F66:
ldrh r0, [r1, 0x30]
adds r0, 0x1
strh r0, [r1, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x8
ble _08105F98
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
b _08105F98
_08105F7C:
ldrh r0, [r1, 0x22]
adds r0, 0x2
strh r0, [r1, 0x22]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2F
ble _08105F98
movs r0, 0x30
strh r0, [r1, 0x22]
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
movs r0, 0
strh r0, [r1, 0x3C]
_08105F98:
pop {r0}
bx r0
thumb_func_end sub_8105F54
thumb_func_start sub_8105F9C
sub_8105F9C: @ 8105F9C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08105FAE
cmp r0, 0x1
beq _08106000
b _0810604E
_08105FAE:
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x20
ble _0810604E
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
movs r0, 0x5
strh r0, [r4, 0x30]
ldrb r0, [r4, 0x1]
movs r1, 0x10
orrs r0, r1
strb r0, [r4, 0x1]
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAnim
ldr r2, _08105FFC @ =REG_MOSAIC
ldrh r1, [r4, 0x30]
lsls r0, r1, 4
orrs r0, r1
lsls r0, 8
strh r0, [r2]
b _0810604E
.align 2, 0
_08105FFC: .4byte REG_MOSAIC
_08106000:
ldrh r1, [r4, 0x32]
lsls r1, 16
asrs r1, 24
ldrh r0, [r4, 0x30]
subs r0, r1
strh r0, [r4, 0x30]
lsls r0, 16
cmp r0, 0
bge _08106016
movs r0, 0
strh r0, [r4, 0x30]
_08106016:
ldr r2, _08106054 @ =REG_MOSAIC
ldrh r1, [r4, 0x30]
lsls r0, r1, 4
orrs r0, r1
lsls r0, 8
strh r0, [r2]
ldrh r1, [r4, 0x32]
movs r0, 0xFF
ands r0, r1
adds r0, 0x80
strh r0, [r4, 0x32]
movs r0, 0x30
ldrsh r1, [r4, r0]
cmp r1, 0
bne _0810604E
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
strh r1, [r4, 0x3C]
ldrb r1, [r4, 0x1]
movs r0, 0x11
negs r0, r0
ands r0, r1
strb r0, [r4, 0x1]
adds r0, r4, 0
movs r1, 0
bl StartSpriteAnim
_0810604E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08106054: .4byte REG_MOSAIC
thumb_func_end sub_8105F9C
thumb_func_start sub_8106058
sub_8106058: @ 8106058
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x30
ldrsh r0, [r5, r1]
cmp r0, 0x2
bgt _081060A8
ldr r1, _081060A4 @ =gUnknown_083EDE10
lsls r0, 2
adds r0, r1
ldr r4, [r0]
movs r0, 0x6
bl IndexOfSpritePaletteTag
adds r1, r0, 0
lsls r1, 24
lsrs r1, 4
movs r0, 0x80
lsls r0, 17
adds r1, r0
lsrs r1, 16
adds r0, r4, 0
movs r2, 0x20
bl LoadPalette
ldrh r0, [r5, 0x32]
adds r0, 0x1
strh r0, [r5, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0x3
ble _081060E4
ldrh r0, [r5, 0x30]
adds r0, 0x1
strh r0, [r5, 0x30]
movs r0, 0
strh r0, [r5, 0x32]
b _081060E4
.align 2, 0
_081060A4: .4byte gUnknown_083EDE10
_081060A8:
ldr r1, _081060F8 @ =gUnknown_083EDE10
movs r2, 0x30
ldrsh r0, [r5, r2]
lsls r0, 2
adds r0, r1
ldr r4, [r0]
movs r0, 0x6
bl IndexOfSpritePaletteTag
adds r1, r0, 0
lsls r1, 24
lsrs r1, 4
movs r0, 0x80
lsls r0, 17
adds r1, r0
lsrs r1, 16
adds r0, r4, 0
movs r2, 0x20
bl LoadPalette
ldrh r0, [r5, 0x32]
adds r0, 0x1
movs r1, 0
strh r0, [r5, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0x18
ble _081060E4
strh r1, [r5, 0x30]
strh r1, [r5, 0x32]
_081060E4:
adds r0, r5, 0
movs r1, 0x1
bl StartSpriteAnimIfDifferent
movs r0, 0
strh r0, [r5, 0x3C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_081060F8: .4byte gUnknown_083EDE10
thumb_func_end sub_8106058
thumb_func_start sub_81060FC
sub_81060FC: @ 81060FC
push {r4-r6,lr}
sub sp, 0x30
adds r4, r0, 0
ldr r1, _08106138 @ =gUnknown_083ECC72
mov r0, sp
movs r2, 0x10
bl memcpy
add r6, sp, 0x10
ldr r1, _0810613C @ =gUnknown_083ECC82
adds r0, r6, 0
movs r2, 0x10
bl memcpy
add r5, sp, 0x20
ldr r1, _08106140 @ =gUnknown_083ECC92
adds r0, r5, 0
movs r2, 0x10
bl memcpy
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _08106174
cmp r0, 0x1
bgt _08106144
cmp r0, 0
beq _0810614A
b _081061C0
.align 2, 0
_08106138: .4byte gUnknown_083ECC72
_0810613C: .4byte gUnknown_083ECC82
_08106140: .4byte gUnknown_083ECC92
_08106144:
cmp r0, 0x2
beq _08106188
b _081061C0
_0810614A:
movs r2, 0x3A
ldrsh r0, [r4, r2]
lsls r0, 1
add r0, sp
ldrh r0, [r0]
strh r0, [r4, 0x24]
movs r1, 0x3A
ldrsh r0, [r4, r1]
lsls r0, 1
adds r0, r6, r0
ldrh r0, [r0]
strh r0, [r4, 0x26]
movs r2, 0x3A
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r5, r0
ldrh r0, [r0]
strh r0, [r4, 0x30]
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
_08106174:
ldrh r0, [r4, 0x30]
subs r0, 0x1
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _081061C0
b _081061BA
_08106188:
ldrh r0, [r4, 0x24]
movs r2, 0x24
ldrsh r1, [r4, r2]
cmp r1, 0
ble _08106196
subs r0, 0x4
b _0810619C
_08106196:
cmp r1, 0
bge _0810619E
adds r0, 0x4
_0810619C:
strh r0, [r4, 0x24]
_0810619E:
ldrh r0, [r4, 0x26]
movs r2, 0x26
ldrsh r1, [r4, r2]
cmp r1, 0
ble _081061AC
subs r0, 0x4
b _081061B2
_081061AC:
cmp r1, 0
bge _081061B4
adds r0, 0x4
_081061B2:
strh r0, [r4, 0x26]
_081061B4:
ldr r0, [r4, 0x24]
cmp r0, 0
bne _081061C0
_081061BA:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
_081061C0:
add sp, 0x30
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81060FC
thumb_func_start sub_81061C8
sub_81061C8: @ 81061C8
push {r4,lr}
sub sp, 0x10
adds r4, r0, 0
ldr r1, _0810622C @ =gUnknown_083ECCA2
mov r0, sp
movs r2, 0x10
bl memcpy
ldrh r1, [r4, 0x2E]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0
bne _081061EA
adds r0, r1, 0x1
strh r0, [r4, 0x2E]
movs r0, 0xC
strh r0, [r4, 0x30]
_081061EA:
movs r1, 0x3A
ldrsh r0, [r4, r1]
lsls r0, 1
add r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
movs r2, 0x30
ldrsh r1, [r4, r2]
bl Cos
strh r0, [r4, 0x24]
movs r1, 0x3A
ldrsh r0, [r4, r1]
lsls r0, 1
add r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
movs r2, 0x30
ldrsh r1, [r4, r2]
bl Sin
strh r0, [r4, 0x26]
ldrh r1, [r4, 0x30]
movs r2, 0x30
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08106224
subs r0, r1, 0x1
strh r0, [r4, 0x30]
_08106224:
add sp, 0x10
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810622C: .4byte gUnknown_083ECCA2
thumb_func_end sub_81061C8
thumb_func_start sub_8106230
sub_8106230: @ 8106230
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
cmp r0, 0x1
beq _0810627A
cmp r0, 0x1
bgt _08106248
cmp r0, 0
beq _08106252
b _0810634A
_08106248:
cmp r0, 0x2
beq _081062C4
cmp r0, 0x3
beq _081062FC
b _0810634A
_08106252:
ldr r2, _081062BC @ =0x02000000
adds r1, r2, 0
adds r1, 0x5C
movs r0, 0x2F
strh r0, [r1]
adds r1, 0x2
movs r0, 0x3F
strh r0, [r1]
subs r1, 0x4
ldr r0, _081062C0 @ =0x00002088
strh r0, [r1]
adds r2, r5, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
_0810627A:
ldrh r0, [r5, 0x30]
adds r2, r0, 0x2
strh r2, [r5, 0x30]
adds r0, 0xB2
strh r0, [r5, 0x32]
movs r1, 0xF0
subs r1, r2
strh r1, [r5, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0xD0
ble _08106296
movs r0, 0xD0
strh r0, [r5, 0x32]
_08106296:
movs r1, 0x34
ldrsh r0, [r5, r1]
cmp r0, 0xCF
bgt _081062A2
movs r0, 0xD0
strh r0, [r5, 0x34]
_081062A2:
ldr r2, _081062BC @ =0x02000000
ldrh r0, [r5, 0x32]
lsls r0, 8
ldrh r1, [r5, 0x34]
orrs r0, r1
adds r1, r2, 0
adds r1, 0x58
strh r0, [r1]
movs r1, 0x30
ldrsh r0, [r5, r1]
cmp r0, 0x33
ble _0810634A
b _0810633C
.align 2, 0
_081062BC: .4byte 0x02000000
_081062C0: .4byte 0x00002088
_081062C4:
ldr r6, _08106354 @ =0x02000000
movs r1, 0x12
ldrsh r0, [r6, r1]
cmp r0, 0
beq _0810634A
ldr r1, _08106358 @ =SpriteCallbackDummy
movs r4, 0
str r4, [sp]
movs r0, 0x5
movs r2, 0xD0
movs r3, 0x74
bl sub_8104D30
adds r1, r6, 0
adds r1, 0x58
ldr r0, _0810635C @ =0x0000c0e0
strh r0, [r1]
adds r1, 0x2
movs r0, 0xD1
lsls r0, 7
strh r0, [r1]
adds r1, 0x2
movs r0, 0x2F
strh r0, [r1]
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
strh r4, [r5, 0x30]
_081062FC:
ldrh r0, [r5, 0x30]
adds r2, r0, 0x2
strh r2, [r5, 0x30]
adds r0, 0xC2
strh r0, [r5, 0x32]
movs r1, 0xE0
subs r1, r2
strh r1, [r5, 0x34]
lsls r0, 16
asrs r0, 16
cmp r0, 0xD0
ble _08106318
movs r0, 0xD0
strh r0, [r5, 0x32]
_08106318:
movs r1, 0x34
ldrsh r0, [r5, r1]
cmp r0, 0xCF
bgt _08106324
movs r0, 0xD0
strh r0, [r5, 0x34]
_08106324:
ldr r2, _08106354 @ =0x02000000
ldrh r0, [r5, 0x32]
lsls r0, 8
ldrh r1, [r5, 0x34]
orrs r0, r1
adds r1, r2, 0
adds r1, 0x58
strh r0, [r1]
movs r1, 0x30
ldrsh r0, [r5, r1]
cmp r0, 0xF
ble _0810634A
_0810633C:
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
adds r1, r2, 0
adds r1, 0x5C
movs r0, 0x3F
strh r0, [r1]
_0810634A:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08106354: .4byte 0x02000000
_08106358: .4byte SpriteCallbackDummy
_0810635C: .4byte 0x0000c0e0
thumb_func_end sub_8106230
thumb_func_start nullsub_70
nullsub_70: @ 8106360
bx lr
thumb_func_end nullsub_70
thumb_func_start sub_8106364
sub_8106364: @ 8106364
ldr r1, _0810636C @ =REG_MOSAIC
movs r0, 0
strh r0, [r1]
bx lr
.align 2, 0
_0810636C: .4byte REG_MOSAIC
thumb_func_end sub_8106364
thumb_func_start sub_8106370
sub_8106370: @ 8106370
push {r4,lr}
ldr r0, _08106398 @ =gUnknown_083EDE20
ldr r4, [r0]
movs r0, 0x6
bl IndexOfSpritePaletteTag
adds r1, r0, 0
lsls r1, 24
lsrs r1, 4
movs r0, 0x80
lsls r0, 17
adds r1, r0
lsrs r1, 16
adds r0, r4, 0
movs r2, 0x20
bl LoadPalette
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08106398: .4byte gUnknown_083EDE20
thumb_func_end sub_8106370
thumb_func_start sub_810639C
sub_810639C: @ 810639C
ldr r2, _081063BC @ =0x02000000
adds r1, r2, 0
adds r1, 0x58
movs r0, 0xF0
strh r0, [r1]
adds r1, 0x2
movs r0, 0xA0
strh r0, [r1]
adds r0, r2, 0
adds r0, 0x5C
movs r1, 0x3F
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
bx lr
.align 2, 0
_081063BC: .4byte 0x02000000
thumb_func_end sub_810639C
thumb_func_start sub_81063C0
sub_81063C0: @ 81063C0
push {r4,lr}
bl sub_8106404
ldr r0, _081063F0 @ =gSlotMachineReelTimeLights_Gfx
ldr r4, _081063F4 @ =0x02010000
adds r1, r4, 0
bl sub_800D238
ldr r0, _081063F8 @ =gUnknown_083EDE8C
movs r1, 0xC8
lsls r1, 6
adds r4, r1
adds r1, r4, 0
bl sub_800D238
ldr r0, _081063FC @ =gUnknown_083EDC2C
bl LoadSpriteSheets
ldr r0, _08106400 @ =gSlotMachineSpritePalettes
bl LoadSpritePalettes
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081063F0: .4byte gSlotMachineReelTimeLights_Gfx
_081063F4: .4byte 0x02010000
_081063F8: .4byte gUnknown_083EDE8C
_081063FC: .4byte gUnknown_083EDC2C
_08106400: .4byte gSlotMachineSpritePalettes
thumb_func_end sub_81063C0
thumb_func_start sub_8106404
sub_8106404: @ 8106404
push {r4,r5,lr}
ldr r3, _0810643C @ =0x02010000
movs r2, 0
ldr r5, _08106440 @ =gUnknown_083EDCDC
ldr r0, _08106444 @ =gUnknown_083EDCE4
ldr r4, [r0]
_08106410:
movs r1, 0
adds r2, 0x1
_08106414:
adds r0, r4, r1
ldrb r0, [r0]
strb r0, [r3]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
adds r3, 0x1
cmp r1, 0x1F
bls _08106414
lsls r0, r2, 24
lsrs r2, r0, 24
cmp r2, 0x3F
bls _08106410
adds r0, r5, 0
bl LoadSpriteSheet
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810643C: .4byte 0x02010000
_08106440: .4byte gUnknown_083EDCDC
_08106444: .4byte gUnknown_083EDCE4
thumb_func_end sub_8106404
.align 2, 0 @ Don't pad with nop.