Function at 0x536e00
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7065ee
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x134
push ebx
mov eax, ecx
mov byte [ebp - 0x24], 0
push esi
push edi
mov dword [ebp - 0x44], eax
lea edi, [eax + 0x40]
mov dword [ebp - 0x28], edi
test edi, edi
je 0x537673
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0xffffffff
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x10], bind
push eax
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x18], 0xffffffff
call fcn.004fe4d0
lea eax, [ebp - 0x50]
mov ecx, edi
push eax
call fcn.0052e370
mov byte [ebp - 0x24], 1
mov eax, dword [ebp + 0x14]
sub esp, 8
mov dword [ebp - 4], 2
mov ecx, esp
cmp dword [eax + 0x14], 0x10
mov edx, dword [eax + 0x10]
jb 0x536e86
mov eax, dword [eax]
mov dword [ecx], eax
lea eax, [ebp - 0x140]
push eax
mov dword [ecx + 4], edx
call fcn.004be6e0
add esp, 0xc
lea eax, [ebp - 0x128]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x8c]
call fcn.00470690
lea eax, [ebp - 0x110]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x68]
call fcn.00470690
mov ebx, dword [ebp + 0xc]
movzx eax, bl
xor eax, 0x811c9dc5
mov esi, dword [ebp - 0x44]
imul ecx, eax, 0x1000193
movzx eax, bh
mov byte [ebp - 4], 5
xor ecx, eax
movzx eax, byte [ebp + 0xe]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebp + 0xf]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, esi
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004bf2f0
mov eax, dword [eax + 4]
test eax, eax
jne 0x536f18
mov eax, dword [esi + 4]
cmp eax, dword [esi + 4]
je 0x5374e4
xor edi, edi
mov dword [ebp + 0x14], 0xffffffff
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], edi
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 6
mov dword [ebp - 0x48], ecx
cmp eax, ecx
je 0x5374e1
mov esi, dword [eax]
mov ecx, esi
mov ebx, dword [ebp + 0x10]
push ebx
call fcn.00475f40
push eax
push ebx
lea eax, [ebp - 0xc0]
mov ecx, esi
push eax
call fcn.00496740
mov eax, dword [eax + 4]
test eax, eax
jne 0x536f76
mov eax, dword [esi + 4]
cmp eax, dword [esi + 4]
je 0x537186
lea ebx, [eax + 0x20]
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x18], ebx
push eax
lea eax, [ebp - 0xac]
mov ecx, ebx
push eax
call fcn.004bcc10
mov esi, dword [ebp - 0xa4]
lea eax, [ebp - 0x8c]
push eax
push esi
mov ecx, ebx
call fcn.00534d80
test al, al
jne 0x536fb5
mov esi, dword [ebx]
cmp esi, dword [ebx]
je 0x537072
mov eax, dword [esi + 0x2c]
mov ebx, dword [esi + 0x28]
mov dword [ebp - 0x20], eax
cmp ebx, eax
je 0x53706f
lea esi, [ebx + 0x1c]
mov edx, dword [esi - 0xc]
sub esp, 8
cmp dword [esi - 8], 0x10
mov ecx, esp
mov eax, ebx
jb 0x536fe3
mov eax, dword [ebx]
mov dword [ecx], eax
sub esp, 8
mov dword [ecx + 4], edx
lea eax, [ebp - 0x68]
cmp dword [ebp - 0x54], 0x10
mov edx, esp
mov ecx, dword [ebp - 0x58]
cmovae eax, dword [ebp - 0x68]
mov dword [edx], eax
mov dword [edx + 4], ecx
call fcn.0052cd00
add esp, 0x10
test al, al
jne 0x53736d
cmp dword [esi - 0xc], 0
jne 0x537060
cmp dword [ebp + 0x14], 6
jge 0x537060
mov eax, dword [esi]
mov dword [ebp + 0x14], 6
test eax, eax
je 0x53702f
lock inc dword [eax + 4]
mov eax, dword [esi]
mov ecx, dword [esi - 4]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], eax
test edi, edi
je 0x53705d
or eax, 0xffffffff
lock xadd dword [edi + 4], eax
jne 0x53705d
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [edi + 8], eax
jne 0x53705d
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov edi, dword [ebp - 0x10]
add ebx, 0x20
add esi, 0x20
cmp ebx, dword [ebp - 0x20]
jne 0x536fd1
mov ebx, dword [ebp - 0x18]
push 0
push 0x71376a
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
call fcn.00473620
lea eax, [ebp - 0x40]
mov ecx, ebx
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.004bcc10
mov ebx, dword [ebp - 0xb0]
mov esi, dword [ebp - 0x40]
cmp byte [ebx + 0xd], 0
jne 0x5370e1
cmp dword [ebx + 0x24], 0x10
lea ecx, [ebx + 0x10]
mov edx, dword [ecx + 0x10]
jb 0x5370c5
mov ecx, dword [ecx]
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push edx
push ecx
push dword [ebp - 0x30]
cmovae eax, esi
push eax
call fcn.00476ab0
add esp, 0x10
test eax, eax
jns 0x5370e6
mov ebx, dword [ebp - 0x18]
mov ebx, dword [ebx]
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x537119
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x53710f
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x537692
push ecx
push esi
call fcn.004e7fa0
add esp, 8
mov eax, dword [ebp - 0x18]
cmp ebx, dword [eax]
je 0x537186
cmp dword [ebp + 0x14], 4
jge 0x5372ea
mov dword [ebp + 0x14], 4
mov ecx, dword [ebx + 0x28]
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x537142
lock inc dword [eax + 4]
mov eax, dword [ecx + 0x1c]
mov ecx, dword [ecx + 0x18]
mov esi, edi
mov edi, eax
mov dword [ebp - 0x14], ecx
or ebx, 0xffffffff
mov dword [ebp - 0x10], edi
test esi, esi
je 0x5372f0
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x5372f0
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x5372ed
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x5372ed
mov ebx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x40]
push 0
push 0x71376a
mov dword [ebp - 0x40], 0
mov ebx, dword [ebx]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
call fcn.00473620
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push dword [ebp - 0x30]
mov esi, dword [ebp - 0x40]
cmovae eax, esi
push eax
push 0x811c9dc5
call fcn.00481670
add esp, 0xc
mov ecx, ebx
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xc8]
push eax
call fcn.00496740
mov ebx, dword [eax + 4]
test ebx, ebx
jne 0x5371f0
mov ebx, dword [ebp - 0x20]
mov ebx, dword [ebx + 4]
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x537223
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x537219
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x537692
push ecx
push esi
call fcn.004e7fa0
add esp, 8
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
cmp ebx, dword [eax + 4]
je 0x5372ea
push 0
add ebx, 0x20
mov dword [ebp - 0x40], 0
push 0x71376a
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
call fcn.00473620
lea eax, [ebp - 0x40]
mov ecx, ebx
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.004bcc10
mov ebx, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x40]
cmp byte [ebx + 0xd], 0
jne 0x5372a0
cmp dword [ebx + 0x24], 0x10
lea ecx, [ebx + 0x10]
mov edx, dword [ecx + 0x10]
jb 0x537284
mov ecx, dword [ecx]
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push edx
push ecx
push dword [ebp - 0x30]
cmovae eax, esi
push eax
call fcn.00476ab0
add esp, 0x10
test eax, eax
jns 0x5372a5
mov ebx, dword [ebp - 0x20]
mov ebx, dword [ebx]
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x5372d8
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x5372ce
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x537692
push ecx
push esi
call fcn.004e7fa0
add esp, 8
cmp dword [ebp + 0x14], 0
jge 0x5372ea
mov dword [ebp + 0x14], 0
jmp 0x537131
or ebx, 0xffffffff
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add eax, 8
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x48]
jne 0x536f4f
test ecx, ecx
je 0x5374bc
mov ebx, dword [ebp + 8]
mov dword [ebx], ecx
lea ecx, [ebp - 0x68]
mov dword [ebx + 4], edi
call fcn.004716c0
lea ecx, [ebp - 0x8c]
call fcn.004716c0
lea ecx, [ebp - 0x140]
call fcn.004b14e0
mov edi, dword [ebp - 0x28]
mov edx, dword [edi]
lea ecx, [edx - 1]
xor ecx, edx
and ecx, 0x7ff
xor ecx, edx
mov esi, ecx
and esi, 0x7ff
jne 0x537491
test ecx, 0x800000
je 0x537473
and ecx, 0xff7fffff
or ecx, 0x400000
jmp 0x537491
mov ecx, dword [ebp + 8]
mov edx, dword [ebx + 0x1c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
test edx, edx
je 0x53738b
lock inc dword [edx + 4]
mov edx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
test edi, edi
je 0x5373b8
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [edi + 4], eax
jne 0x5373b8
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], ebx
dec ebx
jne 0x5373b8
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
lea ecx, [ebp - 0x68]
call fcn.004716c0
lea ecx, [ebp - 0x8c]
call fcn.004716c0
lea ecx, [ebp - 0x140]
call fcn.004b14e0
mov edi, dword [ebp - 0x28]
mov edx, dword [edi]
nop dword [eax + eax]
lea ecx, [edx - 1]
xor ecx, edx
and ecx, 0x7ff
xor ecx, edx
mov esi, ecx
and esi, 0x7ff
jne 0x53742b
test ecx, 0x800000
je 0x53740d
and ecx, 0xff7fffff
or ecx, 0x400000
jmp 0x53742b
mov eax, ecx
shr eax, 0x18
test al, 0x7f
je 0x537425
dec eax
and ecx, 0xffffff
and eax, 0x7f
shl eax, 0x18
or ecx, eax
and ecx, 0xffc007ff
mov eax, edx
lock cmpxchg dword [edi], ecx
cmp eax, edx
je 0x537439
mov edx, eax
jmp 0x5373e0
test esi, esi
jne 0x537451
test edx, 0x800000
je 0x537469
push esi
push 1
push dword [edi + 0xc]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov eax, ebx
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push edx
mov ecx, edi
call fcn.0052d390
jmp 0x537451
mov eax, ecx
shr eax, 0x18
test al, 0x7f
je 0x53748b
dec eax
and ecx, 0xffffff
and eax, 0x7f
shl eax, 0x18
or ecx, eax
and ecx, 0xffc007ff
mov eax, edx
lock cmpxchg dword [edi], ecx
cmp eax, edx
je 0x5374a2
mov edx, eax
jmp 0x537335
test esi, esi
jne 0x537454
test edx, 0x800000
jne 0x537661
push edx
mov ecx, edi
call fcn.0052d390
jmp 0x537454
test edi, edi
je 0x5374de
mov eax, ebx
lock xadd dword [edi + 4], eax
jne 0x5374de
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], ebx
dec ebx
jne 0x5374de
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x44]
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x74]
push eax
lea ecx, [esi + 0x20]
call fcn.004ce7c0
mov eax, dword [ebp - 0x6c]
cmp byte [eax + 0xd], 0
jne 0x5375bd
cmp ebx, dword [eax + 0x10]
jl 0x5375bd
cmp eax, dword [esi + 0x20]
je 0x5375bd
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x18]
mov dword [ecx], 0
mov dword [ecx + 4], 0
test edx, edx
je 0x537534
lock inc dword [edx + 4]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
mov dword [ecx], eax
mov dword [ecx + 4], edx
lea ecx, [ebp - 0x68]
call fcn.004716c0
lea ecx, [ebp - 0x8c]
call fcn.004716c0
lea ecx, [ebp - 0x140]
call fcn.004b14e0
mov edx, dword [edi]
nop dword [eax]
lea ecx, [edx - 1]
xor ecx, edx
and ecx, 0x7ff
xor ecx, edx
mov esi, ecx
and esi, 0x7ff
jne 0x5375ab
test ecx, 0x800000
je 0x53758d
and ecx, 0xff7fffff
or ecx, 0x400000
jmp 0x5375ab
mov eax, ecx
shr eax, 0x18
test al, 0x7f
je 0x5375a5
dec eax
and ecx, 0xffffff
and eax, 0x7f
shl eax, 0x18
or ecx, eax
and ecx, 0xffc007ff
mov eax, edx
lock cmpxchg dword [edi], ecx
cmp eax, edx
je 0x537439
mov edx, eax
jmp 0x537560
mov ebx, dword [ebp + 8]
lea ecx, [ebp - 0x68]
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx], 0
mov dword [ebx + 4], 0
call fcn.004716c0
lea ecx, [ebp - 0x8c]
call fcn.004716c0
lea ecx, [ebp - 0x140]
call fcn.004b14e0
mov edx, dword [edi]
lea ecx, [edx - 1]
xor ecx, edx
and ecx, 0x7ff
xor ecx, edx
mov esi, ecx
and esi, 0x7ff
jne 0x53763f
test ecx, 0x800000
je 0x537621
and ecx, 0xff7fffff
or ecx, 0x400000
jmp 0x53763f
mov eax, ecx
shr eax, 0x18
test al, 0x7f
je 0x537639
dec eax
and ecx, 0xffffff
and eax, 0x7f
shl eax, 0x18
or ecx, eax
and ecx, 0xffc007ff
mov eax, edx
lock cmpxchg dword [edi], ecx
cmp eax, edx
je 0x53764d
mov edx, eax
jmp 0x5375f4
test esi, esi
jne 0x537454
test edx, 0x800000
je 0x5374b2
push 0
push 1
push dword [edi + 0xc]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
jmp 0x537454
push str.boost_shared_lock_has_no_mutex
push 1
lea ecx, [ebp - 0xa0]
call fcn.004feeb0
push eax
mov dword [ebp - 4], 0
call fcn.004fe150
call fcn.006cc674
int3