Files
Pokemon-Firered/asm/tm_case.s
T
2019-04-14 18:42:50 -04:00

1210 lines
20 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_8132F60
sub_8132F60: @ 8132F60
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, _08132FA4 @ =gTasks+0x8
adds r6, r0, r1
ldr r0, _08132FA8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08132F8E
movs r1, 0x10
ldrsh r0, [r6, r1]
cmp r0, 0x14
bgt _08132F8E
movs r0, 0x15
strh r0, [r6, 0x10]
bl sub_815AC20
_08132F8E:
movs r3, 0x10
ldrsh r0, [r6, r3]
cmp r0, 0x15
bls _08132F98
b _08133210
_08132F98:
lsls r0, 2
ldr r1, _08132FAC @ =_08132FB0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08132FA4: .4byte gTasks+0x8
_08132FA8: .4byte gMain
_08132FAC: .4byte _08132FB0
.align 2, 0
_08132FB0:
.4byte _08133008
.4byte _08133024
.4byte _08133050
.4byte _08133050
.4byte _08133050
.4byte _08133080
.4byte _08133080
.4byte _08133080
.4byte _081330B0
.4byte _081330E0
.4byte _081330F4
.4byte _08133024
.4byte _08133050
.4byte _08133050
.4byte _08133050
.4byte _08133080
.4byte _08133080
.4byte _08133080
.4byte _0813312C
.4byte _081330E0
.4byte _0813315C
.4byte _08133170
_08133008:
ldr r0, _08133020 @ =0xffff8405
movs r1, 0
str r1, [sp]
movs r1, 0x4
movs r2, 0
movs r3, 0x6
bl BeginNormalPaletteFade
movs r0, 0x1
bl sub_8131F64
b _081331EA
.align 2, 0
_08133020: .4byte 0xffff8405
_08133024:
ldr r0, _0813304C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _08133036
b _08133232
_08133036:
ldrh r0, [r6, 0x12]
adds r0, 0x1
strh r0, [r6, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x65
bgt _08133046
b _08133232
_08133046:
strh r1, [r6, 0x12]
b _081331EA
.align 2, 0
_0813304C: .4byte gPaletteFade
_08133050:
movs r0, 0x12
ldrsh r1, [r6, r0]
cmp r1, 0
bne _08133066
ldr r0, _0813307C @ =gMain
strh r1, [r0, 0x2E]
movs r1, 0x80
strh r1, [r0, 0x30]
ldrb r0, [r6]
bl ListMenuHandleInput
_08133066:
ldrh r0, [r6, 0x12]
adds r0, 0x1
strh r0, [r6, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x65
bgt _08133076
b _08133232
_08133076:
movs r0, 0
strh r0, [r6, 0x12]
b _081331EA
.align 2, 0
_0813307C: .4byte gMain
_08133080:
movs r3, 0x12
ldrsh r1, [r6, r3]
cmp r1, 0
bne _08133096
ldr r0, _081330AC @ =gMain
strh r1, [r0, 0x2E]
movs r1, 0x40
strh r1, [r0, 0x30]
ldrb r0, [r6]
bl ListMenuHandleInput
_08133096:
ldrh r0, [r6, 0x12]
adds r0, 0x1
strh r0, [r6, 0x12]
lsls r0, 16
asrs r0, 16
cmp r0, 0x65
bgt _081330A6
b _08133232
_081330A6:
movs r0, 0
strh r0, [r6, 0x12]
b _081331EA
.align 2, 0
_081330AC: .4byte gMain
_081330B0:
movs r0, 0x1
bl sub_8131F64
ldr r2, _081330D4 @ =gUnknown_841C587
adds r0, r4, 0
movs r1, 0x4
movs r3, 0
bl sub_813337C
ldr r1, _081330D8 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _081330DC @ =sub_8132F60
str r1, [r0]
b _081331EA
.align 2, 0
_081330D4: .4byte gUnknown_841C587
_081330D8: .4byte gTasks
_081330DC: .4byte sub_8132F60
_081330E0:
bl RunTextPrinters
movs r0, 0x6
bl IsTextPrinterActive
lsls r0, 16
cmp r0, 0
beq _081330F2
b _08133232
_081330F2:
b _081331EA
_081330F4:
ldr r0, _08133128 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _08133102
b _08133232
_08133102:
movs r0, 0
bl sub_8131F64
movs r0, 0x80
lsls r0, 3
movs r1, 0
str r1, [sp]
movs r2, 0x6
movs r3, 0
bl BeginNormalPaletteFade
movs r0, 0x6
movs r1, 0
bl sub_810F260
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
b _081331EA
.align 2, 0
_08133128: .4byte gMain
_0813312C:
movs r0, 0x1
bl sub_8131F64
ldr r2, _08133150 @ =gUnknown_841C693
adds r0, r4, 0
movs r1, 0x4
movs r3, 0
bl sub_813337C
ldr r1, _08133154 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _08133158 @ =sub_8132F60
str r1, [r0]
b _081331EA
.align 2, 0
_08133150: .4byte gUnknown_841C693
_08133154: .4byte gTasks
_08133158: .4byte sub_8132F60
_0813315C:
ldr r0, _0813316C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _08133232
b _081331EA
.align 2, 0
_0813316C: .4byte gMain
_08133170:
ldr r0, _081331F4 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0
bne _08133232
ldr r5, _081331F8 @ =gSaveBlock1Ptr
ldr r0, [r5]
ldr r1, _081331FC @ =0x00000464
adds r0, r1
ldr r4, _08133200 @ =gUnknown_203B11C
ldr r1, [r4]
movs r2, 0xE8
bl memcpy
ldr r0, [r5]
movs r3, 0xEE
lsls r3, 2
adds r0, r3
ldr r1, [r4]
adds r1, 0xE8
movs r2, 0x78
bl memcpy
ldrb r0, [r6]
movs r1, 0
movs r2, 0
bl sub_810713C
ldr r2, _08133204 @ =gUnknown_203B10C
ldr r0, [r4]
movs r3, 0xB0
lsls r3, 1
adds r1, r0, r3
ldrh r1, [r1]
strh r1, [r2, 0x8]
adds r3, 0x2
adds r1, r0, r3
ldrh r1, [r1]
strh r1, [r2, 0xA]
bl Free
ldr r0, _08133208 @ =gPlttBufferFaded
ldr r1, _0813320C @ =gPlttBufferUnfaded
movs r2, 0x80
lsls r2, 1
bl CpuFastSet
bl sub_8108CF0
movs r0, 0x1
negs r0, r0
movs r1, 0x2
negs r1, r1
str r7, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
_081331EA:
ldrh r0, [r6, 0x10]
adds r0, 0x1
strh r0, [r6, 0x10]
b _08133232
.align 2, 0
_081331F4: .4byte gPaletteFade
_081331F8: .4byte gSaveBlock1Ptr
_081331FC: .4byte 0x00000464
_08133200: .4byte gUnknown_203B11C
_08133204: .4byte gUnknown_203B10C
_08133208: .4byte gPlttBufferFaded
_0813320C: .4byte gPlttBufferUnfaded
_08133210:
ldr r0, _0813323C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08133232
ldr r0, _08133240 @ =gUnknown_203B10C
ldr r0, [r0]
bl SetMainCallback2
bl sub_813208C
bl sub_81321D4
adds r0, r4, 0
bl DestroyTask
_08133232:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0813323C: .4byte gPaletteFade
_08133240: .4byte gUnknown_203B10C
thumb_func_end sub_8132F60
thumb_func_start sub_8133244
sub_8133244: @ 8133244
push {r4,lr}
ldr r0, _081332E0 @ =gUnknown_8463190
bl InitWindows
bl DeactivateAllTextPrinters
movs r0, 0
movs r1, 0x5B
movs r2, 0xE0
bl sub_815001C
movs r0, 0
movs r1, 0x64
movs r2, 0xB0
bl sub_814FEAC
movs r0, 0
movs r1, 0x78
movs r2, 0xD0
bl sub_814FF2C
ldr r4, _081332E4 @ =gUnknown_841F408
adds r0, r4, 0
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
adds r0, r4, 0
movs r1, 0xA0
movs r2, 0x20
bl LoadPalette
ldr r4, _081332E8 @ =gUnknown_8463180
adds r0, r4, 0
movs r1, 0xF6
movs r2, 0x4
bl LoadPalette
adds r0, r4, 0
movs r1, 0xD6
movs r2, 0x4
bl LoadPalette
movs r0, 0xC0
movs r1, 0x1
bl sub_8107D38
movs r4, 0
_081332A4:
adds r0, r4, 0
movs r1, 0
bl FillWindowPixelBuffer
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x8
bls _081332A4
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x3
bl PutWindowTilemap
movs r0, 0x4
bl PutWindowTilemap
movs r0, 0x5
bl PutWindowTilemap
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081332E0: .4byte gUnknown_8463190
_081332E4: .4byte gUnknown_841F408
_081332E8: .4byte gUnknown_8463180
thumb_func_end sub_8133244
thumb_func_start sub_81332EC
sub_81332EC: @ 81332EC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
mov r9, r3
ldr r3, [sp, 0x30]
ldr r4, [sp, 0x34]
ldr r6, [sp, 0x38]
ldr r5, [sp, 0x3C]
mov r8, r5
ldr r5, [sp, 0x40]
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
mov r7, r9
lsls r7, 24
lsrs r7, 24
mov r9, r7
lsls r3, 24
lsrs r3, 24
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r6, [sp, 0x4]
lsls r4, r5, 1
adds r4, r5
ldr r5, _08133350 @ =gUnknown_8463184
adds r4, r5
str r4, [sp, 0x8]
mov r4, r8
lsls r4, 24
asrs r4, 24
str r4, [sp, 0xC]
str r2, [sp, 0x10]
mov r2, r9
bl AddTextPrinterParametrized2
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08133350: .4byte gUnknown_8463184
thumb_func_end sub_81332EC
thumb_func_start sub_8133354
sub_8133354: @ 8133354
push {lr}
lsls r0, 24
lsrs r0, 24
movs r1, 0
movs r2, 0x5B
movs r3, 0xE
bl SetWindowBorderStyle
pop {r0}
bx r0
thumb_func_end sub_8133354
thumb_func_start sub_8133368
sub_8133368: @ 8133368
push {lr}
lsls r0, 24
lsrs r0, 24
movs r1, 0
movs r2, 0x78
movs r3, 0xD
bl SetWindowBorderStyle
pop {r0}
bx r0
thumb_func_end sub_8133368
thumb_func_start sub_813337C
sub_813337C: @ 813337C
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x10
adds r5, r0, 0
adds r4, r1, 0
adds r6, r2, 0
mov r8, r3
lsls r5, 24
lsrs r5, 24
lsls r4, 24
lsrs r4, 24
bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
str r4, [sp]
str r0, [sp, 0x4]
str r6, [sp, 0x8]
mov r0, r8
str r0, [sp, 0xC]
adds r0, r5, 0
movs r1, 0x6
movs r2, 0x64
movs r3, 0xB
bl DisplayMessageAndContinueTask
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_813337C
thumb_func_start sub_81333C4
sub_81333C4: @ 81333C4
push {r4,lr}
sub sp, 0xC
ldr r4, _081333FC @ =gUnknown_84166D3
movs r0, 0x1
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
movs r2, 0x48
subs r2, r0
lsrs r2, 1
lsls r2, 24
lsrs r2, 24
ldr r0, _08133400 @ =gUnknown_8463184
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x3
movs r1, 0x1
movs r3, 0x1
bl box_print
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081333FC: .4byte gUnknown_84166D3
_08133400: .4byte gUnknown_8463184
thumb_func_end sub_81333C4
thumb_func_start sub_8133404
sub_8133404: @ 8133404
push {lr}
movs r0, 0x4
movs r1, 0x13
movs r2, 0
movs r3, 0
bl sub_8107D68
movs r0, 0x4
movs r1, 0x14
movs r2, 0
movs r3, 0xC
bl sub_8107D68
movs r0, 0x4
movs r1, 0x15
movs r2, 0
movs r3, 0x18
bl sub_8107D68
movs r0, 0x4
movs r1, 0x16
movs r2, 0
movs r3, 0x24
bl sub_8107D68
movs r0, 0x4
movs r1, 0x2
bl CopyWindowToVram
pop {r0}
bx r0
thumb_func_end sub_8133404
thumb_func_start sub_8133444
sub_8133444: @ 8133444
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0x28
str r0, [sp]
movs r0, 0x30
str r0, [sp, 0x4]
movs r0, 0x5
movs r1, 0
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
cmp r4, 0
bne _081334A8
movs r4, 0
movs r5, 0
_0813346E:
lsls r0, r4, 1
adds r0, r4
lsls r0, 26
lsrs r0, 24
str r0, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0xFF
str r0, [sp, 0xC]
movs r0, 0x3
str r0, [sp, 0x10]
movs r0, 0x5
movs r1, 0x3
ldr r2, _081334A4 @ =gUnknown_8416213
movs r3, 0x7
bl sub_81332EC
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _0813346E
movs r0, 0x5
movs r1, 0x2
bl CopyWindowToVram
b _0813359A
.align 2, 0
_081334A4: .4byte gUnknown_8416213
_081334A8:
adds r0, r4, 0
bl ItemIdToBattleMoveId
lsls r0, 16
lsrs r7, r0, 16
ldr r1, _081334D8 @ =gBattleMoves
lsls r0, r7, 1
adds r0, r7
lsls r0, 2
adds r5, r0, r1
ldrb r1, [r5, 0x2]
adds r1, 0x1
lsls r1, 24
lsrs r1, 24
movs r0, 0x5
movs r2, 0
movs r3, 0
bl sub_8107D68
ldrb r0, [r5, 0x1]
cmp r0, 0x1
bhi _081334E0
ldr r2, _081334DC @ =gUnknown_8416213
b _081334F0
.align 2, 0
_081334D8: .4byte gBattleMoves
_081334DC: .4byte gUnknown_8416213
_081334E0:
ldr r4, _08133524 @ =gStringVar1
ldrb r1, [r5, 0x1]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
adds r2, r4, 0
_081334F0:
movs r0, 0xC
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
str r0, [sp, 0x8]
movs r0, 0xFF
str r0, [sp, 0xC]
movs r0, 0x3
str r0, [sp, 0x10]
movs r0, 0x5
movs r1, 0x3
movs r3, 0x7
bl sub_81332EC
ldr r2, _08133528 @ =gBattleMoves
lsls r1, r7, 1
adds r0, r1, r7
lsls r0, 2
adds r2, r0, r2
ldrb r0, [r2, 0x3]
adds r6, r1, 0
cmp r0, 0
bne _08133530
ldr r2, _0813352C @ =gUnknown_8416213
b _08133540
.align 2, 0
_08133524: .4byte gStringVar1
_08133528: .4byte gBattleMoves
_0813352C: .4byte gUnknown_8416213
_08133530:
ldr r4, _081335A8 @ =gStringVar1
ldrb r1, [r2, 0x3]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
adds r2, r4, 0
_08133540:
movs r0, 0x18
str r0, [sp]
movs r4, 0
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0xFF
mov r8, r0
str r0, [sp, 0xC]
movs r0, 0x3
mov r9, r0
str r0, [sp, 0x10]
movs r0, 0x5
movs r1, 0x3
movs r3, 0x7
bl sub_81332EC
ldr r5, _081335A8 @ =gStringVar1
ldr r1, _081335AC @ =gBattleMoves
adds r0, r6, r7
lsls r0, 2
adds r0, r1
ldrb r1, [r0, 0x4]
adds r0, r5, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
movs r0, 0x24
str r0, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
mov r0, r8
str r0, [sp, 0xC]
mov r0, r9
str r0, [sp, 0x10]
movs r0, 0x5
movs r1, 0x3
adds r2, r5, 0
movs r3, 0x7
bl sub_81332EC
movs r0, 0x5
movs r1, 0x2
bl CopyWindowToVram
_0813359A:
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_081335A8: .4byte gStringVar1
_081335AC: .4byte gBattleMoves
thumb_func_end sub_8133444
thumb_func_start sub_81335B0
sub_81335B0: @ 81335B0
push {r4,lr}
sub sp, 0x8
adds r4, r1, 0
adds r3, r2, 0
lsls r0, 24
lsrs r0, 24
lsls r4, 24
lsrs r4, 24
lsls r3, 24
lsrs r3, 24
ldr r1, _081335DC @ =gUnknown_8E99118
movs r2, 0x10
str r2, [sp]
movs r2, 0xC
str r2, [sp, 0x4]
adds r2, r4, 0
bl BlitBitmapToWindow
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081335DC: .4byte gUnknown_8E99118
thumb_func_end sub_81335B0
thumb_func_start sub_81335E0
sub_81335E0: @ 81335E0
push {lr}
ldr r0, _08133600 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
adds r0, r1
bl GetMoney
adds r3, r0, 0
movs r0, 0x8
movs r1, 0x78
movs r2, 0xD
bl PrintMoneyAmountInMoneyBoxWithBorder
pop {r0}
bx r0
.align 2, 0
_08133600: .4byte gSaveBlock1Ptr
thumb_func_end sub_81335E0
thumb_func_start sub_8133604
sub_8133604: @ 8133604
push {lr}
sub sp, 0x10
adds r3, r1, 0
lsls r0, 24
lsrs r0, 24
ldr r1, _0813362C @ =gUnknown_84631E0
movs r2, 0x2
str r2, [sp]
movs r2, 0x5B
str r2, [sp, 0x4]
movs r2, 0xE
str r2, [sp, 0x8]
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
bl sub_80BF5D0
add sp, 0x10
pop {r0}
bx r0
.align 2, 0
_0813362C: .4byte gUnknown_84631E0
thumb_func_end sub_8133604
thumb_func_start sub_8133630
sub_8133630: @ 8133630
push {r4,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r1, 24
ldrb r0, [r4]
cmp r0, 0xFF
bne _08133656
lsls r0, r1, 3
ldr r1, _08133660 @ =gUnknown_84631E8
adds r0, r1
bl AddWindow
strb r0, [r4]
ldrb r0, [r4]
bl sub_8133354
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
_08133656:
ldrb r0, [r4]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08133660: .4byte gUnknown_84631E8
thumb_func_end sub_8133630
thumb_func_start sub_8133664
sub_8133664: @ 8133664
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
movs r1, 0
bl sub_810F4D8
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
bl RemoveWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
movs r0, 0xFF
strb r0, [r4]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8133664
thumb_func_start sub_813368C
sub_813368C: @ 813368C
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 16
lsrs r6, r0, 16
ldr r0, _081336E8 @ =gUnknown_8463220
movs r1, 0x29
movs r2, 0x2E
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r7, r0, 24
cmp r6, 0
beq _081336F4
adds r5, r6, 0
subs r5, 0x21
lsls r5, 24
lsrs r5, 24
lsls r4, r7, 4
adds r4, r7
lsls r4, 2
ldr r0, _081336EC @ =gSprites
adds r4, r0
adds r0, r4, 0
adds r1, r5, 0
bl sub_8133714
ldr r0, _081336F0 @ =gBattleMoves
mov r8, r0
adds r0, r6, 0
bl ItemIdToBattleMoveId
lsls r0, 16
lsrs r0, 16
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
add r1, r8
ldrb r0, [r1, 0x2]
bl sub_8133730
adds r0, r4, 0
adds r1, r5, 0
b _08133700
.align 2, 0
_081336E8: .4byte gUnknown_8463220
_081336EC: .4byte gSprites
_081336F0: .4byte gBattleMoves
_081336F4:
lsls r0, r7, 4
adds r0, r7
lsls r0, 2
ldr r1, _08133710 @ =gSprites
adds r0, r1
movs r1, 0xFF
_08133700:
bl sub_8133790
adds r0, r7, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08133710: .4byte gSprites
thumb_func_end sub_813368C
thumb_func_start sub_8133714
sub_8133714: @ 8133714
push {lr}
lsls r1, 24
lsrs r1, 24
cmp r1, 0x31
bls _08133726
movs r1, 0x1
bl StartSpriteAnim
b _0813372C
_08133726:
movs r1, 0
bl StartSpriteAnim
_0813372C:
pop {r0}
bx r0
thumb_func_end sub_8133714
thumb_func_start sub_8133730
sub_8133730: @ 8133730
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0xC8
lsls r0, 1
bl IndexOfSpritePaletteTag
lsls r0, 28
lsrs r5, r0, 24
ldr r2, _08133784 @ =gUnknown_203B12C
ldr r0, _08133788 @ =gUnknown_8463238
lsls r4, 1
adds r4, r0
ldrh r1, [r4]
lsls r1, 1
ldr r0, [r2]
adds r0, r1
movs r1, 0x80
lsls r1, 1
adds r2, r1, 0
adds r1, r5, 0
orrs r1, r2
movs r2, 0x20
bl LoadPalette
ldr r0, _0813378C @ =gUnknown_203B10C
ldrb r0, [r0, 0x4]
cmp r0, 0x4
bne _0813377C
adds r1, r5, 0
adds r1, 0x10
movs r0, 0x1
lsls r0, r1
movs r1, 0x4
movs r2, 0
bl BlendPalettes
_0813377C:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08133784: .4byte gUnknown_203B12C
_08133788: .4byte gUnknown_8463238
_0813378C: .4byte gUnknown_203B10C
thumb_func_end sub_8133730
thumb_func_start sub_8133790
sub_8133790: @ 8133790
push {r4-r6,lr}
adds r5, r0, 0
lsls r1, 24
lsrs r4, r1, 24
cmp r4, 0xFF
bne _081337A6
movs r6, 0x1B
movs r1, 0x36
movs r0, 0x14
strh r0, [r5, 0x26]
b _081337D8
_081337A6:
cmp r4, 0x31
bls _081337B0
adds r0, r4, 0
subs r0, 0x32
b _081337B4
_081337B0:
adds r0, r4, 0
adds r0, 0x8
_081337B4:
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 3
subs r0, r4
lsls r0, 9
movs r1, 0x3A
bl __divsi3
asrs r0, 8
movs r1, 0x29
subs r6, r1, r0
lsls r0, r4, 11
movs r1, 0x3A
bl __divsi3
asrs r0, 8
adds r1, r0, 0
adds r1, 0x2E
_081337D8:
strh r6, [r5, 0x20]
strh r1, [r5, 0x22]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8133790
thumb_func_start sub_81337E4
sub_81337E4: @ 81337E4
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r3, _08133808 @ =gSprites
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r0, r2, r3
movs r4, 0
strh r1, [r0, 0x2E]
strh r4, [r0, 0x30]
adds r3, 0x1C
adds r2, r3
ldr r0, _0813380C @ =sub_8133810
str r0, [r2]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08133808: .4byte gSprites
_0813380C: .4byte sub_8133810
thumb_func_end sub_81337E4
thumb_func_start sub_8133810
sub_8133810: @ 8133810
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x30
ldrsh r0, [r5, r1]
cmp r0, 0
beq _08133822
cmp r0, 0x1
beq _08133886
b _081338A2
_08133822:
ldrh r1, [r5, 0x26]
movs r2, 0x26
ldrsh r0, [r5, r2]
cmp r0, 0x13
ble _08133880
movs r1, 0x2E
ldrsh r0, [r5, r1]
cmp r0, 0
beq _08133890
ldrh r0, [r5, 0x30]
adds r0, 0x1
strh r0, [r5, 0x30]
ldr r4, _08133878 @ =gBattleMoves
ldrh r0, [r5, 0x2E]
bl ItemIdToBattleMoveId
lsls r0, 16
lsrs r0, 16
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r4
ldrb r0, [r1, 0x2]
bl sub_8133730
ldr r2, _0813387C @ =0xfffffedf
adds r1, r2, 0
ldrh r0, [r5, 0x2E]
adds r1, r0
strh r1, [r5, 0x2E]
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl sub_8133714
ldrh r1, [r5, 0x2E]
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl sub_8133790
b _081338A2
.align 2, 0
_08133878: .4byte gBattleMoves
_0813387C: .4byte 0xfffffedf
_08133880:
adds r0, r1, 0
adds r0, 0xA
b _081338A0
_08133886:
ldrh r1, [r5, 0x26]
movs r2, 0x26
ldrsh r0, [r5, r2]
cmp r0, 0
bgt _0813389C
_08133890:
ldr r0, _08133898 @ =SpriteCallbackDummy
str r0, [r5, 0x1C]
b _081338A2
.align 2, 0
_08133898: .4byte SpriteCallbackDummy
_0813389C:
adds r0, r1, 0
subs r0, 0xA
_081338A0:
strh r0, [r5, 0x26]
_081338A2:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8133810
thumb_func_start sub_81338A8
sub_81338A8: @ 81338A8
push {r4,r5,lr}
sub sp, 0x8
ldr r4, _081338F4 @ =gUnknown_203B12C
movs r5, 0x88
lsls r5, 2
adds r0, r5, 0
bl Alloc
adds r1, r0, 0
str r1, [r4]
ldr r0, _081338F8 @ =gUnknown_8E84F20
bl LZDecompressWram
ldr r0, _081338FC @ =gUnknown_8E85068
ldr r1, [r4]
movs r2, 0x80
lsls r2, 2
adds r1, r2
bl LZDecompressWram
ldr r0, [r4]
adds r0, r5
str r0, [sp]
ldr r1, _08133900 @ =0xffff0000
ldr r0, [sp, 0x4]
ands r0, r1
movs r1, 0xC8
lsls r1, 1
orrs r0, r1
str r0, [sp, 0x4]
mov r0, sp
bl LoadSpritePalette
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_081338F4: .4byte gUnknown_203B12C
_081338F8: .4byte gUnknown_8E84F20
_081338FC: .4byte gUnknown_8E85068
_08133900: .4byte 0xffff0000
thumb_func_end sub_81338A8
.align 2, 0 @ Don't pad with nop.