// 0xffd86e4d
{"addr":"0xffd86e4d","code":"int __usercall sub_FFD86E37@<eax>(int a1@<edx>, int a2@<ecx>, int a3, int a4, int a5, int a6, int a7, ...)\n{\n int v7; // ebx\n unsigned int n8_3; // esi\n unsigned int v9; // edi\n unsigned __int8 *v10; // ebx\n unsigned __int8 n8; // al\n int n8_4; // ebp\n int v13; // eax\n unsigned int n8_1; // ecx\n _DWORD *v15; // edx\n int v16; // eax\n unsigned int v17; // edi\n unsigned __int8 *v18; // ebp\n unsigned __int8 n8_2; // al\n int n8_5; // ebx\n int v21; // eax\n _DWORD *v22; // ecx\n int result; // eax\n unsigned int retaddr; // [esp+5Ch] [ebp+0h]\n int v27; // [esp+74h] [ebp+18h] BYREF\n va_list va; // [esp+74h] [ebp+18h]\n int v29; // [esp+78h] [ebp+1Ch]\n int v30; // [esp+7Ch] [ebp+20h]\n int v31; // [esp+80h] [ebp+24h]\n int v32; // [esp+84h] [ebp+28h]\n int v33; // [esp+88h] [ebp+2Ch]\n int v34; // [esp+8Ch] [ebp+30h]\n int v35; // [esp+90h] [ebp+34h]\n va_list va1; // [esp+94h] [ebp+38h] BYREF\n\n va_start(va1, a7);\n va_start(va, a7);\n v27 = va_arg(va1, _DWORD); /*0xffd86e37*/\n v29 = va_arg(va1, _DWORD); /*0xffd86e37*/\n v30 = va_arg(va1, _DWORD); /*0xffd86e37*/\n v31 = va_arg(va1, _DWORD); /*0xffd86e37*/\n v32 = va_arg(va1, _DWORD); /*0xffd86e37*/\n v33 = va_arg(va1, _DWORD); /*0xffd86e37*/\n v34 = va_arg(va1, _DWORD); /*0xffd86e37*/\n v35 = va_arg(va1, _DWORD); /*0xffd86e37*/\n v7 = a2; /*0xffd86e3e*/\n sub_FFD8D4C8(va1, retaddr); /*0xffd86e4f*/\n sub_FFD8D4C8((int *)va, retaddr); /*0xffd86e5b*/\n sub_FFD8BF54(); /*0xffd86e60*/\n n8_3 = 0; /*0xffd86e65*/\n v9 = 0; /*0xffd86e67*/\n if ( (unsigned __int8)sub_FFD8C051() ) /*0xffd86e69*/\n {\n v10 = (unsigned __int8 *)(v7 + 264); /*0xffd86e72*/\n do /*0xffd86ebd*/\n {\n n8 = *v10; /*0xffd86e78*/\n if ( *v10 != 8 ) /*0xffd86e7c*/\n {\n n8_4 = n8; /*0xffd86e7e*/\n if ( n8 >= 8u ) /*0xffd86e84*/\n {\n v13 = sub_FFD7F97E(); /*0xffd86e86*/\n if ( v13 ) /*0xffd86e8d*/\n (*(void (**)(void))(v13 + 4))(); /*0xffd86e9e*/\n }\n *((int *)va + n8_4) |= 1 << v9; /*0xffd86eab*/\n }\n ++v9; /*0xffd86eaf*/\n v10 += 16; /*0xffd86eb0*/\n }\n while ( v9 < (unsigned __int8)sub_FFD8C051() ); /*0xffd86ebd*/\n v7 = a2; /*0xffd86ebf*/\n }\n n8_1 = 0; /*0xffd86ec7*/\n v15 = (_DWORD *)(a1 + 208); /*0xffd86ec9*/\n do /*0xffd86edc*/\n {\n v16 = *((int *)va + n8_1++); /*0xffd86ecf*/\n *v15++ = v16; /*0xffd86ed4*/\n }\n while ( n8_1 < 8 ); /*0xffd86edc*/\n v17 = 0; /*0xffd86ede*/\n v18 = (unsigned __int8 *)(v7 + 8); /*0xffd86ee0*/\n while ( (unsigned int)(sub_FFD8BE68() - 1) <= 1 && v17 < retaddr ) /*0xffd86efb*/\n {\n n8_2 = *v18; /*0xffd86efd*/\n if ( *v18 != 8 ) /*0xffd86f02*/\n {\n n8_5 = n8_2; /*0xffd86f04*/\n if ( n8_2 >= 8u ) /*0xffd86f0a*/\n {\n v21 = sub_FFD7F97E(); /*0xffd86f0c*/\n if ( v21 ) /*0xffd86f13*/\n (*(void (**)(void))(v21 + 4))(); /*0xffd86f24*/\n }\n va1[n8_5] = (void *)((unsigned int)va1[n8_5] | (1 << v17)); /*0xffd86f31*/\n }\n ++v17; /*0xffd86f35*/\n v18 += 16; /*0xffd86f36*/\n }\n v22 = (_DWORD *)(a1 + 176); /*0xffd86f3f*/\n do /*0xffd86f52*/\n {\n result = (int)va1[n8_3++]; /*0xffd86f45*/\n *v22++ = result; /*0xffd86f4a*/\n }\n while ( n8_3 < 8 ); /*0xffd86f52*/\n return result; /*0xffd86f54*/\n}","refs":[{"addr":"0xffd8d4c8","name":"sub_FFD8D4C8"},{"addr":"0xffd8bf54","name":"sub_FFD8BF54"},{"addr":"0xffd7f97e","name":"sub_FFD7F97E"},{"addr":"0xffd8c051","name":"sub_FFD8C051"},{"addr":"0xffd8be68","name":"sub_FFD8BE68"}]}