strcmp
VOID __stdcall strcmp(UINT8 *str1, UINT8 *str2){
signed __int64 v2;
UINT8 v3;
__int64 v4;
unsigned __int64 v5;
unsigned __int64 v6;
unsigned __int64 v7;
unsigned int v8;
v2 = str2 - str1;
if( ((unsigned __int8)str1 & 7) == 0 )
{
LABEL_5:
while( (((_WORD)v2 + (_WORD)str1) & 0xFFFu) <= 0xFF8 )
{
v4 = *(_QWORD *)str1;
v5 = *(_QWORD *)&str1[v2];
if( *(_QWORD *)str1 != v5 )
break;
str1 += 8;
if( (((v5 + 0x7EFEFEFEFEFEFEFFi64) ^ ~v4) & 0x8101010101010100ui64) != 0 )
{
if( !(_BYTE)v5 )
return;
if( !BYTE1(v5) )
return;
v6 = v5 >> 16;
if( !(_BYTE)v6 )
return;
if( !BYTE1(v6) )
return;
v7 = v6 >> 16;
if( !(_BYTE)v7 )
return;
if( !BYTE1(v7) )
return;
v8 = WORD1(v7);
if( !(_BYTE)v8 || !BYTE1(v8) )
return;
}
}
}
while( 1 )
{
v3 = *str1;
if( *str1 != str1[v2] )
break;
++str1;
if( !v3 )
break;
if( ((unsigned __int8)str1 & 7) == 0 )
goto LABEL_5;
}
}Referenced by:
EtwpCoverageResetCP
EtwpEventNameFilterSearch
ExpSetBootEntry
HalpAcpiFindRsdp
HdlspDispatch
NtEnumerateBootEntries
ViXdvDriverLoadImage