.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global NHTTPi_InitBgnEndInfo NHTTPi_InitBgnEndInfo: /* 802F7B34 002F3794 38 80 00 00 */ li r4, 0 /* 802F7B38 002F3798 38 00 FF FF */ li r0, -1 /* 802F7B3C 002F379C 90 83 07 D4 */ stw r4, 0x7d4(r3) /* 802F7B40 002F37A0 90 83 07 D8 */ stw r4, 0x7d8(r3) /* 802F7B44 002F37A4 90 83 07 C4 */ stw r4, 0x7c4(r3) /* 802F7B48 002F37A8 90 83 07 C8 */ stw r4, 0x7c8(r3) /* 802F7B4C 002F37AC 90 83 07 CC */ stw r4, 0x7cc(r3) /* 802F7B50 002F37B0 90 03 07 D0 */ stw r0, 0x7d0(r3) /* 802F7B54 002F37B4 90 83 07 DC */ stw r4, 0x7dc(r3) /* 802F7B58 002F37B8 90 83 07 E0 */ stw r4, 0x7e0(r3) /* 802F7B5C 002F37BC 4E 80 00 20 */ blr .global NHTTPi_alloc NHTTPi_alloc: /* 802F7B60 002F37C0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802F7B64 002F37C4 7C 08 02 A6 */ mflr r0 /* 802F7B68 002F37C8 90 01 00 14 */ stw r0, 0x14(r1) /* 802F7B6C 002F37CC 93 E1 00 0C */ stw r31, 0xc(r1) /* 802F7B70 002F37D0 7C 9F 23 78 */ mr r31, r4 /* 802F7B74 002F37D4 93 C1 00 08 */ stw r30, 8(r1) /* 802F7B78 002F37D8 7C 7E 1B 78 */ mr r30, r3 /* 802F7B7C 002F37DC 48 00 82 ED */ bl NHTTPi_GetSystemInfoP /* 802F7B80 002F37E0 81 83 07 C4 */ lwz r12, 0x7c4(r3) /* 802F7B84 002F37E4 2C 0C 00 00 */ cmpwi r12, 0 /* 802F7B88 002F37E8 41 82 00 18 */ beq lbl_802F7BA0 /* 802F7B8C 002F37EC 7F C3 F3 78 */ mr r3, r30 /* 802F7B90 002F37F0 7F E4 FB 78 */ mr r4, r31 /* 802F7B94 002F37F4 7D 89 03 A6 */ mtctr r12 /* 802F7B98 002F37F8 4E 80 04 21 */ bctrl /* 802F7B9C 002F37FC 48 00 00 08 */ b lbl_802F7BA4 lbl_802F7BA0: /* 802F7BA0 002F3800 38 60 00 00 */ li r3, 0 lbl_802F7BA4: /* 802F7BA4 002F3804 80 01 00 14 */ lwz r0, 0x14(r1) /* 802F7BA8 002F3808 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802F7BAC 002F380C 83 C1 00 08 */ lwz r30, 8(r1) /* 802F7BB0 002F3810 7C 08 03 A6 */ mtlr r0 /* 802F7BB4 002F3814 38 21 00 10 */ addi r1, r1, 0x10 /* 802F7BB8 002F3818 4E 80 00 20 */ blr .global NHTTPi_free NHTTPi_free: /* 802F7BBC 002F381C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802F7BC0 002F3820 7C 08 02 A6 */ mflr r0 /* 802F7BC4 002F3824 90 01 00 14 */ stw r0, 0x14(r1) /* 802F7BC8 002F3828 93 E1 00 0C */ stw r31, 0xc(r1) /* 802F7BCC 002F382C 7C 7F 1B 78 */ mr r31, r3 /* 802F7BD0 002F3830 48 00 82 99 */ bl NHTTPi_GetSystemInfoP /* 802F7BD4 002F3834 81 83 07 C8 */ lwz r12, 0x7c8(r3) /* 802F7BD8 002F3838 2C 0C 00 00 */ cmpwi r12, 0 /* 802F7BDC 002F383C 41 82 00 10 */ beq lbl_802F7BEC /* 802F7BE0 002F3840 7F E3 FB 78 */ mr r3, r31 /* 802F7BE4 002F3844 7D 89 03 A6 */ mtctr r12 /* 802F7BE8 002F3848 4E 80 04 21 */ bctrl lbl_802F7BEC: /* 802F7BEC 002F384C 80 01 00 14 */ lwz r0, 0x14(r1) /* 802F7BF0 002F3850 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802F7BF4 002F3854 7C 08 03 A6 */ mtlr r0 /* 802F7BF8 002F3858 38 21 00 10 */ addi r1, r1, 0x10 /* 802F7BFC 002F385C 4E 80 00 20 */ blr .global NHTTPi_SetError NHTTPi_SetError: /* 802F7C00 002F3860 90 83 07 D8 */ stw r4, 0x7d8(r3) /* 802F7C04 002F3864 4E 80 00 20 */ blr .global NHTTPi_SetSSLError NHTTPi_SetSSLError: /* 802F7C08 002F3868 90 83 07 D4 */ stw r4, 0x7d4(r3) /* 802F7C0C 002F386C 4E 80 00 20 */ blr .global NHTTPi_GetSSLError NHTTPi_GetSSLError: /* 802F7C10 002F3870 80 63 07 D4 */ lwz r3, 0x7d4(r3) /* 802F7C14 002F3874 4E 80 00 20 */ blr .global NHTTPi_Startup NHTTPi_Startup: /* 802F7C18 002F3878 94 21 FF D0 */ stwu r1, -0x30(r1) /* 802F7C1C 002F387C 7C 08 02 A6 */ mflr r0 /* 802F7C20 002F3880 90 01 00 34 */ stw r0, 0x34(r1) /* 802F7C24 002F3884 39 61 00 30 */ addi r11, r1, 0x30 /* 802F7C28 002F3888 4B EC F4 F1 */ bl _savegpr_23 /* 802F7C2C 002F388C 3F C0 80 44 */ lis r30, lbl_80445FF0@ha /* 802F7C30 002F3890 7C 7F 1B 78 */ mr r31, r3 /* 802F7C34 002F3894 7C 99 23 78 */ mr r25, r4 /* 802F7C38 002F3898 7C B7 2B 78 */ mr r23, r5 /* 802F7C3C 002F389C 7C D8 33 78 */ mr r24, r6 /* 802F7C40 002F38A0 3B DE 5F F0 */ addi r30, r30, lbl_80445FF0@l /* 802F7C44 002F38A4 48 00 82 8D */ bl NHTTPi_GetBgnEndInfoP /* 802F7C48 002F38A8 7C 7D 1B 78 */ mr r29, r3 /* 802F7C4C 002F38AC 7F E3 FB 78 */ mr r3, r31 /* 802F7C50 002F38B0 48 00 82 85 */ bl NHTTPi_GetListInfoP /* 802F7C54 002F38B4 7C 7C 1B 78 */ mr r28, r3 /* 802F7C58 002F38B8 7F E3 FB 78 */ mr r3, r31 /* 802F7C5C 002F38BC 48 00 82 81 */ bl NHTTPi_GetReqInfoP /* 802F7C60 002F38C0 7C 7B 1B 78 */ mr r27, r3 /* 802F7C64 002F38C4 7F E3 FB 78 */ mr r3, r31 /* 802F7C68 002F38C8 48 00 82 85 */ bl NHTTPi_GetMutexInfoP /* 802F7C6C 002F38CC 7C 7A 1B 78 */ mr r26, r3 /* 802F7C70 002F38D0 7F E3 FB 78 */ mr r3, r31 /* 802F7C74 002F38D4 48 00 82 71 */ bl NHTTPi_GetThreadInfoP /* 802F7C78 002F38D8 93 3D 07 C4 */ stw r25, 0x7c4(r29) /* 802F7C7C 002F38DC 7C 79 1B 78 */ mr r25, r3 /* 802F7C80 002F38E0 3B E0 00 00 */ li r31, 0 /* 802F7C84 002F38E4 7F 83 E3 78 */ mr r3, r28 /* 802F7C88 002F38E8 92 FD 07 C8 */ stw r23, 0x7c8(r29) /* 802F7C8C 002F38EC 93 FD 07 D8 */ stw r31, 0x7d8(r29) /* 802F7C90 002F38F0 93 FD 07 D4 */ stw r31, 0x7d4(r29) /* 802F7C94 002F38F4 93 FD 07 DC */ stw r31, 0x7dc(r29) /* 802F7C98 002F38F8 48 00 05 0D */ bl NHTTPi_InitListInfo /* 802F7C9C 002F38FC 7F 63 DB 78 */ mr r3, r27 /* 802F7CA0 002F3900 48 00 10 15 */ bl NHTTPi_InitRequestInfo /* 802F7CA4 002F3904 7F 43 D3 78 */ mr r3, r26 /* 802F7CA8 002F3908 48 00 07 59 */ bl NHTTPi_initLockReqList /* 802F7CAC 002F390C 38 00 FF FF */ li r0, -1 /* 802F7CB0 002F3910 90 1D 07 D0 */ stw r0, 0x7d0(r29) /* 802F7CB4 002F3914 48 00 81 B5 */ bl NHTTPi_GetSystemInfoP /* 802F7CB8 002F3918 81 83 07 C4 */ lwz r12, 0x7c4(r3) /* 802F7CBC 002F391C 2C 0C 00 00 */ cmpwi r12, 0 /* 802F7CC0 002F3920 41 82 00 18 */ beq lbl_802F7CD8 /* 802F7CC4 002F3924 38 60 20 00 */ li r3, 0x2000 /* 802F7CC8 002F3928 38 80 00 08 */ li r4, 8 /* 802F7CCC 002F392C 7D 89 03 A6 */ mtctr r12 /* 802F7CD0 002F3930 4E 80 04 21 */ bctrl /* 802F7CD4 002F3934 7C 7F 1B 78 */ mr r31, r3 lbl_802F7CD8: /* 802F7CD8 002F3938 2C 1F 00 00 */ cmpwi r31, 0 /* 802F7CDC 002F393C 93 FD 07 E0 */ stw r31, 0x7e0(r29) /* 802F7CE0 002F3940 40 82 00 18 */ bne lbl_802F7CF8 /* 802F7CE4 002F3944 38 00 00 01 */ li r0, 1 /* 802F7CE8 002F3948 90 1D 07 D8 */ stw r0, 0x7d8(r29) /* 802F7CEC 002F394C 48 00 07 55 */ bl NHTTPi_exitLockReqList /* 802F7CF0 002F3950 38 60 00 00 */ li r3, 0 /* 802F7CF4 002F3954 48 00 00 98 */ b lbl_802F7D8C lbl_802F7CF8: /* 802F7CF8 002F3958 7F 23 CB 78 */ mr r3, r25 /* 802F7CFC 002F395C 7F 04 C3 78 */ mr r4, r24 /* 802F7D00 002F3960 7F E5 FB 78 */ mr r5, r31 /* 802F7D04 002F3964 48 00 07 49 */ bl NHTTPi_createCommThread /* 802F7D08 002F3968 2C 03 00 00 */ cmpwi r3, 0 /* 802F7D0C 002F396C 40 82 00 40 */ bne lbl_802F7D4C /* 802F7D10 002F3970 38 00 00 09 */ li r0, 9 /* 802F7D14 002F3974 90 1D 07 D8 */ stw r0, 0x7d8(r29) /* 802F7D18 002F3978 83 DD 07 E0 */ lwz r30, 0x7e0(r29) /* 802F7D1C 002F397C 48 00 81 4D */ bl NHTTPi_GetSystemInfoP /* 802F7D20 002F3980 81 83 07 C8 */ lwz r12, 0x7c8(r3) /* 802F7D24 002F3984 2C 0C 00 00 */ cmpwi r12, 0 /* 802F7D28 002F3988 41 82 00 10 */ beq lbl_802F7D38 /* 802F7D2C 002F398C 7F C3 F3 78 */ mr r3, r30 /* 802F7D30 002F3990 7D 89 03 A6 */ mtctr r12 /* 802F7D34 002F3994 4E 80 04 21 */ bctrl lbl_802F7D38: /* 802F7D38 002F3998 38 00 00 00 */ li r0, 0 /* 802F7D3C 002F399C 90 1D 07 E0 */ stw r0, 0x7e0(r29) /* 802F7D40 002F39A0 48 00 07 01 */ bl NHTTPi_exitLockReqList /* 802F7D44 002F39A4 38 60 00 00 */ li r3, 0 /* 802F7D48 002F39A8 48 00 00 44 */ b lbl_802F7D8C lbl_802F7D4C: /* 802F7D4C 002F39AC 7F A3 EB 78 */ mr r3, r29 /* 802F7D50 002F39B0 4B FF 56 7D */ bl NCDGetCurrentIpConfig /* 802F7D54 002F39B4 2C 03 00 00 */ cmpwi r3, 0 /* 802F7D58 002F39B8 40 80 00 28 */ bge lbl_802F7D80 /* 802F7D5C 002F39BC 7C 64 1B 78 */ mr r4, r3 /* 802F7D60 002F39C0 38 7E 00 00 */ addi r3, r30, 0 /* 802F7D64 002F39C4 4C C6 31 82 */ crclr 6 /* 802F7D68 002F39C8 4B D0 FD 5D */ bl OSReport /* 802F7D6C 002F39CC 38 7E 00 20 */ addi r3, r30, 0x20 /* 802F7D70 002F39D0 38 BE 00 30 */ addi r5, r30, 0x30 /* 802F7D74 002F39D4 38 80 00 E3 */ li r4, 0xe3 /* 802F7D78 002F39D8 4C C6 31 82 */ crclr 6 /* 802F7D7C 002F39DC 4B F7 37 21 */ bl OSPanic lbl_802F7D80: /* 802F7D80 002F39E0 38 00 00 01 */ li r0, 1 /* 802F7D84 002F39E4 38 60 00 01 */ li r3, 1 /* 802F7D88 002F39E8 90 1D 07 CC */ stw r0, 0x7cc(r29) lbl_802F7D8C: /* 802F7D8C 002F39EC 39 61 00 30 */ addi r11, r1, 0x30 /* 802F7D90 002F39F0 4B EC F3 D5 */ bl _restgpr_23 /* 802F7D94 002F39F4 80 01 00 34 */ lwz r0, 0x34(r1) /* 802F7D98 002F39F8 7C 08 03 A6 */ mtlr r0 /* 802F7D9C 002F39FC 38 21 00 30 */ addi r1, r1, 0x30 /* 802F7DA0 002F3A00 4E 80 00 20 */ blr .global NHTTPi_CleanupAsync NHTTPi_CleanupAsync: /* 802F7DA4 002F3A04 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F7DA8 002F3A08 7C 08 02 A6 */ mflr r0 /* 802F7DAC 002F3A0C 90 01 00 24 */ stw r0, 0x24(r1) /* 802F7DB0 002F3A10 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802F7DB4 002F3A14 93 C1 00 18 */ stw r30, 0x18(r1) /* 802F7DB8 002F3A18 93 A1 00 14 */ stw r29, 0x14(r1) /* 802F7DBC 002F3A1C 7C 9D 23 78 */ mr r29, r4 /* 802F7DC0 002F3A20 93 81 00 10 */ stw r28, 0x10(r1) /* 802F7DC4 002F3A24 7C 7C 1B 78 */ mr r28, r3 /* 802F7DC8 002F3A28 48 00 81 09 */ bl NHTTPi_GetBgnEndInfoP /* 802F7DCC 002F3A2C 7C 7E 1B 78 */ mr r30, r3 /* 802F7DD0 002F3A30 7F 83 E3 78 */ mr r3, r28 /* 802F7DD4 002F3A34 48 00 81 11 */ bl NHTTPi_GetThreadInfoP /* 802F7DD8 002F3A38 7C 7F 1B 78 */ mr r31, r3 /* 802F7DDC 002F3A3C 38 80 00 01 */ li r4, 1 /* 802F7DE0 002F3A40 48 00 07 7D */ bl NHTTPi_CheckCurrentThread /* 802F7DE4 002F3A44 7F 83 E3 78 */ mr r3, r28 /* 802F7DE8 002F3A48 48 00 17 F1 */ bl NHTTPi_cancelAllRequests /* 802F7DEC 002F3A4C 7F E3 FB 78 */ mr r3, r31 /* 802F7DF0 002F3A50 7F C4 F3 78 */ mr r4, r30 /* 802F7DF4 002F3A54 48 00 06 ED */ bl NHTTPi_destroyCommThread /* 802F7DF8 002F3A58 83 FE 07 E0 */ lwz r31, 0x7e0(r30) /* 802F7DFC 002F3A5C 48 00 80 6D */ bl NHTTPi_GetSystemInfoP /* 802F7E00 002F3A60 81 83 07 C8 */ lwz r12, 0x7c8(r3) /* 802F7E04 002F3A64 2C 0C 00 00 */ cmpwi r12, 0 /* 802F7E08 002F3A68 41 82 00 10 */ beq lbl_802F7E18 /* 802F7E0C 002F3A6C 7F E3 FB 78 */ mr r3, r31 /* 802F7E10 002F3A70 7D 89 03 A6 */ mtctr r12 /* 802F7E14 002F3A74 4E 80 04 21 */ bctrl lbl_802F7E18: /* 802F7E18 002F3A78 3B E0 00 00 */ li r31, 0 /* 802F7E1C 002F3A7C 93 FE 07 E0 */ stw r31, 0x7e0(r30) /* 802F7E20 002F3A80 48 00 06 21 */ bl NHTTPi_exitLockReqList /* 802F7E24 002F3A84 2C 1D 00 00 */ cmpwi r29, 0 /* 802F7E28 002F3A88 93 FE 07 CC */ stw r31, 0x7cc(r30) /* 802F7E2C 002F3A8C 41 82 00 10 */ beq lbl_802F7E3C /* 802F7E30 002F3A90 7F AC EB 78 */ mr r12, r29 /* 802F7E34 002F3A94 7D 89 03 A6 */ mtctr r12 /* 802F7E38 002F3A98 4E 80 04 21 */ bctrl lbl_802F7E3C: /* 802F7E3C 002F3A9C 48 00 7C 9D */ bl NHTTPi_GetConnectionListLength /* 802F7E40 002F3AA0 2C 03 00 00 */ cmpwi r3, 0 /* 802F7E44 002F3AA4 7C 64 1B 78 */ mr r4, r3 /* 802F7E48 002F3AA8 41 82 00 14 */ beq lbl_802F7E5C /* 802F7E4C 002F3AAC 3C 60 80 44 */ lis r3, lbl_80446038@ha /* 802F7E50 002F3AB0 38 63 60 38 */ addi r3, r3, lbl_80446038@l /* 802F7E54 002F3AB4 4C C6 31 82 */ crclr 6 /* 802F7E58 002F3AB8 4B ED 4A 0D */ bl printf lbl_802F7E5C: /* 802F7E5C 002F3ABC 80 7E 07 D0 */ lwz r3, 0x7d0(r30) /* 802F7E60 002F3AC0 2C 03 00 00 */ cmpwi r3, 0 /* 802F7E64 002F3AC4 41 80 00 10 */ blt lbl_802F7E74 /* 802F7E68 002F3AC8 4B FF E4 69 */ bl SOClose /* 802F7E6C 002F3ACC 38 00 FF FF */ li r0, -1 /* 802F7E70 002F3AD0 90 1E 07 D0 */ stw r0, 0x7d0(r30) lbl_802F7E74: /* 802F7E74 002F3AD4 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F7E78 002F3AD8 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802F7E7C 002F3ADC 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802F7E80 002F3AE0 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802F7E84 002F3AE4 83 81 00 10 */ lwz r28, 0x10(r1) /* 802F7E88 002F3AE8 7C 08 03 A6 */ mtlr r0 /* 802F7E8C 002F3AEC 38 21 00 20 */ addi r1, r1, 0x20 /* 802F7E90 002F3AF0 4E 80 00 20 */ blr