Newer
Older
AMI-Aptio-BIOS-Reversed / AmiModulePkg / NVRAM / NvramPei / decompiled / 0xffe4e092.json
@Ajax Dong Ajax Dong 2 days ago 3 KB Restructure the repo
{"jsonrpc": "2.0", "result": {"content": [{"type": "text", "text": "{\"addr\":\"0xffe4e092\",\"code\":\"int __cdecl sub_FFE4E092(int a1, int i, int a3, int a4, int a5, _DWORD *a6, int a7)\\n{\\n  int v7; // ecx\\n  int v8; // ebp\\n  int v9; // edi\\n  int v10; // esi\\n  void *v12; // esi\\n  unsigned __int16 v13; // ax\\n  void *retaddr; // [esp+14h] [ebp+0h]\\n\\n  v8 = 0; /*0xffe4e096*/\\n  v9 = v7; /*0xffe4e09d*/\\n  v10 = 0; /*0xffe4e09f*/\\n  while ( (unsigned __int8)sub_FFE4E147(v7, a7) ) /*0xffe4e0d5*/\\n  {\\n    if ( (sub_FFE4F513(v9 + 6) & 0xFFFFFF) == 0xFFFFFF ) /*0xffe4e0b5*/\\n      goto LABEL_6; /*0xffe4e0b5*/\\n    v10 = v9; /*0xffe4e0ba*/\\n    v9 += sub_FFE4F513(v9 + 6) & 0xFFFFFF; /*0xffe4e0c6*/\\n    v7 = v9; /*0xffe4e0c8*/\\n  }\\n  v9 = v10; /*0xffe4e0d7*/\\nLABEL_6:\\n  if ( !v9 ) /*0xffe4e0db*/\\n    return 0; /*0xffe4e0dd*/\\n  v12 = retaddr; /*0xffe4e0ea*/\\n  if ( (*(_DWORD *)(v9 + 6) & 0x8000000) == 0 )\\n    v12 = (void *)(a4 + ((*(_DWORD *)(v9 + 6) & 0x4000000) != 0 ? 26 : 11));\\n  if ( a6 ) /*0xffe4e10a*/\\n  {\\n    if ( (*(_DWORD *)(v9 + 6) & 0x10000000) != 0 ) /*0xffe4e113*/\\n    {\\n      v13 = sub_FFE4F4EC(v9 + 4); /*0xffe4e118*/\\n      v8 = (unsigned __int16)sub_FFE4F4EC(v13 + v9 - 2); /*0xffe4e12a*/\\n    }\\n    *a6 = (unsigned __int16)sub_FFE4F4EC(v9 + 4) - v8 - (_DWORD)v12; /*0xffe4e13c*/\\n  }\\n  return (int)v12 + v9; /*0xffe4e141*/\\n}\",\"refs\":[{\"addr\":\"0xffe4f513\",\"name\":\"sub_FFE4F513\"},{\"addr\":\"0xffe4e147\",\"name\":\"sub_FFE4E147\"},{\"addr\":\"0xffe4f4ec\",\"name\":\"sub_FFE4F4EC\"}]}"}], "structuredContent": {"addr": "0xffe4e092", "code": "int __cdecl sub_FFE4E092(int a1, int i, int a3, int a4, int a5, _DWORD *a6, int a7)\n{\n  int v7; // ecx\n  int v8; // ebp\n  int v9; // edi\n  int v10; // esi\n  void *v12; // esi\n  unsigned __int16 v13; // ax\n  void *retaddr; // [esp+14h] [ebp+0h]\n\n  v8 = 0; /*0xffe4e096*/\n  v9 = v7; /*0xffe4e09d*/\n  v10 = 0; /*0xffe4e09f*/\n  while ( (unsigned __int8)sub_FFE4E147(v7, a7) ) /*0xffe4e0d5*/\n  {\n    if ( (sub_FFE4F513(v9 + 6) & 0xFFFFFF) == 0xFFFFFF ) /*0xffe4e0b5*/\n      goto LABEL_6; /*0xffe4e0b5*/\n    v10 = v9; /*0xffe4e0ba*/\n    v9 += sub_FFE4F513(v9 + 6) & 0xFFFFFF; /*0xffe4e0c6*/\n    v7 = v9; /*0xffe4e0c8*/\n  }\n  v9 = v10; /*0xffe4e0d7*/\nLABEL_6:\n  if ( !v9 ) /*0xffe4e0db*/\n    return 0; /*0xffe4e0dd*/\n  v12 = retaddr; /*0xffe4e0ea*/\n  if ( (*(_DWORD *)(v9 + 6) & 0x8000000) == 0 )\n    v12 = (void *)(a4 + ((*(_DWORD *)(v9 + 6) & 0x4000000) != 0 ? 26 : 11));\n  if ( a6 ) /*0xffe4e10a*/\n  {\n    if ( (*(_DWORD *)(v9 + 6) & 0x10000000) != 0 ) /*0xffe4e113*/\n    {\n      v13 = sub_FFE4F4EC(v9 + 4); /*0xffe4e118*/\n      v8 = (unsigned __int16)sub_FFE4F4EC(v13 + v9 - 2); /*0xffe4e12a*/\n    }\n    *a6 = (unsigned __int16)sub_FFE4F4EC(v9 + 4) - v8 - (_DWORD)v12; /*0xffe4e13c*/\n  }\n  return (int)v12 + v9; /*0xffe4e141*/\n}", "refs": [{"addr": "0xffe4f513", "name": "sub_FFE4F513"}, {"addr": "0xffe4e147", "name": "sub_FFE4E147"}, {"addr": "0xffe4f4ec", "name": "sub_FFE4F4EC"}]}, "isError": false}, "id": 1}