mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-06 13:47:12 -05:00
869 lines
14 KiB
ArmAsm
869 lines
14 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_814F19C
|
|
sub_814F19C: @ 814F19C
|
|
push {lr}
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0814F1BC
|
|
bl RunTasks
|
|
bl RunTextPrinters
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
_0814F1BC:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_814F19C
|
|
|
|
thumb_func_start sub_814F1C0
|
|
sub_814F1C0: @ 814F1C0
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_814F1C0
|
|
|
|
thumb_func_start sub_814F1D4
|
|
sub_814F1D4: @ 814F1D4
|
|
push {lr}
|
|
ldr r0, _0814F1E0 @ =sub_814F1E4
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0814F1E0: .4byte sub_814F1E4
|
|
thumb_func_end sub_814F1D4
|
|
|
|
thumb_func_start sub_814F1E4
|
|
sub_814F1E4: @ 814F1E4
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r5, _0814F308 @ =gUnknown_3002040
|
|
movs r0, 0x6C
|
|
bl AllocZeroed
|
|
str r0, [r5]
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, _0814F30C @ =gUnknown_846FA74
|
|
movs r0, 0
|
|
movs r2, 0x2
|
|
bl InitBgsFromTemplates
|
|
movs r4, 0x80
|
|
lsls r4, 4
|
|
adds r0, r4, 0
|
|
bl Alloc
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
bl SetBgTilemapBuffer
|
|
adds r0, r4, 0
|
|
bl Alloc
|
|
adds r1, r0, 0
|
|
movs r0, 0
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, _0814F310 @ =gUnknown_846F6D0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80F696C
|
|
ldr r1, _0814F314 @ =gUnknown_846F8E0
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
ldr r0, _0814F318 @ =gUnknown_846FA7C
|
|
bl InitWindows
|
|
bl DeactivateAllTextPrinters
|
|
bl ResetPaletteFade
|
|
bl ResetSpriteData
|
|
bl ResetTasks
|
|
bl remove_some_task
|
|
bl m4aSoundVSyncOn
|
|
ldr r0, _0814F31C @ =sub_814F1C0
|
|
bl SetVBlankCallback
|
|
ldr r0, _0814F320 @ =sub_814F46C
|
|
movs r1, 0
|
|
bl CreateTask
|
|
ldr r1, [r5]
|
|
adds r1, 0x60
|
|
strb r0, [r1]
|
|
bl sub_8116DE0
|
|
ldr r1, [r5]
|
|
adds r1, 0x61
|
|
strb r0, [r1]
|
|
ldr r1, [r5]
|
|
movs r0, 0x1
|
|
str r0, [r1, 0x1C]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
ldr r0, _0814F324 @ =gUnknown_846F4D0
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
movs r0, 0xF0
|
|
bl sub_80F77CC
|
|
bl UnkTextUtil_Reset
|
|
movs r0, 0x20
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0xF
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, _0814F328 @ =sub_814F19C
|
|
bl SetMainCallback2
|
|
bl RunTasks
|
|
bl RunTextPrinters
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0814F308: .4byte gUnknown_3002040
|
|
_0814F30C: .4byte gUnknown_846FA74
|
|
_0814F310: .4byte gUnknown_846F6D0
|
|
_0814F314: .4byte gUnknown_846F8E0
|
|
_0814F318: .4byte gUnknown_846FA7C
|
|
_0814F31C: .4byte sub_814F1C0
|
|
_0814F320: .4byte sub_814F46C
|
|
_0814F324: .4byte gUnknown_846F4D0
|
|
_0814F328: .4byte sub_814F19C
|
|
thumb_func_end sub_814F1E4
|
|
|
|
thumb_func_start sub_814F32C
|
|
sub_814F32C: @ 814F32C
|
|
push {r4,lr}
|
|
bl FreeAllWindowBuffers
|
|
movs r4, 0
|
|
_0814F334:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl GetBgTilemapBuffer
|
|
bl Free
|
|
adds r4, 0x1
|
|
cmp r4, 0x1
|
|
ble _0814F334
|
|
ldr r0, _0814F35C @ =gUnknown_3002040
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, _0814F360 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
|
|
bl SetMainCallback2
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0814F35C: .4byte gUnknown_3002040
|
|
_0814F360: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
|
|
thumb_func_end sub_814F32C
|
|
|
|
thumb_func_start sub_814F364
|
|
sub_814F364: @ 814F364
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
ble _0814F38C
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xE
|
|
bne _0814F388
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
_0814F388:
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
_0814F38C:
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
adds r0, 0x2
|
|
lsls r0, 5
|
|
ldr r1, _0814F3A4 @ =gUnknown_846F4D0
|
|
adds r0, r1
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
bl LoadPalette
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0814F3A4: .4byte gUnknown_846F4D0
|
|
thumb_func_end sub_814F364
|
|
|
|
thumb_func_start sub_814F3A8
|
|
sub_814F3A8: @ 814F3A8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
ldr r5, _0814F468 @ =gUnknown_846FAAC
|
|
ldr r4, [r5]
|
|
movs r0, 0x3
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl GetStringWidth
|
|
movs r3, 0xC0
|
|
subs r3, r0
|
|
lsrs r3, 1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x6
|
|
str r0, [sp]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
adds r2, r4, 0
|
|
bl sub_814F65C
|
|
movs r1, 0
|
|
_0814F3F0:
|
|
adds r4, r1, 0x1
|
|
lsls r0, r4, 2
|
|
adds r0, r5
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 25
|
|
movs r1, 0xA0
|
|
lsls r1, 20
|
|
adds r0, r1
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
movs r1, 0x3
|
|
movs r3, 0
|
|
bl sub_814F65C
|
|
adds r1, r4, 0
|
|
cmp r4, 0x2
|
|
ble _0814F3F0
|
|
ldr r1, _0814F468 @ =gUnknown_846FAAC
|
|
adds r0, r4, 0x1
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
lsls r0, r4, 4
|
|
subs r0, r4
|
|
lsls r0, 25
|
|
movs r1, 0xA0
|
|
lsls r1, 20
|
|
adds r0, r1
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r3, 0
|
|
bl sub_814F65C
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
movs r0, 0x1
|
|
bl PutWindowTilemap
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0814F468: .4byte gUnknown_846FAAC
|
|
thumb_func_end sub_814F3A8
|
|
|
|
thumb_func_start sub_814F46C
|
|
sub_814F46C: @ 814F46C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _0814F498 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0x8
|
|
ldrsh r0, [r0, r2]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x5
|
|
bls _0814F48E
|
|
b _0814F648
|
|
_0814F48E:
|
|
lsls r0, 2
|
|
ldr r1, _0814F49C @ =_0814F4A0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0814F498: .4byte gTasks
|
|
_0814F49C: .4byte _0814F4A0
|
|
.align 2, 0
|
|
_0814F4A0:
|
|
.4byte _0814F4B8
|
|
.4byte _0814F4D4
|
|
.4byte _0814F4F8
|
|
.4byte _0814F514
|
|
.4byte _0814F608
|
|
.4byte _0814F630
|
|
_0814F4B8:
|
|
bl sub_814F3A8
|
|
ldr r0, _0814F4D0 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
b _0814F648
|
|
.align 2, 0
|
|
_0814F4D0: .4byte gTasks
|
|
_0814F4D4:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0
|
|
bl ShowBg
|
|
b _0814F618
|
|
_0814F4F8:
|
|
ldr r0, _0814F510 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0814F506
|
|
b _0814F648
|
|
_0814F506:
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
b _0814F622
|
|
.align 2, 0
|
|
_0814F510: .4byte gPaletteFade
|
|
_0814F514:
|
|
ldr r0, _0814F570 @ =gUnknown_3002040
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0x10
|
|
adds r2, r0, 0
|
|
adds r2, 0x20
|
|
adds r3, r0, 0
|
|
adds r3, 0x61
|
|
ldrb r3, [r3]
|
|
bl sub_814F7E4
|
|
lsls r1, r5, 2
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
beq _0814F5A4
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r4, 0
|
|
ldr r6, _0814F574 @ =gStringVar4
|
|
movs r7, 0xA0
|
|
lsls r7, 20
|
|
_0814F542:
|
|
ldr r0, _0814F570 @ =gUnknown_3002040
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
cmp r4, 0x3
|
|
beq _0814F578
|
|
lsrs r0, r7, 24
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x2
|
|
movs r1, 0x3
|
|
adds r2, r6, 0
|
|
movs r3, 0x4
|
|
bl sub_814F65C
|
|
b _0814F58A
|
|
.align 2, 0
|
|
_0814F570: .4byte gUnknown_3002040
|
|
_0814F574: .4byte gStringVar4
|
|
_0814F578:
|
|
movs r0, 0x64
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r1, 0x3
|
|
adds r2, r6, 0
|
|
movs r3, 0x4
|
|
bl sub_814F65C
|
|
_0814F58A:
|
|
movs r2, 0xF0
|
|
lsls r2, 21
|
|
adds r7, r2
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0814F542
|
|
movs r0, 0x2
|
|
bl PutWindowTilemap
|
|
movs r0, 0x2
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
_0814F5A4:
|
|
ldr r0, _0814F5F8 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0814F5B8
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0814F5E2
|
|
_0814F5B8:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r2, _0814F5FC @ =gTasks
|
|
ldr r0, _0814F600 @ =gUnknown_3002040
|
|
ldr r0, [r0]
|
|
adds r0, 0x61
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r1, 0xFF
|
|
strh r1, [r0, 0x26]
|
|
mov r0, r8
|
|
adds r1, r0, r5
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
_0814F5E2:
|
|
mov r2, r8
|
|
adds r1, r2, r5
|
|
lsls r1, 3
|
|
ldr r0, _0814F604 @ =gTasks+0x8
|
|
adds r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, 0xE
|
|
adds r1, 0x10
|
|
bl sub_814F364
|
|
b _0814F648
|
|
.align 2, 0
|
|
_0814F5F8: .4byte gMain
|
|
_0814F5FC: .4byte gTasks
|
|
_0814F600: .4byte gUnknown_3002040
|
|
_0814F604: .4byte gTasks+0x8
|
|
_0814F608:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
_0814F618:
|
|
ldr r1, _0814F62C @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
_0814F622:
|
|
ldrh r1, [r0, 0x8]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
b _0814F648
|
|
.align 2, 0
|
|
_0814F62C: .4byte gTasks
|
|
_0814F630:
|
|
ldr r0, _0814F654 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0814F648
|
|
ldr r0, _0814F658 @ =sub_814F32C
|
|
bl SetMainCallback2
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_0814F648:
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0814F654: .4byte gPaletteFade
|
|
_0814F658: .4byte sub_814F32C
|
|
thumb_func_end sub_814F46C
|
|
|
|
thumb_func_start sub_814F65C
|
|
sub_814F65C: @ 814F65C
|
|
push {r4-r7,lr}
|
|
sub sp, 0x18
|
|
mov r12, r2
|
|
ldr r2, [sp, 0x2C]
|
|
ldr r4, [sp, 0x30]
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r3, 24
|
|
lsrs r6, r3, 24
|
|
lsls r2, 24
|
|
lsrs r3, r2, 24
|
|
lsls r4, 24
|
|
lsrs r0, r4, 24
|
|
cmp r0, 0x4
|
|
bhi _0814F6E6
|
|
lsls r0, 2
|
|
ldr r1, _0814F688 @ =_0814F68C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0814F688: .4byte _0814F68C
|
|
.align 2, 0
|
|
_0814F68C:
|
|
.4byte _0814F6A0
|
|
.4byte _0814F6AE
|
|
.4byte _0814F6BC
|
|
.4byte _0814F6CA
|
|
.4byte _0814F6D8
|
|
_0814F6A0:
|
|
add r1, sp, 0x14
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x3
|
|
b _0814F6E4
|
|
_0814F6AE:
|
|
add r1, sp, 0x14
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x3
|
|
b _0814F6E4
|
|
_0814F6BC:
|
|
add r1, sp, 0x14
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x5
|
|
b _0814F6E4
|
|
_0814F6CA:
|
|
add r1, sp, 0x14
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0x7
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x6
|
|
b _0814F6E4
|
|
_0814F6D8:
|
|
add r1, sp, 0x14
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x2
|
|
_0814F6E4:
|
|
strb r0, [r1, 0x2]
|
|
_0814F6E6:
|
|
negs r0, r5
|
|
orrs r0, r5
|
|
lsrs r0, 31
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
add r0, sp, 0x14
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [sp, 0xC]
|
|
mov r0, r12
|
|
str r0, [sp, 0x10]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl AddTextPrinterParametrized2
|
|
add sp, 0x18
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_814F65C
|
|
|
|
thumb_func_start sub_814F714
|
|
sub_814F714: @ 814F714
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
mov r12, r0
|
|
adds r7, r1, 0
|
|
ldrb r0, [r0, 0xA]
|
|
lsls r0, 25
|
|
lsrs r0, 25
|
|
mov r8, r0
|
|
movs r4, 0
|
|
ldr r0, _0814F78C @ =gUnknown_846FAC0
|
|
mov r9, r0
|
|
movs r1, 0x1
|
|
add r1, r9
|
|
mov r10, r1
|
|
mov r3, r12
|
|
adds r3, 0x4
|
|
str r3, [sp]
|
|
_0814F73E:
|
|
lsls r0, r4, 1
|
|
adds r2, r0, r4
|
|
mov r3, r9
|
|
adds r1, r2, r3
|
|
adds r5, r0, 0
|
|
adds r6, r4, 0x1
|
|
ldrb r1, [r1]
|
|
cmp r8, r1
|
|
bne _0814F7A2
|
|
mov r0, r12
|
|
ldrb r1, [r0, 0x1A]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0x1
|
|
bne _0814F7A2
|
|
mov r0, r9
|
|
adds r0, 0x2
|
|
adds r3, r2, r0
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
bne _0814F790
|
|
movs r2, 0
|
|
movs r1, 0
|
|
ldr r3, [sp]
|
|
_0814F76E:
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0814F778
|
|
adds r2, 0x1
|
|
_0814F778:
|
|
adds r1, 0x1
|
|
cmp r1, 0x3
|
|
ble _0814F76E
|
|
adds r2, 0x1
|
|
adds r0, r5, r4
|
|
add r0, r10
|
|
ldrb r1, [r0]
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
b _0814F79C
|
|
.align 2, 0
|
|
_0814F78C: .4byte gUnknown_846FAC0
|
|
_0814F790:
|
|
mov r1, r10
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r2, [r3]
|
|
_0814F79C:
|
|
ldr r0, [r1]
|
|
adds r0, r2
|
|
str r0, [r1]
|
|
_0814F7A2:
|
|
adds r4, r6, 0
|
|
cmp r4, 0x16
|
|
bls _0814F73E
|
|
mov r0, r8
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_814F714
|
|
|
|
thumb_func_start sub_814F7BC
|
|
sub_814F7BC: @ 814F7BC
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
_0814F7C4:
|
|
ldr r1, [r2]
|
|
ldr r0, [r3]
|
|
cmp r1, r0
|
|
beq _0814F7D0
|
|
movs r0, 0x1
|
|
b _0814F7DC
|
|
_0814F7D0:
|
|
adds r3, 0x4
|
|
adds r2, 0x4
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0814F7C4
|
|
movs r0, 0
|
|
_0814F7DC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_814F7BC
|
|
|
|
thumb_func_start sub_814F7E4
|
|
sub_814F7E4: @ 814F7E4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x10
|
|
adds r6, r0, 0
|
|
mov r9, r1
|
|
adds r5, r2, 0
|
|
lsls r4, r3, 24
|
|
lsrs r4, 24
|
|
movs r0, 0
|
|
mov r8, r0
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
bl memset
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _0814F84C @ =gTasks+0x8
|
|
adds r7, r0, r1
|
|
movs r4, 0
|
|
_0814F812:
|
|
lsls r1, r4, 5
|
|
ldr r0, [r7]
|
|
adds r0, r1
|
|
mov r1, sp
|
|
bl sub_814F714
|
|
adds r1, r0, 0
|
|
ldr r0, [r5]
|
|
cmp r1, r0
|
|
beq _0814F82C
|
|
str r1, [r5]
|
|
movs r2, 0x1
|
|
mov r8, r2
|
|
_0814F82C:
|
|
adds r5, 0x4
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _0814F812
|
|
mov r0, sp
|
|
mov r1, r9
|
|
bl sub_814F7BC
|
|
cmp r0, 0
|
|
bne _0814F850
|
|
mov r3, r8
|
|
cmp r3, 0x1
|
|
beq _0814F874
|
|
movs r0, 0
|
|
b _0814F876
|
|
.align 2, 0
|
|
_0814F84C: .4byte gTasks+0x8
|
|
_0814F850:
|
|
adds r1, r6, 0
|
|
mov r0, sp
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
mov r1, r9
|
|
mov r0, sp
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r0, [r6]
|
|
ldr r1, [r6, 0x4]
|
|
adds r0, r1
|
|
ldr r1, [r6, 0x8]
|
|
adds r0, r1
|
|
str r0, [r6, 0xC]
|
|
_0814F874:
|
|
movs r0, 0x1
|
|
_0814F876:
|
|
add sp, 0x10
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_814F7E4
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|