Function at 0x3f00b570
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0xc8
push ebx
push esi
push edi
cmp eax, dword [ebp + 0x1c]
jb 0x3f00b7e3
cmp eax, dword [ebp + 0x20]
ja 0x3f00b7e3
mov eax, dword [0x3f04ec84]
cmp dword [0x3f04ec80], eax
jl 0x3f00b5a6
test eax, eax
jg 0x3f00b7e3
mov eax, dword fs:[0x2c]
mov ecx, dword [0x3f0924ac]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x3f04ed20]
cmp eax, dword [ecx + 0x408]
jg 0x3f00b7ea
mov eax, dword [ebp + 0x14]
mov ecx, 0x3f04ecf8
test eax, eax
cmove eax, dword [str.unknown]
push eax
call fcn.3f006e90
mov dword [ebp - 8], eax
mov dword [ebp + 0x1c], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, eax
mov ebx, 0x3f04ec94
cmp edx, dword [0x3f04ec94]
je 0x3f00b614
mov ecx, edx
xor eax, eax
lock cmpxchg dword [ebx], ecx
test eax, eax
je 0x3f00b614
pause
push edx
mov ecx, ebx
call sym.tier0_s.dll_private:_void___thiscall_CThreadSpinLock::Lock_unsigned_int_volatile
jmp 0x3f00b61b
lock inc dword [0x3f04ec98]
cmp byte [0x3f04ec7d], 0
je 0x3f00b65b
push 2
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x28], 0
push 0x14
push eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
call sym.tier0_s.dll_RealGetCallStack
lea eax, [ebp - 0xc8]
push eax
call fcn.3f00a030
add esp, 0x10
mov dword [ebp + 0x1c], eax
inc dword [0x3f04ec80]
mov ebx, dword [0x3f04ecbc]
test ebx, ebx
jne 0x3f00b680
push 0x186a0
mov ecx, 0x3f04ecb4
call fcn.3f00ce80
mov ebx, dword [0x3f04ecbc]
mov edx, dword [ebp + 8]
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, dh
xor ecx, eax
movzx eax, byte [ebp + 0xa]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebp + 0xb]
imul ecx, ecx, 0x1000193
xor ecx, eax
lea eax, [ebp + 8]
imul edi, ecx, 0x1000193
mov ecx, 0x3f04ecb4
push edi
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.3f006b60
mov esi, dword [ebp - 0xc]
test esi, esi
jne 0x3f00b7b2
cmp ebx, 0x9249249
je 0x3f00b8b3
push 0x1c
call fcn.3f01a46b
mov ecx, dword [ebp + 8]
mov esi, eax
lea ebx, [esi + 8]
xor eax, eax
mov dword [ebx], ecx
add esp, 4
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
mov ecx, dword [0x3f04ecbc]
fld dword [0x3f04ecb4]
add ecx, 1
mov dword [ebp - 4], ecx
fild dword [ebp - 4]
jns 0x3f00b71d
fadd dword [0x3f0370a0]
fstp dword [ebp - 4]
fld dword [ebp - 4]
mov eax, dword [0x3f04ecd0]
fild dword [0x3f04ecd0]
test eax, eax
jns 0x3f00b738
fadd dword [0x3f0370a0]
fstp dword [ebp - 4]
fdiv dword [ebp - 4]
fcompi st(1)
fstp st(0)
jbe 0x3f00b76e
push ecx
mov ecx, 0x3f04ecb4
call fcn.3f00c890
push eax
mov ecx, 0x3f04ecb4
call fcn.3f00c920
push edi
push ebx
lea eax, [ebp - 0x18]
mov ecx, 0x3f04ecb4
push eax
call fcn.3f006b60
mov ecx, dword [eax]
jmp 0x3f00b771
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 4]
inc dword [0x3f04ecbc]
mov dword [esi], ecx
mov dword [esi + 4], edx
mov dword [edx], esi
mov dword [ecx + 4], esi
and edi, dword [0x3f04eccc]
mov eax, dword [0x3f04ecc0]
mov ebx, dword [eax + edi*8]
cmp ebx, dword [0x3f04ecb8]
jne 0x3f00b79f
mov dword [eax + edi*8], esi
jmp 0x3f00b7ae
cmp ebx, ecx
jne 0x3f00b7a8
mov dword [eax + edi*8], esi
jmp 0x3f00b7b2
cmp dword [eax + edi*8 + 4], edx
jne 0x3f00b7b2
mov dword [eax + edi*8 + 4], esi
mov eax, dword [ebp - 8]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x18]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0x18], eax
lock dec dword [0x3f04ec98]
cmp dword [0x3f04ec98], 0
jne 0x3f00b7e3
xor eax, eax
mov ecx, 0x3f04ec94
xchg dword [ecx], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x3f04ed20
call fcn.3f01a5dc
add esp, 4
cmp dword [0x3f04ed20], 0xffffffff
jne 0x3f00b5c6
push 0x10
call fcn.3f01a46b
mov esi, eax
push 0x40
mov dword [esi], esi
mov dword [esi + 4], esi
mov dword [0x3f04ecfc], esi
mov dword [0x3f04ed04], 0
mov dword [0x3f04ed08], 0
mov dword [0x3f04ed0c], 0
mov dword [0x3f04ed10], 7
mov dword [0x3f04ed14], 8
mov dword [0x3f04ecf8], 0x3f800000
call fcn.3f01a46b
add esp, 8
mov dword [0x3f04ed04], eax
lea ecx, [eax + 0x40]
mov dword [0x3f04ed08], ecx
mov dword [0x3f04ed0c], ecx
cmp eax, ecx
je 0x3f00b883
jmp 0x3f00b878
mov dword [eax], esi
add eax, 4
cmp eax, ecx
jne 0x3f00b878
jmp 0x3f00b883
push 0x3f035cb0
mov dword [0x3f04ed18], 0
mov dword [0x3f04ed1c], 0
call fcn.3f01aa47
push 0x3f04ed20
call fcn.3f01a592
add esp, 8
jmp 0x3f00b5c6
push 0x3f037068
call fcn.3f01a43e
int3