diff options
Diffstat (limited to 'asm/battle_anim.s')
-rw-r--r-- | asm/battle_anim.s | 4205 |
1 files changed, 4205 insertions, 0 deletions
diff --git a/asm/battle_anim.s b/asm/battle_anim.s new file mode 100644 index 000000000..e5c27293e --- /dev/null +++ b/asm/battle_anim.s @@ -0,0 +1,4205 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80A3934 +sub_80A3934: @ 80A3934 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, =gUnknown_020383FC + movs r1, 0 + strb r1, [r0] + ldr r0, =gUnknown_020383FD + strb r1, [r0] + ldr r0, =gUnknown_020383FE + strb r1, [r0] + ldr r0, =gUnknown_020383FF + strb r1, [r0] + ldr r0, =gUnknown_02038400 + movs r1, 0 + str r1, [r0] + ldr r0, =gUnknown_02038404 + str r1, [r0] + ldr r0, =gUnknown_02038408 + movs r2, 0 + strh r1, [r0] + ldr r0, =gUnknown_0203841A + strb r2, [r0] + ldr r4, =gUnknown_02038430 + ldr r5, =gUnknown_02038432 + ldr r6, =gUnknown_02038433 + ldr r7, =gUnknown_02038434 + ldr r0, =gUnknown_02038436 + mov r12, r0 + ldr r1, =gUnknown_02038437 + mov r8, r1 + ldr r0, =gUnknown_02038440 + mov r9, r0 + ldr r1, =0x0000ffff + adds r3, r1, 0 + ldr r1, =gUnknown_0203840A + movs r2, 0x7 +_080A397E: + ldrh r0, [r1] + orrs r0, r3 + strh r0, [r1] + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _080A397E + ldr r1, =gUnknown_0203841E + movs r2, 0 + adds r0, r1, 0 + adds r0, 0xE +_080A3994: + strh r2, [r0] + subs r0, 0x2 + cmp r0, r1 + bge _080A3994 + movs r1, 0 + movs r0, 0xFF + strb r0, [r4] + movs r0, 0x1 + negs r0, r0 + strb r0, [r4, 0x1] + strb r1, [r5] + strb r1, [r6] + movs r0, 0 + strh r1, [r7] + mov r1, r12 + strb r0, [r1] + mov r1, r8 + strb r0, [r1] + mov r1, r9 + strb r0, [r1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A3934 + + thumb_func_start move_anim_start_t1 +move_anim_start_t1: @ 80A3A10 + push {lr} + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + ldr r2, =gUnknown_02038436 + ldr r0, =gUnknown_0202420B + ldrb r0, [r0] + strb r0, [r2] + ldr r2, =gUnknown_02038437 + ldr r0, =gUnknown_0202420C + ldrb r0, [r0] + strb r0, [r2] + ldr r0, =gUnknown_082C8D6C + movs r2, 0x1 + bl move_something + pop {r0} + bx r0 + .pool + thumb_func_end move_anim_start_t1 + + thumb_func_start move_something +move_something: @ 80A3A48 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + str r0, [sp] + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + bne _080A3AE8 + bl sub_80A8278 + movs r0, 0 + bl sub_8072A88 + movs r4, 0 + mov r0, r8 + lsls r0, 2 + mov r10, r0 + ldr r6, =gUnknown_0202406E + movs r7, 0x64 + ldr r5, =gUnknown_02038438 +_080A3A84: + lsls r0, r4, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080A3AA8 + ldrh r0, [r6] + muls r0, r7 + ldr r1, =gUnknown_02024744 + b _080A3AAE + .pool +_080A3AA8: + ldrh r0, [r6] + muls r0, r7 + ldr r1, =gUnknown_020244EC +_080A3AAE: + adds r0, r1 + movs r1, 0xB + bl pokemon_getattr + strh r0, [r5] + adds r6, 0x2 + adds r5, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _080A3A84 + ldr r3, =gUnknown_02038434 + ldr r5, =gUnknown_02038430 + ldr r1, =gUnknown_020383FD + mov r12, r1 + ldr r7, =gUnknown_020383F8 + ldr r6, =move_anim_execute + b _080A3B10 + .pool +_080A3AE8: + ldr r3, =gUnknown_02038434 + ldr r5, =gUnknown_02038430 + mov r0, r8 + lsls r0, 2 + mov r10, r0 + ldr r1, =gUnknown_020383FD + mov r12, r1 + ldr r7, =gUnknown_020383F8 + ldr r6, =move_anim_execute + ldr r2, =gUnknown_02039F34 + ldr r1, =gUnknown_02038438 + movs r4, 0x3 +_080A3B00: + ldr r0, [r2] + ldr r0, [r0, 0x18] + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080A3B00 +_080A3B10: + mov r0, r9 + cmp r0, 0 + bne _080A3B38 + strh r0, [r3] + b _080A3B3C + .pool +_080A3B38: + mov r1, r8 + strh r1, [r3] +_080A3B3C: + ldr r1, =gUnknown_0203841E + movs r2, 0 + adds r0, r1, 0 + adds r0, 0xE +_080A3B44: + strh r2, [r0] + subs r0, 0x2 + cmp r0, r1 + bge _080A3B44 + movs r0, 0xFF + strb r0, [r5] + movs r0, 0x1 + negs r0, r0 + strb r0, [r5, 0x1] + ldr r0, [sp] + add r0, r10 + ldr r0, [r0] + ldr r1, =gUnknown_020383F0 + str r0, [r1] + movs r0, 0x1 + mov r1, r12 + strb r0, [r1] + movs r0, 0 + ldr r1, =gUnknown_020383FC + strb r0, [r1] + str r6, [r7] + ldr r0, =0x0000ffff + adds r2, r0, 0 + ldr r1, =gUnknown_0203840A + movs r4, 0x7 +_080A3B76: + ldrh r0, [r1] + orrs r0, r2 + strh r0, [r1] + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080A3B76 + mov r1, r9 + cmp r1, 0 + beq _080A3BC2 + movs r4, 0 + ldr r2, =gUnknown_082C8D64 + b _080A3BAA + .pool +_080A3BA8: + adds r4, 0x1 +_080A3BAA: + lsls r0, r4, 1 + adds r0, r2 + ldrh r0, [r0] + ldr r1, =0x0000ffff + cmp r0, r1 + beq _080A3BC2 + cmp r8, r0 + bne _080A3BA8 + ldr r0, =gMPlay_BGM + movs r2, 0x80 + bl m4aMPlayVolumeControl +_080A3BC2: + ldr r0, =gUnknown_02022E24 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E26 + strh r1, [r0] + ldr r0, =gUnknown_02022E28 + strh r1, [r0] + ldr r0, =gUnknown_02022E2A + strh r1, [r0] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end move_something + + thumb_func_start move_anim_8072740 +move_anim_8072740: @ 80A3BFC + push {r4,lr} + adds r4, r0, 0 + bl obj_free_rotscale_entry + adds r0, r4, 0 + bl RemoveObjectAndFreeTiles + ldr r1, =gUnknown_020383FE + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end move_anim_8072740 + + thumb_func_start move_anim_task_del +move_anim_task_del: @ 80A3C1C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + ldr r1, =gUnknown_020383FE + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end move_anim_task_del + + thumb_func_start move_anim_related_task_del +move_anim_related_task_del: @ 80A3C38 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + ldr r1, =gUnknown_020383FF + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end move_anim_related_task_del + + thumb_func_start sub_80A3C54 +sub_80A3C54: @ 80A3C54 + push {r4,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r4, =0x0000ffff + ldr r1, =gUnknown_0203840A +_080A3C60: + ldrh r0, [r1] + cmp r0, r4 + bne _080A3C74 + strh r3, [r1] + b _080A3C7C + .pool +_080A3C74: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x7 + ble _080A3C60 +_080A3C7C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A3C54 + + thumb_func_start sub_80A3C84 +sub_80A3C84: @ 80A3C84 + push {r4,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r0, =0x0000ffff + adds r4, r0, 0 + ldr r1, =gUnknown_0203840A +_080A3C92: + ldrh r0, [r1] + cmp r0, r3 + bne _080A3CA8 + orrs r0, r4 + strh r0, [r1] + b _080A3CB0 + .pool +_080A3CA8: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x7 + ble _080A3C92 +_080A3CB0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A3C84 + + thumb_func_start move_anim_waiter +move_anim_waiter: @ 80A3CB8 + push {lr} + ldr r2, =gUnknown_020383FC + ldrb r1, [r2] + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0 + bgt _080A3CDC + ldr r0, =gUnknown_020383F8 + ldr r1, =move_anim_execute + str r1, [r0] + movs r0, 0 + b _080A3CDE + .pool +_080A3CDC: + subs r0, r1, 0x1 +_080A3CDE: + strb r0, [r2] + pop {r0} + bx r0 + thumb_func_end move_anim_waiter + + thumb_func_start move_anim_execute +move_anim_execute: @ 80A3CE4 + push {r4,lr} + ldr r4, =gUnknown_08525E98 +_080A3CE8: + ldr r0, =gUnknown_020383F0 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, =gUnknown_020383FC + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _080A3D0C + ldr r0, =gUnknown_020383FD + ldrb r0, [r0] + cmp r0, 0 + bne _080A3CE8 +_080A3D0C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end move_anim_execute + + thumb_func_start ma00_load_graphics +ma00_load_graphics: @ 80A3D24 + push {r4-r6,lr} + ldr r6, =gUnknown_020383F0 + ldr r0, [r6] + adds r1, r0, 0x1 + str r1, [r6] + ldrb r4, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r4, r0 + lsls r5, r4, 3 + ldr r0, =gUnknown_085112C4 + adds r0, r5, r0 + bl LoadCompressedObjectPicUsingHeap + ldr r0, =gUnknown_08511BCC + adds r5, r0 + adds r0, r5, 0 + bl LoadCompressedObjectPaletteUsingHeap + ldr r0, [r6] + adds r0, 0x2 + str r0, [r6] + ldr r0, =0xffffd8f0 + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + bl sub_80A3C54 + ldr r1, =gUnknown_020383FC + movs r0, 0x1 + strb r0, [r1] + ldr r1, =gUnknown_020383F8 + ldr r0, =move_anim_waiter + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end ma00_load_graphics + + thumb_func_start ma01_080728D0 +@ void ma01_080728D0() +ma01_080728D0: @ 80A3D8C + push {r4-r6,lr} + ldr r6, =gUnknown_020383F0 + ldr r0, [r6] + adds r1, r0, 0x1 + str r1, [r6] + ldrb r4, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r4, r0 + ldr r1, =gUnknown_08524B44 + ldr r0, =0xffffd8f0 + adds r4, r0 + lsls r0, r4, 3 + adds r0, r1 + ldrh r5, [r0, 0x6] + adds r0, r5, 0 + bl FreeObjectTilesByTag + adds r0, r5, 0 + bl FreeObjectPaletteByTag + ldr r0, [r6] + adds r0, 0x2 + str r0, [r6] + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + bl sub_80A3C84 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end ma01_080728D0 + + thumb_func_start ma02_instanciate_template +ma02_instanciate_template: @ 80A3DD8 + push {r4-r7,lr} + ldr r5, =gUnknown_020383F0 + ldr r1, [r5] + adds r3, r1, 0x1 + str r3, [r5] + ldrb r2, [r1, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r7, r2, r0 + adds r0, r1, 0x5 + str r0, [r5] + ldrb r4, [r1, 0x5] + adds r0, r1, 0x6 + str r0, [r5] + ldrb r0, [r1, 0x6] + adds r1, 0x7 + str r1, [r5] + cmp r0, 0 + beq _080A3E28 + adds r6, r5, 0 + ldr r5, =gUnknown_0203841E + adds r3, r0, 0 +_080A3E10: + ldr r2, [r6] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + orrs r1, r0 + strh r1, [r5] + adds r2, 0x2 + str r2, [r6] + adds r5, 0x2 + subs r3, 0x1 + cmp r3, 0 + bne _080A3E10 +_080A3E28: + movs r0, 0x80 + ands r0, r4 + cmp r0, 0 + beq _080A3E58 + movs r0, 0x80 + eors r4, r0 + cmp r4, 0x3F + bls _080A3E48 + adds r0, r4, 0 + subs r0, 0x40 + b _080A3E4A + .pool +_080A3E48: + negs r0, r4 +_080A3E4A: + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gUnknown_02038437 + b _080A3E6A + .pool +_080A3E58: + cmp r4, 0x3F + bls _080A3E62 + adds r0, r4, 0 + subs r0, 0x40 + b _080A3E64 +_080A3E62: + negs r0, r4 +_080A3E64: + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gUnknown_02038436 +_080A3E6A: + ldrb r0, [r0] + bl sub_80A82E4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r4, 24 + asrs r1, 24 + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r0, r6, 16 + asrs r0, 16 + cmp r0, 0x2 + bgt _080A3E88 + movs r6, 0x3 +_080A3E88: + ldr r5, =gUnknown_02038437 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_80A5C6C + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5] + movs r1, 0x3 + bl sub_80A5C6C + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + lsls r3, r6, 24 + lsrs r3, 24 + adds r0, r7, 0 + adds r1, r4, 0 + bl AddObjectAndAnimateForOneFrame + ldr r1, =gUnknown_020383FE + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end ma02_instanciate_template + + thumb_func_start sub_80A3ECC +sub_80A3ECC: @ 80A3ECC + push {r4-r7,lr} + ldr r4, =gUnknown_020383F0 + ldr r1, [r4] + adds r3, r1, 0x1 + str r3, [r4] + ldrb r2, [r1, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r6, r2, r0 + adds r0, r1, 0x5 + str r0, [r4] + ldrb r7, [r1, 0x5] + adds r0, r1, 0x6 + str r0, [r4] + ldrb r0, [r1, 0x6] + adds r1, 0x7 + str r1, [r4] + cmp r0, 0 + beq _080A3F1C + adds r5, r4, 0 + ldr r4, =gUnknown_0203841E + adds r3, r0, 0 +_080A3F04: + ldr r2, [r5] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + orrs r1, r0 + strh r1, [r4] + adds r2, 0x2 + str r2, [r5] + adds r4, 0x2 + subs r3, 0x1 + cmp r3, 0 + bne _080A3F04 +_080A3F1C: + adds r0, r6, 0 + adds r1, r7, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r6 + ldr r1, =gUnknown_020383FE + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A3ECC + + thumb_func_start ma04_wait_countdown +ma04_wait_countdown: @ 80A3F48 + push {r4,lr} + ldr r1, =gUnknown_020383F0 + ldr r0, [r1] + adds r2, r0, 0x1 + str r2, [r1] + ldr r3, =gUnknown_020383FC + ldrb r0, [r0, 0x1] + strb r0, [r3] + lsls r0, 24 + cmp r0, 0 + bne _080A3F66 + movs r4, 0x1 + negs r4, r4 + adds r0, r4, 0 + strb r0, [r3] +_080A3F66: + adds r0, r2, 0x1 + str r0, [r1] + ldr r1, =gUnknown_020383F8 + ldr r0, =move_anim_waiter + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end ma04_wait_countdown + + thumb_func_start sub_80A3F88 +sub_80A3F88: @ 80A3F88 + push {lr} + ldr r0, =gUnknown_020383FE + ldrb r2, [r0] + cmp r2, 0 + bne _080A3FAC + ldr r0, =gUnknown_020383F0 + ldr r1, [r0] + adds r1, 0x1 + str r1, [r0] + ldr r0, =gUnknown_020383FC + strb r2, [r0] + b _080A3FB2 + .pool +_080A3FAC: + ldr r1, =gUnknown_020383FC + movs r0, 0x1 + strb r0, [r1] +_080A3FB2: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A3F88 + + thumb_func_start nullsub_6 +nullsub_6: @ 80A3FBC + bx lr + thumb_func_end nullsub_6 + + thumb_func_start nullsub_7 +nullsub_7: @ 80A3FC0 + bx lr + thumb_func_end nullsub_7 + + thumb_func_start sub_80A3FC4 +sub_80A3FC4: @ 80A3FC4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0 + mov r8, r0 + ldr r0, =gUnknown_020383FE + ldrb r0, [r0] + cmp r0, 0 + bne _080A3FEC + ldr r0, =gUnknown_020383FF + ldrb r0, [r0] + cmp r0, 0 + bne _080A3FEC + ldr r1, =gUnknown_02038430 + ldrb r0, [r1] + cmp r0, 0xFF + bne _080A3FEC + ldrb r0, [r1, 0x1] + cmp r0, 0xFF + beq _080A4004 +_080A3FEC: + ldr r1, =gUnknown_0203842E + movs r0, 0 + strh r0, [r1] + b _080A401E + .pool +_080A4004: + bl mplay_has_finished_maybe + lsls r0, 24 + cmp r0, 0 + beq _080A403C + ldr r1, =gUnknown_0203842E + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5A + bhi _080A4030 +_080A401E: + ldr r1, =gUnknown_020383FC + movs r0, 0x1 + strb r0, [r1] + b _080A40A2 + .pool +_080A4030: + ldr r0, =gMPlay_SE1 + bl m4aMPlayStop + ldr r0, =gMPlay_SE2 + bl m4aMPlayStop +_080A403C: + ldr r1, =gUnknown_0203842E + movs r0, 0 + strh r0, [r1] + movs r5, 0 + ldr r7, =0x0000ffff + ldr r6, =gUnknown_08524B44 + ldr r4, =gUnknown_0203840A +_080A404A: + ldrh r0, [r4] + cmp r0, r7 + beq _080A406E + lsls r0, 3 + adds r0, r6 + ldrh r0, [r0, 0x6] + bl FreeObjectTilesByTag + ldrh r0, [r4] + lsls r0, 3 + adds r0, r6 + ldrh r0, [r0, 0x6] + bl FreeObjectPaletteByTag + ldrh r1, [r4] + adds r0, r7, 0 + orrs r0, r1 + strh r0, [r4] +_080A406E: + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x7 + ble _080A404A + mov r1, r8 + cmp r1, 0 + bne _080A40A2 + ldr r0, =gMPlay_BGM + ldr r1, =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + bne _080A409C + bl sub_80A8278 + movs r0, 0x1 + bl sub_8072A88 +_080A409C: + ldr r0, =gUnknown_020383FD + mov r1, r8 + strb r1, [r0] +_080A40A2: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A3FC4 + + thumb_func_start ma09_play_sound +ma09_play_sound: @ 80A40CC + push {r4,lr} + ldr r4, =gUnknown_020383F0 + ldr r0, [r4] + adds r1, r0, 0x1 + str r1, [r4] + ldrb r0, [r0, 0x1] + ldrb r1, [r1, 0x1] + lsls r1, 8 + orrs r0, r1 + bl audio_play + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end ma09_play_sound + + thumb_func_start sub_80A40F4 +sub_80A40F4: @ 80A40F4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + mov r8, r1 + adds r6, r0, r1 + ldr r1, =gUnknown_020241E4 + movs r2, 0 + ldrsh r0, [r6, r2] + adds r0, r1 + ldrb r5, [r0] + ldr r1, =gUnknown_02020630 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r4, r0, r1 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r3, 0x4 + ldrsh r0, [r6, r3] + cmp r0, 0 + bne _080A4148 + adds r0, r7, 0 + bl move_anim_task_del + b _080A41BE + .pool +_080A4148: + ldr r0, =task_pA_ma0A_obj_to_bg_pal + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + mov r1, r8 + subs r1, 0x8 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r1 + strh r5, [r1, 0x8] + ldrh r0, [r4, 0x24] + ldrh r3, [r4, 0x20] + adds r0, r3 + strh r0, [r1, 0xA] + ldrh r0, [r4, 0x26] + ldrh r4, [r4, 0x22] + adds r0, r4 + strh r0, [r1, 0xC] + movs r3, 0x2 + ldrsh r0, [r6, r3] + cmp r0, 0 + bne _080A4190 + ldr r0, =gUnknown_02022E18 + ldrh r0, [r0] + strh r0, [r1, 0xE] + ldr r0, =gUnknown_02022E1A + b _080A4198 + .pool +_080A4190: + ldr r0, =gUnknown_02022E1C + ldrh r0, [r0] + strh r0, [r1, 0xE] + ldr r0, =gUnknown_02022E1E +_080A4198: + ldrh r0, [r0] + strh r0, [r1, 0x10] + ldr r1, =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r6, 0x2] + strh r1, [r0, 0x12] + ldrh r1, [r6] + strh r1, [r0, 0x14] + ldr r1, =gUnknown_02038430 + movs r3, 0x6 + ldrsh r0, [r6, r3] + adds r0, r1 + strb r2, [r0] + adds r0, r7, 0 + bl move_anim_task_del +_080A41BE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A40F4 + + thumb_func_start sub_80A41D8 +sub_80A41D8: @ 80A41D8 + push {r4,r5,lr} + ldr r1, =gUnknown_020383F0 + ldr r2, [r1] + adds r0, r2, 0x1 + str r0, [r1] + ldrb r0, [r2, 0x1] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A41F8 + ldr r0, =gUnknown_02038437 + b _080A41FA + .pool +_080A41F8: + ldr r0, =gUnknown_02038436 +_080A41FA: + ldrb r4, [r0] + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080A4266 + adds r0, r4, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _080A4226 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A4230 +_080A4226: + movs r5, 0 + b _080A4232 + .pool +_080A4230: + movs r5, 0x1 +_080A4232: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + bl sub_80A438C + ldr r0, =sub_80A40F4 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, =gUnknown_020383FE + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r1, =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + strh r4, [r0, 0x8] + strh r5, [r0, 0xA] + movs r1, 0x1 + strh r1, [r0, 0xC] + strh r2, [r0, 0xE] +_080A4266: + movs r0, 0x2 + eors r4, r0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080A42D8 + adds r0, r4, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _080A4294 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A42A4 +_080A4294: + movs r5, 0 + b _080A42A6 + .pool +_080A42A4: + movs r5, 0x1 +_080A42A6: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + bl sub_80A438C + ldr r0, =sub_80A40F4 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, =gUnknown_020383FE + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r1, =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x8] + strh r5, [r0, 0xA] + movs r1, 0x1 + strh r1, [r0, 0xC] + strh r1, [r0, 0xE] +_080A42D8: + ldr r1, =gUnknown_020383F0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r1, =gUnknown_020383FC + movs r0, 0x1 + strb r0, [r1] + ldr r1, =gUnknown_020383F8 + ldr r0, =move_anim_waiter + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A41D8 + + thumb_func_start b_side_obj__get_some_boolean +b_side_obj__get_some_boolean: @ 80A4310 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A4330 + ldr r0, =gUnknown_02038436 + ldrb r0, [r0] + cmp r4, r0 + beq _080A4374 + b _080A4384 + .pool +_080A4330: + adds r0, r4, 0 + bl sub_80A6A90 + lsls r0, 24 + cmp r0, 0 + beq _080A4384 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + bne _080A4374 + ldr r0, =gUnknown_020244D0 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A4374 + ldr r2, =gUnknown_02020630 + ldr r0, =gUnknown_020241E4 + adds r0, r5, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _080A4384 +_080A4374: + movs r0, 0x1 + b _080A4386 + .pool +_080A4384: + movs r0, 0 +_080A4386: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end b_side_obj__get_some_boolean + + thumb_func_start sub_80A438C +sub_80A438C: @ 80A438C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + lsls r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + cmp r1, 0 + beq _080A43AA + b _080A455E +_080A43AA: + bl sub_80A4DF0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A43DC + ldr r1, =0x06008000 + movs r2, 0x80 + lsls r2, 6 + movs r0, 0 + movs r3, 0x1 + bl RequestDma3Fill + ldr r1, =0x0600f000 + movs r2, 0x80 + lsls r2, 5 + movs r0, 0xFF + movs r3, 0 + bl RequestDma3Fill + b _080A43F8 + .pool +_080A43DC: + ldr r1, =0x06004000 + movs r2, 0x80 + lsls r2, 6 + movs r0, 0 + movs r3, 0x1 + bl RequestDma3Fill + ldr r1, =0x0600e000 + movs r2, 0x80 + lsls r2, 5 + movs r0, 0xFF + movs r3, 0 + bl RequestDma3Fill +_080A43F8: + add r0, sp, 0x10 + bl sub_80A6B30 + add r0, sp, 0x20 + movs r1, 0 + strh r1, [r0] + ldr r1, [sp, 0x10] + ldr r2, =0x01000800 + bl CpuSet + mov r0, sp + adds r0, 0x22 + movs r1, 0xFF + strh r1, [r0] + ldr r1, [sp, 0x14] + ldr r2, =0x01000400 + bl CpuSet + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x2 + bl lcd_bg_operations + movs r0, 0x1 + movs r1, 0 + movs r2, 0x1 + bl lcd_bg_operations + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl lcd_bg_operations + ldr r0, =gUnknown_020241E4 + adds r0, r6, r0 + ldrb r4, [r0] + ldr r5, =gUnknown_02022E18 + ldr r0, =gUnknown_02020630 + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x24] + ldrh r1, [r1, 0x20] + adds r0, r1 + negs r0, r0 + adds r0, 0x20 + strh r0, [r5] + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A447A + ldr r0, =gUnknown_02039F34 + ldr r0, [r0] + ldr r0, [r0, 0x18] + ldrh r0, [r0] + bl sub_80DB2A8 + lsls r0, 24 + cmp r0, 0 + beq _080A447A + ldrh r0, [r5] + subs r0, 0x1 + strh r0, [r5] +_080A447A: + ldr r5, =gUnknown_02022E1A + ldr r2, =gUnknown_02020630 + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x26] + ldrh r1, [r1, 0x22] + adds r0, r1 + negs r0, r0 + adds r0, 0x20 + strh r0, [r5] + mov r0, r9 + cmp r0, 0 + beq _080A44B0 + ldr r0, =gUnknown_020241E4 + adds r0, r6, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080A44B0: + ldr r0, =gUnknown_02022E18 + ldrh r1, [r0] + movs r0, 0x14 + bl SetGpuReg + ldrh r1, [r5] + movs r0, 0x16 + bl SetGpuReg + lsls r4, r6, 5 + ldr r0, =gUnknown_02037914 + adds r4, r0 + add r0, sp, 0x10 + ldrb r1, [r0, 0x8] + lsls r1, 4 + adds r0, r4, 0 + movs r2, 0x20 + bl gpu_pal_apply + add r0, sp, 0x10 + ldrb r1, [r0, 0x8] + lsls r1, 5 + movs r0, 0xA0 + lsls r0, 19 + adds r1, r0 + ldr r2, =0x04000008 + adds r0, r4, 0 + bl CpuSet + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A4524 + movs r3, 0 + b _080A452E + .pool +_080A4524: + adds r0, r6, 0 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r3, r0, 24 +_080A452E: + add r0, sp, 0x10 + ldrb r0, [r0, 0x8] + str r0, [sp] + ldr r0, [sp, 0x10] + str r0, [sp, 0x4] + ldr r0, [sp, 0x14] + str r0, [sp, 0x8] + add r0, sp, 0x10 + ldrh r0, [r0, 0xA] + str r0, [sp, 0xC] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl sub_8118FBC + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + bne _080A4558 + b _080A4666 +_080A4558: + bl sub_80A46A0 + b _080A4666 +_080A455E: + ldr r1, =0x06006000 + movs r2, 0x80 + lsls r2, 6 + movs r0, 0 + movs r3, 0x1 + bl RequestDma3Fill + ldr r1, =0x0600f000 + movs r7, 0x80 + lsls r7, 5 + movs r0, 0 + adds r2, r7, 0 + movs r3, 0x1 + bl RequestDma3Fill + add r0, sp, 0x10 + movs r1, 0x2 + bl sub_80A6B90 + add r0, sp, 0x24 + movs r4, 0 + strh r4, [r0] + ldr r1, [sp, 0x10] + adds r1, r7 + ldr r2, =0x01000800 + bl CpuSet + mov r0, sp + adds r0, 0x26 + strh r4, [r0] + ldr r1, [sp, 0x14] + movs r2, 0x80 + lsls r2, 4 + mov r8, r2 + add r1, r8 + ldr r2, =0x01000400 + bl CpuSet + movs r0, 0x2 + movs r1, 0x4 + movs r2, 0x2 + bl lcd_bg_operations + movs r0, 0x2 + movs r1, 0 + movs r2, 0x1 + bl lcd_bg_operations + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl lcd_bg_operations + ldr r0, =gUnknown_020241E4 + adds r2, r5, r0 + ldrb r4, [r2] + ldr r5, =gUnknown_02022E1C + ldr r3, =gUnknown_02020630 + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r1, 0x24] + ldrh r4, [r1, 0x20] + adds r0, r4 + negs r0, r0 + adds r0, 0x20 + strh r0, [r5] + ldr r4, =gUnknown_02022E1E + ldrh r0, [r1, 0x26] + ldrh r1, [r1, 0x22] + adds r0, r1 + negs r0, r0 + adds r0, 0x20 + strh r0, [r4] + mov r0, r9 + cmp r0, 0 + beq _080A460E + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080A460E: + ldrh r1, [r5] + movs r0, 0x18 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x1A + bl SetGpuReg + lsls r4, r6, 5 + ldr r0, =gUnknown_02037914 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x90 + movs r2, 0x20 + bl gpu_pal_apply + ldr r1, =0x05000120 + ldr r2, =0x04000008 + adds r0, r4, 0 + bl CpuSet + adds r0, r6, 0 + bl battle_get_per_side_status + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + add r0, sp, 0x10 + ldrb r0, [r0, 0x8] + str r0, [sp] + ldr r0, [sp, 0x10] + adds r0, r7 + str r0, [sp, 0x4] + ldr r0, [sp, 0x14] + add r0, r8 + str r0, [sp, 0x8] + add r0, sp, 0x10 + ldrh r0, [r0, 0xA] + str r0, [sp, 0xC] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl sub_8118FBC +_080A4666: + add sp, 0x28 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A438C + + thumb_func_start sub_80A46A0 +sub_80A46A0: @ 80A46A0 + push {r4-r7,lr} + sub sp, 0x10 + ldr r0, =gUnknown_02039F34 + ldr r0, [r0] + ldr r0, [r0, 0x18] + ldrh r0, [r0] + bl sub_80DB2A8 + lsls r0, 24 + cmp r0, 0 + beq _080A4712 + mov r0, sp + bl sub_80A6B30 + ldr r6, [sp, 0x4] + movs r5, 0 + movs r0, 0x7 + mov r12, r0 + movs r7, 0 +_080A46C6: + movs r4, 0 + adds r3, r7, r6 + mov r1, r12 + lsls r0, r1, 1 + adds r2, r0, r6 +_080A46D0: + ldrh r1, [r3] + ldrh r0, [r2] + strh r0, [r3] + strh r1, [r2] + adds r3, 0x2 + subs r2, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _080A46D0 + movs r0, 0x20 + add r12, r0 + adds r7, 0x40 + adds r5, 0x1 + cmp r5, 0x7 + ble _080A46C6 + movs r5, 0 + movs r1, 0x80 + lsls r1, 3 + adds r3, r1, 0 +_080A46F6: + adds r2, r5, 0x1 + lsls r0, r5, 6 + adds r1, r0, r6 + movs r4, 0x7 +_080A46FE: + ldrh r0, [r1] + eors r0, r3 + strh r0, [r1] + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080A46FE + adds r5, r2, 0 + cmp r5, 0x7 + ble _080A46F6 +_080A4712: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A46A0 + + thumb_func_start sub_80A4720 +sub_80A4720: @ 80A4720 + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r1 + adds r6, r2, 0 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r3, 24 + movs r0, 0x40 + mov r12, r0 + cmp r3, 0 + bne _080A473C + movs r1, 0x20 + mov r12, r1 +_080A473C: + lsls r0, r5, 28 + lsrs r5, r0, 16 + movs r0, 0 + cmp r0, r12 + bge _080A476C + ldr r7, =0x00000fff +_080A4748: + adds r4, r0, 0x1 + lsls r0, 6 + mov r1, r8 + adds r3, r0, r1 + movs r2, 0x1F +_080A4752: + ldrh r1, [r3] + adds r0, r7, 0 + ands r0, r1 + orrs r0, r5 + adds r0, r6 + strh r0, [r3] + adds r3, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _080A4752 + adds r0, r4, 0 + cmp r0, r12 + blt _080A4748 +_080A476C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A4720 + + thumb_func_start sub_80A477C +sub_80A477C: @ 80A477C + push {r4,lr} + sub sp, 0x10 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r0, sp + bl sub_80A6B30 + cmp r4, 0 + beq _080A479C + bl sub_80A4DF0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080A47B8 +_080A479C: + movs r0, 0x1 + bl sub_80A6C68 + ldr r0, =gUnknown_02022E18 + movs r1, 0 + strh r1, [r0] + ldr r0, =gUnknown_02022E1A + strh r1, [r0] + b _080A47C6 + .pool +_080A47B8: + movs r0, 0x2 + bl sub_80A6C68 + ldr r0, =gUnknown_02022E1C + strh r4, [r0] + ldr r0, =gUnknown_02022E1E + strh r4, [r0] +_080A47C6: + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A477C + + thumb_func_start task_pA_ma0A_obj_to_bg_pal +@ void task_pA_ma0A_obj_to_bg_pal(int task_id) +task_pA_ma0A_obj_to_bg_pal: @ 80A47D8 + push {r4-r6,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r5, r1, r2 + ldrb r4, [r5, 0x8] + ldrb r6, [r5, 0x14] + mov r0, sp + bl sub_80A6B30 + ldr r0, =gUnknown_02020630 + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x24] + ldrh r0, [r1, 0x20] + adds r2, r0 + ldrh r0, [r5, 0xA] + subs r0, r2 + lsls r0, 16 + lsrs r3, r0, 16 + ldrh r2, [r1, 0x26] + ldrh r1, [r1, 0x22] + adds r2, r1 + ldrh r0, [r5, 0xC] + subs r0, r2 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x12 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080A4870 + ldr r1, =gUnknown_02022E18 + lsls r0, r3, 16 + asrs r0, 16 + ldrh r3, [r5, 0xE] + adds r0, r3 + strh r0, [r1] + ldr r1, =gUnknown_02022E1A + lsls r0, r2, 16 + asrs r0, 16 + ldrh r5, [r5, 0x10] + adds r0, r5 + strh r0, [r1] + lsls r0, r6, 5 + ldr r2, =gUnknown_02037D14 + adds r0, r2 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 5 + ldr r3, =0xfffffe00 + adds r2, r3 + adds r1, r2 + ldr r2, =0x04000008 + bl CpuSet + b _080A4896 + .pool +_080A4870: + ldr r1, =gUnknown_02022E1C + lsls r0, r3, 16 + asrs r0, 16 + ldrh r3, [r5, 0xE] + adds r0, r3 + strh r0, [r1] + ldr r1, =gUnknown_02022E1E + lsls r0, r2, 16 + asrs r0, 16 + ldrh r5, [r5, 0x10] + adds r0, r5 + strh r0, [r1] + lsls r0, r6, 5 + ldr r1, =gUnknown_02037D14 + adds r0, r1 + subs r1, 0xE0 + ldr r2, =0x04000008 + bl CpuSet +_080A4896: + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end task_pA_ma0A_obj_to_bg_pal + + thumb_func_start ma0B_0807324C +ma0B_0807324C: @ 80A48B0 + push {r4,r5,lr} + ldr r0, =gUnknown_020383F0 + ldr r2, [r0] + adds r1, r2, 0x1 + str r1, [r0] + ldrb r4, [r2, 0x1] + cmp r4, 0 + bne _080A48C8 + movs r4, 0x2 + b _080A48D2 + .pool +_080A48C8: + cmp r4, 0x1 + bne _080A48CE + movs r4, 0x3 +_080A48CE: + cmp r4, 0 + beq _080A48D6 +_080A48D2: + cmp r4, 0x2 + bne _080A48E0 +_080A48D6: + ldr r0, =gUnknown_02038436 + b _080A48E2 + .pool +_080A48E0: + ldr r0, =gUnknown_02038437 +_080A48E2: + ldrb r5, [r0] + ldr r3, =gUnknown_02038430 + ldrb r0, [r3] + cmp r0, 0xFF + beq _080A4908 + ldr r2, =gUnknown_02020630 + ldr r0, =gUnknown_020241E4 + adds r0, r5, r0 + 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] +_080A4908: + cmp r4, 0x1 + bls _080A4948 + ldrb r0, [r3, 0x1] + cmp r0, 0xFF + beq _080A4948 + ldr r3, =gUnknown_02020630 + ldr r2, =gUnknown_020241E4 + movs r1, 0x2 + adds r0, r5, 0 + eors r0, r1 + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + b _080A494A + .pool +_080A4948: + movs r4, 0 +_080A494A: + ldr r0, =sub_80A4980 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + strh r5, [r1, 0xC] + ldr r1, =gUnknown_020383F0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end ma0B_0807324C + + thumb_func_start sub_80A4980 +sub_80A4980: @ 80A4980 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + beq _080A4A0A + ldrb r0, [r1, 0xC] + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _080A49BC + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A49C4 +_080A49BC: + movs r4, 0 + b _080A49C6 + .pool +_080A49C4: + movs r4, 0x1 +_080A49C6: + ldr r6, =gUnknown_02038430 + ldrb r0, [r6] + cmp r0, 0xFF + beq _080A49DE + adds r0, r4, 0 + bl sub_80A477C + ldrb r0, [r6] + bl DestroyTask + movs r0, 0xFF + strb r0, [r6] +_080A49DE: + ldr r0, =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + ble _080A4A04 + movs r0, 0x1 + eors r4, r0 + adds r0, r4, 0 + bl sub_80A477C + ldrb r0, [r6, 0x1] + bl DestroyTask + movs r0, 0xFF + strb r0, [r6, 0x1] +_080A4A04: + adds r0, r5, 0 + bl DestroyTask +_080A4A0A: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A4980 + + thumb_func_start sub_80A4A18 +sub_80A4A18: @ 80A4A18 + push {r4,r5,lr} + ldr r0, =gUnknown_020383F0 + ldr r2, [r0] + adds r1, r2, 0x1 + str r1, [r0] + ldrb r5, [r2, 0x1] + cmp r5, 0 + bne _080A4A30 + movs r5, 0x2 + b _080A4A3A + .pool +_080A4A30: + cmp r5, 0x1 + bne _080A4A36 + movs r5, 0x3 +_080A4A36: + cmp r5, 0 + beq _080A4A3E +_080A4A3A: + cmp r5, 0x2 + bne _080A4A48 +_080A4A3E: + ldr r0, =gUnknown_02038436 + b _080A4A4A + .pool +_080A4A48: + ldr r0, =gUnknown_02038437 +_080A4A4A: + ldrb r4, [r0] + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080A4A8A + adds r0, r4, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _080A4A76 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A4A80 +_080A4A76: + movs r1, 0 + b _080A4A82 + .pool +_080A4A80: + movs r1, 0x1 +_080A4A82: + adds r0, r4, 0 + movs r2, 0 + bl sub_80A438C +_080A4A8A: + movs r0, 0x2 + eors r4, r0 + cmp r5, 0x1 + bls _080A4ACA + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080A4ACA + adds r0, r4, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _080A4ABC + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A4AC0 +_080A4ABC: + movs r1, 0 + b _080A4AC2 +_080A4AC0: + movs r1, 0x1 +_080A4AC2: + adds r0, r4, 0 + movs r2, 0 + bl sub_80A438C +_080A4ACA: + ldr r1, =gUnknown_020383F0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A4A18 + + thumb_func_start ma23_8073484 +ma23_8073484: @ 80A4ADC + push {r4-r6,lr} + ldr r0, =gUnknown_020383F0 + ldr r2, [r0] + adds r1, r2, 0x1 + str r1, [r0] + ldrb r5, [r2, 0x1] + cmp r5, 0 + bne _080A4AF4 + movs r5, 0x2 + b _080A4AFE + .pool +_080A4AF4: + cmp r5, 0x1 + bne _080A4AFA + movs r5, 0x3 +_080A4AFA: + cmp r5, 0 + beq _080A4B02 +_080A4AFE: + cmp r5, 0x2 + bne _080A4B0C +_080A4B02: + ldr r0, =gUnknown_02038436 + b _080A4B0E + .pool +_080A4B0C: + ldr r0, =gUnknown_02038437 +_080A4B0E: + ldrb r6, [r0] + adds r0, r6, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080A4B38 + ldr r2, =gUnknown_02020630 + ldr r0, =gUnknown_020241E4 + adds r0, r6, r0 + 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] +_080A4B38: + cmp r5, 0x1 + bls _080A4B78 + movs r0, 0x2 + adds r4, r6, 0 + eors r4, r0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080A4B78 + ldr r2, =gUnknown_02020630 + ldr r0, =gUnknown_020241E4 + adds r0, r4, r0 + 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] + b _080A4B7A + .pool +_080A4B78: + movs r5, 0 +_080A4B7A: + ldr r0, =sub_80A4BB0 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + strh r6, [r1, 0xC] + ldr r1, =gUnknown_020383F0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end ma23_8073484 + + thumb_func_start sub_80A4BB0 +sub_80A4BB0: @ 80A4BB0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + beq _080A4C3E + ldrb r4, [r1, 0xC] + adds r0, r4, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _080A4BEE + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A4BF8 +_080A4BEE: + movs r5, 0 + b _080A4BFA + .pool +_080A4BF8: + movs r5, 0x1 +_080A4BFA: + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080A4C0C + adds r0, r5, 0 + bl sub_80A477C +_080A4C0C: + ldr r0, =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + ble _080A4C38 + movs r0, 0x2 + eors r4, r0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080A4C38 + movs r0, 0x1 + eors r5, r0 + adds r0, r5, 0 + bl sub_80A477C +_080A4C38: + adds r0, r6, 0 + bl DestroyTask +_080A4C3E: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A4BB0 + + thumb_func_start ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument +ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument: @ 80A4C48 + push {r4,r5,lr} + ldr r2, =gUnknown_020383F0 + ldr r0, [r2] + adds r1, r0, 0x1 + str r1, [r2] + ldrb r5, [r0, 0x1] + adds r0, r1, 0x1 + str r0, [r2] + ldrb r4, [r1, 0x1] + lsls r4, 8 + adds r0, 0x1 + str r0, [r2] + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + orrs r5, r4 + movs r0, 0x52 + adds r1, r5, 0 + bl SetGpuReg + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument + + thumb_func_start ma1E_set_BLDCNT +ma1E_set_BLDCNT: @ 80A4C80 + push {lr} + ldr r3, =gUnknown_020383F0 + ldr r0, [r3] + adds r2, r0, 0x1 + str r2, [r3] + ldrb r1, [r0, 0x1] + adds r0, r2, 0x1 + str r0, [r3] + ldrb r2, [r2, 0x1] + lsls r2, 8 + adds r0, 0x1 + str r0, [r3] + orrs r1, r2 + movs r0, 0x50 + bl SetGpuReg + pop {r0} + bx r0 + .pool + thumb_func_end ma1E_set_BLDCNT + + thumb_func_start ma0D_reset_BLDCNT_and_BLDALPHA +ma0D_reset_BLDCNT_and_BLDALPHA: @ 80A4CA8 + push {lr} + ldr r1, =gUnknown_020383F0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + pop {r0} + bx r0 + .pool + thumb_func_end ma0D_reset_BLDCNT_and_BLDALPHA + + thumb_func_start ma0E_call +ma0E_call: @ 80A4CCC + push {r4,lr} + ldr r4, =gUnknown_020383F0 + ldr r1, [r4] + adds r3, r1, 0x1 + str r3, [r4] + ldr r2, =gUnknown_020383F4 + adds r0, r1, 0x5 + str r0, [r2] + ldrb r1, [r1, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end ma0E_call + + thumb_func_start sub_80A4D00 +sub_80A4D00: @ 80A4D00 + ldr r0, =gUnknown_020383F0 + ldr r1, =gUnknown_020383F4 + ldr r1, [r1] + str r1, [r0] + bx lr + .pool + thumb_func_end sub_80A4D00 + + thumb_func_start ma10_080736AC +ma10_080736AC: @ 80A4D14 + push {r4,r5,lr} + ldr r5, =gUnknown_020383F0 + ldr r1, [r5] + adds r0, r1, 0x1 + str r0, [r5] + ldrb r2, [r1, 0x1] + adds r3, r0, 0x1 + str r3, [r5] + ldrb r4, [r0, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + orrs r4, r0 + adds r1, 0x4 + str r1, [r5] + ldr r0, =gUnknown_0203841E + lsls r2, 1 + adds r2, r0 + strh r4, [r2] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end ma10_080736AC + + thumb_func_start ma11_if_else +ma11_if_else: @ 80A4D48 + push {lr} + ldr r3, =gUnknown_020383F0 + ldr r2, [r3] + adds r0, r2, 0x1 + str r0, [r3] + ldr r0, =gUnknown_02038432 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A4D62 + adds r0, r2, 0x5 + str r0, [r3] +_080A4D62: + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r3] + pop {r0} + bx r0 + .pool + thumb_func_end ma11_if_else + + thumb_func_start ma12_cond_if +ma12_cond_if: @ 80A4D88 + push {r4,r5,lr} + ldr r5, =gUnknown_020383F0 + ldr r4, [r5] + adds r2, r4, 0x1 + str r2, [r5] + ldrb r1, [r4, 0x1] + adds r3, r2, 0x1 + str r3, [r5] + ldr r0, =gUnknown_02038432 + ldrb r0, [r0] + cmp r1, r0 + bne _080A4DC0 + ldrb r1, [r2, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r5] + b _080A4DC4 + .pool +_080A4DC0: + adds r0, r4, 0x6 + str r0, [r5] +_080A4DC4: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end ma12_cond_if + + thumb_func_start ma13_goto +ma13_goto: @ 80A4DCC + ldr r3, =gUnknown_020383F0 + ldr r0, [r3] + adds r2, r0, 0x1 + str r2, [r3] + ldrb r1, [r0, 0x1] + ldrb r0, [r2, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r3] + bx lr + .pool + thumb_func_end ma13_goto + + thumb_func_start sub_80A4DF0 +sub_80A4DF0: @ 80A4DF0 + push {lr} + ldr r0, =gUnknown_030022C0 + ldr r1, =0x00000439 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080A4E10 + movs r0, 0 + b _080A4E12 + .pool +_080A4E10: + movs r0, 0x1 +_080A4E12: + pop {r1} + bx r1 + thumb_func_end sub_80A4DF0 + + thumb_func_start ma14_load_background +ma14_load_background: @ 80A4E18 + push {r4,lr} + ldr r1, =gUnknown_020383F0 + ldr r2, [r1] + adds r0, r2, 0x1 + str r0, [r1] + ldrb r4, [r2, 0x1] + adds r0, 0x1 + str r0, [r1] + ldr r0, =task_p5_load_battle_screen_elements + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + ldr r1, =gUnknown_02038433 + movs r0, 0x1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end ma14_load_background + + thumb_func_start sub_80A4E5C +sub_80A4E5C: @ 80A4E5C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r2, =gUnknown_020383F0 + ldr r1, [r2] + adds r0, r1, 0x1 + str r0, [r2] + ldrb r3, [r1, 0x1] + mov r8, r3 + ldrb r7, [r0, 0x1] + ldrb r6, [r0, 0x2] + adds r1, 0x4 + str r1, [r2] + ldr r0, =task_p5_load_battle_screen_elements + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A4EA8 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r6, [r0, 0x8] + b _080A4EDA + .pool +_080A4EA8: + ldr r0, =gUnknown_02038437 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080A4ECC + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r7, [r0, 0x8] + b _080A4EDA + .pool +_080A4ECC: + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + mov r1, r8 + strh r1, [r0, 0x8] +_080A4EDA: + ldr r1, =gUnknown_02038433 + movs r0, 0x1 + strb r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A4E5C + + thumb_func_start task_p5_load_battle_screen_elements +task_p5_load_battle_screen_elements: @ 80A4EF4 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r6, [r4, 0x1C] + movs r0, 0x1C + ldrsh r3, [r4, r0] + adds r7, r1, 0 + cmp r3, 0 + bne _080A4F2C + str r3, [sp] + movs r0, 0xE8 + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_80A27B0 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + b _080A4FBC + .pool +_080A4F2C: + ldr r2, =gUnknown_02037FD4 + ldrb r1, [r2, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080A4FBC + cmp r3, 0x1 + bne _080A4F50 + adds r0, r6, 0x1 + strh r0, [r4, 0x1C] + ldr r1, =gUnknown_02038433 + movs r0, 0x2 + strb r0, [r1] + b _080A4F94 + .pool +_080A4F50: + cmp r3, 0x2 + bne _080A4F94 + ldrh r0, [r4, 0x8] + lsls r2, r0, 16 + asrs r1, r2, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080A4F68 + bl dp01t_11_3_message_for_player_only + b _080A4F6E +_080A4F68: + lsrs r0, r2, 16 + bl sub_80A4FC8 +_080A4F6E: + movs r0, 0x1 + str r0, [sp] + movs r0, 0xE8 + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_80A27B0 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x1C] + adds r1, 0x1 + strh r1, [r0, 0x1C] + b _080A4FBC + .pool +_080A4F94: + ldrb r1, [r2, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080A4FBC + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r7 + movs r1, 0x1C + ldrsh r0, [r0, r1] + cmp r0, 0x3 + bne _080A4FBC + adds r0, r5, 0 + bl DestroyTask + ldr r0, =gUnknown_02038433 + strb r4, [r0] +_080A4FBC: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end task_p5_load_battle_screen_elements + + thumb_func_start sub_80A4FC8 +sub_80A4FC8: @ 80A4FC8 + push {r4-r7,lr} + lsls r0, 16 + lsrs r7, r0, 16 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A5050 + ldr r6, =gUnknown_08525D54 + lsls r4, r7, 1 + adds r4, r7 + lsls r4, 2 + adds r0, r6, 0 + adds r0, 0x8 + adds r0, r4, r0 + ldr r0, [r0] + ldr r5, =0x0201c000 + adds r1, r5, 0 + bl LZDecompressWram + bl sub_80A6D94 + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + adds r1, r5, 0 + movs r3, 0 + bl sub_80A4720 + ldr r1, =0x0600d000 + ldr r0, =0x040000d4 + str r5, [r0] + str r1, [r0, 0x4] + ldr r1, =0x84000200 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + adds r0, r4, r6 + ldr r0, [r0] + ldr r1, =0x06002000 + bl LZDecompressVram + adds r6, 0x4 + adds r4, r6 + ldr r4, [r4] + bl sub_80A6D94 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 20 + adds r0, r4, 0 + movs r2, 0x20 + bl decompress_palette + b _080A507E + .pool +_080A5050: + ldr r5, =gUnknown_08525D54 + lsls r4, r7, 1 + adds r4, r7 + lsls r4, 2 + adds r0, r5, 0 + adds r0, 0x8 + adds r0, r4, r0 + ldr r0, [r0] + ldr r1, =0x0600d000 + bl LZDecompressVram + adds r0, r4, r5 + ldr r0, [r0] + ldr r1, =0x06008000 + bl LZDecompressVram + adds r5, 0x4 + adds r4, r5 + ldr r0, [r4] + movs r1, 0x20 + movs r2, 0x20 + bl decompress_palette +_080A507E: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A4FC8 + + thumb_func_start dp01t_11_3_message_for_player_only +dp01t_11_3_message_for_player_only: @ 80A5090 + push {lr} + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A50A2 + bl sub_80D7724 + b _080A50A6 +_080A50A2: + bl load_battle_oval_graphics +_080A50A6: + pop {r0} + bx r0 + thumb_func_end dp01t_11_3_message_for_player_only + + thumb_func_start ma15_load_battle_screen_elements +ma15_load_battle_screen_elements: @ 80A50AC + push {lr} + ldr r1, =gUnknown_020383F0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r0, =task_p5_load_battle_screen_elements + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, =0x0000ffff + strh r0, [r1, 0x8] + ldr r1, =gUnknown_02038433 + movs r0, 0x1 + strb r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end ma15_load_battle_screen_elements + + thumb_func_start ma16_wait_for_battle_screen_elements_s2 +ma16_wait_for_battle_screen_elements_s2: @ 80A50F0 + push {lr} + ldr r0, =gUnknown_02038433 + ldrb r0, [r0] + cmp r0, 0x2 + bne _080A5114 + ldr r1, =gUnknown_020383F0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r1, =gUnknown_020383FC + movs r0, 0 + b _080A5118 + .pool +_080A5114: + ldr r1, =gUnknown_020383FC + movs r0, 0x1 +_080A5118: + strb r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end ma16_wait_for_battle_screen_elements_s2 + + thumb_func_start sub_80A5124 +sub_80A5124: @ 80A5124 + push {lr} + ldr r0, =gUnknown_02038433 + ldrb r2, [r0] + cmp r2, 0 + bne _080A5148 + ldr r0, =gUnknown_020383F0 + ldr r1, [r0] + adds r1, 0x1 + str r1, [r0] + ldr r0, =gUnknown_020383FC + strb r2, [r0] + b _080A514E + .pool +_080A5148: + ldr r1, =gUnknown_020383FC + movs r0, 0x1 + strb r0, [r1] +_080A514E: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A5124 + + thumb_func_start ma18_load_background_probably +ma18_load_background_probably: @ 80A5158 + push {r4,lr} + ldr r4, =gUnknown_020383F0 + ldr r1, [r4] + adds r0, r1, 0x1 + str r0, [r4] + ldrb r0, [r1, 0x1] + bl sub_80A4FC8 + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end ma18_load_background_probably + + thumb_func_start sub_80A5178 +sub_80A5178: @ 80A5178 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + bne _080A51C0 + ldr r0, =gUnknown_020244D0 + ldr r1, [r0] + ldr r0, =gUnknown_02038436 + ldrb r2, [r0] + ldr r1, [r1, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A51C0 + adds r0, r2, 0 + bl battle_side_get_owner + lsls r0, 24 + movs r4, 0xC0 + cmp r0, 0 + beq _080A5252 + movs r4, 0x3F + b _080A5252 + .pool +_080A51C0: + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A51E8 + ldr r0, =gUnknown_02038436 + ldr r1, =gUnknown_02038437 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _080A524C + cmp r0, 0x2 + bne _080A524C + cmp r4, 0x3F + beq _080A525E + b _080A524C + .pool +_080A51E8: + ldr r0, =gUnknown_02038436 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080A5226 + ldr r0, =gUnknown_02038437 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080A5252 + lsls r0, r4, 24 + asrs r1, r0, 24 + cmp r1, 0x3F + bne _080A5218 + movs r4, 0xC0 + b _080A5252 + .pool +_080A5218: + movs r0, 0x40 + negs r0, r0 + cmp r1, r0 + beq _080A5252 + negs r0, r1 + lsls r0, 24 + b _080A5250 +_080A5226: + ldr r0, =gUnknown_02038437 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A524C + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0x40 + negs r1, r1 + cmp r0, r1 + bne _080A5252 + movs r4, 0x3F + b _080A5252 + .pool +_080A524C: + lsls r0, r4, 24 + negs r0, r0 +_080A5250: + lsrs r4, r0, 24 +_080A5252: + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0x3F + ble _080A525E + movs r4, 0x3F + b _080A526C +_080A525E: + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0x40 + negs r1, r1 + cmp r0, r1 + bge _080A526C + movs r4, 0xC0 +_080A526C: + lsls r0, r4, 24 + asrs r0, 24 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A5178 + + thumb_func_start sub_80A5278 +sub_80A5278: @ 80A5278 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + bne _080A52C0 + ldr r0, =gUnknown_020244D0 + ldr r1, [r0] + ldr r0, =gUnknown_02038436 + ldrb r2, [r0] + ldr r1, [r1, 0x4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A52C0 + adds r0, r2, 0 + bl battle_side_get_owner + lsls r0, 24 + movs r4, 0xC0 + cmp r0, 0 + beq _080A52DE + movs r4, 0x3F + b _080A52DE + .pool +_080A52C0: + ldr r0, =gUnknown_02038436 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080A52D8 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A52DE +_080A52D8: + lsls r0, r4, 24 + negs r0, r0 + lsrs r4, r0, 24 +_080A52DE: + lsls r0, r4, 24 + asrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80A5278 + + thumb_func_start sub_80A52EC +sub_80A52EC: @ 80A52EC + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + asrs r2, r0, 16 + cmp r2, 0x3F + ble _080A52FC + movs r1, 0x3F + b _080A5306 +_080A52FC: + movs r0, 0x40 + negs r0, r0 + cmp r2, r0 + bge _080A5306 + ldr r1, =0x0000ffc0 +_080A5306: + lsls r0, r1, 16 + asrs r0, 16 + pop {r1} + bx r1 + .pool + thumb_func_end sub_80A52EC + + thumb_func_start sub_80A5314 +sub_80A5314: @ 80A5314 + push {lr} + lsls r2, 16 + lsrs r2, 16 + adds r3, r2, 0 + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + cmp r0, r1 + bge _080A5332 + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0 + bge _080A5342 + b _080A5340 +_080A5332: + cmp r0, r1 + ble _080A5348 + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, 0 + bge _080A5340 + negs r0, r0 +_080A5340: + negs r0, r0 +_080A5342: + lsls r0, 16 + lsrs r0, 16 + b _080A534A +_080A5348: + movs r0, 0 +_080A534A: + lsls r0, 16 + asrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80A5314 + + thumb_func_start ma19_08073BC8 +ma19_08073BC8: @ 80A5354 + push {r4,r5,lr} + ldr r5, =gUnknown_020383F0 + ldr r0, [r5] + adds r1, r0, 0x1 + str r1, [r5] + ldrb r4, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r4, r0 + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_80A5178 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + adds r0, r4, 0 + bl audio_play_and_stuff + ldr r0, [r5] + adds r0, 0x3 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end ma19_08073BC8 + + thumb_func_start ma1A_8073C00 +ma1A_8073C00: @ 80A538C + push {r4,lr} + ldr r4, =gUnknown_020383F0 + ldr r1, [r4] + adds r0, r1, 0x1 + str r0, [r4] + movs r0, 0x1 + ldrsb r0, [r1, r0] + bl sub_80A5178 + lsls r0, 24 + asrs r0, 24 + bl sub_80A3870 + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end ma1A_8073C00 + + thumb_func_start ma1B_8073C2C +ma1B_8073C2C: @ 80A53B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, =gUnknown_020383F0 + mov r10, r0 + ldr r0, [r0] + adds r1, r0, 0x1 + mov r2, r10 + str r1, [r2] + ldrb r0, [r0, 0x1] + mov r9, r0 + ldrb r0, [r1, 0x1] + lsls r0, 8 + mov r2, r9 + orrs r2, r0 + mov r9, r2 + ldrb r4, [r1, 0x3] + ldrb r6, [r1, 0x4] + ldrb r7, [r1, 0x5] + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_80A5178 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + asrs r4, 24 + adds r0, r4, 0 + bl sub_80A5178 + mov r8, r0 + lsls r5, 24 + asrs r5, 24 + mov r0, r8 + lsls r0, 24 + asrs r0, 24 + mov r8, r0 + lsls r6, 24 + asrs r6, 24 + adds r0, r5, 0 + mov r1, r8 + adds r2, r6, 0 + bl sub_80A5314 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =c3_08073CEC + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + mov r2, r8 + strh r2, [r1, 0xA] + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0xC] + strh r7, [r1, 0xE] + strh r5, [r1, 0x10] + mov r0, r9 + adds r1, r5, 0 + bl audio_play_and_stuff + ldr r1, =gUnknown_020383FF + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r1, r10 + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end ma1B_8073C2C + + thumb_func_start c3_08073CEC +c3_08073CEC: @ 80A5478 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r7, 0 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x18] + adds r1, r0, 0x1 + strh r1, [r2, 0x18] + lsls r0, 16 + asrs r0, 16 + movs r3, 0xE + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _080A54FC + strh r7, [r2, 0x18] + ldrh r6, [r2, 0x8] + ldrh r3, [r2, 0xA] + movs r4, 0x10 + ldrsh r0, [r2, r4] + movs r4, 0xC + ldrsh r1, [r2, r4] + adds r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 + strh r4, [r2, 0x10] + cmp r1, 0 + bne _080A54C0 + lsls r2, r3, 16 + b _080A54E4 + .pool +_080A54C0: + lsls r1, r6, 16 + lsls r0, r3, 16 + asrs r3, r0, 16 + adds r2, r0, 0 + cmp r1, r2 + bge _080A54D6 + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, r3 + blt _080A54E0 + b _080A54E4 +_080A54D6: + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, r3 + bgt _080A54E0 + movs r7, 0x1 +_080A54E0: + cmp r7, 0 + beq _080A54F4 +_080A54E4: + lsrs r4, r2, 16 + adds r0, r5, 0 + bl DestroyTask + ldr r1, =gUnknown_020383FF + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080A54F4: + lsls r0, r4, 24 + asrs r0, 24 + bl sub_80A3870 +_080A54FC: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end c3_08073CEC + + thumb_func_start sub_80A5508 +sub_80A5508: @ 80A5508 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + ldr r0, =gUnknown_020383F0 + mov r9, r0 + ldr r0, [r0] + adds r1, r0, 0x1 + mov r2, r9 + str r1, [r2] + ldrb r0, [r0, 0x1] + mov r8, r0 + ldrb r0, [r1, 0x1] + lsls r0, 8 + mov r2, r8 + orrs r2, r0 + mov r8, r2 + ldrb r4, [r1, 0x2] + ldrb r5, [r1, 0x3] + ldrb r6, [r1, 0x4] + ldrb r1, [r1, 0x5] + mov r10, r1 + ldr r0, =c3_08073CEC + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0x8] + lsls r5, 24 + asrs r5, 24 + strh r5, [r1, 0xA] + lsls r6, 24 + asrs r6, 24 + strh r6, [r1, 0xC] + mov r0, r10 + strh r0, [r1, 0xE] + strh r4, [r1, 0x10] + mov r0, r8 + adds r1, r4, 0 + bl audio_play_and_stuff + ldr r1, =gUnknown_020383FF + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r1, r9 + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A5508 + + thumb_func_start sub_80A559C +sub_80A559C: @ 80A559C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, =gUnknown_020383F0 + mov r10, r0 + ldr r0, [r0] + adds r1, r0, 0x1 + mov r2, r10 + str r1, [r2] + ldrb r0, [r0, 0x1] + mov r9, r0 + ldrb r0, [r1, 0x1] + lsls r0, 8 + mov r2, r9 + orrs r2, r0 + mov r9, r2 + ldrb r4, [r1, 0x3] + ldrb r0, [r1, 0x4] + mov r8, r0 + ldrb r7, [r1, 0x5] + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_80A5278 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + asrs r4, 24 + adds r0, r4, 0 + bl sub_80A5278 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + mov r1, r8 + lsls r1, 24 + asrs r1, 24 + mov r8, r1 + mov r0, r8 + bl sub_80A5278 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =c3_08073CEC + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + lsls r6, 24 + asrs r6, 24 + strh r6, [r1, 0x8] + lsls r5, 24 + asrs r5, 24 + strh r5, [r1, 0xA] + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0xC] + strh r7, [r1, 0xE] + strh r6, [r1, 0x10] + mov r0, r9 + adds r1, r6, 0 + bl audio_play_and_stuff + ldr r1, =gUnknown_020383FF + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r2, r10 + ldr r0, [r2] + adds r0, 0x6 + str r0, [r2] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A559C + + thumb_func_start ma1C_8073ED0 +ma1C_8073ED0: @ 80A565C + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + ldr r6, =gUnknown_020383F0 + ldr r0, [r6] + adds r1, r0, 0x1 + str r1, [r6] + ldrb r5, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r5, r0 + ldrb r0, [r1, 0x3] + mov r8, r0 + ldrb r2, [r1, 0x4] + mov r9, r2 + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_80A5178 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =sub_80A56E4 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0xA] + mov r2, r8 + strh r2, [r1, 0xC] + mov r2, r9 + strh r2, [r1, 0xE] + mov r2, r8 + strh r2, [r1, 0x18] + ldr r1, [r1] + bl _call_via_r1 + ldr r1, =gUnknown_020383FF + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x5 + str r0, [r6] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end ma1C_8073ED0 + + thumb_func_start sub_80A56E4 +sub_80A56E4: @ 80A56E4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x18] + adds r1, r0, 0x1 + strh r1, [r2, 0x18] + lsls r0, 16 + asrs r0, 16 + movs r3, 0xC + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _080A5732 + movs r0, 0 + strh r0, [r2, 0x18] + ldrh r0, [r2, 0x8] + ldrb r1, [r2, 0xA] + ldrh r4, [r2, 0xE] + subs r4, 0x1 + strh r4, [r2, 0xE] + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + asrs r1, 24 + bl audio_play_and_stuff + cmp r4, 0 + bne _080A5732 + adds r0, r5, 0 + bl DestroyTask + ldr r1, =gUnknown_020383FF + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080A5732: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A56E4 + + thumb_func_start ma1D_08073FB4 +ma1D_08073FB4: @ 80A5740 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r6, =gUnknown_020383F0 + ldr r0, [r6] + adds r1, r0, 0x1 + str r1, [r6] + ldrb r5, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r5, r0 + ldrb r0, [r1, 0x3] + mov r8, r0 + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_80A5178 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =sub_80A57B4 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0xA] + mov r0, r8 + strh r0, [r1, 0xC] + ldr r1, =gUnknown_020383FF + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x4 + str r0, [r6] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end ma1D_08073FB4 + + thumb_func_start sub_80A57B4 +sub_80A57B4: @ 80A57B4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0xC] + subs r1, r0, 0x1 + strh r1, [r2, 0xC] + lsls r0, 16 + cmp r0, 0 + bgt _080A57E8 + ldrh r0, [r2, 0x8] + movs r1, 0xA + ldrsb r1, [r2, r1] + bl audio_play_and_stuff + adds r0, r4, 0 + bl DestroyTask + ldr r1, =gUnknown_020383FF + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080A57E8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A57B4 + + thumb_func_start sub_80A57F8 +sub_80A57F8: @ 80A57F8 + push {r4-r6,lr} + ldr r4, =gUnknown_020383F0 + ldr r1, [r4] + adds r3, r1, 0x1 + str r3, [r4] + ldrb r2, [r1, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r6, r2, r0 + adds r0, r1, 0x5 + str r0, [r4] + ldrb r0, [r1, 0x5] + adds r1, 0x6 + str r1, [r4] + cmp r0, 0 + beq _080A5842 + adds r5, r4, 0 + ldr r4, =gUnknown_0203841E + adds r3, r0, 0 +_080A582A: + ldr r2, [r5] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + orrs r1, r0 + strh r1, [r4] + adds r2, 0x2 + str r2, [r5] + adds r4, 0x2 + subs r3, 0x1 + cmp r3, 0 + bne _080A582A +_080A5842: + adds r0, r6, 0 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r6 + ldr r1, =gUnknown_020383FF + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A57F8 + + thumb_func_start ma20_wait_for_something +ma20_wait_for_something: @ 80A586C + push {r4,r5,lr} + ldr r0, =gUnknown_020383FF + ldrb r5, [r0] + cmp r5, 0 + bne _080A58B4 + bl mplay_has_finished_maybe + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080A58CC + ldr r4, =gUnknown_0203842E + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5A + bls _080A58BA + ldr r0, =gMPlay_SE1 + bl m4aMPlayStop + ldr r0, =gMPlay_SE2 + bl m4aMPlayStop + strh r5, [r4] + b _080A58DE + .pool +_080A58B4: + ldr r1, =gUnknown_0203842E + movs r0, 0 + strh r0, [r1] +_080A58BA: + ldr r1, =gUnknown_020383FC + movs r0, 0x1 + strb r0, [r1] + b _080A58DE + .pool +_080A58CC: + ldr r0, =gUnknown_0203842E + movs r2, 0 + strh r1, [r0] + ldr r1, =gUnknown_020383F0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r0, =gUnknown_020383FC + strb r2, [r0] +_080A58DE: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end ma20_wait_for_something + + thumb_func_start ma21_08074164 +ma21_08074164: @ 80A58F0 + push {r4-r6,lr} + ldr r5, =gUnknown_020383F0 + ldr r4, [r5] + adds r3, r4, 0x1 + str r3, [r5] + ldrb r2, [r4, 0x1] + ldrb r1, [r3, 0x1] + ldrb r0, [r3, 0x2] + lsls r0, 8 + orrs r1, r0 + ldr r0, =gUnknown_0203841E + lsls r2, 1 + adds r2, r0 + lsls r1, 16 + asrs r1, 16 + movs r6, 0 + ldrsh r0, [r2, r6] + cmp r1, r0 + bne _080A5938 + ldrb r1, [r3, 0x3] + ldrb r0, [r3, 0x4] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x5] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x6] + lsls r0, 24 + adds r1, r0 + str r1, [r5] + b _080A593E + .pool +_080A5938: + adds r0, r4, 0 + adds r0, 0x8 + str r0, [r5] +_080A593E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end ma21_08074164 + + thumb_func_start sub_80A5944 +sub_80A5944: @ 80A5944 + push {r4,lr} + ldr r4, =gUnknown_020383F0 + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + beq _080A5978 + ldr r2, [r4] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r4] + b _080A597E + .pool +_080A5978: + ldr r0, [r4] + adds r0, 0x4 + str r0, [r4] +_080A597E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A5944 + + thumb_func_start sub_80A5984 +sub_80A5984: @ 80A5984 + push {r4,lr} + ldr r0, =gUnknown_020383F0 + ldr r1, [r0] + ldrb r2, [r1, 0x1] + adds r1, 0x2 + str r1, [r0] + cmp r2, 0 + beq _080A59A0 + ldr r0, =gUnknown_02038437 + b _080A59A2 + .pool +_080A59A0: + ldr r0, =gUnknown_02038436 +_080A59A2: + ldrb r0, [r0] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + bne _080A59D2 + cmp r4, 0 + beq _080A59BE + cmp r4, 0x3 + bne _080A59D2 +_080A59BE: + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl lcd_bg_operations + movs r0, 0x2 + movs r1, 0x4 + movs r2, 0x2 + bl lcd_bg_operations +_080A59D2: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A5984 + + thumb_func_start sub_80A59DC +sub_80A59DC: @ 80A59DC + push {lr} + ldr r0, =gUnknown_020383F0 + ldr r1, [r0] + adds r1, 0x1 + str r1, [r0] + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + bne _080A5A04 + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl lcd_bg_operations + movs r0, 0x2 + movs r1, 0x4 + movs r2, 0x2 + bl lcd_bg_operations +_080A5A04: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A59DC + + thumb_func_start sub_80A5A0C +sub_80A5A0C: @ 80A5A0C + push {r4-r7,lr} + ldr r1, =gUnknown_020383F0 + ldr r0, [r1] + ldrb r6, [r0, 0x1] + adds r0, 0x2 + str r0, [r1] + ldr r7, =gUnknown_02038436 + ldrb r0, [r7] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r5, =gUnknown_02038437 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _080A5A78 + cmp r6, 0 + beq _080A5A48 + ldrb r0, [r5] + b _080A5A4A + .pool +_080A5A48: + ldrb r0, [r7] +_080A5A4A: + bl battle_get_per_side_status + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + bne _080A5A78 + cmp r4, 0 + beq _080A5A64 + cmp r4, 0x3 + bne _080A5A78 +_080A5A64: + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl lcd_bg_operations + movs r0, 0x2 + movs r1, 0x4 + movs r2, 0x2 + bl lcd_bg_operations +_080A5A78: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A5A0C + + thumb_func_start ma2B_make_side_invisible +ma2B_make_side_invisible: @ 80A5A80 + push {r4,lr} + ldr r4, =gUnknown_020383F0 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080A5AA8 + ldr r1, =gUnknown_02020630 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080A5AA8: + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end ma2B_make_side_invisible + + thumb_func_start ma2C_make_side_visible +ma2C_make_side_visible: @ 80A5ABC + push {r4,lr} + ldr r4, =gUnknown_020383F0 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080A5AE6 + ldr r1, =gUnknown_02020630 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_080A5AE6: + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end ma2C_make_side_visible + + thumb_func_start sub_80A5AFC +sub_80A5AFC: @ 80A5AFC + push {r4-r7,lr} + ldr r1, =gUnknown_020383F0 + ldr r0, [r1] + ldrb r7, [r0, 0x1] + adds r0, 0x2 + str r0, [r1] + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + bne _080A5BA6 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080A5BA6 + ldr r6, =gUnknown_02038436 + ldrb r0, [r6] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r5, =gUnknown_02038437 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080A5BA6 + cmp r7, 0 + bne _080A5B54 + ldrb r0, [r6] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + b _080A5B60 + .pool +_080A5B54: + ldrb r0, [r5] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 +_080A5B60: + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080A5BA6 + ldr r1, =gUnknown_02020630 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r2, r0, r1 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + cmp r4, 0x2 + bne _080A5B90 + ldrb r0, [r2, 0x5] + movs r1, 0xC + orrs r0, r1 + strb r0, [r2, 0x5] +_080A5B90: + cmp r4, 0x1 + bne _080A5BA0 + movs r0, 0 + bl sub_80A477C + b _080A5BA6 + .pool +_080A5BA0: + movs r0, 0x1 + bl sub_80A477C +_080A5BA6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A5AFC + + thumb_func_start sub_80A5BAC +sub_80A5BAC: @ 80A5BAC + push {r4-r7,lr} + ldr r1, =gUnknown_020383F0 + ldr r0, [r1] + ldrb r7, [r0, 0x1] + adds r0, 0x2 + str r0, [r1] + bl sub_80A4DF0 + lsls r0, 24 + cmp r0, 0 + bne _080A5C38 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080A5C38 + ldr r6, =gUnknown_02038436 + ldrb r0, [r6] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r5, =gUnknown_02038437 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080A5C38 + cmp r7, 0 + bne _080A5C04 + ldrb r0, [r6] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + b _080A5C10 + .pool +_080A5C04: + ldrb r0, [r5] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 +_080A5C10: + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080A5C38 + cmp r4, 0x2 + bne _080A5C38 + ldr r1, =gUnknown_02020630 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + 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] +_080A5C38: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A5BAC + + thumb_func_start ma2F_stop_music +ma2F_stop_music: @ 80A5C44 + push {lr} + ldr r0, =gMPlay_SE1 + bl m4aMPlayStop + ldr r0, =gMPlay_SE2 + bl m4aMPlayStop + ldr r1, =gUnknown_020383F0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end ma2F_stop_music + + .align 2, 0 @ Don't pad with nop. |