AppendCondition
UINT64 __stdcall AppendCondition(
UINT8 **Condition,
UINT64 *ConditionSize,
UINT64 *ConditionPos,
UINT8 *Data,
UINT64 Size){
unsigned int v5;
UINT8 *v6;
int v10;
unsigned int v11;
UINT8 *v12;
UINT8 *v13;
UINT8 *v14;
v5 = 0;
v6 = Data;
if( Condition && ConditionSize && ConditionPos )
{
v10 = *(_DWORD *)ConditionPos;
v11 = *(_DWORD *)ConditionPos + Size;
if( v11 < *(_DWORD *)ConditionPos )
return 534;
if( v11 > *(_DWORD *)ConditionSize )
{
SddlpAlloc(v11, (UINT64)ConditionSize);
v13 = v12;
if( !v12 )
return 8;
v14 = *Condition;
memmove(v12, *Condition, *(unsigned int *)ConditionSize);
if( v14 )
ExFreePoolWithTag(v14, 0);
v6 = Data;
*Condition = v13;
v10 = *(_DWORD *)ConditionPos;
*(_DWORD *)ConditionSize = v11;
}
memmove(&(*Condition)[v10], v6, (unsigned int)Size);
*(_DWORD *)ConditionPos = v10 + Size;
return v5;
}
return 87i64;
}Referenced by:
LocalGetConditionForString