Newer
Older
AMI-Aptio-BIOS-Reversed / SiInitPreMem / decompiled / ffd80210.c
@Ajax Dong Ajax Dong 2 days ago 4 KB Init
// 0xffd80210
{"addr":"0xffd80210","code":"int sub_FFD80210()\n{\n  int v0; // eax\n  int v1; // eax\n  unsigned __int8 *v2; // esi\n  int v3; // edi\n  unsigned int i; // ebp\n  unsigned int v5; // ecx\n  unsigned int v6; // edx\n  unsigned int v7; // ebx\n  unsigned __int8 v8; // cl\n  unsigned int v9; // ebx\n  int v10; // ebx\n  unsigned int v11; // eax\n  int result; // eax\n  int v13; // [esp+0h] [ebp-24h] BYREF\n  int v14; // [esp+4h] [ebp-20h]\n  int v15; // [esp+8h] [ebp-1Ch]\n  _DWORD *v16; // [esp+Ch] [ebp-18h] BYREF\n  int n10; // [esp+10h] [ebp-14h]\n  int v18; // [esp+14h] [ebp-10h] BYREF\n  int v19; // [esp+18h] [ebp-Ch] BYREF\n  unsigned int v20; // [esp+1Ch] [ebp-8h]\n  unsigned int v21; // [esp+20h] [ebp-4h]\n\n  v13 = 0; /*0xffd80213*/\n  v0 = sub_FFD8AD54(); /*0xffd80217*/\n  if ( (*(int (__cdecl **)(int, int, _DWORD **))(*(_DWORD *)v0 + 76))(v0, 4, &v16) ) /*0xffd80226*/\n  {\n    v1 = sub_FFD7F97E(); /*0xffd80230*/\n    if ( v1 ) /*0xffd80237*/\n      (*(void (__cdecl **)(const char *, int, const char *))(v1 + 4))( /*0xffd80248*/\n        \"e:\\\\hs\\\\PurleySktPkg\\\\SouthClusterLbg\\\\LibraryPrivate\\\\PeiPchInitLib\\\\PchInitPreMem.c\",\n        456,\n        \"Status == 0\");\n  }\n  *v16 = 0; /*0xffd80255*/\n  v2 = (unsigned __int8 *)&unk_FFD980CC; /*0xffd80258*/\n  v15 = 0; /*0xffd8025d*/\n  n10 = 10; /*0xffd80263*/\n  do\n  {\n    v3 = 0; /*0xffd8026b*/\n    for ( i = 0; i < 0xC00; i += 512 )\n    {\n      v5 = 0; /*0xffd80272*/\n      v6 = i + *((_DWORD *)v2 + 2); /*0xffd80274*/\n      v14 = 0; /*0xffd80276*/\n      v21 = v6; /*0xffd8027a*/\n      if ( v2[v3 + 1] )\n      {\n        while ( 1 ) /*0xffd80288*/\n        {\n          v7 = v5; /*0xffd80288*/\n          v8 = *v2; /*0xffd8028e*/\n          v9 = v6 + 32 * v7; /*0xffd80294*/\n          v20 = v9; /*0xffd8029b*/\n          sub_FFD8C2A0(v8, v9, 4, &v18); /*0xffd8029f*/\n          sub_FFD8C2A0(*v2, v9, 4, &v19); /*0xffd802b0*/\n          v10 = v18; /*0xffd802b5*/\n          if ( v18 == v19 ) /*0xffd802c0*/\n          {\n            v13 = v18; /*0xffd802dd*/\n          }\n          else\n          {\n            sub_FFD8C2A0(*v2, v20, 4, &v13); /*0xffd802d0*/\n            v10 = v13; /*0xffd802d5*/\n          }\n          if ( v10 ) /*0xffd802e3*/\n            break; /*0xffd802e3*/\n          v11 = v2[v3 + 1]; /*0xffd802e9*/\n          v5 = v14 + 1; /*0xffd802ee*/\n          v6 = v21; /*0xffd802ef*/\n          v14 = v5; /*0xffd802f3*/\n          if ( v5 >= v11 ) /*0xffd802f9*/\n            goto LABEL_14; /*0xffd802f9*/\n        }\n        *v16 |= (v10 & 7) << v15; /*0xffd80311*/\n        sub_FFD7F9AF(0x80000000, (int)\"ERROR: Internal fabric error detected!! \");\n        sub_FFD7F9AF( /*0xffd80331*/\n          0x80000000,\n          (int)\"PSF PID:0x%x, RSx/PortGroup:0x%x, Port:0x%x, Channel:0, error bits:0x%x\\n\",\n          *v2,\n          v3,\n          v14,\n          v10);\n      }\nLABEL_14:\n      ++v3; /*0xffd8033f*/\n    }\n    v15 += 3; /*0xffd8034c*/\n    v2 += 12; /*0xffd80351*/\n    --n10; /*0xffd80354*/\n  }\n  while ( n10 );\n  result = sub_FFD8CFB4(&unk_FFD97F6C, 4); /*0xffd8036a*/\n  if ( !result ) /*0xffd80376*/\n  {\n    result = sub_FFD7F97E(); /*0xffd80378*/\n    if ( result ) /*0xffd8037f*/\n      return (*(int (__cdecl **)(const char *, int, const char *))(result + 4))( /*0xffd80390*/\n               \"e:\\\\hs\\\\PurleySktPkg\\\\SouthClusterLbg\\\\LibraryPrivate\\\\PeiPchInitLib\\\\PchInitPreMem.c\",\n               504,\n               \"HobPtr != 0\");\n  }\n  return result; /*0xffd80396*/\n}","refs":[{"addr":"0xffd8ad54","name":"sub_FFD8AD54"},{"addr":"0xffd7f97e","name":"sub_FFD7F97E"},{"addr":"0xffd91f24","name":"aEHsPurleysktpk_1","string":"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchInitPreMem.c"},{"addr":"0xffd9204c","name":"aStatus0","string":"Status == 0"},{"addr":"0xffd980cc","name":"unk_FFD980CC"},{"addr":"0xffd8c2a0","name":"sub_FFD8C2A0"},{"addr":"0xffd7f9af","name":"sub_FFD7F9AF"},{"addr":"0xffd92058","name":"aErrorInternalF","string":"ERROR: Internal fabric error detected!! "},{"addr":"0xffd92084","name":"aPsfPid0xXRsxPo","string":"PSF PID:0x%x, RSx/PortGroup:0x%x, Port:0x%x, Channel:0, error bits:0x%x\n"},{"addr":"0xffd8cfb4","name":"sub_FFD8CFB4"},{"addr":"0xffd97f6c","name":"unk_FFD97F6C"},{"addr":"0xffd920d0","name":"aHobptr0","string":"HobPtr != 0"}]}