Function at 0x1008fd50
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x58
mov ebx, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
mov eax, dword [0x1017f528]
xor eax, ebp
mov dword [esp + 0x50], eax
vmovss xmm0, dword [edx]
vmovss xmm1, dword [edx + 4]
vmulss xmm1, xmm1, dword [ebx + 4]
vfmadd231ss xmm1, xmm0, dword [ebx]
vmovss xmm5, dword [ebp + 0x10]
vmovss xmm2, dword [edx + 8]
vfmadd132ss xmm2, xmm1, dword [ebx + 8]
vsubss xmm4, xmm5, xmm2
vxorps xmm3, xmm3, xmm3
vucomiss xmm3, xmm4
jae 0x100900e1
mov esi, dword [ebp + 8]
mov al, 1
mov dword [esp + 0x20], eax
test byte [esi + 0x30], 4
jne 0x1008fe0e
mov eax, dword [0x1017f608]
mov edi, dword [eax]
mov eax, dword [0x10184f50]
test al, 1
je 0x10090253
mov esi, dword [0x10184f4c]
mov eax, dword [esi + 4]
cmp byte [eax + edi], 0
jne 0x1008fe0e
mov eax, dword [0x1017f608]
mov edi, dword [eax]
mov eax, dword [0x1017f714]
test al, 1
je 0x1009059f
mov esi, dword [0x1017f710]
mov eax, dword [esi + 4]
test byte [eax + edi], 2
jne 0x1008fe0e
mov al, 1
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], 0
mov eax, dword [ebp + 8]
test byte [eax + 0x32], 2
jne 0x1008fe16
mov dword [esp + 0xc], 0
mov eax, dword [0x1017f608]
mov edi, dword [eax]
mov eax, dword [0x10184ecc]
test al, 1
je 0x1009015f
mov esi, dword [0x10184ec8]
vmovss xmm0, dword [0x10132400]
vmaxss xmm5, xmm0, xmm5
mov eax, dword [esi + 4]
mov eax, dword [eax + edi]
cmp eax, 0xffffffff
je 0x1008ffec
vmovss dword [esp + 4], xmm5
vmovss dword [esp + 0x14], xmm2
vmovss dword [esp + 0x18], xmm4
mov dword [esp + 0x1c], ecx
mov ecx, dword [0x1017f618]
mov edx, dword [ecx]
push eax
call dword [edx + 0x10]
test eax, eax
je 0x1008ff2e
mov edi, eax
mov eax, dword [0x1017f5c0]
mov ecx, dword [eax + 0xd4]
mov eax, dword [ecx]
call dword [eax + 0x34]
test eax, eax
je 0x1008ff2e
mov eax, dword [0x1017f704]
test al, 1
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 0xc]
vmovss xmm4, dword [esp + 0x18]
vmovss xmm2, dword [esp + 0x14]
vxorps xmm3, xmm3, xmm3
vmovss xmm5, dword [esp + 4]
je 0x100904d2
mov esi, dword [0x1017f700]
mov eax, dword [esi + 4]
movzx eax, word [eax + edi]
mov dword [esp], eax
mov eax, dword [0x10184f58]
test al, 1
je 0x10090537
mov esi, dword [0x10184f54]
mov eax, dword [esi + 4]
cmp dword [eax + edi], 0
jle 0x100900f6
mov esi, dword [esp]
lea eax, [esi - 0xb]
cmp eax, 0x1d
ja 0x1008ff01
mov edx, 0x38000001
bt edx, eax
mov edx, dword [ebp + 0xc]
jb 0x1008ff0d
add esi, 0xfffffff8
cmp esi, 2
jae 0x100900f6
vmovss xmm0, dword [ecx + 0x40]
vmulss xmm0, xmm0, dword [0x10132404]
vmovss xmm1, dword [0x10132408]
vucomiss xmm1, xmm0
seta al
jmp 0x100900f8
xor eax, eax
vmovss xmm5, dword [esp + 4]
vmovaps xmm0, xmm5
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 0xc]
vmovss xmm4, dword [esp + 0x18]
vmovss xmm2, dword [esp + 0x14]
vxorps xmm3, xmm3, xmm3
test al, al
jne 0x10090137
vmulss xmm6, xmm5, dword [0x1013240c]
cmp byte [esp + 0x20], 0
jne 0x1008ff6c
vmovaps xmm6, xmm5
vmovss xmm1, dword [ebp + 0x18]
cmp byte [esp + 0xc], 0
je 0x10090007
cmp byte [esp + 0x20], 0
je 0x1008ff8b
vmulss xmm0, xmm0, dword [0x1013240c]
vmaxss xmm2, xmm3, xmm2
vmovss xmm3, dword [0x10132404]
test al, al
jne 0x1008ff9f
vmulss xmm6, xmm6, xmm3
vmulss xmm0, xmm0, xmm3
vaddss xmm3, xmm0, dword [0x10132110]
vucomiss xmm3, xmm2
jbe 0x10090007
vinsertps xmm0, xmm2, xmm0, 0x10
vbroadcastss xmm2, xmm3
vsubps xmm0, xmm0, xmm2
vxorps xmm2, xmm2, xmm2
vmaxps xmm0, xmm2, xmm0
vmovshdup xmm2, xmm0
vdivss xmm2, xmm0, xmm2
vmovss xmm0, dword [0x10129710]
vsubss xmm2, xmm0, xmm2
vxorps xmm3, xmm3, xmm3
vucomiss xmm2, xmm3
jae 0x1008ffff
vxorps xmm1, xmm1, xmm1
jmp 0x10090007
xor eax, eax
vmovaps xmm0, xmm5
test al, al
jne 0x10090137
jmp 0x1008ff59
vminss xmm0, xmm0, xmm2
vmulss xmm1, xmm0, xmm1
mov eax, dword [0x1017f610]
vmulss xmm0, xmm1, dword [eax + 0x20]
mov eax, dword [0x1017f608]
mov edi, dword [eax]
mov eax, dword [0x10184f60]
test al, 1
je 0x100901d6
mov esi, dword [0x10184f5c]
vmulss xmm0, xmm6, xmm0
mov eax, dword [esi + 4]
vmulss xmm0, xmm0, dword [eax + edi]
vminss xmm0, xmm0, xmm4
vmulss xmm1, xmm0, dword [edx + 8]
vmovsd xmm2, qword [edx]
vbroadcastss xmm0, xmm0
vmulps xmm0, xmm2, xmm0
vmovsd xmm2, qword [ebx]
vaddps xmm0, xmm0, xmm2
vmovlps qword [ebx], xmm0
vaddss xmm1, xmm1, dword [ebx + 8]
vmovss dword [ebx + 8], xmm1
vmulps xmm2, xmm0, xmm0
vmovshdup xmm2, xmm2
vfmadd231ss xmm2, xmm0, xmm0
vfmadd231ss xmm2, xmm1, xmm1
vcvtss2sd xmm0, xmm2, xmm2
vxorps xmm1, xmm1, xmm1
vucomisd xmm0, xmm1
jb 0x10090089
vsqrtsd xmm0, xmm0, xmm0
jmp 0x100900a7
sub esp, 8
vmovsd qword [esp], xmm0
mov esi, ecx
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
mov ecx, esi
add esp, 8
fstp qword [esp + 0x30]
vmovsd xmm0, qword [esp + 0x30]
vcvtsd2ss xmm0, xmm0, xmm0
vxorps xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
jne 0x100900b7
jnp 0x100900e1
vmovss xmm1, dword [ecx + 0x40]
vucomiss xmm0, xmm1
jbe 0x100900e1
vdivss xmm0, xmm1, xmm0
vmovsd xmm1, qword [ebx]
vbroadcastss xmm2, xmm0
vmulps xmm1, xmm2, xmm1
vmovlps qword [ebx], xmm1
vmulss xmm0, xmm0, dword [ebx + 8]
vmovss dword [ebx + 8], xmm0
mov ecx, dword [esp + 0x50]
xor ecx, ebp
call fcn.100d7fe0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
xor eax, eax
vmovss xmm0, dword [ecx + 0x40]
vdivss xmm0, xmm0, dword [0x10132400]
vminss xmm0, xmm0, dword [0x10129710]
vmulss xmm0, xmm5, xmm0
test al, al
je 0x10090119
vmovaps xmm5, xmm0
vmovaps xmm1, xmm5
cmp byte [esp + 0xc], 0
jne 0x1009014b
vmovaps xmm1, xmm0
cmp byte [esp + 0x20], 0
je 0x10090152
test al, al
je 0x1008ff59
vmovaps xmm6, xmm5
cmp byte [esp + 0x20], 0
je 0x1008ff68
jmp 0x1008ff6c
cmp byte [esp + 0x20], 0
jne 0x1009012f
vmovaps xmm5, xmm1
test al, al
jne 0x10090137
jmp 0x1008ff59
vmovss dword [esp + 0x14], xmm2
vmovss dword [esp + 0x18], xmm4
mov dword [esp + 0x1c], ecx
or eax, 1
mov dword [0x10184ecc], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x38]
mov dword [esp + 8], ecx
push str.CBaseCombatCharacter__m_hActiveWeapon
call fcn.10005ce0
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
cmp dword [esp + 0x4c], 0x10
jb 0x100901a9
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
cmp dword [esp + 4], 0
je 0x100902c9
mov eax, dword [esp + 4]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp], eax
cmp ecx, 3
jae 0x100902da
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1009032c
vmovss dword [esp + 0x10], xmm0
vmovss dword [esp + 8], xmm6
vmovss dword [esp + 0x18], xmm4
mov dword [esp + 0x1c], ecx
or eax, 1
mov dword [0x10184f60], eax
mov eax, dword [0x1017f5c4]
mov dword [esp], eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x14], ecx
push str.m_surfaceFriction
call fcn.10005ce0
mov eax, dword [esp + 0x48]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x4c], 0x10
jb 0x10090225
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], 0
je 0x100902d0
mov eax, dword [esp + 0x20]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 0xc], eax
cmp ecx, 3
jae 0x100903d6
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10090428
vmovss dword [esp + 0x14], xmm2
vmovss dword [esp + 0x18], xmm4
mov dword [esp + 0x1c], ecx
or eax, 1
mov dword [0x10184f50], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x38]
mov dword [esp], ecx
push str.CBasePlayer__m_bDucking
call fcn.10005ce0
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x4c], 0x10
jb 0x1009029b
mov eax, dword [esp + 0x38]
mov dword [esp], eax
cmp dword [esp + 0xc], 0
je 0x10090615
mov eax, dword [esp + 0xc]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 4], eax
cmp ecx, 3
jae 0x1009061c
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1009066d
mov ecx, 0x811c9dc5
jmp 0x1009034a
mov ecx, 0x811c9dc5
jmp 0x10090448
mov eax, dword [esp + 4]
and eax, 0xfffffffc
mov dword [esp + 0x10], eax
mov ecx, 0x811c9dc5
xor edx, edx
mov esi, dword [esp + 8]
movzx eax, byte [esi + edx]
xor eax, ecx
imul eax, eax, 0x1000193
movzx ecx, byte [esi + edx + 1]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [esi + edx + 2]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [esi + edx + 3]
xor ecx, eax
imul ecx, ecx, 0x1000193
add edx, 4
cmp dword [esp + 0x10], edx
jne 0x100902f0
cmp dword [esp], 0
je 0x1009034a
add edx, dword [esp + 8]
xor esi, esi
movzx eax, byte [edx + esi]
xor eax, ecx
imul ecx, eax, 0x1000193
inc esi
cmp dword [esp], esi
jne 0x10090338
mov edx, dword [esp + 0x24]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov esi, dword [eax + ecx*8 + 4]
cmp esi, dword [edx + 4]
je 0x10090a27
add ecx, ecx
mov eax, dword [eax + ecx*4]
mov dword [esp], eax
mov eax, dword [esp + 4]
cmp eax, dword [esi + 0x18]
jne 0x10090395
cmp dword [esi + 0x1c], 0x10
jb 0x1009037d
mov eax, dword [esi + 8]
jmp 0x10090380
lea eax, [esi + 8]
push dword [esp + 4]
push eax
push dword [esp + 0x10]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100903a3
cmp esi, dword [esp]
je 0x10090a27
mov esi, dword [esi + 4]
jmp 0x10090369
add esi, 0x20
lea ecx, [esp + 0x38]
call fcn.100026e0
mov dword [0x10184ec8], esi
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 0xc]
vmovss xmm4, dword [esp + 0x18]
vmovss xmm2, dword [esp + 0x14]
vxorps xmm3, xmm3, xmm3
vmovss xmm5, dword [ebp + 0x10]
jmp 0x1008fe30
mov eax, dword [esp + 0x20]
and eax, 0xfffffffc
mov dword [esp + 4], eax
mov ecx, 0x811c9dc5
xor edx, edx
mov esi, dword [esp + 0x14]
movzx eax, byte [esi + edx]
xor eax, ecx
imul eax, eax, 0x1000193
movzx ecx, byte [esi + edx + 1]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [esi + edx + 2]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [esi + edx + 3]
xor ecx, eax
imul ecx, ecx, 0x1000193
add edx, 4
cmp dword [esp + 4], edx
jne 0x100903ec
cmp dword [esp + 0xc], 0
je 0x10090448
add edx, dword [esp + 0x14]
xor esi, esi
movzx eax, byte [edx + esi]
xor eax, ecx
imul ecx, eax, 0x1000193
inc esi
cmp dword [esp + 0xc], esi
jne 0x10090435
mov edx, dword [esp]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov esi, dword [eax + ecx*8 + 4]
cmp esi, dword [edx + 4]
je 0x10090a27
add ecx, ecx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
cmp eax, dword [esi + 0x18]
jne 0x10090493
cmp dword [esi + 0x1c], 0x10
jb 0x1009047b
mov eax, dword [esi + 8]
jmp 0x1009047e
lea eax, [esi + 8]
push dword [esp + 0x20]
push eax
push dword [esp + 0x1c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100904a2
cmp esi, dword [esp + 0xc]
je 0x10090a27
mov esi, dword [esi + 4]
jmp 0x10090467
add esi, 0x20
lea ecx, [esp + 0x38]
call fcn.100026e0
mov dword [0x10184f5c], esi
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 0xc]
vmovss xmm4, dword [esp + 0x18]
vmovss xmm6, dword [esp + 8]
vmovss xmm0, dword [esp + 0x10]
jmp 0x1009002b
or eax, 1
mov dword [0x1017f704], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x10], ecx
push str.CBaseAttributableItem__m_iItemDefinitionIndex
call fcn.10005ce0
mov eax, dword [esp + 0x48]
mov dword [esp], eax
cmp dword [esp + 0x4c], 0x10
jb 0x1009050b
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
cmp dword [esp], 0
je 0x1009071a
mov eax, dword [esp]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 8], eax
cmp ecx, 3
jae 0x1009072b
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1009077c
or eax, 1
mov dword [0x10184f58], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x24], ecx
push str.CWeaponCSBaseGun__m_zoomLevel
call fcn.10005ce0
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
cmp dword [esp + 0x4c], 0x10
jb 0x10090571
mov eax, dword [esp + 0x38]
mov dword [esp + 0x24], eax
cmp dword [esp + 8], 0
je 0x10090721
mov eax, dword [esp + 8]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 0x10], eax
cmp ecx, 3
jae 0x10090829
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1009087b
vmovss dword [esp + 0x14], xmm2
vmovss dword [esp + 0x18], xmm4
mov dword [esp + 0x1c], ecx
or eax, 1
mov dword [0x1017f714], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x38]
mov dword [esp], ecx
push str.CBasePlayer__m_fFlags
call fcn.10005ce0
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x4c], 0x10
jb 0x100905e7
mov eax, dword [esp + 0x38]
mov dword [esp], eax
cmp dword [esp + 0xc], 0
je 0x1009092a
mov eax, dword [esp + 0xc]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 4], eax
cmp ecx, 3
jae 0x10090931
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10090982
mov ecx, 0x811c9dc5
jmp 0x1009068c
mov eax, dword [esp + 0xc]
and eax, 0xfffffffc
mov dword [esp + 8], eax
mov ecx, 0x811c9dc5
xor edx, edx
mov esi, dword [esp]
movzx eax, byte [esi + edx]
xor eax, ecx
imul eax, eax, 0x1000193
movzx ecx, byte [esi + edx + 1]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [esi + edx + 2]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [esi + edx + 3]
xor ecx, eax
imul ecx, ecx, 0x1000193
add edx, 4
cmp dword [esp + 8], edx
jne 0x10090631
cmp dword [esp + 4], 0
je 0x1009068c
add edx, dword [esp]
xor esi, esi
movzx eax, byte [edx + esi]
xor eax, ecx
imul ecx, eax, 0x1000193
inc esi
cmp dword [esp + 4], esi
jne 0x10090679
mov edx, dword [esp + 0x10]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov esi, dword [eax + ecx*8 + 4]
cmp esi, dword [edx + 4]
je 0x10090a27
add ecx, ecx
mov eax, dword [eax + ecx*4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc]
cmp eax, dword [esi + 0x18]
jne 0x100906d8
cmp dword [esi + 0x1c], 0x10
jb 0x100906c0
mov eax, dword [esi + 8]
jmp 0x100906c3
lea eax, [esi + 8]
push dword [esp + 0xc]
push eax
push dword [esp + 8]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100906e7
cmp esi, dword [esp + 4]
je 0x10090a27
mov esi, dword [esi + 4]
jmp 0x100906ac
add esi, 0x20
lea ecx, [esp + 0x38]
call fcn.100026e0
mov dword [0x10184f4c], esi
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 0xc]
vmovss xmm4, dword [esp + 0x18]
vmovss xmm2, dword [esp + 0x14]
vxorps xmm3, xmm3, xmm3
vmovss xmm5, dword [ebp + 0x10]
jmp 0x1008fdcb
mov ecx, 0x811c9dc5
jmp 0x1009079c
mov ecx, 0x811c9dc5
jmp 0x1009089b
mov eax, dword [esp]
and eax, 0xfffffffc
mov dword [esp + 0x24], eax
mov ecx, 0x811c9dc5
xor edx, edx
mov esi, dword [esp + 0x10]
movzx eax, byte [esi + edx]
xor eax, ecx
imul eax, eax, 0x1000193
movzx ecx, byte [esi + edx + 1]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [esi + edx + 2]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [esi + edx + 3]
xor ecx, eax
imul ecx, ecx, 0x1000193
add edx, 4
cmp dword [esp + 0x24], edx
jne 0x10090740
cmp dword [esp + 8], 0
je 0x1009079c
add edx, dword [esp + 0x10]
xor esi, esi
movzx eax, byte [edx + esi]
xor eax, ecx
imul ecx, eax, 0x1000193
inc esi
cmp dword [esp + 8], esi
jne 0x10090789
mov edx, dword [esp + 0x28]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov esi, dword [eax + ecx*8 + 4]
cmp esi, dword [edx + 4]
je 0x10090a27
add ecx, ecx
mov eax, dword [eax + ecx*4]
mov dword [esp + 8], eax
mov eax, dword [esp]
cmp eax, dword [esi + 0x18]
jne 0x100907e6
cmp dword [esi + 0x1c], 0x10
jb 0x100907cf
mov eax, dword [esi + 8]
jmp 0x100907d2
lea eax, [esi + 8]
push dword [esp]
push eax
push dword [esp + 0x18]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100907f5
cmp esi, dword [esp + 8]
je 0x10090a27
mov esi, dword [esi + 4]
jmp 0x100907bc
add esi, 0x20
lea ecx, [esp + 0x38]
call fcn.100026e0
mov dword [0x1017f700], esi
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 0xc]
vmovss xmm4, dword [esp + 0x18]
vmovss xmm2, dword [esp + 0x14]
vxorps xmm3, xmm3, xmm3
vmovss xmm5, dword [esp + 4]
jmp 0x1008febf
mov eax, dword [esp + 8]
and eax, 0xfffffffc
mov dword [esp + 0x28], eax
mov ecx, 0x811c9dc5
xor edx, edx
mov esi, dword [esp + 0x24]
movzx eax, byte [esi + edx]
xor eax, ecx
imul eax, eax, 0x1000193
movzx ecx, byte [esi + edx + 1]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [esi + edx + 2]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [esi + edx + 3]
xor ecx, eax
imul ecx, ecx, 0x1000193
add edx, 4
cmp dword [esp + 0x28], edx
jne 0x1009083f
cmp dword [esp + 0x10], 0
je 0x1009089b
add edx, dword [esp + 0x24]
xor esi, esi
movzx eax, byte [edx + esi]
xor eax, ecx
imul ecx, eax, 0x1000193
inc esi
cmp dword [esp + 0x10], esi
jne 0x10090888
mov edx, dword [esp + 0x2c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov esi, dword [eax + ecx*8 + 4]
cmp esi, dword [edx + 4]
je 0x10090a27
add ecx, ecx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 8]
cmp eax, dword [esi + 0x18]
jne 0x100908e7
cmp dword [esi + 0x1c], 0x10
jb 0x100908cf
mov eax, dword [esi + 8]
jmp 0x100908d2
lea eax, [esi + 8]
push dword [esp + 8]
push eax
push dword [esp + 0x2c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100908f6
cmp esi, dword [esp + 0x10]
je 0x10090a27
mov esi, dword [esi + 4]
jmp 0x100908bb
add esi, 0x20
lea ecx, [esp + 0x38]
call fcn.100026e0
mov dword [0x10184f54], esi
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 0xc]
vmovss xmm4, dword [esp + 0x18]
vmovss xmm2, dword [esp + 0x14]
vxorps xmm3, xmm3, xmm3
vmovss xmm5, dword [esp + 4]
jmp 0x1008fedc
mov ecx, 0x811c9dc5
jmp 0x100909a1
mov eax, dword [esp + 0xc]
and eax, 0xfffffffc
mov dword [esp + 8], eax
mov ecx, 0x811c9dc5
xor edx, edx
mov esi, dword [esp]
movzx eax, byte [esi + edx]
xor eax, ecx
imul eax, eax, 0x1000193
movzx ecx, byte [esi + edx + 1]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [esi + edx + 2]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [esi + edx + 3]
xor ecx, eax
imul ecx, ecx, 0x1000193
add edx, 4
cmp dword [esp + 8], edx
jne 0x10090946
cmp dword [esp + 4], 0
je 0x100909a1
add edx, dword [esp]
xor esi, esi
movzx eax, byte [edx + esi]
xor eax, ecx
imul ecx, eax, 0x1000193
inc esi
cmp dword [esp + 4], esi
jne 0x1009098e
mov edx, dword [esp + 0x10]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov esi, dword [eax + ecx*8 + 4]
cmp esi, dword [edx + 4]
je 0x10090a27
add ecx, ecx
mov eax, dword [eax + ecx*4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc]
cmp eax, dword [esi + 0x18]
jne 0x100909e9
cmp dword [esi + 0x1c], 0x10
jb 0x100909d1
mov eax, dword [esi + 8]
jmp 0x100909d4
lea eax, [esi + 8]
push dword [esp + 0xc]
push eax
push dword [esp + 8]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100909f4
cmp esi, dword [esp + 4]
je 0x10090a27
mov esi, dword [esi + 4]
jmp 0x100909bd
add esi, 0x20
lea ecx, [esp + 0x38]
call fcn.100026e0
mov dword [0x1017f710], esi
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 0xc]
vmovss xmm4, dword [esp + 0x18]
vmovss xmm2, dword [esp + 0x14]
vxorps xmm3, xmm3, xmm3
vmovss xmm5, dword [ebp + 0x10]
jmp 0x1008fdee
push 0x1016ba76
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
int3