IvtUpdateSingleTargetExtendedDestination
INT64 __fastcall IvtUpdateSingleTargetExtendedDestination(UINT64 a1, CHAR a2, _DWORD *a3, INT64 a4, UINT64 a5){
unsigned int v5;
unsigned __int64 v6;
__int64 v7;
v5 = a1;
if( a2 )
{
v6 = (unsigned int)(unsigned __int16)a1
- 1
- (((unsigned __int64)((unsigned int)(unsigned __int16)a1 - 1) >> 1) & 0x5555555555555555i64);
v5 = ((unsigned int)a1 >> 12) & 0xFFFF0 | ((unsigned int)((0x101010101010101i64
* (((v6 & 0x3333333333333333i64)
+ ((v6 >> 2) & 0x3333333333333333i64)
+ (((v6 & 0x3333333333333333i64)
+ ((v6 >> 2) & 0x3333333333333333i64)) >> 4)) & 0xF0F0F0F0F0F0F0Fi64)) >> 32) >> 24);
}
v7 = 0i64;
if( (_DWORD)a5 )
{
while( v5 != *a3 )
{
v7 = (unsigned int)(v7 + 1);
++a3;
if( (unsigned int)v7 >= (unsigned int)a5 )
goto LABEL_8;
}
v5 = *(_DWORD *)(a4 + 4 * v7);
}
LABEL_8:
if( a2 )
return((v5 & 0xFFFFFFF0) << 12) | (1 << (v5 & 0xF));
return v5;
}Referenced by:
IvtUpdateExtendedDestination