GetStringOperandValue
UINT64 __stdcall GetStringOperandValue(WCHAR *Condition, _OPERAND_VALUE **Value, UINT64 *MoveBy){
unsigned int v3;
WCHAR *v4;
WCHAR v5;
unsigned int v8;
_OPERAND_VALUE *v9;
UINT64 v10;
VOID *v11;
_OPERAND_VALUE *v12;
v3 = 0;
v4 = Condition + 1;
v5 = Condition[1];
v8 = 1;
while( v5 != 34 && v5 )
v5 = Condition[++v8];
if( Condition[v8] )
{
v9 = *Value;
*((_BYTE *)*Value + 1) = 16;
if( v8 <= 1 )
{
v9[1] = 0;
*((_QWORD *)v9 + 1) = 0i64;
}
else
{
v10 = 2 * v8 - 2;
v9[1] = v10;
if( 2 * v8 != 2 )
{
v11 = SddlpAlloc(v10, (UINT8)Value, (UINT64)MoveBy);
v12 = *Value;
*((_QWORD *)*Value + 1) = v11;
if( !v11 )
return 8;
memmove(v11, v4, v12[1]);
}
}
*(_DWORD *)MoveBy = v8 + 1;
return v3;
}
return 1336;
}Referenced by:
GetOperandValue