// // _strnicmp_l from 0x18013ba28 to 0x18013bad5 (173 bytes) // // 3 xrefs: // > _strnicoll_l @ 0x1801345f5 // > _strnicmp @ 0x18013ba22 // > @ 0x180203968 // // This function is hookable on this platform! // // Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA // Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings // int __cdecl strnicmp_l(const char *String1, const char *String2, size_t MaxCount, _locale_t Locale) { size_t v4; // rbx const char *v5; // rdi const char *v6; // rsi int result; // eax __int64 v8; // r8 __int64 v9; // rax int v10; // edx __int64 v11; // rax int v12; // ecx _QWORD v13[3]; // [rsp+20h] [rbp-28h] BYREF char v14; // [rsp+38h] [rbp-10h] v4 = MaxCount; v5 = String2; v6 = String1; if ( String1 && String2 && MaxCount <= 0x7FFFFFFF ) { if ( MaxCount ) { _LocaleUpdate::_LocaleUpdate((_LocaleUpdate *)v13, Locale); v8 = *(_QWORD *)(v13[1] + 272LL); do { v9 = *(unsigned __int8 *)v6++; v10 = *(unsigned __int8 *)(v9 + v8); v11 = *(unsigned __int8 *)v5++; v12 = *(unsigned __int8 *)(v11 + v8); result = v10 - v12; if ( v10 != v12 ) break; if ( !v10 ) break; --v4; } while ( v4 ); if ( v14 ) *(_DWORD *)(v13[0] + 936LL) &= ~2u; } else { return 0; } } else { *errno() = 22; invalid_parameter_noinfo(); return 0x7FFFFFFF; } return result; }