Function at 0x419340
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43ab65
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x44d014]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x30], esi
cmp dword [ebp + 0x10], 0
jge 0x4193b8
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
push dword [eax + 8]
lea eax, [ebp - 0x1c]
push eax
call fcn.00418bb0
mov dword [ebp - 4], 0
cmp dword [ebp - 0x1c], 0
je 0x4193a5
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
call fcn.00417b00
mov esi, dword [ebp - 0x18]
test esi, esi
je 0x4196b1
or edi, 0xffffffff
jmp 0x419693
mov ebx, dword [ebp + 0xc]
xor al, al
mov byte [ebp - 0x25], al
mov edx, dword [ebx + 0xc]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x18], edx
imul eax, eax, 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
lea ecx, [esi + 0x214]
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0041cb40
mov eax, dword [eax + 4]
test eax, eax
jne 0x419420
mov eax, dword [esi + 0x218]
mov ecx, esi
or edi, 0xffffffff
cmp eax, dword [ecx + 0x218]
je 0x419579
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x34], eax
mov esi, dword [eax]
mov dword [ebp - 0x18], esi
cmp esi, eax
je 0x419579
mov ecx, eax
nop word [eax + eax]
mov eax, dword [esi + 0x10]
mov byte [ebp - 0x2c], 0
mov byte [ebp - 0x26], 1
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
cmp byte [eax + 0xd], 0
jne 0x419557
or esi, 0xffffffff
nop dword [eax]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x41947b
lock inc dword [ecx + 4]
mov ecx, dword [eax + 0x18]
mov edi, dword [eax + 0x1c]
mov ebx, dword [ecx + 0x98]
test ebx, ebx
je 0x419502
mov edx, dword [ebp + 0xc]
mov eax, dword [ecx + 0xc]
cmp eax, dword [edx + 8]
jne 0x419502
mov eax, dword [ebp + 8]
cmp dword [ecx + 0xa8], eax
jne 0x419502
dec ebx
cmp byte [ebp - 0x25], 0
mov dword [ecx + 0x98], ebx
mov edx, ebx
jne 0x4194e8
mov eax, dword [ecx + 0x10]
or eax, dword [ecx + 0x14]
jne 0x4194e8
cmp dword [ecx + 0xa8], 0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
je 0x4194d8
or eax, edx
jne 0x4194d8
mov edx, ebx
jmp 0x4194e4
mov dword [ecx + 0x98], 0
xor edx, edx
mov byte [ebp - 0x25], 1
mov ebx, dword [ebp - 0x2c]
test edx, edx
jne 0x419505
cmp byte [ebp - 0x26], dl
mov eax, 1
movzx ebx, bl
cmovne ebx, eax
mov dword [ebp - 0x2c], ebx
jmp 0x419505
mov ebx, dword [ebp - 0x2c]
mov byte [ebp - 0x26], 0
test edi, edi
je 0x41952c
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x41952c
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x41952c
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
lea ecx, [ebp - 0x20]
call fcn.0040ed50
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0xd], 0
je 0x419470
mov esi, dword [ebp - 0x18]
test bl, bl
je 0x419554
mov ecx, dword [ebp - 0x30]
lea eax, [esi + 0x10]
push eax
call fcn.004187a0
mov ecx, dword [ebp - 0x34]
mov eax, dword [esi]
mov esi, eax
mov dword [ebp - 0x18], eax
cmp eax, ecx
jne 0x419450
cmp byte [ebp - 0x25], 0
jne 0x4196b1
mov ebx, dword [ebp + 0xc]
or edi, 0xffffffff
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebx + 8]
lea ebx, [ecx + 0x114]
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x18], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
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, ebx
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0041cb40
mov edx, dword [eax + 4]
test edx, edx
jne 0x4195d8
mov edx, dword [ebx + 4]
mov eax, dword [ebp - 0x30]
cmp edx, dword [eax + 0x118]
je 0x4196b1
mov eax, dword [edx + 0x10]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
test eax, eax
je 0x4195fa
lock inc dword [eax + 4]
mov ebx, dword [edx + 0xc]
mov esi, dword [edx + 0x10]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], esi
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [ebp - 4], 1
mov dword [ebx + 0xa8], eax
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x14], ecx
sub eax, 1
je 0x41963b
sub eax, 1
jne 0x419675
cmp dword [ebp + 0x10], 0x8760878
jmp 0x419651
mov eax, dword [ebp + 0x10]
cmp eax, 0x87a0001
je 0x419675
cmp eax, 0x87a0008
je 0x419675
cmp eax, 0x87a0005
je 0x419675
mov eax, dword [ebp - 0x30]
cmp byte [eax + 0x22], 0
jne 0x419663
mov eax, 1
jmp 0x41967a
push edx
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [eax + 0x114]
call fcn.0041a340
jmp 0x41968f
mov eax, 2
mov ecx, dword [ebp - 0x30]
mov dword [ebx + 0xb0], eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00418620
mov esi, dword [ebp - 0x18]
test esi, esi
je 0x4196b1
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x4196b1
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x4196b1
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00420eb4
mov esp, ebp
pop ebp
ret 0xc