char sub_101C() { __int64 v0; // rax __int64 v1; // r8 _BYTE *v2; // rdx unsigned __int16 v3; // ax __int64 v4; // rdx __int64 v5; // r9 unsigned __int8 i; // bl __int64 v7; // r9 __int64 v8; // rdx int v10; // [rsp+28h] [rbp-D8h] _BYTE v11[6688]; // [rsp+40h] [rbp-C0h] BYREF char n2; // [rsp+1A70h] [rbp+1970h] BYREF unsigned __int16 v13; // [rsp+1A78h] [rbp+1978h] BYREF __int16 v14; // [rsp+1A80h] [rbp+1980h] BYREF __int64 n6668; // [rsp+1A88h] [rbp+1988h] BYREF if ( qword_7920 /*0x1058*/ || (v0 = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_79B8 + 320))(&unk_7450, 0, &qword_7920), v0 >= 0) ) { n6668 = 6668; /*0x106c*/ v0 = (*(__int64 (__fastcall **)(const __int16 *, void *, _QWORD, __int64 *, _BYTE *))(qword_79C0 + 72))( /*0x109b*/ L"SocketIioConfig", &unk_7470, 0, &n6668, v11); if ( v0 >= 0 ) /*0x10a1*/ { sub_1AA8(); /*0x10a7*/ v13 = 0; /*0x10ac*/ n6668 = 49; /*0x10bb*/ if ( byte_7D91 && byte_7D60 ) /*0x10d0*/ { v1 = (unsigned __int8)byte_7D60; /*0x10d2*/ v2 = &unk_7D61; /*0x10d6*/ v3 = v13; /*0x10dd*/ do /*0x1126*/ { if ( v2[1] <= 0x17u /*0x110e*/ && *v2 <= 0xBu && v11[((unsigned __int64)(unsigned __int8)v2[1] >> 2) + 4266] == 1 && v11[(unsigned __int8)v2[1] + 4278] == 1 ) { v3 |= 1 << (*v2 & 0xF); /*0x1113*/ v13 = v3; /*0x1117*/ } v2 += 2; /*0x111e*/ --v1; /*0x1122*/ } while ( v1 ); /*0x1126*/ } else { v3 = v13; /*0x112a*/ } sub_5408(64, "SendVmdCommandToBp %x to BMC\ ", v3); /*0x1141*/ for ( i = 0; i < 0xAu; ++i ) /*0x1146*/ { n2 = 0; /*0x114f*/ LOBYTE(v5) = 96; /*0x115b*/ LOBYTE(v10) = 2; /*0x116b*/ LOBYTE(v4) = 46; /*0x1178*/ v0 = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, unsigned __int16 *, int, _QWORD, char *))(qword_7920 + 16))( /*0x1184*/ qword_7920, v4, 0, v5, &v13, v10, 0, &n2); if ( v0 >= 0 ) /*0x118a*/ { (*(void (__fastcall **)(__int64))(qword_79B8 + 248))(5000); /*0x1198*/ v14 = 0; /*0x119e*/ LOBYTE(v7) = 97; /*0x11b2*/ n2 = 2; /*0x11bc*/ LOBYTE(v8) = 46; /*0x11d2*/ LOBYTE(v10) = 0; /*0x11d4*/ v0 = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, _QWORD, int, __int16 *, char *))(qword_7920 + 16))( /*0x11e2*/ qword_7920, v8, 0, v7, 0, v10, &v14, &n2); if ( v0 < 0 ) /*0x11e8*/ break; /*0x11e8*/ LOBYTE(v0) = v13; /*0x11ea*/ if ( (_BYTE)v14 == (_BYTE)v13 ) /*0x11f6*/ { LOBYTE(v0) = HIBYTE(v13); /*0x11f8*/ if ( HIBYTE(v14) == HIBYTE(v13) ) /*0x1204*/ break; /*0x1204*/ } } } } } else { qword_7920 = 0; /*0x105a*/ } return v0; /*0x1211*/ }