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