diff options
Diffstat (limited to 'asm/union_room_player_avatar.s')
-rw-r--r-- | asm/union_room_player_avatar.s | 2064 |
1 files changed, 2064 insertions, 0 deletions
diff --git a/asm/union_room_player_avatar.s b/asm/union_room_player_avatar.s new file mode 100644 index 000000000..5c6786ae6 --- /dev/null +++ b/asm/union_room_player_avatar.s @@ -0,0 +1,2064 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start is_walking_or_running +is_walking_or_running: @ 811B504 + push {lr} + ldr r0, _0811B518 @ =gPlayerAvatar + ldrb r0, [r0, 0x3] + cmp r0, 0x2 + beq _0811B512 + cmp r0, 0 + bne _0811B51C +_0811B512: + movs r0, 0x1 + b _0811B51E + .align 2, 0 +_0811B518: .4byte gPlayerAvatar +_0811B51C: + movs r0, 0 +_0811B51E: + pop {r1} + bx r1 + thumb_func_end is_walking_or_running + + thumb_func_start sub_811B524 +sub_811B524: @ 811B524 + ldr r3, _0811B538 @ =gUnknown_84570D8 + movs r2, 0x7 + ands r2, r1 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 1 + adds r2, r1 + adds r2, r3 + ldrb r0, [r2] + bx lr + .align 2, 0 +_0811B538: .4byte gUnknown_84570D8 + thumb_func_end sub_811B524 + + thumb_func_start sub_811B53C +sub_811B53C: @ 811B53C + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r4, _0811B584 @ =gUnknown_84570EC + mov r8, r4 + lsls r0, 2 + adds r4, r0, r4 + movs r6, 0 + ldrsh r5, [r4, r6] + ldr r6, _0811B588 @ =gUnknown_845710C + lsls r1, 1 + adds r4, r1, r6 + ldrb r4, [r4] + lsls r4, 24 + asrs r4, 24 + adds r5, r4 + adds r5, 0x7 + str r5, [r2] + movs r2, 0x2 + add r8, r2 + add r0, r8 + movs r4, 0 + ldrsh r0, [r0, r4] + adds r6, 0x1 + adds r1, r6 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + adds r0, r1 + adds r0, 0x7 + str r0, [r3] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811B584: .4byte gUnknown_84570EC +_0811B588: .4byte gUnknown_845710C + thumb_func_end sub_811B53C + + thumb_func_start sub_811B58C +sub_811B58C: @ 811B58C + push {r4-r7,lr} + mov r12, r3 + ldr r7, _0811B5CC @ =gUnknown_84570EC + lsls r5, r0, 2 + adds r0, r5, r7 + movs r4, 0 + ldrsh r3, [r0, r4] + ldr r6, _0811B5D0 @ =gUnknown_845710C + lsls r4, r1, 1 + adds r0, r4, r6 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r3, r0 + adds r3, 0x7 + cmp r3, r2 + bne _0811B5D4 + adds r0, r7, 0x2 + adds r0, r5, r0 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r0, r6, 0x1 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r1, r0 + adds r1, 0x7 + cmp r1, r12 + bne _0811B5D4 + movs r0, 0x1 + b _0811B5D6 + .align 2, 0 +_0811B5CC: .4byte gUnknown_84570EC +_0811B5D0: .4byte gUnknown_845710C +_0811B5D4: + movs r0, 0 +_0811B5D6: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_811B58C + + thumb_func_start sub_811B5DC +sub_811B5DC: @ 811B5DC + push {lr} + adds r0, 0x63 + lsls r0, 16 + lsrs r0, 16 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_811B5DC + + thumb_func_start sub_811B5F0 +sub_811B5F0: @ 811B5F0 + push {lr} + adds r0, 0x63 + lsls r0, 16 + lsrs r0, 16 + bl FlagSet + pop {r0} + bx r0 + thumb_func_end sub_811B5F0 + + thumb_func_start sub_811B600 +sub_811B600: @ 811B600 + push {lr} + adds r0, 0x63 + lsls r0, 16 + lsrs r0, 16 + bl FlagClear + pop {r0} + bx r0 + thumb_func_end sub_811B600 + + thumb_func_start sub_811B610 +sub_811B610: @ 811B610 + push {lr} + ldr r2, _0811B628 @ =0x00004010 + adds r0, r2 + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_0811B628: .4byte 0x00004010 + thumb_func_end sub_811B610 + + thumb_func_start sub_811B62C +sub_811B62C: @ 811B62C + push {lr} + ldr r1, _0811B644 @ =gUnknown_8457120 + adds r0, r1 + ldrb r0, [r0] + ldr r1, _0811B648 @ =gSaveBlock1Ptr + ldr r2, [r1] + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + bl show_sprite + pop {r0} + bx r0 + .align 2, 0 +_0811B644: .4byte gUnknown_8457120 +_0811B648: .4byte gSaveBlock1Ptr + thumb_func_end sub_811B62C + + thumb_func_start sub_811B64C +sub_811B64C: @ 811B64C + push {lr} + ldr r1, _0811B664 @ =gUnknown_8457120 + adds r0, r1 + ldrb r0, [r0] + ldr r1, _0811B668 @ =gSaveBlock1Ptr + ldr r2, [r1] + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + bl RemoveObjectEventByLocalIdAndMap + pop {r0} + bx r0 + .align 2, 0 +_0811B664: .4byte gUnknown_8457120 +_0811B668: .4byte gSaveBlock1Ptr + thumb_func_end sub_811B64C + + thumb_func_start sub_811B66C +sub_811B66C: @ 811B66C + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r1, 0 + ldr r1, _0811B6B8 @ =gUnknown_8457120 + adds r0, r1 + ldrb r0, [r0] + ldr r1, _0811B6BC @ =gSaveBlock1Ptr + ldr r2, [r1] + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + mov r3, sp + bl TryGetObjectEventIdByLocalIdAndMap + lsls r0, 24 + cmp r0, 0 + bne _0811B6D0 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _0811B6C0 @ =gObjectEvents + adds r4, r0, r1 + adds r0, r4, 0 + bl ObjectEventIsMovementOverridden + lsls r0, 24 + cmp r0, 0 + bne _0811B6D0 + ldrb r1, [r5] + adds r0, r4, 0 + bl ObjectEventSetHeldMovement + lsls r0, 24 + cmp r0, 0 + bne _0811B6C4 + movs r0, 0x1 + b _0811B6D2 + .align 2, 0 +_0811B6B8: .4byte gUnknown_8457120 +_0811B6BC: .4byte gSaveBlock1Ptr +_0811B6C0: .4byte gObjectEvents +_0811B6C4: + ldr r0, _0811B6DC @ =gUnknown_8457138 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c" + ldr r1, _0811B6E0 @ =0x00000183 + ldr r2, _0811B6E4 @ =gUnknown_8457174 "0" + movs r3, 0x1 + bl AGBAssert +_0811B6D0: + movs r0, 0 +_0811B6D2: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0811B6DC: .4byte gUnknown_8457138 +_0811B6E0: .4byte 0x00000183 +_0811B6E4: .4byte gUnknown_8457174 + thumb_func_end sub_811B66C + + thumb_func_start sub_811B6E8 +sub_811B6E8: @ 811B6E8 + push {r4,lr} + sub sp, 0x4 + ldr r1, _0811B724 @ =gUnknown_8457120 + adds r0, r1 + ldrb r0, [r0] + ldr r1, _0811B728 @ =gSaveBlock1Ptr + ldr r2, [r1] + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + mov r3, sp + bl TryGetObjectEventIdByLocalIdAndMap + lsls r0, 24 + cmp r0, 0 + bne _0811B748 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _0811B72C @ =gObjectEvents + adds r4, r0, r1 + adds r0, r4, 0 + bl ObjectEventClearHeldMovementIfFinished + lsls r0, 24 + cmp r0, 0 + bne _0811B730 + movs r0, 0 + b _0811B74A + .align 2, 0 +_0811B724: .4byte gUnknown_8457120 +_0811B728: .4byte gSaveBlock1Ptr +_0811B72C: .4byte gObjectEvents +_0811B730: + bl ScriptContext2_IsEnabled + lsls r0, 24 + cmp r0, 0 + bne _0811B742 + adds r0, r4, 0 + bl npc_sync_anim_pause_bits + b _0811B748 +_0811B742: + adds r0, r4, 0 + bl FreezeObjectEvent +_0811B748: + movs r0, 0x1 +_0811B74A: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_811B6E8 + + thumb_func_start sub_811B754 +sub_811B754: @ 811B754 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _0811B798 @ =gUnknown_203B088 + movs r1, 0 + str r1, [r0] + ldr r0, _0811B79C @ =gUnknown_203B084 + str r4, [r0] + cmp r4, 0 + bne _0811B774 + ldr r0, _0811B7A0 @ =gUnknown_8457138 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c" + movs r1, 0xDD + lsls r1, 1 + ldr r2, _0811B7A4 @ =gUnknown_8457178 "UnionObjWork != NULL" + movs r3, 0x1 + bl AGBAssert +_0811B774: + movs r1, 0 + adds r0, r4, 0 + movs r2, 0x7 +_0811B77A: + strb r1, [r0] + strb r1, [r0, 0x1] + strb r1, [r0, 0x2] + strb r1, [r0, 0x3] + adds r0, 0x4 + subs r2, 0x1 + cmp r2, 0 + bge _0811B77A + bl sub_811BA18 + lsls r0, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811B798: .4byte gUnknown_203B088 +_0811B79C: .4byte gUnknown_203B084 +_0811B7A0: .4byte gUnknown_8457138 +_0811B7A4: .4byte gUnknown_8457178 + thumb_func_end sub_811B754 + + thumb_func_start sub_811B7A8 +sub_811B7A8: @ 811B7A8 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r0, 0 + ldrsb r0, [r5, r0] + cmp r0, 0 + beq _0811B7BC + cmp r0, 0x1 + beq _0811B7DC + b _0811B7FA +_0811B7BC: + ldr r1, _0811B7D8 @ =gUnknown_845718D + adds r0, r4, 0 + bl sub_811B66C + cmp r0, 0x1 + bne _0811B7FA + adds r0, r4, 0 + bl sub_811B5F0 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _0811B7FA + .align 2, 0 +_0811B7D8: .4byte gUnknown_845718D +_0811B7DC: + adds r0, r4, 0 + bl sub_811B6E8 + cmp r0, 0 + beq _0811B7FA + adds r0, r4, 0 + bl sub_811B64C + adds r0, r4, 0 + bl sub_811B5F0 + movs r0, 0 + strb r0, [r5] + movs r0, 0x1 + b _0811B7FC +_0811B7FA: + movs r0, 0 +_0811B7FC: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_811B7A8 + + thumb_func_start sub_811B804 +sub_811B804: @ 811B804 + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + adds r5, r1, 0 + adds r7, r2, 0 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r0, 0x2 + beq _0811B8A0 + cmp r0, 0x2 + bgt _0811B820 + cmp r0, 0 + beq _0811B826 + b _0811B8B2 +_0811B820: + cmp r0, 0x3 + beq _0811B888 + b _0811B8B2 +_0811B826: + bl is_walking_or_running + cmp r0, 0 + beq _0811B8B2 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl PlayerGetDestCoords + mov r0, sp + movs r1, 0 + ldrsh r2, [r0, r1] + movs r0, 0 + ldrsh r3, [r4, r0] + adds r0, r5, 0 + movs r1, 0 + bl sub_811B58C + cmp r0, 0x1 + beq _0811B8B2 + mov r0, sp + adds r1, r4, 0 + bl plaer_get_pos_including_state_based_drift + mov r0, sp + movs r1, 0 + ldrsh r2, [r0, r1] + movs r0, 0 + ldrsh r3, [r4, r0] + adds r0, r5, 0 + movs r1, 0 + bl sub_811B58C + cmp r0, 0x1 + beq _0811B8B2 + ldrb r1, [r7, 0x1] + adds r0, r5, 0 + bl sub_811B610 + adds r0, r5, 0 + bl sub_811B62C + adds r0, r5, 0 + bl sub_811B600 + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] +_0811B888: + ldr r1, _0811B89C @ =gUnknown_845718F + adds r0, r5, 0 + bl sub_811B66C + cmp r0, 0x1 + bne _0811B8B2 + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + b _0811B8B2 + .align 2, 0 +_0811B89C: .4byte gUnknown_845718F +_0811B8A0: + adds r0, r5, 0 + bl sub_811B6E8 + cmp r0, 0 + beq _0811B8B2 + movs r0, 0 + strb r0, [r6] + movs r0, 0x1 + b _0811B8B4 +_0811B8B2: + movs r0, 0 +_0811B8B4: + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_811B804 + + thumb_func_start sub_811B8BC +sub_811B8BC: @ 811B8BC + push {r4-r6,lr} + adds r5, r1, 0 + adds r6, r2, 0 + ldr r1, _0811B8F4 @ =gUnknown_203B084 + lsls r0, 2 + ldr r1, [r1] + adds r4, r1, r0 + cmp r1, 0 + bne _0811B8DA + ldr r0, _0811B8F8 @ =gUnknown_8457138 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c" + ldr r1, _0811B8FC @ =0x00000231 + ldr r2, _0811B900 @ =gUnknown_8457178 "UnionObjWork != NULL" + movs r3, 0x1 + bl AGBAssert +_0811B8DA: + movs r0, 0x1 + strb r0, [r4, 0x3] + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_811B524 + strb r0, [r4, 0x1] + ldrb r0, [r4] + cmp r0, 0 + beq _0811B904 + movs r0, 0 + b _0811B906 + .align 2, 0 +_0811B8F4: .4byte gUnknown_203B084 +_0811B8F8: .4byte gUnknown_8457138 +_0811B8FC: .4byte 0x00000231 +_0811B900: .4byte gUnknown_8457178 +_0811B904: + movs r0, 0x1 +_0811B906: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_811B8BC + + thumb_func_start sub_811B90C +sub_811B90C: @ 811B90C + push {r4,lr} + ldr r1, _0811B934 @ =gUnknown_203B084 + lsls r0, 2 + ldr r1, [r1] + adds r4, r1, r0 + cmp r1, 0 + bne _0811B926 + ldr r0, _0811B938 @ =gUnknown_8457138 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c" + ldr r1, _0811B93C @ =0x00000241 + ldr r2, _0811B940 @ =gUnknown_8457178 "UnionObjWork != NULL" + movs r3, 0x1 + bl AGBAssert +_0811B926: + movs r0, 0x2 + strb r0, [r4, 0x3] + ldrb r0, [r4] + cmp r0, 0x1 + beq _0811B944 + movs r0, 0 + b _0811B946 + .align 2, 0 +_0811B934: .4byte gUnknown_203B084 +_0811B938: .4byte gUnknown_8457138 +_0811B93C: .4byte 0x00000241 +_0811B940: .4byte gUnknown_8457178 +_0811B944: + movs r0, 0x1 +_0811B946: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_811B90C + + thumb_func_start sub_811B94C +sub_811B94C: @ 811B94C + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + ldrb r1, [r4] + cmp r1, 0x1 + beq _0811B9AE + cmp r1, 0x1 + bgt _0811B962 + cmp r1, 0 + beq _0811B96C + b _0811B9CE +_0811B962: + cmp r1, 0x2 + beq _0811B978 + cmp r1, 0x3 + beq _0811B9BC + b _0811B9CE +_0811B96C: + ldrb r0, [r4, 0x3] + cmp r0, 0x1 + bne _0811B9CE + movs r0, 0x2 + strb r0, [r4] + strb r1, [r4, 0x2] +_0811B978: + adds r0, r5, 0 + movs r1, 0 + bl sub_811BBC8 + adds r1, r0, 0 + cmp r1, 0 + bne _0811B99E + ldrb r0, [r4, 0x3] + cmp r0, 0x2 + bne _0811B99E + strb r1, [r4] + strb r1, [r4, 0x2] + adds r0, r5, 0 + bl sub_811B64C + adds r0, r5, 0 + bl sub_811B5F0 + b _0811B9CE +_0811B99E: + adds r0, r4, 0x2 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_811B804 + cmp r0, 0x1 + bne _0811B9CE + b _0811B9CC +_0811B9AE: + ldrb r0, [r4, 0x3] + cmp r0, 0x2 + bne _0811B9CE + movs r1, 0 + movs r0, 0x3 + strb r0, [r4] + strb r1, [r4, 0x2] +_0811B9BC: + adds r0, r4, 0x2 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_811B7A8 + cmp r0, 0x1 + bne _0811B9CE + movs r0, 0 +_0811B9CC: + strb r0, [r4] +_0811B9CE: + movs r0, 0 + strb r0, [r4, 0x3] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_811B94C + + thumb_func_start sub_811B9D8 +sub_811B9D8: @ 811B9D8 + push {r4,r5,lr} + ldr r5, _0811BA08 @ =gUnknown_203B084 + ldr r0, [r5] + cmp r0, 0 + bne _0811B9EE + ldr r0, _0811BA0C @ =gUnknown_8457138 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c" + ldr r1, _0811BA10 @ =0x00000283 + ldr r2, _0811BA14 @ =gUnknown_8457178 "UnionObjWork != NULL" + movs r3, 0x1 + bl AGBAssert +_0811B9EE: + movs r4, 0 +_0811B9F0: + lsls r0, r4, 2 + ldr r1, [r5] + adds r1, r0 + adds r0, r4, 0 + bl sub_811B94C + adds r4, 0x1 + cmp r4, 0x7 + ble _0811B9F0 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811BA08: .4byte gUnknown_203B084 +_0811BA0C: .4byte gUnknown_8457138 +_0811BA10: .4byte 0x00000283 +_0811BA14: .4byte gUnknown_8457178 + thumb_func_end sub_811B9D8 + + thumb_func_start sub_811BA18 +sub_811BA18: @ 811BA18 + push {r4,lr} + ldr r4, _0811BA38 @ =sub_811B9D8 + adds r0, r4, 0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0811BA3C + adds r0, r4, 0 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + b _0811BA4A + .align 2, 0 +_0811BA38: .4byte sub_811B9D8 +_0811BA3C: + ldr r0, _0811BA50 @ =gUnknown_8457138 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c" + ldr r1, _0811BA54 @ =0x0000028f + ldr r2, _0811BA58 @ =gUnknown_8457174 "0" + movs r3, 0x1 + bl AGBAssert + movs r0, 0x10 +_0811BA4A: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811BA50: .4byte gUnknown_8457138 +_0811BA54: .4byte 0x0000028f +_0811BA58: .4byte gUnknown_8457174 + thumb_func_end sub_811BA18 + + thumb_func_start sub_811BA5C +sub_811BA5C: @ 811BA5C + push {lr} + ldr r0, _0811BA74 @ =sub_811B9D8 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xF + bhi _0811BA70 + bl DestroyTask +_0811BA70: + pop {r0} + bx r0 + .align 2, 0 +_0811BA74: .4byte sub_811B9D8 + thumb_func_end sub_811BA5C + + thumb_func_start sub_811BA78 +sub_811BA78: @ 811BA78 + push {r4,lr} + movs r4, 0 +_0811BA7C: + adds r0, r4, 0 + bl sub_811B5DC + cmp r0, 0 + bne _0811BA92 + adds r0, r4, 0 + bl sub_811B64C + adds r0, r4, 0 + bl sub_811B5F0 +_0811BA92: + adds r4, 0x1 + cmp r4, 0x7 + ble _0811BA7C + ldr r1, _0811BAA8 @ =gUnknown_203B084 + movs r0, 0 + str r0, [r1] + bl sub_811BA5C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811BAA8: .4byte gUnknown_203B084 + thumb_func_end sub_811BA78 + + thumb_func_start sub_811BAAC +sub_811BAAC: @ 811BAAC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + str r0, [sp, 0x8] + mov r9, r1 + movs r7, 0 + mov r0, r9 + lsls r0, 2 + mov r8, r0 + ldr r0, _0811BB38 @ =gUnknown_84570EC + mov r2, r8 + adds r1, r2, r0 + ldrh r1, [r1] + mov r2, sp + strh r1, [r2, 0xC] + adds r0, 0x2 + add r0, r8 + ldrh r0, [r0] + mov r10, r0 + ldr r6, _0811BB3C @ =gUnknown_845710C +_0811BADA: + mov r5, r8 + add r5, r9 + adds r5, r7 + adds r4, r5, 0 + subs r4, 0x38 + lsls r4, 24 + lsrs r4, 24 + movs r2, 0 + ldrsb r2, [r6, r2] + mov r0, sp + ldrh r0, [r0, 0xC] + adds r2, r0, r2 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x1 + ldrsb r3, [r6, r3] + add r3, r10 + lsls r3, 16 + asrs r3, 16 + movs r0, 0x3 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r0, 0x19 + adds r1, r4, 0 + bl sprite_new + ldr r1, [sp, 0x8] + adds r5, r1, r5 + strb r0, [r5] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8069124 + adds r6, 0x2 + adds r7, 0x1 + cmp r7, 0x4 + ble _0811BADA + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811BB38: .4byte gUnknown_84570EC +_0811BB3C: .4byte gUnknown_845710C + thumb_func_end sub_811BAAC + + thumb_func_start sub_811BB40 +sub_811BB40: @ 811BB40 + push {r4-r6,lr} + adds r5, r0, 0 + movs r4, 0 + ldr r6, _0811BB64 @ =gSprites +_0811BB48: + adds r0, r5, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + adds r4, 0x1 + cmp r4, 0x27 + ble _0811BB48 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811BB64: .4byte gSprites + thumb_func_end sub_811BB40 + + thumb_func_start sub_811BB68 +sub_811BB68: @ 811BB68 + push {r4-r7,lr} + sub sp, 0x8 + movs r5, 0 + add r7, sp, 0x4 +_0811BB70: + movs r4, 0 + adds r6, r5, 0x1 +_0811BB74: + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, sp + adds r3, r7, 0 + bl sub_811B53C + ldr r0, [sp] + ldr r1, [sp, 0x4] + movs r2, 0 + bl sub_8059024 + adds r4, 0x1 + cmp r4, 0x4 + ble _0811BB74 + adds r5, r6, 0 + cmp r5, 0x7 + ble _0811BB70 + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_811BB68 + + thumb_func_start sub_811BBA0 +sub_811BBA0: @ 811BBA0 + push {lr} + adds r1, r0, 0 + cmp r1, 0 + beq _0811BBB4 + ldr r0, _0811BBB0 @ =gUnknown_845711B + adds r0, r1, r0 + ldrb r0, [r0] + b _0811BBC4 + .align 2, 0 +_0811BBB0: .4byte gUnknown_845711B +_0811BBB4: + ldrb r1, [r2, 0xA] + movs r0, 0x7F + ands r0, r1 + cmp r0, 0x45 + beq _0811BBC2 + movs r0, 0x4 + b _0811BBC4 +_0811BBC2: + movs r0, 0x1 +_0811BBC4: + pop {r1} + bx r1 + thumb_func_end sub_811BBA0 + + thumb_func_start sub_811BBC8 +sub_811BBC8: @ 811BBC8 + push {lr} + adds r2, r0, 0 + lsls r0, r2, 2 + adds r0, r2 + adds r0, r1 + subs r0, 0x38 + lsls r0, 24 + lsrs r0, 24 + bl sub_806916C + pop {r1} + bx r1 + thumb_func_end sub_811BBC8 + + thumb_func_start sub_811BBE0 +sub_811BBE0: @ 811BBE0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + adds r5, r0, 0 + adds r6, r1, 0 + mov r9, r3 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r0, r5, 2 + adds r0, r5 + adds r7, r0, r6 + adds r0, r5, 0 + bl sub_811BBC8 + cmp r0, 0x1 + bne _0811BC1E + adds r4, r7, 0 + subs r4, 0x38 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0 + bl sub_8069124 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80691A4 +_0811BC1E: + adds r0, r7, 0 + subs r0, 0x38 + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + bl sub_8069094 + adds r0, r6, 0 + adds r1, r5, 0 + mov r2, r9 + bl sub_811BBA0 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_811C008 + add r3, sp, 0x4 + adds r0, r5, 0 + adds r1, r6, 0 + mov r2, sp + bl sub_811B53C + ldr r0, [sp] + ldr r1, [sp, 0x4] + movs r2, 0x1 + bl sub_8059024 + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_811BBE0 + + thumb_func_start sub_811BC68 +sub_811BC68: @ 811BC68 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r0, r4, 2 + adds r0, r4 + adds r0, r5 + subs r0, 0x38 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2 + bl sub_80691A4 + add r3, sp, 0x4 + adds r0, r4, 0 + adds r1, r5, 0 + mov r2, sp + bl sub_811B53C + ldr r0, [sp] + ldr r1, [sp, 0x4] + movs r2, 0 + bl sub_8059024 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_811BC68 + + thumb_func_start sub_811BCA0 +sub_811BCA0: @ 811BCA0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r7, r0, 0 + mov r8, r1 + mov r6, sp + adds r6, 0x2 + mov r0, sp + adds r1, r6, 0 + bl PlayerGetDestCoords + add r4, sp, 0x4 + mov r5, sp + adds r5, 0x6 + adds r0, r4, 0 + adds r1, r5, 0 + bl plaer_get_pos_including_state_based_drift + lsls r0, r7, 2 + adds r0, r7 + subs r0, 0x38 + lsls r0, 24 + lsrs r0, 24 + bl sub_806916C + mov r10, r6 + mov r9, r4 + adds r6, r5, 0 + cmp r0, 0x1 + bne _0811BD2C + mov r0, sp + movs r1, 0 + ldrsh r2, [r0, r1] + mov r0, r10 + movs r1, 0 + ldrsh r3, [r0, r1] + adds r0, r7, 0 + movs r1, 0 + bl sub_811B58C + cmp r0, 0x1 + beq _0811BD98 + movs r0, 0 + ldrsh r2, [r4, r0] + movs r1, 0 + ldrsh r3, [r6, r1] + adds r0, r7, 0 + movs r1, 0 + bl sub_811B58C + cmp r0, 0x1 + beq _0811BD98 + mov r2, r8 + ldrb r0, [r2, 0xB] + lsls r0, 31 + lsrs r0, 31 + ldrb r1, [r2, 0x2] + bl sub_811B524 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r7, 0 + movs r1, 0 + mov r3, r8 + bl sub_811BBE0 +_0811BD2C: + movs r5, 0x1 + mov r4, r8 + adds r4, 0x4 +_0811BD32: + ldrb r0, [r4] + cmp r0, 0 + bne _0811BD42 + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_811BC68 + b _0811BD90 +_0811BD42: + mov r0, sp + movs r1, 0 + ldrsh r2, [r0, r1] + mov r0, r10 + movs r1, 0 + ldrsh r3, [r0, r1] + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_811B58C + cmp r0, 0 + bne _0811BD90 + mov r0, r9 + movs r1, 0 + ldrsh r2, [r0, r1] + movs r0, 0 + ldrsh r3, [r6, r0] + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_811B58C + cmp r0, 0 + bne _0811BD90 + ldrb r2, [r4] + lsrs r0, r2, 3 + movs r1, 0x1 + ands r0, r1 + movs r1, 0x7 + ands r1, r2 + bl sub_811B524 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r7, 0 + adds r1, r5, 0 + mov r3, r8 + bl sub_811BBE0 +_0811BD90: + adds r4, 0x1 + adds r5, 0x1 + cmp r5, 0x4 + ble _0811BD32 +_0811BD98: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_811BCA0 + + thumb_func_start sub_811BDA8 +sub_811BDA8: @ 811BDA8 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + ldrb r0, [r4, 0xA] + lsls r0, 25 + lsrs r0, 25 + subs r0, 0x40 + cmp r0, 0x14 + bhi _0811BE4C + lsls r0, 2 + ldr r1, _0811BDC4 @ =_0811BDC8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811BDC4: .4byte _0811BDC8 + .align 2, 0 +_0811BDC8: + .4byte _0811BE1C + .4byte _0811BE3C + .4byte _0811BE4C + .4byte _0811BE4C + .4byte _0811BE3C + .4byte _0811BE3C + .4byte _0811BE4C + .4byte _0811BE4C + .4byte _0811BE3C + .4byte _0811BE4C + .4byte _0811BE4C + .4byte _0811BE4C + .4byte _0811BE4C + .4byte _0811BE4C + .4byte _0811BE4C + .4byte _0811BE4C + .4byte _0811BE4C + .4byte _0811BE3C + .4byte _0811BE3C + .4byte _0811BE3C + .4byte _0811BE1C +_0811BE1C: + ldrb r1, [r4, 0xB] + lsls r1, 31 + lsrs r1, 31 + ldrb r2, [r4, 0x2] + adds r0, r5, 0 + bl sub_811B8BC + movs r4, 0 +_0811BE2C: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_811BC68 + adds r4, 0x1 + cmp r4, 0x4 + bls _0811BE2C + b _0811BE58 +_0811BE3C: + adds r0, r5, 0 + bl sub_811B90C + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_811BCA0 + b _0811BE58 +_0811BE4C: + ldr r0, _0811BE60 @ =gUnknown_8457138 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu_union_tool.c" + ldr r1, _0811BE64 @ =0x000003d3 + ldr r2, _0811BE68 @ =gUnknown_8457174 "0" + movs r3, 0x1 + bl AGBAssert +_0811BE58: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811BE60: .4byte gUnknown_8457138 +_0811BE64: .4byte 0x000003d3 +_0811BE68: .4byte gUnknown_8457174 + thumb_func_end sub_811BDA8 + + thumb_func_start sub_811BE6C +sub_811BE6C: @ 811BE6C + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_811B90C + movs r4, 0 +_0811BE76: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_811BC68 + adds r4, 0x1 + cmp r4, 0x4 + ble _0811BE76 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_811BE6C + + thumb_func_start sub_811BE8C +sub_811BE8C: @ 811BE8C + push {r4,r5,lr} + ldr r2, _0811BEAC @ =gUnknown_203B088 + movs r1, 0 + str r1, [r2] + movs r5, 0 + ldr r4, [r0] +_0811BE98: + ldrb r0, [r4, 0x1A] + movs r1, 0x3 + ands r1, r0 + cmp r1, 0x1 + bne _0811BEB0 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_811BDA8 + b _0811BEBC + .align 2, 0 +_0811BEAC: .4byte gUnknown_203B088 +_0811BEB0: + cmp r1, 0x2 + bne _0811BEBC + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_811BE6C +_0811BEBC: + adds r4, 0x20 + adds r5, 0x1 + cmp r5, 0x7 + ble _0811BE98 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_811BE8C + + thumb_func_start sub_811BECC +sub_811BECC: @ 811BECC + ldr r1, _0811BED8 @ =gUnknown_203B088 + movs r0, 0x96 + lsls r0, 1 + str r0, [r1] + bx lr + .align 2, 0 +_0811BED8: .4byte gUnknown_203B088 + thumb_func_end sub_811BECC + + thumb_func_start sub_811BEDC +sub_811BEDC: @ 811BEDC + push {lr} + adds r2, r0, 0 + ldr r0, _0811BEFC @ =gUnknown_203B088 + ldr r1, [r0] + adds r1, 0x1 + str r1, [r0] + movs r0, 0x96 + lsls r0, 1 + cmp r1, r0 + bls _0811BEF6 + adds r0, r2, 0 + bl sub_811BE8C +_0811BEF6: + pop {r0} + bx r0 + .align 2, 0 +_0811BEFC: .4byte gUnknown_203B088 + thumb_func_end sub_811BEDC + + thumb_func_start sub_811BF00 +sub_811BF00: @ 811BF00 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + adds r5, r0, 0 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + bl is_walking_or_running + cmp r0, 0 + bne _0811BF48 + b _0811BFEE +_0811BF1C: + ldr r4, _0811BF44 @ =gUnknown_8457116 + bl GetPlayerFacingDirection + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + ldrb r2, [r0] + adds r0, r6, 0 + ldr r1, [sp, 0xC] + bl sub_811C008 + ldr r0, [sp, 0x4] + strh r6, [r0] + mov r1, sp + ldrh r2, [r1, 0xC] + ldr r1, [sp, 0x8] + strh r2, [r1] + movs r0, 0x1 + b _0811BFF0 + .align 2, 0 +_0811BF44: .4byte gUnknown_8457116 +_0811BF48: + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _0811C000 @ =gUnknown_84570EC + adds r7, r5, 0 + movs r1, 0 + mov r10, r1 + adds r2, r0, 0x2 + str r2, [sp, 0x10] + str r0, [sp, 0x14] +_0811BF66: + movs r6, 0 + ldr r4, [sp, 0x14] + movs r0, 0 + ldrsh r4, [r4, r0] + mov r9, r4 + ldr r1, [sp, 0x10] + mov r8, r1 + ldr r5, _0811C004 @ =gUnknown_845710C +_0811BF76: + mov r2, r10 + adds r3, r2, r6 + mov r0, sp + movs r4, 0 + ldrsh r1, [r0, r4] + movs r0, 0 + ldrsb r0, [r5, r0] + add r0, r9 + adds r0, 0x7 + cmp r1, r0 + bne _0811BFCA + mov r1, sp + movs r2, 0x2 + ldrsh r0, [r1, r2] + mov r4, r8 + movs r2, 0 + ldrsh r1, [r4, r2] + movs r2, 0x1 + ldrsb r2, [r5, r2] + adds r1, r2 + adds r1, 0x7 + cmp r0, r1 + bne _0811BFCA + adds r0, r3, 0 + subs r0, 0x38 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_806916C + cmp r0, 0 + bne _0811BFCA + adds r0, r4, 0 + bl sub_8069294 + cmp r0, 0 + bne _0811BFCA + ldrb r1, [r7, 0x1A] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0811BF1C +_0811BFCA: + adds r5, 0x2 + adds r6, 0x1 + cmp r6, 0x4 + ble _0811BF76 + adds r7, 0x20 + movs r4, 0x5 + add r10, r4 + ldr r0, [sp, 0x10] + adds r0, 0x4 + str r0, [sp, 0x10] + ldr r1, [sp, 0x14] + adds r1, 0x4 + str r1, [sp, 0x14] + ldr r2, [sp, 0xC] + adds r2, 0x1 + str r2, [sp, 0xC] + cmp r2, 0x7 + ble _0811BF66 +_0811BFEE: + movs r0, 0 +_0811BFF0: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811C000: .4byte gUnknown_84570EC +_0811C004: .4byte gUnknown_845710C + thumb_func_end sub_811BF00 + + thumb_func_start sub_811C008 +sub_811C008: @ 811C008 + push {r4,lr} + adds r4, r0, 0 + adds r3, r1, 0 + lsls r1, r2, 24 + lsrs r1, 24 + lsls r0, r3, 2 + adds r0, r3 + subs r0, 0x38 + adds r0, r4 + lsls r0, 24 + lsrs r0, 24 + bl sub_8069058 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_811C008 + + thumb_func_start sub_811C028 +sub_811C028: @ 811C028 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + lsls r3, r4, 5 + adds r3, r2 + adds r2, r3, 0 + bl sub_811BBA0 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_811C008 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_811C028 + + thumb_func_start sub_811C04C +sub_811C04C: @ 811C04C + push {r4-r7,lr} + movs r0, 0xA + bl sub_81173C0 + movs r4, 0 + movs r7, 0x64 + ldr r6, _0811C0CC @ =gPlayerParty + ldr r5, _0811C0D0 @ =gEnemyParty +_0811C05C: + ldr r0, _0811C0D4 @ =gSelectedOrderFromParty + adds r0, r4, r0 + ldrb r0, [r0] + subs r0, 0x1 + adds r1, r0, 0 + muls r1, r7 + adds r1, r6 + adds r0, r5, 0 + movs r2, 0x64 + bl memcpy + adds r5, 0x64 + adds r4, 0x1 + cmp r4, 0x1 + ble _0811C05C + ldr r4, _0811C0CC @ =gPlayerParty + movs r0, 0xFA + lsls r0, 1 + adds r5, r4, r0 +_0811C082: + adds r0, r4, 0 + bl ZeroMonData + adds r4, 0x64 + cmp r4, r5 + ble _0811C082 + ldr r4, _0811C0CC @ =gPlayerParty + movs r5, 0 + adds r6, r4, 0 + adds r6, 0x64 +_0811C096: + ldr r1, _0811C0D0 @ =gEnemyParty + adds r1, r5, r1 + adds r0, r4, 0 + movs r2, 0x64 + bl memcpy + adds r4, 0x64 + adds r5, 0x64 + cmp r4, r6 + ble _0811C096 + movs r0, 0x32 + bl IncrementGameStat + bl CalculatePlayerPartyCount + ldr r0, _0811C0D8 @ =gTrainerBattleOpponent_A + movs r2, 0xC0 + lsls r2, 4 + adds r1, r2, 0 + strh r1, [r0] + ldr r0, _0811C0DC @ =CB2_InitBattle + bl SetMainCallback2 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811C0CC: .4byte gPlayerParty +_0811C0D0: .4byte gEnemyParty +_0811C0D4: .4byte gSelectedOrderFromParty +_0811C0D8: .4byte gTrainerBattleOpponent_A +_0811C0DC: .4byte CB2_InitBattle + thumb_func_end sub_811C04C + + thumb_func_start sub_811C0E0 +sub_811C0E0: @ 811C0E0 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x18 + adds r5, r0, 0 + mov r10, r1 + adds r6, r2, 0 + ldr r4, [sp, 0x34] + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x1 + mov r8, r0 + ldr r1, _0811C14C @ =gUnknown_84571A8 + mov r9, r1 + ldrb r0, [r1] + lsls r1, r0, 4 + orrs r1, r0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + str r3, [sp, 0x14] + bl FillWindowPixelBuffer + mov r0, r8 + str r0, [sp] + str r0, [sp, 0x4] + mov r1, r9 + str r1, [sp, 0x8] + lsls r4, 24 + asrs r4, 24 + str r4, [sp, 0xC] + mov r0, r10 + str r0, [sp, 0x10] + adds r0, r5, 0 + movs r1, 0x3 + adds r2, r6, 0 + ldr r3, [sp, 0x14] + bl AddTextPrinterParameterized4 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811C14C: .4byte gUnknown_84571A8 + thumb_func_end sub_811C0E0 + + thumb_func_start sub_811C150 +sub_811C150: @ 811C150 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r6, r1, 0 + adds r5, r2, 0 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0811C168 + cmp r0, 0x1 + beq _0811C196 + b _0811C1AA +_0811C168: + movs r0, 0 + movs r1, 0x1 + movs r2, 0xD + bl DrawTextBorderOuter + str r5, [sp] + movs r0, 0 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_811C0E0 + movs r0, 0 + bl PutWindowTilemap + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _0811C1AA +_0811C196: + movs r0, 0 + bl IsTextPrinterActive + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _0811C1AA + strh r0, [r4] + movs r0, 0x1 + b _0811C1AC +_0811C1AA: + movs r0, 0 +_0811C1AC: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_811C150 + + thumb_func_start sub_811C1B4 +sub_811C1B4: @ 811C1B4 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_811C1B4 + + thumb_func_start sub_811C1C8 +sub_811C1C8: @ 811C1C8 + push {r4,lr} + sub sp, 0xC + ldr r1, _0811C1E8 @ =gMain + movs r2, 0x87 + lsls r2, 3 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0x33 + bls _0811C1DE + b _0811C516 +_0811C1DE: + lsls r0, 2 + ldr r1, _0811C1EC @ =_0811C1F0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811C1E8: .4byte gMain +_0811C1EC: .4byte _0811C1F0 + .align 2, 0 +_0811C1F0: + .4byte _0811C2C0 + .4byte _0811C364 + .4byte _0811C38C + .4byte _0811C3B0 + .4byte _0811C400 + .4byte _0811C516 + .4byte _0811C4E4 + .4byte _0811C4C0 + .4byte _0811C4E4 + .4byte _0811C500 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C516 + .4byte _0811C48C + .4byte _0811C4A8 +_0811C2C0: + movs r0, 0 + movs r1, 0 + bl SetGpuReg + ldr r4, _0811C350 @ =gUnknown_203B08C + movs r0, 0x4 + bl AllocZeroed + str r0, [r4] + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, _0811C354 @ =gUnknown_8457194 + movs r0, 0 + movs r2, 0x1 + bl InitBgsFromTemplates + bl ResetTempTileDataBuffers + ldr r0, _0811C358 @ =gUnknown_8457198 + bl InitWindows + lsls r0, 16 + cmp r0, 0 + bne _0811C300 + b _0811C52A +_0811C300: + bl DeactivateAllTextPrinters + movs r0, 0 + bl ClearWindowTilemap + movs r0, 0 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + movs r0, 0x1E + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0xF + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect + movs r0, 0 + movs r1, 0x1 + movs r2, 0xD0 + bl TextWindow_SetStdFrame0_WithPal + bl Menu_LoadStdPal + ldr r0, _0811C35C @ =sub_811C1B4 + bl SetVBlankCallback + ldr r1, _0811C360 @ =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _0811C4F2 + .align 2, 0 +_0811C350: .4byte gUnknown_203B08C +_0811C354: .4byte gUnknown_8457194 +_0811C358: .4byte gUnknown_8457198 +_0811C35C: .4byte sub_811C1B4 +_0811C360: .4byte gMain +_0811C364: + ldr r0, _0811C380 @ =gUnknown_203B08C + ldr r0, [r0] + ldr r1, _0811C384 @ =gUnknown_841E538 + movs r2, 0 + bl sub_811C150 + cmp r0, 0 + bne _0811C376 + b _0811C516 +_0811C376: + ldr r1, _0811C388 @ =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _0811C4F2 + .align 2, 0 +_0811C380: .4byte gUnknown_203B08C +_0811C384: .4byte gUnknown_841E538 +_0811C388: .4byte gMain +_0811C38C: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + movs r0, 0 + bl ShowBg + ldr r1, _0811C3AC @ =gMain + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + b _0811C4F2 + .align 2, 0 +_0811C3AC: .4byte gMain +_0811C3B0: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + beq _0811C3BC + b _0811C516 +_0811C3BC: + ldr r4, _0811C3D8 @ =gBlockSendBuffer + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x20 + bl memset + ldr r0, _0811C3DC @ =gSelectedOrderFromParty + ldrb r1, [r0] + ldrb r0, [r0, 0x1] + cmn r1, r0 + bne _0811C3E0 + movs r0, 0x52 + b _0811C3E2 + .align 2, 0 +_0811C3D8: .4byte gBlockSendBuffer +_0811C3DC: .4byte gSelectedOrderFromParty +_0811C3E0: + movs r0, 0x51 +_0811C3E2: + strb r0, [r4] + ldr r1, _0811C3F8 @ =gBlockSendBuffer + movs r0, 0 + movs r2, 0x20 + bl SendBlock + ldr r1, _0811C3FC @ =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _0811C4F2 + .align 2, 0 +_0811C3F8: .4byte gBlockSendBuffer +_0811C3FC: .4byte gMain +_0811C400: + bl GetBlockReceivedStatus + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _0811C40E + b _0811C516 +_0811C40E: + ldr r1, _0811C440 @ =gBlockRecvBuffer + ldrh r0, [r1] + cmp r0, 0x51 + bne _0811C448 + movs r2, 0x80 + lsls r2, 1 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, 0x51 + bne _0811C448 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _0811C444 @ =gMain + movs r1, 0x87 + lsls r1, 3 + adds r0, r1 + movs r1, 0x32 + b _0811C47E + .align 2, 0 +_0811C440: .4byte gBlockRecvBuffer +_0811C444: .4byte gMain +_0811C448: + bl sub_800AAC0 + ldr r4, _0811C46C @ =gBlockRecvBuffer + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 16 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0x52 + bne _0811C474 + ldr r0, _0811C470 @ =gMain + movs r2, 0x87 + lsls r2, 3 + adds r0, r2 + movs r1, 0x6 + b _0811C47E + .align 2, 0 +_0811C46C: .4byte gBlockRecvBuffer +_0811C470: .4byte gMain +_0811C474: + ldr r0, _0811C488 @ =gMain + movs r1, 0x87 + lsls r1, 3 + adds r0, r1 + movs r1, 0x8 +_0811C47E: + strb r1, [r0] + bl ResetBlockReceivedFlags + b _0811C516 + .align 2, 0 +_0811C488: .4byte gMain +_0811C48C: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _0811C516 + bl sub_800AB9C + ldr r1, _0811C4A4 @ =gMain + movs r2, 0x87 + lsls r2, 3 + adds r1, r2 + b _0811C4F2 + .align 2, 0 +_0811C4A4: .4byte gMain +_0811C4A8: + bl IsLinkTaskFinished + lsls r0, 24 + cmp r0, 0 + beq _0811C516 + ldr r0, _0811C4BC @ =sub_811C04C + bl SetMainCallback2 + b _0811C516 + .align 2, 0 +_0811C4BC: .4byte sub_811C04C +_0811C4C0: + ldr r0, _0811C4D8 @ =gUnknown_203B08C + ldr r0, [r0] + ldr r1, _0811C4DC @ =gUnknown_841E58D + movs r2, 0x1 + bl sub_811C150 + cmp r0, 0 + beq _0811C516 + ldr r0, _0811C4E0 @ =CB2_ReturnToField + bl SetMainCallback2 + b _0811C516 + .align 2, 0 +_0811C4D8: .4byte gUnknown_203B08C +_0811C4DC: .4byte gUnknown_841E58D +_0811C4E0: .4byte CB2_ReturnToField +_0811C4E4: + ldr r0, _0811C4FC @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _0811C516 + movs r0, 0x87 + lsls r0, 3 + adds r1, r2, r0 +_0811C4F2: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0811C516 + .align 2, 0 +_0811C4FC: .4byte gReceivedRemoteLinkPlayers +_0811C500: + ldr r0, _0811C534 @ =gUnknown_203B08C + ldr r0, [r0] + ldr r1, _0811C538 @ =gUnknown_841E572 + movs r2, 0x1 + bl sub_811C150 + cmp r0, 0 + beq _0811C516 + ldr r0, _0811C53C @ =CB2_ReturnToField + bl SetMainCallback2 +_0811C516: + bl RunTasks + bl RunTextPrinters + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade +_0811C52A: + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811C534: .4byte gUnknown_203B08C +_0811C538: .4byte gUnknown_841E572 +_0811C53C: .4byte CB2_ReturnToField + thumb_func_end sub_811C1C8 + + .align 2, 0 @ Don't pad with nop. |