.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global NHTTPi_SocOpen NHTTPi_SocOpen: /* 802F9880 002F54E0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F9884 002F54E4 7C 08 02 A6 */ mflr r0 /* 802F9888 002F54E8 38 80 00 01 */ li r4, 1 /* 802F988C 002F54EC 38 A0 00 00 */ li r5, 0 /* 802F9890 002F54F0 90 01 00 24 */ stw r0, 0x24(r1) /* 802F9894 002F54F4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802F9898 002F54F8 93 C1 00 18 */ stw r30, 0x18(r1) /* 802F989C 002F54FC 7C 7E 1B 78 */ mr r30, r3 /* 802F98A0 002F5500 38 60 00 02 */ li r3, 2 /* 802F98A4 002F5504 4B FF C9 59 */ bl __SOCreateSocket /* 802F98A8 002F5508 38 00 00 00 */ li r0, 0 /* 802F98AC 002F550C 2C 1E 00 00 */ cmpwi r30, 0 /* 802F98B0 002F5510 90 01 00 08 */ stw r0, 8(r1) /* 802F98B4 002F5514 7C 7F 1B 78 */ mr r31, r3 /* 802F98B8 002F5518 41 82 00 0C */ beq lbl_802F98C4 /* 802F98BC 002F551C 80 1E 02 38 */ lwz r0, 0x238(r30) /* 802F98C0 002F5520 90 01 00 08 */ stw r0, 8(r1) lbl_802F98C4: /* 802F98C4 002F5524 2C 03 00 00 */ cmpwi r3, 0 /* 802F98C8 002F5528 41 80 00 28 */ blt lbl_802F98F0 /* 802F98CC 002F552C 2C 00 00 00 */ cmpwi r0, 0 /* 802F98D0 002F5530 41 82 00 20 */ beq lbl_802F98F0 /* 802F98D4 002F5534 3C 80 00 01 */ lis r4, 0x0000FFFF@ha /* 802F98D8 002F5538 7F E3 FB 78 */ mr r3, r31 /* 802F98DC 002F553C 38 84 FF FF */ addi r4, r4, 0x0000FFFF@l /* 802F98E0 002F5540 38 C1 00 08 */ addi r6, r1, 8 /* 802F98E4 002F5544 38 A0 10 02 */ li r5, 0x1002 /* 802F98E8 002F5548 38 E0 00 04 */ li r7, 4 /* 802F98EC 002F554C 4B FF DF 69 */ bl SOSetSockOpt lbl_802F98F0: /* 802F98F0 002F5550 7F E3 FB 78 */ mr r3, r31 /* 802F98F4 002F5554 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802F98F8 002F5558 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802F98FC 002F555C 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F9900 002F5560 7C 08 03 A6 */ mtlr r0 /* 802F9904 002F5564 38 21 00 20 */ addi r1, r1, 0x20 /* 802F9908 002F5568 4E 80 00 20 */ blr .global NHTTPi_SocClose NHTTPi_SocClose: /* 802F990C 002F556C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F9910 002F5570 7C 08 02 A6 */ mflr r0 /* 802F9914 002F5574 90 01 00 24 */ stw r0, 0x24(r1) /* 802F9918 002F5578 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802F991C 002F557C 7C BF 2B 78 */ mr r31, r5 /* 802F9920 002F5580 93 C1 00 18 */ stw r30, 0x18(r1) /* 802F9924 002F5584 7C 9E 23 78 */ mr r30, r4 /* 802F9928 002F5588 93 A1 00 14 */ stw r29, 0x14(r1) /* 802F992C 002F558C 7C 7D 1B 78 */ mr r29, r3 /* 802F9930 002F5590 4B FF EB 15 */ bl NHTTPi_lockReqList /* 802F9934 002F5594 80 7E 00 AC */ lwz r3, 0xac(r30) /* 802F9938 002F5598 2C 03 00 00 */ cmpwi r3, 0 /* 802F993C 002F559C 40 81 00 10 */ ble lbl_802F994C /* 802F9940 002F55A0 48 00 6E 0D */ bl SSLShutdown /* 802F9944 002F55A4 38 00 FF FF */ li r0, -1 /* 802F9948 002F55A8 90 1E 00 AC */ stw r0, 0xac(r30) lbl_802F994C: /* 802F994C 002F55AC 7F A3 EB 78 */ mr r3, r29 /* 802F9950 002F55B0 4B FF EA F9 */ bl NHTTPi_unlockReqList /* 802F9954 002F55B4 7F E3 FB 78 */ mr r3, r31 /* 802F9958 002F55B8 4B FF C9 79 */ bl SOClose /* 802F995C 002F55BC 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F9960 002F55C0 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802F9964 002F55C4 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802F9968 002F55C8 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802F996C 002F55CC 7C 08 03 A6 */ mtlr r0 /* 802F9970 002F55D0 38 21 00 20 */ addi r1, r1, 0x20 /* 802F9974 002F55D4 4E 80 00 20 */ blr .global NHTTPi_SocConnect NHTTPi_SocConnect: /* 802F9978 002F55D8 94 21 FF D0 */ stwu r1, -0x30(r1) /* 802F997C 002F55DC 7C 08 02 A6 */ mflr r0 /* 802F9980 002F55E0 90 01 00 34 */ stw r0, 0x34(r1) /* 802F9984 002F55E4 39 61 00 30 */ addi r11, r1, 0x30 /* 802F9988 002F55E8 4B EC D7 A1 */ bl _savegpr_27 /* 802F998C 002F55EC 39 20 00 08 */ li r9, 8 /* 802F9990 002F55F0 38 00 00 02 */ li r0, 2 /* 802F9994 002F55F4 99 21 00 08 */ stb r9, 8(r1) /* 802F9998 002F55F8 7C 7B 1B 78 */ mr r27, r3 /* 802F999C 002F55FC 7C 9C 23 78 */ mr r28, r4 /* 802F99A0 002F5600 7C BD 2B 78 */ mr r29, r5 /* 802F99A4 002F5604 98 01 00 09 */ stb r0, 9(r1) /* 802F99A8 002F5608 7C DE 33 78 */ mr r30, r6 /* 802F99AC 002F560C 7C FF 3B 78 */ mr r31, r7 /* 802F99B0 002F5610 55 03 04 3E */ clrlwi r3, r8, 0x10 /* 802F99B4 002F5614 4B FF D3 C9 */ bl SOHtoNs /* 802F99B8 002F5618 B0 61 00 0A */ sth r3, 0xa(r1) /* 802F99BC 002F561C 7F C3 F3 78 */ mr r3, r30 /* 802F99C0 002F5620 38 81 00 08 */ addi r4, r1, 8 /* 802F99C4 002F5624 93 E1 00 0C */ stw r31, 0xc(r1) /* 802F99C8 002F5628 4B FF CC 89 */ bl SOConnect /* 802F99CC 002F562C 2C 03 00 00 */ cmpwi r3, 0 /* 802F99D0 002F5630 40 80 00 1C */ bge lbl_802F99EC /* 802F99D4 002F5634 80 1D 00 00 */ lwz r0, 0(r29) /* 802F99D8 002F5638 38 60 FC 17 */ li r3, -1001 /* 802F99DC 002F563C 2C 00 00 00 */ cmpwi r0, 0 /* 802F99E0 002F5640 41 82 00 40 */ beq lbl_802F9A20 /* 802F99E4 002F5644 38 60 FC 16 */ li r3, -1002 /* 802F99E8 002F5648 48 00 00 38 */ b lbl_802F9A20 lbl_802F99EC: /* 802F99EC 002F564C 80 1D 00 08 */ lwz r0, 8(r29) /* 802F99F0 002F5650 2C 00 00 00 */ cmpwi r0, 0 /* 802F99F4 002F5654 41 82 00 28 */ beq lbl_802F9A1C /* 802F99F8 002F5658 80 1D 00 0C */ lwz r0, 0xc(r29) /* 802F99FC 002F565C 2C 00 00 00 */ cmpwi r0, 0 /* 802F9A00 002F5660 40 82 00 1C */ bne lbl_802F9A1C /* 802F9A04 002F5664 7F 63 DB 78 */ mr r3, r27 /* 802F9A08 002F5668 7F 84 E3 78 */ mr r4, r28 /* 802F9A0C 002F566C 7F A5 EB 78 */ mr r5, r29 /* 802F9A10 002F5670 7F C6 F3 78 */ mr r6, r30 /* 802F9A14 002F5674 48 00 00 25 */ bl NHTTPi_SocSSLConnect /* 802F9A18 002F5678 48 00 00 08 */ b lbl_802F9A20 lbl_802F9A1C: /* 802F9A1C 002F567C 38 60 00 00 */ li r3, 0 lbl_802F9A20: /* 802F9A20 002F5680 39 61 00 30 */ addi r11, r1, 0x30 /* 802F9A24 002F5684 4B EC D7 51 */ bl _restgpr_27 /* 802F9A28 002F5688 80 01 00 34 */ lwz r0, 0x34(r1) /* 802F9A2C 002F568C 7C 08 03 A6 */ mtlr r0 /* 802F9A30 002F5690 38 21 00 30 */ addi r1, r1, 0x30 /* 802F9A34 002F5694 4E 80 00 20 */ blr .global NHTTPi_SocSSLConnect NHTTPi_SocSSLConnect: /* 802F9A38 002F5698 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F9A3C 002F569C 7C 08 02 A6 */ mflr r0 /* 802F9A40 002F56A0 90 01 00 24 */ stw r0, 0x24(r1) /* 802F9A44 002F56A4 39 61 00 20 */ addi r11, r1, 0x20 /* 802F9A48 002F56A8 4B EC D6 DD */ bl _savegpr_26 /* 802F9A4C 002F56AC 7C 7A 1B 78 */ mr r26, r3 /* 802F9A50 002F56B0 7C 9B 23 78 */ mr r27, r4 /* 802F9A54 002F56B4 80 65 00 CC */ lwz r3, 0xcc(r5) /* 802F9A58 002F56B8 7C BC 2B 78 */ mr r28, r5 /* 802F9A5C 002F56BC 80 85 00 28 */ lwz r4, 0x28(r5) /* 802F9A60 002F56C0 7C DD 33 78 */ mr r29, r6 /* 802F9A64 002F56C4 3B C0 00 00 */ li r30, 0 /* 802F9A68 002F56C8 48 00 64 B5 */ bl SSLNew /* 802F9A6C 002F56CC 80 1C 00 C8 */ lwz r0, 0xc8(r28) /* 802F9A70 002F56D0 90 7C 00 AC */ stw r3, 0xac(r28) /* 802F9A74 002F56D4 2C 00 00 01 */ cmpwi r0, 1 /* 802F9A78 002F56D8 40 82 00 0C */ bne lbl_802F9A84 /* 802F9A7C 002F56DC 48 00 6E E9 */ bl SSLSetClientCertDefault /* 802F9A80 002F56E0 48 00 00 28 */ b lbl_802F9AA8 lbl_802F9A84: /* 802F9A84 002F56E4 80 9C 00 B0 */ lwz r4, 0xb0(r28) /* 802F9A88 002F56E8 2C 04 00 00 */ cmpwi r4, 0 /* 802F9A8C 002F56EC 41 82 00 1C */ beq lbl_802F9AA8 /* 802F9A90 002F56F0 80 DC 00 B8 */ lwz r6, 0xb8(r28) /* 802F9A94 002F56F4 2C 06 00 00 */ cmpwi r6, 0 /* 802F9A98 002F56F8 41 82 00 10 */ beq lbl_802F9AA8 /* 802F9A9C 002F56FC 80 BC 00 B4 */ lwz r5, 0xb4(r28) /* 802F9AA0 002F5700 80 FC 00 BC */ lwz r7, 0xbc(r28) /* 802F9AA4 002F5704 48 00 6D 55 */ bl SSLSetClientCert lbl_802F9AA8: /* 802F9AA8 002F5708 80 9C 00 C0 */ lwz r4, 0xc0(r28) /* 802F9AAC 002F570C 2C 04 00 00 */ cmpwi r4, 0 /* 802F9AB0 002F5710 41 82 00 14 */ beq lbl_802F9AC4 /* 802F9AB4 002F5714 80 7C 00 AC */ lwz r3, 0xac(r28) /* 802F9AB8 002F5718 80 BC 00 C4 */ lwz r5, 0xc4(r28) /* 802F9ABC 002F571C 48 00 6F 55 */ bl SSLSetRootCA /* 802F9AC0 002F5720 48 00 00 0C */ b lbl_802F9ACC lbl_802F9AC4: /* 802F9AC4 002F5724 80 7C 00 AC */ lwz r3, 0xac(r28) /* 802F9AC8 002F5728 48 00 70 91 */ bl SSLSetBuiltinRootCA lbl_802F9ACC: /* 802F9ACC 002F572C 80 7C 00 AC */ lwz r3, 0xac(r28) /* 802F9AD0 002F5730 7F A4 EB 78 */ mr r4, r29 /* 802F9AD4 002F5734 48 00 65 85 */ bl SSLConnect /* 802F9AD8 002F5738 2C 03 FF FF */ cmpwi r3, -1 /* 802F9ADC 002F573C 40 80 00 80 */ bge lbl_802F9B5C /* 802F9AE0 002F5740 38 60 FC 17 */ li r3, -1001 /* 802F9AE4 002F5744 48 00 00 84 */ b lbl_802F9B68 /* 802F9AE8 002F5748 48 00 00 74 */ b lbl_802F9B5C lbl_802F9AEC: /* 802F9AEC 002F574C 7F 63 DB 78 */ mr r3, r27 /* 802F9AF0 002F5750 7F 84 E3 78 */ mr r4, r28 /* 802F9AF4 002F5754 48 00 5F 45 */ bl NHTTPi_Request2Connection /* 802F9AF8 002F5758 7C 7F 1B 78 */ mr r31, r3 /* 802F9AFC 002F575C 80 7C 00 AC */ lwz r3, 0xac(r28) /* 802F9B00 002F5760 48 00 66 21 */ bl SSLDoHandshake /* 802F9B04 002F5764 7C 7D 1B 78 */ mr r29, r3 /* 802F9B08 002F5768 7F 43 D3 78 */ mr r3, r26 /* 802F9B0C 002F576C 7F A4 EB 78 */ mr r4, r29 /* 802F9B10 002F5770 4B FF E0 F9 */ bl NHTTPi_SetSSLError /* 802F9B14 002F5774 2C 1F 00 00 */ cmpwi r31, 0 /* 802F9B18 002F5778 41 82 00 08 */ beq lbl_802F9B20 /* 802F9B1C 002F577C 93 BF 00 08 */ stw r29, 8(r31) lbl_802F9B20: /* 802F9B20 002F5780 2C 1D FF FF */ cmpwi r29, -1 /* 802F9B24 002F5784 41 82 00 30 */ beq lbl_802F9B54 /* 802F9B28 002F5788 40 80 00 1C */ bge lbl_802F9B44 /* 802F9B2C 002F578C 2C 1D FF F9 */ cmpwi r29, -7 /* 802F9B30 002F5790 41 82 00 2C */ beq lbl_802F9B5C /* 802F9B34 002F5794 41 80 00 20 */ blt lbl_802F9B54 /* 802F9B38 002F5798 2C 1D FF FD */ cmpwi r29, -3 /* 802F9B3C 002F579C 40 80 00 20 */ bge lbl_802F9B5C /* 802F9B40 002F57A0 48 00 00 14 */ b lbl_802F9B54 lbl_802F9B44: /* 802F9B44 002F57A4 2C 1D 00 01 */ cmpwi r29, 1 /* 802F9B48 002F57A8 40 80 00 0C */ bge lbl_802F9B54 /* 802F9B4C 002F57AC 3B C0 00 01 */ li r30, 1 /* 802F9B50 002F57B0 48 00 00 0C */ b lbl_802F9B5C lbl_802F9B54: /* 802F9B54 002F57B4 38 60 FC 17 */ li r3, -1001 /* 802F9B58 002F57B8 48 00 00 10 */ b lbl_802F9B68 lbl_802F9B5C: /* 802F9B5C 002F57BC 2C 1E 00 00 */ cmpwi r30, 0 /* 802F9B60 002F57C0 41 82 FF 8C */ beq lbl_802F9AEC /* 802F9B64 002F57C4 38 60 00 00 */ li r3, 0 lbl_802F9B68: /* 802F9B68 002F57C8 39 61 00 20 */ addi r11, r1, 0x20 /* 802F9B6C 002F57CC 4B EC D6 05 */ bl _restgpr_26 /* 802F9B70 002F57D0 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F9B74 002F57D4 7C 08 03 A6 */ mtlr r0 /* 802F9B78 002F57D8 38 21 00 20 */ addi r1, r1, 0x20 /* 802F9B7C 002F57DC 4E 80 00 20 */ blr .global NHTTPi_SocRecv_sub NHTTPi_SocRecv_sub: /* 802F9B80 002F57E0 54 2B 06 FE */ clrlwi r11, r1, 0x1b /* 802F9B84 002F57E4 7C 2C 0B 78 */ mr r12, r1 /* 802F9B88 002F57E8 21 6B FF A0 */ subfic r11, r11, -96 /* 802F9B8C 002F57EC 7C 21 59 6E */ stwux r1, r1, r11 /* 802F9B90 002F57F0 7C 08 02 A6 */ mflr r0 /* 802F9B94 002F57F4 7D 8B 63 78 */ mr r11, r12 /* 802F9B98 002F57F8 90 0C 00 04 */ stw r0, 4(r12) /* 802F9B9C 002F57FC 4B EC D5 85 */ bl _savegpr_25 /* 802F9BA0 002F5800 54 80 06 FF */ clrlwi. r0, r4, 0x1b /* 802F9BA4 002F5804 7C 79 1B 78 */ mr r25, r3 /* 802F9BA8 002F5808 7C 9A 23 78 */ mr r26, r4 /* 802F9BAC 002F580C 7C BB 2B 78 */ mr r27, r5 /* 802F9BB0 002F5810 7C DC 33 78 */ mr r28, r6 /* 802F9BB4 002F5814 41 82 00 0C */ beq lbl_802F9BC0 /* 802F9BB8 002F5818 23 E0 00 20 */ subfic r31, r0, 0x20 /* 802F9BBC 002F581C 48 00 00 08 */ b lbl_802F9BC4 lbl_802F9BC0: /* 802F9BC0 002F5820 3B E0 00 00 */ li r31, 0 lbl_802F9BC4: /* 802F9BC4 002F5824 38 61 00 20 */ addi r3, r1, 0x20 /* 802F9BC8 002F5828 3B C0 00 00 */ li r30, 0 /* 802F9BCC 002F582C 38 80 00 20 */ li r4, 0x20 /* 802F9BD0 002F5830 48 00 05 19 */ bl NHTTPi_memclr /* 802F9BD4 002F5834 2C 1F 00 00 */ cmpwi r31, 0 /* 802F9BD8 002F5838 41 82 00 64 */ beq lbl_802F9C3C /* 802F9BDC 002F583C 7C 1F D8 40 */ cmplw r31, r27 /* 802F9BE0 002F5840 40 81 00 08 */ ble lbl_802F9BE8 /* 802F9BE4 002F5844 7F 7F DB 78 */ mr r31, r27 lbl_802F9BE8: /* 802F9BE8 002F5848 7F 23 CB 78 */ mr r3, r25 /* 802F9BEC 002F584C 7F E5 FB 78 */ mr r5, r31 /* 802F9BF0 002F5850 7F 86 E3 78 */ mr r6, r28 /* 802F9BF4 002F5854 38 81 00 20 */ addi r4, r1, 0x20 /* 802F9BF8 002F5858 4B FF CC 65 */ bl SORecv /* 802F9BFC 002F585C 2C 03 00 00 */ cmpwi r3, 0 /* 802F9C00 002F5860 7C 7D 1B 78 */ mr r29, r3 /* 802F9C04 002F5864 40 81 01 04 */ ble lbl_802F9D08 /* 802F9C08 002F5868 7F BE EB 78 */ mr r30, r29 /* 802F9C0C 002F586C 7F 43 D3 78 */ mr r3, r26 /* 802F9C10 002F5870 7F A5 EB 78 */ mr r5, r29 /* 802F9C14 002F5874 38 81 00 20 */ addi r4, r1, 0x20 /* 802F9C18 002F5878 48 00 04 C5 */ bl NHTTPi_memcpy /* 802F9C1C 002F587C 7C 1D F8 40 */ cmplw r29, r31 /* 802F9C20 002F5880 40 80 00 0C */ bge lbl_802F9C2C /* 802F9C24 002F5884 7F C3 F3 78 */ mr r3, r30 /* 802F9C28 002F5888 48 00 00 E0 */ b lbl_802F9D08 lbl_802F9C2C: /* 802F9C2C 002F588C 7F 5A EA 14 */ add r26, r26, r29 /* 802F9C30 002F5890 7F 7D D8 50 */ subf r27, r29, r27 /* 802F9C34 002F5894 48 00 00 08 */ b lbl_802F9C3C /* 802F9C38 002F5898 48 00 00 D0 */ b lbl_802F9D08 lbl_802F9C3C: /* 802F9C3C 002F589C 2C 1B 00 00 */ cmpwi r27, 0 /* 802F9C40 002F58A0 40 81 00 5C */ ble lbl_802F9C9C /* 802F9C44 002F58A4 57 7D 00 35 */ rlwinm. r29, r27, 0, 0, 0x1a /* 802F9C48 002F58A8 41 82 00 54 */ beq lbl_802F9C9C /* 802F9C4C 002F58AC 7F 23 CB 78 */ mr r3, r25 /* 802F9C50 002F58B0 7F 44 D3 78 */ mr r4, r26 /* 802F9C54 002F58B4 7F A5 EB 78 */ mr r5, r29 /* 802F9C58 002F58B8 7F 86 E3 78 */ mr r6, r28 /* 802F9C5C 002F58BC 4B FF CC 01 */ bl SORecv /* 802F9C60 002F58C0 2C 03 00 00 */ cmpwi r3, 0 /* 802F9C64 002F58C4 40 81 00 24 */ ble lbl_802F9C88 /* 802F9C68 002F58C8 7C 03 E8 40 */ cmplw r3, r29 /* 802F9C6C 002F58CC 7F DE 1A 14 */ add r30, r30, r3 /* 802F9C70 002F58D0 40 80 00 0C */ bge lbl_802F9C7C /* 802F9C74 002F58D4 7F C3 F3 78 */ mr r3, r30 /* 802F9C78 002F58D8 48 00 00 90 */ b lbl_802F9D08 lbl_802F9C7C: /* 802F9C7C 002F58DC 7F 5A 1A 14 */ add r26, r26, r3 /* 802F9C80 002F58E0 7F 63 D8 50 */ subf r27, r3, r27 /* 802F9C84 002F58E4 48 00 00 18 */ b lbl_802F9C9C lbl_802F9C88: /* 802F9C88 002F58E8 2C 1E 00 00 */ cmpwi r30, 0 /* 802F9C8C 002F58EC 40 81 00 7C */ ble lbl_802F9D08 /* 802F9C90 002F58F0 7F C3 F3 78 */ mr r3, r30 /* 802F9C94 002F58F4 48 00 00 74 */ b lbl_802F9D08 /* 802F9C98 002F58F8 48 00 00 70 */ b lbl_802F9D08 lbl_802F9C9C: /* 802F9C9C 002F58FC 2C 1B 00 00 */ cmpwi r27, 0 /* 802F9CA0 002F5900 40 81 00 64 */ ble lbl_802F9D04 /* 802F9CA4 002F5904 57 7D 06 FF */ clrlwi. r29, r27, 0x1b /* 802F9CA8 002F5908 41 82 00 5C */ beq lbl_802F9D04 /* 802F9CAC 002F590C 38 61 00 20 */ addi r3, r1, 0x20 /* 802F9CB0 002F5910 38 80 00 20 */ li r4, 0x20 /* 802F9CB4 002F5914 48 00 04 35 */ bl NHTTPi_memclr /* 802F9CB8 002F5918 7F 23 CB 78 */ mr r3, r25 /* 802F9CBC 002F591C 7F A5 EB 78 */ mr r5, r29 /* 802F9CC0 002F5920 7F 86 E3 78 */ mr r6, r28 /* 802F9CC4 002F5924 38 81 00 20 */ addi r4, r1, 0x20 /* 802F9CC8 002F5928 4B FF CB 95 */ bl SORecv /* 802F9CCC 002F592C 2C 03 00 00 */ cmpwi r3, 0 /* 802F9CD0 002F5930 7C 7D 1B 78 */ mr r29, r3 /* 802F9CD4 002F5934 40 81 00 1C */ ble lbl_802F9CF0 /* 802F9CD8 002F5938 7F DE 1A 14 */ add r30, r30, r3 /* 802F9CDC 002F593C 7F 43 D3 78 */ mr r3, r26 /* 802F9CE0 002F5940 7F A5 EB 78 */ mr r5, r29 /* 802F9CE4 002F5944 38 81 00 20 */ addi r4, r1, 0x20 /* 802F9CE8 002F5948 48 00 03 F5 */ bl NHTTPi_memcpy /* 802F9CEC 002F594C 48 00 00 18 */ b lbl_802F9D04 lbl_802F9CF0: /* 802F9CF0 002F5950 2C 1E 00 00 */ cmpwi r30, 0 /* 802F9CF4 002F5954 40 81 00 14 */ ble lbl_802F9D08 /* 802F9CF8 002F5958 7F C3 F3 78 */ mr r3, r30 /* 802F9CFC 002F595C 48 00 00 0C */ b lbl_802F9D08 /* 802F9D00 002F5960 48 00 00 08 */ b lbl_802F9D08 lbl_802F9D04: /* 802F9D04 002F5964 7F C3 F3 78 */ mr r3, r30 lbl_802F9D08: /* 802F9D08 002F5968 81 41 00 00 */ lwz r10, 0(r1) /* 802F9D0C 002F596C 7D 4B 53 78 */ mr r11, r10 /* 802F9D10 002F5970 4B EC D4 5D */ bl _restgpr_25 /* 802F9D14 002F5974 80 0A 00 04 */ lwz r0, 4(r10) /* 802F9D18 002F5978 7C 08 03 A6 */ mtlr r0 /* 802F9D1C 002F597C 7D 41 53 78 */ mr r1, r10 /* 802F9D20 002F5980 4E 80 00 20 */ blr .global NHTTPi_SocRecv NHTTPi_SocRecv: /* 802F9D24 002F5984 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802F9D28 002F5988 7C 08 02 A6 */ mflr r0 /* 802F9D2C 002F598C 90 01 00 14 */ stw r0, 0x14(r1) /* 802F9D30 002F5990 80 03 00 AC */ lwz r0, 0xac(r3) /* 802F9D34 002F5994 93 E1 00 0C */ stw r31, 0xc(r1) /* 802F9D38 002F5998 7C 7F 1B 78 */ mr r31, r3 /* 802F9D3C 002F599C 2C 00 00 00 */ cmpwi r0, 0 /* 802F9D40 002F59A0 40 81 00 18 */ ble lbl_802F9D58 /* 802F9D44 002F59A4 7C A4 2B 78 */ mr r4, r5 /* 802F9D48 002F59A8 7C 03 03 78 */ mr r3, r0 /* 802F9D4C 002F59AC 7C C5 33 78 */ mr r5, r6 /* 802F9D50 002F59B0 48 00 64 7D */ bl SSLRead /* 802F9D54 002F59B4 48 00 00 18 */ b lbl_802F9D6C lbl_802F9D58: /* 802F9D58 002F59B8 7C 83 23 78 */ mr r3, r4 /* 802F9D5C 002F59BC 7C A4 2B 78 */ mr r4, r5 /* 802F9D60 002F59C0 7C C5 33 78 */ mr r5, r6 /* 802F9D64 002F59C4 7C E6 3B 78 */ mr r6, r7 /* 802F9D68 002F59C8 4B FF FE 19 */ bl NHTTPi_SocRecv_sub lbl_802F9D6C: /* 802F9D6C 002F59CC 2C 03 00 00 */ cmpwi r3, 0 /* 802F9D70 002F59D0 40 80 00 4C */ bge lbl_802F9DBC /* 802F9D74 002F59D4 80 1F 00 00 */ lwz r0, 0(r31) /* 802F9D78 002F59D8 2C 00 00 00 */ cmpwi r0, 0 /* 802F9D7C 002F59DC 41 82 00 0C */ beq lbl_802F9D88 /* 802F9D80 002F59E0 38 60 FC 16 */ li r3, -1002 /* 802F9D84 002F59E4 48 00 00 38 */ b lbl_802F9DBC lbl_802F9D88: /* 802F9D88 002F59E8 80 1F 00 AC */ lwz r0, 0xac(r31) /* 802F9D8C 002F59EC 2C 00 00 00 */ cmpwi r0, 0 /* 802F9D90 002F59F0 40 81 00 18 */ ble lbl_802F9DA8 /* 802F9D94 002F59F4 38 03 00 07 */ addi r0, r3, 7 /* 802F9D98 002F59F8 28 00 00 01 */ cmplwi r0, 1 /* 802F9D9C 002F59FC 41 81 00 1C */ bgt lbl_802F9DB8 /* 802F9DA0 002F5A00 38 60 00 00 */ li r3, 0 /* 802F9DA4 002F5A04 48 00 00 18 */ b lbl_802F9DBC lbl_802F9DA8: /* 802F9DA8 002F5A08 2C 03 FF C8 */ cmpwi r3, -56 /* 802F9DAC 002F5A0C 40 82 00 0C */ bne lbl_802F9DB8 /* 802F9DB0 002F5A10 38 60 00 00 */ li r3, 0 /* 802F9DB4 002F5A14 48 00 00 08 */ b lbl_802F9DBC lbl_802F9DB8: /* 802F9DB8 002F5A18 38 60 FC 17 */ li r3, -1001 lbl_802F9DBC: /* 802F9DBC 002F5A1C 80 01 00 14 */ lwz r0, 0x14(r1) /* 802F9DC0 002F5A20 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802F9DC4 002F5A24 7C 08 03 A6 */ mtlr r0 /* 802F9DC8 002F5A28 38 21 00 10 */ addi r1, r1, 0x10 /* 802F9DCC 002F5A2C 4E 80 00 20 */ blr .global NHTTPi_SocSend_sub NHTTPi_SocSend_sub: /* 802F9DD0 002F5A30 54 2B 06 FE */ clrlwi r11, r1, 0x1b /* 802F9DD4 002F5A34 7C 2C 0B 78 */ mr r12, r1 /* 802F9DD8 002F5A38 21 6B FF A0 */ subfic r11, r11, -96 /* 802F9DDC 002F5A3C 7C 21 59 6E */ stwux r1, r1, r11 /* 802F9DE0 002F5A40 7C 08 02 A6 */ mflr r0 /* 802F9DE4 002F5A44 7D 8B 63 78 */ mr r11, r12 /* 802F9DE8 002F5A48 90 0C 00 04 */ stw r0, 4(r12) /* 802F9DEC 002F5A4C 4B EC D3 39 */ bl _savegpr_26 /* 802F9DF0 002F5A50 54 80 06 FF */ clrlwi. r0, r4, 0x1b /* 802F9DF4 002F5A54 7C 7A 1B 78 */ mr r26, r3 /* 802F9DF8 002F5A58 7C 9B 23 78 */ mr r27, r4 /* 802F9DFC 002F5A5C 7C BC 2B 78 */ mr r28, r5 /* 802F9E00 002F5A60 7C DD 33 78 */ mr r29, r6 /* 802F9E04 002F5A64 41 82 00 0C */ beq lbl_802F9E10 /* 802F9E08 002F5A68 23 E0 00 20 */ subfic r31, r0, 0x20 /* 802F9E0C 002F5A6C 48 00 00 08 */ b lbl_802F9E14 lbl_802F9E10: /* 802F9E10 002F5A70 3B E0 00 00 */ li r31, 0 lbl_802F9E14: /* 802F9E14 002F5A74 38 61 00 20 */ addi r3, r1, 0x20 /* 802F9E18 002F5A78 3B C0 00 00 */ li r30, 0 /* 802F9E1C 002F5A7C 38 80 00 20 */ li r4, 0x20 /* 802F9E20 002F5A80 48 00 02 C9 */ bl NHTTPi_memclr /* 802F9E24 002F5A84 2C 1F 00 00 */ cmpwi r31, 0 /* 802F9E28 002F5A88 41 82 00 5C */ beq lbl_802F9E84 /* 802F9E2C 002F5A8C 7C 1F E0 40 */ cmplw r31, r28 /* 802F9E30 002F5A90 40 81 00 08 */ ble lbl_802F9E38 /* 802F9E34 002F5A94 7F 9F E3 78 */ mr r31, r28 lbl_802F9E38: /* 802F9E38 002F5A98 7F 64 DB 78 */ mr r4, r27 /* 802F9E3C 002F5A9C 7F E5 FB 78 */ mr r5, r31 /* 802F9E40 002F5AA0 38 61 00 20 */ addi r3, r1, 0x20 /* 802F9E44 002F5AA4 48 00 02 99 */ bl NHTTPi_memcpy /* 802F9E48 002F5AA8 7F 43 D3 78 */ mr r3, r26 /* 802F9E4C 002F5AAC 7F E5 FB 78 */ mr r5, r31 /* 802F9E50 002F5AB0 7F A6 EB 78 */ mr r6, r29 /* 802F9E54 002F5AB4 38 81 00 20 */ addi r4, r1, 0x20 /* 802F9E58 002F5AB8 4B FF CA 51 */ bl SOSend /* 802F9E5C 002F5ABC 2C 03 00 00 */ cmpwi r3, 0 /* 802F9E60 002F5AC0 40 81 00 EC */ ble lbl_802F9F4C /* 802F9E64 002F5AC4 7C 03 F8 40 */ cmplw r3, r31 /* 802F9E68 002F5AC8 7C 7E 1B 78 */ mr r30, r3 /* 802F9E6C 002F5ACC 40 80 00 08 */ bge lbl_802F9E74 /* 802F9E70 002F5AD0 48 00 00 DC */ b lbl_802F9F4C lbl_802F9E74: /* 802F9E74 002F5AD4 7F 7B 1A 14 */ add r27, r27, r3 /* 802F9E78 002F5AD8 7F 83 E0 50 */ subf r28, r3, r28 /* 802F9E7C 002F5ADC 48 00 00 08 */ b lbl_802F9E84 /* 802F9E80 002F5AE0 48 00 00 CC */ b lbl_802F9F4C lbl_802F9E84: /* 802F9E84 002F5AE4 2C 1C 00 00 */ cmpwi r28, 0 /* 802F9E88 002F5AE8 40 81 00 5C */ ble lbl_802F9EE4 /* 802F9E8C 002F5AEC 57 9F 00 35 */ rlwinm. r31, r28, 0, 0, 0x1a /* 802F9E90 002F5AF0 41 82 00 54 */ beq lbl_802F9EE4 /* 802F9E94 002F5AF4 7F 43 D3 78 */ mr r3, r26 /* 802F9E98 002F5AF8 7F 64 DB 78 */ mr r4, r27 /* 802F9E9C 002F5AFC 7F E5 FB 78 */ mr r5, r31 /* 802F9EA0 002F5B00 7F A6 EB 78 */ mr r6, r29 /* 802F9EA4 002F5B04 4B FF CA 05 */ bl SOSend /* 802F9EA8 002F5B08 2C 03 00 00 */ cmpwi r3, 0 /* 802F9EAC 002F5B0C 40 81 00 24 */ ble lbl_802F9ED0 /* 802F9EB0 002F5B10 7C 03 F8 40 */ cmplw r3, r31 /* 802F9EB4 002F5B14 7F DE 1A 14 */ add r30, r30, r3 /* 802F9EB8 002F5B18 40 80 00 0C */ bge lbl_802F9EC4 /* 802F9EBC 002F5B1C 7F C3 F3 78 */ mr r3, r30 /* 802F9EC0 002F5B20 48 00 00 8C */ b lbl_802F9F4C lbl_802F9EC4: /* 802F9EC4 002F5B24 7F 7B 1A 14 */ add r27, r27, r3 /* 802F9EC8 002F5B28 7F 83 E0 50 */ subf r28, r3, r28 /* 802F9ECC 002F5B2C 48 00 00 18 */ b lbl_802F9EE4 lbl_802F9ED0: /* 802F9ED0 002F5B30 2C 1E 00 00 */ cmpwi r30, 0 /* 802F9ED4 002F5B34 40 81 00 78 */ ble lbl_802F9F4C /* 802F9ED8 002F5B38 7F C3 F3 78 */ mr r3, r30 /* 802F9EDC 002F5B3C 48 00 00 70 */ b lbl_802F9F4C /* 802F9EE0 002F5B40 48 00 00 6C */ b lbl_802F9F4C lbl_802F9EE4: /* 802F9EE4 002F5B44 2C 1C 00 00 */ cmpwi r28, 0 /* 802F9EE8 002F5B48 40 81 00 60 */ ble lbl_802F9F48 /* 802F9EEC 002F5B4C 57 9F 06 FF */ clrlwi. r31, r28, 0x1b /* 802F9EF0 002F5B50 41 82 00 58 */ beq lbl_802F9F48 /* 802F9EF4 002F5B54 38 61 00 20 */ addi r3, r1, 0x20 /* 802F9EF8 002F5B58 38 80 00 20 */ li r4, 0x20 /* 802F9EFC 002F5B5C 48 00 01 ED */ bl NHTTPi_memclr /* 802F9F00 002F5B60 7F 64 DB 78 */ mr r4, r27 /* 802F9F04 002F5B64 7F E5 FB 78 */ mr r5, r31 /* 802F9F08 002F5B68 38 61 00 20 */ addi r3, r1, 0x20 /* 802F9F0C 002F5B6C 48 00 01 D1 */ bl NHTTPi_memcpy /* 802F9F10 002F5B70 7F 43 D3 78 */ mr r3, r26 /* 802F9F14 002F5B74 7F E5 FB 78 */ mr r5, r31 /* 802F9F18 002F5B78 7F A6 EB 78 */ mr r6, r29 /* 802F9F1C 002F5B7C 38 81 00 20 */ addi r4, r1, 0x20 /* 802F9F20 002F5B80 4B FF C9 89 */ bl SOSend /* 802F9F24 002F5B84 2C 03 00 00 */ cmpwi r3, 0 /* 802F9F28 002F5B88 40 81 00 0C */ ble lbl_802F9F34 /* 802F9F2C 002F5B8C 7F DE 1A 14 */ add r30, r30, r3 /* 802F9F30 002F5B90 48 00 00 18 */ b lbl_802F9F48 lbl_802F9F34: /* 802F9F34 002F5B94 2C 1E 00 00 */ cmpwi r30, 0 /* 802F9F38 002F5B98 40 81 00 14 */ ble lbl_802F9F4C /* 802F9F3C 002F5B9C 7F C3 F3 78 */ mr r3, r30 /* 802F9F40 002F5BA0 48 00 00 0C */ b lbl_802F9F4C /* 802F9F44 002F5BA4 48 00 00 08 */ b lbl_802F9F4C lbl_802F9F48: /* 802F9F48 002F5BA8 7F C3 F3 78 */ mr r3, r30 lbl_802F9F4C: /* 802F9F4C 002F5BAC 81 41 00 00 */ lwz r10, 0(r1) /* 802F9F50 002F5BB0 7D 4B 53 78 */ mr r11, r10 /* 802F9F54 002F5BB4 4B EC D2 1D */ bl _restgpr_26 /* 802F9F58 002F5BB8 80 0A 00 04 */ lwz r0, 4(r10) /* 802F9F5C 002F5BBC 7C 08 03 A6 */ mtlr r0 /* 802F9F60 002F5BC0 7D 41 53 78 */ mr r1, r10 /* 802F9F64 002F5BC4 4E 80 00 20 */ blr .global NHTTPi_SocSend NHTTPi_SocSend: /* 802F9F68 002F5BC8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802F9F6C 002F5BCC 7C 08 02 A6 */ mflr r0 /* 802F9F70 002F5BD0 90 01 00 14 */ stw r0, 0x14(r1) /* 802F9F74 002F5BD4 80 03 00 AC */ lwz r0, 0xac(r3) /* 802F9F78 002F5BD8 93 E1 00 0C */ stw r31, 0xc(r1) /* 802F9F7C 002F5BDC 7C 7F 1B 78 */ mr r31, r3 /* 802F9F80 002F5BE0 2C 00 00 00 */ cmpwi r0, 0 /* 802F9F84 002F5BE4 40 81 00 18 */ ble lbl_802F9F9C /* 802F9F88 002F5BE8 7C A4 2B 78 */ mr r4, r5 /* 802F9F8C 002F5BEC 7C 03 03 78 */ mr r3, r0 /* 802F9F90 002F5BF0 7C C5 33 78 */ mr r5, r6 /* 802F9F94 002F5BF4 48 00 64 F9 */ bl SSLWrite /* 802F9F98 002F5BF8 48 00 00 18 */ b lbl_802F9FB0 lbl_802F9F9C: /* 802F9F9C 002F5BFC 7C 83 23 78 */ mr r3, r4 /* 802F9FA0 002F5C00 7C A4 2B 78 */ mr r4, r5 /* 802F9FA4 002F5C04 7C C5 33 78 */ mr r5, r6 /* 802F9FA8 002F5C08 7C E6 3B 78 */ mr r6, r7 /* 802F9FAC 002F5C0C 4B FF FE 25 */ bl NHTTPi_SocSend_sub lbl_802F9FB0: /* 802F9FB0 002F5C10 2C 03 00 00 */ cmpwi r3, 0 /* 802F9FB4 002F5C14 40 80 00 4C */ bge lbl_802FA000 /* 802F9FB8 002F5C18 80 1F 00 00 */ lwz r0, 0(r31) /* 802F9FBC 002F5C1C 2C 00 00 00 */ cmpwi r0, 0 /* 802F9FC0 002F5C20 41 82 00 0C */ beq lbl_802F9FCC /* 802F9FC4 002F5C24 38 60 FC 16 */ li r3, -1002 /* 802F9FC8 002F5C28 48 00 00 38 */ b lbl_802FA000 lbl_802F9FCC: /* 802F9FCC 002F5C2C 80 1F 00 AC */ lwz r0, 0xac(r31) /* 802F9FD0 002F5C30 2C 00 00 00 */ cmpwi r0, 0 /* 802F9FD4 002F5C34 40 81 00 18 */ ble lbl_802F9FEC /* 802F9FD8 002F5C38 38 03 00 07 */ addi r0, r3, 7 /* 802F9FDC 002F5C3C 28 00 00 01 */ cmplwi r0, 1 /* 802F9FE0 002F5C40 41 81 00 1C */ bgt lbl_802F9FFC /* 802F9FE4 002F5C44 38 60 00 00 */ li r3, 0 /* 802F9FE8 002F5C48 48 00 00 18 */ b lbl_802FA000 lbl_802F9FEC: /* 802F9FEC 002F5C4C 2C 03 FF C8 */ cmpwi r3, -56 /* 802F9FF0 002F5C50 40 82 00 0C */ bne lbl_802F9FFC /* 802F9FF4 002F5C54 38 60 00 00 */ li r3, 0 /* 802F9FF8 002F5C58 48 00 00 08 */ b lbl_802FA000 lbl_802F9FFC: /* 802F9FFC 002F5C5C 38 60 FC 17 */ li r3, -1001 lbl_802FA000: /* 802FA000 002F5C60 80 01 00 14 */ lwz r0, 0x14(r1) /* 802FA004 002F5C64 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802FA008 002F5C68 7C 08 03 A6 */ mtlr r0 /* 802FA00C 002F5C6C 38 21 00 10 */ addi r1, r1, 0x10 /* 802FA010 002F5C70 4E 80 00 20 */ blr .global NHTTPi_SocCancel NHTTPi_SocCancel: /* 802FA014 002F5C74 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802FA018 002F5C78 7C 08 02 A6 */ mflr r0 /* 802FA01C 002F5C7C 90 01 00 14 */ stw r0, 0x14(r1) /* 802FA020 002F5C80 93 E1 00 0C */ stw r31, 0xc(r1) /* 802FA024 002F5C84 7C BF 2B 78 */ mr r31, r5 /* 802FA028 002F5C88 93 C1 00 08 */ stw r30, 8(r1) /* 802FA02C 002F5C8C 7C 7E 1B 78 */ mr r30, r3 /* 802FA030 002F5C90 4B FF E4 15 */ bl NHTTPi_lockReqList /* 802FA034 002F5C94 2C 1F 00 00 */ cmpwi r31, 0 /* 802FA038 002F5C98 41 80 00 10 */ blt lbl_802FA048 /* 802FA03C 002F5C9C 7F E3 FB 78 */ mr r3, r31 /* 802FA040 002F5CA0 38 80 00 02 */ li r4, 2 /* 802FA044 002F5CA4 4B FF C9 B9 */ bl SOShutdown lbl_802FA048: /* 802FA048 002F5CA8 7F C3 F3 78 */ mr r3, r30 /* 802FA04C 002F5CAC 4B FF E3 FD */ bl NHTTPi_unlockReqList /* 802FA050 002F5CB0 80 01 00 14 */ lwz r0, 0x14(r1) /* 802FA054 002F5CB4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802FA058 002F5CB8 83 C1 00 08 */ lwz r30, 8(r1) /* 802FA05C 002F5CBC 7C 08 03 A6 */ mtlr r0 /* 802FA060 002F5CC0 38 21 00 10 */ addi r1, r1, 0x10 /* 802FA064 002F5CC4 4E 80 00 20 */ blr .global NHTTPi_resolveHostname NHTTPi_resolveHostname: /* 802FA068 002F5CC8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802FA06C 002F5CCC 7C 08 02 A6 */ mflr r0 /* 802FA070 002F5CD0 7C 83 23 78 */ mr r3, r4 /* 802FA074 002F5CD4 38 80 00 00 */ li r4, 0 /* 802FA078 002F5CD8 90 01 00 24 */ stw r0, 0x24(r1) /* 802FA07C 002F5CDC 38 C1 00 08 */ addi r6, r1, 8 /* 802FA080 002F5CE0 38 A0 00 00 */ li r5, 0 /* 802FA084 002F5CE4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802FA088 002F5CE8 3B E0 00 00 */ li r31, 0 /* 802FA08C 002F5CEC 93 E1 00 0C */ stw r31, 0xc(r1) /* 802FA090 002F5CF0 4B FF D3 79 */ bl SOGetAddrInfo /* 802FA094 002F5CF4 2C 03 00 00 */ cmpwi r3, 0 /* 802FA098 002F5CF8 40 82 00 28 */ bne lbl_802FA0C0 /* 802FA09C 002F5CFC 80 81 00 08 */ lwz r4, 8(r1) /* 802FA0A0 002F5D00 38 61 00 0C */ addi r3, r1, 0xc /* 802FA0A4 002F5D04 38 A0 00 04 */ li r5, 4 /* 802FA0A8 002F5D08 80 84 00 18 */ lwz r4, 0x18(r4) /* 802FA0AC 002F5D0C 38 84 00 04 */ addi r4, r4, 4 /* 802FA0B0 002F5D10 48 00 00 2D */ bl NHTTPi_memcpy /* 802FA0B4 002F5D14 80 61 00 08 */ lwz r3, 8(r1) /* 802FA0B8 002F5D18 4B FF D6 35 */ bl SOFreeAddrInfo /* 802FA0BC 002F5D1C 48 00 00 08 */ b lbl_802FA0C4 lbl_802FA0C0: /* 802FA0C0 002F5D20 93 E1 00 0C */ stw r31, 0xc(r1) lbl_802FA0C4: /* 802FA0C4 002F5D24 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802FA0C8 002F5D28 80 01 00 24 */ lwz r0, 0x24(r1) /* 802FA0CC 002F5D2C 80 61 00 0C */ lwz r3, 0xc(r1) /* 802FA0D0 002F5D30 7C 08 03 A6 */ mtlr r0 /* 802FA0D4 002F5D34 38 21 00 20 */ addi r1, r1, 0x20 /* 802FA0D8 002F5D38 4E 80 00 20 */ blr