RtlFxToFnFrame
__int64 __fastcall RtlFxToFnFrame(_DWORD *a1, unsigned __int16 *a2){
unsigned int v4;
unsigned __int16 *v5;
unsigned int v6;
char v7;
unsigned __int16 v8;
int v9;
__int16 v10;
__int64 result;
__int16 v12;
*a1 = *a2;
a1[1] = a2[1];
v4 = 0;
a1[3] = *((_DWORD *)a2 + 2);
v5 = a2 + 16;
a1[4] = a2[6] | (a2[3] << 16);
a1[5] = *((_DWORD *)a2 + 4);
a1[6] = a2[10];
v6 = a2[1];
v7 = *((_BYTE *)a2 + 4);
v8 = 0;
v9 = 7 - ((v6 >> 11) & 7);
do
{
v10 = 4 * v8;
*(_QWORD *)((char *)a1 + 10 * v4 + 28) = *(_QWORD *)v5;
*((_WORD *)a1 + 5 * v4 + 18) = v5[4];
if( v7 < 0 )
{
v8 = v10 | 2;
v12 = a2[8 * v9 + 20] & 0x7FFF;
if( v12 )
{
if( v12 != 0x7FFF && *(__int64 *)&a2[8 * v9 + 16] < 0 )
v8 &= 0xFFFCu;
}
else if( !*(_QWORD *)&a2[8 * v9 + 16] )
{
v8 = v8 & 0xFFFC | 1;
}
}
else
{
v8 = v10 | 3;
}
v7 *= 2;
++v4;
v5 += 8;
v9 = ((_BYTE)v9 - 1) & 7;
}
while( v4 < 8 );
result = v8;
a1[2] = v8;
return result;
}Referenced by:
RtlpWow64CtxFromAmd64