summaryrefslogtreecommitdiff
path: root/asm/task.s
diff options
context:
space:
mode:
authorsceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-16 23:54:22 -0800
committersceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-16 23:54:22 -0800
commit670fef77ac4d9116d5fdc28c0da40622919a062b (patch)
tree61c0e925f059404473826ac775305ba5e2706ab1 /asm/task.s
first commit
Diffstat (limited to 'asm/task.s')
-rw-r--r--asm/task.s537
1 files changed, 537 insertions, 0 deletions
diff --git a/asm/task.s b/asm/task.s
new file mode 100644
index 000000000..d3b1f86e1
--- /dev/null
+++ b/asm/task.s
@@ -0,0 +1,537 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80773BC
+sub_80773BC: @ 80773BC
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r6, _08077410 @ =gUnknown_3005090
+ adds r7, r6, 0
+ adds r7, 0x8
+_080773C6:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r6
+ movs r1, 0
+ strb r1, [r2, 0x4]
+ ldr r1, _08077414 @ =nullsub_43
+ str r1, [r2]
+ strb r4, [r2, 0x5]
+ adds r4, 0x1
+ strb r4, [r2, 0x6]
+ movs r1, 0x1
+ negs r1, r1
+ adds r5, r1, 0
+ movs r1, 0xFF
+ strb r1, [r2, 0x7]
+ adds r0, r7
+ movs r1, 0
+ movs r2, 0x20
+ bl memset
+ lsls r4, 24
+ lsrs r4, 24
+ cmp r4, 0xF
+ bls _080773C6
+ ldr r0, _08077410 @ =gUnknown_3005090
+ movs r1, 0xFE
+ strb r1, [r0, 0x5]
+ ldr r1, _08077418 @ =0x0000025e
+ adds r0, r1
+ ldrb r1, [r0]
+ orrs r1, r5
+ strb r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077410: .4byte gUnknown_3005090
+_08077414: .4byte nullsub_43
+_08077418: .4byte 0x0000025e
+ thumb_func_end sub_80773BC
+
+ thumb_func_start sub_807741C
+sub_807741C: @ 807741C
+ push {r4-r7,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r6, 0
+ ldr r7, _08077458 @ =gUnknown_3005090
+_08077428:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r5, r0, 3
+ adds r4, r5, r7
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ bne _0807745C
+ str r2, [r4]
+ strb r1, [r4, 0x7]
+ adds r0, r6, 0
+ bl sub_8077470
+ adds r0, r7, 0
+ adds r0, 0x8
+ adds r0, r5, r0
+ movs r1, 0
+ movs r2, 0x20
+ bl memset
+ movs r0, 0x1
+ strb r0, [r4, 0x4]
+ adds r0, r6, 0
+ b _08077468
+ .align 2, 0
+_08077458: .4byte gUnknown_3005090
+_0807745C:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xF
+ bls _08077428
+ movs r0, 0
+_08077468:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807741C
+
+ thumb_func_start sub_8077470
+sub_8077470: @ 8077470
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80775A8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x10
+ bne _080774A0
+ ldr r1, _0807749C @ =gUnknown_3005090
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xFE
+ strb r1, [r0, 0x5]
+ movs r1, 0xFF
+ strb r1, [r0, 0x6]
+ b _080774FC
+ .align 2, 0
+_0807749C: .4byte gUnknown_3005090
+_080774A0:
+ ldr r6, _080774DC @ =gUnknown_3005090
+ lsls r0, r4, 2
+ mov r12, r0
+ mov r8, r6
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r6
+_080774AE:
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r5, r0, 3
+ mov r7, r8
+ adds r3, r5, r7
+ ldrb r0, [r2, 0x7]
+ ldrb r7, [r3, 0x7]
+ cmp r0, r7
+ bcs _080774E0
+ ldrb r0, [r3, 0x5]
+ strb r0, [r2, 0x5]
+ strb r1, [r2, 0x6]
+ ldrb r0, [r3, 0x5]
+ cmp r0, 0xFE
+ beq _080774D8
+ adds r1, r0, 0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ add r0, r8
+ strb r4, [r0, 0x6]
+_080774D8:
+ strb r4, [r3, 0x5]
+ b _080774FC
+ .align 2, 0
+_080774DC: .4byte gUnknown_3005090
+_080774E0:
+ ldrb r0, [r3, 0x6]
+ cmp r0, 0xFF
+ beq _080774EA
+ adds r1, r0, 0
+ b _080774AE
+_080774EA:
+ mov r2, r12
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r6
+ strb r1, [r0, 0x5]
+ adds r2, r5, r6
+ ldrb r1, [r2, 0x6]
+ strb r1, [r0, 0x6]
+ strb r4, [r2, 0x6]
+_080774FC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8077470
+
+ thumb_func_start sub_8077508
+sub_8077508: @ 8077508
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0807753C @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r4
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0
+ beq _08077572
+ movs r0, 0
+ strb r0, [r2, 0x4]
+ ldrb r3, [r2, 0x5]
+ cmp r3, 0xFE
+ bne _08077540
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0xFF
+ beq _08077572
+ adds r1, r0, 0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ strb r3, [r0, 0x5]
+ b _08077572
+ .align 2, 0
+_0807753C: .4byte gUnknown_3005090
+_08077540:
+ ldrb r3, [r2, 0x6]
+ adds r0, r3, 0
+ cmp r0, 0xFF
+ bne _08077558
+ ldrb r0, [r2, 0x5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0xFF
+ strb r0, [r1, 0x6]
+ b _08077572
+_08077558:
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ strb r3, [r0, 0x6]
+ ldrb r1, [r2, 0x6]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldrb r1, [r2, 0x5]
+ strb r1, [r0, 0x5]
+_08077572:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8077508
+
+ thumb_func_start sub_8077578
+sub_8077578: @ 8077578
+ push {r4,r5,lr}
+ bl sub_80775A8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ beq _0807759C
+ ldr r5, _080775A4 @ =gUnknown_3005090
+_08077588:
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r5
+ ldr r1, [r4]
+ bl _call_via_r1
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0xFF
+ bne _08077588
+_0807759C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080775A4: .4byte gUnknown_3005090
+ thumb_func_end sub_8077578
+
+ thumb_func_start sub_80775A8
+sub_80775A8: @ 80775A8
+ push {lr}
+ movs r2, 0
+ ldr r0, _080775E0 @ =gUnknown_3005090
+ ldrb r1, [r0, 0x4]
+ adds r3, r0, 0
+ cmp r1, 0x1
+ bne _080775BC
+ ldrb r0, [r3, 0x5]
+ cmp r0, 0xFE
+ beq _080775DA
+_080775BC:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bhi _080775DA
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r3
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0x1
+ bne _080775BC
+ ldrb r0, [r1, 0x5]
+ cmp r0, 0xFE
+ bne _080775BC
+_080775DA:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080775E0: .4byte gUnknown_3005090
+ thumb_func_end sub_80775A8
+
+ thumb_func_start nullsub_43
+nullsub_43: @ 80775E4
+ bx lr
+ thumb_func_end nullsub_43
+
+ thumb_func_start sub_80775E8
+sub_80775E8: @ 80775E8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08077618 @ =gUnknown_3005090
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 3
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r4, r5, 0
+ adds r4, 0x8
+ adds r0, r4
+ strh r2, [r0]
+ adds r0, r3, 0
+ adds r0, 0x1E
+ adds r0, r4
+ lsrs r2, 16
+ strh r2, [r0]
+ adds r3, r5
+ str r1, [r3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08077618: .4byte gUnknown_3005090
+ thumb_func_end sub_80775E8
+
+ thumb_func_start sub_807761C
+sub_807761C: @ 807761C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0807764C @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r3
+ adds r0, r1, 0
+ adds r0, 0x1C
+ adds r3, 0x8
+ adds r0, r3
+ ldrh r2, [r0]
+ adds r1, 0x1E
+ adds r1, r3
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ lsls r0, 16
+ orrs r2, r0
+ str r2, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807764C: .4byte gUnknown_3005090
+ thumb_func_end sub_807761C
+
+ thumb_func_start sub_8077650
+sub_8077650: @ 8077650
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r4, _08077670 @ =gUnknown_3005090
+_08077658:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r4
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0x1
+ bne _08077674
+ ldr r0, [r1]
+ cmp r0, r3
+ bne _08077674
+ movs r0, 0x1
+ b _08077680
+ .align 2, 0
+_08077670: .4byte gUnknown_3005090
+_08077674:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _08077658
+ movs r0, 0
+_08077680:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8077650
+
+ thumb_func_start sub_8077688
+sub_8077688: @ 8077688
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r1, _080776A4 @ =gUnknown_3005090
+_08077690:
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0x1
+ bne _080776A8
+ ldr r0, [r1]
+ cmp r0, r3
+ bne _080776A8
+ lsls r0, r2, 24
+ lsrs r0, 24
+ b _080776B2
+ .align 2, 0
+_080776A4: .4byte gUnknown_3005090
+_080776A8:
+ adds r1, 0x28
+ adds r2, 0x1
+ cmp r2, 0xF
+ ble _08077690
+ movs r0, 0xFF
+_080776B2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8077688
+
+ thumb_func_start sub_80776B8
+sub_80776B8: @ 80776B8
+ push {lr}
+ movs r2, 0
+ movs r1, 0
+ ldr r3, _080776E4 @ =gUnknown_3005090
+_080776C0:
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x1
+ bne _080776D4
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080776D4:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080776C0
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080776E4: .4byte gUnknown_3005090
+ thumb_func_end sub_80776B8
+
+ thumb_func_start sub_80776E8
+sub_80776E8: @ 80776E8
+ push {r4,r5,lr}
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ cmp r3, 0xE
+ bhi _08077716
+ ldr r2, _0807771C @ =gUnknown_3005090
+ lsls r0, r3, 1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r0, r1
+ adds r2, 0x8
+ adds r0, r2
+ strh r5, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 1
+ adds r0, r1
+ adds r0, r2
+ lsrs r1, r5, 16
+ strh r1, [r0]
+_08077716:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807771C: .4byte gUnknown_3005090
+ thumb_func_end sub_80776E8
+
+ thumb_func_start sub_8077720
+sub_8077720: @ 8077720
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0xE
+ bls _08077732
+ movs r0, 0
+ b _08077754
+_08077732:
+ ldr r3, _0807775C @ =gUnknown_3005090
+ lsls r0, r1, 1
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 3
+ adds r0, r2
+ adds r3, 0x8
+ adds r0, r3
+ ldrh r0, [r0]
+ adds r1, 0x1
+ lsls r1, 1
+ adds r1, r2
+ adds r1, r3
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ lsls r1, 16
+ orrs r0, r1
+_08077754:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807775C: .4byte gUnknown_3005090
+ thumb_func_end sub_8077720
+
+ .align 2, 0 @ Don't pad with nop.