XmEvaluateIndexSpecifier
__int64 __fastcall XmEvaluateIndexSpecifier(INT64 a1, INT64 a2, VOID *a3){
int v3;
unsigned __int8 CodeByte;
int v6;
__int64 v7;
INT64 v8;
int v9;
int v10;
int v11;
int v12;
NTSTATUS v13;
int v14;
INT64 v15;
INT64 v16;
INT64 v17;
NTSTATUS LongImmediate;
NTSTATUS v19;
NTSTATUS v20;
NTSTATUS v21;
NTSTATUS v22;
INT64 v23;
INT64 v24;
INT64 v25;
int v26;
NTSTATUS v27;
NTSTATUS v28;
NTSTATUS v29;
int v30;
int v31;
int v32;
int v33;
v3 = a2;
CodeByte = XmGetCodeByte(a1, a2, a3);
v6 = CodeByte >> 6;
v7 = (CodeByte >> 3) & 7;
v8 = (8 * v3) | CodeByte & 7u;
if( (unsigned int)v8 > 0xC )
{
if( (unsigned int)v8 > 0x12 )
{
v30 = v8 - 19;
if( !v30 )
{
LongImmediate = XmGetLongImmediate(a1);
goto LABEL_62;
}
v31 = v30 - 1;
if( !v31 )
{
v22 = XmGetLongImmediate(a1);
goto LABEL_34;
}
v32 = v31 - 1;
if( v32 )
{
v33 = v32 - 1;
if( v33 )
{
if( v33 != 1 )
goto LABEL_56;
v27 = XmGetLongImmediate(a1);
goto LABEL_45;
}
v28 = XmGetLongImmediate(a1);
LABEL_47:
v13 = *(_DWORD *)(a1 + 48) + v28;
return(unsigned int)(v13 + (*(_DWORD *)(a1 + 4 * v7 + 24) << v6));
}
v29 = XmGetLongImmediate(a1);
}
else
{
if( (_DWORD)v8 == 18 )
{
v19 = XmGetLongImmediate(a1);
goto LABEL_27;
}
v23 = (unsigned int)(v8 - 13);
if( (_DWORD)v23 )
{
v24 = (unsigned int)(v23 - 1);
if( (_DWORD)v24 )
{
v25 = (unsigned int)(v24 - 1);
if( (_DWORD)v25 )
{
v26 = v25 - 1;
if( v26 )
{
if( v26 != 1 )
goto LABEL_56;
v20 = XmGetLongImmediate(a1);
goto LABEL_29;
}
v21 = XmGetLongImmediate(a1);
LABEL_31:
v13 = *(_DWORD *)(a1 + 24) + v21;
return(unsigned int)(v13 + (*(_DWORD *)(a1 + 4 * v7 + 24) << v6));
}
v27 = XmGetCodeByte(a1, v25, (VOID *)7);
LABEL_45:
v13 = *(_DWORD *)(a1 + 52) + v27;
return(unsigned int)(v13 + (*(_DWORD *)(a1 + 4 * v7 + 24) << v6));
}
v28 = XmGetCodeByte(a1, v24, (VOID *)7);
goto LABEL_47;
}
v29 = XmGetCodeByte(a1, v23, (VOID *)7);
}
v13 = *(_DWORD *)(a1 + 44) + v29;
goto LABEL_13;
}
if( (_DWORD)v8 == 12 )
{
v22 = XmGetCodeByte(a1, v8, (VOID *)7);
LABEL_34:
v13 = *(_DWORD *)(a1 + 40) + v22;
goto LABEL_13;
}
if( (unsigned int)v8 > 6 )
{
v14 = v8 - 7;
if( !v14 )
{
v13 = *(_DWORD *)(a1 + 52);
return(unsigned int)(v13 + (*(_DWORD *)(a1 + 4 * v7 + 24) << v6));
}
v15 = (unsigned int)(v14 - 1);
if( (_DWORD)v15 )
{
v16 = (unsigned int)(v15 - 1);
if( (_DWORD)v16 )
{
v17 = (unsigned int)(v16 - 1);
if( (_DWORD)v17 )
{
if( (_DWORD)v17 != 1 )
goto LABEL_56;
LongImmediate = XmGetCodeByte(a1, v17, (VOID *)7);
LABEL_62:
v13 = *(_DWORD *)(a1 + 36) + LongImmediate;
return(unsigned int)(v13 + (*(_DWORD *)(a1 + 4 * v7 + 24) << v6));
}
v19 = XmGetCodeByte(a1, v17, (VOID *)7);
LABEL_27:
v13 = *(_DWORD *)(a1 + 32) + v19;
return(unsigned int)(v13 + (*(_DWORD *)(a1 + 4 * v7 + 24) << v6));
}
v20 = XmGetCodeByte(a1, v16, (VOID *)7);
LABEL_29:
v13 = *(_DWORD *)(a1 + 28) + v20;
return(unsigned int)(v13 + (*(_DWORD *)(a1 + 4 * v7 + 24) << v6));
}
v21 = XmGetCodeByte(a1, v15, (VOID *)7);
goto LABEL_31;
}
if( (_DWORD)v8 == 6 )
{
v13 = *(_DWORD *)(a1 + 48);
return(unsigned int)(v13 + (*(_DWORD *)(a1 + 4 * v7 + 24) << v6));
}
if( !(_DWORD)v8 )
{
v13 = *(_DWORD *)(a1 + 24);
return(unsigned int)(v13 + (*(_DWORD *)(a1 + 4 * v7 + 24) << v6));
}
v9 = v8 - 1;
if( !v9 )
{
v13 = *(_DWORD *)(a1 + 28);
return(unsigned int)(v13 + (*(_DWORD *)(a1 + 4 * v7 + 24) << v6));
}
v10 = v9 - 1;
if( !v10 )
{
v13 = *(_DWORD *)(a1 + 32);
return(unsigned int)(v13 + (*(_DWORD *)(a1 + 4 * v7 + 24) << v6));
}
v11 = v10 - 1;
if( !v11 )
{
v13 = *(_DWORD *)(a1 + 36);
return(unsigned int)(v13 + (*(_DWORD *)(a1 + 4 * v7 + 24) << v6));
}
v12 = v11 - 1;
if( v12 )
{
if( v12 == 1 )
{
v13 = XmGetLongImmediate(a1);
return(unsigned int)(v13 + (*(_DWORD *)(a1 + 4 * v7 + 24) << v6));
}
LABEL_56:
longjmp((unsigned __int64 *)(a1 + 160), (VOID *)7, (VOID *)7);
}
v13 = *(_DWORD *)(a1 + 40);
LABEL_13:
if( !*(_BYTE *)(a1 + 140) )
*(_DWORD *)(a1 + 116) = 2;
return(unsigned int)(v13 + (*(_DWORD *)(a1 + 4 * v7 + 24) << v6));
}Referenced by:
XmEvaluateAddressSpecifier