VhdiGetDiskParameters

VOID __fastcall VhdiGetDiskParameters(INT64 a1, INT64 a2, INT64 a3, INT64 a4, INT64 a5){
  unsigned int v9; 
  int v10; 
  char v11; 
  INT64 v12; 
  int v13; 
  INT64 v14; 
  if( a1 )
  {
    if( a2 )
    {
      if( a3 )
      {
        if( a5 )
        {
          if( *(_DWORD *)(a1 + 4) == 6 && *(_DWORD *)(a1 + 36) == 6 )
          {
            v9 = *(_DWORD *)(a1 + 12);
            if( v9 >= 0x5C
              && v9 >= *(_DWORD *)(a1 + 68) + 56
              && !*(_DWORD *)(a1 + 60)
              && *(_DWORD *)(a1 + 76) == 5
              && *(_DWORD *)(a1 + 88) == 5 )
            {
              v10 = *(_DWORD *)(a1 + 92);
              if( !v10 )
              {
                if( *(_DWORD *)(a1 + 108) != 3 )
                  return;
                v11 = 1;
                memset(a2, 0i64);
                v12 = 0i64;
LABEL_22:
                *(_QWORD *)a3 = v12;
                v14 = a1 + 92 + *(unsigned int *)(a1 + 100);
                *(_BYTE *)a4 = v11;
                *(_QWORD *)a5 = v14;
                return;
              }
              if( v10 == 6 )
              {
                v11 = 0;
                if( !*(_DWORD *)(a1 + 124) )
                {
                  memset(a2, 0i64);
                  *(_DWORD *)(a2 + 24) = *(_DWORD *)a1;
                  v13 = *(_DWORD *)(a1 + 128);
                  if( v13 == 1 )
                  {
                    *(_QWORD *)(a2 + 8) = *(_QWORD *)(a1 + 108);
                  }
                  else
                  {
                    if( v13 )
                      return;
                    *(_DWORD *)a2 = 1;
                    *(_OWORD *)(a2 + 48) = *(_OWORD *)(a1 + 108);
                  }
                  v12 = a1 + 132;
                  goto LABEL_22;
                }
              }
            }
          }
        }
      }
    }
  }
}

Referenced by:

VhdInitialize