Newer
Older
AMI-Aptio-BIOS-Reversed / SiInitPreMem / decompiled / ffd87b03.c
@Ajax Dong Ajax Dong 2 days ago 3 KB Init
// 0xffd87b03
{"addr":"0xffd87b03","code":"int __thiscall sub_FFD87B03(int this)\n{\n  int v2; // edi\n  int v3; // ebx\n  int v5; // ebp\n  unsigned int n0x3E8; // esi\n  unsigned int i; // ebp\n  int n2; // esi\n  int n35; // edi\n  unsigned int v10; // [esp+10h] [ebp-4h] BYREF\n\n  v2 = *(_DWORD *)(this + 3510); /*0xffd87b11*/\n  v3 = sub_FFD8CBBA(0, 20, 1); /*0xffd87b1d*/\n  if ( (unsigned __int16)sub_FFD8CCA5((unsigned __int16 *)v3) == 0xFFFF )\n  {\n    sub_FFD7F9AF(64, (int)\"xDCI: Pci device NOT found\\n\");\n    return -2147483634; /*0xffd87b3e*/\n  }\n  else\n  {\n    v5 = sub_FFD8CBBA(0, 20, 0); /*0xffd87b63*/\n    sub_FFD8C578(-1, 63); /*0xffd87b65*/\n    sub_FFD8C5B5(); /*0xffd87b6a*/\n    if ( (*(_BYTE *)(this + 2683) & 1) != 0 )\n    {\n      *(_DWORD *)(v5 + 16) = v2; /*0xffd87cfb*/\n      sub_FFD8CC4F(v5 + 4, 2); /*0xffd87cfe*/\n      *(_DWORD *)(v2 + 32984) &= 0xFFCFFFFF; /*0xffd87d11*/\n      sub_FFD8CC6A(v5 + 4, 65533); /*0xffd87d1e*/\n      *(_DWORD *)(v5 + 16) = 0; /*0xffd87d2b*/\n      sub_FFD8CC85(4); /*0xffd87d34*/\n    }\n    else\n    {\n      sub_FFD7F9AF(64, (int)\"xDCI: Device disabled\\n\");\n      *(_DWORD *)(v5 + 16) = v2; /*0xffd87b91*/\n      sub_FFD8CC4F(v5 + 4, 2); /*0xffd87b95*/\n      *(_DWORD *)(v2 + 32984) |= 0x200000u; /*0xffd87ba5*/\n      n0x3E8 = 0; /*0xffd87bb6*/\n      *(_DWORD *)(v2 + 32984) &= ~0x100000u; /*0xffd87bb8*/\n      while ( (*(_DWORD *)(v2 + 32988) & 0x20000000) == 0 && n0x3E8 < 0x3E8 ) /*0xffd87bc6*/\n      {\n        sub_FFD7FA46(0x64u); /*0xffd87bcb*/\n        ++n0x3E8; /*0xffd87bd0*/\n      }\n      *(_DWORD *)(v2 + 32984) = *(_DWORD *)(v2 + 32984) & 0xFFFFFFFC | 1; /*0xffd87bf4*/\n      sub_FFD8CC6A(v5 + 4, 65533); /*0xffd87bfa*/\n      *(_DWORD *)(v5 + 16) = 0; /*0xffd87c01*/\n      *(_DWORD *)(v3 + 16) = v2; /*0xffd87c0c*/\n      sub_FFD8CC4F(v3 + 4, 2); /*0xffd87c0f*/\n      *(_DWORD *)(v2 + 49424) |= 2u; /*0xffd87c23*/\n      *(_DWORD *)(v2 + 49664) |= 0x40u; /*0xffd87c32*/\n      *(_DWORD *)(v2 + 49856) |= 0x8000000u; /*0xffd87c46*/\n      sub_FFD8CC4F(v2 + 1112088, 3); /*0xffd87c4c*/\n      for ( i = 0; (sub_FFD8CCA5((unsigned __int16 *)(v2 + 1112080)) & 0xF00) == 0 && i < 0x3E8; ++i ) /*0xffd87c51*/\n        sub_FFD7FA46(0x64u); /*0xffd87c60*/\n      sub_FFD8CC6A(v3 + 4, 65533); /*0xffd87c80*/\n      *(_DWORD *)(v3 + 16) = 0; /*0xffd87c85*/\n      *(_DWORD *)(v3 + 132) |= 3u; /*0xffd87c95*/\n      n2 = sub_FFD8BE68(); /*0xffd87ca0*/\n      n35 = sub_FFD8BB3A(); /*0xffd87ca7*/\n      sub_FFD8C578(-1, 256); /*0xffd87cc4*/\n      sub_FFD8C909(&v10); /*0xffd87ccf*/\n      if ( n2 == 2 && n35 >= 35 ) /*0xffd87cdc*/\n        *(_DWORD *)(v10 + 1576) |= 0x1000000u; /*0xffd87ced*/\n    }\n    return 0; /*0xffd87d3a*/\n  }\n}","refs":[{"addr":"0xffd8cbba","name":"sub_FFD8CBBA"},{"addr":"0xffd7f9af","name":"sub_FFD7F9AF"},{"addr":"0xffd94488","name":"aXdciPciDeviceN","string":"xDCI: Pci device NOT found\n"},{"addr":"0xffd8c578","name":"sub_FFD8C578"},{"addr":"0xffd8c5b5","name":"sub_FFD8C5B5"},{"addr":"0xffd8cc4f","name":"sub_FFD8CC4F"},{"addr":"0xffd8cc6a","name":"sub_FFD8CC6A"},{"addr":"0xffd8cc85","name":"sub_FFD8CC85"},{"addr":"0xffd944a4","name":"aXdciDeviceDisa","string":"xDCI: Device disabled\n"},{"addr":"0xffd7fa46","name":"sub_FFD7FA46"},{"addr":"0xffd8cca5","name":"sub_FFD8CCA5"},{"addr":"0xffd8be68","name":"sub_FFD8BE68"},{"addr":"0xffd8bb3a","name":"sub_FFD8BB3A"},{"addr":"0xffd8c909","name":"sub_FFD8C909"}]}