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