Function at 0x438dc0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xfc
mov eax, dword [0x4b7180]
xor eax, esp
mov dword [esp + 0xf8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov esi, dword [eax]
lea eax, [ecx + 0xc8]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x438f5c
lea edi, [ecx + 0xc4]
mov dword [esp + 0x14], edi
nop word [eax + eax]
mov ebx, dword [esi + 0x10]
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [esp + 0x1c], ebx
imul ecx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, edi
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.00418a70
mov eax, dword [eax + 4]
test eax, eax
jne 0x438e6e
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x18]
cmp eax, dword [ecx]
je 0x438f08
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x28]
push ebx
push ecx
lea ecx, [eax + 0x88]
call fcn.004367c0
mov edx, dword [esp + 0x38]
add edx, 0xfffffff0
mov edi, dword [eax]
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x438ead
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x34]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x438ec9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x30]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x438ee5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test edi, 0x100
jne 0x438f04
mov ecx, dword [esp + 0x10]
or edi, 0x100
push edi
push ebx
lea ecx, [ecx + 0x88]
call fcn.00444fc0
mov edi, dword [esp + 0x14]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x438f34
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x438f30
nop word [eax + eax]
cmp esi, dword [eax + 8]
jne 0x438f30
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x438f20
mov esi, eax
jmp 0x438f4c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x438f4c
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x438f40
cmp byte [esi + 0xd], 0
je 0x438e10
mov ecx, dword [esp + 0x10]
jmp 0x438f60
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x4390c6
lea edi, [ecx + 0xc4]
mov dword [esp + 0x14], edi
nop dword [eax + eax]
mov ebx, dword [esi + 0x10]
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [esp + 0x1c], ebx
imul ecx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, edi
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.00418a70
mov eax, dword [eax + 4]
test eax, eax
jne 0x438fde
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x18]
cmp eax, dword [ecx]
je 0x439078
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x28]
push ebx
push ecx
lea ecx, [eax + 0x88]
call fcn.004367c0
mov edx, dword [esp + 0x38]
add edx, 0xfffffff0
mov edi, dword [eax]
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43901d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x34]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x439039
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x30]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x439055
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test edi, 0x100
je 0x439074
mov ecx, dword [esp + 0x10]
xor edi, 0x100
push edi
push ebx
lea ecx, [ecx + 0x88]
call fcn.00444fc0
mov edi, dword [esp + 0x14]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x4390a4
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x4390a0
nop word [eax + eax]
cmp esi, dword [eax + 8]
jne 0x4390a0
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x439090
mov esi, eax
jmp 0x4390bc
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x4390bc
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x4390b0
cmp byte [esi + 0xd], 0
je 0x438f80
mov ecx, dword [esp + 0x104]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0046de4a
mov esp, ebp
pop ebp
ret 8