little func

                Never    
C++
       
char __fastcall sub_7FF7531BDD74(_DWORD *a1, __int64 a2, __int64 a3, unsigned __int64 a4)
{
  unsigned int v4; // eax
  _DWORD *v5; // r14
  __int64 v6; // rbp
  __int64 v7; // rbx
  _DWORD *v8; // rsi
  signed int v10; // er10
  __int64 v11; // rdi
  int v12; // eax
  __int64 v13; // rcx
  __int64 v14; // rdx
  __int64 v15; // rcx
  char v16; // di
  char v17; // al
  char v18; // dl
  int v19; // eax
  __int64 v20; // rax

  v4 = a1[4];
  v5 = (_DWORD *)a4;
  v6 = a3;
  v7 = a2;
  v8 = a1;
  if ( v4 == dword_7FF754A9535C && !((*(_DWORD *)(a2 + 5108) >> 3) & 1)
    || v4 == dword_7FF754A95360 && !((*(_DWORD *)(a2 + 5108) >> 4) & 1) )
  {
    return 0;
  }
  if ( v4
    && (v10 = 0,
        a4 = (unsigned int)(unsigned __int16)dword_7FF7555364A8 - 1,
        (unsigned __int16)dword_7FF7555364A8 - 1 >= 0) )
  {
    while ( 1 )
    {
      a3 = (unsigned int)(((signed int)a4 + v10) >> 1);
      a2 = *((_QWORD *)qword_7FF7555364A0 + a3);
      if ( v4 == *(_DWORD *)(a2 + 16) )
        break;
      if ( v4 >= *(_DWORD *)(a2 + 16) )
        v10 = a3 + 1;
      else
        a4 = (unsigned int)(a3 - 1);
      if ( v10 > (signed int)a4 )
        goto LABEL_13;
    }
    v11 = *((_QWORD *)qword_7FF7555364A0 + a3);
  }
  else
  {
LABEL_13:
    v11 = 0i64;
  }
  if ( !v11 )
    return 0;
  if ( (*(_DWORD *)(v7 + 5108) >> 6) & 1 )
  {
    if ( (*(_DWORD *)(v11 + 2248) >> 6) & 1 )
    {
      v12 = sub_7FF7534C371C(v7, (unsigned int)a1[3], a3, a4);
      if ( v12 == 23553 || (unsigned int)(v12 - 24816) <= 2 )
        return 0;
    }
  }
  if ( *(_BYTE *)(v7 + 4256) & 2 )
  {
    v13 = *(_QWORD *)(v7 + 4280);
    if ( *(_BYTE *)(v13 + 3712) >= 0 || *(_BYTE *)(v13 + 3700) < 0 && *(_DWORD *)(v11 + 32) == 6 )
      return 0;
    if ( *(_DWORD *)(v11 + 32) == 14 && !(unsigned __int8)sub_7FF75339E8C8(v13, a2, a3, a4) )
      return 0;
  }
  v14 = *(_QWORD *)v8;
  if ( *(_QWORD *)v8 )
  {
    if ( *(_BYTE *)(v14 + 40) == 4
      && !(*(_BYTE *)(v14 + 4256) & 2)
      && (unsigned __int8)sub_7FF7533A2508(v7, v14, a3, a4)
      && v8[4] != dword_7FF754A95364 )
    {
      return 0;
    }
  }
  if ( *(_DWORD *)(v11 + 32) == 3 && (*(_DWORD *)(v7 + 5112) >> 30) & 1 && !((*(_DWORD *)(v7 + 5108) >> 1) & 1) )
    return 0;
  if ( *(_DWORD *)(v11 + 32) == 14 )
  {
    v15 = *(_QWORD *)v8;
    if ( *(_BYTE *)(*(_QWORD *)v8 + 4256i64) & 2 )
    {
      if ( v15 && (unsigned __int8)sub_7FF753D71774(v15, v14, a3, a4) )
        return 0;
    }
  }
  v16 = (*(_WORD *)(v7 + 392) >> 8) & 1;
  if ( (*v5 >> 1) & 1 )
    *(_DWORD *)(v7 + 392) &= 0xFFFFFEFF;
  LOBYTE(a4) = ~(*(_BYTE *)(v6 + 8) >> 6) & 1;
  v17 = (*(__int64 (__fastcall **)(__int64, _QWORD, _QWORD, unsigned __int64, _BYTE))(*(_QWORD *)v7 + 1048i64))(
          v7,
          *(_QWORD *)v8,
          (unsigned int)v8[4],
          a4,
          0);
  *(_DWORD *)(v7 + 392) &= 0xFFFFFEFF;
  v18 = v17;
  *(_DWORD *)(v7 + 392) |= (v16 & 1) << 8;
  v19 = v8[4];
  if ( v19 == dword_7FF754A95368 )
  {
    v20 = *(_QWORD *)(v7 + 80);
    if ( v20 )
      v20 = *(_QWORD *)(v20 + 72);
    if ( v20 )
      LOBYTE(v20) = (*(_DWORD *)(v20 + 92) & 0xFu) >= 2;
    if ( (_BYTE)v20 )
      v18 = (*(_BYTE *)(v7 + 5116) & 1) != 0 ? v18 : 0;
    if ( (*(_DWORD *)(v7 + 5116) >> 3) & 1 )
    {
      if ( (*(_WORD *)(v7 + 5108) >> 8) & 1 )
        v18 = 0;
    }
  }
  else if ( v19 == dword_7FF754A95370
         && (*(_DWORD *)(v7 + 5112) >> 30) & 1
         && *(_QWORD *)(v7 + 5368)
         && (*(_DWORD *)(v7 + 5124) >> 23) & 1 )
  {
    v18 = 1;
  }
  return v18;
}