Newer
Older
AMI-Aptio-BIOS-Reversed / SiInitPreMem / decompiled / ffd8690c.c
@Ajax Dong Ajax Dong 2 days ago 5 KB Init
// 0xffd8690c
{"addr":"0xffd8690c","code":"int __fastcall sub_FFD8690C(int a1, int a2)\n{\n  int v2; // ebp\n  int n15_1; // ebx\n  unsigned __int8 i_4; // cl\n  unsigned __int8 i_1; // al\n  unsigned __int64 v6; // rdi\n  int v7; // ebx\n  int v8; // ebp\n  _DWORD *v9; // eax\n  _DWORD *v10; // esi\n  unsigned int v11; // ecx\n  int result; // eax\n  int v13; // [esp-8h] [ebp-34h]\n  char v14; // [esp+11h] [ebp-1Bh] BYREF\n  unsigned __int8 i; // [esp+12h] [ebp-1Ah]\n  unsigned __int8 i_3; // [esp+13h] [ebp-19h]\n  unsigned int n1342177280; // [esp+14h] [ebp-18h] BYREF\n  int v18; // [esp+18h] [ebp-14h]\n  int v19; // [esp+1Ch] [ebp-10h]\n  int n15; // [esp+20h] [ebp-Ch] BYREF\n  unsigned int i_2; // [esp+24h] [ebp-8h] BYREF\n  unsigned int v22; // [esp+28h] [ebp-4h] BYREF\n\n  v2 = a2; /*0xffd86913*/\n  v19 = a1; /*0xffd86915*/\n  v18 = a2; /*0xffd86920*/\n  sub_FFD7F9AF(64, (int)\"xHCI: Usb2AfeProgramming Start\\n\");\n  sub_FFD8BE68(); /*0xffd86929*/\n  sub_FFD8BB3A(v13); /*0xffd8692e*/\n  sub_FFD8C909(&v22); /*0xffd86937*/\n  n15_1 = sub_FFD8CBBA(0, 31, 2); /*0xffd8694b*/\n  n15 = n15_1; /*0xffd86951*/\n  sub_FFD8ADCC(202, 6, 16427, 0, 0, 0, &n1342177280, &v14, 6); /*0xffd86970*/\n  n1342177280 |= 0x400000u; /*0xffd86975*/\n  sub_FFD8ADCC(202, 7, 16427, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86999*/\n  sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd869a9*/\n  sub_FFD8ADCC(202, 6, 16385, 0, 0, 0, &n1342177280, &v14, 6); /*0xffd869cc*/\n  n1342177280 |= 0x3000000u; /*0xffd869d8*/\n  sub_FFD8ADCC(202, 7, 16385, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd869f5*/\n  sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86a05*/\n  sub_FFD8ADCC(202, 6, 28672, 0, 0, 0, &n1342177280, &v14, 6); /*0xffd86a2a*/\n  n1342177280 = (unsigned __int16)n1342177280 | 0x50500000; /*0xffd86a41*/\n  sub_FFD8ADCC(202, 7, 28672, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86a59*/\n  sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86a69*/\n  n1342177280 = 1342177280; /*0xffd86a71*/\n  sub_FFD8ADCC(202, 7, 28724, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86a95*/\n  sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86aa5*/\n  n1342177280 = 175176950; /*0xffd86aad*/\n  sub_FFD8ADCC(202, 7, 28728, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86ad3*/\n  sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86ae3*/\n  n1342177280 = 532398080; /*0xffd86aeb*/\n  sub_FFD8ADCC(202, 7, 28732, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86b0f*/\n  sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86b1f*/\n  n1342177280 = 34432; /*0xffd86b27*/\n  sub_FFD8ADCC(202, 7, 32516, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86b4d*/\n  sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86b5d*/\n  n1342177280 = 67251212; /*0xffd86b65*/\n  sub_FFD8ADCC(202, 7, 28712, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86b8b*/\n  sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86b9b*/\n  n1342177280 = 184552192; /*0xffd86ba9*/\n  sub_FFD8ADCC(202, 7, 32515, 0, 1u, 0, &n1342177280, &v14, 7); /*0xffd86bc9*/\n  sub_FFD8A1DE(n1342177280, v2, n15_1); /*0xffd86bd9*/\n  i_4 = sub_FFD8C035(); /*0xffd86be6*/\n  i_1 = 1; /*0xffd86be8*/\n  i_3 = i_4; /*0xffd86bea*/\n  for ( i = 1; i_1 <= i_3; i = i_1 ) /*0xffd86bf4*/\n  {\n    i_2 = i_1; /*0xffd86c07*/\n    v6 = (unsigned __int64)(i_1 | 0x40u) << 8; /*0xffd86c25*/\n    sub_FFD8ADCC(202, 6, v6, SHIDWORD(v6), 0, 0, &n1342177280, &v14, 6); /*0xffd86c2c*/\n    v7 = 2 * i; /*0xffd86c3d*/\n    n1342177280 = n1342177280 & 0xFFFF80FF /*0xffd86c87*/\n                | ((*(_BYTE *)(v19 + 16 * i - 3) & 7\n                  | (8 * (*(_BYTE *)(v19 + 16 * i - 4) & 7 | (8 * (*(_BYTE *)(v19 + 16 * i - 1) & 1))))) << 8)\n                | 0xFC000010;\n    sub_FFD8ADCC(202, 7, v6, SHIDWORD(v6), 1u, 0, &n1342177280, &v14, 7); /*0xffd86c93*/\n    sub_FFD8A1DE(n1342177280, v18, n15); /*0xffd86ca9*/\n    v8 = (unsigned __int64)i_2 >> 24; /*0xffd86cb9*/\n    LODWORD(v6) = i_2 << 8; /*0xffd86cbd*/\n    HIDWORD(v6) = (i_2 << 8) | 0x4026; /*0xffd86cca*/\n    n1342177280 = 0; /*0xffd86cd8*/\n    sub_FFD8ADCC(202, 6, SHIDWORD(v6), v8, 0, 0, &n1342177280, &v14, 6); /*0xffd86ce2*/\n    n1342177280 ^= (n1342177280 ^ (*(unsigned __int8 *)(v19 + 8 * v7 - 2) << 23)) & 0x1800000; /*0xffd86d0b*/\n    sub_FFD8ADCC(202, 7, SHIDWORD(v6), v8, 1u, 0, &n1342177280, &v14, 7); /*0xffd86d22*/\n    n15_1 = n15; /*0xffd86d27*/\n    sub_FFD8A1DE(n1342177280, v18, n15); /*0xffd86d39*/\n    LODWORD(v6) = v6 | 0x4008; /*0xffd86d47*/\n    sub_FFD8ADCC(202, 6, v6, v8, 0, 0, &n1342177280, &v14, 6); /*0xffd86d61*/\n    n1342177280 = n1342177280 & 0xFFFFC17F | 0x1A80; /*0xffd86d7c*/\n    sub_FFD8ADCC(202, 7, v6, v8, 1u, 0, &n1342177280, &v14, 7); /*0xffd86d94*/\n    v2 = v18; /*0xffd86d99*/\n    sub_FFD8A1DE(n1342177280, v18, n15_1); /*0xffd86da8*/\n    i_1 = i + 1; /*0xffd86db4*/\n  }\n  if ( sub_FFD8BE68() == 2 ) /*0xffd86dcc*/\n  {\n    i_3 = sub_FFD89FDC(&i_2); /*0xffd86ddd*/\n    v9 = (_DWORD *)sub_FFD8A048(); /*0xffd86de1*/\n    v10 = v9; /*0xffd86de6*/\n    if ( v9 ) /*0xffd86dea*/\n    {\n      v11 = i_2 + *v9; /*0xffd86df2*/\n      n15 = 15; /*0xffd86df8*/\n      sub_FFD8D51B(v11, &n15, 4); /*0xffd86e00*/\n      *v10 += 4; /*0xffd86e05*/\n      if ( i_3 == 1 ) /*0xffd86e0e*/\n        sub_FFD8A02F(n15_1); /*0xffd86e12*/\n    }\n  }\n  sub_FFD8A2C4(v2, n15_1); /*0xffd86e1b*/\n  result = *(_DWORD *)(v22 + 24) | 0x20000000; /*0xffd86e2a*/\n  *(_DWORD *)(v22 + 24) = result; /*0xffd86e2f*/\n  return result; /*0xffd86e24*/\n}","refs":[{"addr":"0xffd7f9af","name":"sub_FFD7F9AF"},{"addr":"0xffd94328","name":"aXhciUsb2afepro","string":"xHCI: Usb2AfeProgramming Start\n"},{"addr":"0xffd8be68","name":"sub_FFD8BE68"},{"addr":"0xffd8bb3a","name":"sub_FFD8BB3A"},{"addr":"0xffd8c909","name":"sub_FFD8C909"},{"addr":"0xffd8cbba","name":"sub_FFD8CBBA"},{"addr":"0xffd8adcc","name":"sub_FFD8ADCC"},{"addr":"0xffd8a1de","name":"sub_FFD8A1DE"},{"addr":"0xffd8c035","name":"sub_FFD8C035"},{"addr":"0xffd89fdc","name":"sub_FFD89FDC"},{"addr":"0xffd8a048","name":"sub_FFD8A048"},{"addr":"0xffd8d51b","name":"sub_FFD8D51B"},{"addr":"0xffd8a02f","name":"sub_FFD8A02F"},{"addr":"0xffd8a2c4","name":"sub_FFD8A2C4"}]}