summaryrefslogtreecommitdiff
path: root/asm/SDK
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-10-09 14:52:42 -0400
committerMax <mparisi@stevens.edu>2020-10-09 14:52:42 -0400
commitd64e84ceb4793b57b0041da6fb6a62a17270296c (patch)
tree18571fe3ec6458ca31be20d45fc12d427a6ca147 /asm/SDK
parent191ebc6d42270ffb1c6313de067433116199358a (diff)
split NHTTP_control, _list, _os_RVL, _recvbuf, _request
Diffstat (limited to 'asm/SDK')
-rw-r--r--asm/SDK/NHTTP/NHTTP_bgnend.s20
-rw-r--r--asm/SDK/NHTTP/NHTTP_control.s237
-rw-r--r--asm/SDK/NHTTP/NHTTP_list.s180
-rw-r--r--asm/SDK/NHTTP/NHTTP_os_RVL.s178
-rw-r--r--asm/SDK/NHTTP/NHTTP_recvbuf.s514
-rw-r--r--asm/SDK/NHTTP/NHTTP_request.s718
6 files changed, 1837 insertions, 10 deletions
diff --git a/asm/SDK/NHTTP/NHTTP_bgnend.s b/asm/SDK/NHTTP/NHTTP_bgnend.s
index 6bb8e3b..f6ccd99 100644
--- a/asm/SDK/NHTTP/NHTTP_bgnend.s
+++ b/asm/SDK/NHTTP/NHTTP_bgnend.s
@@ -114,11 +114,11 @@ NHTTPi_Startup:
/* 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 func_802F81A4
+/* 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 func_802F8CB4
+/* 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 func_802F8400
+/* 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 func_802FFE68
@@ -136,14 +136,14 @@ lbl_802F7CD8:
/* 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 func_802F8440
+/* 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 func_802F844C
+/* 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
@@ -159,7 +159,7 @@ lbl_802F7CF8:
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 func_802F8440
+/* 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:
@@ -205,12 +205,12 @@ NHTTPi_CleanupAsync:
/* 802F7DD4 002F3A34 48 00 81 11 */ bl func_802FFEE4
/* 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 func_802F855C
+/* 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 func_802F95D8
+/* 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 func_802F84E0
+/* 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 func_802FFE68
/* 802F7E00 002F3A60 81 83 07 C8 */ lwz r12, 0x7c8(r3)
@@ -222,7 +222,7 @@ NHTTPi_CleanupAsync:
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 func_802F8440
+/* 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
diff --git a/asm/SDK/NHTTP/NHTTP_control.s b/asm/SDK/NHTTP/NHTTP_control.s
new file mode 100644
index 0000000..618402e
--- /dev/null
+++ b/asm/SDK/NHTTP/NHTTP_control.s
@@ -0,0 +1,237 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global addHdrList
+addHdrList:
+/* 802F7E94 002F3AF4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F7E98 002F3AF8 7C 08 02 A6 */ mflr r0
+/* 802F7E9C 002F3AFC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F7EA0 002F3B00 39 61 00 20 */ addi r11, r1, 0x20
+/* 802F7EA4 002F3B04 4B EC F2 81 */ bl _savegpr_26
+/* 802F7EA8 002F3B08 83 C3 00 00 */ lwz r30, 0(r3)
+/* 802F7EAC 002F3B0C 7C 7A 1B 78 */ mr r26, r3
+/* 802F7EB0 002F3B10 7C 9B 23 78 */ mr r27, r4
+/* 802F7EB4 002F3B14 7C BC 2B 78 */ mr r28, r5
+/* 802F7EB8 002F3B18 2C 1E 00 00 */ cmpwi r30, 0
+/* 802F7EBC 002F3B1C 7C DD 33 78 */ mr r29, r6
+/* 802F7EC0 002F3B20 3B E0 00 00 */ li r31, 0
+/* 802F7EC4 002F3B24 41 82 00 54 */ beq lbl_802F7F18
+/* 802F7EC8 002F3B28 80 9E 00 08 */ lwz r4, 8(r30)
+/* 802F7ECC 002F3B2C 7F 83 E3 78 */ mr r3, r28
+/* 802F7ED0 002F3B30 48 00 27 B5 */ bl func_802FA684
+/* 802F7ED4 002F3B34 2C 03 00 00 */ cmpwi r3, 0
+/* 802F7ED8 002F3B38 41 82 00 3C */ beq lbl_802F7F14
+/* 802F7EDC 002F3B3C 83 DE 00 04 */ lwz r30, 4(r30)
+/* 802F7EE0 002F3B40 48 00 00 24 */ b lbl_802F7F04
+lbl_802F7EE4:
+/* 802F7EE4 002F3B44 80 9E 00 08 */ lwz r4, 8(r30)
+/* 802F7EE8 002F3B48 7F 83 E3 78 */ mr r3, r28
+/* 802F7EEC 002F3B4C 48 00 27 99 */ bl func_802FA684
+/* 802F7EF0 002F3B50 2C 03 00 00 */ cmpwi r3, 0
+/* 802F7EF4 002F3B54 40 82 00 0C */ bne lbl_802F7F00
+/* 802F7EF8 002F3B58 3B E0 00 01 */ li r31, 1
+/* 802F7EFC 002F3B5C 48 00 00 1C */ b lbl_802F7F18
+lbl_802F7F00:
+/* 802F7F00 002F3B60 83 DE 00 04 */ lwz r30, 4(r30)
+lbl_802F7F04:
+/* 802F7F04 002F3B64 80 1A 00 00 */ lwz r0, 0(r26)
+/* 802F7F08 002F3B68 7C 1E 00 40 */ cmplw r30, r0
+/* 802F7F0C 002F3B6C 40 82 FF D8 */ bne lbl_802F7EE4
+/* 802F7F10 002F3B70 48 00 00 08 */ b lbl_802F7F18
+lbl_802F7F14:
+/* 802F7F14 002F3B74 3B E0 00 01 */ li r31, 1
+lbl_802F7F18:
+/* 802F7F18 002F3B78 2C 1F 00 00 */ cmpwi r31, 0
+/* 802F7F1C 002F3B7C 41 82 00 0C */ beq lbl_802F7F28
+/* 802F7F20 002F3B80 93 BE 00 0C */ stw r29, 0xc(r30)
+/* 802F7F24 002F3B84 48 00 00 80 */ b lbl_802F7FA4
+lbl_802F7F28:
+/* 802F7F28 002F3B88 38 60 00 18 */ li r3, 0x18
+/* 802F7F2C 002F3B8C 38 80 00 04 */ li r4, 4
+/* 802F7F30 002F3B90 4B FF FC 31 */ bl NHTTPi_alloc
+/* 802F7F34 002F3B94 2C 03 00 00 */ cmpwi r3, 0
+/* 802F7F38 002F3B98 40 82 00 18 */ bne lbl_802F7F50
+/* 802F7F3C 002F3B9C 7F 63 DB 78 */ mr r3, r27
+/* 802F7F40 002F3BA0 38 80 00 01 */ li r4, 1
+/* 802F7F44 002F3BA4 4B FF FC BD */ bl NHTTPi_SetError
+/* 802F7F48 002F3BA8 38 60 00 00 */ li r3, 0
+/* 802F7F4C 002F3BAC 48 00 00 5C */ b lbl_802F7FA8
+lbl_802F7F50:
+/* 802F7F50 002F3BB0 93 83 00 08 */ stw r28, 8(r3)
+/* 802F7F54 002F3BB4 38 00 00 00 */ li r0, 0
+/* 802F7F58 002F3BB8 93 A3 00 0C */ stw r29, 0xc(r3)
+/* 802F7F5C 002F3BBC 90 03 00 10 */ stw r0, 0x10(r3)
+/* 802F7F60 002F3BC0 90 03 00 14 */ stw r0, 0x14(r3)
+/* 802F7F64 002F3BC4 80 9A 00 00 */ lwz r4, 0(r26)
+/* 802F7F68 002F3BC8 2C 04 00 00 */ cmpwi r4, 0
+/* 802F7F6C 002F3BCC 41 82 00 2C */ beq lbl_802F7F98
+/* 802F7F70 002F3BD0 80 04 00 00 */ lwz r0, 0(r4)
+/* 802F7F74 002F3BD4 90 03 00 00 */ stw r0, 0(r3)
+/* 802F7F78 002F3BD8 80 1A 00 00 */ lwz r0, 0(r26)
+/* 802F7F7C 002F3BDC 90 03 00 04 */ stw r0, 4(r3)
+/* 802F7F80 002F3BE0 80 9A 00 00 */ lwz r4, 0(r26)
+/* 802F7F84 002F3BE4 80 84 00 00 */ lwz r4, 0(r4)
+/* 802F7F88 002F3BE8 90 64 00 04 */ stw r3, 4(r4)
+/* 802F7F8C 002F3BEC 80 9A 00 00 */ lwz r4, 0(r26)
+/* 802F7F90 002F3BF0 90 64 00 00 */ stw r3, 0(r4)
+/* 802F7F94 002F3BF4 48 00 00 10 */ b lbl_802F7FA4
+lbl_802F7F98:
+/* 802F7F98 002F3BF8 90 63 00 04 */ stw r3, 4(r3)
+/* 802F7F9C 002F3BFC 90 63 00 00 */ stw r3, 0(r3)
+/* 802F7FA0 002F3C00 90 7A 00 00 */ stw r3, 0(r26)
+lbl_802F7FA4:
+/* 802F7FA4 002F3C04 38 60 00 01 */ li r3, 1
+lbl_802F7FA8:
+/* 802F7FA8 002F3C08 39 61 00 20 */ addi r11, r1, 0x20
+/* 802F7FAC 002F3C0C 4B EC F1 C5 */ bl _restgpr_26
+/* 802F7FB0 002F3C10 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F7FB4 002F3C14 7C 08 03 A6 */ mtlr r0
+/* 802F7FB8 002F3C18 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F7FBC 002F3C1C 4E 80 00 20 */ blr
+
+.global NHTTPi_getHdrFromList
+NHTTPi_getHdrFromList:
+/* 802F7FC0 002F3C20 80 A3 00 00 */ lwz r5, 0(r3)
+/* 802F7FC4 002F3C24 2C 05 00 00 */ cmpwi r5, 0
+/* 802F7FC8 002F3C28 41 82 00 38 */ beq lbl_802F8000
+/* 802F7FCC 002F3C2C 80 85 00 00 */ lwz r4, 0(r5)
+/* 802F7FD0 002F3C30 7C 05 20 40 */ cmplw r5, r4
+/* 802F7FD4 002F3C34 41 82 00 24 */ beq lbl_802F7FF8
+/* 802F7FD8 002F3C38 80 05 00 04 */ lwz r0, 4(r5)
+/* 802F7FDC 002F3C3C 90 04 00 04 */ stw r0, 4(r4)
+/* 802F7FE0 002F3C40 80 05 00 00 */ lwz r0, 0(r5)
+/* 802F7FE4 002F3C44 80 85 00 04 */ lwz r4, 4(r5)
+/* 802F7FE8 002F3C48 90 04 00 00 */ stw r0, 0(r4)
+/* 802F7FEC 002F3C4C 80 05 00 04 */ lwz r0, 4(r5)
+/* 802F7FF0 002F3C50 90 03 00 00 */ stw r0, 0(r3)
+/* 802F7FF4 002F3C54 48 00 00 0C */ b lbl_802F8000
+lbl_802F7FF8:
+/* 802F7FF8 002F3C58 38 00 00 00 */ li r0, 0
+/* 802F7FFC 002F3C5C 90 03 00 00 */ stw r0, 0(r3)
+lbl_802F8000:
+/* 802F8000 002F3C60 7C A3 2B 78 */ mr r3, r5
+/* 802F8004 002F3C64 4E 80 00 20 */ blr
+
+.global NHTTP_AddHeaderField
+NHTTP_AddHeaderField:
+/* 802F8008 002F3C68 80 03 00 04 */ lwz r0, 4(r3)
+/* 802F800C 002F3C6C 2C 00 00 00 */ cmpwi r0, 0
+/* 802F8010 002F3C70 41 82 00 0C */ beq lbl_802F801C
+/* 802F8014 002F3C74 38 60 00 00 */ li r3, 0
+/* 802F8018 002F3C78 4E 80 00 20 */ blr
+lbl_802F801C:
+/* 802F801C 002F3C7C 38 63 00 30 */ addi r3, r3, 0x30
+/* 802F8020 002F3C80 4B FF FE 74 */ b addHdrList
+/* 802F8024 002F3C84 4E 80 00 20 */ blr
+
+.global NHTTP_AddPostDataAscii
+NHTTP_AddPostDataAscii:
+/* 802F8028 002F3C88 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 802F802C 002F3C8C 7C 08 02 A6 */ mflr r0
+/* 802F8030 002F3C90 90 01 00 44 */ stw r0, 0x44(r1)
+/* 802F8034 002F3C94 39 61 00 40 */ addi r11, r1, 0x40
+/* 802F8038 002F3C98 4B EC F0 D9 */ bl _savegpr_21
+/* 802F803C 002F3C9C 80 03 00 04 */ lwz r0, 4(r3)
+/* 802F8040 002F3CA0 7C 7B 1B 78 */ mr r27, r3
+/* 802F8044 002F3CA4 7C 9C 23 78 */ mr r28, r4
+/* 802F8048 002F3CA8 7C BD 2B 78 */ mr r29, r5
+/* 802F804C 002F3CAC 2C 00 00 00 */ cmpwi r0, 0
+/* 802F8050 002F3CB0 7C D5 33 78 */ mr r21, r6
+/* 802F8054 002F3CB4 3B E0 00 00 */ li r31, 0
+/* 802F8058 002F3CB8 3B C0 00 00 */ li r30, 0
+/* 802F805C 002F3CBC 41 82 00 0C */ beq lbl_802F8068
+/* 802F8060 002F3CC0 38 60 00 00 */ li r3, 0
+/* 802F8064 002F3CC4 48 00 01 28 */ b lbl_802F818C
+lbl_802F8068:
+/* 802F8068 002F3CC8 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 802F806C 002F3CCC 2C 00 00 00 */ cmpwi r0, 0
+/* 802F8070 002F3CD0 41 82 00 0C */ beq lbl_802F807C
+/* 802F8074 002F3CD4 38 60 00 00 */ li r3, 0
+/* 802F8078 002F3CD8 48 00 01 14 */ b lbl_802F818C
+lbl_802F807C:
+/* 802F807C 002F3CDC 2C 06 00 00 */ cmpwi r6, 0
+/* 802F8080 002F3CE0 41 82 00 10 */ beq lbl_802F8090
+/* 802F8084 002F3CE4 7E A3 AB 78 */ mr r3, r21
+/* 802F8088 002F3CE8 48 00 20 59 */ bl func_802FA0E0
+/* 802F808C 002F3CEC 7C 7E 1B 78 */ mr r30, r3
+lbl_802F8090:
+/* 802F8090 002F3CF0 7E A3 AB 78 */ mr r3, r21
+/* 802F8094 002F3CF4 7F C4 F3 78 */ mr r4, r30
+/* 802F8098 002F3CF8 38 BB 00 3A */ addi r5, r27, 0x3a
+/* 802F809C 002F3CFC 38 C0 00 12 */ li r6, 0x12
+/* 802F80A0 002F3D00 48 00 27 29 */ bl func_802FA7C8
+/* 802F80A4 002F3D04 2C 03 00 00 */ cmpwi r3, 0
+/* 802F80A8 002F3D08 40 80 00 0C */ bge lbl_802F80B4
+/* 802F80AC 002F3D0C 38 00 00 01 */ li r0, 1
+/* 802F80B0 002F3D10 48 00 00 A4 */ b lbl_802F8154
+lbl_802F80B4:
+/* 802F80B4 002F3D14 3C 60 80 40 */ lis r3, lbl_803FE108@ha
+/* 802F80B8 002F3D18 3B 00 00 13 */ li r24, 0x13
+/* 802F80BC 002F3D1C 38 63 E1 08 */ addi r3, r3, lbl_803FE108@l
+/* 802F80C0 002F3D20 3A E3 00 13 */ addi r23, r3, 0x13
+lbl_802F80C4:
+/* 802F80C4 002F3D24 7E DB C2 14 */ add r22, r27, r24
+/* 802F80C8 002F3D28 88 17 00 00 */ lbz r0, 0(r23)
+/* 802F80CC 002F3D2C 8B 36 00 38 */ lbz r25, 0x38(r22)
+/* 802F80D0 002F3D30 7C 1A 07 74 */ extsb r26, r0
+lbl_802F80D4:
+/* 802F80D4 002F3D34 57 23 06 3E */ clrlwi r3, r25, 0x18
+/* 802F80D8 002F3D38 38 63 00 01 */ addi r3, r3, 1
+/* 802F80DC 002F3D3C 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 802F80E0 002F3D40 28 00 00 7B */ cmplwi r0, 0x7b
+/* 802F80E4 002F3D44 40 82 00 0C */ bne lbl_802F80F0
+/* 802F80E8 002F3D48 38 60 00 30 */ li r3, 0x30
+/* 802F80EC 002F3D4C 48 00 00 20 */ b lbl_802F810C
+lbl_802F80F0:
+/* 802F80F0 002F3D50 28 00 00 5B */ cmplwi r0, 0x5b
+/* 802F80F4 002F3D54 40 82 00 0C */ bne lbl_802F8100
+/* 802F80F8 002F3D58 38 60 00 61 */ li r3, 0x61
+/* 802F80FC 002F3D5C 48 00 00 10 */ b lbl_802F810C
+lbl_802F8100:
+/* 802F8100 002F3D60 28 00 00 3A */ cmplwi r0, 0x3a
+/* 802F8104 002F3D64 40 82 00 08 */ bne lbl_802F810C
+/* 802F8108 002F3D68 38 60 00 41 */ li r3, 0x41
+lbl_802F810C:
+/* 802F810C 002F3D6C 7C 79 07 74 */ extsb r25, r3
+/* 802F8110 002F3D70 98 76 00 38 */ stb r3, 0x38(r22)
+/* 802F8114 002F3D74 7C 19 D0 00 */ cmpw r25, r26
+/* 802F8118 002F3D78 41 82 00 28 */ beq lbl_802F8140
+/* 802F811C 002F3D7C 7E A3 AB 78 */ mr r3, r21
+/* 802F8120 002F3D80 7F C4 F3 78 */ mr r4, r30
+/* 802F8124 002F3D84 38 BB 00 3A */ addi r5, r27, 0x3a
+/* 802F8128 002F3D88 38 C0 00 12 */ li r6, 0x12
+/* 802F812C 002F3D8C 48 00 26 9D */ bl func_802FA7C8
+/* 802F8130 002F3D90 2C 03 00 00 */ cmpwi r3, 0
+/* 802F8134 002F3D94 40 80 FF A0 */ bge lbl_802F80D4
+/* 802F8138 002F3D98 38 00 00 01 */ li r0, 1
+/* 802F813C 002F3D9C 48 00 00 18 */ b lbl_802F8154
+lbl_802F8140:
+/* 802F8140 002F3DA0 3B 18 FF FF */ addi r24, r24, -1
+/* 802F8144 002F3DA4 3A F7 FF FF */ addi r23, r23, -1
+/* 802F8148 002F3DA8 2C 18 00 02 */ cmpwi r24, 2
+/* 802F814C 002F3DAC 40 80 FF 78 */ bge lbl_802F80C4
+/* 802F8150 002F3DB0 38 00 00 00 */ li r0, 0
+lbl_802F8154:
+/* 802F8154 002F3DB4 2C 00 00 00 */ cmpwi r0, 0
+/* 802F8158 002F3DB8 41 82 00 30 */ beq lbl_802F8188
+/* 802F815C 002F3DBC 7F 84 E3 78 */ mr r4, r28
+/* 802F8160 002F3DC0 7F A5 EB 78 */ mr r5, r29
+/* 802F8164 002F3DC4 7E A6 AB 78 */ mr r6, r21
+/* 802F8168 002F3DC8 38 7B 00 34 */ addi r3, r27, 0x34
+/* 802F816C 002F3DCC 4B FF FD 29 */ bl addHdrList
+/* 802F8170 002F3DD0 2C 03 00 00 */ cmpwi r3, 0
+/* 802F8174 002F3DD4 7C 7F 1B 78 */ mr r31, r3
+/* 802F8178 002F3DD8 41 82 00 10 */ beq lbl_802F8188
+/* 802F817C 002F3DDC 80 7B 00 34 */ lwz r3, 0x34(r27)
+/* 802F8180 002F3DE0 80 63 00 00 */ lwz r3, 0(r3)
+/* 802F8184 002F3DE4 93 C3 00 10 */ stw r30, 0x10(r3)
+lbl_802F8188:
+/* 802F8188 002F3DE8 7F E3 FB 78 */ mr r3, r31
+lbl_802F818C:
+/* 802F818C 002F3DEC 39 61 00 40 */ addi r11, r1, 0x40
+/* 802F8190 002F3DF0 4B EC EF CD */ bl _restgpr_21
+/* 802F8194 002F3DF4 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 802F8198 002F3DF8 7C 08 03 A6 */ mtlr r0
+/* 802F819C 002F3DFC 38 21 00 40 */ addi r1, r1, 0x40
+/* 802F81A0 002F3E00 4E 80 00 20 */ blr
diff --git a/asm/SDK/NHTTP/NHTTP_list.s b/asm/SDK/NHTTP/NHTTP_list.s
new file mode 100644
index 0000000..113b9d4
--- /dev/null
+++ b/asm/SDK/NHTTP/NHTTP_list.s
@@ -0,0 +1,180 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global NHTTPi_InitListInfo
+NHTTPi_InitListInfo:
+/* 802F81A4 002F3E04 38 00 00 00 */ li r0, 0
+/* 802F81A8 002F3E08 90 03 00 00 */ stw r0, 0(r3)
+/* 802F81AC 002F3E0C 90 03 00 04 */ stw r0, 4(r3)
+/* 802F81B0 002F3E10 4E 80 00 20 */ blr
+
+.global NHTTPi_setReqQueue
+NHTTPi_setReqQueue:
+/* 802F81B4 002F3E14 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F81B8 002F3E18 7C 08 02 A6 */ mflr r0
+/* 802F81BC 002F3E1C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F81C0 002F3E20 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F81C4 002F3E24 3B E0 FF FF */ li r31, -1
+/* 802F81C8 002F3E28 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F81CC 002F3E2C 7C 9E 23 78 */ mr r30, r4
+/* 802F81D0 002F3E30 38 80 00 04 */ li r4, 4
+/* 802F81D4 002F3E34 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F81D8 002F3E38 7C 7D 1B 78 */ mr r29, r3
+/* 802F81DC 002F3E3C 38 60 00 14 */ li r3, 0x14
+/* 802F81E0 002F3E40 4B FF F9 81 */ bl NHTTPi_alloc
+/* 802F81E4 002F3E44 2C 03 00 00 */ cmpwi r3, 0
+/* 802F81E8 002F3E48 41 82 00 78 */ beq lbl_802F8260
+/* 802F81EC 002F3E4C 80 9D 00 00 */ lwz r4, 0(r29)
+/* 802F81F0 002F3E50 2C 04 00 00 */ cmpwi r4, 0
+/* 802F81F4 002F3E54 41 82 00 2C */ beq lbl_802F8220
+/* 802F81F8 002F3E58 80 04 00 00 */ lwz r0, 0(r4)
+/* 802F81FC 002F3E5C 90 03 00 00 */ stw r0, 0(r3)
+/* 802F8200 002F3E60 80 1D 00 00 */ lwz r0, 0(r29)
+/* 802F8204 002F3E64 90 03 00 04 */ stw r0, 4(r3)
+/* 802F8208 002F3E68 80 9D 00 00 */ lwz r4, 0(r29)
+/* 802F820C 002F3E6C 80 84 00 00 */ lwz r4, 0(r4)
+/* 802F8210 002F3E70 90 64 00 04 */ stw r3, 4(r4)
+/* 802F8214 002F3E74 80 9D 00 00 */ lwz r4, 0(r29)
+/* 802F8218 002F3E78 90 64 00 00 */ stw r3, 0(r4)
+/* 802F821C 002F3E7C 48 00 00 10 */ b lbl_802F822C
+lbl_802F8220:
+/* 802F8220 002F3E80 90 63 00 00 */ stw r3, 0(r3)
+/* 802F8224 002F3E84 90 63 00 04 */ stw r3, 4(r3)
+/* 802F8228 002F3E88 90 7D 00 00 */ stw r3, 0(r29)
+lbl_802F822C:
+/* 802F822C 002F3E8C 80 9D 00 04 */ lwz r4, 4(r29)
+/* 802F8230 002F3E90 38 00 FF FF */ li r0, -1
+/* 802F8234 002F3E94 90 83 00 08 */ stw r4, 8(r3)
+/* 802F8238 002F3E98 38 84 00 01 */ addi r4, r4, 1
+/* 802F823C 002F3E9C 90 9D 00 04 */ stw r4, 4(r29)
+/* 802F8240 002F3EA0 93 C3 00 0C */ stw r30, 0xc(r3)
+/* 802F8244 002F3EA4 90 03 00 10 */ stw r0, 0x10(r3)
+/* 802F8248 002F3EA8 80 1D 00 04 */ lwz r0, 4(r29)
+/* 802F824C 002F3EAC 83 E3 00 08 */ lwz r31, 8(r3)
+/* 802F8250 002F3EB0 2C 00 00 00 */ cmpwi r0, 0
+/* 802F8254 002F3EB4 40 80 00 0C */ bge lbl_802F8260
+/* 802F8258 002F3EB8 38 00 00 00 */ li r0, 0
+/* 802F825C 002F3EBC 90 1D 00 04 */ stw r0, 4(r29)
+lbl_802F8260:
+/* 802F8260 002F3EC0 7F E3 FB 78 */ mr r3, r31
+/* 802F8264 002F3EC4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F8268 002F3EC8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F826C 002F3ECC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F8270 002F3ED0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F8274 002F3ED4 7C 08 03 A6 */ mtlr r0
+/* 802F8278 002F3ED8 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F827C 002F3EDC 4E 80 00 20 */ blr
+
+.global NHTTPi_freeReqQueue
+NHTTPi_freeReqQueue:
+/* 802F8280 002F3EE0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F8284 002F3EE4 7C 08 02 A6 */ mflr r0
+/* 802F8288 002F3EE8 38 E0 00 00 */ li r7, 0
+/* 802F828C 002F3EEC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F8290 002F3EF0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F8294 002F3EF4 3B E0 00 00 */ li r31, 0
+/* 802F8298 002F3EF8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F829C 002F3EFC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F82A0 002F3F00 7C 9D 23 78 */ mr r29, r4
+/* 802F82A4 002F3F04 80 C3 00 00 */ lwz r6, 0(r3)
+/* 802F82A8 002F3F08 2C 06 00 00 */ cmpwi r6, 0
+/* 802F82AC 002F3F0C 41 82 00 40 */ beq lbl_802F82EC
+/* 802F82B0 002F3F10 80 06 00 08 */ lwz r0, 8(r6)
+/* 802F82B4 002F3F14 7C 00 28 00 */ cmpw r0, r5
+/* 802F82B8 002F3F18 40 82 00 0C */ bne lbl_802F82C4
+/* 802F82BC 002F3F1C 7C DF 33 78 */ mr r31, r6
+/* 802F82C0 002F3F20 48 00 00 2C */ b lbl_802F82EC
+lbl_802F82C4:
+/* 802F82C4 002F3F24 80 86 00 04 */ lwz r4, 4(r6)
+/* 802F82C8 002F3F28 48 00 00 1C */ b lbl_802F82E4
+lbl_802F82CC:
+/* 802F82CC 002F3F2C 80 04 00 08 */ lwz r0, 8(r4)
+/* 802F82D0 002F3F30 7C 00 28 00 */ cmpw r0, r5
+/* 802F82D4 002F3F34 40 82 00 0C */ bne lbl_802F82E0
+/* 802F82D8 002F3F38 7C 9F 23 78 */ mr r31, r4
+/* 802F82DC 002F3F3C 48 00 00 10 */ b lbl_802F82EC
+lbl_802F82E0:
+/* 802F82E0 002F3F40 80 84 00 04 */ lwz r4, 4(r4)
+lbl_802F82E4:
+/* 802F82E4 002F3F44 7C 04 30 40 */ cmplw r4, r6
+/* 802F82E8 002F3F48 40 82 FF E4 */ bne lbl_802F82CC
+lbl_802F82EC:
+/* 802F82EC 002F3F4C 2C 1F 00 00 */ cmpwi r31, 0
+/* 802F82F0 002F3F50 41 82 00 8C */ beq lbl_802F837C
+/* 802F82F4 002F3F54 80 06 00 00 */ lwz r0, 0(r6)
+/* 802F82F8 002F3F58 7C 06 00 40 */ cmplw r6, r0
+/* 802F82FC 002F3F5C 41 82 00 34 */ beq lbl_802F8330
+/* 802F8300 002F3F60 80 1F 00 04 */ lwz r0, 4(r31)
+/* 802F8304 002F3F64 80 9F 00 00 */ lwz r4, 0(r31)
+/* 802F8308 002F3F68 90 04 00 04 */ stw r0, 4(r4)
+/* 802F830C 002F3F6C 80 1F 00 00 */ lwz r0, 0(r31)
+/* 802F8310 002F3F70 80 9F 00 04 */ lwz r4, 4(r31)
+/* 802F8314 002F3F74 90 04 00 00 */ stw r0, 0(r4)
+/* 802F8318 002F3F78 80 03 00 00 */ lwz r0, 0(r3)
+/* 802F831C 002F3F7C 7C 00 F8 40 */ cmplw r0, r31
+/* 802F8320 002F3F80 40 82 00 18 */ bne lbl_802F8338
+/* 802F8324 002F3F84 80 1F 00 04 */ lwz r0, 4(r31)
+/* 802F8328 002F3F88 90 03 00 00 */ stw r0, 0(r3)
+/* 802F832C 002F3F8C 48 00 00 0C */ b lbl_802F8338
+lbl_802F8330:
+/* 802F8330 002F3F90 38 00 00 00 */ li r0, 0
+/* 802F8334 002F3F94 90 03 00 00 */ stw r0, 0(r3)
+lbl_802F8338:
+/* 802F8338 002F3F98 80 9F 00 0C */ lwz r4, 0xc(r31)
+/* 802F833C 002F3F9C 7F A3 EB 78 */ mr r3, r29
+/* 802F8340 002F3FA0 48 00 76 F9 */ bl func_802FFA38
+/* 802F8344 002F3FA4 80 9F 00 0C */ lwz r4, 0xc(r31)
+/* 802F8348 002F3FA8 7C 7E 1B 78 */ mr r30, r3
+/* 802F834C 002F3FAC 7F A3 EB 78 */ mr r3, r29
+/* 802F8350 002F3FB0 48 00 10 2D */ bl NHTTPi_destroyRequestObject
+/* 802F8354 002F3FB4 7F E3 FB 78 */ mr r3, r31
+/* 802F8358 002F3FB8 4B FF F8 65 */ bl NHTTPi_free
+/* 802F835C 002F3FBC 2C 1E 00 00 */ cmpwi r30, 0
+/* 802F8360 002F3FC0 41 82 00 18 */ beq lbl_802F8378
+/* 802F8364 002F3FC4 38 00 00 08 */ li r0, 8
+/* 802F8368 002F3FC8 7F A3 EB 78 */ mr r3, r29
+/* 802F836C 002F3FCC 90 1E 00 04 */ stw r0, 4(r30)
+/* 802F8370 002F3FD0 7F C4 F3 78 */ mr r4, r30
+/* 802F8374 002F3FD4 48 00 7A 9D */ bl func_802FFE10
+lbl_802F8378:
+/* 802F8378 002F3FD8 38 E0 00 01 */ li r7, 1
+lbl_802F837C:
+/* 802F837C 002F3FDC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F8380 002F3FE0 7C E3 3B 78 */ mr r3, r7
+/* 802F8384 002F3FE4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F8388 002F3FE8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F838C 002F3FEC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F8390 002F3FF0 7C 08 03 A6 */ mtlr r0
+/* 802F8394 002F3FF4 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F8398 002F3FF8 4E 80 00 20 */ blr
+
+.global NHTTPi_allFreeReqQueue
+NHTTPi_allFreeReqQueue:
+/* 802F839C 002F3FFC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F83A0 002F4000 7C 08 02 A6 */ mflr r0
+/* 802F83A4 002F4004 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F83A8 002F4008 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F83AC 002F400C 7C 9F 23 78 */ mr r31, r4
+/* 802F83B0 002F4010 93 C1 00 08 */ stw r30, 8(r1)
+/* 802F83B4 002F4014 7C 7E 1B 78 */ mr r30, r3
+/* 802F83B8 002F4018 48 00 00 14 */ b lbl_802F83CC
+lbl_802F83BC:
+/* 802F83BC 002F401C 80 A3 00 08 */ lwz r5, 8(r3)
+/* 802F83C0 002F4020 7F C3 F3 78 */ mr r3, r30
+/* 802F83C4 002F4024 7F E4 FB 78 */ mr r4, r31
+/* 802F83C8 002F4028 4B FF FE B9 */ bl NHTTPi_freeReqQueue
+lbl_802F83CC:
+/* 802F83CC 002F402C 80 7E 00 00 */ lwz r3, 0(r30)
+/* 802F83D0 002F4030 2C 03 00 00 */ cmpwi r3, 0
+/* 802F83D4 002F4034 40 82 FF E8 */ bne lbl_802F83BC
+/* 802F83D8 002F4038 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F83DC 002F403C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F83E0 002F4040 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802F83E4 002F4044 7C 08 03 A6 */ mtlr r0
+/* 802F83E8 002F4048 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F83EC 002F404C 4E 80 00 20 */ blr
+
+.global NHTTPi_getReqFromReqQueue
+NHTTPi_getReqFromReqQueue:
+/* 802F83F0 002F4050 4B FF FB D0 */ b NHTTPi_getHdrFromList
diff --git a/asm/SDK/NHTTP/NHTTP_os_RVL.s b/asm/SDK/NHTTP/NHTTP_os_RVL.s
new file mode 100644
index 0000000..e4c0de7
--- /dev/null
+++ b/asm/SDK/NHTTP/NHTTP_os_RVL.s
@@ -0,0 +1,178 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global NHTTPi_InitMutexInfo
+NHTTPi_InitMutexInfo:
+/* 802F83F4 002F4054 38 00 00 00 */ li r0, 0
+/* 802F83F8 002F4058 90 03 00 18 */ stw r0, 0x18(r3)
+/* 802F83FC 002F405C 4E 80 00 20 */ blr
+
+.global NHTTPi_initLockReqList
+NHTTPi_initLockReqList:
+/* 802F8400 002F4060 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F8404 002F4064 7C 08 02 A6 */ mflr r0
+/* 802F8408 002F4068 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F840C 002F406C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F8410 002F4070 7C 7F 1B 78 */ mr r31, r3
+/* 802F8414 002F4074 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 802F8418 002F4078 2C 00 00 00 */ cmpwi r0, 0
+/* 802F841C 002F407C 40 82 00 10 */ bne lbl_802F842C
+/* 802F8420 002F4080 4B F7 74 F1 */ bl OSInitMutex
+/* 802F8424 002F4084 38 00 00 01 */ li r0, 1
+/* 802F8428 002F4088 90 1F 00 18 */ stw r0, 0x18(r31)
+lbl_802F842C:
+/* 802F842C 002F408C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F8430 002F4090 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F8434 002F4094 7C 08 03 A6 */ mtlr r0
+/* 802F8438 002F4098 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F843C 002F409C 4E 80 00 20 */ blr
+
+.global NHTTPi_exitLockReqList
+NHTTPi_exitLockReqList:
+/* 802F8440 002F40A0 4E 80 00 20 */ blr
+
+.global NHTTPi_lockReqList
+NHTTPi_lockReqList:
+/* 802F8444 002F40A4 4B F7 75 04 */ b OSLockMutex
+
+.global NHTTPi_unlockReqList
+NHTTPi_unlockReqList:
+/* 802F8448 002F40A8 4B F7 75 DC */ b OSUnlockMutex
+
+.global NHTTPi_createCommThread
+NHTTPi_createCommThread:
+/* 802F844C 002F40AC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F8450 002F40B0 7C 08 02 A6 */ mflr r0
+/* 802F8454 002F40B4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F8458 002F40B8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F845C 002F40BC 7C BF 2B 78 */ mr r31, r5
+/* 802F8460 002F40C0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F8464 002F40C4 7C 9E 23 78 */ mr r30, r4
+/* 802F8468 002F40C8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F846C 002F40CC 7C 7D 1B 78 */ mr r29, r3
+/* 802F8470 002F40D0 48 00 25 F9 */ bl func_802FAA68
+/* 802F8474 002F40D4 2C 03 00 00 */ cmpwi r3, 0
+/* 802F8478 002F40D8 40 82 00 1C */ bne lbl_802F8494
+/* 802F847C 002F40DC 7F A3 EB 78 */ mr r3, r29
+/* 802F8480 002F40E0 38 9D 00 20 */ addi r4, r29, 0x20
+/* 802F8484 002F40E4 38 A0 00 03 */ li r5, 3
+/* 802F8488 002F40E8 4B F7 6A 71 */ bl OSInitMessageQueue
+/* 802F848C 002F40EC 7F A3 EB 78 */ mr r3, r29
+/* 802F8490 002F40F0 48 00 25 CD */ bl func_802FAA5C
+lbl_802F8494:
+/* 802F8494 002F40F4 3C 80 80 30 */ lis r4, NHTTPi_CommThreadProc@ha
+/* 802F8498 002F40F8 7F C8 F3 78 */ mr r8, r30
+/* 802F849C 002F40FC 38 7D 00 30 */ addi r3, r29, 0x30
+/* 802F84A0 002F4100 38 DF 20 00 */ addi r6, r31, 0x2000
+/* 802F84A4 002F4104 38 84 85 F4 */ addi r4, r4, NHTTPi_CommThreadProc@l
+/* 802F84A8 002F4108 38 A0 00 00 */ li r5, 0
+/* 802F84AC 002F410C 38 E0 20 00 */ li r7, 0x2000
+/* 802F84B0 002F4110 39 20 00 00 */ li r9, 0
+/* 802F84B4 002F4114 4B F7 94 2D */ bl OSCreateThread
+/* 802F84B8 002F4118 38 7D 00 30 */ addi r3, r29, 0x30
+/* 802F84BC 002F411C 4B F7 9A 8D */ bl OSResumeThread
+/* 802F84C0 002F4120 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F84C4 002F4124 38 60 00 01 */ li r3, 1
+/* 802F84C8 002F4128 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F84CC 002F412C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F84D0 002F4130 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F84D4 002F4134 7C 08 03 A6 */ mtlr r0
+/* 802F84D8 002F4138 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F84DC 002F413C 4E 80 00 20 */ blr
+
+.global NHTTPi_destroyCommThread
+NHTTPi_destroyCommThread:
+/* 802F84E0 002F4140 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F84E4 002F4144 7C 08 02 A6 */ mflr r0
+/* 802F84E8 002F4148 38 A0 00 00 */ li r5, 0
+/* 802F84EC 002F414C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F84F0 002F4150 38 00 00 01 */ li r0, 1
+/* 802F84F4 002F4154 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F84F8 002F4158 7C 7F 1B 78 */ mr r31, r3
+/* 802F84FC 002F415C 90 04 07 DC */ stw r0, 0x7dc(r4)
+/* 802F8500 002F4160 38 80 00 00 */ li r4, 0
+/* 802F8504 002F4164 4B F7 6A 55 */ bl OSSendMessage
+/* 802F8508 002F4168 38 7F 00 30 */ addi r3, r31, 0x30
+/* 802F850C 002F416C 38 80 00 00 */ li r4, 0
+/* 802F8510 002F4170 4B F7 98 F9 */ bl OSJoinThread
+/* 802F8514 002F4174 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F8518 002F4178 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F851C 002F417C 7C 08 03 A6 */ mtlr r0
+/* 802F8520 002F4180 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F8524 002F4184 4E 80 00 20 */ blr
+
+.global NHTTPi_idleCommThread
+NHTTPi_idleCommThread:
+/* 802F8528 002F4188 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F852C 002F418C 7C 08 02 A6 */ mflr r0
+/* 802F8530 002F4190 38 A0 00 01 */ li r5, 1
+/* 802F8534 002F4194 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F8538 002F4198 38 81 00 08 */ addi r4, r1, 8
+/* 802F853C 002F419C 4B F7 6A E5 */ bl OSReceiveMessage
+/* 802F8540 002F41A0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F8544 002F41A4 7C 08 03 A6 */ mtlr r0
+/* 802F8548 002F41A8 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F854C 002F41AC 4E 80 00 20 */ blr
+
+.global NHTTPi_kickCommThread
+NHTTPi_kickCommThread:
+/* 802F8550 002F41B0 38 80 00 00 */ li r4, 0
+/* 802F8554 002F41B4 38 A0 00 00 */ li r5, 0
+/* 802F8558 002F41B8 4B F7 6A 00 */ b OSSendMessage
+
+.global NHTTPi_CheckCurrentThread
+NHTTPi_CheckCurrentThread:
+/* 802F855C 002F41BC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F8560 002F41C0 7C 08 02 A6 */ mflr r0
+/* 802F8564 002F41C4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F8568 002F41C8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F856C 002F41CC 3F E0 80 44 */ lis r31, lbl_80446078@ha
+/* 802F8570 002F41D0 3B FF 60 78 */ addi r31, r31, lbl_80446078@l
+/* 802F8574 002F41D4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F8578 002F41D8 7C 9E 23 78 */ mr r30, r4
+/* 802F857C 002F41DC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F8580 002F41E0 7C 7D 1B 78 */ mr r29, r3
+/* 802F8584 002F41E4 4B F7 8D 75 */ bl OSGetCurrentThread
+/* 802F8588 002F41E8 2C 03 00 00 */ cmpwi r3, 0
+/* 802F858C 002F41EC 38 1D 00 30 */ addi r0, r29, 0x30
+/* 802F8590 002F41F0 41 82 00 48 */ beq lbl_802F85D8
+/* 802F8594 002F41F4 2C 1E 00 00 */ cmpwi r30, 0
+/* 802F8598 002F41F8 40 82 00 0C */ bne lbl_802F85A4
+/* 802F859C 002F41FC 7C 03 00 40 */ cmplw r3, r0
+/* 802F85A0 002F4200 40 82 00 14 */ bne lbl_802F85B4
+lbl_802F85A4:
+/* 802F85A4 002F4204 2C 1E 00 00 */ cmpwi r30, 0
+/* 802F85A8 002F4208 41 82 00 30 */ beq lbl_802F85D8
+/* 802F85AC 002F420C 7C 03 00 40 */ cmplw r3, r0
+/* 802F85B0 002F4210 40 82 00 28 */ bne lbl_802F85D8
+lbl_802F85B4:
+/* 802F85B4 002F4214 38 7F 00 1C */ addi r3, r31, 0x1c
+/* 802F85B8 002F4218 38 9F 00 00 */ addi r4, r31, 0
+/* 802F85BC 002F421C 4C C6 31 82 */ crclr 6
+/* 802F85C0 002F4220 4B D0 F5 05 */ bl func_80007AC4
+/* 802F85C4 002F4224 38 7F 00 30 */ addi r3, r31, 0x30
+/* 802F85C8 002F4228 38 80 00 DF */ li r4, 0xdf
+/* 802F85CC 002F422C 38 AD 8C 10 */ addi r5, r13, lbl_8063DED0-_SDA_BASE_
+/* 802F85D0 002F4230 4C C6 31 82 */ crclr 6
+/* 802F85D4 002F4234 4B F7 2E C9 */ bl OSPanic
+lbl_802F85D8:
+/* 802F85D8 002F4238 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F85DC 002F423C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F85E0 002F4240 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F85E4 002F4244 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F85E8 002F4248 7C 08 03 A6 */ mtlr r0
+/* 802F85EC 002F424C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F85F0 002F4250 4E 80 00 20 */ blr
+
+.global NHTTPi_CommThreadProc
+NHTTPi_CommThreadProc:
+/* 802F85F4 002F4254 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F85F8 002F4258 7C 08 02 A6 */ mflr r0
+/* 802F85FC 002F425C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F8600 002F4260 48 00 63 15 */ bl func_802FE914
+/* 802F8604 002F4264 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F8608 002F4268 38 60 00 00 */ li r3, 0
+/* 802F860C 002F426C 7C 08 03 A6 */ mtlr r0
+/* 802F8610 002F4270 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F8614 002F4274 4E 80 00 20 */ blr
diff --git a/asm/SDK/NHTTP/NHTTP_recvbuf.s b/asm/SDK/NHTTP/NHTTP_recvbuf.s
new file mode 100644
index 0000000..a4a99b3
--- /dev/null
+++ b/asm/SDK/NHTTP/NHTTP_recvbuf.s
@@ -0,0 +1,514 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global NHTTPi_findNextLineHdrRecvBuf
+NHTTPi_findNextLineHdrRecvBuf:
+/* 802F8618 002F4278 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F861C 002F427C 2C 06 00 00 */ cmpwi r6, 0
+/* 802F8620 002F4280 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F8624 002F4284 93 C1 00 08 */ stw r30, 8(r1)
+/* 802F8628 002F4288 41 82 00 0C */ beq lbl_802F8634
+/* 802F862C 002F428C 38 00 FF FF */ li r0, -1
+/* 802F8630 002F4290 90 06 00 00 */ stw r0, 0(r6)
+lbl_802F8634:
+/* 802F8634 002F4294 7C 04 28 00 */ cmpw r4, r5
+/* 802F8638 002F4298 40 80 01 C4 */ bge lbl_802F87FC
+/* 802F863C 002F429C 2C 04 04 00 */ cmpwi r4, 0x400
+/* 802F8640 002F42A0 39 40 FF FF */ li r10, -1
+/* 802F8644 002F42A4 3B C0 00 00 */ li r30, 0
+/* 802F8648 002F42A8 40 80 00 10 */ bge lbl_802F8658
+/* 802F864C 002F42AC 7C 9F 23 78 */ mr r31, r4
+/* 802F8650 002F42B0 39 80 00 00 */ li r12, 0
+/* 802F8654 002F42B4 48 00 00 60 */ b lbl_802F86B4
+lbl_802F8658:
+/* 802F8658 002F42B8 38 04 FC 00 */ addi r0, r4, -1024
+/* 802F865C 002F42BC 81 83 00 34 */ lwz r12, 0x34(r3)
+/* 802F8660 002F42C0 7C 08 4E 71 */ srawi. r8, r0, 9
+/* 802F8664 002F42C4 41 82 00 48 */ beq lbl_802F86AC
+/* 802F8668 002F42C8 55 00 E8 FF */ rlwinm. r0, r8, 0x1d, 3, 0x1f
+/* 802F866C 002F42CC 7C 09 03 A6 */ mtctr r0
+/* 802F8670 002F42D0 41 82 00 30 */ beq lbl_802F86A0
+lbl_802F8674:
+/* 802F8674 002F42D4 81 8C 00 00 */ lwz r12, 0(r12)
+/* 802F8678 002F42D8 81 8C 00 00 */ lwz r12, 0(r12)
+/* 802F867C 002F42DC 81 8C 00 00 */ lwz r12, 0(r12)
+/* 802F8680 002F42E0 81 8C 00 00 */ lwz r12, 0(r12)
+/* 802F8684 002F42E4 81 8C 00 00 */ lwz r12, 0(r12)
+/* 802F8688 002F42E8 81 8C 00 00 */ lwz r12, 0(r12)
+/* 802F868C 002F42EC 81 8C 00 00 */ lwz r12, 0(r12)
+/* 802F8690 002F42F0 81 8C 00 00 */ lwz r12, 0(r12)
+/* 802F8694 002F42F4 42 00 FF E0 */ bdnz lbl_802F8674
+/* 802F8698 002F42F8 71 08 00 07 */ andi. r8, r8, 7
+/* 802F869C 002F42FC 41 82 00 10 */ beq lbl_802F86AC
+lbl_802F86A0:
+/* 802F86A0 002F4300 7D 09 03 A6 */ mtctr r8
+lbl_802F86A4:
+/* 802F86A4 002F4304 81 8C 00 00 */ lwz r12, 0(r12)
+/* 802F86A8 002F4308 42 00 FF FC */ bdnz lbl_802F86A4
+lbl_802F86AC:
+/* 802F86AC 002F430C 38 04 FC 00 */ addi r0, r4, -1024
+/* 802F86B0 002F4310 54 1F 05 FE */ clrlwi r31, r0, 0x17
+lbl_802F86B4:
+/* 802F86B4 002F4314 7C 04 28 50 */ subf r0, r4, r5
+/* 802F86B8 002F4318 39 00 00 01 */ li r8, 1
+/* 802F86BC 002F431C 7C 09 03 A6 */ mtctr r0
+/* 802F86C0 002F4320 7C 04 28 00 */ cmpw r4, r5
+/* 802F86C4 002F4324 40 80 01 38 */ bge lbl_802F87FC
+lbl_802F86C8:
+/* 802F86C8 002F4328 2C 0C 00 00 */ cmpwi r12, 0
+/* 802F86CC 002F432C 40 82 00 2C */ bne lbl_802F86F8
+/* 802F86D0 002F4330 2C 1F 04 00 */ cmpwi r31, 0x400
+/* 802F86D4 002F4334 40 80 00 18 */ bge lbl_802F86EC
+/* 802F86D8 002F4338 7D 23 FA 14 */ add r9, r3, r31
+/* 802F86DC 002F433C 3B FF 00 01 */ addi r31, r31, 1
+/* 802F86E0 002F4340 88 09 00 38 */ lbz r0, 0x38(r9)
+/* 802F86E4 002F4344 7C 0B 07 74 */ extsb r11, r0
+/* 802F86E8 002F4348 48 00 00 2C */ b lbl_802F8714
+lbl_802F86EC:
+/* 802F86EC 002F434C 81 83 00 34 */ lwz r12, 0x34(r3)
+/* 802F86F0 002F4350 3B E0 00 00 */ li r31, 0
+/* 802F86F4 002F4354 48 00 00 14 */ b lbl_802F8708
+lbl_802F86F8:
+/* 802F86F8 002F4358 2C 1F 02 00 */ cmpwi r31, 0x200
+/* 802F86FC 002F435C 40 82 00 0C */ bne lbl_802F8708
+/* 802F8700 002F4360 3B E0 00 00 */ li r31, 0
+/* 802F8704 002F4364 81 8C 00 00 */ lwz r12, 0(r12)
+lbl_802F8708:
+/* 802F8708 002F4368 7D 2C FA 14 */ add r9, r12, r31
+/* 802F870C 002F436C 3B FF 00 01 */ addi r31, r31, 1
+/* 802F8710 002F4370 89 69 00 04 */ lbz r11, 4(r9)
+lbl_802F8714:
+/* 802F8714 002F4374 7D 60 07 74 */ extsb r0, r11
+/* 802F8718 002F4378 2C 00 00 3A */ cmpwi r0, 0x3a
+/* 802F871C 002F437C 40 82 00 1C */ bne lbl_802F8738
+/* 802F8720 002F4380 2C 06 00 00 */ cmpwi r6, 0
+/* 802F8724 002F4384 41 82 00 14 */ beq lbl_802F8738
+/* 802F8728 002F4388 80 06 00 00 */ lwz r0, 0(r6)
+/* 802F872C 002F438C 2C 00 00 00 */ cmpwi r0, 0
+/* 802F8730 002F4390 40 80 00 08 */ bge lbl_802F8738
+/* 802F8734 002F4394 90 86 00 00 */ stw r4, 0(r6)
+lbl_802F8738:
+/* 802F8738 002F4398 2C 1E 00 00 */ cmpwi r30, 0
+/* 802F873C 002F439C 41 82 00 44 */ beq lbl_802F8780
+/* 802F8740 002F43A0 7D 60 07 74 */ extsb r0, r11
+/* 802F8744 002F43A4 2C 00 00 0A */ cmpwi r0, 0xa
+/* 802F8748 002F43A8 40 82 00 30 */ bne lbl_802F8778
+/* 802F874C 002F43AC 38 65 FF FF */ addi r3, r5, -1
+/* 802F8750 002F43B0 2C 07 00 00 */ cmpwi r7, 0
+/* 802F8754 002F43B4 7C A3 20 50 */ subf r5, r3, r4
+/* 802F8758 002F43B8 38 04 00 01 */ addi r0, r4, 1
+/* 802F875C 002F43BC 7C 64 18 50 */ subf r3, r4, r3
+/* 802F8760 002F43C0 7C A3 18 F8 */ nor r3, r5, r3
+/* 802F8764 002F43C4 7C 63 FE 70 */ srawi r3, r3, 0x1f
+/* 802F8768 002F43C8 7C 0A 18 78 */ andc r10, r0, r3
+/* 802F876C 002F43CC 41 82 00 0C */ beq lbl_802F8778
+/* 802F8770 002F43D0 38 00 00 02 */ li r0, 2
+/* 802F8774 002F43D4 90 07 00 00 */ stw r0, 0(r7)
+lbl_802F8778:
+/* 802F8778 002F43D8 7D 43 53 78 */ mr r3, r10
+/* 802F877C 002F43DC 48 00 00 84 */ b lbl_802F8800
+lbl_802F8780:
+/* 802F8780 002F43E0 7D 60 07 74 */ extsb r0, r11
+/* 802F8784 002F43E4 2C 00 00 0D */ cmpwi r0, 0xd
+/* 802F8788 002F43E8 40 82 00 30 */ bne lbl_802F87B8
+/* 802F878C 002F43EC 39 25 FF FF */ addi r9, r5, -1
+/* 802F8790 002F43F0 2C 07 00 00 */ cmpwi r7, 0
+/* 802F8794 002F43F4 7D 49 20 50 */ subf r10, r9, r4
+/* 802F8798 002F43F8 38 04 00 01 */ addi r0, r4, 1
+/* 802F879C 002F43FC 7D 24 48 50 */ subf r9, r4, r9
+/* 802F87A0 002F4400 3B C0 00 01 */ li r30, 1
+/* 802F87A4 002F4404 7D 49 48 F8 */ nor r9, r10, r9
+/* 802F87A8 002F4408 7D 29 FE 70 */ srawi r9, r9, 0x1f
+/* 802F87AC 002F440C 7C 0A 48 78 */ andc r10, r0, r9
+/* 802F87B0 002F4410 41 82 00 08 */ beq lbl_802F87B8
+/* 802F87B4 002F4414 91 07 00 00 */ stw r8, 0(r7)
+lbl_802F87B8:
+/* 802F87B8 002F4418 7D 60 07 74 */ extsb r0, r11
+/* 802F87BC 002F441C 2C 00 00 0A */ cmpwi r0, 0xa
+/* 802F87C0 002F4420 40 82 00 34 */ bne lbl_802F87F4
+/* 802F87C4 002F4424 38 65 FF FF */ addi r3, r5, -1
+/* 802F87C8 002F4428 2C 07 00 00 */ cmpwi r7, 0
+/* 802F87CC 002F442C 7C A3 20 50 */ subf r5, r3, r4
+/* 802F87D0 002F4430 38 04 00 01 */ addi r0, r4, 1
+/* 802F87D4 002F4434 7C 64 18 50 */ subf r3, r4, r3
+/* 802F87D8 002F4438 7C A3 18 F8 */ nor r3, r5, r3
+/* 802F87DC 002F443C 7C 63 FE 70 */ srawi r3, r3, 0x1f
+/* 802F87E0 002F4440 7C 03 18 78 */ andc r3, r0, r3
+/* 802F87E4 002F4444 41 82 00 1C */ beq lbl_802F8800
+/* 802F87E8 002F4448 38 00 00 01 */ li r0, 1
+/* 802F87EC 002F444C 90 07 00 00 */ stw r0, 0(r7)
+/* 802F87F0 002F4450 48 00 00 10 */ b lbl_802F8800
+lbl_802F87F4:
+/* 802F87F4 002F4454 38 84 00 01 */ addi r4, r4, 1
+/* 802F87F8 002F4458 42 00 FE D0 */ bdnz lbl_802F86C8
+lbl_802F87FC:
+/* 802F87FC 002F445C 38 60 FF FF */ li r3, -1
+lbl_802F8800:
+/* 802F8800 002F4460 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F8804 002F4464 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802F8808 002F4468 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F880C 002F446C 4E 80 00 20 */ blr
+
+.global NHTTPi_skipSpaceHdrRecvBuf
+NHTTPi_skipSpaceHdrRecvBuf:
+/* 802F8810 002F4470 7C 04 28 00 */ cmpw r4, r5
+/* 802F8814 002F4474 40 80 00 EC */ bge lbl_802F8900
+/* 802F8818 002F4478 2C 04 04 00 */ cmpwi r4, 0x400
+/* 802F881C 002F447C 40 80 00 10 */ bge lbl_802F882C
+/* 802F8820 002F4480 7C 86 23 78 */ mr r6, r4
+/* 802F8824 002F4484 38 E0 00 00 */ li r7, 0
+/* 802F8828 002F4488 48 00 00 60 */ b lbl_802F8888
+lbl_802F882C:
+/* 802F882C 002F448C 38 04 FC 00 */ addi r0, r4, -1024
+/* 802F8830 002F4490 80 E3 00 34 */ lwz r7, 0x34(r3)
+/* 802F8834 002F4494 7C 06 4E 71 */ srawi. r6, r0, 9
+/* 802F8838 002F4498 41 82 00 48 */ beq lbl_802F8880
+/* 802F883C 002F449C 54 C0 E8 FF */ rlwinm. r0, r6, 0x1d, 3, 0x1f
+/* 802F8840 002F44A0 7C 09 03 A6 */ mtctr r0
+/* 802F8844 002F44A4 41 82 00 30 */ beq lbl_802F8874
+lbl_802F8848:
+/* 802F8848 002F44A8 80 E7 00 00 */ lwz r7, 0(r7)
+/* 802F884C 002F44AC 80 E7 00 00 */ lwz r7, 0(r7)
+/* 802F8850 002F44B0 80 E7 00 00 */ lwz r7, 0(r7)
+/* 802F8854 002F44B4 80 E7 00 00 */ lwz r7, 0(r7)
+/* 802F8858 002F44B8 80 E7 00 00 */ lwz r7, 0(r7)
+/* 802F885C 002F44BC 80 E7 00 00 */ lwz r7, 0(r7)
+/* 802F8860 002F44C0 80 E7 00 00 */ lwz r7, 0(r7)
+/* 802F8864 002F44C4 80 E7 00 00 */ lwz r7, 0(r7)
+/* 802F8868 002F44C8 42 00 FF E0 */ bdnz lbl_802F8848
+/* 802F886C 002F44CC 70 C6 00 07 */ andi. r6, r6, 7
+/* 802F8870 002F44D0 41 82 00 10 */ beq lbl_802F8880
+lbl_802F8874:
+/* 802F8874 002F44D4 7C C9 03 A6 */ mtctr r6
+lbl_802F8878:
+/* 802F8878 002F44D8 80 E7 00 00 */ lwz r7, 0(r7)
+/* 802F887C 002F44DC 42 00 FF FC */ bdnz lbl_802F8878
+lbl_802F8880:
+/* 802F8880 002F44E0 38 04 FC 00 */ addi r0, r4, -1024
+/* 802F8884 002F44E4 54 06 05 FE */ clrlwi r6, r0, 0x17
+lbl_802F8888:
+/* 802F8888 002F44E8 7C 04 28 50 */ subf r0, r4, r5
+/* 802F888C 002F44EC 7C 09 03 A6 */ mtctr r0
+/* 802F8890 002F44F0 7C 04 28 00 */ cmpw r4, r5
+/* 802F8894 002F44F4 40 80 00 6C */ bge lbl_802F8900
+lbl_802F8898:
+/* 802F8898 002F44F8 2C 07 00 00 */ cmpwi r7, 0
+/* 802F889C 002F44FC 40 82 00 2C */ bne lbl_802F88C8
+/* 802F88A0 002F4500 2C 06 04 00 */ cmpwi r6, 0x400
+/* 802F88A4 002F4504 40 80 00 18 */ bge lbl_802F88BC
+/* 802F88A8 002F4508 7C A3 32 14 */ add r5, r3, r6
+/* 802F88AC 002F450C 38 C6 00 01 */ addi r6, r6, 1
+/* 802F88B0 002F4510 88 05 00 38 */ lbz r0, 0x38(r5)
+/* 802F88B4 002F4514 7C 00 07 74 */ extsb r0, r0
+/* 802F88B8 002F4518 48 00 00 2C */ b lbl_802F88E4
+lbl_802F88BC:
+/* 802F88BC 002F451C 80 E3 00 34 */ lwz r7, 0x34(r3)
+/* 802F88C0 002F4520 38 C0 00 00 */ li r6, 0
+/* 802F88C4 002F4524 48 00 00 14 */ b lbl_802F88D8
+lbl_802F88C8:
+/* 802F88C8 002F4528 2C 06 02 00 */ cmpwi r6, 0x200
+/* 802F88CC 002F452C 40 82 00 0C */ bne lbl_802F88D8
+/* 802F88D0 002F4530 38 C0 00 00 */ li r6, 0
+/* 802F88D4 002F4534 80 E7 00 00 */ lwz r7, 0(r7)
+lbl_802F88D8:
+/* 802F88D8 002F4538 7C A7 32 14 */ add r5, r7, r6
+/* 802F88DC 002F453C 38 C6 00 01 */ addi r6, r6, 1
+/* 802F88E0 002F4540 88 05 00 04 */ lbz r0, 4(r5)
+lbl_802F88E4:
+/* 802F88E4 002F4544 7C 00 07 74 */ extsb r0, r0
+/* 802F88E8 002F4548 2C 00 00 20 */ cmpwi r0, 0x20
+/* 802F88EC 002F454C 41 82 00 0C */ beq lbl_802F88F8
+/* 802F88F0 002F4550 7C 83 23 78 */ mr r3, r4
+/* 802F88F4 002F4554 4E 80 00 20 */ blr
+lbl_802F88F8:
+/* 802F88F8 002F4558 38 84 00 01 */ addi r4, r4, 1
+/* 802F88FC 002F455C 42 00 FF 9C */ bdnz lbl_802F8898
+lbl_802F8900:
+/* 802F8900 002F4560 38 60 FF FF */ li r3, -1
+/* 802F8904 002F4564 4E 80 00 20 */ blr
+
+.global NHTTPi_compareTokenN_HdrRecvBuf
+NHTTPi_compareTokenN_HdrRecvBuf:
+/* 802F8908 002F4568 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802F890C 002F456C 7C 08 02 A6 */ mflr r0
+/* 802F8910 002F4570 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802F8914 002F4574 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F8918 002F4578 4B EC E8 09 */ bl _savegpr_25
+/* 802F891C 002F457C 7C 04 28 00 */ cmpw r4, r5
+/* 802F8920 002F4580 40 80 01 BC */ bge lbl_802F8ADC
+/* 802F8924 002F4584 2C 04 04 00 */ cmpwi r4, 0x400
+/* 802F8928 002F4588 40 80 00 10 */ bge lbl_802F8938
+/* 802F892C 002F458C 7C 89 23 78 */ mr r9, r4
+/* 802F8930 002F4590 39 00 00 00 */ li r8, 0
+/* 802F8934 002F4594 48 00 00 60 */ b lbl_802F8994
+lbl_802F8938:
+/* 802F8938 002F4598 38 04 FC 00 */ addi r0, r4, -1024
+/* 802F893C 002F459C 81 03 00 34 */ lwz r8, 0x34(r3)
+/* 802F8940 002F45A0 7C 09 4E 71 */ srawi. r9, r0, 9
+/* 802F8944 002F45A4 41 82 00 48 */ beq lbl_802F898C
+/* 802F8948 002F45A8 55 20 E8 FF */ rlwinm. r0, r9, 0x1d, 3, 0x1f
+/* 802F894C 002F45AC 7C 09 03 A6 */ mtctr r0
+/* 802F8950 002F45B0 41 82 00 30 */ beq lbl_802F8980
+lbl_802F8954:
+/* 802F8954 002F45B4 81 08 00 00 */ lwz r8, 0(r8)
+/* 802F8958 002F45B8 81 08 00 00 */ lwz r8, 0(r8)
+/* 802F895C 002F45BC 81 08 00 00 */ lwz r8, 0(r8)
+/* 802F8960 002F45C0 81 08 00 00 */ lwz r8, 0(r8)
+/* 802F8964 002F45C4 81 08 00 00 */ lwz r8, 0(r8)
+/* 802F8968 002F45C8 81 08 00 00 */ lwz r8, 0(r8)
+/* 802F896C 002F45CC 81 08 00 00 */ lwz r8, 0(r8)
+/* 802F8970 002F45D0 81 08 00 00 */ lwz r8, 0(r8)
+/* 802F8974 002F45D4 42 00 FF E0 */ bdnz lbl_802F8954
+/* 802F8978 002F45D8 71 29 00 07 */ andi. r9, r9, 7
+/* 802F897C 002F45DC 41 82 00 10 */ beq lbl_802F898C
+lbl_802F8980:
+/* 802F8980 002F45E0 7D 29 03 A6 */ mtctr r9
+lbl_802F8984:
+/* 802F8984 002F45E4 81 08 00 00 */ lwz r8, 0(r8)
+/* 802F8988 002F45E8 42 00 FF FC */ bdnz lbl_802F8984
+lbl_802F898C:
+/* 802F898C 002F45EC 38 04 FC 00 */ addi r0, r4, -1024
+/* 802F8990 002F45F0 54 09 05 FE */ clrlwi r9, r0, 0x17
+lbl_802F8994:
+/* 802F8994 002F45F4 2C 08 00 00 */ cmpwi r8, 0
+/* 802F8998 002F45F8 40 82 00 2C */ bne lbl_802F89C4
+/* 802F899C 002F45FC 2C 09 04 00 */ cmpwi r9, 0x400
+/* 802F89A0 002F4600 40 80 00 18 */ bge lbl_802F89B8
+/* 802F89A4 002F4604 7D 43 4A 14 */ add r10, r3, r9
+/* 802F89A8 002F4608 39 29 00 01 */ addi r9, r9, 1
+/* 802F89AC 002F460C 88 0A 00 38 */ lbz r0, 0x38(r10)
+/* 802F89B0 002F4610 7C 19 07 74 */ extsb r25, r0
+/* 802F89B4 002F4614 48 00 00 2C */ b lbl_802F89E0
+lbl_802F89B8:
+/* 802F89B8 002F4618 81 03 00 34 */ lwz r8, 0x34(r3)
+/* 802F89BC 002F461C 39 20 00 00 */ li r9, 0
+/* 802F89C0 002F4620 48 00 00 14 */ b lbl_802F89D4
+lbl_802F89C4:
+/* 802F89C4 002F4624 2C 09 02 00 */ cmpwi r9, 0x200
+/* 802F89C8 002F4628 40 82 00 0C */ bne lbl_802F89D4
+/* 802F89CC 002F462C 39 20 00 00 */ li r9, 0
+/* 802F89D0 002F4630 81 08 00 00 */ lwz r8, 0(r8)
+lbl_802F89D4:
+/* 802F89D4 002F4634 7D 48 4A 14 */ add r10, r8, r9
+/* 802F89D8 002F4638 39 29 00 01 */ addi r9, r9, 1
+/* 802F89DC 002F463C 8B 2A 00 04 */ lbz r25, 4(r10)
+lbl_802F89E0:
+/* 802F89E0 002F4640 3B 80 00 41 */ li r28, 0x41
+/* 802F89E4 002F4644 3B E0 00 5A */ li r31, 0x5a
+/* 802F89E8 002F4648 7C E7 07 74 */ extsb r7, r7
+/* 802F89EC 002F464C 38 05 FF FF */ addi r0, r5, -1
+/* 802F89F0 002F4650 3B A0 00 00 */ li r29, 0
+/* 802F89F4 002F4654 48 00 00 80 */ b lbl_802F8A74
+lbl_802F89F8:
+/* 802F89F8 002F4658 7C A5 07 75 */ extsb. r5, r5
+/* 802F89FC 002F465C 41 82 00 1C */ beq lbl_802F8A18
+/* 802F8A00 002F4660 2C 05 00 20 */ cmpwi r5, 0x20
+/* 802F8A04 002F4664 41 82 00 14 */ beq lbl_802F8A18
+/* 802F8A08 002F4668 7C 05 38 00 */ cmpw r5, r7
+/* 802F8A0C 002F466C 41 82 00 0C */ beq lbl_802F8A18
+/* 802F8A10 002F4670 7C 04 00 00 */ cmpw r4, r0
+/* 802F8A14 002F4674 40 82 00 0C */ bne lbl_802F8A20
+lbl_802F8A18:
+/* 802F8A18 002F4678 38 60 00 00 */ li r3, 0
+/* 802F8A1C 002F467C 48 00 00 C4 */ b lbl_802F8AE0
+lbl_802F8A20:
+/* 802F8A20 002F4680 2C 08 00 00 */ cmpwi r8, 0
+/* 802F8A24 002F4684 40 82 00 2C */ bne lbl_802F8A50
+/* 802F8A28 002F4688 2C 09 04 00 */ cmpwi r9, 0x400
+/* 802F8A2C 002F468C 40 80 00 18 */ bge lbl_802F8A44
+/* 802F8A30 002F4690 7C A3 4A 14 */ add r5, r3, r9
+/* 802F8A34 002F4694 39 29 00 01 */ addi r9, r9, 1
+/* 802F8A38 002F4698 88 A5 00 38 */ lbz r5, 0x38(r5)
+/* 802F8A3C 002F469C 7C B9 07 74 */ extsb r25, r5
+/* 802F8A40 002F46A0 48 00 00 2C */ b lbl_802F8A6C
+lbl_802F8A44:
+/* 802F8A44 002F46A4 81 03 00 34 */ lwz r8, 0x34(r3)
+/* 802F8A48 002F46A8 39 20 00 00 */ li r9, 0
+/* 802F8A4C 002F46AC 48 00 00 14 */ b lbl_802F8A60
+lbl_802F8A50:
+/* 802F8A50 002F46B0 2C 09 02 00 */ cmpwi r9, 0x200
+/* 802F8A54 002F46B4 40 82 00 0C */ bne lbl_802F8A60
+/* 802F8A58 002F46B8 39 20 00 00 */ li r9, 0
+/* 802F8A5C 002F46BC 81 08 00 00 */ lwz r8, 0(r8)
+lbl_802F8A60:
+/* 802F8A60 002F46C0 7C A8 4A 14 */ add r5, r8, r9
+/* 802F8A64 002F46C4 39 29 00 01 */ addi r9, r9, 1
+/* 802F8A68 002F46C8 8B 25 00 04 */ lbz r25, 4(r5)
+lbl_802F8A6C:
+/* 802F8A6C 002F46CC 38 84 00 01 */ addi r4, r4, 1
+/* 802F8A70 002F46D0 38 C6 00 01 */ addi r6, r6, 1
+lbl_802F8A74:
+/* 802F8A74 002F46D4 88 A6 00 00 */ lbz r5, 0(r6)
+/* 802F8A78 002F46D8 7C BE 07 74 */ extsb r30, r5
+/* 802F8A7C 002F46DC 7F CC FE 70 */ srawi r12, r30, 0x1f
+/* 802F8A80 002F46E0 7D 5C F0 10 */ subfc r10, r28, r30
+/* 802F8A84 002F46E4 57 CB 0F FE */ srwi r11, r30, 0x1f
+/* 802F8A88 002F46E8 7F 6C E9 14 */ adde r27, r12, r29
+/* 802F8A8C 002F46EC 3B 5E 00 20 */ addi r26, r30, 0x20
+/* 802F8A90 002F46F0 7F EC FE 70 */ srawi r12, r31, 0x1f
+/* 802F8A94 002F46F4 7D 5E F8 10 */ subfc r10, r30, r31
+/* 802F8A98 002F46F8 7D 4C 59 14 */ adde r10, r12, r11
+/* 802F8A9C 002F46FC 7F 6A 50 39 */ and. r10, r27, r10
+/* 802F8AA0 002F4700 40 82 00 08 */ bne lbl_802F8AA8
+/* 802F8AA4 002F4704 7F DA F3 78 */ mr r26, r30
+lbl_802F8AA8:
+/* 802F8AA8 002F4708 7F 3B 07 74 */ extsb r27, r25
+/* 802F8AAC 002F470C 7F 6C FE 70 */ srawi r12, r27, 0x1f
+/* 802F8AB0 002F4710 7D 5C D8 10 */ subfc r10, r28, r27
+/* 802F8AB4 002F4714 57 6B 0F FE */ srwi r11, r27, 0x1f
+/* 802F8AB8 002F4718 7F CC E9 14 */ adde r30, r12, r29
+/* 802F8ABC 002F471C 7F EC FE 70 */ srawi r12, r31, 0x1f
+/* 802F8AC0 002F4720 7D 5B F8 10 */ subfc r10, r27, r31
+/* 802F8AC4 002F4724 7D 4C 59 14 */ adde r10, r12, r11
+/* 802F8AC8 002F4728 7F CA 50 39 */ and. r10, r30, r10
+/* 802F8ACC 002F472C 41 82 00 08 */ beq lbl_802F8AD4
+/* 802F8AD0 002F4730 3B 7B 00 20 */ addi r27, r27, 0x20
+lbl_802F8AD4:
+/* 802F8AD4 002F4734 7C 1B D0 00 */ cmpw r27, r26
+/* 802F8AD8 002F4738 41 82 FF 20 */ beq lbl_802F89F8
+lbl_802F8ADC:
+/* 802F8ADC 002F473C 38 60 FF FF */ li r3, -1
+lbl_802F8AE0:
+/* 802F8AE0 002F4740 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F8AE4 002F4744 4B EC E6 89 */ bl _restgpr_25
+/* 802F8AE8 002F4748 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802F8AEC 002F474C 7C 08 03 A6 */ mtlr r0
+/* 802F8AF0 002F4750 38 21 00 30 */ addi r1, r1, 0x30
+/* 802F8AF4 002F4754 4E 80 00 20 */ blr
+
+.global NHTTPi_loadFromHdrRecvBuf
+NHTTPi_loadFromHdrRecvBuf:
+/* 802F8AF8 002F4758 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F8AFC 002F475C 7C 08 02 A6 */ mflr r0
+/* 802F8B00 002F4760 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F8B04 002F4764 39 61 00 20 */ addi r11, r1, 0x20
+/* 802F8B08 002F4768 4B EC E6 21 */ bl _savegpr_27
+/* 802F8B0C 002F476C 80 03 00 00 */ lwz r0, 0(r3)
+/* 802F8B10 002F4770 7C E5 32 14 */ add r7, r5, r6
+/* 802F8B14 002F4774 7C 7E 1B 78 */ mr r30, r3
+/* 802F8B18 002F4778 7C 9B 23 78 */ mr r27, r4
+/* 802F8B1C 002F477C 7C 07 00 00 */ cmpw r7, r0
+/* 802F8B20 002F4780 7C BC 2B 78 */ mr r28, r5
+/* 802F8B24 002F4784 7C DD 33 78 */ mr r29, r6
+/* 802F8B28 002F4788 41 81 00 F8 */ bgt lbl_802F8C20
+/* 802F8B2C 002F478C 2C 06 00 00 */ cmpwi r6, 0
+/* 802F8B30 002F4790 41 82 00 E8 */ beq lbl_802F8C18
+/* 802F8B34 002F4794 2C 05 04 00 */ cmpwi r5, 0x400
+/* 802F8B38 002F4798 40 80 00 38 */ bge lbl_802F8B70
+/* 802F8B3C 002F479C 20 05 04 00 */ subfic r0, r5, 0x400
+/* 802F8B40 002F47A0 7F BF EB 78 */ mr r31, r29
+/* 802F8B44 002F47A4 7C 06 00 00 */ cmpw r6, r0
+/* 802F8B48 002F47A8 40 81 00 08 */ ble lbl_802F8B50
+/* 802F8B4C 002F47AC 7C 1F 03 78 */ mr r31, r0
+lbl_802F8B50:
+/* 802F8B50 002F47B0 7C 9E 2A 14 */ add r4, r30, r5
+/* 802F8B54 002F47B4 7F 63 DB 78 */ mr r3, r27
+/* 802F8B58 002F47B8 7F E5 FB 78 */ mr r5, r31
+/* 802F8B5C 002F47BC 38 84 00 38 */ addi r4, r4, 0x38
+/* 802F8B60 002F47C0 48 00 15 7D */ bl func_802FA0DC
+/* 802F8B64 002F47C4 7F 9C FA 14 */ add r28, r28, r31
+/* 802F8B68 002F47C8 7F BF E8 50 */ subf r29, r31, r29
+/* 802F8B6C 002F47CC 7F 7B FA 14 */ add r27, r27, r31
+lbl_802F8B70:
+/* 802F8B70 002F47D0 2C 1D 00 00 */ cmpwi r29, 0
+/* 802F8B74 002F47D4 41 82 00 A4 */ beq lbl_802F8C18
+/* 802F8B78 002F47D8 3B 9C FC 00 */ addi r28, r28, -1024
+/* 802F8B7C 002F47DC 83 DE 00 34 */ lwz r30, 0x34(r30)
+/* 802F8B80 002F47E0 7F 83 4E 71 */ srawi. r3, r28, 9
+/* 802F8B84 002F47E4 57 9C 05 FE */ clrlwi r28, r28, 0x17
+/* 802F8B88 002F47E8 41 82 00 88 */ beq lbl_802F8C10
+/* 802F8B8C 002F47EC 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
+/* 802F8B90 002F47F0 7C 09 03 A6 */ mtctr r0
+/* 802F8B94 002F47F4 41 82 00 30 */ beq lbl_802F8BC4
+lbl_802F8B98:
+/* 802F8B98 002F47F8 83 DE 00 00 */ lwz r30, 0(r30)
+/* 802F8B9C 002F47FC 83 DE 00 00 */ lwz r30, 0(r30)
+/* 802F8BA0 002F4800 83 DE 00 00 */ lwz r30, 0(r30)
+/* 802F8BA4 002F4804 83 DE 00 00 */ lwz r30, 0(r30)
+/* 802F8BA8 002F4808 83 DE 00 00 */ lwz r30, 0(r30)
+/* 802F8BAC 002F480C 83 DE 00 00 */ lwz r30, 0(r30)
+/* 802F8BB0 002F4810 83 DE 00 00 */ lwz r30, 0(r30)
+/* 802F8BB4 002F4814 83 DE 00 00 */ lwz r30, 0(r30)
+/* 802F8BB8 002F4818 42 00 FF E0 */ bdnz lbl_802F8B98
+/* 802F8BBC 002F481C 70 63 00 07 */ andi. r3, r3, 7
+/* 802F8BC0 002F4820 41 82 00 50 */ beq lbl_802F8C10
+lbl_802F8BC4:
+/* 802F8BC4 002F4824 7C 69 03 A6 */ mtctr r3
+lbl_802F8BC8:
+/* 802F8BC8 002F4828 83 DE 00 00 */ lwz r30, 0(r30)
+/* 802F8BCC 002F482C 42 00 FF FC */ bdnz lbl_802F8BC8
+/* 802F8BD0 002F4830 48 00 00 40 */ b lbl_802F8C10
+lbl_802F8BD4:
+/* 802F8BD4 002F4834 20 1C 02 00 */ subfic r0, r28, 0x200
+/* 802F8BD8 002F4838 7F BF EB 78 */ mr r31, r29
+/* 802F8BDC 002F483C 7C 1D 00 00 */ cmpw r29, r0
+/* 802F8BE0 002F4840 40 81 00 08 */ ble lbl_802F8BE8
+/* 802F8BE4 002F4844 7C 1F 03 78 */ mr r31, r0
+lbl_802F8BE8:
+/* 802F8BE8 002F4848 7C 9E E2 14 */ add r4, r30, r28
+/* 802F8BEC 002F484C 7F 63 DB 78 */ mr r3, r27
+/* 802F8BF0 002F4850 7F E5 FB 78 */ mr r5, r31
+/* 802F8BF4 002F4854 38 84 00 04 */ addi r4, r4, 4
+/* 802F8BF8 002F4858 48 00 14 E5 */ bl func_802FA0DC
+/* 802F8BFC 002F485C 7F 9C FA 14 */ add r28, r28, r31
+/* 802F8C00 002F4860 83 DE 00 00 */ lwz r30, 0(r30)
+/* 802F8C04 002F4864 57 9C 05 FE */ clrlwi r28, r28, 0x17
+/* 802F8C08 002F4868 7F BF E8 50 */ subf r29, r31, r29
+/* 802F8C0C 002F486C 7F 7B FA 14 */ add r27, r27, r31
+lbl_802F8C10:
+/* 802F8C10 002F4870 2C 1D 00 00 */ cmpwi r29, 0
+/* 802F8C14 002F4874 40 82 FF C0 */ bne lbl_802F8BD4
+lbl_802F8C18:
+/* 802F8C18 002F4878 38 60 00 01 */ li r3, 1
+/* 802F8C1C 002F487C 48 00 00 08 */ b lbl_802F8C24
+lbl_802F8C20:
+/* 802F8C20 002F4880 38 60 00 00 */ li r3, 0
+lbl_802F8C24:
+/* 802F8C24 002F4884 39 61 00 20 */ addi r11, r1, 0x20
+/* 802F8C28 002F4888 4B EC E5 4D */ bl _restgpr_27
+/* 802F8C2C 002F488C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F8C30 002F4890 7C 08 03 A6 */ mtlr r0
+/* 802F8C34 002F4894 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F8C38 002F4898 4E 80 00 20 */ blr
+
+.global NHTTPi_isRecvBufFull
+NHTTPi_isRecvBufFull:
+/* 802F8C3C 002F489C 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 802F8C40 002F48A0 7C 03 20 50 */ subf r0, r3, r4
+/* 802F8C44 002F48A4 7C 83 1B 38 */ orc r3, r4, r3
+/* 802F8C48 002F48A8 54 00 F8 7E */ srwi r0, r0, 1
+/* 802F8C4C 002F48AC 7C 00 18 50 */ subf r0, r0, r3
+/* 802F8C50 002F48B0 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 802F8C54 002F48B4 4E 80 00 20 */ blr
+
+.global NHTTPi_RecvBuf
+NHTTPi_RecvBuf:
+/* 802F8C58 002F48B8 81 03 00 2C */ lwz r8, 0x2c(r3)
+/* 802F8C5C 002F48BC 7C C7 33 78 */ mr r7, r6
+/* 802F8C60 002F48C0 7C A9 2B 78 */ mr r9, r5
+/* 802F8C64 002F48C4 80 C8 00 28 */ lwz r6, 0x28(r8)
+/* 802F8C68 002F48C8 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 802F8C6C 002F48CC 7C A6 2A 14 */ add r5, r6, r5
+/* 802F8C70 002F48D0 7C C9 00 50 */ subf r6, r9, r0
+/* 802F8C74 002F48D4 48 00 10 B0 */ b func_802F9D24
+
+.global NHTTPi_RecvBufN
+NHTTPi_RecvBufN:
+/* 802F8C78 002F48D8 81 23 00 2C */ lwz r9, 0x2c(r3)
+/* 802F8C7C 002F48DC 80 09 00 1C */ lwz r0, 0x1c(r9)
+/* 802F8C80 002F48E0 7C 00 28 40 */ cmplw r0, r5
+/* 802F8C84 002F48E4 41 81 00 0C */ bgt lbl_802F8C90
+/* 802F8C88 002F48E8 38 60 FC 15 */ li r3, -1003
+/* 802F8C8C 002F48EC 4E 80 00 20 */ blr
+lbl_802F8C90:
+/* 802F8C90 002F48F0 81 09 00 1C */ lwz r8, 0x1c(r9)
+/* 802F8C94 002F48F4 80 09 00 28 */ lwz r0, 0x28(r9)
+/* 802F8C98 002F48F8 7D 05 40 50 */ subf r8, r5, r8
+/* 802F8C9C 002F48FC 7C 06 40 00 */ cmpw r6, r8
+/* 802F8CA0 002F4900 7C A0 2A 14 */ add r5, r0, r5
+/* 802F8CA4 002F4904 40 81 00 08 */ ble lbl_802F8CAC
+/* 802F8CA8 002F4908 7D 06 43 78 */ mr r6, r8
+lbl_802F8CAC:
+/* 802F8CAC 002F490C 48 00 10 78 */ b func_802F9D24
+/* 802F8CB0 002F4910 4E 80 00 20 */ blr
diff --git a/asm/SDK/NHTTP/NHTTP_request.s b/asm/SDK/NHTTP/NHTTP_request.s
new file mode 100644
index 0000000..7551415
--- /dev/null
+++ b/asm/SDK/NHTTP/NHTTP_request.s
@@ -0,0 +1,718 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global NHTTPi_InitRequestInfo
+NHTTPi_InitRequestInfo:
+/* 802F8CB4 002F4914 38 00 00 00 */ li r0, 0
+/* 802F8CB8 002F4918 90 03 00 00 */ stw r0, 0(r3)
+/* 802F8CBC 002F491C 4E 80 00 20 */ blr
+
+.global NHTTP_CreateRequest
+NHTTP_CreateRequest:
+/* 802F8CC0 002F4920 94 21 FE C0 */ stwu r1, -0x140(r1)
+/* 802F8CC4 002F4924 7C 08 02 A6 */ mflr r0
+/* 802F8CC8 002F4928 90 01 01 44 */ stw r0, 0x144(r1)
+/* 802F8CCC 002F492C 39 61 01 40 */ addi r11, r1, 0x140
+/* 802F8CD0 002F4930 4B EC E4 3D */ bl _savegpr_20
+/* 802F8CD4 002F4934 2C 05 00 03 */ cmpwi r5, 3
+/* 802F8CD8 002F4938 7C 75 1B 78 */ mr r21, r3
+/* 802F8CDC 002F493C 7C 9C 23 78 */ mr r28, r4
+/* 802F8CE0 002F4940 7C B6 2B 78 */ mr r22, r5
+/* 802F8CE4 002F4944 7C DB 33 78 */ mr r27, r6
+/* 802F8CE8 002F4948 7C FA 3B 78 */ mr r26, r7
+/* 802F8CEC 002F494C 7D 17 43 78 */ mr r23, r8
+/* 802F8CF0 002F4950 7D 39 4B 78 */ mr r25, r9
+/* 802F8CF4 002F4954 7D 54 53 78 */ mr r20, r10
+/* 802F8CF8 002F4958 3B 00 00 00 */ li r24, 0
+/* 802F8CFC 002F495C 40 80 00 0C */ bge lbl_802F8D08
+/* 802F8D00 002F4960 2C 05 00 00 */ cmpwi r5, 0
+/* 802F8D04 002F4964 40 80 00 14 */ bge lbl_802F8D18
+lbl_802F8D08:
+/* 802F8D08 002F4968 7E A3 AB 78 */ mr r3, r21
+/* 802F8D0C 002F496C 38 80 00 0B */ li r4, 0xb
+/* 802F8D10 002F4970 4B FF EE F1 */ bl NHTTPi_SetError
+/* 802F8D14 002F4974 48 00 05 08 */ b lbl_802F921C
+lbl_802F8D18:
+/* 802F8D18 002F4978 38 60 02 48 */ li r3, 0x248
+/* 802F8D1C 002F497C 38 80 00 04 */ li r4, 4
+/* 802F8D20 002F4980 4B FF EE 41 */ bl NHTTPi_alloc
+/* 802F8D24 002F4984 2C 03 00 00 */ cmpwi r3, 0
+/* 802F8D28 002F4988 7C 78 1B 78 */ mr r24, r3
+/* 802F8D2C 002F498C 40 82 00 14 */ bne lbl_802F8D40
+/* 802F8D30 002F4990 7E A3 AB 78 */ mr r3, r21
+/* 802F8D34 002F4994 38 80 00 01 */ li r4, 1
+/* 802F8D38 002F4998 4B FF EE C9 */ bl NHTTPi_SetError
+/* 802F8D3C 002F499C 48 00 04 E0 */ b lbl_802F921C
+lbl_802F8D40:
+/* 802F8D40 002F49A0 38 80 02 48 */ li r4, 0x248
+/* 802F8D44 002F49A4 48 00 13 A5 */ bl func_802FA0E8
+/* 802F8D48 002F49A8 38 60 04 3C */ li r3, 0x43c
+/* 802F8D4C 002F49AC 38 80 00 04 */ li r4, 4
+/* 802F8D50 002F49B0 4B FF EE 11 */ bl NHTTPi_alloc
+/* 802F8D54 002F49B4 2C 03 00 00 */ cmpwi r3, 0
+/* 802F8D58 002F49B8 90 78 00 2C */ stw r3, 0x2c(r24)
+/* 802F8D5C 002F49BC 40 82 00 14 */ bne lbl_802F8D70
+/* 802F8D60 002F49C0 7E A3 AB 78 */ mr r3, r21
+/* 802F8D64 002F49C4 38 80 00 01 */ li r4, 1
+/* 802F8D68 002F49C8 4B FF EE 99 */ bl NHTTPi_SetError
+/* 802F8D6C 002F49CC 48 00 04 B0 */ b lbl_802F921C
+lbl_802F8D70:
+/* 802F8D70 002F49D0 38 80 04 3C */ li r4, 0x43c
+/* 802F8D74 002F49D4 48 00 13 75 */ bl func_802FA0E8
+/* 802F8D78 002F49D8 80 98 00 2C */ lwz r4, 0x2c(r24)
+/* 802F8D7C 002F49DC 7F 83 E3 78 */ mr r3, r28
+/* 802F8D80 002F49E0 93 64 00 28 */ stw r27, 0x28(r4)
+/* 802F8D84 002F49E4 80 98 00 2C */ lwz r4, 0x2c(r24)
+/* 802F8D88 002F49E8 93 44 00 1C */ stw r26, 0x1c(r4)
+/* 802F8D8C 002F49EC 80 98 00 2C */ lwz r4, 0x2c(r24)
+/* 802F8D90 002F49F0 93 24 00 2C */ stw r25, 0x2c(r4)
+/* 802F8D94 002F49F4 80 98 00 2C */ lwz r4, 0x2c(r24)
+/* 802F8D98 002F49F8 92 84 00 30 */ stw r20, 0x30(r4)
+/* 802F8D9C 002F49FC 48 00 13 45 */ bl func_802FA0E0
+/* 802F8DA0 002F4A00 2C 03 00 07 */ cmpwi r3, 7
+/* 802F8DA4 002F4A04 7C 74 1B 78 */ mr r20, r3
+/* 802F8DA8 002F4A08 41 81 00 14 */ bgt lbl_802F8DBC
+/* 802F8DAC 002F4A0C 7E A3 AB 78 */ mr r3, r21
+/* 802F8DB0 002F4A10 38 80 00 04 */ li r4, 4
+/* 802F8DB4 002F4A14 4B FF EE 4D */ bl NHTTPi_SetError
+/* 802F8DB8 002F4A18 48 00 04 64 */ b lbl_802F921C
+lbl_802F8DBC:
+/* 802F8DBC 002F4A1C 7E 84 A3 78 */ mr r4, r20
+/* 802F8DC0 002F4A20 38 61 00 08 */ addi r3, r1, 8
+/* 802F8DC4 002F4A24 48 00 13 25 */ bl func_802FA0E8
+/* 802F8DC8 002F4A28 7F 84 E3 78 */ mr r4, r28
+/* 802F8DCC 002F4A2C 7E 85 A3 78 */ mr r5, r20
+/* 802F8DD0 002F4A30 38 61 00 08 */ addi r3, r1, 8
+/* 802F8DD4 002F4A34 48 00 13 09 */ bl func_802FA0DC
+/* 802F8DD8 002F4A38 38 00 00 50 */ li r0, 0x50
+/* 802F8DDC 002F4A3C 38 61 00 08 */ addi r3, r1, 8
+/* 802F8DE0 002F4A40 90 18 00 20 */ stw r0, 0x20(r24)
+/* 802F8DE4 002F4A44 3B A0 00 07 */ li r29, 7
+/* 802F8DE8 002F4A48 38 8D 8C 18 */ addi r4, r13, lbl_8063DED8-_SDA_BASE_
+/* 802F8DEC 002F4A4C 38 A0 00 07 */ li r5, 7
+/* 802F8DF0 002F4A50 48 00 13 05 */ bl func_802FA0F4
+/* 802F8DF4 002F4A54 2C 03 00 00 */ cmpwi r3, 0
+/* 802F8DF8 002F4A58 41 82 00 44 */ beq lbl_802F8E3C
+/* 802F8DFC 002F4A5C 3C 80 80 44 */ lis r4, lbl_804460B8@ha
+/* 802F8E00 002F4A60 38 61 00 08 */ addi r3, r1, 8
+/* 802F8E04 002F4A64 38 84 60 B8 */ addi r4, r4, lbl_804460B8@l
+/* 802F8E08 002F4A68 38 A0 00 08 */ li r5, 8
+/* 802F8E0C 002F4A6C 48 00 12 E9 */ bl func_802FA0F4
+/* 802F8E10 002F4A70 2C 03 00 00 */ cmpwi r3, 0
+/* 802F8E14 002F4A74 41 82 00 14 */ beq lbl_802F8E28
+/* 802F8E18 002F4A78 7E A3 AB 78 */ mr r3, r21
+/* 802F8E1C 002F4A7C 38 80 00 04 */ li r4, 4
+/* 802F8E20 002F4A80 4B FF ED E1 */ bl NHTTPi_SetError
+/* 802F8E24 002F4A84 48 00 03 F8 */ b lbl_802F921C
+lbl_802F8E28:
+/* 802F8E28 002F4A88 38 60 00 01 */ li r3, 1
+/* 802F8E2C 002F4A8C 38 00 01 BB */ li r0, 0x1bb
+/* 802F8E30 002F4A90 90 78 00 08 */ stw r3, 8(r24)
+/* 802F8E34 002F4A94 3B A0 00 08 */ li r29, 8
+/* 802F8E38 002F4A98 90 18 00 20 */ stw r0, 0x20(r24)
+lbl_802F8E3C:
+/* 802F8E3C 002F4A9C 7F 9D A0 51 */ subf. r28, r29, r20
+/* 802F8E40 002F4AA0 3B 21 00 08 */ addi r25, r1, 8
+/* 802F8E44 002F4AA4 7F 39 EA 14 */ add r25, r25, r29
+/* 802F8E48 002F4AA8 41 81 00 14 */ bgt lbl_802F8E5C
+/* 802F8E4C 002F4AAC 7E A3 AB 78 */ mr r3, r21
+/* 802F8E50 002F4AB0 38 80 00 04 */ li r4, 4
+/* 802F8E54 002F4AB4 4B FF ED AD */ bl NHTTPi_SetError
+/* 802F8E58 002F4AB8 48 00 03 C4 */ b lbl_802F921C
+lbl_802F8E5C:
+/* 802F8E5C 002F4ABC 7F 34 CB 78 */ mr r20, r25
+/* 802F8E60 002F4AC0 3B 40 00 00 */ li r26, 0
+/* 802F8E64 002F4AC4 3B 60 00 00 */ li r27, 0
+/* 802F8E68 002F4AC8 3B C0 00 00 */ li r30, 0
+/* 802F8E6C 002F4ACC 48 00 00 74 */ b lbl_802F8EE0
+lbl_802F8E70:
+/* 802F8E70 002F4AD0 2C 1E 00 02 */ cmpwi r30, 2
+/* 802F8E74 002F4AD4 40 82 00 0C */ bne lbl_802F8E80
+/* 802F8E78 002F4AD8 3B DE FF FF */ addi r30, r30, -1
+/* 802F8E7C 002F4ADC 48 00 00 5C */ b lbl_802F8ED8
+lbl_802F8E80:
+/* 802F8E80 002F4AE0 2C 1E 00 01 */ cmpwi r30, 1
+/* 802F8E84 002F4AE4 40 82 00 40 */ bne lbl_802F8EC4
+/* 802F8E88 002F4AE8 7C 7A CA 14 */ add r3, r26, r25
+/* 802F8E8C 002F4AEC 38 80 00 02 */ li r4, 2
+/* 802F8E90 002F4AF0 38 63 FF FF */ addi r3, r3, -1
+/* 802F8E94 002F4AF4 48 00 14 B1 */ bl func_802FA344
+/* 802F8E98 002F4AF8 7C 60 07 75 */ extsb. r0, r3
+/* 802F8E9C 002F4AFC 3B DE FF FF */ addi r30, r30, -1
+/* 802F8EA0 002F4B00 40 80 00 14 */ bge lbl_802F8EB4
+/* 802F8EA4 002F4B04 7E A3 AB 78 */ mr r3, r21
+/* 802F8EA8 002F4B08 38 80 00 04 */ li r4, 4
+/* 802F8EAC 002F4B0C 4B FF ED 55 */ bl NHTTPi_SetError
+/* 802F8EB0 002F4B10 48 00 03 6C */ b lbl_802F921C
+lbl_802F8EB4:
+/* 802F8EB4 002F4B14 2C 00 00 2F */ cmpwi r0, 0x2f
+/* 802F8EB8 002F4B18 40 82 00 20 */ bne lbl_802F8ED8
+/* 802F8EBC 002F4B1C 3B 7B FF FF */ addi r27, r27, -1
+/* 802F8EC0 002F4B20 48 00 00 34 */ b lbl_802F8EF4
+lbl_802F8EC4:
+/* 802F8EC4 002F4B24 7C 60 07 74 */ extsb r0, r3
+/* 802F8EC8 002F4B28 2C 00 00 25 */ cmpwi r0, 0x25
+/* 802F8ECC 002F4B2C 40 82 00 0C */ bne lbl_802F8ED8
+/* 802F8ED0 002F4B30 3B C0 00 02 */ li r30, 2
+/* 802F8ED4 002F4B34 3B 7B 00 01 */ addi r27, r27, 1
+lbl_802F8ED8:
+/* 802F8ED8 002F4B38 3B 5A 00 01 */ addi r26, r26, 1
+/* 802F8EDC 002F4B3C 3A 94 00 01 */ addi r20, r20, 1
+lbl_802F8EE0:
+/* 802F8EE0 002F4B40 7C 1A E0 00 */ cmpw r26, r28
+/* 802F8EE4 002F4B44 40 80 00 10 */ bge lbl_802F8EF4
+/* 802F8EE8 002F4B48 88 74 00 00 */ lbz r3, 0(r20)
+/* 802F8EEC 002F4B4C 2C 03 00 2F */ cmpwi r3, 0x2f
+/* 802F8EF0 002F4B50 40 82 FF 80 */ bne lbl_802F8E70
+lbl_802F8EF4:
+/* 802F8EF4 002F4B54 2C 1E 00 00 */ cmpwi r30, 0
+/* 802F8EF8 002F4B58 41 82 00 14 */ beq lbl_802F8F0C
+/* 802F8EFC 002F4B5C 7E A3 AB 78 */ mr r3, r21
+/* 802F8F00 002F4B60 38 80 00 04 */ li r4, 4
+/* 802F8F04 002F4B64 4B FF EC FD */ bl NHTTPi_SetError
+/* 802F8F08 002F4B68 48 00 03 14 */ b lbl_802F921C
+lbl_802F8F0C:
+/* 802F8F0C 002F4B6C 57 63 08 3C */ slwi r3, r27, 1
+/* 802F8F10 002F4B70 7C 1D E2 14 */ add r0, r29, r28
+/* 802F8F14 002F4B74 7C 63 00 50 */ subf r3, r3, r0
+/* 802F8F18 002F4B78 38 80 00 04 */ li r4, 4
+/* 802F8F1C 002F4B7C 3A 83 00 01 */ addi r20, r3, 1
+/* 802F8F20 002F4B80 7E 83 A3 78 */ mr r3, r20
+/* 802F8F24 002F4B84 4B FF EC 3D */ bl NHTTPi_alloc
+/* 802F8F28 002F4B88 2C 03 00 00 */ cmpwi r3, 0
+/* 802F8F2C 002F4B8C 90 78 00 24 */ stw r3, 0x24(r24)
+/* 802F8F30 002F4B90 40 82 00 14 */ bne lbl_802F8F44
+/* 802F8F34 002F4B94 7E A3 AB 78 */ mr r3, r21
+/* 802F8F38 002F4B98 38 80 00 01 */ li r4, 1
+/* 802F8F3C 002F4B9C 4B FF EC C5 */ bl NHTTPi_SetError
+/* 802F8F40 002F4BA0 48 00 02 DC */ b lbl_802F921C
+lbl_802F8F44:
+/* 802F8F44 002F4BA4 7E 84 A3 78 */ mr r4, r20
+/* 802F8F48 002F4BA8 48 00 11 A1 */ bl func_802FA0E8
+/* 802F8F4C 002F4BAC 80 78 00 24 */ lwz r3, 0x24(r24)
+/* 802F8F50 002F4BB0 7F A5 EB 78 */ mr r5, r29
+/* 802F8F54 002F4BB4 38 81 00 08 */ addi r4, r1, 8
+/* 802F8F58 002F4BB8 48 00 11 85 */ bl func_802FA0DC
+/* 802F8F5C 002F4BBC 7F 34 CB 78 */ mr r20, r25
+/* 802F8F60 002F4BC0 3B E0 00 00 */ li r31, 0
+/* 802F8F64 002F4BC4 3B 60 00 00 */ li r27, 0
+/* 802F8F68 002F4BC8 3B C0 00 00 */ li r30, 0
+/* 802F8F6C 002F4BCC 3B 40 00 00 */ li r26, 0
+/* 802F8F70 002F4BD0 48 00 00 A4 */ b lbl_802F9014
+lbl_802F8F74:
+/* 802F8F74 002F4BD4 2C 1E 00 02 */ cmpwi r30, 2
+/* 802F8F78 002F4BD8 40 82 00 0C */ bne lbl_802F8F84
+/* 802F8F7C 002F4BDC 3B DE FF FF */ addi r30, r30, -1
+/* 802F8F80 002F4BE0 48 00 00 8C */ b lbl_802F900C
+lbl_802F8F84:
+/* 802F8F84 002F4BE4 2C 1E 00 01 */ cmpwi r30, 1
+/* 802F8F88 002F4BE8 40 82 00 3C */ bne lbl_802F8FC4
+/* 802F8F8C 002F4BEC 7C 7F CA 14 */ add r3, r31, r25
+/* 802F8F90 002F4BF0 38 80 00 02 */ li r4, 2
+/* 802F8F94 002F4BF4 38 63 FF FF */ addi r3, r3, -1
+/* 802F8F98 002F4BF8 48 00 13 AD */ bl func_802FA344
+/* 802F8F9C 002F4BFC 80 98 00 24 */ lwz r4, 0x24(r24)
+/* 802F8FA0 002F4C00 7C 65 07 74 */ extsb r5, r3
+/* 802F8FA4 002F4C04 7C 1B EA 14 */ add r0, r27, r29
+/* 802F8FA8 002F4C08 3B DE FF FF */ addi r30, r30, -1
+/* 802F8FAC 002F4C0C 7C 84 02 14 */ add r4, r4, r0
+/* 802F8FB0 002F4C10 2C 05 00 2F */ cmpwi r5, 0x2f
+/* 802F8FB4 002F4C14 98 64 FF FF */ stb r3, -1(r4)
+/* 802F8FB8 002F4C18 40 82 00 54 */ bne lbl_802F900C
+/* 802F8FBC 002F4C1C 3B 40 00 01 */ li r26, 1
+/* 802F8FC0 002F4C20 48 00 00 4C */ b lbl_802F900C
+lbl_802F8FC4:
+/* 802F8FC4 002F4C24 88 B4 00 00 */ lbz r5, 0(r20)
+/* 802F8FC8 002F4C28 2C 05 00 2F */ cmpwi r5, 0x2f
+/* 802F8FCC 002F4C2C 40 82 00 08 */ bne lbl_802F8FD4
+/* 802F8FD0 002F4C30 3B 40 00 01 */ li r26, 1
+lbl_802F8FD4:
+/* 802F8FD4 002F4C34 7C A3 07 74 */ extsb r3, r5
+/* 802F8FD8 002F4C38 7F 44 00 34 */ cntlzw r4, r26
+/* 802F8FDC 002F4C3C 38 03 FF DB */ addi r0, r3, -37
+/* 802F8FE0 002F4C40 7C 00 00 34 */ cntlzw r0, r0
+/* 802F8FE4 002F4C44 54 83 D9 7E */ srwi r3, r4, 5
+/* 802F8FE8 002F4C48 54 00 D9 7E */ srwi r0, r0, 5
+/* 802F8FEC 002F4C4C 7C 60 00 39 */ and. r0, r3, r0
+/* 802F8FF0 002F4C50 41 82 00 0C */ beq lbl_802F8FFC
+/* 802F8FF4 002F4C54 3B C0 00 02 */ li r30, 2
+/* 802F8FF8 002F4C58 48 00 00 10 */ b lbl_802F9008
+lbl_802F8FFC:
+/* 802F8FFC 002F4C5C 80 78 00 24 */ lwz r3, 0x24(r24)
+/* 802F9000 002F4C60 7C 1B EA 14 */ add r0, r27, r29
+/* 802F9004 002F4C64 7C A3 01 AE */ stbx r5, r3, r0
+lbl_802F9008:
+/* 802F9008 002F4C68 3B 7B 00 01 */ addi r27, r27, 1
+lbl_802F900C:
+/* 802F900C 002F4C6C 3B FF 00 01 */ addi r31, r31, 1
+/* 802F9010 002F4C70 3A 94 00 01 */ addi r20, r20, 1
+lbl_802F9014:
+/* 802F9014 002F4C74 7C 1F E0 00 */ cmpw r31, r28
+/* 802F9018 002F4C78 41 80 FF 5C */ blt lbl_802F8F74
+/* 802F901C 002F4C7C 80 78 00 24 */ lwz r3, 0x24(r24)
+/* 802F9020 002F4C80 7C 1D DA 14 */ add r0, r29, r27
+/* 802F9024 002F4C84 38 80 00 00 */ li r4, 0
+/* 802F9028 002F4C88 38 A0 00 00 */ li r5, 0
+/* 802F902C 002F4C8C 7C 83 01 AE */ stbx r4, r3, r0
+/* 802F9030 002F4C90 80 18 00 24 */ lwz r0, 0x24(r24)
+/* 802F9034 002F4C94 7C 80 EA 14 */ add r4, r0, r29
+/* 802F9038 002F4C98 7C 83 23 78 */ mr r3, r4
+/* 802F903C 002F4C9C 7F 69 03 A6 */ mtctr r27
+/* 802F9040 002F4CA0 2C 1B 00 00 */ cmpwi r27, 0
+/* 802F9044 002F4CA4 40 81 00 34 */ ble lbl_802F9078
+lbl_802F9048:
+/* 802F9048 002F4CA8 88 03 00 00 */ lbz r0, 0(r3)
+/* 802F904C 002F4CAC 7C 00 07 74 */ extsb r0, r0
+/* 802F9050 002F4CB0 2C 00 00 2F */ cmpwi r0, 0x2f
+/* 802F9054 002F4CB4 41 82 00 0C */ beq lbl_802F9060
+/* 802F9058 002F4CB8 2C 00 00 3A */ cmpwi r0, 0x3a
+/* 802F905C 002F4CBC 40 82 00 10 */ bne lbl_802F906C
+lbl_802F9060:
+/* 802F9060 002F4CC0 7C 05 EA 14 */ add r0, r5, r29
+/* 802F9064 002F4CC4 90 18 00 14 */ stw r0, 0x14(r24)
+/* 802F9068 002F4CC8 48 00 00 10 */ b lbl_802F9078
+lbl_802F906C:
+/* 802F906C 002F4CCC 38 A5 00 01 */ addi r5, r5, 1
+/* 802F9070 002F4CD0 38 63 00 01 */ addi r3, r3, 1
+/* 802F9074 002F4CD4 42 00 FF D4 */ bdnz lbl_802F9048
+lbl_802F9078:
+/* 802F9078 002F4CD8 7C 85 D8 00 */ cmpw cr1, r5, r27
+/* 802F907C 002F4CDC 40 86 00 14 */ bne cr1, lbl_802F9090
+/* 802F9080 002F4CE0 7C 05 EA 14 */ add r0, r5, r29
+/* 802F9084 002F4CE4 90 18 00 14 */ stw r0, 0x14(r24)
+/* 802F9088 002F4CE8 90 18 00 18 */ stw r0, 0x18(r24)
+/* 802F908C 002F4CEC 48 00 00 C4 */ b lbl_802F9150
+lbl_802F9090:
+/* 802F9090 002F4CF0 7C 04 28 AE */ lbzx r0, r4, r5
+/* 802F9094 002F4CF4 7C 00 07 74 */ extsb r0, r0
+/* 802F9098 002F4CF8 2C 00 00 2F */ cmpwi r0, 0x2f
+/* 802F909C 002F4CFC 40 82 00 10 */ bne lbl_802F90AC
+/* 802F90A0 002F4D00 80 18 00 14 */ lwz r0, 0x14(r24)
+/* 802F90A4 002F4D04 90 18 00 18 */ stw r0, 0x18(r24)
+/* 802F90A8 002F4D08 48 00 00 A8 */ b lbl_802F9150
+lbl_802F90AC:
+/* 802F90AC 002F4D0C 2C 00 00 3A */ cmpwi r0, 0x3a
+/* 802F90B0 002F4D10 40 82 00 A0 */ bne lbl_802F9150
+/* 802F90B4 002F4D14 7C 05 D8 50 */ subf r0, r5, r27
+/* 802F90B8 002F4D18 7C 64 2A 14 */ add r3, r4, r5
+/* 802F90BC 002F4D1C 7C 09 03 A6 */ mtctr r0
+/* 802F90C0 002F4D20 40 84 00 28 */ bge cr1, lbl_802F90E8
+lbl_802F90C4:
+/* 802F90C4 002F4D24 88 03 00 00 */ lbz r0, 0(r3)
+/* 802F90C8 002F4D28 2C 00 00 2F */ cmpwi r0, 0x2f
+/* 802F90CC 002F4D2C 40 82 00 10 */ bne lbl_802F90DC
+/* 802F90D0 002F4D30 7C 05 EA 14 */ add r0, r5, r29
+/* 802F90D4 002F4D34 90 18 00 18 */ stw r0, 0x18(r24)
+/* 802F90D8 002F4D38 48 00 00 10 */ b lbl_802F90E8
+lbl_802F90DC:
+/* 802F90DC 002F4D3C 38 A5 00 01 */ addi r5, r5, 1
+/* 802F90E0 002F4D40 38 63 00 01 */ addi r3, r3, 1
+/* 802F90E4 002F4D44 42 00 FF E0 */ bdnz lbl_802F90C4
+lbl_802F90E8:
+/* 802F90E8 002F4D48 7C 05 D8 00 */ cmpw r5, r27
+/* 802F90EC 002F4D4C 40 82 00 10 */ bne lbl_802F90FC
+/* 802F90F0 002F4D50 7C 05 EA 14 */ add r0, r5, r29
+/* 802F90F4 002F4D54 90 18 00 18 */ stw r0, 0x18(r24)
+/* 802F90F8 002F4D58 48 00 00 58 */ b lbl_802F9150
+lbl_802F90FC:
+/* 802F90FC 002F4D5C 80 98 00 14 */ lwz r4, 0x14(r24)
+/* 802F9100 002F4D60 80 78 00 24 */ lwz r3, 0x24(r24)
+/* 802F9104 002F4D64 38 84 00 01 */ addi r4, r4, 1
+/* 802F9108 002F4D68 80 18 00 18 */ lwz r0, 0x18(r24)
+/* 802F910C 002F4D6C 7C 63 22 14 */ add r3, r3, r4
+/* 802F9110 002F4D70 7C 84 00 50 */ subf r4, r4, r0
+/* 802F9114 002F4D74 48 00 16 25 */ bl func_802FA738
+/* 802F9118 002F4D78 2C 03 00 00 */ cmpwi r3, 0
+/* 802F911C 002F4D7C 40 80 00 0C */ bge lbl_802F9128
+/* 802F9120 002F4D80 80 78 00 20 */ lwz r3, 0x20(r24)
+/* 802F9124 002F4D84 48 00 00 24 */ b lbl_802F9148
+lbl_802F9128:
+/* 802F9128 002F4D88 3C 80 00 01 */ lis r4, 0x0000FFFF@ha
+/* 802F912C 002F4D8C 38 04 FF FF */ addi r0, r4, 0x0000FFFF@l
+/* 802F9130 002F4D90 7C 03 00 00 */ cmpw r3, r0
+/* 802F9134 002F4D94 40 81 00 14 */ ble lbl_802F9148
+/* 802F9138 002F4D98 7E A3 AB 78 */ mr r3, r21
+/* 802F913C 002F4D9C 38 80 00 04 */ li r4, 4
+/* 802F9140 002F4DA0 4B FF EA C1 */ bl NHTTPi_SetError
+/* 802F9144 002F4DA4 48 00 00 D8 */ b lbl_802F921C
+lbl_802F9148:
+/* 802F9148 002F4DA8 54 60 04 3E */ clrlwi r0, r3, 0x10
+/* 802F914C 002F4DAC 90 18 00 20 */ stw r0, 0x20(r24)
+lbl_802F9150:
+/* 802F9150 002F4DB0 80 B8 00 08 */ lwz r5, 8(r24)
+/* 802F9154 002F4DB4 38 80 00 04 */ li r4, 4
+/* 802F9158 002F4DB8 80 18 00 14 */ lwz r0, 0x14(r24)
+/* 802F915C 002F4DBC 7C 65 00 D0 */ neg r3, r5
+/* 802F9160 002F4DC0 7C 63 2B 78 */ or r3, r3, r5
+/* 802F9164 002F4DC4 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 802F9168 002F4DC8 38 63 00 07 */ addi r3, r3, 7
+/* 802F916C 002F4DCC 7E 83 00 50 */ subf r20, r3, r0
+/* 802F9170 002F4DD0 38 74 00 01 */ addi r3, r20, 1
+/* 802F9174 002F4DD4 4B FF E9 ED */ bl NHTTPi_alloc
+/* 802F9178 002F4DD8 2C 03 00 00 */ cmpwi r3, 0
+/* 802F917C 002F4DDC 90 78 00 28 */ stw r3, 0x28(r24)
+/* 802F9180 002F4DE0 40 82 00 14 */ bne lbl_802F9194
+/* 802F9184 002F4DE4 7E A3 AB 78 */ mr r3, r21
+/* 802F9188 002F4DE8 38 80 00 01 */ li r4, 1
+/* 802F918C 002F4DEC 4B FF EA 75 */ bl NHTTPi_SetError
+/* 802F9190 002F4DF0 48 00 00 8C */ b lbl_802F921C
+lbl_802F9194:
+/* 802F9194 002F4DF4 38 94 00 01 */ addi r4, r20, 1
+/* 802F9198 002F4DF8 48 00 0F 51 */ bl func_802FA0E8
+/* 802F919C 002F4DFC 80 98 00 08 */ lwz r4, 8(r24)
+/* 802F91A0 002F4E00 7E 85 A3 78 */ mr r5, r20
+/* 802F91A4 002F4E04 80 D8 00 24 */ lwz r6, 0x24(r24)
+/* 802F91A8 002F4E08 7C 04 00 D0 */ neg r0, r4
+/* 802F91AC 002F4E0C 80 78 00 28 */ lwz r3, 0x28(r24)
+/* 802F91B0 002F4E10 7C 00 23 78 */ or r0, r0, r4
+/* 802F91B4 002F4E14 54 04 0F FE */ srwi r4, r0, 0x1f
+/* 802F91B8 002F4E18 38 04 00 07 */ addi r0, r4, 7
+/* 802F91BC 002F4E1C 7C 86 02 14 */ add r4, r6, r0
+/* 802F91C0 002F4E20 48 00 0F 1D */ bl func_802FA0DC
+/* 802F91C4 002F4E24 3C 80 80 40 */ lis r4, lbl_803FE108@ha
+/* 802F91C8 002F4E28 38 78 00 38 */ addi r3, r24, 0x38
+/* 802F91CC 002F4E2C 38 84 E1 08 */ addi r4, r4, lbl_803FE108@l
+/* 802F91D0 002F4E30 38 A0 00 14 */ li r5, 0x14
+/* 802F91D4 002F4E34 48 00 0F 09 */ bl func_802FA0DC
+/* 802F91D8 002F4E38 92 D8 00 1C */ stw r22, 0x1c(r24)
+/* 802F91DC 002F4E3C 38 00 00 00 */ li r0, 0
+/* 802F91E0 002F4E40 7F 03 C3 78 */ mr r3, r24
+/* 802F91E4 002F4E44 90 18 00 AC */ stw r0, 0xac(r24)
+/* 802F91E8 002F4E48 90 18 00 B0 */ stw r0, 0xb0(r24)
+/* 802F91EC 002F4E4C 90 18 00 B4 */ stw r0, 0xb4(r24)
+/* 802F91F0 002F4E50 90 18 00 B8 */ stw r0, 0xb8(r24)
+/* 802F91F4 002F4E54 90 18 00 BC */ stw r0, 0xbc(r24)
+/* 802F91F8 002F4E58 90 18 00 C0 */ stw r0, 0xc0(r24)
+/* 802F91FC 002F4E5C 90 18 00 C4 */ stw r0, 0xc4(r24)
+/* 802F9200 002F4E60 90 18 00 C8 */ stw r0, 0xc8(r24)
+/* 802F9204 002F4E64 90 18 00 CC */ stw r0, 0xcc(r24)
+/* 802F9208 002F4E68 80 98 00 2C */ lwz r4, 0x2c(r24)
+/* 802F920C 002F4E6C 92 E4 04 38 */ stw r23, 0x438(r4)
+/* 802F9210 002F4E70 90 18 00 0C */ stw r0, 0xc(r24)
+/* 802F9214 002F4E74 90 18 02 38 */ stw r0, 0x238(r24)
+/* 802F9218 002F4E78 48 00 00 48 */ b lbl_802F9260
+lbl_802F921C:
+/* 802F921C 002F4E7C 2C 18 00 00 */ cmpwi r24, 0
+/* 802F9220 002F4E80 41 82 00 3C */ beq lbl_802F925C
+/* 802F9224 002F4E84 80 78 00 24 */ lwz r3, 0x24(r24)
+/* 802F9228 002F4E88 2C 03 00 00 */ cmpwi r3, 0
+/* 802F922C 002F4E8C 41 82 00 08 */ beq lbl_802F9234
+/* 802F9230 002F4E90 4B FF E9 8D */ bl NHTTPi_free
+lbl_802F9234:
+/* 802F9234 002F4E94 80 78 00 28 */ lwz r3, 0x28(r24)
+/* 802F9238 002F4E98 2C 03 00 00 */ cmpwi r3, 0
+/* 802F923C 002F4E9C 41 82 00 08 */ beq lbl_802F9244
+/* 802F9240 002F4EA0 4B FF E9 7D */ bl NHTTPi_free
+lbl_802F9244:
+/* 802F9244 002F4EA4 80 78 00 2C */ lwz r3, 0x2c(r24)
+/* 802F9248 002F4EA8 2C 03 00 00 */ cmpwi r3, 0
+/* 802F924C 002F4EAC 41 82 00 08 */ beq lbl_802F9254
+/* 802F9250 002F4EB0 4B FF E9 6D */ bl NHTTPi_free
+lbl_802F9254:
+/* 802F9254 002F4EB4 7F 03 C3 78 */ mr r3, r24
+/* 802F9258 002F4EB8 4B FF E9 65 */ bl NHTTPi_free
+lbl_802F925C:
+/* 802F925C 002F4EBC 38 60 00 00 */ li r3, 0
+lbl_802F9260:
+/* 802F9260 002F4EC0 39 61 01 40 */ addi r11, r1, 0x140
+/* 802F9264 002F4EC4 4B EC DE F5 */ bl _restgpr_20
+/* 802F9268 002F4EC8 80 01 01 44 */ lwz r0, 0x144(r1)
+/* 802F926C 002F4ECC 7C 08 03 A6 */ mtlr r0
+/* 802F9270 002F4ED0 38 21 01 40 */ addi r1, r1, 0x140
+/* 802F9274 002F4ED4 4E 80 00 20 */ blr
+
+.global NHTTP_DestroyRequest
+NHTTP_DestroyRequest:
+/* 802F9278 002F4ED8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F927C 002F4EDC 7C 08 02 A6 */ mflr r0
+/* 802F9280 002F4EE0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F9284 002F4EE4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F9288 002F4EE8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F928C 002F4EEC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F9290 002F4EF0 7C 9D 23 78 */ mr r29, r4
+/* 802F9294 002F4EF4 48 00 6C 59 */ bl func_802FFEEC
+/* 802F9298 002F4EF8 7C 7E 1B 78 */ mr r30, r3
+/* 802F929C 002F4EFC 7F A4 EB 78 */ mr r4, r29
+/* 802F92A0 002F4F00 48 00 67 99 */ bl func_802FFA38
+/* 802F92A4 002F4F04 2C 03 00 00 */ cmpwi r3, 0
+/* 802F92A8 002F4F08 41 82 00 0C */ beq lbl_802F92B4
+/* 802F92AC 002F4F0C 38 00 00 00 */ li r0, 0
+/* 802F92B0 002F4F10 90 03 00 30 */ stw r0, 0x30(r3)
+lbl_802F92B4:
+/* 802F92B4 002F4F14 80 7D 00 2C */ lwz r3, 0x2c(r29)
+/* 802F92B8 002F4F18 4B FF E9 05 */ bl NHTTPi_free
+/* 802F92BC 002F4F1C 7F C3 F3 78 */ mr r3, r30
+/* 802F92C0 002F4F20 7F A4 EB 78 */ mr r4, r29
+/* 802F92C4 002F4F24 48 00 67 75 */ bl func_802FFA38
+/* 802F92C8 002F4F28 2C 03 00 00 */ cmpwi r3, 0
+/* 802F92CC 002F4F2C 41 82 00 0C */ beq lbl_802F92D8
+/* 802F92D0 002F4F30 38 00 00 00 */ li r0, 0
+/* 802F92D4 002F4F34 90 03 00 2C */ stw r0, 0x2c(r3)
+lbl_802F92D8:
+/* 802F92D8 002F4F38 83 FD 00 30 */ lwz r31, 0x30(r29)
+/* 802F92DC 002F4F3C 48 00 00 2C */ b lbl_802F9308
+lbl_802F92E0:
+/* 802F92E0 002F4F40 80 7F 00 00 */ lwz r3, 0(r31)
+/* 802F92E4 002F4F44 7C 1F 18 40 */ cmplw r31, r3
+/* 802F92E8 002F4F48 41 82 00 14 */ beq lbl_802F92FC
+/* 802F92EC 002F4F4C 83 C3 00 00 */ lwz r30, 0(r3)
+/* 802F92F0 002F4F50 4B FF E8 CD */ bl NHTTPi_free
+/* 802F92F4 002F4F54 93 DF 00 00 */ stw r30, 0(r31)
+/* 802F92F8 002F4F58 48 00 00 10 */ b lbl_802F9308
+lbl_802F92FC:
+/* 802F92FC 002F4F5C 7F E3 FB 78 */ mr r3, r31
+/* 802F9300 002F4F60 4B FF E8 BD */ bl NHTTPi_free
+/* 802F9304 002F4F64 3B E0 00 00 */ li r31, 0
+lbl_802F9308:
+/* 802F9308 002F4F68 2C 1F 00 00 */ cmpwi r31, 0
+/* 802F930C 002F4F6C 40 82 FF D4 */ bne lbl_802F92E0
+/* 802F9310 002F4F70 83 DD 00 34 */ lwz r30, 0x34(r29)
+/* 802F9314 002F4F74 48 00 00 2C */ b lbl_802F9340
+lbl_802F9318:
+/* 802F9318 002F4F78 80 7E 00 00 */ lwz r3, 0(r30)
+/* 802F931C 002F4F7C 7C 1E 18 40 */ cmplw r30, r3
+/* 802F9320 002F4F80 41 82 00 14 */ beq lbl_802F9334
+/* 802F9324 002F4F84 83 E3 00 00 */ lwz r31, 0(r3)
+/* 802F9328 002F4F88 4B FF E8 95 */ bl NHTTPi_free
+/* 802F932C 002F4F8C 93 FE 00 00 */ stw r31, 0(r30)
+/* 802F9330 002F4F90 48 00 00 10 */ b lbl_802F9340
+lbl_802F9334:
+/* 802F9334 002F4F94 7F C3 F3 78 */ mr r3, r30
+/* 802F9338 002F4F98 4B FF E8 85 */ bl NHTTPi_free
+/* 802F933C 002F4F9C 3B C0 00 00 */ li r30, 0
+lbl_802F9340:
+/* 802F9340 002F4FA0 2C 1E 00 00 */ cmpwi r30, 0
+/* 802F9344 002F4FA4 40 82 FF D4 */ bne lbl_802F9318
+/* 802F9348 002F4FA8 80 7D 00 24 */ lwz r3, 0x24(r29)
+/* 802F934C 002F4FAC 4B FF E8 71 */ bl NHTTPi_free
+/* 802F9350 002F4FB0 80 7D 00 28 */ lwz r3, 0x28(r29)
+/* 802F9354 002F4FB4 4B FF E8 69 */ bl NHTTPi_free
+/* 802F9358 002F4FB8 7F A3 EB 78 */ mr r3, r29
+/* 802F935C 002F4FBC 4B FF E8 61 */ bl NHTTPi_free
+/* 802F9360 002F4FC0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F9364 002F4FC4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F9368 002F4FC8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F936C 002F4FCC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F9370 002F4FD0 7C 08 03 A6 */ mtlr r0
+/* 802F9374 002F4FD4 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F9378 002F4FD8 4E 80 00 20 */ blr
+
+.global NHTTPi_destroyRequestObject
+NHTTPi_destroyRequestObject:
+/* 802F937C 002F4FDC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F9380 002F4FE0 7C 08 02 A6 */ mflr r0
+/* 802F9384 002F4FE4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F9388 002F4FE8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F938C 002F4FEC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F9390 002F4FF0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F9394 002F4FF4 7C 9D 23 78 */ mr r29, r4
+/* 802F9398 002F4FF8 48 00 66 A1 */ bl func_802FFA38
+/* 802F939C 002F4FFC 2C 03 00 00 */ cmpwi r3, 0
+/* 802F93A0 002F5000 41 82 00 0C */ beq lbl_802F93AC
+/* 802F93A4 002F5004 38 00 00 00 */ li r0, 0
+/* 802F93A8 002F5008 90 03 00 2C */ stw r0, 0x2c(r3)
+lbl_802F93AC:
+/* 802F93AC 002F500C 83 FD 00 30 */ lwz r31, 0x30(r29)
+/* 802F93B0 002F5010 48 00 00 2C */ b lbl_802F93DC
+lbl_802F93B4:
+/* 802F93B4 002F5014 80 7F 00 00 */ lwz r3, 0(r31)
+/* 802F93B8 002F5018 7C 1F 18 40 */ cmplw r31, r3
+/* 802F93BC 002F501C 41 82 00 14 */ beq lbl_802F93D0
+/* 802F93C0 002F5020 83 C3 00 00 */ lwz r30, 0(r3)
+/* 802F93C4 002F5024 4B FF E7 F9 */ bl NHTTPi_free
+/* 802F93C8 002F5028 93 DF 00 00 */ stw r30, 0(r31)
+/* 802F93CC 002F502C 48 00 00 10 */ b lbl_802F93DC
+lbl_802F93D0:
+/* 802F93D0 002F5030 7F E3 FB 78 */ mr r3, r31
+/* 802F93D4 002F5034 4B FF E7 E9 */ bl NHTTPi_free
+/* 802F93D8 002F5038 3B E0 00 00 */ li r31, 0
+lbl_802F93DC:
+/* 802F93DC 002F503C 2C 1F 00 00 */ cmpwi r31, 0
+/* 802F93E0 002F5040 40 82 FF D4 */ bne lbl_802F93B4
+/* 802F93E4 002F5044 83 DD 00 34 */ lwz r30, 0x34(r29)
+/* 802F93E8 002F5048 48 00 00 2C */ b lbl_802F9414
+lbl_802F93EC:
+/* 802F93EC 002F504C 80 7E 00 00 */ lwz r3, 0(r30)
+/* 802F93F0 002F5050 7C 1E 18 40 */ cmplw r30, r3
+/* 802F93F4 002F5054 41 82 00 14 */ beq lbl_802F9408
+/* 802F93F8 002F5058 83 E3 00 00 */ lwz r31, 0(r3)
+/* 802F93FC 002F505C 4B FF E7 C1 */ bl NHTTPi_free
+/* 802F9400 002F5060 93 FE 00 00 */ stw r31, 0(r30)
+/* 802F9404 002F5064 48 00 00 10 */ b lbl_802F9414
+lbl_802F9408:
+/* 802F9408 002F5068 7F C3 F3 78 */ mr r3, r30
+/* 802F940C 002F506C 4B FF E7 B1 */ bl NHTTPi_free
+/* 802F9410 002F5070 3B C0 00 00 */ li r30, 0
+lbl_802F9414:
+/* 802F9414 002F5074 2C 1E 00 00 */ cmpwi r30, 0
+/* 802F9418 002F5078 40 82 FF D4 */ bne lbl_802F93EC
+/* 802F941C 002F507C 80 7D 00 24 */ lwz r3, 0x24(r29)
+/* 802F9420 002F5080 4B FF E7 9D */ bl NHTTPi_free
+/* 802F9424 002F5084 80 7D 00 28 */ lwz r3, 0x28(r29)
+/* 802F9428 002F5088 4B FF E7 95 */ bl NHTTPi_free
+/* 802F942C 002F508C 7F A3 EB 78 */ mr r3, r29
+/* 802F9430 002F5090 4B FF E7 8D */ bl NHTTPi_free
+/* 802F9434 002F5094 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F9438 002F5098 38 60 00 01 */ li r3, 1
+/* 802F943C 002F509C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F9440 002F50A0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F9444 002F50A4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F9448 002F50A8 7C 08 03 A6 */ mtlr r0
+/* 802F944C 002F50AC 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F9450 002F50B0 4E 80 00 20 */ blr
+
+.global NHTTP_SendRequestAsync
+NHTTP_SendRequestAsync:
+/* 802F9454 002F50B4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F9458 002F50B8 7C 08 02 A6 */ mflr r0
+/* 802F945C 002F50BC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F9460 002F50C0 39 61 00 20 */ addi r11, r1, 0x20
+/* 802F9464 002F50C4 4B EC DC C5 */ bl _savegpr_27
+/* 802F9468 002F50C8 7C 7C 1B 78 */ mr r28, r3
+/* 802F946C 002F50CC 7C 9B 23 78 */ mr r27, r4
+/* 802F9470 002F50D0 48 00 6A 61 */ bl func_802FFED0
+/* 802F9474 002F50D4 7C 7F 1B 78 */ mr r31, r3
+/* 802F9478 002F50D8 7F 83 E3 78 */ mr r3, r28
+/* 802F947C 002F50DC 48 00 6A 69 */ bl func_802FFEE4
+/* 802F9480 002F50E0 7C 7E 1B 78 */ mr r30, r3
+/* 802F9484 002F50E4 7F 83 E3 78 */ mr r3, r28
+/* 802F9488 002F50E8 48 00 6A 65 */ bl func_802FFEEC
+/* 802F948C 002F50EC 80 1B 00 04 */ lwz r0, 4(r27)
+/* 802F9490 002F50F0 7C 7D 1B 78 */ mr r29, r3
+/* 802F9494 002F50F4 2C 00 00 00 */ cmpwi r0, 0
+/* 802F9498 002F50F8 41 82 00 18 */ beq lbl_802F94B0
+/* 802F949C 002F50FC 7F E3 FB 78 */ mr r3, r31
+/* 802F94A0 002F5100 38 80 00 0B */ li r4, 0xb
+/* 802F94A4 002F5104 4B FF E7 5D */ bl NHTTPi_SetError
+/* 802F94A8 002F5108 38 60 FF FF */ li r3, -1
+/* 802F94AC 002F510C 48 00 00 50 */ b lbl_802F94FC
+lbl_802F94B0:
+/* 802F94B0 002F5110 4B FF EF 95 */ bl NHTTPi_lockReqList
+/* 802F94B4 002F5114 7F 83 E3 78 */ mr r3, r28
+/* 802F94B8 002F5118 48 00 6A 1D */ bl func_802FFED4
+/* 802F94BC 002F511C 7F 64 DB 78 */ mr r4, r27
+/* 802F94C0 002F5120 4B FF EC F5 */ bl NHTTPi_setReqQueue
+/* 802F94C4 002F5124 2C 03 00 00 */ cmpwi r3, 0
+/* 802F94C8 002F5128 7C 7C 1B 78 */ mr r28, r3
+/* 802F94CC 002F512C 41 80 00 18 */ blt lbl_802F94E4
+/* 802F94D0 002F5130 38 00 00 01 */ li r0, 1
+/* 802F94D4 002F5134 7F C3 F3 78 */ mr r3, r30
+/* 802F94D8 002F5138 90 1B 00 04 */ stw r0, 4(r27)
+/* 802F94DC 002F513C 4B FF F0 75 */ bl NHTTPi_kickCommThread
+/* 802F94E0 002F5140 48 00 00 10 */ b lbl_802F94F0
+lbl_802F94E4:
+/* 802F94E4 002F5144 7F E3 FB 78 */ mr r3, r31
+/* 802F94E8 002F5148 38 80 00 01 */ li r4, 1
+/* 802F94EC 002F514C 4B FF E7 15 */ bl NHTTPi_SetError
+lbl_802F94F0:
+/* 802F94F0 002F5150 7F A3 EB 78 */ mr r3, r29
+/* 802F94F4 002F5154 4B FF EF 55 */ bl NHTTPi_unlockReqList
+/* 802F94F8 002F5158 7F 83 E3 78 */ mr r3, r28
+lbl_802F94FC:
+/* 802F94FC 002F515C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802F9500 002F5160 4B EC DC 75 */ bl _restgpr_27
+/* 802F9504 002F5164 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F9508 002F5168 7C 08 03 A6 */ mtlr r0
+/* 802F950C 002F516C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F9510 002F5170 4E 80 00 20 */ blr
+
+.global NHTTP_CancelRequestAsync
+NHTTP_CancelRequestAsync:
+/* 802F9514 002F5174 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F9518 002F5178 7C 08 02 A6 */ mflr r0
+/* 802F951C 002F517C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F9520 002F5180 39 61 00 20 */ addi r11, r1, 0x20
+/* 802F9524 002F5184 4B EC DC 05 */ bl _savegpr_27
+/* 802F9528 002F5188 7C 7B 1B 78 */ mr r27, r3
+/* 802F952C 002F518C 7C 9C 23 78 */ mr r28, r4
+/* 802F9530 002F5190 3B C0 00 00 */ li r30, 0
+/* 802F9534 002F5194 48 00 69 A9 */ bl func_802FFEDC
+/* 802F9538 002F5198 7C 7F 1B 78 */ mr r31, r3
+/* 802F953C 002F519C 7F 63 DB 78 */ mr r3, r27
+/* 802F9540 002F51A0 48 00 69 AD */ bl func_802FFEEC
+/* 802F9544 002F51A4 83 BF 00 00 */ lwz r29, 0(r31)
+/* 802F9548 002F51A8 7C 7F 1B 78 */ mr r31, r3
+/* 802F954C 002F51AC 4B FF EE F9 */ bl NHTTPi_lockReqList
+/* 802F9550 002F51B0 2C 1D 00 00 */ cmpwi r29, 0
+/* 802F9554 002F51B4 41 82 00 40 */ beq lbl_802F9594
+/* 802F9558 002F51B8 80 1D 00 08 */ lwz r0, 8(r29)
+/* 802F955C 002F51BC 7C 00 E0 00 */ cmpw r0, r28
+/* 802F9560 002F51C0 40 82 00 34 */ bne lbl_802F9594
+/* 802F9564 002F51C4 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 802F9568 002F51C8 80 03 00 00 */ lwz r0, 0(r3)
+/* 802F956C 002F51CC 2C 00 00 00 */ cmpwi r0, 0
+/* 802F9570 002F51D0 40 82 00 24 */ bne lbl_802F9594
+/* 802F9574 002F51D4 80 9D 00 0C */ lwz r4, 0xc(r29)
+/* 802F9578 002F51D8 38 00 00 01 */ li r0, 1
+/* 802F957C 002F51DC 7F E3 FB 78 */ mr r3, r31
+/* 802F9580 002F51E0 90 04 00 00 */ stw r0, 0(r4)
+/* 802F9584 002F51E4 80 9D 00 0C */ lwz r4, 0xc(r29)
+/* 802F9588 002F51E8 80 BD 00 10 */ lwz r5, 0x10(r29)
+/* 802F958C 002F51EC 48 00 0A 89 */ bl func_802FA014
+/* 802F9590 002F51F0 3B C0 00 01 */ li r30, 1
+lbl_802F9594:
+/* 802F9594 002F51F4 2C 1E 00 00 */ cmpwi r30, 0
+/* 802F9598 002F51F8 40 82 00 1C */ bne lbl_802F95B4
+/* 802F959C 002F51FC 7F 63 DB 78 */ mr r3, r27
+/* 802F95A0 002F5200 48 00 69 35 */ bl func_802FFED4
+/* 802F95A4 002F5204 7F E4 FB 78 */ mr r4, r31
+/* 802F95A8 002F5208 7F 85 E3 78 */ mr r5, r28
+/* 802F95AC 002F520C 4B FF EC D5 */ bl NHTTPi_freeReqQueue
+/* 802F95B0 002F5210 7C 7E 1B 78 */ mr r30, r3
+lbl_802F95B4:
+/* 802F95B4 002F5214 7F E3 FB 78 */ mr r3, r31
+/* 802F95B8 002F5218 4B FF EE 91 */ bl NHTTPi_unlockReqList
+/* 802F95BC 002F521C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802F95C0 002F5220 7F C3 F3 78 */ mr r3, r30
+/* 802F95C4 002F5224 4B EC DB B1 */ bl _restgpr_27
+/* 802F95C8 002F5228 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F95CC 002F522C 7C 08 03 A6 */ mtlr r0
+/* 802F95D0 002F5230 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F95D4 002F5234 4E 80 00 20 */ blr
+
+.global NHTTPi_cancelAllRequests
+NHTTPi_cancelAllRequests:
+/* 802F95D8 002F5238 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F95DC 002F523C 7C 08 02 A6 */ mflr r0
+/* 802F95E0 002F5240 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F95E4 002F5244 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F95E8 002F5248 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F95EC 002F524C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F95F0 002F5250 7C 7D 1B 78 */ mr r29, r3
+/* 802F95F4 002F5254 48 00 68 E9 */ bl func_802FFEDC
+/* 802F95F8 002F5258 7C 7F 1B 78 */ mr r31, r3
+/* 802F95FC 002F525C 7F A3 EB 78 */ mr r3, r29
+/* 802F9600 002F5260 48 00 68 D5 */ bl func_802FFED4
+/* 802F9604 002F5264 7C 7E 1B 78 */ mr r30, r3
+/* 802F9608 002F5268 7F A3 EB 78 */ mr r3, r29
+/* 802F960C 002F526C 48 00 68 E1 */ bl func_802FFEEC
+/* 802F9610 002F5270 83 BF 00 00 */ lwz r29, 0(r31)
+/* 802F9614 002F5274 7C 7F 1B 78 */ mr r31, r3
+/* 802F9618 002F5278 4B FF EE 2D */ bl NHTTPi_lockReqList
+/* 802F961C 002F527C 2C 1D 00 00 */ cmpwi r29, 0
+/* 802F9620 002F5280 41 82 00 30 */ beq lbl_802F9650
+/* 802F9624 002F5284 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 802F9628 002F5288 80 03 00 00 */ lwz r0, 0(r3)
+/* 802F962C 002F528C 2C 00 00 00 */ cmpwi r0, 0
+/* 802F9630 002F5290 40 82 00 20 */ bne lbl_802F9650
+/* 802F9634 002F5294 80 9D 00 0C */ lwz r4, 0xc(r29)
+/* 802F9638 002F5298 38 00 00 01 */ li r0, 1
+/* 802F963C 002F529C 7F E3 FB 78 */ mr r3, r31
+/* 802F9640 002F52A0 90 04 00 00 */ stw r0, 0(r4)
+/* 802F9644 002F52A4 80 9D 00 0C */ lwz r4, 0xc(r29)
+/* 802F9648 002F52A8 80 BD 00 10 */ lwz r5, 0x10(r29)
+/* 802F964C 002F52AC 48 00 09 C9 */ bl func_802FA014
+lbl_802F9650:
+/* 802F9650 002F52B0 7F C3 F3 78 */ mr r3, r30
+/* 802F9654 002F52B4 7F E4 FB 78 */ mr r4, r31
+/* 802F9658 002F52B8 4B FF ED 45 */ bl NHTTPi_allFreeReqQueue
+/* 802F965C 002F52BC 7F E3 FB 78 */ mr r3, r31
+/* 802F9660 002F52C0 4B FF ED E9 */ bl NHTTPi_unlockReqList
+/* 802F9664 002F52C4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F9668 002F52C8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F966C 002F52CC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F9670 002F52D0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F9674 002F52D4 7C 08 03 A6 */ mtlr r0
+/* 802F9678 002F52D8 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F967C 002F52DC 4E 80 00 20 */ blr