__int64 __fastcall sub_868(char a1, _BYTE *a2, __int64 a3, __int64 a4) { __int64 v4; // rax _BYTE *v5; // rbx __int64 result; // rax _BYTE v8[24]; // [rsp+40h] [rbp-18h] BYREF char n3; // [rsp+70h] [rbp+18h] BYREF char v10; // [rsp+78h] [rbp+20h] BYREF v4 = qword_7920; /*0x872*/ v5 = a2; /*0x879*/ if ( !qword_7920 ) /*0x882*/ { result = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_79B8 + 320))(&unk_7450, 0, &qword_7920); /*0x89b*/ if ( result < 0 ) /*0x8a4*/ { qword_7920 = 0; /*0x8a6*/ return result; /*0x8ae*/ } v4 = qword_7920; /*0x8b0*/ } v8[0] = a1; /*0x8bc*/ LOBYTE(a4) = 44; /*0x8c6*/ n3 = 3; /*0x8ce*/ LOBYTE(a2) = 46; /*0x8ea*/ result = (*(__int64 (__fastcall **)(__int64, _BYTE *, _QWORD, __int64, _BYTE *, char, char *, char *))(v4 + 16))( /*0x8ef*/ v4, a2, 0, a4, v8, 1, &v10, &n3); if ( result >= 0 ) /*0x8f5*/ { *v5 = v10; /*0x8fb*/ return 0; /*0x8fd*/ } return result; /*0x904*/ }