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*/
}