// 0xffd821b8
{"addr":"0xffd821b8","code":"int __fastcall sub_FFD821B8(int a1, char a2, int a3, unsigned __int8 n2)\n{\n unsigned __int8 n2_1; // bh\n char v5; // bl\n int v7; // edi\n int v8; // eax\n __int16 v9; // si\n int v10; // edx\n unsigned __int8 v11; // bl\n char v12; // al\n char v13; // al\n char n2_2; // [esp+11h] [ebp-3h] BYREF\n char v16; // [esp+12h] [ebp-2h]\n char v17; // [esp+13h] [ebp-1h] BYREF\n\n n2_1 = n2; /*0xffd821ba*/\n v5 = 0; /*0xffd821be*/\n v16 = a2; /*0xffd821c0*/\n if ( n2 == 1 )\n {\n sub_FFD7F9AF(64, (int)\"EarlyConfigurePchHSata() - First Controller - Start\\n\"); /*0xffd821d5*/\n v7 = sub_FFD8CBBA(0, 23, 0); /*0xffd821e9*/\n sub_FFD8C019(); /*0xffd821eb*/\n }\n else\n {\n if ( n2 != 2 )\n {\n sub_FFD7F9AF(0x80000000, (int)\"Error: Invalid SATA controller!\\n\");\n return -2147483646; /*0xffd8244e*/\n }\n sub_FFD7F9AF(64, (int)\"EarlyConfigurePchHSata() - Second Controller - Start\\n\"); /*0xffd82202*/\n v7 = sub_FFD8CBBA(0, 17, 5); /*0xffd82216*/\n }\n v8 = sub_FFD8CBBA(0, 31, 0); /*0xffd8221f*/\n v9 = sub_FFD8CCA5((unsigned __int16 *)(v8 + 2)); /*0xffd8222d*/\n if ( !(unsigned __int8)sub_FFD8D58A() ) /*0xffd82230*/\n {\n if ( n2_1 == 1 ) /*0xffd8223c*/\n v5 = sub_FFD81814(); /*0xffd82243*/\n if ( n2_1 != 2 ) /*0xffd82248*/\n goto LABEL_14; /*0xffd82248*/\n v11 = 0; /*0xffd8224a*/\n while ( 1 ) /*0xffd82253*/\n {\n sub_FFD8E7BA(v11, &n2); /*0xffd82253*/\n sub_FFD8E062(n2, &v17, &n2_2); /*0xffd82266*/\n if ( n2_2 == 2 ) /*0xffd82271*/\n break; /*0xffd82271*/\n if ( ++v11 >= 6u ) /*0xffd82278*/\n {\n v5 = 0; /*0xffd8227a*/\n goto LABEL_14; /*0xffd8227c*/\n }\n }\n }\n v5 = 1; /*0xffd8227e*/\nLABEL_14:\n if ( (*(_BYTE *)a1 & 1) != 0 && (v5 || *(_DWORD *)(a1 + 4)) ) /*0xffd8228e*/\n {\n *(_BYTE *)(v7 + 160) = -104; /*0xffd82298*/\n *(_DWORD *)(v7 + 164) = *(_DWORD *)(v7 + 164) & 0xFFFFFE00 | 0x183; /*0xffd822ad*/\n *(_BYTE *)(v7 + 160) = -104; /*0xffd822b3*/\n *(_DWORD *)(v7 + 164) |= 0x8000u; /*0xffd822c5*/\n *(_BYTE *)(v7 + 160) = -92; /*0xffd822cb*/\n *(_DWORD *)(v7 + 164) |= 0x40u; /*0xffd822db*/\n if ( v9 == -24254 /*0xffd8237d*/\n || v9 == -24253\n || v9 == -24252\n || v9 == -24251\n || v9 == -24250\n || v9 == -24249\n || v9 == -24248\n || v9 == -24256\n || v9 == -24255\n || v9 == -24243\n || v9 == -24242\n || v9 == -24241\n || v9 == -25280\n || v9 == -25279\n || v9 == -25278\n || v9 == -25277\n || v9 == -25274\n || v9 == -25272 )\n {\n *(_BYTE *)(v7 + 160) = -100; /*0xffd8237f*/\n *(_DWORD *)(v7 + 164) |= 0x400000u; /*0xffd82391*/\n }\n *(_BYTE *)(v7 + 160) = -100; /*0xffd82397*/\n *(_DWORD *)(v7 + 164) = *(_DWORD *)(v7 + 164) & 0xDF63E013 | 0x209C0224; /*0xffd823ae*/\n if ( n2_1 == 1 ) /*0xffd823b7*/\n {\n *(_BYTE *)(v7 + 160) = -100; /*0xffd823b9*/\n *(_DWORD *)(v7 + 164) |= 0x40000000u; /*0xffd823cb*/\n }\n v12 = *(_BYTE *)(v7 + 156) | 0x20; /*0xffd823d7*/\n if ( *(_DWORD *)(a1 + 4) == 1 ) /*0xffd823dd*/\n {\n if ( (*(_BYTE *)(a1 + 76) & 1) != 0 ) /*0xffd823e5*/\n v12 = *(_BYTE *)(v7 + 156) & 0x1F | 0xA0; /*0xffd823e7*/\n else\n v12 = *(_BYTE *)(v7 + 156) & 0x1F | 0x60; /*0xffd823eb*/\n }\n if ( v16 ) /*0xffd823f2*/\n v13 = v12 & 0xE1 | 6; /*0xffd823f6*/\n else\n v13 = v12 & 0xE8 | 0x10; /*0xffd823fc*/\n *(_BYTE *)(v7 + 156) = v13 & 0xF8 | 6; /*0xffd8240d*/\n sub_FFD8CC4F(v7 + 148, 255); /*0xffd82413*/\n sub_FFD7FA46(2u); /*0xffd8241b*/\n sub_FFD7F9AF(64, (int)\"EarlyConfigurePchHSata() End\\n\"); /*0xffd82427*/\n return 0; /*0xffd8242c*/\n }\n else\n {\n LOBYTE(v10) = n2_1; /*0xffd82434*/\n sub_FFD81FF5(a3, v10); /*0xffd82436*/\n return 0; /*0xffd8243b*/\n }\n}","refs":[{"addr":"0xffd7f9af","name":"sub_FFD7F9AF"},{"addr":"0xffd93020","name":"aEarlyconfigure","string":"EarlyConfigurePchHSata() - First Controller - Start\n"},{"addr":"0xffd8cbba","name":"sub_FFD8CBBA"},{"addr":"0xffd8c019","name":"sub_FFD8C019"},{"addr":"0xffd92d9c","name":"aErrorInvalidSa","string":"Error: Invalid SATA controller!\n"},{"addr":"0xffd93058","name":"aEarlyconfigure_0","string":"EarlyConfigurePchHSata() - Second Controller - Start\n"},{"addr":"0xffd8cca5","name":"sub_FFD8CCA5"},{"addr":"0xffd81814","name":"sub_FFD81814"},{"addr":"0xffd8e7ba","name":"sub_FFD8E7BA"},{"addr":"0xffd8e062","name":"sub_FFD8E062"},{"addr":"0xffd8d58a","name":"sub_FFD8D58A"},{"addr":"0xffd8cc4f","name":"sub_FFD8CC4F"},{"addr":"0xffd7fa46","name":"sub_FFD7FA46"},{"addr":"0xffd93090","name":"aEarlyconfigure_1","string":"EarlyConfigurePchHSata() End\n"},{"addr":"0xffd81ff5","name":"sub_FFD81FF5"}]}