summaryrefslogtreecommitdiff
path: root/asm/unknown_task.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/unknown_task.s')
-rw-r--r--asm/unknown_task.s644
1 files changed, 644 insertions, 0 deletions
diff --git a/asm/unknown_task.s b/asm/unknown_task.s
new file mode 100644
index 000000000..30f51a3fc
--- /dev/null
+++ b/asm/unknown_task.s
@@ -0,0 +1,644 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8087E64
+sub_8087E64: @ 8087E64
+ push {r4,lr}
+ ldr r4, _08087E94 @ =gUnknown_2039600
+ movs r0, 0
+ strb r0, [r4, 0x15]
+ ldr r1, _08087E98 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _08087E9C @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _08087EA0 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldrb r0, [r4, 0x18]
+ cmp r0, 0xFF
+ beq _08087E8E
+ bl sub_8077508
+ movs r0, 0xFF
+ strb r0, [r4, 0x18]
+_08087E8E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087E94: .4byte gUnknown_2039600
+_08087E98: .4byte 0x040000b0
+_08087E9C: .4byte 0x0000c5ff
+_08087EA0: .4byte 0x00007fff
+ thumb_func_end sub_8087E64
+
+ thumb_func_start sub_8087EA4
+sub_8087EA4: @ 8087EA4
+ push {r4,lr}
+ sub sp, 0x4
+ mov r0, sp
+ movs r4, 0
+ strh r4, [r0]
+ ldr r1, _08087ED8 @ =gUnknown_2038700
+ ldr r2, _08087EDC @ =0x01000780
+ bl CpuSet
+ ldr r0, _08087EE0 @ =gUnknown_2039600
+ movs r1, 0
+ str r1, [r0]
+ str r1, [r0, 0x4]
+ str r1, [r0, 0x8]
+ str r1, [r0, 0xC]
+ strb r4, [r0, 0x14]
+ strb r4, [r0, 0x15]
+ strb r4, [r0, 0x16]
+ strb r4, [r0, 0x17]
+ movs r1, 0xFF
+ strb r1, [r0, 0x18]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087ED8: .4byte gUnknown_2038700
+_08087EDC: .4byte 0x01000780
+_08087EE0: .4byte gUnknown_2039600
+ thumb_func_end sub_8087EA4
+
+ thumb_func_start sub_8087EE4
+sub_8087EE4: @ 8087EE4
+ push {lr}
+ sub sp, 0xC
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ ldr r0, _08087F08 @ =0xa2600001
+ cmp r1, r0
+ bne _08087F18
+ ldr r0, _08087F0C @ =gUnknown_2039600
+ ldr r1, _08087F10 @ =gUnknown_2038702
+ str r1, [r0]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ str r1, [r0, 0x4]
+ ldr r1, _08087F14 @ =sub_8087FE0
+ b _08087F28
+ .align 2, 0
+_08087F08: .4byte 0xa2600001
+_08087F0C: .4byte gUnknown_2039600
+_08087F10: .4byte gUnknown_2038702
+_08087F14: .4byte sub_8087FE0
+_08087F18:
+ ldr r0, _08087F48 @ =gUnknown_2039600
+ ldr r1, _08087F4C @ =gUnknown_2038704
+ str r1, [r0]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ str r1, [r0, 0x4]
+ ldr r1, _08087F50 @ =sub_8088000
+_08087F28:
+ str r1, [r0, 0x10]
+ adds r1, r0, 0
+ ldr r0, [sp, 0x4]
+ str r0, [r1, 0xC]
+ ldr r0, [sp]
+ str r0, [r1, 0x8]
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ strb r0, [r1, 0x15]
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ strb r0, [r1, 0x16]
+ strb r0, [r1, 0x17]
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087F48: .4byte gUnknown_2039600
+_08087F4C: .4byte gUnknown_2038704
+_08087F50: .4byte sub_8088000
+ thumb_func_end sub_8087EE4
+
+ thumb_func_start sub_8087F54
+sub_8087F54: @ 8087F54
+ push {r4,lr}
+ ldr r4, _08087F84 @ =gUnknown_2039600
+ ldrb r0, [r4, 0x15]
+ cmp r0, 0
+ beq _08087FCE
+ cmp r0, 0x3
+ bne _08087F98
+ movs r0, 0
+ strb r0, [r4, 0x15]
+ ldr r1, _08087F88 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _08087F8C @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _08087F90 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldr r1, _08087F94 @ =gUnknown_203961C
+ movs r0, 0x1
+ strb r0, [r1]
+ b _08087FCE
+ .align 2, 0
+_08087F84: .4byte gUnknown_2039600
+_08087F88: .4byte 0x040000b0
+_08087F8C: .4byte 0x0000c5ff
+_08087F90: .4byte 0x00007fff
+_08087F94: .4byte gUnknown_203961C
+_08087F98:
+ ldr r1, _08087FD4 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _08087FD8 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _08087FDC @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldrb r0, [r4, 0x14]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, [r4, 0x8]
+ str r0, [r1, 0x4]
+ ldr r0, [r4, 0xC]
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r0, [r4, 0x10]
+ bl _call_via_r0
+ ldrb r0, [r4, 0x14]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4, 0x14]
+_08087FCE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087FD4: .4byte 0x040000b0
+_08087FD8: .4byte 0x0000c5ff
+_08087FDC: .4byte 0x00007fff
+ thumb_func_end sub_8087F54
+
+ thumb_func_start sub_8087FE0
+sub_8087FE0: @ 8087FE0
+ ldr r0, _08087FF8 @ =gUnknown_2039600
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _08087FFC @ =gUnknown_2038700
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_08087FF8: .4byte gUnknown_2039600
+_08087FFC: .4byte gUnknown_2038700
+ thumb_func_end sub_8087FE0
+
+ thumb_func_start sub_8088000
+sub_8088000: @ 8088000
+ ldr r0, _08088018 @ =gUnknown_2039600
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _0808801C @ =gUnknown_2038700
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_08088018: .4byte gUnknown_2039600
+_0808801C: .4byte gUnknown_2038700
+ thumb_func_end sub_8088000
+
+ thumb_func_start sub_8088020
+sub_8088020: @ 8088020
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ movs r6, 0
+ ldr r0, _08088048 @ =gUnknown_203961C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08088050
+ mov r0, r12
+ bl sub_8077508
+ ldr r1, _0808804C @ =gUnknown_2039600
+ movs r0, 0xFF
+ strb r0, [r1, 0x18]
+ b _080881D0
+ .align 2, 0
+_08088048: .4byte gUnknown_203961C
+_0808804C: .4byte gUnknown_2039600
+_08088050:
+ ldr r1, _0808807C @ =gUnknown_3005090
+ mov r0, r12
+ lsls r2, r0, 2
+ adds r0, r2, r0
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r4, 0x16
+ ldrsh r0, [r3, r4]
+ mov r10, r1
+ mov r9, r2
+ cmp r0, 0
+ beq _080880FC
+ movs r1, 0x14
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xE
+ bhi _080880FC
+ lsls r0, 2
+ ldr r1, _08088080 @ =_08088084
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0808807C: .4byte gUnknown_3005090
+_08088080: .4byte _08088084
+ .align 2, 0
+_08088084:
+ .4byte _080880C0
+ .4byte _080880FC
+ .4byte _080880C8
+ .4byte _080880FC
+ .4byte _080880D0
+ .4byte _080880FC
+ .4byte _080880D8
+ .4byte _080880FC
+ .4byte _080880E0
+ .4byte _080880FC
+ .4byte _080880E8
+ .4byte _080880FC
+ .4byte _080880F0
+ .4byte _080880FC
+ .4byte _080880F8
+_080880C0:
+ ldr r0, _080880C4 @ =gUnknown_2022974
+ b _080880FA
+ .align 2, 0
+_080880C4: .4byte gUnknown_2022974
+_080880C8:
+ ldr r0, _080880CC @ =gUnknown_2022976
+ b _080880FA
+ .align 2, 0
+_080880CC: .4byte gUnknown_2022976
+_080880D0:
+ ldr r0, _080880D4 @ =gUnknown_2022978
+ b _080880FA
+ .align 2, 0
+_080880D4: .4byte gUnknown_2022978
+_080880D8:
+ ldr r0, _080880DC @ =gUnknown_202297A
+ b _080880FA
+ .align 2, 0
+_080880DC: .4byte gUnknown_202297A
+_080880E0:
+ ldr r0, _080880E4 @ =gUnknown_202297C
+ b _080880FA
+ .align 2, 0
+_080880E4: .4byte gUnknown_202297C
+_080880E8:
+ ldr r0, _080880EC @ =gUnknown_202297E
+ b _080880FA
+ .align 2, 0
+_080880EC: .4byte gUnknown_202297E
+_080880F0:
+ ldr r0, _080880F4 @ =gUnknown_2022980
+ b _080880FA
+ .align 2, 0
+_080880F4: .4byte gUnknown_2022980
+_080880F8:
+ ldr r0, _0808815C @ =gUnknown_2022982
+_080880FA:
+ ldrh r6, [r0]
+_080880FC:
+ mov r0, r9
+ add r0, r12
+ lsls r0, 3
+ mov r2, r10
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08088168
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x10]
+ movs r4, 0xE
+ ldrsh r0, [r1, r4]
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r2, r0, r3
+ movs r4, 0x8
+ ldrsh r3, [r1, r4]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r3, r0
+ bge _080881D0
+ ldr r5, _08088160 @ =gUnknown_2038700
+ ldr r0, _08088164 @ =gUnknown_2039600
+ mov r8, r0
+ adds r7, r1, 0
+ lsls r0, r2, 1
+ adds r4, r0, r5
+_08088136:
+ lsls r2, r3, 1
+ mov r0, r8
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r5
+ ldrh r0, [r4]
+ adds r0, r6
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r3, 0x1
+ movs r1, 0xA
+ ldrsh r0, [r7, r1]
+ cmp r3, r0
+ blt _08088136
+ b _080881D0
+ .align 2, 0
+_0808815C: .4byte gUnknown_2022982
+_08088160: .4byte gUnknown_2038700
+_08088164: .4byte gUnknown_2039600
+_08088168:
+ ldrh r0, [r1, 0x12]
+ strh r0, [r1, 0x10]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r2, r0, r3
+ movs r4, 0x8
+ ldrsh r3, [r1, r4]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r3, r0
+ bge _080881B0
+ ldr r5, _080881E0 @ =gUnknown_2038700
+ adds r7, r1, 0
+ lsls r0, r2, 1
+ adds r4, r0, r5
+ ldr r0, _080881E4 @ =gUnknown_2039600
+ mov r8, r0
+_0808818E:
+ lsls r2, r3, 1
+ mov r0, r8
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r5
+ ldrh r0, [r4]
+ adds r0, r6
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r3, 0x1
+ movs r1, 0xA
+ ldrsh r0, [r7, r1]
+ cmp r3, r0
+ blt _0808818E
+_080881B0:
+ mov r0, r9
+ add r0, r12
+ lsls r0, 3
+ mov r3, r10
+ adds r2, r0, r3
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0xC
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bne _080881D0
+ movs r0, 0
+ strh r0, [r2, 0xE]
+_080881D0:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080881E0: .4byte gUnknown_2038700
+_080881E4: .4byte gUnknown_2039600
+ thumb_func_end sub_8088020
+
+ thumb_func_start sub_80881E8
+sub_80881E8: @ 80881E8
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r1, 0
+ movs r2, 0
+ ldr r0, _0808822C @ =gUnknown_825E074
+ mov r12, r0
+_080881FC:
+ lsls r0, r1, 1
+ adds r3, r0, r6
+ lsls r0, r2, 1
+ add r0, r12
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ muls r0, r4
+ cmp r0, 0
+ bge _08088210
+ adds r0, 0xFF
+_08088210:
+ asrs r0, 8
+ strh r0, [r3]
+ adds r0, r2, r5
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xFF
+ bls _080881FC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808822C: .4byte gUnknown_825E074
+ thumb_func_end sub_80881E8
+
+ thumb_func_start sub_8088230
+sub_8088230: @ 8088230
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ adds r5, r0, 0
+ str r1, [sp, 0x10]
+ ldr r0, [sp, 0x40]
+ mov r8, r0
+ ldr r1, [sp, 0x44]
+ mov r9, r1
+ ldr r0, [sp, 0x48]
+ mov r10, r0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, [sp, 0x10]
+ lsls r1, 24
+ str r1, [sp, 0x14]
+ lsrs r0, r1, 24
+ str r0, [sp, 0xC]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ str r1, [sp, 0x18]
+ lsls r2, r3, 24
+ lsrs r2, 24
+ str r2, [sp, 0x1C]
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ mov r3, r9
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ bl sub_8087EA4
+ ldr r0, _0808833C @ =0x04000010
+ add r0, r9
+ str r0, [sp]
+ ldr r0, _08088340 @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_8087EE4
+ ldr r0, _08088344 @ =sub_8088020
+ movs r1, 0
+ bl sub_807741C
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08088348 @ =gUnknown_3005090
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ strh r5, [r4, 0x8]
+ mov r3, sp
+ ldrh r3, [r3, 0xC]
+ strh r3, [r4, 0xA]
+ movs r0, 0x80
+ lsls r0, 1
+ ldr r1, [sp, 0x18]
+ bl __divsi3
+ strh r0, [r4, 0xC]
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ mov r1, r8
+ strh r1, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ mov r3, r9
+ strh r3, [r4, 0x14]
+ mov r0, r10
+ strh r0, [r4, 0x16]
+ ldr r0, _0808834C @ =gUnknown_2039600
+ strb r7, [r0, 0x18]
+ ldr r0, _08088350 @ =gUnknown_203961C
+ movs r1, 0
+ strb r1, [r0]
+ ldr r4, _08088354 @ =gUnknown_2038980
+ ldr r3, [sp, 0xC]
+ subs r6, r3, r5
+ lsls r3, r6, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ ldr r1, [sp, 0x18]
+ ldr r2, [sp, 0x1C]
+ bl sub_80881E8
+ ldr r0, [sp, 0xC]
+ cmp r5, r0
+ bge _0808832A
+ ldr r1, _08088358 @ =0xfffffd80
+ adds r2, r4, r1
+ lsls r1, r5, 1
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r1, r3
+ adds r3, r0, r2
+ adds r1, r2
+ adds r2, r4, 0
+ adds r5, r6, 0
+_08088316:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ adds r1, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bne _08088316
+_0808832A:
+ adds r0, r7, 0
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808833C: .4byte 0x04000010
+_08088340: .4byte 0xa2600001
+_08088344: .4byte sub_8088020
+_08088348: .4byte gUnknown_3005090
+_0808834C: .4byte gUnknown_2039600
+_08088350: .4byte gUnknown_203961C
+_08088354: .4byte gUnknown_2038980
+_08088358: .4byte 0xfffffd80
+ thumb_func_end sub_8088230
+
+ .align 2, 0 @ Don't pad with nop.