__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*/ }