// // strchr from 0x1801428e8 to 0x180142965 (125 bytes) // // 1 xrefs: // > common_set_variable_in_environment_nolock @ 0x18013ade8 // // 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 // char *__cdecl strchr(const char *Str, int Val) { __m128i *v2; // r8 unsigned int v3; // r10d char *v4; // r9 __m128i v5; // xmm2 __int64 v6; // rdx char *v7; // rdx v2 = (__m128i *)((unsigned __int64)Str & 0xFFFFFFFFFFFFFFF0uLL); v3 = (unsigned __int8)Val | ((unsigned __int8)Val << 8); v4 = nullptr; v5 = _mm_shuffle_epi32(_mm_shufflelo_epi16(_mm_cvtsi32_si128(v3), 0), 0); for ( LODWORD(v6) = (-1 << ((unsigned __int8)Str & 0xF)) & _mm_movemask_epi8( _mm_or_si128( _mm_cmpeq_epi8(v5, *(__m128i *)((unsigned __int64)Str & 0xFFFFFFFFFFFFFFF0uLL)), _mm_cmpeq_epi8((__m128i)0LL, *(__m128i *)((unsigned __int64)Str & 0xFFFFFFFFFFFFFFF0uLL)))); !(_DWORD)v6; LODWORD(v6) = _mm_movemask_epi8(_mm_or_si128(_mm_cmpeq_epi8(v5, *v2), _mm_cmpeq_epi8((__m128i)0LL, *v2))) ) { ++v2; } _BitScanForward((unsigned int *)&v6, v6); v7 = &v2->m128i_i8[v6]; if ( *v7 == (_BYTE)v3 ) return v7; return v4; }