int __cdecl sub_FFD8245B(int n2)
{
  int v1; // ecx
  int v2; // ebx
  int v3; // edi
  int v4; // esi
  unsigned int n6; // ebp
  int v6; // eax
  unsigned __int8 n6_1; // cl
  int v8; // eax

  v2 = 0; /*0xffd82460*/
  v3 = v1; /*0xffd8246c*/
  if ( (_BYTE)n2 == 1 ) /*0xffd8246e*/
  {
    DebugPrint(64, (int)"ConfigurePchHSata() - First Controller - Start\
"); /*0xffd82477*/
    v4 = sub_FFD8CBBA(0, 23, 0); /*0xffd8248a*/
    n6 = (unsigned __int8)sub_FFD8C019(); /*0xffd82491*/
  }
  else
  {
    DebugPrint(64, (int)"ConfigurePchHSata() - Second Controller - Start\
"); /*0xffd8249d*/
    v4 = sub_FFD8CBBA(0, 17, 5); /*0xffd824b1*/
    n6 = 6; /*0xffd824b5*/
  }
  v6 = sub_FFD8CBBA(0, 31, 0); /*0xffd824bc*/
  sub_FFD8CCA5((unsigned __int16 *)(v6 + 2)); /*0xffd824c5*/
  sub_FFD81B92(n2); /*0xffd824d4*/
  if ( (*(_BYTE *)v3 & 8) != 0 ) /*0xffd824dd*/
  {
    n6_1 = 0; /*0xffd824e3*/
    if ( n6 ) /*0xffd824e7*/
    {
      v8 = 0; /*0xffd824e9*/
      do /*0xffd82506*/
      {
        if ( (*(_BYTE *)(v3 + 8 * v8 + 12) & 1) != 0 && (*(_DWORD *)(v3 + 8 * v8 + 12) & 0x40000A) != 0 ) /*0xffd824fa*/
          v2 |= 1 << v8; /*0xffd824fc*/
        v8 = ++n6_1; /*0xffd82501*/
      }
      while ( n6_1 < n6 ); /*0xffd82506*/
    }
    *(_BYTE *)(v4 + 160) = -112; /*0xffd82508*/
    *(_DWORD *)(v4 + 164) |= (unsigned __int8)~(_BYTE)v2; /*0xffd82521*/
    *(_BYTE *)(v4 + 160) = 0x80; /*0xffd8252c*/
    *(_DWORD *)(v4 + 164) |= v2 << 16; /*0xffd8253b*/
    *(_BYTE *)(v4 + 160) = -116; /*0xffd82541*/
    *(_DWORD *)(v4 + 164) |= 0xFF00FFu; /*0xffd82550*/
    *(_BYTE *)(v4 + 160) = -96; /*0xffd82556*/
    *(_DWORD *)(v4 + 164) = *(_DWORD *)(v4 + 164) & 0xFF037FFF | 0x588000; /*0xffd8256d*/
    *(_BYTE *)(v4 + 160) = -124; /*0xffd82573*/
    *(_DWORD *)(v4 + 164) |= 0xFF00FFu; /*0xffd82582*/
    *(_BYTE *)(v4 + 160) = -92; /*0xffd82588*/
    *(_DWORD *)(v4 + 164) |= 0x4000u; /*0xffd8259a*/
    *(_BYTE *)(v4 + 160) = -52; /*0xffd825a0*/
    *(_DWORD *)(v4 + 164) = -2009296895; /*0xffd825a7*/
    *(_BYTE *)(v4 + 160) = -48; /*0xffd825b1*/
    *(_DWORD *)(v4 + 164) = *(_DWORD *)(v4 + 164) & 0xFFFF0000 | 0x8828; /*0xffd825c8*/
    *(_BYTE *)(v4 + 160) = -56; /*0xffd825ce*/
    *(_DWORD *)(v4 + 164) |= 8u; /*0xffd825de*/
    *(_BYTE *)(v4 + 160) = -56; /*0xffd825e4*/
    *(_DWORD *)(v4 + 164) |= 1u; /*0xffd825f4*/
    *(_BYTE *)(v4 + 160) = -56; /*0xffd825fa*/
    *(_DWORD *)(v4 + 164) |= 2u; /*0xffd8260a*/
  }
  *(_BYTE *)(v4 + 160) = -88; /*0xffd82610*/
  *(_DWORD *)(v4 + 164) &= 0xFFF0FFFF; /*0xffd82622*/
  *(_BYTE *)(v4 + 160) = -44; /*0xffd82628*/
  *(_DWORD *)(v4 + 164) = *(_DWORD *)(v4 + 164) & 0xC0C0E0E0 | 0x2C1E1108; /*0xffd8263f*/
  *(_BYTE *)(v4 + 158) &= ~1u; /*0xffd8264d*/
  if ( *(_DWORD *)(v3 + 4) == 1 ) /*0xffd82657*/
    *(_BYTE *)(v4 + 158) |= 1u; /*0xffd82661*/
  if ( (_BYTE)n2 == 1 ) /*0xffd8266c*/
    return DebugPrint(64, (int)"ConfigurePchHSata() - First Controller - End\
"); /*0xffd82673*/
  else
    return DebugPrint(64, (int)"ConfigurePchHSata() - Second Controller - End\
"); /*0xffd8267c*/
}
