HalpExtractGenericErrorData

VOID *__fastcall HalpExtractGenericErrorData(__int64 a1){
  _DWORD *v1; 
  __int64 v3; 
  size_t v4; 
  VOID *v5; 
  VOID *result; 

  v1 = *(_DWORD **)(a1 + 56);
  v3 = *(_QWORD *)(a1 + 24);
  v4 = *(_DWORD *)(a1 + 48);
  v5 = (VOID *)(v3 + *(unsigned int *)(v3 + 64));
  *(_DWORD *)(v3 + 20) = v1[4];
  result = memmove(v5, v1, v4);
  if( *(_DWORD *)(a1 + 96) == 12 && !*(_DWORD *)(v3 + 20) && !*(_QWORD *)(v3 + 48) )
    *(_QWORD *)(v3 + 48) = v3;
  return result;
}

Referenced by:

HalpReadGenericErrorInfo