__int64 __fastcall sub_9A4(char *a1, __int64 a2, __int64 a3, __int64 a4)
{
__int64 v4; // r10
__int64 result; // rax
unsigned __int8 v7; // di
int v8; // [rsp+28h] [rbp-20h]
char v9; // [rsp+58h] [rbp+10h] BYREF
char v10; // [rsp+60h] [rbp+18h] BYREF
char v11; // [rsp+68h] [rbp+20h] BYREF
unsigned __int8 v12; // [rsp+69h] [rbp+21h]
char v13; // [rsp+6Ah] [rbp+22h]
char v14; // [rsp+6Bh] [rbp+23h]
v4 = qword_7920; /*0x9ae*/
result = 0; /*0x9b5*/
if ( !qword_7920 ) /*0x9bd*/
{
result = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_79B8 + 320))(&unk_7450, 0, &qword_7920); /*0x9d6*/
if ( result < 0 ) /*0x9df*/
{
qword_7920 = 0; /*0x9e1*/
return result; /*0x9e1*/
}
v4 = qword_7920; /*0x9f4*/
}
v7 = 0; /*0x9fb*/
if ( a1[1] ) /*0x9fe*/
{
while ( 1 ) /*0xa06*/
{
LOBYTE(a4) = 18; /*0xa06*/
v11 = *a1; /*0xa09*/
LOBYTE(a2) = 56; /*0xa14*/
v12 = v7; /*0xa16*/
v14 = 0; /*0xa1b*/
v9 = 1; /*0xa20*/
v13 = a1[v7 + 2]; /*0xa42*/
LOBYTE(v8) = 4; /*0xa49*/
result = (*(__int64 (__fastcall **)(__int64, __int64, _QWORD, __int64, char *, int, char *, char *))(v4 + 16))( /*0xa53*/
v4,
a2,
0,
a4,
&v11,
v8,
&v10,
&v9);
if ( ++v7 >= (unsigned __int8)a1[1] ) /*0xa5e*/
break; /*0xa5e*/
v4 = qword_7920; /*0xa60*/
}
}
return result; /*0x9ee*/
}