__int64 __fastcall sub_57C4(__int64 a1, _BYTE *p_n8, _BYTE *a3, _BYTE *p_n4, _BYTE *n11_1)
{
__int64 v5; // rax
_BYTE *n11_4; // r15
_BYTE *p_n4_1; // rdi
bool v8; // r13
_BYTE *p_n8_1; // r14
char n11; // r12
__int64 result; // rax
char n11_2; // cl
bool v14; // bl
bool v15; // zf
__int64 v16; // [rsp+40h] [rbp-C0h] BYREF
unsigned __int64 v17; // [rsp+48h] [rbp-B8h]
_BYTE v18[298]; // [rsp+50h] [rbp-B0h] BYREF
char n11_3; // [rsp+17Ah] [rbp+7Ah]
__int64 v20; // [rsp+3C0h] [rbp+2C0h] BYREF
unsigned int v21; // [rsp+3C8h] [rbp+2C8h] BYREF
__int64 n814; // [rsp+3D0h] [rbp+2D0h] BYREF
v20 = a1; /*0x57c9*/
v5 = qword_7920; /*0x57e8*/
n11_4 = n11_1; /*0x57f1*/
p_n4_1 = p_n4; /*0x57fb*/
n814 = 814; /*0x57fe*/
v8 = qword_7920 == 0; /*0x5809*/
v16 = 0x4BB5EBA4EC87D643LL; /*0x580d*/
v17 = 0xA90DB2363E3FE5A1uLL; /*0x5820*/
p_n8_1 = p_n8; /*0x5828*/
n11 = -1; /*0x5833*/
*a3 = -1; /*0x5836*/
*n11_4 = -1; /*0x583a*/
*p_n8 = 0; /*0x583e*/
*p_n4 = 0; /*0x5840*/
v21 = 0; /*0x5843*/
if ( v8 /*0x5887*/
|| (LOBYTE(v20) = 1,
LOBYTE(p_n4) = 89,
LOBYTE(p_n8) = 46,
(*(__int64 (__fastcall **)(__int64, _BYTE *, _QWORD, _BYTE *, _QWORD, _BYTE, _BYTE **, __int64 *, __int64, unsigned __int64))(v5 + 16))(
v5,
p_n8,
0,
p_n4,
0,
0,
&n11_1,
&v20,
v16,
v17) < 0) )
{
v8 = 1; /*0x5897*/
}
else
{
n11 = (char)n11_1; /*0x5889*/
}
if ( (*(__int64 (__fastcall **)(const __int16 *, __int64 *, unsigned int *, __int64 *, _BYTE *))(qword_7940 + 72))( /*0x58cb*/
L"Setup",
&v16,
&v21,
&n814,
v18) < 0 )
return 0x8000000000000003uLL; /*0x58d7*/
n11_2 = n11_3; /*0x58dc*/
if ( !v8 ) /*0x58ee*/
n11_2 = n11; /*0x58ee*/
n11_3 = n11_2; /*0x58f1*/
sub_5B28(17170432, &v20); /*0x58f9*/
v14 = (_DWORD)v20 != 1; /*0x5911*/
LODWORD(v20) = 0; /*0x5914*/
sub_5B28(16973835, &v20); /*0x591d*/
v15 = (_DWORD)v20 == 0; /*0x5924*/
*p_n4_1 = 0; /*0x592a*/
if ( v14 ) /*0x5932*/
{
if ( v15 ) /*0x5970*/
{
if ( !n11 ) /*0x5975*/
{
*a3 = 4; /*0x5999*/
*n11_4 = 0; /*0x599c*/
goto LABEL_34; /*0x599f*/
}
if ( n11 == 9 ) /*0x597b*/
{
*p_n8_1 = 4; /*0x5990*/
*a3 = 8; /*0x5994*/
}
else
{
*p_n8_1 = 0; /*0x597d*/
if ( n11 == 11 ) /*0x5984*/
{
*a3 = 4; /*0x598b*/
goto LABEL_15; /*0x598e*/
}
*a3 = -1; /*0x5986*/
}
LABEL_29:
*n11_4 = -1; /*0x59b8*/
goto LABEL_35; /*0x59bc*/
}
if ( !n11 ) /*0x59a4*/
{
*n11_4 = 8; /*0x59c8*/
goto LABEL_33; /*0x59c8*/
}
*a3 = -1; /*0x59a6*/
if ( n11 == 9 ) /*0x59ad*/
{
*p_n8_1 = 4; /*0x59be*/
}
else
{
*p_n8_1 = 0; /*0x59af*/
if ( n11 != 11 ) /*0x59b6*/
goto LABEL_29; /*0x59b6*/
}
*n11_4 = 8; /*0x59c2*/
goto LABEL_35; /*0x59c6*/
}
if ( n11 == 1 ) /*0x593b*/
{
*a3 = 2; /*0x5965*/
*n11_4 = 6; /*0x5968*/
LABEL_34:
*p_n8_1 = 0; /*0x59cf*/
goto LABEL_35; /*0x59cf*/
}
if ( n11 == 8 ) /*0x5940*/
{
*p_n8_1 = 4; /*0x5958*/
*a3 = 4; /*0x595c*/
*n11_4 = 4; /*0x595f*/
goto LABEL_35; /*0x5963*/
}
if ( n11 != 10 ) /*0x5945*/
{
*n11_4 = -1; /*0x5947*/
LABEL_33:
*a3 = -1; /*0x59cc*/
goto LABEL_34; /*0x59cc*/
}
*p_n8_1 = 4; /*0x594d*/
*a3 = 0; /*0x5951*/
LABEL_15:
*n11_4 = 0; /*0x5953*/
LABEL_35:
if ( v8 ) /*0x59d5*/
return 0; /*0x59d5*/
result = (*(__int64 (__fastcall **)(const __int16 *, __int64 *, _QWORD, __int64, _BYTE *))(qword_7940 + 88))( /*0x5a02*/
L"Setup",
&v16,
v21,
n814,
v18);
if ( result >= 0 ) /*0x5a08*/
return 0; /*0x5a0a*/
return result; /*0x5a14*/
}