strncmp
NTSTATUS __stdcall strncmp(INT8 *first, INT8 *last, UINT64 count){
signed __int64 v3;
unsigned __int8 v4;
unsigned __int8 v5;
__int64 v6;
unsigned __int64 v7;
bool v8;
unsigned __int64 v10;
unsigned __int64 v11;
unsigned int v12;
if( !count )
return 0;
v3 = last - first;
if( ((unsigned __int8)first & 7) != 0 )
goto LABEL_3;
LABEL_7:
while( (((_WORD)v3 + (_WORD)first) & 0xFFFu) <= 0xFF8 )
{
v6 = *(_QWORD *)first;
v7 = *(_QWORD *)&first[v3];
if( *(_QWORD *)first != v7 )
break;
first += 8;
v8 = count <= 8;
count -= 8i64;
if( v8 )
return 0;
if( (((v7 + 0x7EFEFEFEFEFEFEFFi64) ^ ~v6) & 0x8101010101010100ui64) != 0 )
{
if( !(_BYTE)v7 )
return 0;
if( !BYTE1(v7) )
return 0;
v10 = v7 >> 16;
if( !(_BYTE)v10 )
return 0;
if( !BYTE1(v10) )
return 0;
v11 = v10 >> 16;
if( !(_BYTE)v11 )
return 0;
if( !BYTE1(v11) )
return 0;
v12 = WORD1(v11);
if( !(_BYTE)v12 || !BYTE1(v12) )
return 0;
}
}
LABEL_3:
while( 1 )
{
v4 = *first;
v5 = (first++)[v3];
if( v4 != v5 )
return -(v4 < v5) - ((v4 < v5) - 1);
if( !--count || !v4 )
return 0;
if( ((unsigned __int8)first & 7) == 0 )
goto LABEL_7;
}
}Referenced by:
ApiSetpFindImageSection
AslpFileHasSecuromWrapper
AslpHasStarForceWrapper
BiGetObjectReferenceFromEfiEntry
EtwpApplyPredicate
HalpAcpiCheckAndMapTable
HalpAcpiGetCachedTable
HalpInitializeProfiling
HvlDebuggerSupportInitialize
KdInitSystem
KiGetCpuVendor
RtlLookupImageSectionByName
RtlValidateCorrelationVector