__b8

__int64 __fastcall __b8(__int64 a1, __int64 rdx0){
  unsigned __int128 a2; 
  int v3; 
  __int64 v5; 
  unsigned int v6; 
  __int64 v7; 
  __int64 v8; 
  unsigned __int64 v9; 
  __int64 *v10; 
  unsigned __int64 v11; 
  __int64 v12; 
  __int64 v13; 
  __int64 v14; 
  __int64 v15; 
  int v16; 
  unsigned __int64 v17; 
  __int64 v18; 
  void *retaddr; 
  *((_QWORD *)&a2 + 1) = rdx0;
  *(_QWORD *)&a2 = &retaddr;
  v3 = *(_DWORD *)(a1 + 2448);
  if( (v3 & 0x40000000) == 0 )
  {
    v5 = 0i64;
    while( 1 )
    {
      v6 = *(_DWORD *)(a1 + 2452);
      *(_QWORD *)&a2 = DWORD2(a2) != 0;
      if( (_DWORD)a2 == ((v6 >> 21) & 1) || (v3 & 2) == 0 )
        break;
      v7 = *(unsigned int *)(a1 + 2604);
      v8 = *(_QWORD *)(a1 + 2072);
      v9 = (unsigned __int64)(unsigned int)(*(_DWORD *)(a1 + 2020) - v7) >> 3;
      v10 = (__int64 *)(a1 + v7);
      v11 = a1 + v7 + 8 * v9;
      if( DWORD2(a2) )
      {
        v17 = __rdtsc();
        a2 = (__ROR8__(v17, 3) ^ v17) * (unsigned __int128)0x7010008004002001ui64;
        v18 = a2 ^ *((_QWORD *)&a2 + 1);
        *(_QWORD *)(a1 + 2608) = a2 ^ *((_QWORD *)&a2 + 1);
        if( (unsigned __int64)v10 > v11 )
          v9 = 0i64;
        if( v9 )
        {
          do
          {
            ++v5;
            *(_QWORD *)&a2 = v18 ^ *v10;
            *((_QWORD *)&a2 + 1) = v8 ^ *v10;
            *v10 = a2;
            v18 = (*((_QWORD *)&a2 + 1) + __ROR8__(v18, v18 & 0x3F)) ^ 0xEFFi64;
            ++v10;
          }
          while( v5 != v9 );
          v6 = *(_DWORD *)(a1 + 2452);
        }
        *(_QWORD *)(a1 + 2616) = v18;
        *(_DWORD *)(a1 + 2452) = v6 | 0x200000;
        return a2;
      }
      v12 = *(_QWORD *)(a1 + 2608);
      v13 = 0i64;
      if( (unsigned __int64)v10 > v11 )
        v9 = 0i64;
      if( v9 )
      {
        do
        {
          *v10 ^= v12;
          ++v13;
          v14 = *v10++;
          v12 = ((v8 ^ v14) + __ROR8__(v12, v12 & 0x3F)) ^ 0xEFF;
        }
        while( v13 != v9 );
        v6 = *(_DWORD *)(a1 + 2452);
      }
      *(_DWORD *)(a1 + 2452) = v6 & 0xFFDFFFFF;
      if( v12 != *(_QWORD *)(a1 + 2616) )
      {
        v15 = *(_QWORD *)(a1 + 1424);
        v16 = *(_DWORD *)(a1 + 2020);
        *(_QWORD *)v15 = a1;
        *(_DWORD *)(v15 + 16) = v16;
        *(_QWORD *)&a2 = *(unsigned int *)(a1 + 2296);
        if( !(_DWORD)a2 )
        {
          *(_QWORD *)(*(_QWORD *)(a1 + 1424) + 24i64) = v12 ^ *(_QWORD *)(a1 + 2616);
          *(_QWORD *)&a2 = *(unsigned int *)(a1 + 2296);
          if( !(_DWORD)a2 )
          {
            *(_QWORD *)(a1 + 2312) = 0i64;
            *(_QWORD *)&a2 = a1 - 0x5C5FC0A76E374B18i64;
            *(_QWORD *)(a1 + 2320) = 256i64;
            *(_QWORD *)(a1 + 2304) = a1 - 0x5C5FC0A76E374B18i64;
            DWORD2(a2) = 0;
            *(_QWORD *)(a1 + 2328) = v12;
            *(_DWORD *)(a1 + 2296) = 1;
            v3 = *(_DWORD *)(a1 + 2448);
            if( (v3 & 0x40000000) == 0 )
              continue;
          }
        }
      }
      return a2;
    }
  }
  return a2;
}

Referenced by:

Argument1
KiSwInterruptDispatch
sub_1403E93BC
sub_1403EA328
sub_140A0C0FC
sub_140A0E098
sub_140A0FD10
sub_140A10830
sub_140A10EF0
sub_140A1BFE4