Newer
Older
AMI-Aptio-BIOS-Reversed / NvramPei / decompiled / 0xffe4e3df.json
@Ajax Dong Ajax Dong 2 days ago 3 KB Init
{"jsonrpc": "2.0", "result": {"content": [{"type": "text", "text": "{\"addr\":\"0xffe4e3df\",\"code\":\"char __fastcall sub_FFE4E3DF(\\n        int a1,\\n        _WORD *i_1,\\n        int a3,\\n        int a4,\\n        int a5,\\n        int a6,\\n        int a7,\\n        int a8,\\n        int a9,\\n        int a10,\\n        _DWORD *a11,\\n        int a12)\\n{\\n  _BYTE *v13; // ebx\\n  int v14; // ebp\\n  _WORD *i; // ecx\\n  _BYTE *v16; // ebx\\n  _BYTE *v19; // [esp+34h] [ebp+18h]\\n\\n  sub_FFE4DFDF(a1, a12); /*0xffe4e3f0*/\\n  v13 = (_BYTE *)(a1 + ((*(_DWORD *)(a1 + 6) & 0x4000000) != 0 ? 26 : 11));\\n  v19 = v13; /*0xffe4e413*/\\n  v14 = a1 - (_DWORD)v13 + (unsigned __int16)sub_FFE4F4EC(a1 + 4); /*0xffe4e421*/\\n  if ( (*(_DWORD *)(a1 + 6) & 0x2000000) != 0 ) /*0xffe4e429*/\\n  {\\n    for ( i = i_1; *v13 && (unsigned __int8)*v13 == *i && v14 > 0; ++i ) /*0xffe4e42b*/\\n    {\\n      ++v13; /*0xffe4e441*/\\n      --v14; /*0xffe4e445*/\\n    }\\n    if ( (unsigned __int8)*v13 != *i || v14 <= 0 ) /*0xffe4e452*/\\n      return 0; /*0xffe4e452*/\\n    v16 = v13 + 1; /*0xffe4e454*/\\n  }\\n  else\\n  {\\n    while ( (unsigned __int16)sub_FFE4F4EC(v13) && (unsigned __int16)sub_FFE4F4EC(v13) == *i_1 && v14 > 0 ) /*0xffe4e469*/\\n    {\\n      v13 += 2; /*0xffe4e46e*/\\n      ++i_1; /*0xffe4e471*/\\n      v14 -= 2; /*0xffe4e475*/\\n    }\\n    if ( (unsigned __int16)sub_FFE4F4EC(v13) != *i_1 || v14 <= 0 ) /*0xffe4e496*/\\n      return 0; /*0xffe4e496*/\\n    v16 = v13 + 2; /*0xffe4e498*/\\n  }\\n  if ( sub_FFE4F857(v19, a10) ) /*0xffe4e4a4*/\\n    return 0; /*0xffe4e4c0*/\\n  if ( a11 ) /*0xffe4e4b4*/\\n    *a11 = v16 - v19; /*0xffe4e4ba*/\\n  return 1; /*0xffe4e4c2*/\\n}\",\"refs\":[{\"addr\":\"0xffe4dfdf\",\"name\":\"sub_FFE4DFDF\"},{\"addr\":\"0xffe4f4ec\",\"name\":\"sub_FFE4F4EC\"},{\"addr\":\"0xffe4f857\",\"name\":\"sub_FFE4F857\"}]}"}], "structuredContent": {"addr": "0xffe4e3df", "code": "char __fastcall sub_FFE4E3DF(\n        int a1,\n        _WORD *i_1,\n        int a3,\n        int a4,\n        int a5,\n        int a6,\n        int a7,\n        int a8,\n        int a9,\n        int a10,\n        _DWORD *a11,\n        int a12)\n{\n  _BYTE *v13; // ebx\n  int v14; // ebp\n  _WORD *i; // ecx\n  _BYTE *v16; // ebx\n  _BYTE *v19; // [esp+34h] [ebp+18h]\n\n  sub_FFE4DFDF(a1, a12); /*0xffe4e3f0*/\n  v13 = (_BYTE *)(a1 + ((*(_DWORD *)(a1 + 6) & 0x4000000) != 0 ? 26 : 11));\n  v19 = v13; /*0xffe4e413*/\n  v14 = a1 - (_DWORD)v13 + (unsigned __int16)sub_FFE4F4EC(a1 + 4); /*0xffe4e421*/\n  if ( (*(_DWORD *)(a1 + 6) & 0x2000000) != 0 ) /*0xffe4e429*/\n  {\n    for ( i = i_1; *v13 && (unsigned __int8)*v13 == *i && v14 > 0; ++i ) /*0xffe4e42b*/\n    {\n      ++v13; /*0xffe4e441*/\n      --v14; /*0xffe4e445*/\n    }\n    if ( (unsigned __int8)*v13 != *i || v14 <= 0 ) /*0xffe4e452*/\n      return 0; /*0xffe4e452*/\n    v16 = v13 + 1; /*0xffe4e454*/\n  }\n  else\n  {\n    while ( (unsigned __int16)sub_FFE4F4EC(v13) && (unsigned __int16)sub_FFE4F4EC(v13) == *i_1 && v14 > 0 ) /*0xffe4e469*/\n    {\n      v13 += 2; /*0xffe4e46e*/\n      ++i_1; /*0xffe4e471*/\n      v14 -= 2; /*0xffe4e475*/\n    }\n    if ( (unsigned __int16)sub_FFE4F4EC(v13) != *i_1 || v14 <= 0 ) /*0xffe4e496*/\n      return 0; /*0xffe4e496*/\n    v16 = v13 + 2; /*0xffe4e498*/\n  }\n  if ( sub_FFE4F857(v19, a10) ) /*0xffe4e4a4*/\n    return 0; /*0xffe4e4c0*/\n  if ( a11 ) /*0xffe4e4b4*/\n    *a11 = v16 - v19; /*0xffe4e4ba*/\n  return 1; /*0xffe4e4c2*/\n}", "refs": [{"addr": "0xffe4dfdf", "name": "sub_FFE4DFDF"}, {"addr": "0xffe4f4ec", "name": "sub_FFE4F4EC"}, {"addr": "0xffe4f857", "name": "sub_FFE4F857"}]}, "isError": false}, "id": 1}