.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global HandlePositionFileSupportRequest HandlePositionFileSupportRequest: /* 801D69A0 001D2600 94 21 FF 90 */ stwu r1, -0x70(r1) /* 801D69A4 001D2604 7C 08 02 A6 */ mflr r0 /* 801D69A8 001D2608 90 01 00 74 */ stw r0, 0x74(r1) /* 801D69AC 001D260C 93 E1 00 6C */ stw r31, 0x6c(r1) /* 801D69B0 001D2610 7C BF 2B 78 */ mr r31, r5 /* 801D69B4 001D2614 38 A0 00 40 */ li r5, 0x40 /* 801D69B8 001D2618 93 C1 00 68 */ stw r30, 0x68(r1) /* 801D69BC 001D261C 7C DE 33 78 */ mr r30, r6 /* 801D69C0 001D2620 93 A1 00 64 */ stw r29, 0x64(r1) /* 801D69C4 001D2624 7C 9D 23 78 */ mr r29, r4 /* 801D69C8 001D2628 38 80 00 00 */ li r4, 0 /* 801D69CC 001D262C 93 81 00 60 */ stw r28, 0x60(r1) /* 801D69D0 001D2630 7C 7C 1B 78 */ mr r28, r3 /* 801D69D4 001D2634 38 61 00 14 */ addi r3, r1, 0x14 /* 801D69D8 001D2638 4B E2 D7 5D */ bl TRK_memset /* 801D69DC 001D263C 38 60 00 D4 */ li r3, 0xd4 /* 801D69E0 001D2640 38 00 00 40 */ li r0, 0x40 /* 801D69E4 001D2644 98 61 00 18 */ stb r3, 0x18(r1) /* 801D69E8 001D2648 38 61 00 0C */ addi r3, r1, 0xc /* 801D69EC 001D264C 38 81 00 08 */ addi r4, r1, 8 /* 801D69F0 001D2650 90 01 00 14 */ stw r0, 0x14(r1) /* 801D69F4 001D2654 93 81 00 1C */ stw r28, 0x1c(r1) /* 801D69F8 001D2658 80 1D 00 00 */ lwz r0, 0(r29) /* 801D69FC 001D265C 90 01 00 20 */ stw r0, 0x20(r1) /* 801D6A00 001D2660 9B E1 00 24 */ stb r31, 0x24(r1) /* 801D6A04 001D2664 4B FF EA 05 */ bl TRKGetFreeBuffer /* 801D6A08 001D2668 7C 7F 1B 79 */ or. r31, r3, r3 /* 801D6A0C 001D266C 40 82 00 18 */ bne lbl_801D6A24 /* 801D6A10 001D2670 80 61 00 08 */ lwz r3, 8(r1) /* 801D6A14 001D2674 38 81 00 14 */ addi r4, r1, 0x14 /* 801D6A18 001D2678 38 A0 00 40 */ li r5, 0x40 /* 801D6A1C 001D267C 4B FF E6 59 */ bl TRKAppendBuffer_ui8 /* 801D6A20 001D2680 7C 7F 1B 78 */ mr r31, r3 lbl_801D6A24: /* 801D6A24 001D2684 2C 1F 00 00 */ cmpwi r31, 0 /* 801D6A28 001D2688 40 82 00 5C */ bne lbl_801D6A84 /* 801D6A2C 001D268C 38 60 00 00 */ li r3, 0 /* 801D6A30 001D2690 38 00 FF FF */ li r0, -1 /* 801D6A34 001D2694 90 7E 00 00 */ stw r3, 0(r30) /* 801D6A38 001D2698 38 81 00 10 */ addi r4, r1, 0x10 /* 801D6A3C 001D269C 38 A0 00 03 */ li r5, 3 /* 801D6A40 001D26A0 38 C0 00 03 */ li r6, 3 /* 801D6A44 001D26A4 90 1D 00 00 */ stw r0, 0(r29) /* 801D6A48 001D26A8 38 E0 00 00 */ li r7, 0 /* 801D6A4C 001D26AC 80 61 00 08 */ lwz r3, 8(r1) /* 801D6A50 001D26B0 48 00 02 65 */ bl TRKRequestSend /* 801D6A54 001D26B4 7C 7F 1B 79 */ or. r31, r3, r3 /* 801D6A58 001D26B8 40 82 00 24 */ bne lbl_801D6A7C /* 801D6A5C 001D26BC 80 61 00 10 */ lwz r3, 0x10(r1) /* 801D6A60 001D26C0 4B FF E9 7D */ bl TRKGetBuffer /* 801D6A64 001D26C4 28 03 00 00 */ cmplwi r3, 0 /* 801D6A68 001D26C8 41 82 00 14 */ beq lbl_801D6A7C /* 801D6A6C 001D26CC 80 03 00 20 */ lwz r0, 0x20(r3) /* 801D6A70 001D26D0 90 1E 00 00 */ stw r0, 0(r30) /* 801D6A74 001D26D4 80 03 00 28 */ lwz r0, 0x28(r3) /* 801D6A78 001D26D8 90 1D 00 00 */ stw r0, 0(r29) lbl_801D6A7C: /* 801D6A7C 001D26DC 80 61 00 10 */ lwz r3, 0x10(r1) /* 801D6A80 001D26E0 4B FF E8 F9 */ bl TRKReleaseBuffer lbl_801D6A84: /* 801D6A84 001D26E4 80 61 00 0C */ lwz r3, 0xc(r1) /* 801D6A88 001D26E8 4B FF E8 F1 */ bl TRKReleaseBuffer /* 801D6A8C 001D26EC 80 01 00 74 */ lwz r0, 0x74(r1) /* 801D6A90 001D26F0 7F E3 FB 78 */ mr r3, r31 /* 801D6A94 001D26F4 83 E1 00 6C */ lwz r31, 0x6c(r1) /* 801D6A98 001D26F8 83 C1 00 68 */ lwz r30, 0x68(r1) /* 801D6A9C 001D26FC 83 A1 00 64 */ lwz r29, 0x64(r1) /* 801D6AA0 001D2700 83 81 00 60 */ lwz r28, 0x60(r1) /* 801D6AA4 001D2704 7C 08 03 A6 */ mtlr r0 /* 801D6AA8 001D2708 38 21 00 70 */ addi r1, r1, 0x70 /* 801D6AAC 001D270C 4E 80 00 20 */ blr .global HandleCloseFileSupportRequest HandleCloseFileSupportRequest: /* 801D6AB0 001D2710 94 21 FF 90 */ stwu r1, -0x70(r1) /* 801D6AB4 001D2714 7C 08 02 A6 */ mflr r0 /* 801D6AB8 001D2718 38 A0 00 40 */ li r5, 0x40 /* 801D6ABC 001D271C 90 01 00 74 */ stw r0, 0x74(r1) /* 801D6AC0 001D2720 93 E1 00 6C */ stw r31, 0x6c(r1) /* 801D6AC4 001D2724 7C 7F 1B 78 */ mr r31, r3 /* 801D6AC8 001D2728 38 61 00 14 */ addi r3, r1, 0x14 /* 801D6ACC 001D272C 93 C1 00 68 */ stw r30, 0x68(r1) /* 801D6AD0 001D2730 93 A1 00 64 */ stw r29, 0x64(r1) /* 801D6AD4 001D2734 7C 9D 23 78 */ mr r29, r4 /* 801D6AD8 001D2738 38 80 00 00 */ li r4, 0 /* 801D6ADC 001D273C 4B E2 D6 59 */ bl TRK_memset /* 801D6AE0 001D2740 38 60 00 D3 */ li r3, 0xd3 /* 801D6AE4 001D2744 38 00 00 40 */ li r0, 0x40 /* 801D6AE8 001D2748 98 61 00 18 */ stb r3, 0x18(r1) /* 801D6AEC 001D274C 38 61 00 0C */ addi r3, r1, 0xc /* 801D6AF0 001D2750 38 81 00 08 */ addi r4, r1, 8 /* 801D6AF4 001D2754 90 01 00 14 */ stw r0, 0x14(r1) /* 801D6AF8 001D2758 93 E1 00 1C */ stw r31, 0x1c(r1) /* 801D6AFC 001D275C 4B FF E9 0D */ bl TRKGetFreeBuffer /* 801D6B00 001D2760 7C 7F 1B 79 */ or. r31, r3, r3 /* 801D6B04 001D2764 40 82 00 18 */ bne lbl_801D6B1C /* 801D6B08 001D2768 80 61 00 08 */ lwz r3, 8(r1) /* 801D6B0C 001D276C 38 81 00 14 */ addi r4, r1, 0x14 /* 801D6B10 001D2770 38 A0 00 40 */ li r5, 0x40 /* 801D6B14 001D2774 4B FF E5 61 */ bl TRKAppendBuffer_ui8 /* 801D6B18 001D2778 7C 7F 1B 78 */ mr r31, r3 lbl_801D6B1C: /* 801D6B1C 001D277C 2C 1F 00 00 */ cmpwi r31, 0 /* 801D6B20 001D2780 40 82 00 50 */ bne lbl_801D6B70 /* 801D6B24 001D2784 38 00 00 00 */ li r0, 0 /* 801D6B28 001D2788 38 81 00 10 */ addi r4, r1, 0x10 /* 801D6B2C 001D278C 90 1D 00 00 */ stw r0, 0(r29) /* 801D6B30 001D2790 38 A0 00 03 */ li r5, 3 /* 801D6B34 001D2794 38 C0 00 03 */ li r6, 3 /* 801D6B38 001D2798 38 E0 00 00 */ li r7, 0 /* 801D6B3C 001D279C 80 61 00 08 */ lwz r3, 8(r1) /* 801D6B40 001D27A0 48 00 01 75 */ bl TRKRequestSend /* 801D6B44 001D27A4 7C 7F 1B 79 */ or. r31, r3, r3 /* 801D6B48 001D27A8 40 82 00 10 */ bne lbl_801D6B58 /* 801D6B4C 001D27AC 80 61 00 10 */ lwz r3, 0x10(r1) /* 801D6B50 001D27B0 4B FF E8 8D */ bl TRKGetBuffer /* 801D6B54 001D27B4 7C 7E 1B 78 */ mr r30, r3 lbl_801D6B58: /* 801D6B58 001D27B8 2C 1F 00 00 */ cmpwi r31, 0 /* 801D6B5C 001D27BC 40 82 00 0C */ bne lbl_801D6B68 /* 801D6B60 001D27C0 80 1E 00 20 */ lwz r0, 0x20(r30) /* 801D6B64 001D27C4 90 1D 00 00 */ stw r0, 0(r29) lbl_801D6B68: /* 801D6B68 001D27C8 80 61 00 10 */ lwz r3, 0x10(r1) /* 801D6B6C 001D27CC 4B FF E8 0D */ bl TRKReleaseBuffer lbl_801D6B70: /* 801D6B70 001D27D0 80 61 00 0C */ lwz r3, 0xc(r1) /* 801D6B74 001D27D4 4B FF E8 05 */ bl TRKReleaseBuffer /* 801D6B78 001D27D8 80 01 00 74 */ lwz r0, 0x74(r1) /* 801D6B7C 001D27DC 7F E3 FB 78 */ mr r3, r31 /* 801D6B80 001D27E0 83 E1 00 6C */ lwz r31, 0x6c(r1) /* 801D6B84 001D27E4 83 C1 00 68 */ lwz r30, 0x68(r1) /* 801D6B88 001D27E8 83 A1 00 64 */ lwz r29, 0x64(r1) /* 801D6B8C 001D27EC 7C 08 03 A6 */ mtlr r0 /* 801D6B90 001D27F0 38 21 00 70 */ addi r1, r1, 0x70 /* 801D6B94 001D27F4 4E 80 00 20 */ blr .global HandleOpenFileSupportRequest HandleOpenFileSupportRequest: /* 801D6B98 001D27F8 94 21 FF 90 */ stwu r1, -0x70(r1) /* 801D6B9C 001D27FC 7C 08 02 A6 */ mflr r0 /* 801D6BA0 001D2800 90 01 00 74 */ stw r0, 0x74(r1) /* 801D6BA4 001D2804 BF 61 00 5C */ stmw r27, 0x5c(r1) /* 801D6BA8 001D2808 7C 7B 1B 78 */ mr r27, r3 /* 801D6BAC 001D280C 7C 9F 23 78 */ mr r31, r4 /* 801D6BB0 001D2810 7C BC 2B 78 */ mr r28, r5 /* 801D6BB4 001D2814 7C DD 33 78 */ mr r29, r6 /* 801D6BB8 001D2818 38 61 00 14 */ addi r3, r1, 0x14 /* 801D6BBC 001D281C 38 80 00 00 */ li r4, 0 /* 801D6BC0 001D2820 38 A0 00 40 */ li r5, 0x40 /* 801D6BC4 001D2824 4B E2 D5 71 */ bl TRK_memset /* 801D6BC8 001D2828 38 60 00 00 */ li r3, 0 /* 801D6BCC 001D282C 38 00 00 D2 */ li r0, 0xd2 /* 801D6BD0 001D2830 90 7C 00 00 */ stw r3, 0(r28) /* 801D6BD4 001D2834 7F 63 DB 78 */ mr r3, r27 /* 801D6BD8 001D2838 98 01 00 18 */ stb r0, 0x18(r1) /* 801D6BDC 001D283C 48 00 06 19 */ bl TRK_strlen /* 801D6BE0 001D2840 38 03 00 41 */ addi r0, r3, 0x41 /* 801D6BE4 001D2844 9B E1 00 1C */ stb r31, 0x1c(r1) /* 801D6BE8 001D2848 7F 63 DB 78 */ mr r3, r27 /* 801D6BEC 001D284C 90 01 00 14 */ stw r0, 0x14(r1) /* 801D6BF0 001D2850 48 00 06 05 */ bl TRK_strlen /* 801D6BF4 001D2854 38 03 00 01 */ addi r0, r3, 1 /* 801D6BF8 001D2858 38 61 00 0C */ addi r3, r1, 0xc /* 801D6BFC 001D285C B0 01 00 20 */ sth r0, 0x20(r1) /* 801D6C00 001D2860 38 81 00 08 */ addi r4, r1, 8 /* 801D6C04 001D2864 4B FF E8 05 */ bl TRKGetFreeBuffer /* 801D6C08 001D2868 80 61 00 08 */ lwz r3, 8(r1) /* 801D6C0C 001D286C 38 81 00 14 */ addi r4, r1, 0x14 /* 801D6C10 001D2870 38 A0 00 40 */ li r5, 0x40 /* 801D6C14 001D2874 4B FF E4 61 */ bl TRKAppendBuffer_ui8 /* 801D6C18 001D2878 7C 7F 1B 79 */ or. r31, r3, r3 /* 801D6C1C 001D287C 40 82 00 24 */ bne lbl_801D6C40 /* 801D6C20 001D2880 7F 63 DB 78 */ mr r3, r27 /* 801D6C24 001D2884 48 00 05 D1 */ bl TRK_strlen /* 801D6C28 001D2888 7C 65 1B 78 */ mr r5, r3 /* 801D6C2C 001D288C 80 61 00 08 */ lwz r3, 8(r1) /* 801D6C30 001D2890 7F 64 DB 78 */ mr r4, r27 /* 801D6C34 001D2894 38 A5 00 01 */ addi r5, r5, 1 /* 801D6C38 001D2898 4B FF E4 3D */ bl TRKAppendBuffer_ui8 /* 801D6C3C 001D289C 7C 7F 1B 78 */ mr r31, r3 lbl_801D6C40: /* 801D6C40 001D28A0 2C 1F 00 00 */ cmpwi r31, 0 /* 801D6C44 001D28A4 40 82 00 50 */ bne lbl_801D6C94 /* 801D6C48 001D28A8 38 00 00 00 */ li r0, 0 /* 801D6C4C 001D28AC 38 81 00 10 */ addi r4, r1, 0x10 /* 801D6C50 001D28B0 90 1D 00 00 */ stw r0, 0(r29) /* 801D6C54 001D28B4 38 A0 00 07 */ li r5, 7 /* 801D6C58 001D28B8 38 C0 00 03 */ li r6, 3 /* 801D6C5C 001D28BC 38 E0 00 00 */ li r7, 0 /* 801D6C60 001D28C0 80 61 00 08 */ lwz r3, 8(r1) /* 801D6C64 001D28C4 48 00 00 51 */ bl TRKRequestSend /* 801D6C68 001D28C8 7C 7F 1B 79 */ or. r31, r3, r3 /* 801D6C6C 001D28CC 40 82 00 10 */ bne lbl_801D6C7C /* 801D6C70 001D28D0 80 61 00 10 */ lwz r3, 0x10(r1) /* 801D6C74 001D28D4 4B FF E7 69 */ bl TRKGetBuffer /* 801D6C78 001D28D8 7C 7E 1B 78 */ mr r30, r3 lbl_801D6C7C: /* 801D6C7C 001D28DC 80 1E 00 20 */ lwz r0, 0x20(r30) /* 801D6C80 001D28E0 90 1D 00 00 */ stw r0, 0(r29) /* 801D6C84 001D28E4 80 1E 00 18 */ lwz r0, 0x18(r30) /* 801D6C88 001D28E8 90 1C 00 00 */ stw r0, 0(r28) /* 801D6C8C 001D28EC 80 61 00 10 */ lwz r3, 0x10(r1) /* 801D6C90 001D28F0 4B FF E6 E9 */ bl TRKReleaseBuffer lbl_801D6C94: /* 801D6C94 001D28F4 80 61 00 0C */ lwz r3, 0xc(r1) /* 801D6C98 001D28F8 4B FF E6 E1 */ bl TRKReleaseBuffer /* 801D6C9C 001D28FC 7F E3 FB 78 */ mr r3, r31 /* 801D6CA0 001D2900 BB 61 00 5C */ lmw r27, 0x5c(r1) /* 801D6CA4 001D2904 80 01 00 74 */ lwz r0, 0x74(r1) /* 801D6CA8 001D2908 7C 08 03 A6 */ mtlr r0 /* 801D6CAC 001D290C 38 21 00 70 */ addi r1, r1, 0x70 /* 801D6CB0 001D2910 4E 80 00 20 */ blr .global TRKRequestSend TRKRequestSend: /* 801D6CB4 001D2914 94 21 FF D0 */ stwu r1, -0x30(r1) /* 801D6CB8 001D2918 7C 08 02 A6 */ mflr r0 /* 801D6CBC 001D291C 90 01 00 34 */ stw r0, 0x34(r1) /* 801D6CC0 001D2920 38 00 FF FF */ li r0, -1 /* 801D6CC4 001D2924 BE C1 00 08 */ stmw r22, 8(r1) /* 801D6CC8 001D2928 7C 97 23 78 */ mr r23, r4 /* 801D6CCC 001D292C 7C 76 1B 78 */ mr r22, r3 /* 801D6CD0 001D2930 7C F8 3B 78 */ mr r24, r7 /* 801D6CD4 001D2934 3B 86 00 01 */ addi r28, r6, 1 /* 801D6CD8 001D2938 3B E0 00 00 */ li r31, 0 /* 801D6CDC 001D293C 3B 20 00 01 */ li r25, 1 /* 801D6CE0 001D2940 90 04 00 00 */ stw r0, 0(r4) /* 801D6CE4 001D2944 48 00 01 0C */ b lbl_801D6DF0 lbl_801D6CE8: /* 801D6CE8 001D2948 7E C3 B3 78 */ mr r3, r22 /* 801D6CEC 001D294C 4B FF DF F1 */ bl TRKMessageSend /* 801D6CF0 001D2950 7C 7F 1B 79 */ or. r31, r3, r3 /* 801D6CF4 001D2954 40 82 00 F8 */ bne lbl_801D6DEC /* 801D6CF8 001D2958 2C 18 00 00 */ cmpwi r24, 0 /* 801D6CFC 001D295C 41 82 00 08 */ beq lbl_801D6D04 /* 801D6D00 001D2960 3B A0 00 00 */ li r29, 0 lbl_801D6D04: /* 801D6D04 001D2964 4B FF E9 1D */ bl TRKTestForPacket /* 801D6D08 001D2968 90 77 00 00 */ stw r3, 0(r23) /* 801D6D0C 001D296C 80 77 00 00 */ lwz r3, 0(r23) /* 801D6D10 001D2970 2C 03 FF FF */ cmpwi r3, -1 /* 801D6D14 001D2974 40 82 00 20 */ bne lbl_801D6D34 /* 801D6D18 001D2978 2C 18 00 00 */ cmpwi r24, 0 /* 801D6D1C 001D297C 41 82 FF E8 */ beq lbl_801D6D04 /* 801D6D20 001D2980 3C 80 04 C5 */ lis r4, 0x04C4B3EC@ha /* 801D6D24 001D2984 3B BD 00 01 */ addi r29, r29, 1 /* 801D6D28 001D2988 38 04 B3 EC */ addi r0, r4, 0x04C4B3EC@l /* 801D6D2C 001D298C 7C 1D 00 40 */ cmplw r29, r0 /* 801D6D30 001D2990 41 80 FF D4 */ blt lbl_801D6D04 lbl_801D6D34: /* 801D6D34 001D2994 2C 03 FF FF */ cmpwi r3, -1 /* 801D6D38 001D2998 41 82 00 44 */ beq lbl_801D6D7C /* 801D6D3C 001D299C 3B 20 00 00 */ li r25, 0 /* 801D6D40 001D29A0 4B FF E6 9D */ bl TRKGetBuffer /* 801D6D44 001D29A4 38 80 00 00 */ li r4, 0 /* 801D6D48 001D29A8 7C 7E 1B 78 */ mr r30, r3 /* 801D6D4C 001D29AC 4B FF E5 BD */ bl TRKSetBufferPosition /* 801D6D50 001D29B0 80 9E 00 08 */ lwz r4, 8(r30) /* 801D6D54 001D29B4 38 7E 00 10 */ addi r3, r30, 0x10 /* 801D6D58 001D29B8 48 00 2F 0D */ bl OutputData /* 801D6D5C 001D29BC 8B 7E 00 14 */ lbz r27, 0x14(r30) /* 801D6D60 001D29C0 28 1B 00 80 */ cmplwi r27, 0x80 /* 801D6D64 001D29C4 40 80 00 18 */ bge lbl_801D6D7C /* 801D6D68 001D29C8 80 77 00 00 */ lwz r3, 0(r23) /* 801D6D6C 001D29CC 4B FF E8 05 */ bl TRKProcessInput /* 801D6D70 001D29D0 38 00 FF FF */ li r0, -1 /* 801D6D74 001D29D4 90 17 00 00 */ stw r0, 0(r23) /* 801D6D78 001D29D8 4B FF FF 8C */ b lbl_801D6D04 lbl_801D6D7C: /* 801D6D7C 001D29DC 80 77 00 00 */ lwz r3, 0(r23) /* 801D6D80 001D29E0 2C 03 FF FF */ cmpwi r3, -1 /* 801D6D84 001D29E4 41 82 00 68 */ beq lbl_801D6DEC /* 801D6D88 001D29E8 80 1E 00 08 */ lwz r0, 8(r30) /* 801D6D8C 001D29EC 28 00 00 40 */ cmplwi r0, 0x40 /* 801D6D90 001D29F0 40 80 00 08 */ bge lbl_801D6D98 /* 801D6D94 001D29F4 3B 20 00 01 */ li r25, 1 lbl_801D6D98: /* 801D6D98 001D29F8 2C 1F 00 00 */ cmpwi r31, 0 /* 801D6D9C 001D29FC 40 82 00 10 */ bne lbl_801D6DAC /* 801D6DA0 001D2A00 2C 19 00 00 */ cmpwi r25, 0 /* 801D6DA4 001D2A04 40 82 00 08 */ bne lbl_801D6DAC /* 801D6DA8 001D2A08 8B 5E 00 18 */ lbz r26, 0x18(r30) lbl_801D6DAC: /* 801D6DAC 001D2A0C 2C 1F 00 00 */ cmpwi r31, 0 /* 801D6DB0 001D2A10 40 82 00 20 */ bne lbl_801D6DD0 /* 801D6DB4 001D2A14 2C 19 00 00 */ cmpwi r25, 0 /* 801D6DB8 001D2A18 40 82 00 18 */ bne lbl_801D6DD0 /* 801D6DBC 001D2A1C 2C 1B 00 80 */ cmpwi r27, 0x80 /* 801D6DC0 001D2A20 40 82 00 0C */ bne lbl_801D6DCC /* 801D6DC4 001D2A24 2C 1A 00 00 */ cmpwi r26, 0 /* 801D6DC8 001D2A28 41 82 00 08 */ beq lbl_801D6DD0 lbl_801D6DCC: /* 801D6DCC 001D2A2C 3B 20 00 01 */ li r25, 1 lbl_801D6DD0: /* 801D6DD0 001D2A30 2C 1F 00 00 */ cmpwi r31, 0 /* 801D6DD4 001D2A34 40 82 00 0C */ bne lbl_801D6DE0 /* 801D6DD8 001D2A38 2C 19 00 00 */ cmpwi r25, 0 /* 801D6DDC 001D2A3C 41 82 00 10 */ beq lbl_801D6DEC lbl_801D6DE0: /* 801D6DE0 001D2A40 4B FF E5 99 */ bl TRKReleaseBuffer /* 801D6DE4 001D2A44 38 00 FF FF */ li r0, -1 /* 801D6DE8 001D2A48 90 17 00 00 */ stw r0, 0(r23) lbl_801D6DEC: /* 801D6DEC 001D2A4C 3B 9C FF FF */ addi r28, r28, -1 lbl_801D6DF0: /* 801D6DF0 001D2A50 2C 1C 00 00 */ cmpwi r28, 0 /* 801D6DF4 001D2A54 41 82 00 18 */ beq lbl_801D6E0C /* 801D6DF8 001D2A58 80 17 00 00 */ lwz r0, 0(r23) /* 801D6DFC 001D2A5C 2C 00 FF FF */ cmpwi r0, -1 /* 801D6E00 001D2A60 40 82 00 0C */ bne lbl_801D6E0C /* 801D6E04 001D2A64 2C 1F 00 00 */ cmpwi r31, 0 /* 801D6E08 001D2A68 41 82 FE E0 */ beq lbl_801D6CE8 lbl_801D6E0C: /* 801D6E0C 001D2A6C 80 17 00 00 */ lwz r0, 0(r23) /* 801D6E10 001D2A70 2C 00 FF FF */ cmpwi r0, -1 /* 801D6E14 001D2A74 40 82 00 08 */ bne lbl_801D6E1C /* 801D6E18 001D2A78 3B E0 08 00 */ li r31, 0x800 lbl_801D6E1C: /* 801D6E1C 001D2A7C 7F E3 FB 78 */ mr r3, r31 /* 801D6E20 001D2A80 BA C1 00 08 */ lmw r22, 8(r1) /* 801D6E24 001D2A84 80 01 00 34 */ lwz r0, 0x34(r1) /* 801D6E28 001D2A88 7C 08 03 A6 */ mtlr r0 /* 801D6E2C 001D2A8C 38 21 00 30 */ addi r1, r1, 0x30 /* 801D6E30 001D2A90 4E 80 00 20 */ blr .global TRKSuppAccessFile TRKSuppAccessFile: /* 801D6E34 001D2A94 94 21 FF 70 */ stwu r1, -0x90(r1) /* 801D6E38 001D2A98 7C 08 02 A6 */ mflr r0 /* 801D6E3C 001D2A9C 90 01 00 94 */ stw r0, 0x94(r1) /* 801D6E40 001D2AA0 BE 61 00 5C */ stmw r19, 0x5c(r1) /* 801D6E44 001D2AA4 7C 98 23 79 */ or. r24, r4, r4 /* 801D6E48 001D2AA8 7C 77 1B 78 */ mr r23, r3 /* 801D6E4C 001D2AAC 7C B9 2B 78 */ mr r25, r5 /* 801D6E50 001D2AB0 7C DA 33 78 */ mr r26, r6 /* 801D6E54 001D2AB4 7C FB 3B 78 */ mr r27, r7 /* 801D6E58 001D2AB8 7D 1C 43 78 */ mr r28, r8 /* 801D6E5C 001D2ABC 41 82 00 10 */ beq lbl_801D6E6C /* 801D6E60 001D2AC0 80 19 00 00 */ lwz r0, 0(r25) /* 801D6E64 001D2AC4 28 00 00 00 */ cmplwi r0, 0 /* 801D6E68 001D2AC8 40 82 00 0C */ bne lbl_801D6E74 lbl_801D6E6C: /* 801D6E6C 001D2ACC 38 60 00 02 */ li r3, 2 /* 801D6E70 001D2AD0 48 00 01 D0 */ b lbl_801D7040 lbl_801D6E74: /* 801D6E74 001D2AD4 38 00 00 00 */ li r0, 0 /* 801D6E78 001D2AD8 3B A0 00 00 */ li r29, 0 /* 801D6E7C 001D2ADC 90 1A 00 00 */ stw r0, 0(r26) /* 801D6E80 001D2AE0 3B C0 00 00 */ li r30, 0 /* 801D6E84 001D2AE4 3A A0 00 00 */ li r21, 0 /* 801D6E88 001D2AE8 48 00 01 88 */ b lbl_801D7010 lbl_801D6E8C: /* 801D6E8C 001D2AEC 38 61 00 14 */ addi r3, r1, 0x14 /* 801D6E90 001D2AF0 38 80 00 00 */ li r4, 0 /* 801D6E94 001D2AF4 38 A0 00 40 */ li r5, 0x40 /* 801D6E98 001D2AF8 4B E2 D2 9D */ bl TRK_memset /* 801D6E9C 001D2AFC 80 19 00 00 */ lwz r0, 0(r25) /* 801D6EA0 001D2B00 38 60 08 00 */ li r3, 0x800 /* 801D6EA4 001D2B04 7C 1E 00 50 */ subf r0, r30, r0 /* 801D6EA8 001D2B08 28 00 08 00 */ cmplwi r0, 0x800 /* 801D6EAC 001D2B0C 41 81 00 08 */ bgt lbl_801D6EB4 /* 801D6EB0 001D2B10 7C 03 03 78 */ mr r3, r0 lbl_801D6EB4: /* 801D6EB4 001D2B14 2C 1C 00 00 */ cmpwi r28, 0 /* 801D6EB8 001D2B18 7C 7F 1B 78 */ mr r31, r3 /* 801D6EBC 001D2B1C 38 00 00 D0 */ li r0, 0xd0 /* 801D6EC0 001D2B20 41 82 00 08 */ beq lbl_801D6EC8 /* 801D6EC4 001D2B24 38 00 00 D1 */ li r0, 0xd1 lbl_801D6EC8: /* 801D6EC8 001D2B28 2C 1C 00 00 */ cmpwi r28, 0 /* 801D6ECC 001D2B2C 98 01 00 18 */ stb r0, 0x18(r1) /* 801D6ED0 001D2B30 38 00 00 40 */ li r0, 0x40 /* 801D6ED4 001D2B34 40 82 00 08 */ bne lbl_801D6EDC /* 801D6ED8 001D2B38 38 1F 00 40 */ addi r0, r31, 0x40 lbl_801D6EDC: /* 801D6EDC 001D2B3C 90 01 00 14 */ stw r0, 0x14(r1) /* 801D6EE0 001D2B40 38 61 00 0C */ addi r3, r1, 0xc /* 801D6EE4 001D2B44 38 81 00 08 */ addi r4, r1, 8 /* 801D6EE8 001D2B48 92 E1 00 1C */ stw r23, 0x1c(r1) /* 801D6EEC 001D2B4C B3 E1 00 20 */ sth r31, 0x20(r1) /* 801D6EF0 001D2B50 4B FF E5 19 */ bl TRKGetFreeBuffer /* 801D6EF4 001D2B54 80 61 00 08 */ lwz r3, 8(r1) /* 801D6EF8 001D2B58 38 81 00 14 */ addi r4, r1, 0x14 /* 801D6EFC 001D2B5C 38 A0 00 40 */ li r5, 0x40 /* 801D6F00 001D2B60 4B FF E1 75 */ bl TRKAppendBuffer_ui8 /* 801D6F04 001D2B64 2C 1C 00 00 */ cmpwi r28, 0 /* 801D6F08 001D2B68 7C 75 1B 78 */ mr r21, r3 /* 801D6F0C 001D2B6C 40 82 00 20 */ bne lbl_801D6F2C /* 801D6F10 001D2B70 2C 15 00 00 */ cmpwi r21, 0 /* 801D6F14 001D2B74 40 82 00 18 */ bne lbl_801D6F2C /* 801D6F18 001D2B78 80 61 00 08 */ lwz r3, 8(r1) /* 801D6F1C 001D2B7C 7F E5 FB 78 */ mr r5, r31 /* 801D6F20 001D2B80 7C 98 F2 14 */ add r4, r24, r30 /* 801D6F24 001D2B84 4B FF E1 51 */ bl TRKAppendBuffer_ui8 /* 801D6F28 001D2B88 7C 75 1B 78 */ mr r21, r3 lbl_801D6F2C: /* 801D6F2C 001D2B8C 2C 15 00 00 */ cmpwi r21, 0 /* 801D6F30 001D2B90 40 82 00 D4 */ bne lbl_801D7004 /* 801D6F34 001D2B94 2C 1B 00 00 */ cmpwi r27, 0 /* 801D6F38 001D2B98 41 82 00 C0 */ beq lbl_801D6FF8 /* 801D6F3C 001D2B9C 2C 1C 00 00 */ cmpwi r28, 0 /* 801D6F40 001D2BA0 38 00 00 00 */ li r0, 0 /* 801D6F44 001D2BA4 41 82 00 10 */ beq lbl_801D6F54 /* 801D6F48 001D2BA8 28 17 00 00 */ cmplwi r23, 0 /* 801D6F4C 001D2BAC 40 82 00 08 */ bne lbl_801D6F54 /* 801D6F50 001D2BB0 38 00 00 01 */ li r0, 1 lbl_801D6F54: /* 801D6F54 001D2BB4 2C 1C 00 00 */ cmpwi r28, 0 /* 801D6F58 001D2BB8 80 61 00 08 */ lwz r3, 8(r1) /* 801D6F5C 001D2BBC 38 81 00 10 */ addi r4, r1, 0x10 /* 801D6F60 001D2BC0 38 A0 00 05 */ li r5, 5 /* 801D6F64 001D2BC4 7C 00 00 34 */ cntlzw r0, r0 /* 801D6F68 001D2BC8 38 C0 00 03 */ li r6, 3 /* 801D6F6C 001D2BCC 54 07 D9 7E */ srwi r7, r0, 5 /* 801D6F70 001D2BD0 4B FF FD 45 */ bl TRKRequestSend /* 801D6F74 001D2BD4 7C 75 1B 79 */ or. r21, r3, r3 /* 801D6F78 001D2BD8 40 82 00 10 */ bne lbl_801D6F88 /* 801D6F7C 001D2BDC 80 61 00 10 */ lwz r3, 0x10(r1) /* 801D6F80 001D2BE0 4B FF E4 5D */ bl TRKGetBuffer /* 801D6F84 001D2BE4 7C 76 1B 78 */ mr r22, r3 lbl_801D6F88: /* 801D6F88 001D2BE8 80 16 00 20 */ lwz r0, 0x20(r22) /* 801D6F8C 001D2BEC 2C 1C 00 00 */ cmpwi r28, 0 /* 801D6F90 001D2BF0 A2 76 00 24 */ lhz r19, 0x24(r22) /* 801D6F94 001D2BF4 54 14 06 3E */ clrlwi r20, r0, 0x18 /* 801D6F98 001D2BF8 41 82 00 40 */ beq lbl_801D6FD8 /* 801D6F9C 001D2BFC 2C 15 00 00 */ cmpwi r21, 0 /* 801D6FA0 001D2C00 40 82 00 38 */ bne lbl_801D6FD8 /* 801D6FA4 001D2C04 7C 13 F8 40 */ cmplw r19, r31 /* 801D6FA8 001D2C08 41 81 00 30 */ bgt lbl_801D6FD8 /* 801D6FAC 001D2C0C 7E C3 B3 78 */ mr r3, r22 /* 801D6FB0 001D2C10 38 80 00 40 */ li r4, 0x40 /* 801D6FB4 001D2C14 4B FF E3 55 */ bl TRKSetBufferPosition /* 801D6FB8 001D2C18 7E C3 B3 78 */ mr r3, r22 /* 801D6FBC 001D2C1C 7E 65 9B 78 */ mr r5, r19 /* 801D6FC0 001D2C20 7C 98 F2 14 */ add r4, r24, r30 /* 801D6FC4 001D2C24 4B FF DE 35 */ bl TRKReadBuffer_ui8 /* 801D6FC8 001D2C28 7C 75 1B 78 */ mr r21, r3 /* 801D6FCC 001D2C2C 2C 15 03 02 */ cmpwi r21, 0x302 /* 801D6FD0 001D2C30 40 82 00 08 */ bne lbl_801D6FD8 /* 801D6FD4 001D2C34 3A A0 00 00 */ li r21, 0 lbl_801D6FD8: /* 801D6FD8 001D2C38 7C 13 F8 40 */ cmplw r19, r31 /* 801D6FDC 001D2C3C 41 82 00 0C */ beq lbl_801D6FE8 /* 801D6FE0 001D2C40 7E 7F 9B 78 */ mr r31, r19 /* 801D6FE4 001D2C44 3B A0 00 01 */ li r29, 1 lbl_801D6FE8: /* 801D6FE8 001D2C48 92 9A 00 00 */ stw r20, 0(r26) /* 801D6FEC 001D2C4C 80 61 00 10 */ lwz r3, 0x10(r1) /* 801D6FF0 001D2C50 4B FF E3 89 */ bl TRKReleaseBuffer /* 801D6FF4 001D2C54 48 00 00 10 */ b lbl_801D7004 lbl_801D6FF8: /* 801D6FF8 001D2C58 80 61 00 08 */ lwz r3, 8(r1) /* 801D6FFC 001D2C5C 4B FF DC E1 */ bl TRKMessageSend /* 801D7000 001D2C60 7C 75 1B 78 */ mr r21, r3 lbl_801D7004: /* 801D7004 001D2C64 80 61 00 0C */ lwz r3, 0xc(r1) /* 801D7008 001D2C68 4B FF E3 71 */ bl TRKReleaseBuffer /* 801D700C 001D2C6C 7F DE FA 14 */ add r30, r30, r31 lbl_801D7010: /* 801D7010 001D2C70 2C 1D 00 00 */ cmpwi r29, 0 /* 801D7014 001D2C74 40 82 00 24 */ bne lbl_801D7038 /* 801D7018 001D2C78 80 19 00 00 */ lwz r0, 0(r25) /* 801D701C 001D2C7C 7C 1E 00 40 */ cmplw r30, r0 /* 801D7020 001D2C80 40 80 00 18 */ bge lbl_801D7038 /* 801D7024 001D2C84 2C 15 00 00 */ cmpwi r21, 0 /* 801D7028 001D2C88 40 82 00 10 */ bne lbl_801D7038 /* 801D702C 001D2C8C 80 1A 00 00 */ lwz r0, 0(r26) /* 801D7030 001D2C90 2C 00 00 00 */ cmpwi r0, 0 /* 801D7034 001D2C94 41 82 FE 58 */ beq lbl_801D6E8C lbl_801D7038: /* 801D7038 001D2C98 93 D9 00 00 */ stw r30, 0(r25) /* 801D703C 001D2C9C 7E A3 AB 78 */ mr r3, r21 lbl_801D7040: /* 801D7040 001D2CA0 BA 61 00 5C */ lmw r19, 0x5c(r1) /* 801D7044 001D2CA4 80 01 00 94 */ lwz r0, 0x94(r1) /* 801D7048 001D2CA8 7C 08 03 A6 */ mtlr r0 /* 801D704C 001D2CAC 38 21 00 90 */ addi r1, r1, 0x90 /* 801D7050 001D2CB0 4E 80 00 20 */ blr