.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global __SOCreateSocket __SOCreateSocket: /* 802F61FC 002F1E5C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F6200 002F1E60 7C 08 02 A6 */ mflr r0 /* 802F6204 002F1E64 90 01 00 24 */ stw r0, 0x24(r1) /* 802F6208 002F1E68 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802F620C 002F1E6C 7C BF 2B 78 */ mr r31, r5 /* 802F6210 002F1E70 93 C1 00 18 */ stw r30, 0x18(r1) /* 802F6214 002F1E74 93 A1 00 14 */ stw r29, 0x14(r1) /* 802F6218 002F1E78 7C 9D 23 78 */ mr r29, r4 /* 802F621C 002F1E7C 38 81 00 08 */ addi r4, r1, 8 /* 802F6220 002F1E80 93 81 00 10 */ stw r28, 0x10(r1) /* 802F6224 002F1E84 7C 7C 1B 78 */ mr r28, r3 /* 802F6228 002F1E88 38 60 00 00 */ li r3, 0 /* 802F622C 002F1E8C 4B FF F9 99 */ bl SOiPrepare /* 802F6230 002F1E90 2C 03 00 00 */ cmpwi r3, 0 /* 802F6234 002F1E94 40 82 00 7C */ bne lbl_802F62B0 /* 802F6238 002F1E98 2C 1C 00 17 */ cmpwi r28, 0x17 /* 802F623C 002F1E9C 40 82 00 0C */ bne lbl_802F6248 /* 802F6240 002F1EA0 3B E0 FF FB */ li r31, -5 /* 802F6244 002F1EA4 48 00 00 60 */ b lbl_802F62A4 lbl_802F6248: /* 802F6248 002F1EA8 38 60 00 0C */ li r3, 0xc /* 802F624C 002F1EAC 38 80 00 20 */ li r4, 0x20 /* 802F6250 002F1EB0 4B FF F8 59 */ bl SOiAlloc /* 802F6254 002F1EB4 2C 03 00 00 */ cmpwi r3, 0 /* 802F6258 002F1EB8 7C 7E 1B 78 */ mr r30, r3 /* 802F625C 002F1EBC 40 82 00 0C */ bne lbl_802F6268 /* 802F6260 002F1EC0 3B E0 FF CF */ li r31, -49 /* 802F6264 002F1EC4 48 00 00 40 */ b lbl_802F62A4 lbl_802F6268: /* 802F6268 002F1EC8 93 83 00 00 */ stw r28, 0(r3) /* 802F626C 002F1ECC 7F C5 F3 78 */ mr r5, r30 /* 802F6270 002F1ED0 38 80 00 0F */ li r4, 0xf /* 802F6274 002F1ED4 38 C0 00 0C */ li r6, 0xc /* 802F6278 002F1ED8 93 A3 00 04 */ stw r29, 4(r3) /* 802F627C 002F1EDC 38 E0 00 00 */ li r7, 0 /* 802F6280 002F1EE0 39 00 00 00 */ li r8, 0 /* 802F6284 002F1EE4 93 E3 00 08 */ stw r31, 8(r3) /* 802F6288 002F1EE8 80 61 00 08 */ lwz r3, 8(r1) /* 802F628C 002F1EEC 4B FA D8 65 */ bl IOS_Ioctl /* 802F6290 002F1EF0 7C 7F 1B 78 */ mr r31, r3 /* 802F6294 002F1EF4 7F C4 F3 78 */ mr r4, r30 /* 802F6298 002F1EF8 38 60 00 0C */ li r3, 0xc /* 802F629C 002F1EFC 38 A0 00 20 */ li r5, 0x20 /* 802F62A0 002F1F00 4B FF F8 F1 */ bl SOiFree lbl_802F62A4: /* 802F62A4 002F1F04 7F E4 FB 78 */ mr r4, r31 /* 802F62A8 002F1F08 38 60 00 00 */ li r3, 0 /* 802F62AC 002F1F0C 4B FF FA 01 */ bl SOiConclude lbl_802F62B0: /* 802F62B0 002F1F10 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F62B4 002F1F14 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802F62B8 002F1F18 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802F62BC 002F1F1C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802F62C0 002F1F20 83 81 00 10 */ lwz r28, 0x10(r1) /* 802F62C4 002F1F24 7C 08 03 A6 */ mtlr r0 /* 802F62C8 002F1F28 38 21 00 20 */ addi r1, r1, 0x20 /* 802F62CC 002F1F2C 4E 80 00 20 */ blr .global SOClose SOClose: /* 802F62D0 002F1F30 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F62D4 002F1F34 7C 08 02 A6 */ mflr r0 /* 802F62D8 002F1F38 90 01 00 24 */ stw r0, 0x24(r1) /* 802F62DC 002F1F3C 38 81 00 08 */ addi r4, r1, 8 /* 802F62E0 002F1F40 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802F62E4 002F1F44 7C 7F 1B 78 */ mr r31, r3 /* 802F62E8 002F1F48 38 60 00 00 */ li r3, 0 /* 802F62EC 002F1F4C 93 C1 00 18 */ stw r30, 0x18(r1) /* 802F62F0 002F1F50 4B FF F8 D5 */ bl SOiPrepare /* 802F62F4 002F1F54 2C 03 00 00 */ cmpwi r3, 0 /* 802F62F8 002F1F58 40 82 00 64 */ bne lbl_802F635C /* 802F62FC 002F1F5C 38 60 00 0C */ li r3, 0xc /* 802F6300 002F1F60 38 80 00 20 */ li r4, 0x20 /* 802F6304 002F1F64 4B FF F7 A5 */ bl SOiAlloc /* 802F6308 002F1F68 2C 03 00 00 */ cmpwi r3, 0 /* 802F630C 002F1F6C 7C 7E 1B 78 */ mr r30, r3 /* 802F6310 002F1F70 40 82 00 0C */ bne lbl_802F631C /* 802F6314 002F1F74 3B E0 FF CF */ li r31, -49 /* 802F6318 002F1F78 48 00 00 38 */ b lbl_802F6350 lbl_802F631C: /* 802F631C 002F1F7C 93 E3 00 00 */ stw r31, 0(r3) /* 802F6320 002F1F80 7F C5 F3 78 */ mr r5, r30 /* 802F6324 002F1F84 38 80 00 03 */ li r4, 3 /* 802F6328 002F1F88 38 C0 00 04 */ li r6, 4 /* 802F632C 002F1F8C 80 61 00 08 */ lwz r3, 8(r1) /* 802F6330 002F1F90 38 E0 00 00 */ li r7, 0 /* 802F6334 002F1F94 39 00 00 00 */ li r8, 0 /* 802F6338 002F1F98 4B FA D7 B9 */ bl IOS_Ioctl /* 802F633C 002F1F9C 7C 7F 1B 78 */ mr r31, r3 /* 802F6340 002F1FA0 7F C4 F3 78 */ mr r4, r30 /* 802F6344 002F1FA4 38 60 00 0C */ li r3, 0xc /* 802F6348 002F1FA8 38 A0 00 20 */ li r5, 0x20 /* 802F634C 002F1FAC 4B FF F8 45 */ bl SOiFree lbl_802F6350: /* 802F6350 002F1FB0 7F E4 FB 78 */ mr r4, r31 /* 802F6354 002F1FB4 38 60 00 00 */ li r3, 0 /* 802F6358 002F1FB8 4B FF F9 55 */ bl SOiConclude lbl_802F635C: /* 802F635C 002F1FBC 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F6360 002F1FC0 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802F6364 002F1FC4 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802F6368 002F1FC8 7C 08 03 A6 */ mtlr r0 /* 802F636C 002F1FCC 38 21 00 20 */ addi r1, r1, 0x20 /* 802F6370 002F1FD0 4E 80 00 20 */ blr .global SOListen SOListen: /* 802F6374 002F1FD4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F6378 002F1FD8 7C 08 02 A6 */ mflr r0 /* 802F637C 002F1FDC 90 01 00 24 */ stw r0, 0x24(r1) /* 802F6380 002F1FE0 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802F6384 002F1FE4 7C 9F 23 78 */ mr r31, r4 /* 802F6388 002F1FE8 38 81 00 08 */ addi r4, r1, 8 /* 802F638C 002F1FEC 93 C1 00 18 */ stw r30, 0x18(r1) /* 802F6390 002F1FF0 93 A1 00 14 */ stw r29, 0x14(r1) /* 802F6394 002F1FF4 7C 7D 1B 78 */ mr r29, r3 /* 802F6398 002F1FF8 38 60 00 00 */ li r3, 0 /* 802F639C 002F1FFC 4B FF F8 29 */ bl SOiPrepare /* 802F63A0 002F2000 2C 03 00 00 */ cmpwi r3, 0 /* 802F63A4 002F2004 40 82 00 68 */ bne lbl_802F640C /* 802F63A8 002F2008 38 60 00 0C */ li r3, 0xc /* 802F63AC 002F200C 38 80 00 20 */ li r4, 0x20 /* 802F63B0 002F2010 4B FF F6 F9 */ bl SOiAlloc /* 802F63B4 002F2014 2C 03 00 00 */ cmpwi r3, 0 /* 802F63B8 002F2018 7C 7E 1B 78 */ mr r30, r3 /* 802F63BC 002F201C 40 82 00 0C */ bne lbl_802F63C8 /* 802F63C0 002F2020 3B E0 FF CF */ li r31, -49 /* 802F63C4 002F2024 48 00 00 3C */ b lbl_802F6400 lbl_802F63C8: /* 802F63C8 002F2028 93 A3 00 00 */ stw r29, 0(r3) /* 802F63CC 002F202C 7F C5 F3 78 */ mr r5, r30 /* 802F63D0 002F2030 38 80 00 0A */ li r4, 0xa /* 802F63D4 002F2034 38 C0 00 08 */ li r6, 8 /* 802F63D8 002F2038 93 E3 00 04 */ stw r31, 4(r3) /* 802F63DC 002F203C 38 E0 00 00 */ li r7, 0 /* 802F63E0 002F2040 39 00 00 00 */ li r8, 0 /* 802F63E4 002F2044 80 61 00 08 */ lwz r3, 8(r1) /* 802F63E8 002F2048 4B FA D7 09 */ bl IOS_Ioctl /* 802F63EC 002F204C 7C 7F 1B 78 */ mr r31, r3 /* 802F63F0 002F2050 7F C4 F3 78 */ mr r4, r30 /* 802F63F4 002F2054 38 60 00 0C */ li r3, 0xc /* 802F63F8 002F2058 38 A0 00 20 */ li r5, 0x20 /* 802F63FC 002F205C 4B FF F7 95 */ bl SOiFree lbl_802F6400: /* 802F6400 002F2060 7F E4 FB 78 */ mr r4, r31 /* 802F6404 002F2064 38 60 00 00 */ li r3, 0 /* 802F6408 002F2068 4B FF F8 A5 */ bl SOiConclude lbl_802F640C: /* 802F640C 002F206C 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F6410 002F2070 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802F6414 002F2074 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802F6418 002F2078 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802F641C 002F207C 7C 08 03 A6 */ mtlr r0 /* 802F6420 002F2080 38 21 00 20 */ addi r1, r1, 0x20 /* 802F6424 002F2084 4E 80 00 20 */ blr .global SOAccept SOAccept: /* 802F6428 002F2088 94 21 FF D0 */ stwu r1, -0x30(r1) /* 802F642C 002F208C 7C 08 02 A6 */ mflr r0 /* 802F6430 002F2090 90 01 00 34 */ stw r0, 0x34(r1) /* 802F6434 002F2094 39 61 00 30 */ addi r11, r1, 0x30 /* 802F6438 002F2098 4B ED 0C F1 */ bl _savegpr_27 /* 802F643C 002F209C 7C 7C 1B 78 */ mr r28, r3 /* 802F6440 002F20A0 7C 9B 23 78 */ mr r27, r4 /* 802F6444 002F20A4 38 81 00 08 */ addi r4, r1, 8 /* 802F6448 002F20A8 38 60 00 00 */ li r3, 0 /* 802F644C 002F20AC 4B FF F7 79 */ bl SOiPrepare /* 802F6450 002F20B0 2C 03 00 00 */ cmpwi r3, 0 /* 802F6454 002F20B4 40 82 00 FC */ bne lbl_802F6550 /* 802F6458 002F20B8 2C 1B 00 00 */ cmpwi r27, 0 /* 802F645C 002F20BC 41 82 00 1C */ beq lbl_802F6478 /* 802F6460 002F20C0 88 1B 00 00 */ lbz r0, 0(r27) /* 802F6464 002F20C4 28 00 00 08 */ cmplwi r0, 8 /* 802F6468 002F20C8 41 81 00 08 */ bgt lbl_802F6470 /* 802F646C 002F20CC 40 80 00 0C */ bge lbl_802F6478 lbl_802F6470: /* 802F6470 002F20D0 3B C0 FF E4 */ li r30, -28 /* 802F6474 002F20D4 48 00 00 D0 */ b lbl_802F6544 lbl_802F6478: /* 802F6478 002F20D8 2C 1B 00 00 */ cmpwi r27, 0 /* 802F647C 002F20DC 40 82 00 0C */ bne lbl_802F6488 /* 802F6480 002F20E0 38 60 00 04 */ li r3, 4 /* 802F6484 002F20E4 48 00 00 0C */ b lbl_802F6490 lbl_802F6488: /* 802F6488 002F20E8 88 7B 00 00 */ lbz r3, 0(r27) /* 802F648C 002F20EC 38 63 00 20 */ addi r3, r3, 0x20 lbl_802F6490: /* 802F6490 002F20F0 38 03 00 1F */ addi r0, r3, 0x1f /* 802F6494 002F20F4 38 60 00 0C */ li r3, 0xc /* 802F6498 002F20F8 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a /* 802F649C 002F20FC 7F E4 FB 78 */ mr r4, r31 /* 802F64A0 002F2100 4B FF F6 09 */ bl SOiAlloc /* 802F64A4 002F2104 2C 03 00 00 */ cmpwi r3, 0 /* 802F64A8 002F2108 7C 7D 1B 78 */ mr r29, r3 /* 802F64AC 002F210C 40 82 00 0C */ bne lbl_802F64B8 /* 802F64B0 002F2110 3B C0 FF CF */ li r30, -49 /* 802F64B4 002F2114 48 00 00 90 */ b lbl_802F6544 lbl_802F64B8: /* 802F64B8 002F2118 2C 1B 00 00 */ cmpwi r27, 0 /* 802F64BC 002F211C 93 83 00 00 */ stw r28, 0(r3) /* 802F64C0 002F2120 3B 83 00 20 */ addi r28, r3, 0x20 /* 802F64C4 002F2124 40 82 00 28 */ bne lbl_802F64EC /* 802F64C8 002F2128 80 61 00 08 */ lwz r3, 8(r1) /* 802F64CC 002F212C 7F A5 EB 78 */ mr r5, r29 /* 802F64D0 002F2130 38 80 00 01 */ li r4, 1 /* 802F64D4 002F2134 38 C0 00 04 */ li r6, 4 /* 802F64D8 002F2138 38 E0 00 00 */ li r7, 0 /* 802F64DC 002F213C 39 00 00 00 */ li r8, 0 /* 802F64E0 002F2140 4B FA D6 11 */ bl IOS_Ioctl /* 802F64E4 002F2144 7C 7E 1B 78 */ mr r30, r3 /* 802F64E8 002F2148 48 00 00 4C */ b lbl_802F6534 lbl_802F64EC: /* 802F64EC 002F214C 88 BB 00 00 */ lbz r5, 0(r27) /* 802F64F0 002F2150 7F 83 E3 78 */ mr r3, r28 /* 802F64F4 002F2154 7F 64 DB 78 */ mr r4, r27 /* 802F64F8 002F2158 4B D0 DB 09 */ bl memcpy /* 802F64FC 002F215C 80 61 00 08 */ lwz r3, 8(r1) /* 802F6500 002F2160 7F A5 EB 78 */ mr r5, r29 /* 802F6504 002F2164 89 1B 00 00 */ lbz r8, 0(r27) /* 802F6508 002F2168 7F 87 E3 78 */ mr r7, r28 /* 802F650C 002F216C 38 80 00 01 */ li r4, 1 /* 802F6510 002F2170 38 C0 00 04 */ li r6, 4 /* 802F6514 002F2174 4B FA D5 DD */ bl IOS_Ioctl /* 802F6518 002F2178 2C 03 00 00 */ cmpwi r3, 0 /* 802F651C 002F217C 7C 7E 1B 78 */ mr r30, r3 /* 802F6520 002F2180 41 80 00 14 */ blt lbl_802F6534 /* 802F6524 002F2184 88 BC 00 00 */ lbz r5, 0(r28) /* 802F6528 002F2188 7F 63 DB 78 */ mr r3, r27 /* 802F652C 002F218C 7F 84 E3 78 */ mr r4, r28 /* 802F6530 002F2190 4B D0 DA D1 */ bl memcpy lbl_802F6534: /* 802F6534 002F2194 7F A4 EB 78 */ mr r4, r29 /* 802F6538 002F2198 7F E5 FB 78 */ mr r5, r31 /* 802F653C 002F219C 38 60 00 0C */ li r3, 0xc /* 802F6540 002F21A0 4B FF F6 51 */ bl SOiFree lbl_802F6544: /* 802F6544 002F21A4 7F C4 F3 78 */ mr r4, r30 /* 802F6548 002F21A8 38 60 00 00 */ li r3, 0 /* 802F654C 002F21AC 4B FF F7 61 */ bl SOiConclude lbl_802F6550: /* 802F6550 002F21B0 39 61 00 30 */ addi r11, r1, 0x30 /* 802F6554 002F21B4 4B ED 0C 21 */ bl _restgpr_27 /* 802F6558 002F21B8 80 01 00 34 */ lwz r0, 0x34(r1) /* 802F655C 002F21BC 7C 08 03 A6 */ mtlr r0 /* 802F6560 002F21C0 38 21 00 30 */ addi r1, r1, 0x30 /* 802F6564 002F21C4 4E 80 00 20 */ blr .global SOBind SOBind: /* 802F6568 002F21C8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F656C 002F21CC 7C 08 02 A6 */ mflr r0 /* 802F6570 002F21D0 90 01 00 24 */ stw r0, 0x24(r1) /* 802F6574 002F21D4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802F6578 002F21D8 7C 9F 23 78 */ mr r31, r4 /* 802F657C 002F21DC 38 81 00 08 */ addi r4, r1, 8 /* 802F6580 002F21E0 93 C1 00 18 */ stw r30, 0x18(r1) /* 802F6584 002F21E4 93 A1 00 14 */ stw r29, 0x14(r1) /* 802F6588 002F21E8 7C 7D 1B 78 */ mr r29, r3 /* 802F658C 002F21EC 38 60 00 00 */ li r3, 0 /* 802F6590 002F21F0 4B FF F6 35 */ bl SOiPrepare /* 802F6594 002F21F4 2C 03 00 00 */ cmpwi r3, 0 /* 802F6598 002F21F8 40 82 00 9C */ bne lbl_802F6634 /* 802F659C 002F21FC 2C 1F 00 00 */ cmpwi r31, 0 /* 802F65A0 002F2200 41 82 00 14 */ beq lbl_802F65B4 /* 802F65A4 002F2204 88 1F 00 00 */ lbz r0, 0(r31) /* 802F65A8 002F2208 28 00 00 08 */ cmplwi r0, 8 /* 802F65AC 002F220C 41 81 00 08 */ bgt lbl_802F65B4 /* 802F65B0 002F2210 40 80 00 0C */ bge lbl_802F65BC lbl_802F65B4: /* 802F65B4 002F2214 3B E0 FF E4 */ li r31, -28 /* 802F65B8 002F2218 48 00 00 70 */ b lbl_802F6628 lbl_802F65BC: /* 802F65BC 002F221C 38 60 00 0C */ li r3, 0xc /* 802F65C0 002F2220 38 80 00 40 */ li r4, 0x40 /* 802F65C4 002F2224 4B FF F4 E5 */ bl SOiAlloc /* 802F65C8 002F2228 2C 03 00 00 */ cmpwi r3, 0 /* 802F65CC 002F222C 7C 7E 1B 78 */ mr r30, r3 /* 802F65D0 002F2230 40 82 00 0C */ bne lbl_802F65DC /* 802F65D4 002F2234 3B E0 FF CF */ li r31, -49 /* 802F65D8 002F2238 48 00 00 50 */ b lbl_802F6628 lbl_802F65DC: /* 802F65DC 002F223C 93 A3 00 00 */ stw r29, 0(r3) /* 802F65E0 002F2240 38 00 00 01 */ li r0, 1 /* 802F65E4 002F2244 7F E4 FB 78 */ mr r4, r31 /* 802F65E8 002F2248 90 03 00 04 */ stw r0, 4(r3) /* 802F65EC 002F224C 38 63 00 08 */ addi r3, r3, 8 /* 802F65F0 002F2250 88 BF 00 00 */ lbz r5, 0(r31) /* 802F65F4 002F2254 4B D0 DA 0D */ bl memcpy /* 802F65F8 002F2258 80 61 00 08 */ lwz r3, 8(r1) /* 802F65FC 002F225C 7F C5 F3 78 */ mr r5, r30 /* 802F6600 002F2260 38 80 00 02 */ li r4, 2 /* 802F6604 002F2264 38 C0 00 24 */ li r6, 0x24 /* 802F6608 002F2268 38 E0 00 00 */ li r7, 0 /* 802F660C 002F226C 39 00 00 00 */ li r8, 0 /* 802F6610 002F2270 4B FA D4 E1 */ bl IOS_Ioctl /* 802F6614 002F2274 7C 7F 1B 78 */ mr r31, r3 /* 802F6618 002F2278 7F C4 F3 78 */ mr r4, r30 /* 802F661C 002F227C 38 60 00 0C */ li r3, 0xc /* 802F6620 002F2280 38 A0 00 40 */ li r5, 0x40 /* 802F6624 002F2284 4B FF F5 6D */ bl SOiFree lbl_802F6628: /* 802F6628 002F2288 7F E4 FB 78 */ mr r4, r31 /* 802F662C 002F228C 38 60 00 00 */ li r3, 0 /* 802F6630 002F2290 4B FF F6 7D */ bl SOiConclude lbl_802F6634: /* 802F6634 002F2294 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F6638 002F2298 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802F663C 002F229C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802F6640 002F22A0 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802F6644 002F22A4 7C 08 03 A6 */ mtlr r0 /* 802F6648 002F22A8 38 21 00 20 */ addi r1, r1, 0x20 /* 802F664C 002F22AC 4E 80 00 20 */ blr .global SOConnect SOConnect: /* 802F6650 002F22B0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F6654 002F22B4 7C 08 02 A6 */ mflr r0 /* 802F6658 002F22B8 90 01 00 24 */ stw r0, 0x24(r1) /* 802F665C 002F22BC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802F6660 002F22C0 7C 9F 23 78 */ mr r31, r4 /* 802F6664 002F22C4 38 81 00 08 */ addi r4, r1, 8 /* 802F6668 002F22C8 93 C1 00 18 */ stw r30, 0x18(r1) /* 802F666C 002F22CC 93 A1 00 14 */ stw r29, 0x14(r1) /* 802F6670 002F22D0 7C 7D 1B 78 */ mr r29, r3 /* 802F6674 002F22D4 38 60 00 00 */ li r3, 0 /* 802F6678 002F22D8 4B FF F5 4D */ bl SOiPrepare /* 802F667C 002F22DC 2C 03 00 00 */ cmpwi r3, 0 /* 802F6680 002F22E0 40 82 00 9C */ bne lbl_802F671C /* 802F6684 002F22E4 2C 1F 00 00 */ cmpwi r31, 0 /* 802F6688 002F22E8 41 82 00 14 */ beq lbl_802F669C /* 802F668C 002F22EC 88 1F 00 00 */ lbz r0, 0(r31) /* 802F6690 002F22F0 28 00 00 08 */ cmplwi r0, 8 /* 802F6694 002F22F4 41 81 00 08 */ bgt lbl_802F669C /* 802F6698 002F22F8 40 80 00 0C */ bge lbl_802F66A4 lbl_802F669C: /* 802F669C 002F22FC 3B E0 FF E4 */ li r31, -28 /* 802F66A0 002F2300 48 00 00 70 */ b lbl_802F6710 lbl_802F66A4: /* 802F66A4 002F2304 38 60 00 0C */ li r3, 0xc /* 802F66A8 002F2308 38 80 00 40 */ li r4, 0x40 /* 802F66AC 002F230C 4B FF F3 FD */ bl SOiAlloc /* 802F66B0 002F2310 2C 03 00 00 */ cmpwi r3, 0 /* 802F66B4 002F2314 7C 7E 1B 78 */ mr r30, r3 /* 802F66B8 002F2318 40 82 00 0C */ bne lbl_802F66C4 /* 802F66BC 002F231C 3B E0 FF CF */ li r31, -49 /* 802F66C0 002F2320 48 00 00 50 */ b lbl_802F6710 lbl_802F66C4: /* 802F66C4 002F2324 93 A3 00 00 */ stw r29, 0(r3) /* 802F66C8 002F2328 38 00 00 01 */ li r0, 1 /* 802F66CC 002F232C 7F E4 FB 78 */ mr r4, r31 /* 802F66D0 002F2330 90 03 00 04 */ stw r0, 4(r3) /* 802F66D4 002F2334 38 63 00 08 */ addi r3, r3, 8 /* 802F66D8 002F2338 88 BF 00 00 */ lbz r5, 0(r31) /* 802F66DC 002F233C 4B D0 D9 25 */ bl memcpy /* 802F66E0 002F2340 80 61 00 08 */ lwz r3, 8(r1) /* 802F66E4 002F2344 7F C5 F3 78 */ mr r5, r30 /* 802F66E8 002F2348 38 80 00 04 */ li r4, 4 /* 802F66EC 002F234C 38 C0 00 24 */ li r6, 0x24 /* 802F66F0 002F2350 38 E0 00 00 */ li r7, 0 /* 802F66F4 002F2354 39 00 00 00 */ li r8, 0 /* 802F66F8 002F2358 4B FA D3 F9 */ bl IOS_Ioctl /* 802F66FC 002F235C 7C 7F 1B 78 */ mr r31, r3 /* 802F6700 002F2360 7F C4 F3 78 */ mr r4, r30 /* 802F6704 002F2364 38 60 00 0C */ li r3, 0xc /* 802F6708 002F2368 38 A0 00 40 */ li r5, 0x40 /* 802F670C 002F236C 4B FF F4 85 */ bl SOiFree lbl_802F6710: /* 802F6710 002F2370 7F E4 FB 78 */ mr r4, r31 /* 802F6714 002F2374 38 60 00 00 */ li r3, 0 /* 802F6718 002F2378 4B FF F5 95 */ bl SOiConclude lbl_802F671C: /* 802F671C 002F237C 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F6720 002F2380 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802F6724 002F2384 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802F6728 002F2388 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802F672C 002F238C 7C 08 03 A6 */ mtlr r0 /* 802F6730 002F2390 38 21 00 20 */ addi r1, r1, 0x20 /* 802F6734 002F2394 4E 80 00 20 */ blr .global SOGetSockName SOGetSockName: /* 802F6738 002F2398 94 21 FF D0 */ stwu r1, -0x30(r1) /* 802F673C 002F239C 7C 08 02 A6 */ mflr r0 /* 802F6740 002F23A0 90 01 00 34 */ stw r0, 0x34(r1) /* 802F6744 002F23A4 39 61 00 30 */ addi r11, r1, 0x30 /* 802F6748 002F23A8 4B ED 09 E1 */ bl _savegpr_27 /* 802F674C 002F23AC 7C 7C 1B 78 */ mr r28, r3 /* 802F6750 002F23B0 7C 9B 23 78 */ mr r27, r4 /* 802F6754 002F23B4 38 81 00 08 */ addi r4, r1, 8 /* 802F6758 002F23B8 38 60 00 00 */ li r3, 0 /* 802F675C 002F23BC 4B FF F4 69 */ bl SOiPrepare /* 802F6760 002F23C0 2C 03 00 00 */ cmpwi r3, 0 /* 802F6764 002F23C4 40 82 00 B8 */ bne lbl_802F681C /* 802F6768 002F23C8 2C 1B 00 00 */ cmpwi r27, 0 /* 802F676C 002F23CC 41 82 00 14 */ beq lbl_802F6780 /* 802F6770 002F23D0 88 7B 00 00 */ lbz r3, 0(r27) /* 802F6774 002F23D4 28 03 00 08 */ cmplwi r3, 8 /* 802F6778 002F23D8 41 81 00 08 */ bgt lbl_802F6780 /* 802F677C 002F23DC 40 80 00 0C */ bge lbl_802F6788 lbl_802F6780: /* 802F6780 002F23E0 3B C0 FF E4 */ li r30, -28 /* 802F6784 002F23E4 48 00 00 8C */ b lbl_802F6810 lbl_802F6788: /* 802F6788 002F23E8 38 03 00 3F */ addi r0, r3, 0x3f /* 802F678C 002F23EC 38 60 00 0C */ li r3, 0xc /* 802F6790 002F23F0 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a /* 802F6794 002F23F4 7F E4 FB 78 */ mr r4, r31 /* 802F6798 002F23F8 4B FF F3 11 */ bl SOiAlloc /* 802F679C 002F23FC 2C 03 00 00 */ cmpwi r3, 0 /* 802F67A0 002F2400 7C 7D 1B 78 */ mr r29, r3 /* 802F67A4 002F2404 40 82 00 0C */ bne lbl_802F67B0 /* 802F67A8 002F2408 3B C0 FF CF */ li r30, -49 /* 802F67AC 002F240C 48 00 00 64 */ b lbl_802F6810 lbl_802F67B0: /* 802F67B0 002F2410 93 83 00 00 */ stw r28, 0(r3) /* 802F67B4 002F2414 3B 83 00 20 */ addi r28, r3, 0x20 /* 802F67B8 002F2418 7F 64 DB 78 */ mr r4, r27 /* 802F67BC 002F241C 88 BB 00 00 */ lbz r5, 0(r27) /* 802F67C0 002F2420 7F 83 E3 78 */ mr r3, r28 /* 802F67C4 002F2424 4B D0 D8 3D */ bl memcpy /* 802F67C8 002F2428 80 61 00 08 */ lwz r3, 8(r1) /* 802F67CC 002F242C 7F A5 EB 78 */ mr r5, r29 /* 802F67D0 002F2430 89 1B 00 00 */ lbz r8, 0(r27) /* 802F67D4 002F2434 7F 87 E3 78 */ mr r7, r28 /* 802F67D8 002F2438 38 80 00 07 */ li r4, 7 /* 802F67DC 002F243C 38 C0 00 04 */ li r6, 4 /* 802F67E0 002F2440 4B FA D3 11 */ bl IOS_Ioctl /* 802F67E4 002F2444 2C 03 00 00 */ cmpwi r3, 0 /* 802F67E8 002F2448 7C 7E 1B 78 */ mr r30, r3 /* 802F67EC 002F244C 41 80 00 14 */ blt lbl_802F6800 /* 802F67F0 002F2450 88 BC 00 00 */ lbz r5, 0(r28) /* 802F67F4 002F2454 7F 63 DB 78 */ mr r3, r27 /* 802F67F8 002F2458 7F 84 E3 78 */ mr r4, r28 /* 802F67FC 002F245C 4B D0 D8 05 */ bl memcpy lbl_802F6800: /* 802F6800 002F2460 7F A4 EB 78 */ mr r4, r29 /* 802F6804 002F2464 7F E5 FB 78 */ mr r5, r31 /* 802F6808 002F2468 38 60 00 0C */ li r3, 0xc /* 802F680C 002F246C 4B FF F3 85 */ bl SOiFree lbl_802F6810: /* 802F6810 002F2470 7F C4 F3 78 */ mr r4, r30 /* 802F6814 002F2474 38 60 00 00 */ li r3, 0 /* 802F6818 002F2478 4B FF F4 95 */ bl SOiConclude lbl_802F681C: /* 802F681C 002F247C 39 61 00 30 */ addi r11, r1, 0x30 /* 802F6820 002F2480 4B ED 09 55 */ bl _restgpr_27 /* 802F6824 002F2484 80 01 00 34 */ lwz r0, 0x34(r1) /* 802F6828 002F2488 7C 08 03 A6 */ mtlr r0 /* 802F682C 002F248C 38 21 00 30 */ addi r1, r1, 0x30 /* 802F6830 002F2490 4E 80 00 20 */ blr .global SORecvFrom SORecvFrom: /* 802F6834 002F2494 7C 8A 23 78 */ mr r10, r4 /* 802F6838 002F2498 7C A9 2B 78 */ mr r9, r5 /* 802F683C 002F249C 7C C0 33 78 */ mr r0, r6 /* 802F6840 002F24A0 7C E8 3B 78 */ mr r8, r7 /* 802F6844 002F24A4 7C 64 1B 78 */ mr r4, r3 /* 802F6848 002F24A8 7D 45 53 78 */ mr r5, r10 /* 802F684C 002F24AC 7D 26 4B 78 */ mr r6, r9 /* 802F6850 002F24B0 7C 07 03 78 */ mr r7, r0 /* 802F6854 002F24B4 38 60 00 00 */ li r3, 0 /* 802F6858 002F24B8 48 00 05 2C */ b RecvFrom .global SORecv SORecv: /* 802F685C 002F24BC 7C 88 23 78 */ mr r8, r4 /* 802F6860 002F24C0 7C A0 2B 78 */ mr r0, r5 /* 802F6864 002F24C4 7C C7 33 78 */ mr r7, r6 /* 802F6868 002F24C8 7C 64 1B 78 */ mr r4, r3 /* 802F686C 002F24CC 7D 05 43 78 */ mr r5, r8 /* 802F6870 002F24D0 7C 06 03 78 */ mr r6, r0 /* 802F6874 002F24D4 38 60 00 00 */ li r3, 0 /* 802F6878 002F24D8 39 00 00 00 */ li r8, 0 /* 802F687C 002F24DC 48 00 05 08 */ b RecvFrom .global SOSendTo SOSendTo: /* 802F6880 002F24E0 7C 8A 23 78 */ mr r10, r4 /* 802F6884 002F24E4 7C A9 2B 78 */ mr r9, r5 /* 802F6888 002F24E8 7C C0 33 78 */ mr r0, r6 /* 802F688C 002F24EC 7C E8 3B 78 */ mr r8, r7 /* 802F6890 002F24F0 7C 64 1B 78 */ mr r4, r3 /* 802F6894 002F24F4 7D 45 53 78 */ mr r5, r10 /* 802F6898 002F24F8 7D 26 4B 78 */ mr r6, r9 /* 802F689C 002F24FC 7C 07 03 78 */ mr r7, r0 /* 802F68A0 002F2500 38 60 00 00 */ li r3, 0 /* 802F68A4 002F2504 48 00 07 80 */ b SendTo .global SOSend SOSend: /* 802F68A8 002F2508 7C 88 23 78 */ mr r8, r4 /* 802F68AC 002F250C 7C A0 2B 78 */ mr r0, r5 /* 802F68B0 002F2510 7C C7 33 78 */ mr r7, r6 /* 802F68B4 002F2514 7C 64 1B 78 */ mr r4, r3 /* 802F68B8 002F2518 7D 05 43 78 */ mr r5, r8 /* 802F68BC 002F251C 7C 06 03 78 */ mr r6, r0 /* 802F68C0 002F2520 38 60 00 00 */ li r3, 0 /* 802F68C4 002F2524 39 00 00 00 */ li r8, 0 /* 802F68C8 002F2528 48 00 07 5C */ b SendTo .global SOFcntl SOFcntl: /* 802F68CC 002F252C 94 21 FF 70 */ stwu r1, -0x90(r1) /* 802F68D0 002F2530 7C 08 02 A6 */ mflr r0 /* 802F68D4 002F2534 90 01 00 94 */ stw r0, 0x94(r1) /* 802F68D8 002F2538 93 E1 00 8C */ stw r31, 0x8c(r1) /* 802F68DC 002F253C 93 C1 00 88 */ stw r30, 0x88(r1) /* 802F68E0 002F2540 93 A1 00 84 */ stw r29, 0x84(r1) /* 802F68E4 002F2544 7C 9D 23 78 */ mr r29, r4 /* 802F68E8 002F2548 93 81 00 80 */ stw r28, 0x80(r1) /* 802F68EC 002F254C 7C 7C 1B 78 */ mr r28, r3 /* 802F68F0 002F2550 40 86 00 24 */ bne cr1, lbl_802F6914 /* 802F68F4 002F2554 D8 21 00 28 */ stfd f1, 0x28(r1) /* 802F68F8 002F2558 D8 41 00 30 */ stfd f2, 0x30(r1) /* 802F68FC 002F255C D8 61 00 38 */ stfd f3, 0x38(r1) /* 802F6900 002F2560 D8 81 00 40 */ stfd f4, 0x40(r1) /* 802F6904 002F2564 D8 A1 00 48 */ stfd f5, 0x48(r1) /* 802F6908 002F2568 D8 C1 00 50 */ stfd f6, 0x50(r1) /* 802F690C 002F256C D8 E1 00 58 */ stfd f7, 0x58(r1) /* 802F6910 002F2570 D9 01 00 60 */ stfd f8, 0x60(r1) lbl_802F6914: /* 802F6914 002F2574 39 61 00 98 */ addi r11, r1, 0x98 /* 802F6918 002F2578 38 01 00 08 */ addi r0, r1, 8 /* 802F691C 002F257C 3D 80 02 00 */ lis r12, 0x200 /* 802F6920 002F2580 90 81 00 0C */ stw r4, 0xc(r1) /* 802F6924 002F2584 3B E1 00 6C */ addi r31, r1, 0x6c /* 802F6928 002F2588 38 80 00 01 */ li r4, 1 /* 802F692C 002F258C 90 61 00 08 */ stw r3, 8(r1) /* 802F6930 002F2590 7F E3 FB 78 */ mr r3, r31 /* 802F6934 002F2594 90 A1 00 10 */ stw r5, 0x10(r1) /* 802F6938 002F2598 90 C1 00 14 */ stw r6, 0x14(r1) /* 802F693C 002F259C 90 E1 00 18 */ stw r7, 0x18(r1) /* 802F6940 002F25A0 91 01 00 1C */ stw r8, 0x1c(r1) /* 802F6944 002F25A4 91 21 00 20 */ stw r9, 0x20(r1) /* 802F6948 002F25A8 91 41 00 24 */ stw r10, 0x24(r1) /* 802F694C 002F25AC 91 81 00 6C */ stw r12, 0x6c(r1) /* 802F6950 002F25B0 91 61 00 70 */ stw r11, 0x70(r1) /* 802F6954 002F25B4 90 01 00 74 */ stw r0, 0x74(r1) /* 802F6958 002F25B8 4B ED 02 29 */ bl __va_arg /* 802F695C 002F25BC 83 E3 00 00 */ lwz r31, 0(r3) /* 802F6960 002F25C0 38 81 00 68 */ addi r4, r1, 0x68 /* 802F6964 002F25C4 38 60 00 00 */ li r3, 0 /* 802F6968 002F25C8 4B FF F2 5D */ bl SOiPrepare /* 802F696C 002F25CC 2C 03 00 00 */ cmpwi r3, 0 /* 802F6970 002F25D0 40 82 00 6C */ bne lbl_802F69DC /* 802F6974 002F25D4 38 60 00 0C */ li r3, 0xc /* 802F6978 002F25D8 38 80 00 20 */ li r4, 0x20 /* 802F697C 002F25DC 4B FF F1 2D */ bl SOiAlloc /* 802F6980 002F25E0 2C 03 00 00 */ cmpwi r3, 0 /* 802F6984 002F25E4 7C 7E 1B 78 */ mr r30, r3 /* 802F6988 002F25E8 40 82 00 0C */ bne lbl_802F6994 /* 802F698C 002F25EC 3B E0 FF CF */ li r31, -49 /* 802F6990 002F25F0 48 00 00 40 */ b lbl_802F69D0 lbl_802F6994: /* 802F6994 002F25F4 93 83 00 00 */ stw r28, 0(r3) /* 802F6998 002F25F8 7F C5 F3 78 */ mr r5, r30 /* 802F699C 002F25FC 38 80 00 05 */ li r4, 5 /* 802F69A0 002F2600 38 C0 00 0C */ li r6, 0xc /* 802F69A4 002F2604 93 A3 00 04 */ stw r29, 4(r3) /* 802F69A8 002F2608 38 E0 00 00 */ li r7, 0 /* 802F69AC 002F260C 39 00 00 00 */ li r8, 0 /* 802F69B0 002F2610 93 E3 00 08 */ stw r31, 8(r3) /* 802F69B4 002F2614 80 61 00 68 */ lwz r3, 0x68(r1) /* 802F69B8 002F2618 4B FA D1 39 */ bl IOS_Ioctl /* 802F69BC 002F261C 7C 7F 1B 78 */ mr r31, r3 /* 802F69C0 002F2620 7F C4 F3 78 */ mr r4, r30 /* 802F69C4 002F2624 38 60 00 0C */ li r3, 0xc /* 802F69C8 002F2628 38 A0 00 20 */ li r5, 0x20 /* 802F69CC 002F262C 4B FF F1 C5 */ bl SOiFree lbl_802F69D0: /* 802F69D0 002F2630 7F E4 FB 78 */ mr r4, r31 /* 802F69D4 002F2634 38 60 00 00 */ li r3, 0 /* 802F69D8 002F2638 4B FF F2 D5 */ bl SOiConclude lbl_802F69DC: /* 802F69DC 002F263C 80 01 00 94 */ lwz r0, 0x94(r1) /* 802F69E0 002F2640 83 E1 00 8C */ lwz r31, 0x8c(r1) /* 802F69E4 002F2644 83 C1 00 88 */ lwz r30, 0x88(r1) /* 802F69E8 002F2648 83 A1 00 84 */ lwz r29, 0x84(r1) /* 802F69EC 002F264C 83 81 00 80 */ lwz r28, 0x80(r1) /* 802F69F0 002F2650 7C 08 03 A6 */ mtlr r0 /* 802F69F4 002F2654 38 21 00 90 */ addi r1, r1, 0x90 /* 802F69F8 002F2658 4E 80 00 20 */ blr .global SOShutdown SOShutdown: /* 802F69FC 002F265C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802F6A00 002F2660 7C 08 02 A6 */ mflr r0 /* 802F6A04 002F2664 90 01 00 24 */ stw r0, 0x24(r1) /* 802F6A08 002F2668 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802F6A0C 002F266C 7C 9F 23 78 */ mr r31, r4 /* 802F6A10 002F2670 38 81 00 08 */ addi r4, r1, 8 /* 802F6A14 002F2674 93 C1 00 18 */ stw r30, 0x18(r1) /* 802F6A18 002F2678 93 A1 00 14 */ stw r29, 0x14(r1) /* 802F6A1C 002F267C 7C 7D 1B 78 */ mr r29, r3 /* 802F6A20 002F2680 38 60 00 00 */ li r3, 0 /* 802F6A24 002F2684 4B FF F1 A1 */ bl SOiPrepare /* 802F6A28 002F2688 2C 03 00 00 */ cmpwi r3, 0 /* 802F6A2C 002F268C 40 82 00 68 */ bne lbl_802F6A94 /* 802F6A30 002F2690 38 60 00 0C */ li r3, 0xc /* 802F6A34 002F2694 38 80 00 20 */ li r4, 0x20 /* 802F6A38 002F2698 4B FF F0 71 */ bl SOiAlloc /* 802F6A3C 002F269C 2C 03 00 00 */ cmpwi r3, 0 /* 802F6A40 002F26A0 7C 7E 1B 78 */ mr r30, r3 /* 802F6A44 002F26A4 40 82 00 0C */ bne lbl_802F6A50 /* 802F6A48 002F26A8 3B E0 FF CF */ li r31, -49 /* 802F6A4C 002F26AC 48 00 00 3C */ b lbl_802F6A88 lbl_802F6A50: /* 802F6A50 002F26B0 93 A3 00 00 */ stw r29, 0(r3) /* 802F6A54 002F26B4 7F C5 F3 78 */ mr r5, r30 /* 802F6A58 002F26B8 38 80 00 0E */ li r4, 0xe /* 802F6A5C 002F26BC 38 C0 00 08 */ li r6, 8 /* 802F6A60 002F26C0 93 E3 00 04 */ stw r31, 4(r3) /* 802F6A64 002F26C4 38 E0 00 00 */ li r7, 0 /* 802F6A68 002F26C8 39 00 00 00 */ li r8, 0 /* 802F6A6C 002F26CC 80 61 00 08 */ lwz r3, 8(r1) /* 802F6A70 002F26D0 4B FA D0 81 */ bl IOS_Ioctl /* 802F6A74 002F26D4 7C 7F 1B 78 */ mr r31, r3 /* 802F6A78 002F26D8 7F C4 F3 78 */ mr r4, r30 /* 802F6A7C 002F26DC 38 60 00 0C */ li r3, 0xc /* 802F6A80 002F26E0 38 A0 00 20 */ li r5, 0x20 /* 802F6A84 002F26E4 4B FF F1 0D */ bl SOiFree lbl_802F6A88: /* 802F6A88 002F26E8 7F E4 FB 78 */ mr r4, r31 /* 802F6A8C 002F26EC 38 60 00 00 */ li r3, 0 /* 802F6A90 002F26F0 4B FF F2 1D */ bl SOiConclude lbl_802F6A94: /* 802F6A94 002F26F4 80 01 00 24 */ lwz r0, 0x24(r1) /* 802F6A98 002F26F8 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802F6A9C 002F26FC 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802F6AA0 002F2700 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802F6AA4 002F2704 7C 08 03 A6 */ mtlr r0 /* 802F6AA8 002F2708 38 21 00 20 */ addi r1, r1, 0x20 /* 802F6AAC 002F270C 4E 80 00 20 */ blr .global SOPoll SOPoll: /* 802F6AB0 002F2710 94 21 FF D0 */ stwu r1, -0x30(r1) /* 802F6AB4 002F2714 7C 08 02 A6 */ mflr r0 /* 802F6AB8 002F2718 90 01 00 34 */ stw r0, 0x34(r1) /* 802F6ABC 002F271C 39 61 00 30 */ addi r11, r1, 0x30 /* 802F6AC0 002F2720 4B ED 06 65 */ bl _savegpr_26 /* 802F6AC4 002F2724 90 A1 00 08 */ stw r5, 8(r1) /* 802F6AC8 002F2728 7C 7F 1B 78 */ mr r31, r3 /* 802F6ACC 002F272C 7C 9A 23 78 */ mr r26, r4 /* 802F6AD0 002F2730 38 81 00 10 */ addi r4, r1, 0x10 /* 802F6AD4 002F2734 90 C1 00 0C */ stw r6, 0xc(r1) /* 802F6AD8 002F2738 38 60 00 00 */ li r3, 0 /* 802F6ADC 002F273C 4B FF F0 E9 */ bl SOiPrepare /* 802F6AE0 002F2740 2C 03 00 00 */ cmpwi r3, 0 /* 802F6AE4 002F2744 40 82 01 10 */ bne lbl_802F6BF4 /* 802F6AE8 002F2748 2C 1F 00 00 */ cmpwi r31, 0 /* 802F6AEC 002F274C 40 82 00 0C */ bne lbl_802F6AF8 /* 802F6AF0 002F2750 3B 80 FF E4 */ li r28, -28 /* 802F6AF4 002F2754 48 00 00 F4 */ b lbl_802F6BE8 lbl_802F6AF8: /* 802F6AF8 002F2758 1F BA 00 0C */ mulli r29, r26, 0xc /* 802F6AFC 002F275C 38 60 00 0C */ li r3, 0xc /* 802F6B00 002F2760 38 1D 00 3F */ addi r0, r29, 0x3f /* 802F6B04 002F2764 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a /* 802F6B08 002F2768 7F C4 F3 78 */ mr r4, r30 /* 802F6B0C 002F276C 4B FF EF 9D */ bl SOiAlloc /* 802F6B10 002F2770 2C 03 00 00 */ cmpwi r3, 0 /* 802F6B14 002F2774 7C 7B 1B 78 */ mr r27, r3 /* 802F6B18 002F2778 40 82 00 0C */ bne lbl_802F6B24 /* 802F6B1C 002F277C 3B 80 FF CF */ li r28, -49 /* 802F6B20 002F2780 48 00 00 C8 */ b lbl_802F6BE8 lbl_802F6B24: /* 802F6B24 002F2784 80 E1 00 08 */ lwz r7, 8(r1) /* 802F6B28 002F2788 38 A0 FF FF */ li r5, -1 /* 802F6B2C 002F278C 80 81 00 0C */ lwz r4, 0xc(r1) /* 802F6B30 002F2790 6C A0 80 00 */ xoris r0, r5, 0x8000 /* 802F6B34 002F2794 6C E6 80 00 */ xoris r6, r7, 0x8000 /* 802F6B38 002F2798 3B 43 00 20 */ addi r26, r3, 0x20 /* 802F6B3C 002F279C 7C A4 28 10 */ subfc r5, r4, r5 /* 802F6B40 002F27A0 7C C6 01 10 */ subfe r6, r6, r0 /* 802F6B44 002F27A4 7C C0 01 10 */ subfe r6, r0, r0 /* 802F6B48 002F27A8 7C C6 00 D1 */ neg. r6, r6 /* 802F6B4C 002F27AC 40 82 00 14 */ bne lbl_802F6B60 /* 802F6B50 002F27B0 38 81 00 08 */ addi r4, r1, 8 /* 802F6B54 002F27B4 38 A0 00 08 */ li r5, 8 /* 802F6B58 002F27B8 4B D0 D4 A9 */ bl memcpy /* 802F6B5C 002F27BC 48 00 00 34 */ b lbl_802F6B90 lbl_802F6B60: /* 802F6B60 002F27C0 3C A0 80 00 */ lis r5, 0x800000F8@ha /* 802F6B64 002F27C4 3C 60 10 62 */ lis r3, 0x10624DD3@ha /* 802F6B68 002F27C8 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5) /* 802F6B6C 002F27CC 38 C3 4D D3 */ addi r6, r3, 0x10624DD3@l /* 802F6B70 002F27D0 7C E3 3B 78 */ mr r3, r7 /* 802F6B74 002F27D4 38 A0 00 00 */ li r5, 0 /* 802F6B78 002F27D8 54 00 F0 BE */ srwi r0, r0, 2 /* 802F6B7C 002F27DC 7C 06 00 16 */ mulhwu r0, r6, r0 /* 802F6B80 002F27E0 54 06 D1 BE */ srwi r6, r0, 6 /* 802F6B84 002F27E4 4B ED 06 F5 */ bl __div2i /* 802F6B88 002F27E8 90 9B 00 04 */ stw r4, 4(r27) /* 802F6B8C 002F27EC 90 7B 00 00 */ stw r3, 0(r27) lbl_802F6B90: /* 802F6B90 002F27F0 7F 43 D3 78 */ mr r3, r26 /* 802F6B94 002F27F4 7F E4 FB 78 */ mr r4, r31 /* 802F6B98 002F27F8 7F A5 EB 78 */ mr r5, r29 /* 802F6B9C 002F27FC 4B D0 D4 65 */ bl memcpy /* 802F6BA0 002F2800 80 61 00 10 */ lwz r3, 0x10(r1) /* 802F6BA4 002F2804 7F 65 DB 78 */ mr r5, r27 /* 802F6BA8 002F2808 7F 47 D3 78 */ mr r7, r26 /* 802F6BAC 002F280C 7F A8 EB 78 */ mr r8, r29 /* 802F6BB0 002F2810 38 80 00 0B */ li r4, 0xb /* 802F6BB4 002F2814 38 C0 00 08 */ li r6, 8 /* 802F6BB8 002F2818 4B FA CF 39 */ bl IOS_Ioctl /* 802F6BBC 002F281C 2C 03 00 00 */ cmpwi r3, 0 /* 802F6BC0 002F2820 7C 7C 1B 78 */ mr r28, r3 /* 802F6BC4 002F2824 41 80 00 14 */ blt lbl_802F6BD8 /* 802F6BC8 002F2828 7F E3 FB 78 */ mr r3, r31 /* 802F6BCC 002F282C 7F 44 D3 78 */ mr r4, r26 /* 802F6BD0 002F2830 7F A5 EB 78 */ mr r5, r29 /* 802F6BD4 002F2834 4B D0 D4 2D */ bl memcpy lbl_802F6BD8: /* 802F6BD8 002F2838 7F 64 DB 78 */ mr r4, r27 /* 802F6BDC 002F283C 7F C5 F3 78 */ mr r5, r30 /* 802F6BE0 002F2840 38 60 00 0C */ li r3, 0xc /* 802F6BE4 002F2844 4B FF EF AD */ bl SOiFree lbl_802F6BE8: /* 802F6BE8 002F2848 7F 84 E3 78 */ mr r4, r28 /* 802F6BEC 002F284C 38 60 00 00 */ li r3, 0 /* 802F6BF0 002F2850 4B FF F0 BD */ bl SOiConclude lbl_802F6BF4: /* 802F6BF4 002F2854 39 61 00 30 */ addi r11, r1, 0x30 /* 802F6BF8 002F2858 4B ED 05 79 */ bl _restgpr_26 /* 802F6BFC 002F285C 80 01 00 34 */ lwz r0, 0x34(r1) /* 802F6C00 002F2860 7C 08 03 A6 */ mtlr r0 /* 802F6C04 002F2864 38 21 00 30 */ addi r1, r1, 0x30 /* 802F6C08 002F2868 4E 80 00 20 */ blr .global SOInetAtoN SOInetAtoN: /* 802F6C0C 002F286C 94 21 FF D0 */ stwu r1, -0x30(r1) /* 802F6C10 002F2870 7C 08 02 A6 */ mflr r0 /* 802F6C14 002F2874 90 01 00 34 */ stw r0, 0x34(r1) /* 802F6C18 002F2878 39 61 00 30 */ addi r11, r1, 0x30 /* 802F6C1C 002F287C 4B ED 05 0D */ bl _savegpr_27 /* 802F6C20 002F2880 7C 7B 1B 78 */ mr r27, r3 /* 802F6C24 002F2884 7C 9C 23 78 */ mr r28, r4 /* 802F6C28 002F2888 38 81 00 0C */ addi r4, r1, 0xc /* 802F6C2C 002F288C 38 A1 00 08 */ addi r5, r1, 8 /* 802F6C30 002F2890 38 60 00 00 */ li r3, 0 /* 802F6C34 002F2894 4B FF F0 D5 */ bl SOiPrepareTempRm /* 802F6C38 002F2898 2C 03 00 00 */ cmpwi r3, 0 /* 802F6C3C 002F289C 40 82 00 C4 */ bne lbl_802F6D00 /* 802F6C40 002F28A0 2C 1B 00 00 */ cmpwi r27, 0 /* 802F6C44 002F28A4 40 82 00 0C */ bne lbl_802F6C50 /* 802F6C48 002F28A8 3B C0 FF E4 */ li r30, -28 /* 802F6C4C 002F28AC 48 00 00 A4 */ b lbl_802F6CF0 lbl_802F6C50: /* 802F6C50 002F28B0 7F 63 DB 78 */ mr r3, r27 /* 802F6C54 002F28B4 4B EC FF 11 */ bl strlen /* 802F6C58 002F28B8 38 03 00 40 */ addi r0, r3, 0x40 /* 802F6C5C 002F28BC 38 60 00 0C */ li r3, 0xc /* 802F6C60 002F28C0 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a /* 802F6C64 002F28C4 7F E4 FB 78 */ mr r4, r31 /* 802F6C68 002F28C8 4B FF EE 41 */ bl SOiAlloc /* 802F6C6C 002F28CC 2C 03 00 00 */ cmpwi r3, 0 /* 802F6C70 002F28D0 7C 7D 1B 78 */ mr r29, r3 /* 802F6C74 002F28D4 40 82 00 0C */ bne lbl_802F6C80 /* 802F6C78 002F28D8 3B C0 FF CF */ li r30, -49 /* 802F6C7C 002F28DC 48 00 00 74 */ b lbl_802F6CF0 lbl_802F6C80: /* 802F6C80 002F28E0 2C 1B 00 00 */ cmpwi r27, 0 /* 802F6C84 002F28E4 3B C3 00 20 */ addi r30, r3, 0x20 /* 802F6C88 002F28E8 41 82 00 10 */ beq lbl_802F6C98 /* 802F6C8C 002F28EC 7F C3 F3 78 */ mr r3, r30 /* 802F6C90 002F28F0 7F 64 DB 78 */ mr r4, r27 /* 802F6C94 002F28F4 4B ED 76 3D */ bl strcpy lbl_802F6C98: /* 802F6C98 002F28F8 7F 63 DB 78 */ mr r3, r27 /* 802F6C9C 002F28FC 4B EC FE C9 */ bl strlen /* 802F6CA0 002F2900 7C 66 1B 78 */ mr r6, r3 /* 802F6CA4 002F2904 80 61 00 0C */ lwz r3, 0xc(r1) /* 802F6CA8 002F2908 7F C5 F3 78 */ mr r5, r30 /* 802F6CAC 002F290C 7F A7 EB 78 */ mr r7, r29 /* 802F6CB0 002F2910 38 80 00 15 */ li r4, 0x15 /* 802F6CB4 002F2914 39 00 00 04 */ li r8, 4 /* 802F6CB8 002F2918 4B FA CE 39 */ bl IOS_Ioctl /* 802F6CBC 002F291C 2C 03 00 00 */ cmpwi r3, 0 /* 802F6CC0 002F2920 7C 7E 1B 78 */ mr r30, r3 /* 802F6CC4 002F2924 41 80 00 1C */ blt lbl_802F6CE0 /* 802F6CC8 002F2928 2C 1C 00 00 */ cmpwi r28, 0 /* 802F6CCC 002F292C 41 82 00 14 */ beq lbl_802F6CE0 /* 802F6CD0 002F2930 7F 83 E3 78 */ mr r3, r28 /* 802F6CD4 002F2934 7F A4 EB 78 */ mr r4, r29 /* 802F6CD8 002F2938 38 A0 00 04 */ li r5, 4 /* 802F6CDC 002F293C 4B D0 D3 25 */ bl memcpy lbl_802F6CE0: /* 802F6CE0 002F2940 7F A4 EB 78 */ mr r4, r29 /* 802F6CE4 002F2944 7F E5 FB 78 */ mr r5, r31 /* 802F6CE8 002F2948 38 60 00 0C */ li r3, 0xc /* 802F6CEC 002F294C 4B FF EE A5 */ bl SOiFree lbl_802F6CF0: /* 802F6CF0 002F2950 80 A1 00 08 */ lwz r5, 8(r1) /* 802F6CF4 002F2954 7F C4 F3 78 */ mr r4, r30 /* 802F6CF8 002F2958 38 60 00 00 */ li r3, 0 /* 802F6CFC 002F295C 4B FF F2 E5 */ bl SOiConcludeTempRm lbl_802F6D00: /* 802F6D00 002F2960 39 61 00 30 */ addi r11, r1, 0x30 /* 802F6D04 002F2964 4B ED 04 71 */ bl _restgpr_27 /* 802F6D08 002F2968 80 01 00 34 */ lwz r0, 0x34(r1) /* 802F6D0C 002F296C 7C 08 03 A6 */ mtlr r0 /* 802F6D10 002F2970 38 21 00 30 */ addi r1, r1, 0x30 /* 802F6D14 002F2974 4E 80 00 20 */ blr .global SOInetNtoA SOInetNtoA: /* 802F6D18 002F2978 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802F6D1C 002F297C 7C 08 02 A6 */ mflr r0 /* 802F6D20 002F2980 7C 68 1B 78 */ mr r8, r3 /* 802F6D24 002F2984 3C 80 80 44 */ lis r4, lbl_80445FE0@ha /* 802F6D28 002F2988 90 01 00 14 */ stw r0, 0x14(r1) /* 802F6D2C 002F298C 38 84 5F E0 */ addi r4, r4, lbl_80445FE0@l /* 802F6D30 002F2990 88 E8 00 02 */ lbz r7, 2(r8) /* 802F6D34 002F2994 93 E1 00 0C */ stw r31, 0xc(r1) /* 802F6D38 002F2998 3F E0 80 58 */ lis r31, lbl_8057AAD0@ha /* 802F6D3C 002F299C 88 A3 00 00 */ lbz r5, 0(r3) /* 802F6D40 002F29A0 88 C3 00 01 */ lbz r6, 1(r3) /* 802F6D44 002F29A4 38 7F AA D0 */ addi r3, r31, lbl_8057AAD0@l /* 802F6D48 002F29A8 89 08 00 03 */ lbz r8, 3(r8) /* 802F6D4C 002F29AC 4C C6 31 82 */ crclr 6 /* 802F6D50 002F29B0 4B ED 5D AD */ bl sprintf /* 802F6D54 002F29B4 38 7F AA D0 */ addi r3, r31, -21808 /* 802F6D58 002F29B8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802F6D5C 002F29BC 80 01 00 14 */ lwz r0, 0x14(r1) /* 802F6D60 002F29C0 7C 08 03 A6 */ mtlr r0 /* 802F6D64 002F29C4 38 21 00 10 */ addi r1, r1, 0x10 /* 802F6D68 002F29C8 4E 80 00 20 */ blr .global SONtoHl SONtoHl: /* 802F6D6C 002F29CC 4E 80 00 20 */ blr .global SONtoHs SONtoHs: /* 802F6D70 002F29D0 54 63 04 3E */ clrlwi r3, r3, 0x10 /* 802F6D74 002F29D4 4E 80 00 20 */ blr .global SOHtoNl SOHtoNl: /* 802F6D78 002F29D8 4E 80 00 20 */ blr .global SOHtoNs SOHtoNs: /* 802F6D7C 002F29DC 54 63 04 3E */ clrlwi r3, r3, 0x10 /* 802F6D80 002F29E0 4E 80 00 20 */ blr RecvFrom: /* 802F6D84 002F29E4 94 21 FF C0 */ stwu r1, -0x40(r1) /* 802F6D88 002F29E8 7C 08 02 A6 */ mflr r0 /* 802F6D8C 002F29EC 90 01 00 44 */ stw r0, 0x44(r1) /* 802F6D90 002F29F0 39 61 00 40 */ addi r11, r1, 0x40 /* 802F6D94 002F29F4 4B ED 03 7D */ bl _savegpr_21 /* 802F6D98 002F29F8 7C 9A 23 78 */ mr r26, r4 /* 802F6D9C 002F29FC 7C 79 1B 78 */ mr r25, r3 /* 802F6DA0 002F2A00 7C BB 2B 78 */ mr r27, r5 /* 802F6DA4 002F2A04 7C DC 33 78 */ mr r28, r6 /* 802F6DA8 002F2A08 7C FD 3B 78 */ mr r29, r7 /* 802F6DAC 002F2A0C 7D 1E 43 78 */ mr r30, r8 /* 802F6DB0 002F2A10 38 81 00 08 */ addi r4, r1, 8 /* 802F6DB4 002F2A14 4B FF EE 11 */ bl SOiPrepare /* 802F6DB8 002F2A18 2C 03 00 00 */ cmpwi r3, 0 /* 802F6DBC 002F2A1C 40 82 02 50 */ bne lbl_802F700C /* 802F6DC0 002F2A20 2C 1E 00 00 */ cmpwi r30, 0 /* 802F6DC4 002F2A24 41 82 00 1C */ beq lbl_802F6DE0 /* 802F6DC8 002F2A28 88 1E 00 00 */ lbz r0, 0(r30) /* 802F6DCC 002F2A2C 28 00 00 08 */ cmplwi r0, 8 /* 802F6DD0 002F2A30 41 81 00 08 */ bgt lbl_802F6DD8 /* 802F6DD4 002F2A34 40 80 00 0C */ bge lbl_802F6DE0 lbl_802F6DD8: /* 802F6DD8 002F2A38 3B 40 FF E4 */ li r26, -28 /* 802F6DDC 002F2A3C 48 00 02 24 */ b lbl_802F7000 lbl_802F6DE0: /* 802F6DE0 002F2A40 2C 1C 00 00 */ cmpwi r28, 0 /* 802F6DE4 002F2A44 41 80 00 10 */ blt lbl_802F6DF4 /* 802F6DE8 002F2A48 40 81 00 14 */ ble lbl_802F6DFC /* 802F6DEC 002F2A4C 2C 1B 00 00 */ cmpwi r27, 0 /* 802F6DF0 002F2A50 40 82 00 0C */ bne lbl_802F6DFC lbl_802F6DF4: /* 802F6DF4 002F2A54 3B 40 FF E4 */ li r26, -28 /* 802F6DF8 002F2A58 48 00 02 08 */ b lbl_802F7000 lbl_802F6DFC: /* 802F6DFC 002F2A5C 2C 1C 00 00 */ cmpwi r28, 0 /* 802F6E00 002F2A60 3B E0 00 01 */ li r31, 1 /* 802F6E04 002F2A64 41 82 00 90 */ beq lbl_802F6E94 /* 802F6E08 002F2A68 57 60 06 FF */ clrlwi. r0, r27, 0x1b /* 802F6E0C 002F2A6C 3B 00 00 00 */ li r24, 0 /* 802F6E10 002F2A70 38 80 00 00 */ li r4, 0 /* 802F6E14 002F2A74 40 82 00 20 */ bne lbl_802F6E34 /* 802F6E18 002F2A78 57 80 D8 08 */ slwi r0, r28, 0x1b /* 802F6E1C 002F2A7C 57 83 0F FE */ srwi r3, r28, 0x1f /* 802F6E20 002F2A80 7C 03 00 50 */ subf r0, r3, r0 /* 802F6E24 002F2A84 54 00 28 3E */ rotlwi r0, r0, 5 /* 802F6E28 002F2A88 7C 00 1A 15 */ add. r0, r0, r3 /* 802F6E2C 002F2A8C 40 82 00 08 */ bne lbl_802F6E34 /* 802F6E30 002F2A90 38 80 00 01 */ li r4, 1 lbl_802F6E34: /* 802F6E34 002F2A94 2C 04 00 00 */ cmpwi r4, 0 /* 802F6E38 002F2A98 41 82 00 50 */ beq lbl_802F6E88 /* 802F6E3C 002F2A9C 3A E0 00 01 */ li r23, 1 /* 802F6E40 002F2AA0 4B FF EC 11 */ bl SOiIsBufferAddrCheck /* 802F6E44 002F2AA4 2C 03 00 00 */ cmpwi r3, 0 /* 802F6E48 002F2AA8 41 82 00 34 */ beq lbl_802F6E7C /* 802F6E4C 002F2AAC 57 64 00 FE */ clrlwi r4, r27, 3 /* 802F6E50 002F2AB0 3C 00 10 00 */ lis r0, 0x1000 /* 802F6E54 002F2AB4 7C 04 00 40 */ cmplw r4, r0 /* 802F6E58 002F2AB8 38 60 00 00 */ li r3, 0 /* 802F6E5C 002F2ABC 41 80 00 14 */ blt lbl_802F6E70 /* 802F6E60 002F2AC0 3C 00 18 00 */ lis r0, 0x1800 /* 802F6E64 002F2AC4 7C 04 00 40 */ cmplw r4, r0 /* 802F6E68 002F2AC8 40 80 00 08 */ bge lbl_802F6E70 /* 802F6E6C 002F2ACC 38 60 00 01 */ li r3, 1 lbl_802F6E70: /* 802F6E70 002F2AD0 2C 03 00 00 */ cmpwi r3, 0 /* 802F6E74 002F2AD4 40 82 00 08 */ bne lbl_802F6E7C /* 802F6E78 002F2AD8 3A E0 00 00 */ li r23, 0 lbl_802F6E7C: /* 802F6E7C 002F2ADC 2C 17 00 00 */ cmpwi r23, 0 /* 802F6E80 002F2AE0 41 82 00 08 */ beq lbl_802F6E88 /* 802F6E84 002F2AE4 3B 00 00 01 */ li r24, 1 lbl_802F6E88: /* 802F6E88 002F2AE8 2C 18 00 00 */ cmpwi r24, 0 /* 802F6E8C 002F2AEC 40 82 00 08 */ bne lbl_802F6E94 /* 802F6E90 002F2AF0 3B E0 00 00 */ li r31, 0 lbl_802F6E94: /* 802F6E94 002F2AF4 2C 1E 00 00 */ cmpwi r30, 0 /* 802F6E98 002F2AF8 40 82 00 0C */ bne lbl_802F6EA4 /* 802F6E9C 002F2AFC 38 60 00 00 */ li r3, 0 /* 802F6EA0 002F2B00 48 00 00 08 */ b lbl_802F6EA8 lbl_802F6EA4: /* 802F6EA4 002F2B04 88 7E 00 00 */ lbz r3, 0(r30) lbl_802F6EA8: /* 802F6EA8 002F2B08 38 03 00 5F */ addi r0, r3, 0x5f /* 802F6EAC 002F2B0C 38 60 00 0C */ li r3, 0xc /* 802F6EB0 002F2B10 54 18 00 34 */ rlwinm r24, r0, 0, 0, 0x1a /* 802F6EB4 002F2B14 7F 04 C3 78 */ mr r4, r24 /* 802F6EB8 002F2B18 4B FF EB F1 */ bl SOiAlloc /* 802F6EBC 002F2B1C 2C 1F 00 00 */ cmpwi r31, 0 /* 802F6EC0 002F2B20 7C 76 1B 78 */ mr r22, r3 /* 802F6EC4 002F2B24 40 82 00 18 */ bne lbl_802F6EDC /* 802F6EC8 002F2B28 38 1C 00 1F */ addi r0, r28, 0x1f /* 802F6ECC 002F2B2C 38 60 00 0D */ li r3, 0xd /* 802F6ED0 002F2B30 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a /* 802F6ED4 002F2B34 4B FF EB D5 */ bl SOiAlloc /* 802F6ED8 002F2B38 48 00 00 08 */ b lbl_802F6EE0 lbl_802F6EDC: /* 802F6EDC 002F2B3C 7F 63 DB 78 */ mr r3, r27 lbl_802F6EE0: /* 802F6EE0 002F2B40 2C 16 00 00 */ cmpwi r22, 0 /* 802F6EE4 002F2B44 7C 77 1B 78 */ mr r23, r3 /* 802F6EE8 002F2B48 41 82 00 0C */ beq lbl_802F6EF4 /* 802F6EEC 002F2B4C 2C 03 00 00 */ cmpwi r3, 0 /* 802F6EF0 002F2B50 40 82 00 0C */ bne lbl_802F6EFC lbl_802F6EF4: /* 802F6EF4 002F2B54 3B 40 FF CF */ li r26, -49 /* 802F6EF8 002F2B58 48 00 00 DC */ b lbl_802F6FD4 lbl_802F6EFC: /* 802F6EFC 002F2B5C 93 56 00 20 */ stw r26, 0x20(r22) /* 802F6F00 002F2B60 38 96 00 20 */ addi r4, r22, 0x20 /* 802F6F04 002F2B64 38 00 00 08 */ li r0, 8 /* 802F6F08 002F2B68 2C 1E 00 00 */ cmpwi r30, 0 /* 802F6F0C 002F2B6C 93 B6 00 24 */ stw r29, 0x24(r22) /* 802F6F10 002F2B70 3A A4 00 20 */ addi r21, r4, 0x20 /* 802F6F14 002F2B74 90 96 00 00 */ stw r4, 0(r22) /* 802F6F18 002F2B78 90 16 00 04 */ stw r0, 4(r22) /* 802F6F1C 002F2B7C 90 76 00 08 */ stw r3, 8(r22) /* 802F6F20 002F2B80 93 96 00 0C */ stw r28, 0xc(r22) /* 802F6F24 002F2B84 40 82 00 30 */ bne lbl_802F6F54 /* 802F6F28 002F2B88 38 00 00 00 */ li r0, 0 /* 802F6F2C 002F2B8C 7E C7 B3 78 */ mr r7, r22 /* 802F6F30 002F2B90 90 16 00 10 */ stw r0, 0x10(r22) /* 802F6F34 002F2B94 38 80 00 0C */ li r4, 0xc /* 802F6F38 002F2B98 38 A0 00 01 */ li r5, 1 /* 802F6F3C 002F2B9C 38 C0 00 02 */ li r6, 2 /* 802F6F40 002F2BA0 90 16 00 14 */ stw r0, 0x14(r22) /* 802F6F44 002F2BA4 80 61 00 08 */ lwz r3, 8(r1) /* 802F6F48 002F2BA8 4B FA CE F9 */ bl IOS_Ioctlv /* 802F6F4C 002F2BAC 7C 7A 1B 78 */ mr r26, r3 /* 802F6F50 002F2BB0 48 00 00 64 */ b lbl_802F6FB4 lbl_802F6F54: /* 802F6F54 002F2BB4 88 BE 00 00 */ lbz r5, 0(r30) /* 802F6F58 002F2BB8 7E A3 AB 78 */ mr r3, r21 /* 802F6F5C 002F2BBC 7F C4 F3 78 */ mr r4, r30 /* 802F6F60 002F2BC0 4B D0 D0 A1 */ bl memcpy /* 802F6F64 002F2BC4 92 B6 00 10 */ stw r21, 0x10(r22) /* 802F6F68 002F2BC8 7E C7 B3 78 */ mr r7, r22 /* 802F6F6C 002F2BCC 38 80 00 0C */ li r4, 0xc /* 802F6F70 002F2BD0 38 A0 00 01 */ li r5, 1 /* 802F6F74 002F2BD4 88 1E 00 00 */ lbz r0, 0(r30) /* 802F6F78 002F2BD8 38 C0 00 02 */ li r6, 2 /* 802F6F7C 002F2BDC 90 16 00 14 */ stw r0, 0x14(r22) /* 802F6F80 002F2BE0 80 61 00 08 */ lwz r3, 8(r1) /* 802F6F84 002F2BE4 4B FA CE BD */ bl IOS_Ioctlv /* 802F6F88 002F2BE8 2C 03 00 00 */ cmpwi r3, 0 /* 802F6F8C 002F2BEC 7C 7A 1B 78 */ mr r26, r3 /* 802F6F90 002F2BF0 41 80 00 24 */ blt lbl_802F6FB4 /* 802F6F94 002F2BF4 88 BE 00 00 */ lbz r5, 0(r30) /* 802F6F98 002F2BF8 7F C3 F3 78 */ mr r3, r30 /* 802F6F9C 002F2BFC 88 15 00 00 */ lbz r0, 0(r21) /* 802F6FA0 002F2C00 7E A4 AB 78 */ mr r4, r21 /* 802F6FA4 002F2C04 7C 05 00 40 */ cmplw r5, r0 /* 802F6FA8 002F2C08 40 81 00 08 */ ble lbl_802F6FB0 /* 802F6FAC 002F2C0C 7C 05 03 78 */ mr r5, r0 lbl_802F6FB0: /* 802F6FB0 002F2C10 4B D0 D0 51 */ bl memcpy lbl_802F6FB4: /* 802F6FB4 002F2C14 2C 1A 00 00 */ cmpwi r26, 0 /* 802F6FB8 002F2C18 41 80 00 1C */ blt lbl_802F6FD4 /* 802F6FBC 002F2C1C 2C 1F 00 00 */ cmpwi r31, 0 /* 802F6FC0 002F2C20 40 82 00 14 */ bne lbl_802F6FD4 /* 802F6FC4 002F2C24 7F 63 DB 78 */ mr r3, r27 /* 802F6FC8 002F2C28 7E E4 BB 78 */ mr r4, r23 /* 802F6FCC 002F2C2C 7F 85 E3 78 */ mr r5, r28 /* 802F6FD0 002F2C30 4B D0 D0 31 */ bl memcpy lbl_802F6FD4: /* 802F6FD4 002F2C34 2C 1F 00 00 */ cmpwi r31, 0 /* 802F6FD8 002F2C38 40 82 00 18 */ bne lbl_802F6FF0 /* 802F6FDC 002F2C3C 38 1C 00 1F */ addi r0, r28, 0x1f /* 802F6FE0 002F2C40 7E E4 BB 78 */ mr r4, r23 /* 802F6FE4 002F2C44 54 05 00 34 */ rlwinm r5, r0, 0, 0, 0x1a /* 802F6FE8 002F2C48 38 60 00 0D */ li r3, 0xd /* 802F6FEC 002F2C4C 4B FF EB A5 */ bl SOiFree lbl_802F6FF0: /* 802F6FF0 002F2C50 7E C4 B3 78 */ mr r4, r22 /* 802F6FF4 002F2C54 7F 05 C3 78 */ mr r5, r24 /* 802F6FF8 002F2C58 38 60 00 0C */ li r3, 0xc /* 802F6FFC 002F2C5C 4B FF EB 95 */ bl SOiFree lbl_802F7000: /* 802F7000 002F2C60 7F 23 CB 78 */ mr r3, r25 /* 802F7004 002F2C64 7F 44 D3 78 */ mr r4, r26 /* 802F7008 002F2C68 4B FF EC A5 */ bl SOiConclude lbl_802F700C: /* 802F700C 002F2C6C 39 61 00 40 */ addi r11, r1, 0x40 /* 802F7010 002F2C70 4B ED 01 4D */ bl _restgpr_21 /* 802F7014 002F2C74 80 01 00 44 */ lwz r0, 0x44(r1) /* 802F7018 002F2C78 7C 08 03 A6 */ mtlr r0 /* 802F701C 002F2C7C 38 21 00 40 */ addi r1, r1, 0x40 /* 802F7020 002F2C80 4E 80 00 20 */ blr SendTo: /* 802F7024 002F2C84 94 21 FF C0 */ stwu r1, -0x40(r1) /* 802F7028 002F2C88 7C 08 02 A6 */ mflr r0 /* 802F702C 002F2C8C 90 01 00 44 */ stw r0, 0x44(r1) /* 802F7030 002F2C90 39 61 00 40 */ addi r11, r1, 0x40 /* 802F7034 002F2C94 4B ED 00 E1 */ bl _savegpr_22 /* 802F7038 002F2C98 7C 9A 23 78 */ mr r26, r4 /* 802F703C 002F2C9C 7C 79 1B 78 */ mr r25, r3 /* 802F7040 002F2CA0 7C BB 2B 78 */ mr r27, r5 /* 802F7044 002F2CA4 7C DC 33 78 */ mr r28, r6 /* 802F7048 002F2CA8 7C FD 3B 78 */ mr r29, r7 /* 802F704C 002F2CAC 7D 1E 43 78 */ mr r30, r8 /* 802F7050 002F2CB0 38 81 00 08 */ addi r4, r1, 8 /* 802F7054 002F2CB4 4B FF EB 71 */ bl SOiPrepare /* 802F7058 002F2CB8 2C 03 00 00 */ cmpwi r3, 0 /* 802F705C 002F2CBC 40 82 01 DC */ bne lbl_802F7238 /* 802F7060 002F2CC0 2C 1E 00 00 */ cmpwi r30, 0 /* 802F7064 002F2CC4 41 82 00 1C */ beq lbl_802F7080 /* 802F7068 002F2CC8 88 1E 00 00 */ lbz r0, 0(r30) /* 802F706C 002F2CCC 28 00 00 08 */ cmplwi r0, 8 /* 802F7070 002F2CD0 41 81 00 08 */ bgt lbl_802F7078 /* 802F7074 002F2CD4 40 80 00 0C */ bge lbl_802F7080 lbl_802F7078: /* 802F7078 002F2CD8 3B 00 FF E4 */ li r24, -28 /* 802F707C 002F2CDC 48 00 01 B0 */ b lbl_802F722C lbl_802F7080: /* 802F7080 002F2CE0 2C 1C 00 00 */ cmpwi r28, 0 /* 802F7084 002F2CE4 41 80 00 10 */ blt lbl_802F7094 /* 802F7088 002F2CE8 40 81 00 14 */ ble lbl_802F709C /* 802F708C 002F2CEC 2C 1B 00 00 */ cmpwi r27, 0 /* 802F7090 002F2CF0 40 82 00 0C */ bne lbl_802F709C lbl_802F7094: /* 802F7094 002F2CF4 3B 00 FF E4 */ li r24, -28 /* 802F7098 002F2CF8 48 00 01 94 */ b lbl_802F722C lbl_802F709C: /* 802F709C 002F2CFC 2C 1C 00 00 */ cmpwi r28, 0 /* 802F70A0 002F2D00 3B E0 00 01 */ li r31, 1 /* 802F70A4 002F2D04 41 82 00 90 */ beq lbl_802F7134 /* 802F70A8 002F2D08 57 60 06 FF */ clrlwi. r0, r27, 0x1b /* 802F70AC 002F2D0C 3B 00 00 00 */ li r24, 0 /* 802F70B0 002F2D10 38 80 00 00 */ li r4, 0 /* 802F70B4 002F2D14 40 82 00 20 */ bne lbl_802F70D4 /* 802F70B8 002F2D18 57 80 D8 08 */ slwi r0, r28, 0x1b /* 802F70BC 002F2D1C 57 83 0F FE */ srwi r3, r28, 0x1f /* 802F70C0 002F2D20 7C 03 00 50 */ subf r0, r3, r0 /* 802F70C4 002F2D24 54 00 28 3E */ rotlwi r0, r0, 5 /* 802F70C8 002F2D28 7C 00 1A 15 */ add. r0, r0, r3 /* 802F70CC 002F2D2C 40 82 00 08 */ bne lbl_802F70D4 /* 802F70D0 002F2D30 38 80 00 01 */ li r4, 1 lbl_802F70D4: /* 802F70D4 002F2D34 2C 04 00 00 */ cmpwi r4, 0 /* 802F70D8 002F2D38 41 82 00 50 */ beq lbl_802F7128 /* 802F70DC 002F2D3C 3A E0 00 01 */ li r23, 1 /* 802F70E0 002F2D40 4B FF E9 71 */ bl SOiIsBufferAddrCheck /* 802F70E4 002F2D44 2C 03 00 00 */ cmpwi r3, 0 /* 802F70E8 002F2D48 41 82 00 34 */ beq lbl_802F711C /* 802F70EC 002F2D4C 57 64 00 FE */ clrlwi r4, r27, 3 /* 802F70F0 002F2D50 3C 00 10 00 */ lis r0, 0x1000 /* 802F70F4 002F2D54 7C 04 00 40 */ cmplw r4, r0 /* 802F70F8 002F2D58 38 60 00 00 */ li r3, 0 /* 802F70FC 002F2D5C 41 80 00 14 */ blt lbl_802F7110 /* 802F7100 002F2D60 3C 00 18 00 */ lis r0, 0x1800 /* 802F7104 002F2D64 7C 04 00 40 */ cmplw r4, r0 /* 802F7108 002F2D68 40 80 00 08 */ bge lbl_802F7110 /* 802F710C 002F2D6C 38 60 00 01 */ li r3, 1 lbl_802F7110: /* 802F7110 002F2D70 2C 03 00 00 */ cmpwi r3, 0 /* 802F7114 002F2D74 40 82 00 08 */ bne lbl_802F711C /* 802F7118 002F2D78 3A E0 00 00 */ li r23, 0 lbl_802F711C: /* 802F711C 002F2D7C 2C 17 00 00 */ cmpwi r23, 0 /* 802F7120 002F2D80 41 82 00 08 */ beq lbl_802F7128 /* 802F7124 002F2D84 3B 00 00 01 */ li r24, 1 lbl_802F7128: /* 802F7128 002F2D88 2C 18 00 00 */ cmpwi r24, 0 /* 802F712C 002F2D8C 40 82 00 08 */ bne lbl_802F7134 /* 802F7130 002F2D90 3B E0 00 00 */ li r31, 0 lbl_802F7134: /* 802F7134 002F2D94 38 60 00 0C */ li r3, 0xc /* 802F7138 002F2D98 38 80 00 60 */ li r4, 0x60 /* 802F713C 002F2D9C 4B FF E9 6D */ bl SOiAlloc /* 802F7140 002F2DA0 2C 1F 00 00 */ cmpwi r31, 0 /* 802F7144 002F2DA4 7C 76 1B 78 */ mr r22, r3 /* 802F7148 002F2DA8 40 82 00 1C */ bne lbl_802F7164 /* 802F714C 002F2DAC 38 1C 00 1F */ addi r0, r28, 0x1f /* 802F7150 002F2DB0 38 60 00 0E */ li r3, 0xe /* 802F7154 002F2DB4 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a /* 802F7158 002F2DB8 4B FF E9 51 */ bl SOiAlloc /* 802F715C 002F2DBC 7C 77 1B 78 */ mr r23, r3 /* 802F7160 002F2DC0 48 00 00 08 */ b lbl_802F7168 lbl_802F7164: /* 802F7164 002F2DC4 7F 77 DB 78 */ mr r23, r27 lbl_802F7168: /* 802F7168 002F2DC8 2C 16 00 00 */ cmpwi r22, 0 /* 802F716C 002F2DCC 41 82 00 0C */ beq lbl_802F7178 /* 802F7170 002F2DD0 2C 17 00 00 */ cmpwi r23, 0 /* 802F7174 002F2DD4 40 82 00 0C */ bne lbl_802F7180 lbl_802F7178: /* 802F7178 002F2DD8 3B 00 FF CF */ li r24, -49 /* 802F717C 002F2DDC 48 00 00 84 */ b lbl_802F7200 lbl_802F7180: /* 802F7180 002F2DE0 93 56 00 20 */ stw r26, 0x20(r22) /* 802F7184 002F2DE4 2C 1E 00 00 */ cmpwi r30, 0 /* 802F7188 002F2DE8 3B 16 00 20 */ addi r24, r22, 0x20 /* 802F718C 002F2DEC 93 B6 00 24 */ stw r29, 0x24(r22) /* 802F7190 002F2DF0 40 82 00 10 */ bne lbl_802F71A0 /* 802F7194 002F2DF4 38 00 00 00 */ li r0, 0 /* 802F7198 002F2DF8 90 18 00 08 */ stw r0, 8(r24) /* 802F719C 002F2DFC 48 00 00 1C */ b lbl_802F71B8 lbl_802F71A0: /* 802F71A0 002F2E00 38 00 00 01 */ li r0, 1 /* 802F71A4 002F2E04 7F C4 F3 78 */ mr r4, r30 /* 802F71A8 002F2E08 90 18 00 08 */ stw r0, 8(r24) /* 802F71AC 002F2E0C 38 78 00 0C */ addi r3, r24, 0xc /* 802F71B0 002F2E10 88 BE 00 00 */ lbz r5, 0(r30) /* 802F71B4 002F2E14 4B D0 CE 4D */ bl memcpy lbl_802F71B8: /* 802F71B8 002F2E18 2C 1F 00 00 */ cmpwi r31, 0 /* 802F71BC 002F2E1C 40 82 00 14 */ bne lbl_802F71D0 /* 802F71C0 002F2E20 7E E3 BB 78 */ mr r3, r23 /* 802F71C4 002F2E24 7F 64 DB 78 */ mr r4, r27 /* 802F71C8 002F2E28 7F 85 E3 78 */ mr r5, r28 /* 802F71CC 002F2E2C 4B D0 CE 35 */ bl memcpy lbl_802F71D0: /* 802F71D0 002F2E30 92 F6 00 00 */ stw r23, 0(r22) /* 802F71D4 002F2E34 38 00 00 28 */ li r0, 0x28 /* 802F71D8 002F2E38 7E C7 B3 78 */ mr r7, r22 /* 802F71DC 002F2E3C 38 80 00 0D */ li r4, 0xd /* 802F71E0 002F2E40 93 96 00 04 */ stw r28, 4(r22) /* 802F71E4 002F2E44 38 A0 00 02 */ li r5, 2 /* 802F71E8 002F2E48 38 C0 00 00 */ li r6, 0 /* 802F71EC 002F2E4C 93 16 00 08 */ stw r24, 8(r22) /* 802F71F0 002F2E50 90 16 00 0C */ stw r0, 0xc(r22) /* 802F71F4 002F2E54 80 61 00 08 */ lwz r3, 8(r1) /* 802F71F8 002F2E58 4B FA CC 49 */ bl IOS_Ioctlv /* 802F71FC 002F2E5C 7C 78 1B 78 */ mr r24, r3 lbl_802F7200: /* 802F7200 002F2E60 2C 1F 00 00 */ cmpwi r31, 0 /* 802F7204 002F2E64 40 82 00 18 */ bne lbl_802F721C /* 802F7208 002F2E68 38 1C 00 1F */ addi r0, r28, 0x1f /* 802F720C 002F2E6C 7E E4 BB 78 */ mr r4, r23 /* 802F7210 002F2E70 54 05 00 34 */ rlwinm r5, r0, 0, 0, 0x1a /* 802F7214 002F2E74 38 60 00 0E */ li r3, 0xe /* 802F7218 002F2E78 4B FF E9 79 */ bl SOiFree lbl_802F721C: /* 802F721C 002F2E7C 7E C4 B3 78 */ mr r4, r22 /* 802F7220 002F2E80 38 60 00 0C */ li r3, 0xc /* 802F7224 002F2E84 38 A0 00 60 */ li r5, 0x60 /* 802F7228 002F2E88 4B FF E9 69 */ bl SOiFree lbl_802F722C: /* 802F722C 002F2E8C 7F 23 CB 78 */ mr r3, r25 /* 802F7230 002F2E90 7F 04 C3 78 */ mr r4, r24 /* 802F7234 002F2E94 4B FF EA 79 */ bl SOiConclude lbl_802F7238: /* 802F7238 002F2E98 39 61 00 40 */ addi r11, r1, 0x40 /* 802F723C 002F2E9C 4B EC FF 25 */ bl _restgpr_22 /* 802F7240 002F2EA0 80 01 00 44 */ lwz r0, 0x44(r1) /* 802F7244 002F2EA4 7C 08 03 A6 */ mtlr r0 /* 802F7248 002F2EA8 38 21 00 40 */ addi r1, r1, 0x40 /* 802F724C 002F2EAC 4E 80 00 20 */ blr