Function at 0x100b7cd0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [0x100e1040]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [0x100e10ac]
push ebx
push esi
push edi
test ecx, ecx
je 0x100b8582
cmp byte [0x100e6ae0], 0
je 0x100b7e31
mov eax, dword [0x101063a4]
add eax, 0xffffffcc
xor eax, 0xc07d8c17
cmp dword [eax + ecx], 0
jne 0x100b7e31
mov eax, dword [0x10106444]
add eax, 0xffffffa4
xor eax, 0xc07d8c3f
mov eax, dword [eax + ecx]
mov ecx, dword [0x10106194]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
test eax, eax
je 0x100b7e31
mov ecx, dword [0x10106444]
mov eax, dword [0x100e10ac]
add ecx, 0xffffffa4
xor ecx, 0xc07d8c3f
mov eax, dword [ecx + eax]
mov ecx, dword [0x10106194]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
mov ecx, eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x6f8]
call eax
cmp dword [eax + 0xc8], 5
jne 0x100b7e31
mov ecx, dword [0x101063f4]
mov eax, dword [0x100e10ac]
add ecx, 0xffffffb8
xor ecx, 0xc07d8c2b
cmp byte [ecx + eax], 0
je 0x100b7e31
mov eax, dword [0x100e148c]
mov ecx, dword [0x100e1490]
mov dword [ebp - 8], eax
cdq
sub eax, edx
mov dword [ebp - 0x10], ecx
mov esi, eax
mov eax, ecx
mov ecx, dword [0x10106288]
cdq
sub eax, edx
sar esi, 1
mov edi, eax
mov edx, dword [ecx]
sar edi, 1
mov edx, dword [edx + 0x34]
call edx
mov ebx, eax
cmp ebx, 1
jle 0x100b7ddd
cdq
sub eax, edx
sar eax, 1
sub esi, eax
sub edi, eax
mov ecx, dword [0x1010619c]
push dword [0x100d51dc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1010619c]
lea eax, [ebx + edi]
push eax
push dword [ebp - 8]
mov edx, dword [ecx]
push edi
push 0
mov eax, dword [edx + 0x40]
call eax
mov ecx, dword [0x1010619c]
push dword [0x100d51dc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1010619c]
lea eax, [ebx + esi]
push dword [ebp - 0x10]
push eax
mov edx, dword [ecx]
push 0
push esi
mov eax, dword [edx + 0x40]
call eax
mov eax, dword [0x1010bc6c]
mov ecx, dword [0x10106200]
test al, 1
jne 0x100b7e55
or eax, 1
mov dword [0x1010bc6c], eax
mov eax, dword [ecx + 0x16c]
mov dword [0x1010bc7c], eax
jmp 0x100b7e5a
mov eax, dword [0x1010bc7c]
cmp dword [ecx + 0x16c], eax
je 0x100b7e7c
mov ecx, 0x100f0c84
call fcn.100bf780
mov eax, dword [0x10106200]
mov eax, dword [eax + 0x16c]
mov dword [0x1010bc7c], eax
mov ecx, dword [0x10106194]
mov ebx, 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cmp eax, ebx
jl 0x100b8204
mov ecx, dword [0x10106194]
push ebx
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov edi, eax
test edi, edi
je 0x100b81ee
mov ecx, dword [edi]
mov edx, dword [ecx + 0x260]
mov ecx, edi
call edx
test al, al
je 0x100b7ee9
mov eax, dword [0x101063a4]
add eax, 0xffffffcc
xor eax, 0xc07d8c17
cmp dword [eax + edi], 0
jne 0x100b7f32
mov eax, dword [0x10106320]
cmp byte [eax + edi], 0
jne 0x100b7f32
push edi
mov ecx, 0x101090c8
call fcn.100bb9a0
jmp 0x100b7f32
cmp byte [0x100e5bfc], 0
je 0x100b7f1e
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x280]
call eax
test al, al
je 0x100b7f1e
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
mov eax, dword [eax + 0x24]
call eax
test al, al
jne 0x100b7f1e
push edi
mov ecx, 0x101090c8
call fcn.100baab0
jmp 0x100b7f32
cmp byte [0x100e5e2c], 0
je 0x100b7f32
push edi
mov ecx, 0x101090c8
call fcn.100b9e20
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
mov eax, dword [eax + 0x24]
call eax
test al, al
jne 0x100b81ee
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0xa239ea8f
push eax
call fcn.10044a20
lea ecx, [edi + 8]
mov eax, dword [eax]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 8]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x100b7f6e
mov eax, dword [eax + 0x14]
jmp 0x100b7f71
or eax, 0xffffffff
cmp dword [ebp - 0xc], eax
je 0x100b7fab
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 0xc09c6702
push eax
call fcn.10044a20
lea ecx, [edi + 8]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 8]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x100b7f9f
mov eax, dword [eax + 0x14]
jmp 0x100b7fa2
or eax, 0xffffffff
cmp dword [ebp - 0x10], eax
jne 0x100b81ee
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 0xc09c6702
push eax
call fcn.10044a20
lea ecx, [edi + 8]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 8]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x100b7fd4
mov eax, dword [eax + 0x14]
jmp 0x100b7fd7
or eax, 0xffffffff
cmp dword [ebp - 0x10], eax
jne 0x100b8023
mov eax, dword [edi + 4]
lea ecx, [edi + 4]
mov eax, dword [eax + 0x20]
call eax
test eax, eax
je 0x100b81ee
lea ecx, [eax + 4]
mov edx, ecx
lea eax, [edx + 1]
mov dword [ebp - 0xc], eax
nop word [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b8000
sub edx, dword [ebp - 0xc]
push 0xb
push str.fraggrenade
push ecx
call fcn.1002bbb0
add esp, 0xc
cmp eax, 0xffffffff
je 0x100b81ee
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 8]
call eax
mov ecx, dword [0x10106394]
mov edx, eax
add ecx, 0xffffffd0
mov dword [ebp - 8], edx
xor ecx, 0xc07d8c13
test byte [ecx + edi], 0x20
jne 0x100b81e0
shr eax, 8
movzx ecx, dl
xor ecx, 0x811c9dc5
movzx eax, al
imul ecx, ecx, 0x1000193
xor ecx, eax
mov eax, edx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x100f0c84
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.100bfef0
mov ecx, dword [0x100f0c88]
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, dword [0x100f0c88]
jne 0x100b81c7
mov edx, dword [0x101064d8]
mov ecx, dword [0x101063d8]
add edx, 0xffffff7f
add ecx, 0xffffffbf
mov dword [ebp - 0xc], 0xa239ea8f
mov eax, edx
xor ecx, 0xc07d8c24
xor eax, 0xc07d8c64
xor edx, 0xc07d8c64
add edx, edi
mov dword [ebp - 0x30], edx
movss xmm0, dword [ecx + edi]
subss xmm0, dword [eax + edi]
mov eax, dword [0x101061ec]
divss xmm0, dword [eax + 0x20]
addss xmm0, dword [0x100d5718]
cvttss2si eax, xmm0
mov dword [ebp - 0x2c], eax
mov eax, dword [0x10106370]
add eax, 0xffffffd9
xor eax, 0xc07d8c0a
add eax, edi
mov dword [ebp - 0x34], eax
mov eax, dword [0x10106368]
add eax, 0xffffffdb
xor eax, 0xc07d8c08
add eax, edi
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0xc]
push eax
call fcn.10044a20
lea ecx, [edi + 8]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 8]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x100b814c
mov ecx, dword [eax + 0x14]
jmp 0x100b814f
or ecx, 0xffffffff
xor eax, eax
cmp dword [ebp - 0x10], ecx
mov ecx, dword [0x10106194]
sete al
push ecx
lea eax, [eax*2 + 0x2c]
mov dword [ebp - 0x24], eax
mov edx, dword [ecx]
mov eax, dword [0x101064c8]
add eax, 0xffffff83
xor eax, 0xc07d8c60
mov esi, dword [edx + 0x10]
mov edx, esp
mov eax, dword [eax + edi]
mov dword [edx], eax
call esi
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x24]
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x14]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 8]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x1c]
push eax
push ecx
lea eax, [ebp - 0x5c]
mov ecx, 0x100f0c84
push eax
call fcn.100bfbf0
lea eax, [ebp - 8]
mov ecx, 0x100f0c84
push eax
call fcn.100bf700
mov ecx, eax
call fcn.100c27b0
test al, al
jne 0x100b81ee
lea eax, [ebp - 8]
mov ecx, 0x100f0c84
push eax
call fcn.100bf810
mov ecx, dword [0x10106194]
inc ebx
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cmp ebx, eax
jle 0x100b7e96
mov ecx, 0x100f0c34
call fcn.100c27b0
cmp byte [0x100e10b0], 0
je 0x100b83a8
mov ecx, dword [0x10106444]
mov eax, dword [0x100e10ac]
add ecx, 0xffffffa4
xor ecx, 0xc07d8c3f
mov eax, dword [ecx + eax]
mov ecx, dword [0x10106194]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
test eax, eax
je 0x100b83a8
mov eax, dword [0x1010bc84]
xorps xmm1, xmm1
test al, 1
jne 0x100b8283
or eax, 1
xorps xmm3, xmm3
mov dword [0x1010bc84], eax
xorps xmm2, xmm2
xorps xmm0, xmm0
movss dword [0x1010bb28], xmm3
movss dword [0x1010bb2c], xmm2
movss dword [0x1010bb30], xmm0
jmp 0x100b829b
movss xmm0, dword [0x1010bb30]
movss xmm2, dword [0x1010bb2c]
movss xmm3, dword [0x1010bb28]
movss xmm6, dword [0x100f0c04]
movss xmm4, dword [0x100f0c0c]
movss xmm5, dword [0x100f0c08]
ucomiss xmm6, xmm1
lahf
test ah, 0x44
jp 0x100b82ce
ucomiss xmm5, xmm1
lahf
test ah, 0x44
jp 0x100b82ce
ucomiss xmm4, xmm1
lahf
test ah, 0x44
jnp 0x100b82ef
movaps xmm3, xmm6
movaps xmm2, xmm5
movaps xmm0, xmm4
movss dword [0x1010bb28], xmm3
movss dword [0x1010bb2c], xmm2
movss dword [0x1010bb30], xmm0
ucomiss xmm3, xmm1
lahf
test ah, 0x44
jp 0x100b830e
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jp 0x100b830e
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100b83a8
mov edx, dword [0x100e7b44]
movss xmm3, dword [0x1010b5e4]
lea ecx, [edx + edx*2]
shl ecx, 2
cmp edx, 0xffffffff
je 0x100b8333
mov al, byte [ecx + 0x100eff90]
mov esi, ecx
test al, al
jne 0x100b833e
ucomiss xmm3, xmm1
mov esi, ecx
lahf
test ah, 0x44
jnp 0x100b83a8
cmp edx, 0xffffffff
je 0x100b8364
cmp byte [esi + 0x100eff90], 0
je 0x100b8364
mov eax, dword [0x101061ec]
movss xmm2, dword [eax + 0x14]
mulss xmm2, dword [0x100d5888]
addss xmm2, xmm3
jmp 0x100b837d
mov eax, dword [0x101061ec]
movaps xmm2, xmm3
movss xmm0, dword [eax + 0x14]
mulss xmm0, dword [0x100d5888]
subss xmm2, xmm0
comiss xmm1, xmm2
jae 0x100b838d
movaps xmm1, xmm2
minss xmm1, dword [0x100d5814]
push dword [0x100e7bf0]
mov ecx, 0x1010bb28
movss dword [0x1010b5e4], xmm1
call fcn.100b2480
add esp, 4
call fcn.100b9600
mov ecx, 0x101090c8
call fcn.100b8f10
mov ecx, 0x101090c8
call fcn.100b85a0
call fcn.100b9800
cmp byte [0x100e10b0], 0
je 0x100b856e
cmp byte [0x100e3dc4], 0
je 0x100b856e
cmp byte [0x100f124c], 0
mov eax, dword [0x100e3e68]
mov dword [ebp - 8], eax
je 0x100b846a
mov eax, dword [0x100e148c]
cdq
sub eax, edx
mov esi, eax
mov eax, dword [0x100e1490]
cdq
sub eax, edx
sar esi, 1
sar eax, 1
lea edx, [ebp - 0x28]
lea ecx, [esi - 0x2d]
movd xmm1, ecx
lea ecx, [eax - 0xa]
movd xmm0, ecx
lea ecx, [esi - 0x41]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [ebp - 0x14], xmm0
movd xmm0, ecx
lea ecx, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x18], xmm1
movss dword [ebp - 0x28], xmm0
movd xmm0, eax
add eax, 0xa
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x20], xmm1
movss dword [ebp - 0x24], xmm0
movd xmm0, eax
lea eax, [ebp - 8]
cvtdq2ps xmm0, xmm0
push eax
lea eax, [ebp - 0x18]
push eax
movss dword [ebp - 0x1c], xmm0
call fcn.100b2e50
add esp, 8
cmp byte [0x100f124d], 0
je 0x100b84ec
mov eax, dword [0x100e148c]
cdq
sub eax, edx
mov esi, eax
mov eax, dword [0x100e1490]
cdq
sub eax, edx
sar esi, 1
sar eax, 1
lea edx, [ebp - 0x28]
lea ecx, [esi + 0x2d]
movd xmm1, ecx
lea ecx, [eax + 0xa]
movd xmm0, ecx
lea ecx, [esi + 0x41]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [ebp - 0x14], xmm0
movd xmm0, ecx
lea ecx, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x18], xmm1
movss dword [ebp - 0x28], xmm0
movd xmm0, eax
add eax, 0xfffffff6
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x20], xmm1
movss dword [ebp - 0x24], xmm0
movd xmm0, eax
lea eax, [ebp - 8]
cvtdq2ps xmm0, xmm0
push eax
lea eax, [ebp - 0x18]
push eax
movss dword [ebp - 0x1c], xmm0
call fcn.100b2e50
add esp, 8
cmp byte [0x100f124e], 0
je 0x100b856e
mov eax, dword [0x100e148c]
cdq
sub eax, edx
mov esi, eax
mov eax, dword [0x100e1490]
cdq
sar esi, 1
sub eax, edx
sar eax, 1
lea edx, [ebp - 0x28]
lea ecx, [esi + 0xa]
movd xmm0, ecx
lea ecx, [eax + 0x32]
cvtdq2ps xmm0, xmm0
add eax, 0x46
movd xmm1, ecx
lea ecx, [esi - 0xa]
movss dword [ebp - 0x18], xmm0
movd xmm0, ecx
lea ecx, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [ebp - 0x28], xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x14], xmm1
movss dword [ebp - 0x20], xmm0
movd xmm0, eax
lea eax, [ebp - 8]
cvtdq2ps xmm0, xmm0
push eax
lea eax, [ebp - 0x18]
push eax
movss dword [ebp - 0x24], xmm1
movss dword [ebp - 0x1c], xmm0
call fcn.100b2e50
add esp, 8
mov ecx, 0x101090c8
call fcn.100b72d0
mov ecx, 0x101090c8
call fcn.100bdf60
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100c546c
mov esp, ebp
pop ebp
ret