__int64 __fastcall sub_5694(unsigned __int64 a1)
{
_BYTE *v1; // rdx
unsigned __int64 v2; // r9
unsigned __int64 n8; // r10
unsigned __int64 v4; // r8
v1 = &unk_75F0; /*0x5697*/
v2 = a1 + 16; /*0x569e*/
n8 = a1 & 7; /*0x56a2*/
if ( (a1 & 7) != 0 && n8 == ((unsigned __int64)&unk_75F0 & 7) ) /*0x56b1*/
{
v4 = 8 - n8; /*0x56b9*/
if ( n8 != 8 ) /*0x56bc*/
{
do /*0x56ce*/
{
if ( *(_BYTE *)a1 != *v1 ) /*0x56c2*/
break; /*0x56c2*/
++a1; /*0x56c4*/
++v1; /*0x56c7*/
--v4; /*0x56ca*/
}
while ( v4 ); /*0x56ce*/
}
}
while ( a1 <= v2 - 8 && *(_QWORD *)a1 == *(_QWORD *)v1 ) /*0x56dc*/
{
a1 += 8LL; /*0x56de*/
v1 += 8; /*0x56e2*/
}
while ( 1 ) /*0x56f9*/
{
if ( a1 >= v2 ) /*0x56fc*/
return 0; /*0x5700*/
if ( *(_BYTE *)a1 != *v1 ) /*0x56f1*/
break; /*0x56f1*/
++a1; /*0x56f3*/
++v1; /*0x56f6*/
}
return *(char *)a1 - (char)*v1; /*0x5700*/
}