.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global SOInit SOInit: /* 802F519C 002F0DFC 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F51A0 002F0E00 7C 08 02 A6 */ mflr r0 /* 802F51A4 002F0E04 90 01 00 24 */ stw r0, 0x24(r1) /* 802F51A8 002F0E08 39 61 00 20 */ addi r11, r1, 0x20 /* 802F51AC 002F0E0C 4B ED 1F 7D */ bl _savegpr_27 /* 802F51B0 002F0E10 7C 7B 1B 78 */ mr r27, r3 /* 802F51B4 002F0E14 3B E0 00 00 */ li r31, 0 /* 802F51B8 002F0E18 4B F7 95 A5 */ bl OSDisableInterrupts /* 802F51BC 002F0E1C 80 0D AF 60 */ lwz r0, lbl_80640220-_SDA_BASE_(r13) /* 802F51C0 002F0E20 7C 7E 1B 78 */ mr r30, r3 /* 802F51C4 002F0E24 2C 00 00 00 */ cmpwi r0, 0 /* 802F51C8 002F0E28 40 82 00 14 */ bne lbl_802F51DC /* 802F51CC 002F0E2C 80 6D 8C 08 */ lwz r3, lbl_8063DEC8-_SDA_BASE_(r13) /* 802F51D0 002F0E30 4B F7 44 81 */ bl OSRegisterVersion /* 802F51D4 002F0E34 38 00 00 01 */ li r0, 1 /* 802F51D8 002F0E38 90 0D AF 60 */ stw r0, lbl_80640220-_SDA_BASE_(r13) lbl_802F51DC: /* 802F51DC 002F0E3C 88 0D AF 58 */ lbz r0, lbl_80640218-_SDA_BASE_(r13) /* 802F51E0 002F0E40 2C 00 00 00 */ cmpwi r0, 0 /* 802F51E4 002F0E44 41 82 00 18 */ beq lbl_802F51FC /* 802F51E8 002F0E48 41 80 00 14 */ blt lbl_802F51FC /* 802F51EC 002F0E4C 2C 00 00 03 */ cmpwi r0, 3 /* 802F51F0 002F0E50 40 80 00 0C */ bge lbl_802F51FC /* 802F51F4 002F0E54 3B E0 FF F9 */ li r31, -7 /* 802F51F8 002F0E58 48 00 01 30 */ b lbl_802F5328 lbl_802F51FC: /* 802F51FC 002F0E5C 2C 1B 00 00 */ cmpwi r27, 0 /* 802F5200 002F0E60 41 82 00 1C */ beq lbl_802F521C /* 802F5204 002F0E64 80 1B 00 00 */ lwz r0, 0(r27) /* 802F5208 002F0E68 2C 00 00 00 */ cmpwi r0, 0 /* 802F520C 002F0E6C 41 82 00 10 */ beq lbl_802F521C /* 802F5210 002F0E70 80 1B 00 04 */ lwz r0, 4(r27) /* 802F5214 002F0E74 2C 00 00 00 */ cmpwi r0, 0 /* 802F5218 002F0E78 40 82 00 0C */ bne lbl_802F5224 lbl_802F521C: /* 802F521C 002F0E7C 3B E0 FF E4 */ li r31, -28 /* 802F5220 002F0E80 48 00 01 08 */ b lbl_802F5328 lbl_802F5224: /* 802F5224 002F0E84 3F 80 80 58 */ lis r28, lbl_8057AAB8@ha /* 802F5228 002F0E88 38 80 00 00 */ li r4, 0 /* 802F522C 002F0E8C 38 7C AA B8 */ addi r3, r28, lbl_8057AAB8@l /* 802F5230 002F0E90 38 A0 00 18 */ li r5, 0x18 /* 802F5234 002F0E94 4B D0 EE D1 */ bl memset /* 802F5238 002F0E98 81 9B 00 00 */ lwz r12, 0(r27) /* 802F523C 002F0E9C 3B BC AA B8 */ addi r29, r28, -21832 /* 802F5240 002F0EA0 38 80 00 00 */ li r4, 0 /* 802F5244 002F0EA4 38 60 FF FE */ li r3, -2 /* 802F5248 002F0EA8 91 9C AA B8 */ stw r12, -0x5548(r28) /* 802F524C 002F0EAC 2C 0C 00 00 */ cmpwi r12, 0 /* 802F5250 002F0EB0 38 00 FF FF */ li r0, -1 /* 802F5254 002F0EB4 80 BB 00 04 */ lwz r5, 4(r27) /* 802F5258 002F0EB8 90 BD 00 04 */ stw r5, 4(r29) /* 802F525C 002F0EBC 90 9D 00 14 */ stw r4, 0x14(r29) /* 802F5260 002F0EC0 90 7D 00 08 */ stw r3, 8(r29) /* 802F5264 002F0EC4 90 1D 00 0C */ stw r0, 0xc(r29) /* 802F5268 002F0EC8 41 82 00 94 */ beq lbl_802F52FC /* 802F526C 002F0ECC 38 60 00 0B */ li r3, 0xb /* 802F5270 002F0ED0 38 80 04 60 */ li r4, 0x460 /* 802F5274 002F0ED4 7D 89 03 A6 */ mtctr r12 /* 802F5278 002F0ED8 4E 80 04 21 */ bctrl /* 802F527C 002F0EDC 2C 03 00 00 */ cmpwi r3, 0 /* 802F5280 002F0EE0 41 82 00 80 */ beq lbl_802F5300 /* 802F5284 002F0EE4 80 9D 00 14 */ lwz r4, 0x14(r29) /* 802F5288 002F0EE8 80 0D 8C 0C */ lwz r0, lbl_8063DECC-_SDA_BASE_(r13) /* 802F528C 002F0EEC 38 84 00 01 */ addi r4, r4, 1 /* 802F5290 002F0EF0 2C 00 00 00 */ cmpwi r0, 0 /* 802F5294 002F0EF4 90 9D 00 14 */ stw r4, 0x14(r29) /* 802F5298 002F0EF8 41 82 00 68 */ beq lbl_802F5300 /* 802F529C 002F0EFC 54 64 00 FE */ clrlwi r4, r3, 3 /* 802F52A0 002F0F00 3C 00 10 00 */ lis r0, 0x1000 /* 802F52A4 002F0F04 7C 04 00 40 */ cmplw r4, r0 /* 802F52A8 002F0F08 41 80 00 10 */ blt lbl_802F52B8 /* 802F52AC 002F0F0C 3C 00 18 00 */ lis r0, 0x1800 /* 802F52B0 002F0F10 7C 04 00 40 */ cmplw r4, r0 /* 802F52B4 002F0F14 41 80 00 4C */ blt lbl_802F5300 lbl_802F52B8: /* 802F52B8 002F0F18 2C 03 00 00 */ cmpwi r3, 0 /* 802F52BC 002F0F1C 41 82 00 38 */ beq lbl_802F52F4 /* 802F52C0 002F0F20 3C C0 80 58 */ lis r6, lbl_8057AAB8@ha /* 802F52C4 002F0F24 38 C6 AA B8 */ addi r6, r6, lbl_8057AAB8@l /* 802F52C8 002F0F28 81 86 00 04 */ lwz r12, 4(r6) /* 802F52CC 002F0F2C 2C 0C 00 00 */ cmpwi r12, 0 /* 802F52D0 002F0F30 41 82 00 24 */ beq lbl_802F52F4 /* 802F52D4 002F0F34 80 A6 00 14 */ lwz r5, 0x14(r6) /* 802F52D8 002F0F38 7C 64 1B 78 */ mr r4, r3 /* 802F52DC 002F0F3C 38 60 00 0B */ li r3, 0xb /* 802F52E0 002F0F40 38 05 FF FF */ addi r0, r5, -1 /* 802F52E4 002F0F44 38 A0 04 60 */ li r5, 0x460 /* 802F52E8 002F0F48 90 06 00 14 */ stw r0, 0x14(r6) /* 802F52EC 002F0F4C 7D 89 03 A6 */ mtctr r12 /* 802F52F0 002F0F50 4E 80 04 21 */ bctrl lbl_802F52F4: /* 802F52F4 002F0F54 38 60 00 00 */ li r3, 0 /* 802F52F8 002F0F58 48 00 00 08 */ b lbl_802F5300 lbl_802F52FC: /* 802F52FC 002F0F5C 38 60 00 00 */ li r3, 0 lbl_802F5300: /* 802F5300 002F0F60 3C 80 80 58 */ lis r4, lbl_8057AAB8@ha /* 802F5304 002F0F64 2C 03 00 00 */ cmpwi r3, 0 /* 802F5308 002F0F68 38 84 AA B8 */ addi r4, r4, lbl_8057AAB8@l /* 802F530C 002F0F6C 90 64 00 10 */ stw r3, 0x10(r4) /* 802F5310 002F0F70 40 82 00 08 */ bne lbl_802F5318 /* 802F5314 002F0F74 3B E0 FF CF */ li r31, -49 lbl_802F5318: /* 802F5318 002F0F78 2C 03 00 00 */ cmpwi r3, 0 /* 802F531C 002F0F7C 41 82 00 0C */ beq lbl_802F5328 /* 802F5320 002F0F80 38 00 00 01 */ li r0, 1 /* 802F5324 002F0F84 98 0D AF 58 */ stb r0, lbl_80640218-_SDA_BASE_(r13) lbl_802F5328: /* 802F5328 002F0F88 4B F7 BF D1 */ bl OSGetCurrentThread /* 802F532C 002F0F8C 2C 03 00 00 */ cmpwi r3, 0 /* 802F5330 002F0F90 41 82 00 0C */ beq lbl_802F533C /* 802F5334 002F0F94 93 E3 03 0C */ stw r31, 0x30c(r3) /* 802F5338 002F0F98 48 00 00 08 */ b lbl_802F5340 lbl_802F533C: /* 802F533C 002F0F9C 93 ED AF 5C */ stw r31, lbl_8064021C-_SDA_BASE_(r13) lbl_802F5340: /* 802F5340 002F0FA0 7F C3 F3 78 */ mr r3, r30 /* 802F5344 002F0FA4 4B F7 94 41 */ bl OSRestoreInterrupts /* 802F5348 002F0FA8 39 61 00 20 */ addi r11, r1, 0x20 /* 802F534C 002F0FAC 7F E3 FB 78 */ mr r3, r31 /* 802F5350 002F0FB0 4B ED 1E 25 */ bl _restgpr_27 /* 802F5354 002F0FB4 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F5358 002F0FB8 7C 08 03 A6 */ mtlr r0 /* 802F535C 002F0FBC 38 21 00 20 */ addi r1, r1, 0x20 /* 802F5360 002F0FC0 4E 80 00 20 */ blr .global SOFinish SOFinish: /* 802F5364 002F0FC4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802F5368 002F0FC8 7C 08 02 A6 */ mflr r0 /* 802F536C 002F0FCC 90 01 00 14 */ stw r0, 0x14(r1) /* 802F5370 002F0FD0 93 E1 00 0C */ stw r31, 0xc(r1) /* 802F5374 002F0FD4 3B E0 00 00 */ li r31, 0 /* 802F5378 002F0FD8 93 C1 00 08 */ stw r30, 8(r1) /* 802F537C 002F0FDC 4B F7 93 E1 */ bl OSDisableInterrupts /* 802F5380 002F0FE0 88 0D AF 58 */ lbz r0, lbl_80640218-_SDA_BASE_(r13) /* 802F5384 002F0FE4 7C 7E 1B 78 */ mr r30, r3 /* 802F5388 002F0FE8 2C 00 00 01 */ cmpwi r0, 1 /* 802F538C 002F0FEC 41 82 00 28 */ beq lbl_802F53B4 /* 802F5390 002F0FF0 40 80 00 10 */ bge lbl_802F53A0 /* 802F5394 002F0FF4 2C 00 00 00 */ cmpwi r0, 0 /* 802F5398 002F0FF8 40 80 00 14 */ bge lbl_802F53AC /* 802F539C 002F0FFC 48 00 00 88 */ b lbl_802F5424 lbl_802F53A0: /* 802F53A0 002F1000 2C 00 00 03 */ cmpwi r0, 3 /* 802F53A4 002F1004 40 80 00 80 */ bge lbl_802F5424 /* 802F53A8 002F1008 48 00 00 78 */ b lbl_802F5420 lbl_802F53AC: /* 802F53AC 002F100C 3B E0 FF F9 */ li r31, -7 /* 802F53B0 002F1010 48 00 00 74 */ b lbl_802F5424 lbl_802F53B4: /* 802F53B4 002F1014 3C A0 80 58 */ lis r5, lbl_8057AAB8@ha /* 802F53B8 002F1018 38 A5 AA B8 */ addi r5, r5, lbl_8057AAB8@l /* 802F53BC 002F101C 80 05 00 08 */ lwz r0, 8(r5) /* 802F53C0 002F1020 2C 00 FF FE */ cmpwi r0, -2 /* 802F53C4 002F1024 40 81 00 0C */ ble lbl_802F53D0 /* 802F53C8 002F1028 3B E0 FF F6 */ li r31, -10 /* 802F53CC 002F102C 48 00 00 58 */ b lbl_802F5424 lbl_802F53D0: /* 802F53D0 002F1030 80 65 00 14 */ lwz r3, 0x14(r5) /* 802F53D4 002F1034 2C 03 00 01 */ cmpwi r3, 1 /* 802F53D8 002F1038 40 81 00 0C */ ble lbl_802F53E4 /* 802F53DC 002F103C 3B E0 FF FA */ li r31, -6 /* 802F53E0 002F1040 48 00 00 44 */ b lbl_802F5424 lbl_802F53E4: /* 802F53E4 002F1044 80 85 00 10 */ lwz r4, 0x10(r5) /* 802F53E8 002F1048 38 00 00 00 */ li r0, 0 /* 802F53EC 002F104C 98 0D AF 58 */ stb r0, lbl_80640218-_SDA_BASE_(r13) /* 802F53F0 002F1050 2C 04 00 00 */ cmpwi r4, 0 /* 802F53F4 002F1054 41 82 00 30 */ beq lbl_802F5424 /* 802F53F8 002F1058 81 85 00 04 */ lwz r12, 4(r5) /* 802F53FC 002F105C 2C 0C 00 00 */ cmpwi r12, 0 /* 802F5400 002F1060 41 82 00 24 */ beq lbl_802F5424 /* 802F5404 002F1064 38 03 FF FF */ addi r0, r3, -1 /* 802F5408 002F1068 38 60 00 0B */ li r3, 0xb /* 802F540C 002F106C 90 05 00 14 */ stw r0, 0x14(r5) /* 802F5410 002F1070 38 A0 04 60 */ li r5, 0x460 /* 802F5414 002F1074 7D 89 03 A6 */ mtctr r12 /* 802F5418 002F1078 4E 80 04 21 */ bctrl /* 802F541C 002F107C 48 00 00 08 */ b lbl_802F5424 lbl_802F5420: /* 802F5420 002F1080 3B E0 FF E6 */ li r31, -26 lbl_802F5424: /* 802F5424 002F1084 4B F7 BE D5 */ bl OSGetCurrentThread /* 802F5428 002F1088 2C 03 00 00 */ cmpwi r3, 0 /* 802F542C 002F108C 41 82 00 0C */ beq lbl_802F5438 /* 802F5430 002F1090 93 E3 03 0C */ stw r31, 0x30c(r3) /* 802F5434 002F1094 48 00 00 08 */ b lbl_802F543C lbl_802F5438: /* 802F5438 002F1098 93 ED AF 5C */ stw r31, lbl_8064021C-_SDA_BASE_(r13) lbl_802F543C: /* 802F543C 002F109C 7F C3 F3 78 */ mr r3, r30 /* 802F5440 002F10A0 4B F7 93 45 */ bl OSRestoreInterrupts /* 802F5444 002F10A4 7F E3 FB 78 */ mr r3, r31 /* 802F5448 002F10A8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802F544C 002F10AC 83 C1 00 08 */ lwz r30, 8(r1) /* 802F5450 002F10B0 80 01 00 14 */ lwz r0, 0x14(r1) /* 802F5454 002F10B4 7C 08 03 A6 */ mtlr r0 /* 802F5458 002F10B8 38 21 00 10 */ addi r1, r1, 0x10 /* 802F545C 002F10BC 4E 80 00 20 */ blr .global SOStartup SOStartup: /* 802F5460 002F10C0 3C 60 00 09 */ lis r3, 0x000927C0@ha /* 802F5464 002F10C4 38 63 27 C0 */ addi r3, r3, 0x000927C0@l /* 802F5468 002F10C8 48 00 00 04 */ b SOStartupEx SOStartupEx: /* 802F546C 002F10CC 94 21 FF A0 */ stwu r1, -0x60(r1) /* 802F5470 002F10D0 7C 08 02 A6 */ mflr r0 /* 802F5474 002F10D4 90 01 00 64 */ stw r0, 0x64(r1) /* 802F5478 002F10D8 39 61 00 60 */ addi r11, r1, 0x60 /* 802F547C 002F10DC 4B ED 1C 79 */ bl __save_gpr /* 802F5480 002F10E0 2C 03 00 00 */ cmpwi r3, 0 /* 802F5484 002F10E4 7C 6E 1B 78 */ mr r14, r3 /* 802F5488 002F10E8 3A 00 00 00 */ li r16, 0 /* 802F548C 002F10EC 3A 20 00 00 */ li r17, 0 /* 802F5490 002F10F0 41 82 00 34 */ beq lbl_802F54C4 /* 802F5494 002F10F4 4B F7 D3 45 */ bl __OSGetSystemTime /* 802F5498 002F10F8 3C C0 80 00 */ lis r6, 0x800000F8@ha /* 802F549C 002F10FC 3C A0 10 62 */ lis r5, 0x10624DD3@ha /* 802F54A0 002F1100 80 C6 00 F8 */ lwz r6, 0x800000F8@l(r6) /* 802F54A4 002F1104 38 E5 4D D3 */ addi r7, r5, 0x10624DD3@l /* 802F54A8 002F1108 38 00 00 00 */ li r0, 0 /* 802F54AC 002F110C 54 C5 F0 BE */ srwi r5, r6, 2 /* 802F54B0 002F1110 7C A7 28 16 */ mulhwu r5, r7, r5 /* 802F54B4 002F1114 54 A5 D1 BE */ srwi r5, r5, 6 /* 802F54B8 002F1118 7C AE 29 D6 */ mullw r5, r14, r5 /* 802F54BC 002F111C 7E 05 20 14 */ addc r16, r5, r4 /* 802F54C0 002F1120 7E 20 19 14 */ adde r17, r0, r3 lbl_802F54C4: /* 802F54C4 002F1124 3C 60 80 58 */ lis r3, lbl_8057AAB8@ha /* 802F54C8 002F1128 39 E0 00 04 */ li r15, 4 /* 802F54CC 002F112C 3E 80 80 00 */ lis r20, 0x8000 /* 802F54D0 002F1130 3E A0 10 62 */ lis r21, 0x1062 /* 802F54D4 002F1134 3B 23 AA B8 */ addi r25, r3, lbl_8057AAB8@l /* 802F54D8 002F1138 3A C0 00 00 */ li r22, 0 /* 802F54DC 002F113C 3A E0 00 64 */ li r23, 0x64 /* 802F54E0 002F1140 3F 00 80 44 */ lis r24, 0x8044 /* 802F54E4 002F1144 3A 60 FF FF */ li r19, -1 /* 802F54E8 002F1148 3F E0 80 44 */ lis r31, 0x8044 /* 802F54EC 002F114C 39 C0 00 02 */ li r14, 2 lbl_802F54F0: /* 802F54F0 002F1150 4B F7 92 6D */ bl OSDisableInterrupts /* 802F54F4 002F1154 88 0D AF 58 */ lbz r0, lbl_80640218-_SDA_BASE_(r13) /* 802F54F8 002F1158 7C 7A 1B 78 */ mr r26, r3 /* 802F54FC 002F115C 2C 00 00 01 */ cmpwi r0, 1 /* 802F5500 002F1160 41 82 00 28 */ beq lbl_802F5528 /* 802F5504 002F1164 40 80 00 08 */ bge lbl_802F550C /* 802F5508 002F1168 48 00 00 10 */ b lbl_802F5518 lbl_802F550C: /* 802F550C 002F116C 2C 00 00 03 */ cmpwi r0, 3 /* 802F5510 002F1170 40 80 00 08 */ bge lbl_802F5518 /* 802F5514 002F1174 48 00 00 0C */ b lbl_802F5520 lbl_802F5518: /* 802F5518 002F1178 3A 40 FF D9 */ li r18, -39 /* 802F551C 002F117C 48 00 02 8C */ b lbl_802F57A8 lbl_802F5520: /* 802F5520 002F1180 3A 40 FF F9 */ li r18, -7 /* 802F5524 002F1184 48 00 02 84 */ b lbl_802F57A8 lbl_802F5528: /* 802F5528 002F1188 80 19 00 08 */ lwz r0, 8(r25) /* 802F552C 002F118C 2C 00 FF FE */ cmpwi r0, -2 /* 802F5530 002F1190 40 81 00 0C */ ble lbl_802F553C /* 802F5534 002F1194 3A 40 FF F6 */ li r18, -10 /* 802F5538 002F1198 48 00 02 70 */ b lbl_802F57A8 lbl_802F553C: /* 802F553C 002F119C 4B F7 BD BD */ bl OSGetCurrentThread /* 802F5540 002F11A0 2C 03 00 00 */ cmpwi r3, 0 /* 802F5544 002F11A4 40 82 00 0C */ bne lbl_802F5550 /* 802F5548 002F11A8 3E 40 80 00 */ lis r18, 0x8000 /* 802F554C 002F11AC 48 00 02 5C */ b lbl_802F57A8 lbl_802F5550: /* 802F5550 002F11B0 92 79 00 08 */ stw r19, 8(r25) /* 802F5554 002F11B4 7F 43 D3 78 */ mr r3, r26 /* 802F5558 002F11B8 4B F7 92 2D */ bl OSRestoreInterrupts /* 802F555C 002F11BC 7F 56 B9 D6 */ mullw r26, r22, r23 /* 802F5560 002F11C0 3B 75 4D D3 */ addi r27, r21, 0x4dd3 /* 802F5564 002F11C4 7E 12 8B 78 */ or r18, r16, r17 /* 802F5568 002F11C8 6E 3D 80 00 */ xoris r29, r17, 0x8000 lbl_802F556C: /* 802F556C 002F11CC 4B FF 7F B9 */ bl NCDGetLinkStatus /* 802F5570 002F11D0 2C 03 FF F8 */ cmpwi r3, -8 /* 802F5574 002F11D4 7C 7C 1B 78 */ mr r28, r3 /* 802F5578 002F11D8 41 82 00 0C */ beq lbl_802F5584 /* 802F557C 002F11DC 2C 03 00 01 */ cmpwi r3, 1 /* 802F5580 002F11E0 40 82 00 60 */ bne lbl_802F55E0 lbl_802F5584: /* 802F5584 002F11E4 80 14 00 F8 */ lwz r0, 0xf8(r20) /* 802F5588 002F11E8 54 00 F0 BE */ srwi r0, r0, 2 /* 802F558C 002F11EC 7C 1B 00 16 */ mulhwu r0, r27, r0 /* 802F5590 002F11F0 54 03 D1 BE */ srwi r3, r0, 6 /* 802F5594 002F11F4 7C 03 B8 16 */ mulhwu r0, r3, r23 /* 802F5598 002F11F8 1C 83 00 64 */ mulli r4, r3, 0x64 /* 802F559C 002F11FC 7C 60 D2 14 */ add r3, r0, r26 /* 802F55A0 002F1200 4B F7 D1 65 */ bl OSSleepTicks /* 802F55A4 002F1204 2C 12 00 00 */ cmpwi r18, 0 /* 802F55A8 002F1208 41 82 FF C4 */ beq lbl_802F556C /* 802F55AC 002F120C 4B F7 D2 2D */ bl __OSGetSystemTime /* 802F55B0 002F1210 6C 63 80 00 */ xoris r3, r3, 0x8000 /* 802F55B4 002F1214 7C 04 80 10 */ subfc r0, r4, r16 /* 802F55B8 002F1218 7C 63 E9 10 */ subfe r3, r3, r29 /* 802F55BC 002F121C 7C 7D E9 10 */ subfe r3, r29, r29 /* 802F55C0 002F1220 7C 63 00 D1 */ neg. r3, r3 /* 802F55C4 002F1224 41 82 FF A8 */ beq lbl_802F556C /* 802F55C8 002F1228 2C 1C 00 01 */ cmpwi r28, 1 /* 802F55CC 002F122C 40 82 00 0C */ bne lbl_802F55D8 /* 802F55D0 002F1230 3A 40 FF 87 */ li r18, -121 /* 802F55D4 002F1234 48 00 01 9C */ b lbl_802F5770 lbl_802F55D8: /* 802F55D8 002F1238 3E 40 80 00 */ lis r18, 0x8000 /* 802F55DC 002F123C 48 00 01 94 */ b lbl_802F5770 lbl_802F55E0: /* 802F55E0 002F1240 2C 03 00 00 */ cmpwi r3, 0 /* 802F55E4 002F1244 40 80 00 0C */ bge lbl_802F55F0 /* 802F55E8 002F1248 3E 40 80 00 */ lis r18, 0x8000 /* 802F55EC 002F124C 48 00 01 84 */ b lbl_802F5770 lbl_802F55F0: /* 802F55F0 002F1250 2C 03 00 02 */ cmpwi r3, 2 /* 802F55F4 002F1254 40 82 00 0C */ bne lbl_802F5600 /* 802F55F8 002F1258 3A 40 FF D3 */ li r18, -45 /* 802F55FC 002F125C 48 00 01 74 */ b lbl_802F5770 lbl_802F5600: /* 802F5600 002F1260 7F 56 B9 D6 */ mullw r26, r22, r23 /* 802F5604 002F1264 3B 75 4D D3 */ addi r27, r21, 0x4dd3 /* 802F5608 002F1268 7E 12 8B 78 */ or r18, r16, r17 /* 802F560C 002F126C 6E 3C 80 00 */ xoris r28, r17, 0x8000 lbl_802F5610: /* 802F5610 002F1270 38 78 5E 48 */ addi r3, r24, 0x5e48 /* 802F5614 002F1274 38 80 00 00 */ li r4, 0 /* 802F5618 002F1278 4B FA DB 41 */ bl IOS_Open /* 802F561C 002F127C 2C 03 FF FA */ cmpwi r3, -6 /* 802F5620 002F1280 90 79 00 0C */ stw r3, 0xc(r25) /* 802F5624 002F1284 40 82 00 50 */ bne lbl_802F5674 /* 802F5628 002F1288 80 14 00 F8 */ lwz r0, 0xf8(r20) /* 802F562C 002F128C 54 00 F0 BE */ srwi r0, r0, 2 /* 802F5630 002F1290 7C 1B 00 16 */ mulhwu r0, r27, r0 /* 802F5634 002F1294 54 03 D1 BE */ srwi r3, r0, 6 /* 802F5638 002F1298 7C 03 B8 16 */ mulhwu r0, r3, r23 /* 802F563C 002F129C 1C 83 00 64 */ mulli r4, r3, 0x64 /* 802F5640 002F12A0 7C 60 D2 14 */ add r3, r0, r26 /* 802F5644 002F12A4 4B F7 D0 C1 */ bl OSSleepTicks /* 802F5648 002F12A8 2C 12 00 00 */ cmpwi r18, 0 /* 802F564C 002F12AC 41 82 FF C4 */ beq lbl_802F5610 /* 802F5650 002F12B0 4B F7 D1 89 */ bl __OSGetSystemTime /* 802F5654 002F12B4 6C 63 80 00 */ xoris r3, r3, 0x8000 /* 802F5658 002F12B8 7C 04 80 10 */ subfc r0, r4, r16 /* 802F565C 002F12BC 7C 63 E1 10 */ subfe r3, r3, r28 /* 802F5660 002F12C0 7C 7C E1 10 */ subfe r3, r28, r28 /* 802F5664 002F12C4 7C 63 00 D1 */ neg. r3, r3 /* 802F5668 002F12C8 41 82 FF A8 */ beq lbl_802F5610 /* 802F566C 002F12CC 3E 40 80 00 */ lis r18, 0x8000 /* 802F5670 002F12D0 48 00 01 00 */ b lbl_802F5770 lbl_802F5674: /* 802F5674 002F12D4 2C 03 00 00 */ cmpwi r3, 0 /* 802F5678 002F12D8 40 80 00 0C */ bge lbl_802F5684 /* 802F567C 002F12DC 3E 40 80 00 */ lis r18, 0x8000 /* 802F5680 002F12E0 48 00 00 F0 */ b lbl_802F5770 lbl_802F5684: /* 802F5684 002F12E4 7F 96 B9 D6 */ mullw r28, r22, r23 /* 802F5688 002F12E8 3A 40 00 00 */ li r18, 0 /* 802F568C 002F12EC 92 41 00 08 */ stw r18, 8(r1) /* 802F5690 002F12F0 3B 75 4D D3 */ addi r27, r21, 0x4dd3 /* 802F5694 002F12F4 7E 1D 8B 78 */ or r29, r16, r17 /* 802F5698 002F12F8 6E 3E 80 00 */ xoris r30, r17, 0x8000 lbl_802F569C: /* 802F569C 002F12FC 38 61 00 08 */ addi r3, r1, 8 /* 802F56A0 002F1300 48 00 E6 D1 */ bl NWC24iStartupSocket /* 802F56A4 002F1304 2C 03 FF E3 */ cmpwi r3, -29 /* 802F56A8 002F1308 7C 7A 1B 78 */ mr r26, r3 /* 802F56AC 002F130C 40 82 00 4C */ bne lbl_802F56F8 /* 802F56B0 002F1310 80 14 00 F8 */ lwz r0, 0xf8(r20) /* 802F56B4 002F1314 54 00 F0 BE */ srwi r0, r0, 2 /* 802F56B8 002F1318 7C 1B 00 16 */ mulhwu r0, r27, r0 /* 802F56BC 002F131C 54 03 D1 BE */ srwi r3, r0, 6 /* 802F56C0 002F1320 7C 03 B8 16 */ mulhwu r0, r3, r23 /* 802F56C4 002F1324 1C 83 00 64 */ mulli r4, r3, 0x64 /* 802F56C8 002F1328 7C 60 E2 14 */ add r3, r0, r28 /* 802F56CC 002F132C 4B F7 D0 39 */ bl OSSleepTicks /* 802F56D0 002F1330 2C 1D 00 00 */ cmpwi r29, 0 /* 802F56D4 002F1334 41 82 FF C8 */ beq lbl_802F569C /* 802F56D8 002F1338 4B F7 D1 01 */ bl __OSGetSystemTime /* 802F56DC 002F133C 6C 63 80 00 */ xoris r3, r3, 0x8000 /* 802F56E0 002F1340 7C 04 80 10 */ subfc r0, r4, r16 /* 802F56E4 002F1344 7C 63 F1 10 */ subfe r3, r3, r30 /* 802F56E8 002F1348 7C 7E F1 10 */ subfe r3, r30, r30 /* 802F56EC 002F134C 7C 63 00 D1 */ neg. r3, r3 /* 802F56F0 002F1350 41 82 FF AC */ beq lbl_802F569C /* 802F56F4 002F1354 3E 40 80 00 */ lis r18, 0x8000 lbl_802F56F8: /* 802F56F8 002F1358 2C 12 00 00 */ cmpwi r18, 0 /* 802F56FC 002F135C 40 82 00 50 */ bne lbl_802F574C /* 802F5700 002F1360 38 1A 00 21 */ addi r0, r26, 0x21 /* 802F5704 002F1364 80 81 00 08 */ lwz r4, 8(r1) /* 802F5708 002F1368 28 00 00 21 */ cmplwi r0, 0x21 /* 802F570C 002F136C 3A 40 FF E4 */ li r18, -28 /* 802F5710 002F1370 41 81 00 3C */ bgt lbl_802F574C /* 802F5714 002F1374 38 7F 5E 58 */ addi r3, r31, 0x5e58 /* 802F5718 002F1378 54 00 10 3A */ slwi r0, r0, 2 /* 802F571C 002F137C 7C 63 00 2E */ lwzx r3, r3, r0 /* 802F5720 002F1380 7C 69 03 A6 */ mtctr r3 /* 802F5724 002F1384 4E 80 04 20 */ bctr /* 802F5728 002F1388 3A 40 00 00 */ li r18, 0 /* 802F572C 002F138C 48 00 00 20 */ b lbl_802F574C /* 802F5730 002F1390 3A 40 FF D0 */ li r18, -48 /* 802F5734 002F1394 48 00 00 18 */ b lbl_802F574C /* 802F5738 002F1398 7C 92 23 78 */ mr r18, r4 /* 802F573C 002F139C 48 00 00 10 */ b lbl_802F574C /* 802F5740 002F13A0 3E 40 80 00 */ lis r18, 0x8000 /* 802F5744 002F13A4 48 00 00 08 */ b lbl_802F574C /* 802F5748 002F13A8 3A 40 FF E6 */ li r18, -26 lbl_802F574C: /* 802F574C 002F13AC 2C 12 00 00 */ cmpwi r18, 0 /* 802F5750 002F13B0 41 82 00 20 */ beq lbl_802F5770 /* 802F5754 002F13B4 80 79 00 0C */ lwz r3, 0xc(r25) /* 802F5758 002F13B8 4B FA DB E1 */ bl IOS_Close /* 802F575C 002F13BC 2C 03 00 00 */ cmpwi r3, 0 /* 802F5760 002F13C0 40 80 00 0C */ bge lbl_802F576C /* 802F5764 002F13C4 3E 40 80 00 */ lis r18, 0x8000 /* 802F5768 002F13C8 48 00 00 08 */ b lbl_802F5770 lbl_802F576C: /* 802F576C 002F13CC 92 79 00 0C */ stw r19, 0xc(r25) lbl_802F5770: /* 802F5770 002F13D0 4B F7 8F ED */ bl OSDisableInterrupts /* 802F5774 002F13D4 2C 12 00 00 */ cmpwi r18, 0 /* 802F5778 002F13D8 7C 7A 1B 78 */ mr r26, r3 /* 802F577C 002F13DC 40 82 00 10 */ bne lbl_802F578C /* 802F5780 002F13E0 99 CD AF 58 */ stb r14, lbl_80640218-_SDA_BASE_(r13) /* 802F5784 002F13E4 92 D9 00 08 */ stw r22, 8(r25) /* 802F5788 002F13E8 48 00 00 20 */ b lbl_802F57A8 lbl_802F578C: /* 802F578C 002F13EC 3C 72 80 00 */ addis r3, r18, 0x8000 /* 802F5790 002F13F0 38 00 00 01 */ li r0, 1 /* 802F5794 002F13F4 28 03 00 00 */ cmplwi r3, 0 /* 802F5798 002F13F8 98 0D AF 58 */ stb r0, lbl_80640218-_SDA_BASE_(r13) /* 802F579C 002F13FC 41 82 00 0C */ beq lbl_802F57A8 /* 802F57A0 002F1400 38 00 FF FE */ li r0, -2 /* 802F57A4 002F1404 90 19 00 08 */ stw r0, 8(r25) lbl_802F57A8: /* 802F57A8 002F1408 4B F7 BB 51 */ bl OSGetCurrentThread /* 802F57AC 002F140C 2C 03 00 00 */ cmpwi r3, 0 /* 802F57B0 002F1410 41 82 00 0C */ beq lbl_802F57BC /* 802F57B4 002F1414 92 43 03 0C */ stw r18, 0x30c(r3) /* 802F57B8 002F1418 48 00 00 08 */ b lbl_802F57C0 lbl_802F57BC: /* 802F57BC 002F141C 92 4D AF 5C */ stw r18, lbl_8064021C-_SDA_BASE_(r13) lbl_802F57C0: /* 802F57C0 002F1420 7F 43 D3 78 */ mr r3, r26 /* 802F57C4 002F1424 4B F7 8F C1 */ bl OSRestoreInterrupts /* 802F57C8 002F1428 2C 12 00 00 */ cmpwi r18, 0 /* 802F57CC 002F142C 40 82 00 84 */ bne lbl_802F5850 /* 802F57D0 002F1430 7E 00 8B 79 */ or. r0, r16, r17 /* 802F57D4 002F1434 41 82 00 14 */ beq lbl_802F57E8 /* 802F57D8 002F1438 4B F7 D0 01 */ bl __OSGetSystemTime /* 802F57DC 002F143C 7C 84 80 10 */ subfc r4, r4, r16 /* 802F57E0 002F1440 7C 63 89 10 */ subfe r3, r3, r17 /* 802F57E4 002F1444 48 00 00 0C */ b lbl_802F57F0 lbl_802F57E8: /* 802F57E8 002F1448 38 80 00 00 */ li r4, 0 /* 802F57EC 002F144C 7C 83 23 78 */ mr r3, r4 lbl_802F57F0: /* 802F57F0 002F1450 7E 00 8B 79 */ or. r0, r16, r17 /* 802F57F4 002F1454 41 82 00 28 */ beq lbl_802F581C /* 802F57F8 002F1458 6E C0 80 00 */ xoris r0, r22, 0x8000 /* 802F57FC 002F145C 6C 66 80 00 */ xoris r6, r3, 0x8000 /* 802F5800 002F1460 7C A4 B0 10 */ subfc r5, r4, r22 /* 802F5804 002F1464 7C C6 01 10 */ subfe r6, r6, r0 /* 802F5808 002F1468 7C C0 01 10 */ subfe r6, r0, r0 /* 802F580C 002F146C 7C C6 00 D1 */ neg. r6, r6 /* 802F5810 002F1470 40 82 00 0C */ bne lbl_802F581C /* 802F5814 002F1474 3A 40 FF B4 */ li r18, -76 /* 802F5818 002F1478 48 00 00 2C */ b lbl_802F5844 lbl_802F581C: /* 802F581C 002F147C 80 14 00 F8 */ lwz r0, 0xf8(r20) /* 802F5820 002F1480 38 D5 4D D3 */ addi r6, r21, 0x4dd3 /* 802F5824 002F1484 38 A0 00 00 */ li r5, 0 /* 802F5828 002F1488 54 00 F0 BE */ srwi r0, r0, 2 /* 802F582C 002F148C 7C 06 00 16 */ mulhwu r0, r6, r0 /* 802F5830 002F1490 54 06 D1 BE */ srwi r6, r0, 6 /* 802F5834 002F1494 4B ED 1A 45 */ bl __div2i /* 802F5838 002F1498 7C 83 23 78 */ mr r3, r4 /* 802F583C 002F149C 48 00 08 89 */ bl SOiWaitForDHCPEx /* 802F5840 002F14A0 7C 72 1B 78 */ mr r18, r3 lbl_802F5844: /* 802F5844 002F14A4 2C 12 00 00 */ cmpwi r18, 0 /* 802F5848 002F14A8 41 82 00 08 */ beq lbl_802F5850 /* 802F584C 002F14AC 48 00 00 49 */ bl SOCleanup lbl_802F5850: /* 802F5850 002F14B0 4B F7 BA A9 */ bl OSGetCurrentThread /* 802F5854 002F14B4 2C 03 00 00 */ cmpwi r3, 0 /* 802F5858 002F14B8 41 82 00 0C */ beq lbl_802F5864 /* 802F585C 002F14BC 92 43 03 0C */ stw r18, 0x30c(r3) /* 802F5860 002F14C0 48 00 00 08 */ b lbl_802F5868 lbl_802F5864: /* 802F5864 002F14C4 92 4D AF 5C */ stw r18, lbl_8064021C-_SDA_BASE_(r13) lbl_802F5868: /* 802F5868 002F14C8 2C 12 FF 90 */ cmpwi r18, -112 /* 802F586C 002F14CC 40 82 00 0C */ bne lbl_802F5878 /* 802F5870 002F14D0 35 EF FF FF */ addic. r15, r15, -1 /* 802F5874 002F14D4 40 80 FC 7C */ bge lbl_802F54F0 lbl_802F5878: /* 802F5878 002F14D8 39 61 00 60 */ addi r11, r1, 0x60 /* 802F587C 002F14DC 7E 43 93 78 */ mr r3, r18 /* 802F5880 002F14E0 4B ED 18 C1 */ bl __restore_gpr /* 802F5884 002F14E4 80 01 00 64 */ lwz r0, 0x64(r1) /* 802F5888 002F14E8 7C 08 03 A6 */ mtlr r0 /* 802F588C 002F14EC 38 21 00 60 */ addi r1, r1, 0x60 /* 802F5890 002F14F0 4E 80 00 20 */ blr .global SOCleanup SOCleanup: /* 802F5894 002F14F4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F5898 002F14F8 7C 08 02 A6 */ mflr r0 /* 802F589C 002F14FC 90 01 00 24 */ stw r0, 0x24(r1) /* 802F58A0 002F1500 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802F58A4 002F1504 93 C1 00 18 */ stw r30, 0x18(r1) /* 802F58A8 002F1508 93 A1 00 14 */ stw r29, 0x14(r1) /* 802F58AC 002F150C 4B F7 8E B1 */ bl OSDisableInterrupts /* 802F58B0 002F1510 88 0D AF 58 */ lbz r0, lbl_80640218-_SDA_BASE_(r13) /* 802F58B4 002F1514 38 80 00 00 */ li r4, 0 /* 802F58B8 002F1518 90 81 00 08 */ stw r4, 8(r1) /* 802F58BC 002F151C 7C 7D 1B 78 */ mr r29, r3 /* 802F58C0 002F1520 2C 00 00 01 */ cmpwi r0, 1 /* 802F58C4 002F1524 41 82 00 20 */ beq lbl_802F58E4 /* 802F58C8 002F1528 40 80 00 08 */ bge lbl_802F58D0 /* 802F58CC 002F152C 48 00 00 10 */ b lbl_802F58DC lbl_802F58D0: /* 802F58D0 002F1530 2C 00 00 03 */ cmpwi r0, 3 /* 802F58D4 002F1534 40 80 00 08 */ bge lbl_802F58DC /* 802F58D8 002F1538 48 00 00 14 */ b lbl_802F58EC lbl_802F58DC: /* 802F58DC 002F153C 3B C0 FF D9 */ li r30, -39 /* 802F58E0 002F1540 48 00 01 24 */ b lbl_802F5A04 lbl_802F58E4: /* 802F58E4 002F1544 3B C0 FF F9 */ li r30, -7 /* 802F58E8 002F1548 48 00 01 1C */ b lbl_802F5A04 lbl_802F58EC: /* 802F58EC 002F154C 3F E0 80 58 */ lis r31, lbl_8057AAB8@ha /* 802F58F0 002F1550 3B FF AA B8 */ addi r31, r31, lbl_8057AAB8@l /* 802F58F4 002F1554 80 1F 00 08 */ lwz r0, 8(r31) /* 802F58F8 002F1558 2C 00 00 00 */ cmpwi r0, 0 /* 802F58FC 002F155C 40 80 00 0C */ bge lbl_802F5908 /* 802F5900 002F1560 3B C0 FF F6 */ li r30, -10 /* 802F5904 002F1564 48 00 01 00 */ b lbl_802F5A04 lbl_802F5908: /* 802F5908 002F1568 4B F7 B9 F1 */ bl OSGetCurrentThread /* 802F590C 002F156C 2C 03 00 00 */ cmpwi r3, 0 /* 802F5910 002F1570 40 82 00 0C */ bne lbl_802F591C /* 802F5914 002F1574 3F C0 80 00 */ lis r30, 0x8000 /* 802F5918 002F1578 48 00 00 EC */ b lbl_802F5A04 lbl_802F591C: /* 802F591C 002F157C 38 00 FF FF */ li r0, -1 /* 802F5920 002F1580 7F A3 EB 78 */ mr r3, r29 /* 802F5924 002F1584 90 1F 00 08 */ stw r0, 8(r31) /* 802F5928 002F1588 4B F7 8E 5D */ bl OSRestoreInterrupts /* 802F592C 002F158C 38 61 00 08 */ addi r3, r1, 8 /* 802F5930 002F1590 48 00 E4 51 */ bl NWC24iCleanupSocket /* 802F5934 002F1594 38 03 00 21 */ addi r0, r3, 0x21 /* 802F5938 002F1598 80 81 00 08 */ lwz r4, 8(r1) /* 802F593C 002F159C 28 00 00 21 */ cmplwi r0, 0x21 /* 802F5940 002F15A0 3B C0 FF E4 */ li r30, -28 /* 802F5944 002F15A4 41 81 00 40 */ bgt lbl_802F5984 /* 802F5948 002F15A8 3C 60 80 44 */ lis r3, lbl_80445EE0@ha /* 802F594C 002F15AC 54 00 10 3A */ slwi r0, r0, 2 /* 802F5950 002F15B0 38 63 5E E0 */ addi r3, r3, lbl_80445EE0@l /* 802F5954 002F15B4 7C 63 00 2E */ lwzx r3, r3, r0 /* 802F5958 002F15B8 7C 69 03 A6 */ mtctr r3 /* 802F595C 002F15BC 4E 80 04 20 */ bctr /* 802F5960 002F15C0 3B C0 00 00 */ li r30, 0 /* 802F5964 002F15C4 48 00 00 20 */ b lbl_802F5984 /* 802F5968 002F15C8 3B C0 FF D0 */ li r30, -48 /* 802F596C 002F15CC 48 00 00 18 */ b lbl_802F5984 /* 802F5970 002F15D0 7C 9E 23 78 */ mr r30, r4 /* 802F5974 002F15D4 48 00 00 10 */ b lbl_802F5984 /* 802F5978 002F15D8 3F C0 80 00 */ lis r30, 0x8000 /* 802F597C 002F15DC 48 00 00 08 */ b lbl_802F5984 /* 802F5980 002F15E0 3B C0 FF E6 */ li r30, -26 lbl_802F5984: /* 802F5984 002F15E4 2C 1E 00 00 */ cmpwi r30, 0 /* 802F5988 002F15E8 40 82 00 2C */ bne lbl_802F59B4 /* 802F598C 002F15EC 3F E0 80 58 */ lis r31, lbl_8057AAB8@ha /* 802F5990 002F15F0 3B FF AA B8 */ addi r31, r31, lbl_8057AAB8@l /* 802F5994 002F15F4 80 7F 00 0C */ lwz r3, 0xc(r31) /* 802F5998 002F15F8 4B FA D9 A1 */ bl IOS_Close /* 802F599C 002F15FC 2C 03 00 00 */ cmpwi r3, 0 /* 802F59A0 002F1600 40 80 00 0C */ bge lbl_802F59AC /* 802F59A4 002F1604 3F C0 80 00 */ lis r30, 0x8000 /* 802F59A8 002F1608 48 00 00 0C */ b lbl_802F59B4 lbl_802F59AC: /* 802F59AC 002F160C 38 00 FF FF */ li r0, -1 /* 802F59B0 002F1610 90 1F 00 0C */ stw r0, 0xc(r31) lbl_802F59B4: /* 802F59B4 002F1614 4B F7 8D A9 */ bl OSDisableInterrupts /* 802F59B8 002F1618 2C 1E 00 00 */ cmpwi r30, 0 /* 802F59BC 002F161C 7C 7D 1B 78 */ mr r29, r3 /* 802F59C0 002F1620 40 82 00 20 */ bne lbl_802F59E0 /* 802F59C4 002F1624 3C 60 80 58 */ lis r3, lbl_8057AAB8@ha /* 802F59C8 002F1628 38 80 00 01 */ li r4, 1 /* 802F59CC 002F162C 38 63 AA B8 */ addi r3, r3, lbl_8057AAB8@l /* 802F59D0 002F1630 38 00 FF FE */ li r0, -2 /* 802F59D4 002F1634 98 8D AF 58 */ stb r4, lbl_80640218-_SDA_BASE_(r13) /* 802F59D8 002F1638 90 03 00 08 */ stw r0, 8(r3) /* 802F59DC 002F163C 48 00 00 28 */ b lbl_802F5A04 lbl_802F59E0: /* 802F59E0 002F1640 3C 1E 80 00 */ addis r0, r30, 0x8000 /* 802F59E4 002F1644 28 00 00 00 */ cmplwi r0, 0 /* 802F59E8 002F1648 41 82 00 1C */ beq lbl_802F5A04 /* 802F59EC 002F164C 3C 60 80 58 */ lis r3, lbl_8057AAB8@ha /* 802F59F0 002F1650 38 80 00 02 */ li r4, 2 /* 802F59F4 002F1654 38 63 AA B8 */ addi r3, r3, lbl_8057AAB8@l /* 802F59F8 002F1658 38 00 00 00 */ li r0, 0 /* 802F59FC 002F165C 98 8D AF 58 */ stb r4, lbl_80640218-_SDA_BASE_(r13) /* 802F5A00 002F1660 90 03 00 08 */ stw r0, 8(r3) lbl_802F5A04: /* 802F5A04 002F1664 4B F7 B8 F5 */ bl OSGetCurrentThread /* 802F5A08 002F1668 2C 03 00 00 */ cmpwi r3, 0 /* 802F5A0C 002F166C 41 82 00 0C */ beq lbl_802F5A18 /* 802F5A10 002F1670 93 C3 03 0C */ stw r30, 0x30c(r3) /* 802F5A14 002F1674 48 00 00 08 */ b lbl_802F5A1C lbl_802F5A18: /* 802F5A18 002F1678 93 CD AF 5C */ stw r30, lbl_8064021C-_SDA_BASE_(r13) lbl_802F5A1C: /* 802F5A1C 002F167C 7F A3 EB 78 */ mr r3, r29 /* 802F5A20 002F1680 4B F7 8D 65 */ bl OSRestoreInterrupts /* 802F5A24 002F1684 7F C3 F3 78 */ mr r3, r30 /* 802F5A28 002F1688 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802F5A2C 002F168C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802F5A30 002F1690 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802F5A34 002F1694 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F5A38 002F1698 7C 08 03 A6 */ mtlr r0 /* 802F5A3C 002F169C 38 21 00 20 */ addi r1, r1, 0x20 /* 802F5A40 002F16A0 4E 80 00 20 */ blr .global SOiGetSysWork SOiGetSysWork: /* 802F5A44 002F16A4 3C 60 80 58 */ lis r3, lbl_8057AAB8@ha /* 802F5A48 002F16A8 38 63 AA B8 */ addi r3, r3, lbl_8057AAB8@l /* 802F5A4C 002F16AC 4E 80 00 20 */ blr .global SOiIsBufferAddrCheck SOiIsBufferAddrCheck: /* 802F5A50 002F16B0 80 6D 8C 0C */ lwz r3, lbl_8063DECC-_SDA_BASE_(r13) /* 802F5A54 002F16B4 4E 80 00 20 */ blr .global SOiIsInitialized SOiIsInitialized: /* 802F5A58 002F16B8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802F5A5C 002F16BC 7C 08 02 A6 */ mflr r0 /* 802F5A60 002F16C0 90 01 00 14 */ stw r0, 0x14(r1) /* 802F5A64 002F16C4 93 E1 00 0C */ stw r31, 0xc(r1) /* 802F5A68 002F16C8 3B E0 00 00 */ li r31, 0 /* 802F5A6C 002F16CC 4B F7 8C F1 */ bl OSDisableInterrupts /* 802F5A70 002F16D0 88 0D AF 58 */ lbz r0, lbl_80640218-_SDA_BASE_(r13) /* 802F5A74 002F16D4 2C 00 00 03 */ cmpwi r0, 3 /* 802F5A78 002F16D8 40 80 00 14 */ bge lbl_802F5A8C /* 802F5A7C 002F16DC 2C 00 00 01 */ cmpwi r0, 1 /* 802F5A80 002F16E0 40 80 00 08 */ bge lbl_802F5A88 /* 802F5A84 002F16E4 48 00 00 08 */ b lbl_802F5A8C lbl_802F5A88: /* 802F5A88 002F16E8 3B E0 00 01 */ li r31, 1 lbl_802F5A8C: /* 802F5A8C 002F16EC 4B F7 8C F9 */ bl OSRestoreInterrupts /* 802F5A90 002F16F0 7F E3 FB 78 */ mr r3, r31 /* 802F5A94 002F16F4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802F5A98 002F16F8 80 01 00 14 */ lwz r0, 0x14(r1) /* 802F5A9C 002F16FC 7C 08 03 A6 */ mtlr r0 /* 802F5AA0 002F1700 38 21 00 10 */ addi r1, r1, 0x10 /* 802F5AA4 002F1704 4E 80 00 20 */ blr .global SOiAlloc SOiAlloc: /* 802F5AA8 002F1708 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F5AAC 002F170C 7C 08 02 A6 */ mflr r0 /* 802F5AB0 002F1710 2C 04 00 00 */ cmpwi r4, 0 /* 802F5AB4 002F1714 90 01 00 24 */ stw r0, 0x24(r1) /* 802F5AB8 002F1718 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802F5ABC 002F171C 93 C1 00 18 */ stw r30, 0x18(r1) /* 802F5AC0 002F1720 7C 9E 23 78 */ mr r30, r4 /* 802F5AC4 002F1724 93 A1 00 14 */ stw r29, 0x14(r1) /* 802F5AC8 002F1728 7C 7D 1B 78 */ mr r29, r3 /* 802F5ACC 002F172C 40 81 00 A4 */ ble lbl_802F5B70 /* 802F5AD0 002F1730 3F E0 80 58 */ lis r31, lbl_8057AAB8@ha /* 802F5AD4 002F1734 81 9F AA B8 */ lwz r12, lbl_8057AAB8@l(r31) /* 802F5AD8 002F1738 2C 0C 00 00 */ cmpwi r12, 0 /* 802F5ADC 002F173C 41 82 00 94 */ beq lbl_802F5B70 /* 802F5AE0 002F1740 7D 89 03 A6 */ mtctr r12 /* 802F5AE4 002F1744 4E 80 04 21 */ bctrl /* 802F5AE8 002F1748 2C 03 00 00 */ cmpwi r3, 0 /* 802F5AEC 002F174C 7C 64 1B 78 */ mr r4, r3 /* 802F5AF0 002F1750 41 82 00 78 */ beq lbl_802F5B68 /* 802F5AF4 002F1754 38 DF AA B8 */ addi r6, r31, -21832 /* 802F5AF8 002F1758 80 0D 8C 0C */ lwz r0, lbl_8063DECC-_SDA_BASE_(r13) /* 802F5AFC 002F175C 80 A6 00 14 */ lwz r5, 0x14(r6) /* 802F5B00 002F1760 2C 00 00 00 */ cmpwi r0, 0 /* 802F5B04 002F1764 38 05 00 01 */ addi r0, r5, 1 /* 802F5B08 002F1768 90 06 00 14 */ stw r0, 0x14(r6) /* 802F5B0C 002F176C 41 82 00 5C */ beq lbl_802F5B68 /* 802F5B10 002F1770 54 65 00 FE */ clrlwi r5, r3, 3 /* 802F5B14 002F1774 3C 00 10 00 */ lis r0, 0x1000 /* 802F5B18 002F1778 7C 05 00 40 */ cmplw r5, r0 /* 802F5B1C 002F177C 41 80 00 10 */ blt lbl_802F5B2C /* 802F5B20 002F1780 3C 00 18 00 */ lis r0, 0x1800 /* 802F5B24 002F1784 7C 05 00 40 */ cmplw r5, r0 /* 802F5B28 002F1788 41 80 00 40 */ blt lbl_802F5B68 lbl_802F5B2C: /* 802F5B2C 002F178C 2C 03 00 00 */ cmpwi r3, 0 /* 802F5B30 002F1790 41 82 00 34 */ beq lbl_802F5B64 /* 802F5B34 002F1794 3C C0 80 58 */ lis r6, lbl_8057AAB8@ha /* 802F5B38 002F1798 38 C6 AA B8 */ addi r6, r6, lbl_8057AAB8@l /* 802F5B3C 002F179C 81 86 00 04 */ lwz r12, 4(r6) /* 802F5B40 002F17A0 2C 0C 00 00 */ cmpwi r12, 0 /* 802F5B44 002F17A4 41 82 00 20 */ beq lbl_802F5B64 /* 802F5B48 002F17A8 80 A6 00 14 */ lwz r5, 0x14(r6) /* 802F5B4C 002F17AC 7F A3 EB 78 */ mr r3, r29 /* 802F5B50 002F17B0 38 05 FF FF */ addi r0, r5, -1 /* 802F5B54 002F17B4 7F C5 F3 78 */ mr r5, r30 /* 802F5B58 002F17B8 90 06 00 14 */ stw r0, 0x14(r6) /* 802F5B5C 002F17BC 7D 89 03 A6 */ mtctr r12 /* 802F5B60 002F17C0 4E 80 04 21 */ bctrl lbl_802F5B64: /* 802F5B64 002F17C4 38 80 00 00 */ li r4, 0 lbl_802F5B68: /* 802F5B68 002F17C8 7C 83 23 78 */ mr r3, r4 /* 802F5B6C 002F17CC 48 00 00 08 */ b lbl_802F5B74 lbl_802F5B70: /* 802F5B70 002F17D0 38 60 00 00 */ li r3, 0 lbl_802F5B74: /* 802F5B74 002F17D4 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F5B78 002F17D8 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802F5B7C 002F17DC 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802F5B80 002F17E0 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802F5B84 002F17E4 7C 08 03 A6 */ mtlr r0 /* 802F5B88 002F17E8 38 21 00 20 */ addi r1, r1, 0x20 /* 802F5B8C 002F17EC 4E 80 00 20 */ blr .global SOiFree SOiFree: /* 802F5B90 002F17F0 2C 04 00 00 */ cmpwi r4, 0 /* 802F5B94 002F17F4 4D 82 00 20 */ beqlr /* 802F5B98 002F17F8 3C E0 80 58 */ lis r7, lbl_8057AAB8@ha /* 802F5B9C 002F17FC 38 E7 AA B8 */ addi r7, r7, lbl_8057AAB8@l /* 802F5BA0 002F1800 81 87 00 04 */ lwz r12, 4(r7) /* 802F5BA4 002F1804 2C 0C 00 00 */ cmpwi r12, 0 /* 802F5BA8 002F1808 4D 82 00 20 */ beqlr /* 802F5BAC 002F180C 80 C7 00 14 */ lwz r6, 0x14(r7) /* 802F5BB0 002F1810 38 06 FF FF */ addi r0, r6, -1 /* 802F5BB4 002F1814 90 07 00 14 */ stw r0, 0x14(r7) /* 802F5BB8 002F1818 7D 89 03 A6 */ mtctr r12 /* 802F5BBC 002F181C 4E 80 04 20 */ bctr /* 802F5BC0 002F1820 4E 80 00 20 */ blr .global SOiPrepare SOiPrepare: /* 802F5BC4 002F1824 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F5BC8 002F1828 7C 08 02 A6 */ mflr r0 /* 802F5BCC 002F182C 90 01 00 24 */ stw r0, 0x24(r1) /* 802F5BD0 002F1830 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802F5BD4 002F1834 93 C1 00 18 */ stw r30, 0x18(r1) /* 802F5BD8 002F1838 3B C0 00 00 */ li r30, 0 /* 802F5BDC 002F183C 93 A1 00 14 */ stw r29, 0x14(r1) /* 802F5BE0 002F1840 93 81 00 10 */ stw r28, 0x10(r1) /* 802F5BE4 002F1844 7C 9C 23 78 */ mr r28, r4 /* 802F5BE8 002F1848 4B F7 8B 75 */ bl OSDisableInterrupts /* 802F5BEC 002F184C 88 0D AF 58 */ lbz r0, lbl_80640218-_SDA_BASE_(r13) /* 802F5BF0 002F1850 7C 7D 1B 78 */ mr r29, r3 /* 802F5BF4 002F1854 2C 00 00 01 */ cmpwi r0, 1 /* 802F5BF8 002F1858 41 82 00 28 */ beq lbl_802F5C20 /* 802F5BFC 002F185C 40 80 00 10 */ bge lbl_802F5C0C /* 802F5C00 002F1860 2C 00 00 00 */ cmpwi r0, 0 /* 802F5C04 002F1864 40 80 00 14 */ bge lbl_802F5C18 /* 802F5C08 002F1868 48 00 00 18 */ b lbl_802F5C20 lbl_802F5C0C: /* 802F5C0C 002F186C 2C 00 00 03 */ cmpwi r0, 3 /* 802F5C10 002F1870 40 80 00 10 */ bge lbl_802F5C20 /* 802F5C14 002F1874 48 00 00 14 */ b lbl_802F5C28 lbl_802F5C18: /* 802F5C18 002F1878 3B C0 FF D9 */ li r30, -39 /* 802F5C1C 002F187C 48 00 00 44 */ b lbl_802F5C60 lbl_802F5C20: /* 802F5C20 002F1880 3B C0 FF E4 */ li r30, -28 /* 802F5C24 002F1884 48 00 00 3C */ b lbl_802F5C60 lbl_802F5C28: /* 802F5C28 002F1888 3F E0 80 58 */ lis r31, lbl_8057AAB8@ha /* 802F5C2C 002F188C 3B FF AA B8 */ addi r31, r31, lbl_8057AAB8@l /* 802F5C30 002F1890 80 1F 00 08 */ lwz r0, 8(r31) /* 802F5C34 002F1894 2C 00 00 00 */ cmpwi r0, 0 /* 802F5C38 002F1898 40 80 00 0C */ bge lbl_802F5C44 /* 802F5C3C 002F189C 3B C0 FF F6 */ li r30, -10 /* 802F5C40 002F18A0 48 00 00 20 */ b lbl_802F5C60 lbl_802F5C44: /* 802F5C44 002F18A4 4B F7 B6 B5 */ bl OSGetCurrentThread /* 802F5C48 002F18A8 2C 03 00 00 */ cmpwi r3, 0 /* 802F5C4C 002F18AC 40 82 00 0C */ bne lbl_802F5C58 /* 802F5C50 002F18B0 3F C0 80 00 */ lis r30, 0x8000 /* 802F5C54 002F18B4 48 00 00 0C */ b lbl_802F5C60 lbl_802F5C58: /* 802F5C58 002F18B8 80 1F 00 0C */ lwz r0, 0xc(r31) /* 802F5C5C 002F18BC 90 1C 00 00 */ stw r0, 0(r28) lbl_802F5C60: /* 802F5C60 002F18C0 2C 1E 00 00 */ cmpwi r30, 0 /* 802F5C64 002F18C4 41 82 00 1C */ beq lbl_802F5C80 /* 802F5C68 002F18C8 4B F7 B6 91 */ bl OSGetCurrentThread /* 802F5C6C 002F18CC 2C 03 00 00 */ cmpwi r3, 0 /* 802F5C70 002F18D0 41 82 00 0C */ beq lbl_802F5C7C /* 802F5C74 002F18D4 93 C3 03 0C */ stw r30, 0x30c(r3) /* 802F5C78 002F18D8 48 00 00 08 */ b lbl_802F5C80 lbl_802F5C7C: /* 802F5C7C 002F18DC 93 CD AF 5C */ stw r30, lbl_8064021C-_SDA_BASE_(r13) lbl_802F5C80: /* 802F5C80 002F18E0 7F A3 EB 78 */ mr r3, r29 /* 802F5C84 002F18E4 4B F7 8B 01 */ bl OSRestoreInterrupts /* 802F5C88 002F18E8 7F C3 F3 78 */ mr r3, r30 /* 802F5C8C 002F18EC 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802F5C90 002F18F0 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802F5C94 002F18F4 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802F5C98 002F18F8 83 81 00 10 */ lwz r28, 0x10(r1) /* 802F5C9C 002F18FC 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F5CA0 002F1900 7C 08 03 A6 */ mtlr r0 /* 802F5CA4 002F1904 38 21 00 20 */ addi r1, r1, 0x20 /* 802F5CA8 002F1908 4E 80 00 20 */ blr .global SOiConclude SOiConclude: /* 802F5CAC 002F190C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802F5CB0 002F1910 7C 08 02 A6 */ mflr r0 /* 802F5CB4 002F1914 90 01 00 14 */ stw r0, 0x14(r1) /* 802F5CB8 002F1918 93 E1 00 0C */ stw r31, 0xc(r1) /* 802F5CBC 002F191C 93 C1 00 08 */ stw r30, 8(r1) /* 802F5CC0 002F1920 7C 9E 23 78 */ mr r30, r4 /* 802F5CC4 002F1924 4B F7 8A 99 */ bl OSDisableInterrupts /* 802F5CC8 002F1928 7C 7F 1B 78 */ mr r31, r3 /* 802F5CCC 002F192C 4B F7 B6 2D */ bl OSGetCurrentThread /* 802F5CD0 002F1930 2C 03 00 00 */ cmpwi r3, 0 /* 802F5CD4 002F1934 41 82 00 0C */ beq lbl_802F5CE0 /* 802F5CD8 002F1938 93 C3 03 0C */ stw r30, 0x30c(r3) /* 802F5CDC 002F193C 48 00 00 08 */ b lbl_802F5CE4 lbl_802F5CE0: /* 802F5CE0 002F1940 93 CD AF 5C */ stw r30, lbl_8064021C-_SDA_BASE_(r13) lbl_802F5CE4: /* 802F5CE4 002F1944 7F E3 FB 78 */ mr r3, r31 /* 802F5CE8 002F1948 4B F7 8A 9D */ bl OSRestoreInterrupts /* 802F5CEC 002F194C 7F C3 F3 78 */ mr r3, r30 /* 802F5CF0 002F1950 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802F5CF4 002F1954 83 C1 00 08 */ lwz r30, 8(r1) /* 802F5CF8 002F1958 80 01 00 14 */ lwz r0, 0x14(r1) /* 802F5CFC 002F195C 7C 08 03 A6 */ mtlr r0 /* 802F5D00 002F1960 38 21 00 10 */ addi r1, r1, 0x10 /* 802F5D04 002F1964 4E 80 00 20 */ blr .global SOiPrepareTempRm SOiPrepareTempRm: /* 802F5D08 002F1968 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F5D0C 002F196C 7C 08 02 A6 */ mflr r0 /* 802F5D10 002F1970 90 01 00 24 */ stw r0, 0x24(r1) /* 802F5D14 002F1974 39 61 00 20 */ addi r11, r1, 0x20 /* 802F5D18 002F1978 4B ED 14 0D */ bl _savegpr_26 /* 802F5D1C 002F197C 7C 7A 1B 78 */ mr r26, r3 /* 802F5D20 002F1980 7C 9B 23 78 */ mr r27, r4 /* 802F5D24 002F1984 7C BC 2B 78 */ mr r28, r5 /* 802F5D28 002F1988 3B C0 00 00 */ li r30, 0 /* 802F5D2C 002F198C 4B F7 8A 31 */ bl OSDisableInterrupts /* 802F5D30 002F1990 88 0D AF 58 */ lbz r0, lbl_80640218-_SDA_BASE_(r13) /* 802F5D34 002F1994 7C 7D 1B 78 */ mr r29, r3 /* 802F5D38 002F1998 2C 00 00 01 */ cmpwi r0, 1 /* 802F5D3C 002F199C 41 82 00 28 */ beq lbl_802F5D64 /* 802F5D40 002F19A0 40 80 00 10 */ bge lbl_802F5D50 /* 802F5D44 002F19A4 2C 00 00 00 */ cmpwi r0, 0 /* 802F5D48 002F19A8 40 80 00 14 */ bge lbl_802F5D5C /* 802F5D4C 002F19AC 48 00 00 18 */ b lbl_802F5D64 lbl_802F5D50: /* 802F5D50 002F19B0 2C 00 00 03 */ cmpwi r0, 3 /* 802F5D54 002F19B4 40 80 00 10 */ bge lbl_802F5D64 /* 802F5D58 002F19B8 48 00 02 04 */ b lbl_802F5F5C lbl_802F5D5C: /* 802F5D5C 002F19BC 3B C0 FF D9 */ li r30, -39 /* 802F5D60 002F19C0 48 00 02 3C */ b lbl_802F5F9C lbl_802F5D64: /* 802F5D64 002F19C4 3F E0 80 58 */ lis r31, lbl_8057AAB8@ha /* 802F5D68 002F19C8 3B FF AA B8 */ addi r31, r31, lbl_8057AAB8@l /* 802F5D6C 002F19CC 80 1F 00 08 */ lwz r0, 8(r31) /* 802F5D70 002F19D0 2C 00 FF FE */ cmpwi r0, -2 /* 802F5D74 002F19D4 40 81 00 0C */ ble lbl_802F5D80 /* 802F5D78 002F19D8 3B C0 FF F6 */ li r30, -10 /* 802F5D7C 002F19DC 48 00 02 20 */ b lbl_802F5F9C lbl_802F5D80: /* 802F5D80 002F19E0 4B F7 B5 79 */ bl OSGetCurrentThread /* 802F5D84 002F19E4 2C 03 00 00 */ cmpwi r3, 0 /* 802F5D88 002F19E8 40 82 00 0C */ bne lbl_802F5D94 /* 802F5D8C 002F19EC 3F C0 80 00 */ lis r30, 0x8000 /* 802F5D90 002F19F0 48 00 02 0C */ b lbl_802F5F9C lbl_802F5D94: /* 802F5D94 002F19F4 38 00 FF FF */ li r0, -1 /* 802F5D98 002F19F8 7F A3 EB 78 */ mr r3, r29 /* 802F5D9C 002F19FC 90 1F 00 08 */ stw r0, 8(r31) /* 802F5DA0 002F1A00 4B F7 89 E5 */ bl OSRestoreInterrupts /* 802F5DA4 002F1A04 3C 60 80 44 */ lis r3, lbl_80445E48@ha /* 802F5DA8 002F1A08 38 80 00 00 */ li r4, 0 /* 802F5DAC 002F1A0C 38 63 5E 48 */ addi r3, r3, lbl_80445E48@l /* 802F5DB0 002F1A10 4B FA D3 A9 */ bl IOS_Open /* 802F5DB4 002F1A14 2C 03 00 00 */ cmpwi r3, 0 /* 802F5DB8 002F1A18 90 7F 00 0C */ stw r3, 0xc(r31) /* 802F5DBC 002F1A1C 40 80 00 30 */ bge lbl_802F5DEC /* 802F5DC0 002F1A20 4B F7 89 9D */ bl OSDisableInterrupts /* 802F5DC4 002F1A24 80 1F 00 0C */ lwz r0, 0xc(r31) /* 802F5DC8 002F1A28 7C 7D 1B 78 */ mr r29, r3 /* 802F5DCC 002F1A2C 2C 00 FF FA */ cmpwi r0, -6 /* 802F5DD0 002F1A30 40 82 00 14 */ bne lbl_802F5DE4 /* 802F5DD4 002F1A34 38 00 FF FE */ li r0, -2 /* 802F5DD8 002F1A38 3B C0 FF E6 */ li r30, -26 /* 802F5DDC 002F1A3C 90 1F 00 08 */ stw r0, 8(r31) /* 802F5DE0 002F1A40 48 00 01 BC */ b lbl_802F5F9C lbl_802F5DE4: /* 802F5DE4 002F1A44 3F C0 80 00 */ lis r30, 0x8000 /* 802F5DE8 002F1A48 48 00 01 B4 */ b lbl_802F5F9C lbl_802F5DEC: /* 802F5DEC 002F1A4C 90 7B 00 00 */ stw r3, 0(r27) /* 802F5DF0 002F1A50 48 00 DF A1 */ bl NWC24iLockSocket /* 802F5DF4 002F1A54 2C 03 00 00 */ cmpwi r3, 0 /* 802F5DF8 002F1A58 40 82 00 D8 */ bne lbl_802F5ED0 /* 802F5DFC 002F1A5C 4B FF 77 29 */ bl NCDGetLinkStatus /* 802F5E00 002F1A60 2C 03 00 00 */ cmpwi r3, 0 /* 802F5E04 002F1A64 40 80 00 1C */ bge lbl_802F5E20 /* 802F5E08 002F1A68 2C 03 FF F8 */ cmpwi r3, -8 /* 802F5E0C 002F1A6C 41 82 00 74 */ beq lbl_802F5E80 /* 802F5E10 002F1A70 41 80 00 A0 */ blt lbl_802F5EB0 /* 802F5E14 002F1A74 2C 03 FF FE */ cmpwi r3, -2 /* 802F5E18 002F1A78 40 80 00 80 */ bge lbl_802F5E98 /* 802F5E1C 002F1A7C 48 00 00 94 */ b lbl_802F5EB0 lbl_802F5E20: /* 802F5E20 002F1A80 2C 03 00 06 */ cmpwi r3, 6 /* 802F5E24 002F1A84 40 80 00 8C */ bge lbl_802F5EB0 /* 802F5E28 002F1A88 2C 03 00 03 */ cmpwi r3, 3 /* 802F5E2C 002F1A8C 40 80 00 08 */ bge lbl_802F5E34 /* 802F5E30 002F1A90 48 00 00 80 */ b lbl_802F5EB0 lbl_802F5E34: /* 802F5E34 002F1A94 80 7F 00 0C */ lwz r3, 0xc(r31) /* 802F5E38 002F1A98 38 80 00 1F */ li r4, 0x1f /* 802F5E3C 002F1A9C 38 A0 00 00 */ li r5, 0 /* 802F5E40 002F1AA0 38 C0 00 00 */ li r6, 0 /* 802F5E44 002F1AA4 38 E0 00 00 */ li r7, 0 /* 802F5E48 002F1AA8 39 00 00 00 */ li r8, 0 /* 802F5E4C 002F1AAC 4B FA DC A5 */ bl IOS_Ioctl /* 802F5E50 002F1AB0 2C 03 00 00 */ cmpwi r3, 0 /* 802F5E54 002F1AB4 7C 7E 1B 78 */ mr r30, r3 /* 802F5E58 002F1AB8 40 82 00 10 */ bne lbl_802F5E68 /* 802F5E5C 002F1ABC 38 00 00 01 */ li r0, 1 /* 802F5E60 002F1AC0 90 1C 00 00 */ stw r0, 0(r28) /* 802F5E64 002F1AC4 48 00 00 60 */ b lbl_802F5EC4 lbl_802F5E68: /* 802F5E68 002F1AC8 7F 43 D3 78 */ mr r3, r26 /* 802F5E6C 002F1ACC 7F C4 F3 78 */ mr r4, r30 /* 802F5E70 002F1AD0 38 A0 00 01 */ li r5, 1 /* 802F5E74 002F1AD4 48 00 01 6D */ bl SOiConcludeTempRm /* 802F5E78 002F1AD8 7C 7E 1B 78 */ mr r30, r3 /* 802F5E7C 002F1ADC 48 00 00 48 */ b lbl_802F5EC4 lbl_802F5E80: /* 802F5E80 002F1AE0 7F 43 D3 78 */ mr r3, r26 /* 802F5E84 002F1AE4 38 80 FF E6 */ li r4, -26 /* 802F5E88 002F1AE8 38 A0 00 01 */ li r5, 1 /* 802F5E8C 002F1AEC 48 00 01 55 */ bl SOiConcludeTempRm /* 802F5E90 002F1AF0 7C 7E 1B 78 */ mr r30, r3 /* 802F5E94 002F1AF4 48 00 00 30 */ b lbl_802F5EC4 lbl_802F5E98: /* 802F5E98 002F1AF8 7F 43 D3 78 */ mr r3, r26 /* 802F5E9C 002F1AFC 3C 80 80 00 */ lis r4, 0x8000 /* 802F5EA0 002F1B00 38 A0 00 01 */ li r5, 1 /* 802F5EA4 002F1B04 48 00 01 3D */ bl SOiConcludeTempRm /* 802F5EA8 002F1B08 7C 7E 1B 78 */ mr r30, r3 /* 802F5EAC 002F1B0C 48 00 00 18 */ b lbl_802F5EC4 lbl_802F5EB0: /* 802F5EB0 002F1B10 7F 43 D3 78 */ mr r3, r26 /* 802F5EB4 002F1B14 38 80 FF D0 */ li r4, -48 /* 802F5EB8 002F1B18 38 A0 00 01 */ li r5, 1 /* 802F5EBC 002F1B1C 48 00 01 25 */ bl SOiConcludeTempRm /* 802F5EC0 002F1B20 7C 7E 1B 78 */ mr r30, r3 lbl_802F5EC4: /* 802F5EC4 002F1B24 4B F7 88 99 */ bl OSDisableInterrupts /* 802F5EC8 002F1B28 7C 7D 1B 78 */ mr r29, r3 /* 802F5ECC 002F1B2C 48 00 00 D0 */ b lbl_802F5F9C lbl_802F5ED0: /* 802F5ED0 002F1B30 38 03 00 1D */ addi r0, r3, 0x1d /* 802F5ED4 002F1B34 28 00 00 1C */ cmplwi r0, 0x1c /* 802F5ED8 002F1B38 41 81 00 34 */ bgt lbl_802F5F0C /* 802F5EDC 002F1B3C 3C 60 80 44 */ lis r3, lbl_80445F68@ha /* 802F5EE0 002F1B40 54 00 10 3A */ slwi r0, r0, 2 /* 802F5EE4 002F1B44 38 63 5F 68 */ addi r3, r3, lbl_80445F68@l /* 802F5EE8 002F1B48 7C 63 00 2E */ lwzx r3, r3, r0 /* 802F5EEC 002F1B4C 7C 69 03 A6 */ mtctr r3 /* 802F5EF0 002F1B50 4E 80 04 20 */ bctr /* 802F5EF4 002F1B54 3B C0 FF E6 */ li r30, -26 /* 802F5EF8 002F1B58 48 00 00 18 */ b lbl_802F5F10 /* 802F5EFC 002F1B5C 3B C0 FF D9 */ li r30, -39 /* 802F5F00 002F1B60 48 00 00 10 */ b lbl_802F5F10 /* 802F5F04 002F1B64 3B C0 FF D0 */ li r30, -48 /* 802F5F08 002F1B68 48 00 00 08 */ b lbl_802F5F10 lbl_802F5F0C: /* 802F5F0C 002F1B6C 3F C0 80 00 */ lis r30, 0x8000 lbl_802F5F10: /* 802F5F10 002F1B70 3C 60 80 58 */ lis r3, lbl_8057AAB8@ha /* 802F5F14 002F1B74 38 63 AA B8 */ addi r3, r3, lbl_8057AAB8@l /* 802F5F18 002F1B78 80 63 00 0C */ lwz r3, 0xc(r3) /* 802F5F1C 002F1B7C 4B FA D4 1D */ bl IOS_Close /* 802F5F20 002F1B80 2C 03 00 00 */ cmpwi r3, 0 /* 802F5F24 002F1B84 40 80 00 08 */ bge lbl_802F5F2C /* 802F5F28 002F1B88 3F C0 80 00 */ lis r30, 0x8000 lbl_802F5F2C: /* 802F5F2C 002F1B8C 4B F7 88 31 */ bl OSDisableInterrupts /* 802F5F30 002F1B90 3C 1E 80 00 */ addis r0, r30, 0x8000 /* 802F5F34 002F1B94 7C 7D 1B 78 */ mr r29, r3 /* 802F5F38 002F1B98 28 00 00 00 */ cmplwi r0, 0 /* 802F5F3C 002F1B9C 41 82 00 60 */ beq lbl_802F5F9C /* 802F5F40 002F1BA0 3C 60 80 58 */ lis r3, lbl_8057AAB8@ha /* 802F5F44 002F1BA4 38 80 FF FF */ li r4, -1 /* 802F5F48 002F1BA8 38 63 AA B8 */ addi r3, r3, lbl_8057AAB8@l /* 802F5F4C 002F1BAC 38 00 FF FE */ li r0, -2 /* 802F5F50 002F1BB0 90 83 00 0C */ stw r4, 0xc(r3) /* 802F5F54 002F1BB4 90 03 00 08 */ stw r0, 8(r3) /* 802F5F58 002F1BB8 48 00 00 44 */ b lbl_802F5F9C lbl_802F5F5C: /* 802F5F5C 002F1BBC 3F E0 80 58 */ lis r31, lbl_8057AAB8@ha /* 802F5F60 002F1BC0 3B FF AA B8 */ addi r31, r31, lbl_8057AAB8@l /* 802F5F64 002F1BC4 80 1F 00 08 */ lwz r0, 8(r31) /* 802F5F68 002F1BC8 2C 00 00 00 */ cmpwi r0, 0 /* 802F5F6C 002F1BCC 40 80 00 0C */ bge lbl_802F5F78 /* 802F5F70 002F1BD0 3B C0 FF F6 */ li r30, -10 /* 802F5F74 002F1BD4 48 00 00 28 */ b lbl_802F5F9C lbl_802F5F78: /* 802F5F78 002F1BD8 4B F7 B3 81 */ bl OSGetCurrentThread /* 802F5F7C 002F1BDC 2C 03 00 00 */ cmpwi r3, 0 /* 802F5F80 002F1BE0 40 82 00 0C */ bne lbl_802F5F8C /* 802F5F84 002F1BE4 3F C0 80 00 */ lis r30, 0x8000 /* 802F5F88 002F1BE8 48 00 00 14 */ b lbl_802F5F9C lbl_802F5F8C: /* 802F5F8C 002F1BEC 38 00 00 00 */ li r0, 0 /* 802F5F90 002F1BF0 90 1C 00 00 */ stw r0, 0(r28) /* 802F5F94 002F1BF4 80 1F 00 0C */ lwz r0, 0xc(r31) /* 802F5F98 002F1BF8 90 1B 00 00 */ stw r0, 0(r27) lbl_802F5F9C: /* 802F5F9C 002F1BFC 2C 1E 00 00 */ cmpwi r30, 0 /* 802F5FA0 002F1C00 41 82 00 1C */ beq lbl_802F5FBC /* 802F5FA4 002F1C04 4B F7 B3 55 */ bl OSGetCurrentThread /* 802F5FA8 002F1C08 2C 03 00 00 */ cmpwi r3, 0 /* 802F5FAC 002F1C0C 41 82 00 0C */ beq lbl_802F5FB8 /* 802F5FB0 002F1C10 93 C3 03 0C */ stw r30, 0x30c(r3) /* 802F5FB4 002F1C14 48 00 00 08 */ b lbl_802F5FBC lbl_802F5FB8: /* 802F5FB8 002F1C18 93 CD AF 5C */ stw r30, lbl_8064021C-_SDA_BASE_(r13) lbl_802F5FBC: /* 802F5FBC 002F1C1C 7F A3 EB 78 */ mr r3, r29 /* 802F5FC0 002F1C20 4B F7 87 C5 */ bl OSRestoreInterrupts /* 802F5FC4 002F1C24 39 61 00 20 */ addi r11, r1, 0x20 /* 802F5FC8 002F1C28 7F C3 F3 78 */ mr r3, r30 /* 802F5FCC 002F1C2C 4B ED 11 A5 */ bl _restgpr_26 /* 802F5FD0 002F1C30 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F5FD4 002F1C34 7C 08 03 A6 */ mtlr r0 /* 802F5FD8 002F1C38 38 21 00 20 */ addi r1, r1, 0x20 /* 802F5FDC 002F1C3C 4E 80 00 20 */ blr .global SOiConcludeTempRm SOiConcludeTempRm: /* 802F5FE0 002F1C40 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802F5FE4 002F1C44 7C 08 02 A6 */ mflr r0 /* 802F5FE8 002F1C48 2C 05 00 01 */ cmpwi r5, 1 /* 802F5FEC 002F1C4C 90 01 00 14 */ stw r0, 0x14(r1) /* 802F5FF0 002F1C50 93 E1 00 0C */ stw r31, 0xc(r1) /* 802F5FF4 002F1C54 93 C1 00 08 */ stw r30, 8(r1) /* 802F5FF8 002F1C58 7C 9E 23 78 */ mr r30, r4 /* 802F5FFC 002F1C5C 40 82 00 84 */ bne lbl_802F6080 /* 802F6000 002F1C60 48 00 DD A1 */ bl NWC24iUnlockSocket /* 802F6004 002F1C64 2C 03 FF FF */ cmpwi r3, -1 /* 802F6008 002F1C68 41 82 00 28 */ beq lbl_802F6030 /* 802F600C 002F1C6C 40 80 00 10 */ bge lbl_802F601C /* 802F6010 002F1C70 2C 03 FF E3 */ cmpwi r3, -29 /* 802F6014 002F1C74 41 82 00 14 */ beq lbl_802F6028 /* 802F6018 002F1C78 48 00 00 18 */ b lbl_802F6030 lbl_802F601C: /* 802F601C 002F1C7C 2C 03 00 01 */ cmpwi r3, 1 /* 802F6020 002F1C80 40 80 00 10 */ bge lbl_802F6030 /* 802F6024 002F1C84 48 00 00 10 */ b lbl_802F6034 lbl_802F6028: /* 802F6028 002F1C88 3B C0 FF E6 */ li r30, -26 /* 802F602C 002F1C8C 48 00 00 08 */ b lbl_802F6034 lbl_802F6030: /* 802F6030 002F1C90 3F C0 80 00 */ lis r30, 0x8000 lbl_802F6034: /* 802F6034 002F1C94 3C 60 80 58 */ lis r3, lbl_8057AAB8@ha /* 802F6038 002F1C98 38 63 AA B8 */ addi r3, r3, lbl_8057AAB8@l /* 802F603C 002F1C9C 80 63 00 0C */ lwz r3, 0xc(r3) /* 802F6040 002F1CA0 4B FA D2 F9 */ bl IOS_Close /* 802F6044 002F1CA4 2C 03 00 00 */ cmpwi r3, 0 /* 802F6048 002F1CA8 40 80 00 08 */ bge lbl_802F6050 /* 802F604C 002F1CAC 3F C0 80 00 */ lis r30, 0x8000 lbl_802F6050: /* 802F6050 002F1CB0 4B F7 87 0D */ bl OSDisableInterrupts /* 802F6054 002F1CB4 3C 1E 80 00 */ addis r0, r30, 0x8000 /* 802F6058 002F1CB8 7C 7F 1B 78 */ mr r31, r3 /* 802F605C 002F1CBC 28 00 00 00 */ cmplwi r0, 0 /* 802F6060 002F1CC0 41 82 00 28 */ beq lbl_802F6088 /* 802F6064 002F1CC4 3C 60 80 58 */ lis r3, lbl_8057AAB8@ha /* 802F6068 002F1CC8 38 80 FF FF */ li r4, -1 /* 802F606C 002F1CCC 38 63 AA B8 */ addi r3, r3, lbl_8057AAB8@l /* 802F6070 002F1CD0 38 00 FF FE */ li r0, -2 /* 802F6074 002F1CD4 90 83 00 0C */ stw r4, 0xc(r3) /* 802F6078 002F1CD8 90 03 00 08 */ stw r0, 8(r3) /* 802F607C 002F1CDC 48 00 00 0C */ b lbl_802F6088 lbl_802F6080: /* 802F6080 002F1CE0 4B F7 86 DD */ bl OSDisableInterrupts /* 802F6084 002F1CE4 7C 7F 1B 78 */ mr r31, r3 lbl_802F6088: /* 802F6088 002F1CE8 4B F7 B2 71 */ bl OSGetCurrentThread /* 802F608C 002F1CEC 2C 03 00 00 */ cmpwi r3, 0 /* 802F6090 002F1CF0 41 82 00 0C */ beq lbl_802F609C /* 802F6094 002F1CF4 93 C3 03 0C */ stw r30, 0x30c(r3) /* 802F6098 002F1CF8 48 00 00 08 */ b lbl_802F60A0 lbl_802F609C: /* 802F609C 002F1CFC 93 CD AF 5C */ stw r30, lbl_8064021C-_SDA_BASE_(r13) lbl_802F60A0: /* 802F60A0 002F1D00 7F E3 FB 78 */ mr r3, r31 /* 802F60A4 002F1D04 4B F7 86 E1 */ bl OSRestoreInterrupts /* 802F60A8 002F1D08 7F C3 F3 78 */ mr r3, r30 /* 802F60AC 002F1D0C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802F60B0 002F1D10 83 C1 00 08 */ lwz r30, 8(r1) /* 802F60B4 002F1D14 80 01 00 14 */ lwz r0, 0x14(r1) /* 802F60B8 002F1D18 7C 08 03 A6 */ mtlr r0 /* 802F60BC 002F1D1C 38 21 00 10 */ addi r1, r1, 0x10 /* 802F60C0 002F1D20 4E 80 00 20 */ blr .global SOiWaitForDHCPEx SOiWaitForDHCPEx: /* 802F60C4 002F1D24 94 21 FF C0 */ stwu r1, -0x40(r1) /* 802F60C8 002F1D28 7C 08 02 A6 */ mflr r0 /* 802F60CC 002F1D2C 90 01 00 44 */ stw r0, 0x44(r1) /* 802F60D0 002F1D30 39 61 00 40 */ addi r11, r1, 0x40 /* 802F60D4 002F1D34 4B ED 10 41 */ bl _savegpr_22 /* 802F60D8 002F1D38 2C 03 00 00 */ cmpwi r3, 0 /* 802F60DC 002F1D3C 7C 76 1B 78 */ mr r22, r3 /* 802F60E0 002F1D40 3B E0 00 00 */ li r31, 0 /* 802F60E4 002F1D44 3B A0 00 00 */ li r29, 0 /* 802F60E8 002F1D48 3B C0 00 00 */ li r30, 0 /* 802F60EC 002F1D4C 41 82 00 34 */ beq lbl_802F6120 /* 802F60F0 002F1D50 4B F7 C6 E9 */ bl __OSGetSystemTime /* 802F60F4 002F1D54 3C C0 80 00 */ lis r6, 0x800000F8@ha /* 802F60F8 002F1D58 3C A0 10 62 */ lis r5, 0x10624DD3@ha /* 802F60FC 002F1D5C 80 C6 00 F8 */ lwz r6, 0x800000F8@l(r6) /* 802F6100 002F1D60 38 E5 4D D3 */ addi r7, r5, 0x10624DD3@l /* 802F6104 002F1D64 38 00 00 00 */ li r0, 0 /* 802F6108 002F1D68 54 C5 F0 BE */ srwi r5, r6, 2 /* 802F610C 002F1D6C 7C A7 28 16 */ mulhwu r5, r7, r5 /* 802F6110 002F1D70 54 A5 D1 BE */ srwi r5, r5, 6 /* 802F6114 002F1D74 7C B6 29 D6 */ mullw r5, r22, r5 /* 802F6118 002F1D78 7F A5 20 14 */ addc r29, r5, r4 /* 802F611C 002F1D7C 7F C0 19 14 */ adde r30, r0, r3 lbl_802F6120: /* 802F6120 002F1D80 38 00 00 00 */ li r0, 0 /* 802F6124 002F1D84 3B 00 00 0A */ li r24, 0xa /* 802F6128 002F1D88 7F 20 C1 D6 */ mullw r25, r0, r24 /* 802F612C 002F1D8C 3C 60 10 62 */ lis r3, 0x10624DD3@ha /* 802F6130 002F1D90 7F BC F3 78 */ or r28, r29, r30 /* 802F6134 002F1D94 3A C3 4D D3 */ addi r22, r3, 0x10624DD3@l /* 802F6138 002F1D98 3B 40 00 04 */ li r26, 4 /* 802F613C 002F1D9C 3F 60 00 01 */ lis r27, 1 /* 802F6140 002F1DA0 3E E0 80 00 */ lis r23, 0x800000F8@ha lbl_802F6144: /* 802F6144 002F1DA4 80 17 00 F8 */ lwz r0, 0x800000F8@l(r23) /* 802F6148 002F1DA8 54 00 F0 BE */ srwi r0, r0, 2 /* 802F614C 002F1DAC 7C 16 00 16 */ mulhwu r0, r22, r0 /* 802F6150 002F1DB0 54 03 D1 BE */ srwi r3, r0, 6 /* 802F6154 002F1DB4 7C 03 C0 16 */ mulhwu r0, r3, r24 /* 802F6158 002F1DB8 1C 83 00 0A */ mulli r4, r3, 0xa /* 802F615C 002F1DBC 7C 60 CA 14 */ add r3, r0, r25 /* 802F6160 002F1DC0 4B F7 C5 A5 */ bl OSSleepTicks /* 802F6164 002F1DC4 93 41 00 08 */ stw r26, 8(r1) /* 802F6168 002F1DC8 38 9B FF FE */ addi r4, r27, -2 /* 802F616C 002F1DCC 38 C1 00 0C */ addi r6, r1, 0xc /* 802F6170 002F1DD0 38 E1 00 08 */ addi r7, r1, 8 /* 802F6174 002F1DD4 38 60 00 00 */ li r3, 0 /* 802F6178 002F1DD8 38 A0 10 03 */ li r5, 0x1003 /* 802F617C 002F1DDC 48 00 17 DD */ bl SOGetInterfaceOpt /* 802F6180 002F1DE0 2C 03 00 00 */ cmpwi r3, 0 /* 802F6184 002F1DE4 41 82 00 0C */ beq lbl_802F6190 /* 802F6188 002F1DE8 7C 7F 1B 78 */ mr r31, r3 /* 802F618C 002F1DEC 48 00 00 54 */ b lbl_802F61E0 lbl_802F6190: /* 802F6190 002F1DF0 40 82 00 18 */ bne lbl_802F61A8 /* 802F6194 002F1DF4 80 01 00 0C */ lwz r0, 0xc(r1) /* 802F6198 002F1DF8 2C 00 00 00 */ cmpwi r0, 0 /* 802F619C 002F1DFC 41 82 00 0C */ beq lbl_802F61A8 /* 802F61A0 002F1E00 7C 1F 03 78 */ mr r31, r0 /* 802F61A4 002F1E04 48 00 00 3C */ b lbl_802F61E0 lbl_802F61A8: /* 802F61A8 002F1E08 48 00 10 A9 */ bl SOGetHostID /* 802F61AC 002F1E0C 2C 03 00 00 */ cmpwi r3, 0 /* 802F61B0 002F1E10 40 82 00 30 */ bne lbl_802F61E0 /* 802F61B4 002F1E14 2C 1C 00 00 */ cmpwi r28, 0 /* 802F61B8 002F1E18 41 82 FF 8C */ beq lbl_802F6144 /* 802F61BC 002F1E1C 4B F7 C6 1D */ bl __OSGetSystemTime /* 802F61C0 002F1E20 6C 65 80 00 */ xoris r5, r3, 0x8000 /* 802F61C4 002F1E24 6F C0 80 00 */ xoris r0, r30, 0x8000 /* 802F61C8 002F1E28 7C 64 E8 10 */ subfc r3, r4, r29 /* 802F61CC 002F1E2C 7C A5 01 10 */ subfe r5, r5, r0 /* 802F61D0 002F1E30 7C A0 01 10 */ subfe r5, r0, r0 /* 802F61D4 002F1E34 7C A5 00 D1 */ neg. r5, r5 /* 802F61D8 002F1E38 41 82 FF 6C */ beq lbl_802F6144 /* 802F61DC 002F1E3C 3B E0 FF B4 */ li r31, -76 lbl_802F61E0: /* 802F61E0 002F1E40 39 61 00 40 */ addi r11, r1, 0x40 /* 802F61E4 002F1E44 7F E3 FB 78 */ mr r3, r31 /* 802F61E8 002F1E48 4B ED 0F 79 */ bl _restgpr_22 /* 802F61EC 002F1E4C 80 01 00 44 */ lwz r0, 0x44(r1) /* 802F61F0 002F1E50 7C 08 03 A6 */ mtlr r0 /* 802F61F4 002F1E54 38 21 00 40 */ addi r1, r1, 0x40 /* 802F61F8 002F1E58 4E 80 00 20 */ blr