{"jsonrpc": "2.0", "result": {"content": [{"type": "text", "text": "{\"addr\":\"0xffe4e93b\",\"code\":\"int __fastcall sub_FFE4E93B(unsigned int *a1, unsigned __int8 *a2, int a3, unsigned int a4, int a5, unsigned int *a6)\\n{\\n unsigned int *v6; // edi\\n unsigned int v7; // esi\\n int v8; // ebx\\n int v9; // eax\\n int v10; // eax\\n unsigned int v11; // ecx\\n int v12; // ebx\\n int i; // eax\\n int i_2; // eax\\n int v15; // eax\\n int v17; // [esp+Ch] [ebp-20h]\\n int v19; // [esp+14h] [ebp-18h]\\n unsigned int v20; // [esp+18h] [ebp-14h]\\n int i_1; // [esp+1Ch] [ebp-10h]\\n int v23; // [esp+24h] [ebp-8h]\\n int v24; // [esp+28h] [ebp-4h] BYREF\\n\\n if ( !a1 || !a2 || !a3 ) /*0xffe4e962*/\\n return -2147483646; /*0xffe4ead1*/\\n v6 = a6; /*0xffe4e96b*/\\n v17 = *(unsigned __int16 *)a2; /*0xffe4e970*/\\n if ( a6 ) /*0xffe4e975*/\\n {\\n if ( !*(_WORD *)a2 ) /*0xffe4e968*/\\n *a6 = 0; /*0xffe4e97c*/\\n v7 = *a6; /*0xffe4e97f*/\\n }\\n else\\n {\\n v7 = 0; /*0xffe4e983*/\\n }\\n if ( v7 < a4 ) /*0xffe4e988*/\\n {\\n while ( 1 ) /*0xffe4e99f*/\\n {\\n v23 = a5 + 40 * v7; /*0xffe4e99f*/\\n v8 = sub_FFE4E789(v23, &v24, &v24); /*0xffe4e9a7*/\\n v19 = v8; /*0xffe4e9ac*/\\n if ( v8 >= 0 ) /*0xffe4e9b1*/\\n {\\n v9 = a5 + 40 * v7; /*0xffe4e9b7*/\\n if ( (*(_BYTE *)(v23 + 28) & 4) != 0 ) /*0xffe4e9be*/\\n {\\n v10 = v24; /*0xffe4e9c4*/\\n if ( !v24 ) /*0xffe4e9c9*/\\n goto LABEL_26; /*0xffe4e9c9*/\\n do /*0xffe4ea2f*/\\n {\\n v11 = 0; /*0xffe4e9ce*/\\n v20 = 0; /*0xffe4e9d0*/\\n if ( v7 ) /*0xffe4e9d5*/\\n {\\n v12 = a5; /*0xffe4e9d7*/\\n do /*0xffe4ea18*/\\n {\\n for ( i = sub_FFE4E28C(v12); ; i = sub_FFE4E205(i_1, v12) ) /*0xffe4e9dc*/\\n {\\n i_1 = i; /*0xffe4e9ff*/\\n if ( !i ) /*0xffe4ea04*/\\n {\\n i_2 = 0; /*0xffe4ea06*/\\n goto LABEL_20; /*0xffe4ea06*/\\n }\\n if ( (unsigned __int8)sub_FFE4E2C3(i, v12) ) /*0xffe4e9ea*/\\n break; /*0xffe4e9ea*/\\n }\\n i_2 = i_1; /*0xffe4ea49*/\\nLABEL_20:\\n v11 = v20; /*0xffe4ea08*/\\n if ( i_2 ) /*0xffe4ea0d*/\\n break; /*0xffe4ea0d*/\\n v11 = v20 + 1; /*0xffe4ea0f*/\\n v12 += 40; /*0xffe4ea10*/\\n v20 = v11; /*0xffe4ea13*/\\n }\\n while ( v11 < v7 ); /*0xffe4ea18*/\\n v10 = v24; /*0xffe4ea1a*/\\n }\\n if ( v11 == v7 ) /*0xffe4ea1f*/\\n break; /*0xffe4ea1f*/\\n v10 = sub_FFE4E205(v10, v23); /*0xffe4ea25*/\\n v24 = v10; /*0xffe4ea2a*/\\n }\\n while ( v10 ); /*0xffe4ea2f*/\\n v6 = a6; /*0xffe4ea31*/\\n v8 = v19; /*0xffe4ea34*/\\n if ( v10 ) /*0xffe4ea39*/\\n {\\n v9 = a5 + 40 * v7; /*0xffe4ea4e*/\\n }\\n else\\n {\\nLABEL_26:\\n v9 = a5 + 40 * v7; /*0xffe4ea3b*/\\n v8 = -2147483634; /*0xffe4ea3e*/\\n *(_DWORD *)(v23 + 24) = 0; /*0xffe4ea43*/\\n }\\n }\\n if ( v8 >= 0 ) /*0xffe4ea53*/\\n {\\n v15 = sub_FFE4E74B(v24, a2, a1, a3, v9); /*0xffe4ea63*/\\n v8 = v15; /*0xffe4ea68*/\\n if ( v15 != -2147483634 ) /*0xffe4ea73*/\\n {\\n if ( v15 < 0 ) /*0xffe4eab0*/\\n *(_WORD *)a2 = v17; /*0xffe4eab8*/\\n if ( v6 ) /*0xffe4eabd*/\\n *v6 = v7; /*0xffe4eabf*/\\n return v8; /*0xffe4eabf*/\\n }\\n *(_DWORD *)(v23 + 24) = 0; /*0xffe4ea78*/\\n }\\n }\\n if ( v8 == -2147483634 ) /*0xffe4ea82*/\\n {\\n *(_WORD *)a2 = 0; /*0xffe4ea89*/\\n }\\n else if ( v6 && v7 && v7 == *v6 ) /*0xffe4ea98*/\\n {\\n v7 = -1; /*0xffe4ea9a*/\\n *v6 = 0; /*0xffe4ea9d*/\\n }\\n if ( ++v7 >= a4 ) /*0xffe4eaa4*/\\n goto LABEL_46; /*0xffe4eaa4*/\\n }\\n }\\n v8 = v17; /*0xffe4eac5*/\\nLABEL_46:\\n if ( v6 ) /*0xffe4eaca*/\\n *v6 = 0; /*0xffe4eacc*/\\n return v8; /*0xffe4ead6*/\\n}\",\"refs\":[{\"addr\":\"0xffe4e789\",\"name\":\"sub_FFE4E789\"},{\"addr\":\"0xffe4e28c\",\"name\":\"sub_FFE4E28C\"},{\"addr\":\"0xffe4e205\",\"name\":\"sub_FFE4E205\"},{\"addr\":\"0xffe4e2c3\",\"name\":\"sub_FFE4E2C3\"},{\"addr\":\"0xffe4e74b\",\"name\":\"sub_FFE4E74B\"}]}"}], "structuredContent": {"addr": "0xffe4e93b", "code": "int __fastcall sub_FFE4E93B(unsigned int *a1, unsigned __int8 *a2, int a3, unsigned int a4, int a5, unsigned int *a6)\n{\n unsigned int *v6; // edi\n unsigned int v7; // esi\n int v8; // ebx\n int v9; // eax\n int v10; // eax\n unsigned int v11; // ecx\n int v12; // ebx\n int i; // eax\n int i_2; // eax\n int v15; // eax\n int v17; // [esp+Ch] [ebp-20h]\n int v19; // [esp+14h] [ebp-18h]\n unsigned int v20; // [esp+18h] [ebp-14h]\n int i_1; // [esp+1Ch] [ebp-10h]\n int v23; // [esp+24h] [ebp-8h]\n int v24; // [esp+28h] [ebp-4h] BYREF\n\n if ( !a1 || !a2 || !a3 ) /*0xffe4e962*/\n return -2147483646; /*0xffe4ead1*/\n v6 = a6; /*0xffe4e96b*/\n v17 = *(unsigned __int16 *)a2; /*0xffe4e970*/\n if ( a6 ) /*0xffe4e975*/\n {\n if ( !*(_WORD *)a2 ) /*0xffe4e968*/\n *a6 = 0; /*0xffe4e97c*/\n v7 = *a6; /*0xffe4e97f*/\n }\n else\n {\n v7 = 0; /*0xffe4e983*/\n }\n if ( v7 < a4 ) /*0xffe4e988*/\n {\n while ( 1 ) /*0xffe4e99f*/\n {\n v23 = a5 + 40 * v7; /*0xffe4e99f*/\n v8 = sub_FFE4E789(v23, &v24, &v24); /*0xffe4e9a7*/\n v19 = v8; /*0xffe4e9ac*/\n if ( v8 >= 0 ) /*0xffe4e9b1*/\n {\n v9 = a5 + 40 * v7; /*0xffe4e9b7*/\n if ( (*(_BYTE *)(v23 + 28) & 4) != 0 ) /*0xffe4e9be*/\n {\n v10 = v24; /*0xffe4e9c4*/\n if ( !v24 ) /*0xffe4e9c9*/\n goto LABEL_26; /*0xffe4e9c9*/\n do /*0xffe4ea2f*/\n {\n v11 = 0; /*0xffe4e9ce*/\n v20 = 0; /*0xffe4e9d0*/\n if ( v7 ) /*0xffe4e9d5*/\n {\n v12 = a5; /*0xffe4e9d7*/\n do /*0xffe4ea18*/\n {\n for ( i = sub_FFE4E28C(v12); ; i = sub_FFE4E205(i_1, v12) ) /*0xffe4e9dc*/\n {\n i_1 = i; /*0xffe4e9ff*/\n if ( !i ) /*0xffe4ea04*/\n {\n i_2 = 0; /*0xffe4ea06*/\n goto LABEL_20; /*0xffe4ea06*/\n }\n if ( (unsigned __int8)sub_FFE4E2C3(i, v12) ) /*0xffe4e9ea*/\n break; /*0xffe4e9ea*/\n }\n i_2 = i_1; /*0xffe4ea49*/\nLABEL_20:\n v11 = v20; /*0xffe4ea08*/\n if ( i_2 ) /*0xffe4ea0d*/\n break; /*0xffe4ea0d*/\n v11 = v20 + 1; /*0xffe4ea0f*/\n v12 += 40; /*0xffe4ea10*/\n v20 = v11; /*0xffe4ea13*/\n }\n while ( v11 < v7 ); /*0xffe4ea18*/\n v10 = v24; /*0xffe4ea1a*/\n }\n if ( v11 == v7 ) /*0xffe4ea1f*/\n break; /*0xffe4ea1f*/\n v10 = sub_FFE4E205(v10, v23); /*0xffe4ea25*/\n v24 = v10; /*0xffe4ea2a*/\n }\n while ( v10 ); /*0xffe4ea2f*/\n v6 = a6; /*0xffe4ea31*/\n v8 = v19; /*0xffe4ea34*/\n if ( v10 ) /*0xffe4ea39*/\n {\n v9 = a5 + 40 * v7; /*0xffe4ea4e*/\n }\n else\n {\nLABEL_26:\n v9 = a5 + 40 * v7; /*0xffe4ea3b*/\n v8 = -2147483634; /*0xffe4ea3e*/\n *(_DWORD *)(v23 + 24) = 0; /*0xffe4ea43*/\n }\n }\n if ( v8 >= 0 ) /*0xffe4ea53*/\n {\n v15 = sub_FFE4E74B(v24, a2, a1, a3, v9); /*0xffe4ea63*/\n v8 = v15; /*0xffe4ea68*/\n if ( v15 != -2147483634 ) /*0xffe4ea73*/\n {\n if ( v15 < 0 ) /*0xffe4eab0*/\n *(_WORD *)a2 = v17; /*0xffe4eab8*/\n if ( v6 ) /*0xffe4eabd*/\n *v6 = v7; /*0xffe4eabf*/\n return v8; /*0xffe4eabf*/\n }\n *(_DWORD *)(v23 + 24) = 0; /*0xffe4ea78*/\n }\n }\n if ( v8 == -2147483634 ) /*0xffe4ea82*/\n {\n *(_WORD *)a2 = 0; /*0xffe4ea89*/\n }\n else if ( v6 && v7 && v7 == *v6 ) /*0xffe4ea98*/\n {\n v7 = -1; /*0xffe4ea9a*/\n *v6 = 0; /*0xffe4ea9d*/\n }\n if ( ++v7 >= a4 ) /*0xffe4eaa4*/\n goto LABEL_46; /*0xffe4eaa4*/\n }\n }\n v8 = v17; /*0xffe4eac5*/\nLABEL_46:\n if ( v6 ) /*0xffe4eaca*/\n *v6 = 0; /*0xffe4eacc*/\n return v8; /*0xffe4ead6*/\n}", "refs": [{"addr": "0xffe4e789", "name": "sub_FFE4E789"}, {"addr": "0xffe4e28c", "name": "sub_FFE4E28C"}, {"addr": "0xffe4e205", "name": "sub_FFE4E205"}, {"addr": "0xffe4e2c3", "name": "sub_FFE4E2C3"}, {"addr": "0xffe4e74b", "name": "sub_FFE4E74B"}]}, "isError": false}, "id": 1}