strncmp
INT64 __stdcall strncmp(INT8 *Buffer, size_t BufferCount, size_t MaxCount, const INT8 *Format, va_list ArgList){
size_t v5;
unsigned __int8 v6;
unsigned __int8 v7;
__int64 v8;
unsigned __int64 v9;
bool v10;
unsigned __int64 v12;
unsigned __int64 v13;
unsigned int v14;
if( !MaxCount )
return 0i64;
v5 = BufferCount - (_QWORD)Buffer;
if( ((unsigned __int8)Buffer & 7) != 0 )
goto LABEL_3;
LABEL_7:
while( (((_WORD)v5 + (_WORD)Buffer) & 0xFFFu) <= 0xFF8 )
{
v8 = *(_QWORD *)Buffer;
v9 = *(_QWORD *)&Buffer[v5];
if( *(_QWORD *)Buffer != v9 )
break;
Buffer += 8;
v10 = MaxCount <= 8;
MaxCount -= 8i64;
if( v10 )
return 0i64;
if( (((v9 + 0x7EFEFEFEFEFEFEFFi64) ^ ~v8) & 0x8101010101010100ui64) != 0 )
{
if( !(_BYTE)v9 )
return 0i64;
if( !BYTE1(v9) )
return 0i64;
v12 = v9 >> 16;
if( !(_BYTE)v12 )
return 0i64;
if( !BYTE1(v12) )
return 0i64;
v13 = v12 >> 16;
if( !(_BYTE)v13 )
return 0i64;
if( !BYTE1(v13) )
return 0i64;
v14 = WORD1(v13);
if( !(_BYTE)v14 || !BYTE1(v14) )
return 0i64;
}
}
LABEL_3:
while( 1 )
{
v6 = *Buffer;
v7 = (Buffer++)[v5];
if( v6 != v7 )
return -(__int64)(v6 < v7) - ((v6 < v7) - 1i64);
if( !--MaxCount || !v6 )
return 0i64;
if( ((unsigned __int8)Buffer & 7) == 0 )
goto LABEL_7;
}
}Referenced by:
ApiSetpFindImageSection
AslpFileHasSecuromWrapper
AslpHasStarForceWrapper
BiGetObjectReferenceFromEfiEntry
EtwpApplyPredicate
HalpAcpiCheckAndMapTable
HalpAcpiGetCachedTable
HalpInitializeProfiling
HvlDebuggerSupportInitialize
KdInitSystem
KiGetCpuVendor
Phase1InitializationDiscard
RtlLookupImageSectionByName
RtlValidateCorrelationVector