HalpExtractGenericErrorData

void __fastcall HalpExtractGenericErrorData(__int64 a1){
  __int64 v1; 
  __int64 v3; 
  UINT64 v4; 
  UINT8 *v5; 
  v1 = *(_QWORD *)(a1 + 56);
  v3 = *(_QWORD *)(a1 + 24);
  v4 = *(unsigned int *)(a1 + 48);
  v5 = (UINT8 *)(v3 + *(unsigned int *)(v3 + 64));
  *(_DWORD *)(v3 + 20) = *(_DWORD *)(v1 + 16);
  memmove(v5, (UINT8 *)v1, v4);
  if( *(_DWORD *)(a1 + 96) == 12 && !*(_DWORD *)(v3 + 20) && !*(_QWORD *)(v3 + 48) )
    *(_QWORD *)(v3 + 48) = v3;
}

Referenced by:

HalpReadGenericErrorInfo