__int64 __fastcall sub_A6C(unsigned __int8 a1)
{
int v1; // ebx
__int64 v2; // rdx
__int64 n4; // r8
__int64 v4; // r9
__int64 v5; // rdi
__int64 v6; // rsi
__int64 v7; // rbx
char n2_4; // al
__int64 v9; // rax
char n2_2; // cl
char n2_1; // al
__int64 v12; // rax
char v13; // cl
__int64 v14; // rax
char v15; // dl
unsigned __int8 v17; // [rsp+30h] [rbp-D0h] BYREF
char n8; // [rsp+31h] [rbp-CFh]
char n2; // [rsp+32h] [rbp-CEh] BYREF
char v20; // [rsp+33h] [rbp-CDh]
char v21; // [rsp+34h] [rbp-CCh]
char n2_3; // [rsp+35h] [rbp-CBh]
char v23; // [rsp+36h] [rbp-CAh]
char v24; // [rsp+37h] [rbp-C9h]
char v25; // [rsp+38h] [rbp-C8h]
char v26; // [rsp+39h] [rbp-C7h]
_BYTE v27[72]; // [rsp+140h] [rbp+40h] BYREF
char n15; // [rsp+188h] [rbp+88h]
_BYTE v29[11]; // [rsp+310h] [rbp+210h] BYREF
char n3; // [rsp+31Bh] [rbp+21Bh]
_BYTE v31[52]; // [rsp+3F0h] [rbp+2F0h] BYREF
char n7; // [rsp+424h] [rbp+324h]
char v33; // [rsp+426h] [rbp+326h]
char v34; // [rsp+428h] [rbp+328h]
char v35; // [rsp+42Ah] [rbp+32Ah]
char v36; // [rsp+42Ch] [rbp+32Ch]
char v37; // [rsp+42Eh] [rbp+32Eh]
char v38; // [rsp+430h] [rbp+330h]
char n2_5; // [rsp+477h] [rbp+377h]
char v40; // [rsp+50Ah] [rbp+40Ah]
_BYTE v41[304]; // [rsp+720h] [rbp+620h] BYREF
_BYTE v42[352]; // [rsp+850h] [rbp+750h] BYREF
_BYTE v43[528]; // [rsp+9B0h] [rbp+8B0h] BYREF
_BYTE v44[1504]; // [rsp+BC0h] [rbp+AC0h] BYREF
char v45[6688]; // [rsp+11A0h] [rbp+10A0h] BYREF
char v46; // [rsp+2BD0h] [rbp+2AD0h] BYREF
__int64 n301; // [rsp+2BD8h] [rbp+2AD8h] BYREF
n301 = 0; /*0xa83*/
v1 = a1; /*0xa90*/
v17 = a1; /*0xa98*/
n8 = 0; /*0xa9c*/
sub_5490(&n2, 256); /*0xaa1*/
v5 = 0; /*0xaa6*/
v6 = 0; /*0xaa8*/
if ( !(_BYTE)v1 ) /*0xaae*/
{
n8 = 8; /*0xf22*/
n301 = 301; /*0xf48*/
v7 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xf5d*/
L"SocketProcessorCoreConfig",
&unk_7410,
&v46,
&n301,
v41);
if ( v7 >= 0 ) /*0xf63*/
{
n2 = v41[5] == 0; /*0xf72*/
v20 = v41[7]; /*0xf77*/
}
n301 = 462; /*0xf7f*/
v6 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xfb5*/
L"SocketPowerManagementConfig",
&unk_7430,
&v46,
&n301,
v27);
if ( v6 >= 0 ) /*0xfbb*/
{
v21 = v27[4]; /*0xfc0*/
n2_3 = v27[24]; /*0xfc7*/
v23 = v27[46]; /*0xfce*/
v24 = v27[49]; /*0xfd5*/
v25 = v27[48]; /*0xfdc*/
v26 = v27[63]; /*0xfe3*/
}
goto LABEL_53; /*0xfe3*/
}
switch ( v1 )
{
case 1:
n8 = 5; /*0xde5*/
n301 = 341; /*0xe0b*/
v12 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xe1d*/
L"SocketMpLinkConfig",
&unk_74A0,
&v46,
&n301,
v42);
v13 = v20; /*0xe20*/
v7 = v12; /*0xe2c*/
n301 = 514; /*0xe2f*/
if ( v12 >= 0 ) /*0xe52*/
v13 = v42[21]; /*0xe52*/
v20 = v13; /*0xe68*/
v14 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xe73*/
L"SocketMemoryConfig",
&unk_73E0,
&v46,
&n301,
v43);
v15 = v23; /*0xe76*/
v6 = v14; /*0xe9a*/
n301 = 224; /*0xe9d*/
if ( v14 >= 0 ) /*0xea8*/
v15 = v43[168]; /*0xea8*/
v23 = v15; /*0xeb2*/
v5 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xecd*/
L"SocketCommonRcConfig",
&unk_74B0,
&v46,
&n301,
v29);
if ( v5 >= 0 )
{
n2 = v29[9]; /*0xee4*/
if ( n3 == 3 )
v21 = 1; /*0xef2*/
else
v21 = n3 != 0 ? v21 : 0;
n2_3 = v29[10]; /*0xf07*/
n301 = 224; /*0xf0b*/
}
goto LABEL_53; /*0xf16*/
case 2:
n8 = 2; /*0xd06*/
n301 = 462; /*0xd2c*/
v5 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xd41*/
L"SocketPowerManagementConfig",
&unk_7430,
&v46,
&n301,
v27);
if ( v5 >= 0 ) /*0xd47*/
{
if ( n15 ) /*0xd51*/
{
if ( n15 == 7 ) /*0xd5d*/
{
n2 = 1; /*0xd5f*/
}
else if ( n15 == 8 ) /*0xd69*/
{
n2 = 2; /*0xd6b*/
}
else
{
n2_1 = n2; /*0xd72*/
if ( n15 == 15 ) /*0xd7f*/
n2_1 = 3; /*0xd7f*/
n2 = n2_1; /*0xd82*/
}
}
else
{
n2 = 0; /*0xd53*/
}
}
n301 = 814; /*0xd8d*/
v7 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xdc3*/
L"Setup",
&unk_7568,
&v46,
&n301,
v31);
if ( v7 < 0 ) /*0xdc9*/
return v5; /*0xdc9*/
v20 = v40; /*0xdd5*/
goto LABEL_53; /*0xdd9*/
case 3:
n8 = 5; /*0xc38*/
n301 = 6668; /*0xc5e*/
v9 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, char *))(qword_7940 + 72))( /*0xc70*/
L"SocketIioConfig",
&unk_7470,
&v46,
&n301,
v45);
n2_2 = n2; /*0xc73*/
v5 = v9; /*0xc7f*/
n301 = 1495; /*0xc82*/
if ( v9 >= 0 ) /*0xca5*/
n2_2 = v45[0]; /*0xca5*/
n2 = n2_2; /*0xcbb*/
v7 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xcc9*/
L"PchRcConfiguration",
&unk_73B0,
&v46,
&n301,
v44);
if ( v7 < 0 ) /*0xccf*/
return v5; /*0xccf*/
v20 = v44[196]; /*0xcdb*/
v21 = v44[197]; /*0xce5*/
n2_3 = v44[82]; /*0xcef*/
v23 = v44[83]; /*0xcf9*/
goto LABEL_53; /*0xcfd*/
case 4:
n8 = 0; /*0xc27*/
return sub_9A4((char *)&v17, v2, n4, v4); /*0x1000*/
case 5:
n8 = 8; /*0xb49*/
n301 = 814; /*0xb6f*/
v5 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xb84*/
L"Setup",
&unk_7568,
&v46,
&n301,
v31);
if ( v5 < 0 ) /*0xb8a*/
return v5; /*0xb8a*/
LOBYTE(v2) = n7; /*0xb96*/
v20 = v37; /*0xb9c*/
v21 = v38; /*0xba6*/
v23 = v36; /*0xbb0*/
v24 = v33 - 7; /*0xbbd*/
v25 = v34 - 1; /*0xbc9*/
if ( n7 == 3 ) /*0xbd4*/
{
n2_3 = 0; /*0xbd6*/
}
else
{
n4 = 4; /*0xbdd*/
switch ( n7 ) /*0xbe6*/
{
case 4: /*0xbe6*/
n2_3 = 1; /*0xbe8*/
break;
case 5: /*0xbe6*/
n2_3 = 2; /*0xbf4*/
break;
case 6: /*0xbe6*/
n2_3 = 3; /*0xc00*/
break;
default:
n2_4 = n2_3; /*0xc06*/
if ( n7 == 7 ) /*0xc0e*/
n2_4 = 4; /*0xc0e*/
n2_3 = n2_4; /*0xc12*/
break;
}
}
v26 = v35 != 1; /*0xc1d*/
break;
case 6:
n8 = 1; /*0xaed*/
n301 = 814; /*0xb12*/
v7 = (*(__int64 (__fastcall **)(const __int16 *, void *, char *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0xb27*/
L"Setup",
&unk_7568,
&v46,
&n301,
v31);
if ( v7 < 0 ) /*0xb2d*/
return v5; /*0xb2d*/
n2 = n2_5; /*0xb39*/
LABEL_53:
if ( v7 < 0 || v6 < 0 ) /*0xfef*/
return v5; /*0xfef*/
break;
}
if ( v5 >= 0 ) /*0xff4*/
return sub_9A4((char *)&v17, v2, n4, v4); /*0xff4*/
return v5; /*0x100e*/
}