.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 NHTTPi_IsCreateCommThreadMessageQueue /* 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 NHTTPi_IsCreateCommThreadMessageQueueOn 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 OSReport /* 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 NHTTPi_CommThreadProcMain /* 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