Function at 0x4b9820
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov eax, dword [0x5b706c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
cmp dword [edi + 0xf0], 1
je 0x4b9a43
mov ebx, dword [edi + 0x160]
mov eax, ebx
shr eax, 8
movzx ecx, al
mov edx, dword [0x5bf080]
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [ebp - 0x20], ebx
imul eax, eax, 0x1000193
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, dword [edx + 0x5c]
mov edx, dword [edx + 0x50]
and ecx, eax
mov eax, dword [edx + ecx*8]
add ecx, ecx
mov esi, dword [edx + ecx*4]
add edx, 4
mov dword [ebp - 0x28], esi
mov esi, dword [0x5bf080]
lea ecx, [edx + ecx*4]
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
mov esi, dword [esi + 0x48]
cmp edx, esi
jne 0x4b98bf
mov dword [ebp - 0x3c], esi
mov ecx, esi
jmp 0x4b98c6
mov ecx, dword [ecx]
mov ecx, dword [ecx]
mov dword [ebp - 0x3c], ecx
cmp eax, ecx
je 0x4b98db
cmp dword [eax + 8], ebx
je 0x4b98d6
mov eax, dword [eax]
mov ecx, dword [ebp - 0x24]
jmp 0x4b98b4
mov dword [ebp - 0x44], eax
jmp 0x4b98dd
mov eax, esi
mov ecx, dword [0x5bf080]
mov ecx, dword [ecx + 0x48]
mov dword [ebp - 0x48], ecx
cmp ecx, eax
je 0x4b98ff
mov cl, byte [eax + 0xc]
mov byte [eax + 0xc], 0
test cl, cl
je 0x4b98ff
mov ecx, edi
call fcn.004b9a60
push ecx
mov dword [edi + 0xf0], 1
mov ecx, edi
mov dword [edi + 0xec], 0
mov eax, dword [edi + 0x140]
push edi
mov dword [edi + 0x144], eax
call fcn.004bbe10
xor eax, eax
lea ecx, [edi + 0xf4]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 8], eax
mov eax, dword [edi + 0x50]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [edi + 0x54]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x18], eax
mov eax, dword [edi + 0x58]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c]
cmp eax, ecx
je 0x4b9978
mov eax, dword [ecx]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x18], eax
mov eax, dword [edi + 0x9c]
mov esi, dword [edi + 0x98]
mov dword [ebp - 0x40], eax
cmp esi, eax
je 0x4b9a30
nop
mov ebx, dword [esi]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebx + 0x50]
add edx, dword [ebx + 0x58]
mov eax, dword [ebx + 0x54]
add eax, dword [ebx + 0x5c]
cmp ecx, edx
cmovl ecx, edx
mov edx, dword [ebp - 0x2c]
cmp edx, eax
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x38]
cmovl edx, eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], edx
add eax, ecx
mov dword [ebp - 8], edx
mov edx, dword [ebx + 0x50]
cmp eax, edx
jl 0x4b9a16
mov eax, dword [ebx + 0x58]
add eax, edx
cmp eax, ecx
jl 0x4b9a16
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
add eax, ecx
mov edx, dword [ebx + 0x54]
cmp eax, edx
jl 0x4b9a16
mov eax, dword [ebx + 0x5c]
add eax, edx
cmp eax, ecx
jl 0x4b9a16
push edi
mov ecx, ebx
call fcn.004c57e0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x38], eax
mov eax, dword [edi + 0x9c]
add esi, 4
mov dword [ebp - 0x40], eax
cmp esi, eax
jne 0x4b9990
lea ecx, [edi + 0xf4]
lea eax, [ebp - 0xc]
push eax
call fcn.004bcb10
mov dword [edi + 0xf0], 0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0051e9d8
mov esp, ebp
pop ebp
ret