sub_140A37A14
_QWORD *__fastcall sub_140A37A14(__int64 a1){
unsigned __int64 v2;
__int64 v3;
int v4;
unsigned __int64 v5;
unsigned __int128 v6;
unsigned __int64 v7;
__int64 v8;
__int64 v9;
__int64 v10;
int v11;
_QWORD *v12;
unsigned __int64 v13;
unsigned __int64 v14;
unsigned __int128 v15;
unsigned __int64 v16;
unsigned __int128 v17;
unsigned __int64 v18;
unsigned int v19;
_QWORD *v20;
unsigned __int64 v21;
unsigned __int64 v22;
unsigned __int128 v23;
unsigned __int64 v24;
unsigned __int128 v25;
unsigned __int64 v26;
int v28;
_QWORD *v29;
__int64 v30;
unsigned __int64 v31;
unsigned __int128 v32;
int v33;
unsigned __int64 v34;
__int64 v35;
int v36;
unsigned __int64 v37;
unsigned __int64 v38;
int v39[8];
__int64 v40;
__int64 v41;
__int64 v42;
__int64 v43;
__int64 v44;
__int64 v45;
__int64 v46;
v2 = __rdtsc();
v3 = __ROR8__(v2, 3);
v40 = ((v3 ^ v2) * (unsigned __int128)0x7010008004002001ui64) >> 64;
v4 = ((unsigned __int16)v40 ^ (unsigned __int16)(8193 * (v3 ^ v2))) & 0x7FF;
v5 = __rdtsc();
v6 = (__ROR8__(v5, 3) ^ v5) * (unsigned __int128)0x7010008004002001ui64;
v41 = *((_QWORD *)&v6 + 1);
v7 = (*((_QWORD *)&v6 + 1) ^ (unsigned __int64)v6) % (unsigned int)(v4 + 1);
v8 = (*(__int64(__fastcall **)(__int64, _QWORD, _QWORD))(a1 + 248))(
512i64,
(unsigned int)(v4 + 48),
*(unsigned int *)(a1 + 2064));
v9 = v8;
if( v8 )
{
v11 = v7;
v12 = (_QWORD *)v8;
if( (unsigned int)v7 >= 8 )
{
v13 = (unsigned __int64)(unsigned int)v7 >> 3;
do
{
v14 = __rdtsc();
v15 = (__ROR8__(v14, 3) ^ v14) * (unsigned __int128)0x7010008004002001ui64;
v42 = *((_QWORD *)&v15 + 1);
*v12++ = v15 ^ *((_QWORD *)&v15 + 1);
v11 -= 8;
--v13;
}
while( v13 );
}
if( v11 )
{
v16 = __rdtsc();
v17 = (__ROR8__(v16, 3) ^ v16) * (unsigned __int128)0x7010008004002001ui64;
v43 = *((_QWORD *)&v17 + 1);
v18 = v17 ^ *((_QWORD *)&v17 + 1);
do
{
*(_BYTE *)v12 = v18;
v12 = (_QWORD *)((char *)v12 + 1);
v18 >>= 8;
--v11;
}
while( v11 );
}
v19 = v4 - v7;
v10 = v9 + (unsigned int)v7;
v20 = (_QWORD *)(v10 + 48);
if( v19 >= 8 )
{
v21 = (unsigned __int64)v19 >> 3;
do
{
v22 = __rdtsc();
v23 = (__ROR8__(v22, 3) ^ v22) * (unsigned __int128)0x7010008004002001ui64;
v44 = *((_QWORD *)&v23 + 1);
*v20++ = v23 ^ *((_QWORD *)&v23 + 1);
v19 -= 8;
--v21;
}
while( v21 );
}
if( v19 )
{
v24 = __rdtsc();
v25 = (__ROR8__(v24, 3) ^ v24) * (unsigned __int128)0x7010008004002001ui64;
v45 = *((_QWORD *)&v25 + 1);
v26 = v25 ^ *((_QWORD *)&v25 + 1);
do
{
*(_BYTE *)v20 = v26;
v20 = (_QWORD *)((char *)v20 + 1);
v26 >>= 8;
--v19;
}
while( v19 );
}
}
else
{
++*(_DWORD *)(a1 + 2584);
v10 = 0i64;
}
if( !v10 )
return 0i64;
v28 = 48;
v29 = (_QWORD *)v10;
v30 = 6i64;
do
{
*v29++ = 0i64;
v28 -= 8;
--v30;
}
while( v30 );
for( ; v28; --v28 )
{
*(_BYTE *)v29 = 0;
v29 = (_QWORD *)((char *)v29 + 1);
}
KeInitializeEvent((_KEVENT *)(v10 + 24), NotificationEvent, 0);
*(_QWORD *)v10 = v10 + 24;
v31 = __rdtsc();
v32 = (__ROR8__(v31, 3) ^ v31) * (unsigned __int128)0x7010008004002001ui64;
v46 = *((_QWORD *)&v32 + 1);
if( !(((unsigned __int64)v32 ^ *((_QWORD *)&v32 + 1)) % 0xA) )
{
*(_DWORD *)(a1 + 2448) |= 0x2000000u;
*(_QWORD *)(v10 + 8) = 1i64;
}
_InterlockedOr(v39, 0);
__rdtsc();
v33 = (unsigned __int8)(*(_BYTE *)(a1 + 2336) - 1);
v34 = __rdtsc();
v35 = __ROR8__(v34, 3);
v36 = v33
+ ((((v35 ^ v34) * (unsigned __int128)0x7010008004002001ui64) >> 64) ^ (0x7010008004002001i64 * (v35 ^ v34)))
% (unsigned int)(63 - v33);
do
{
v37 = __rdtsc();
v38 = __ROR8__(v37, 3) ^ v37;
}
while( v33
+ (((v38 * (unsigned __int128)0x7010008004002001ui64) >> 64) ^ (0x7010008004002001i64 * v38))
% (unsigned int)(63 - v33) == v36 );
_disable();
if( !(_BYTE)KdDebuggerNotPresent )
{
while( 1 )
;
}
_enable();
return(_QWORD *)v10;
}Referenced by:
No references.