Function at 0x45b160
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a9233
mov eax, dword fs:[0]
push eax
sub esp, 0x300
mov eax, dword [0x4c8104]
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 ebx, ecx
mov esi, dword [ebp + 8]
mov dword [ebp - 0x2d8], esi
cmp byte [esi + 4], 4
jne 0x45b27a
push ebx
call fcn.00477850
mov edi, dword [esi + 0x18]
add esp, 4
add esi, 8
cmp dword [esi + 0x14], 8
jb 0x45b1ba
mov esi, dword [esi]
xor edx, edx
xor ecx, ecx
test edi, edi
je 0x45b1d8
movzx eax, word [esi + ecx*2]
ror edx, 3
cmp eax, 0x61
jb 0x45b1d1
sub eax, 0x20
inc ecx
add edx, eax
cmp ecx, edi
jb 0x45b1c2
movzx eax, dl
xor eax, 0x811c9dc5
mov esi, dword [ebx + 0x84]
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [ebx + 0x98]
and ecx, eax
mov eax, dword [ebx + 0x8c]
mov edi, dword [eax + ecx*8]
lea ecx, [ecx*8 + 4]
mov eax, edi
mov dword [ebp - 0x18], ecx
cmp edi, esi
jne 0x45b23e
mov ecx, esi
jmp 0x45b252
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebx + 0x8c]
mov ecx, dword [esi + ecx]
mov esi, dword [ebx + 0x84]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x45b271
cmp dword [eax + 8], edx
je 0x45b25f
mov eax, dword [eax]
jmp 0x45b236
cmp eax, esi
je 0x45b271
push ebx
call fcn.00477870
add esp, 4
jmp 0x45b69b
push ebx
call fcn.00477870
add esp, 4
mov byte [ebp - 0x18], 0
lea ecx, [ebp - 0x30c]
push dword [ebp - 0x18]
call fcn.0045e4a0
add esp, 4
push 0x4c8240
lea ecx, [ebp - 0x2f4]
mov dword [ebp - 4], 0
call fcn.004512d0
lea eax, [ebp - 0x30c]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x2f4]
call fcn.00458630
push eax
lea ecx, [ebp - 0x68]
call fcn.004512d0
lea ecx, [ebp - 0x2f4]
call fcn.00436170
lea ecx, [ebp - 0x30c]
mov byte [ebp - 4], 3
call fcn.00436170
push 0xb8
lea eax, [ebp - 0x174]
push 0
push eax
call sub.msvcrt.dll_memset
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x174]
call fcn.0045d7a0
mov byte [ebp - 4], 4
cmp dword [ebp - 0x118], 0
je 0x45b61d
push 0xb0
lea eax, [ebp - 0x2d4]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 4
lea ecx, [ebp - 0x2d4]
call fcn.0045cd60
lea eax, [ebp - 0x164]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x2c4]
call fcn.0045ce50
lea ecx, [ebp - 0x174]
call fcn.0045cc30
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x2d4]
call fcn.0045cca0
mov byte [ebp - 4], 6
lea edx, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
lea ecx, [ebp - 0x20]
push dword [ebp - 0x40]
cmovae edx, dword [ebp - 0x50]
mov dword [ebp - 0x20], 0
call fcn.00458ca0
add esp, 4
mov byte [ebp - 4], 7
xor ecx, ecx
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
mov edi, dword [ebx + 4]
mov esi, dword [edi]
mov dword [ebp - 0x18], esi
cmp esi, edi
je 0x45b43d
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x2dc], eax
nop
mov eax, dword [esi + 0x10]
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0xbc], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0xb8], eax
movzx eax, byte [esi + 0x18]
mov byte [ebp - 0xb4], al
movzx eax, byte [esi + 0x19]
mov byte [ebp - 0xb3], al
lea eax, [esi + 0x1c]
push eax
call fcn.004512d0
lea eax, [esi + 0x34]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x98]
call fcn.004512d0
lea eax, [esi + 0x4c]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x80]
call fcn.0040d440
movzx eax, byte [esi + 0x58]
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 7
mov byte [ebp - 0x74], al
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x1c], eax
call fcn.0043a9c0
lea ecx, [ebp - 0x18]
call fcn.004313d0
mov esi, dword [ebp - 0x18]
cmp esi, edi
jne 0x45b3b0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2d8]
inc ecx
push eax
push ecx
mov dword [ebp - 0x1c], ecx
mov dword [eax], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebx + 4]
call fcn.0045cbb0
add esp, 4
mov ecx, eax
call fcn.00459150
mov esi, dword [ebp - 0x20]
lea eax, [ebp - 0x38]
push eax
mov ecx, esi
call fcn.00458ee0
push 0xb0
lea eax, [ebp - 0x224]
mov byte [ebp - 4], 0xa
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 4
lea eax, [ebp - 0x68]
lea ecx, [ebp - 0x224]
push 0x22
push eax
call fcn.00455510
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x38]
cmp dword [ebp - 0x24], 0x10
lea ecx, [ebp - 0x224]
push 0
push dword [ebp - 0x28]
cmovae eax, dword [ebp - 0x38]
push eax
call fcn.004570f0
lea ecx, [ebp - 0x224]
call fcn.00454000
mov eax, dword [ebp - 0x224]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x224], 0x4b54b4
mov eax, dword [ebp - 0x224]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x228], eax
lea ecx, [ebp - 0x220]
call fcn.00454d10
mov eax, dword [ebp - 0x224]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x224], 0x4b4378
mov eax, dword [ebp - 0x224]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0x228], eax
lea eax, [ebp - 0x1bc]
mov byte [ebp - 4], 0xc
push eax
mov dword [ebp - 0x1bc], 0x4b4380
call fcn.00477a40
mov byte [ebp - 4], 7
add esp, 4
mov edx, dword [ebp - 0x24]
cmp edx, 0x10
jb 0x45b573
mov ecx, dword [ebp - 0x38]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45b569
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45b6b9
push edx
push ecx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 8
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
test esi, esi
je 0x45b5c8
mov edi, dword [ebx + 4]
mov byte [ebp - 4], 0xd
lea ecx, [ebx + 4]
push dword [edi + 4]
call fcn.004554c0
mov eax, dword [ebx + 4]
push 0x5c
mov dword [eax + 4], edi
mov eax, dword [ebx + 4]
mov dword [eax], edi
mov eax, dword [ebx + 4]
mov dword [eax + 8], edi
mov dword [ebx + 8], 0
push dword [ebx + 4]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push 0xc
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 0x10
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x3c]
cmp edx, 0x10
jb 0x45b600
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45b5f6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45b6be
push edx
push ecx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 8
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
call fcn.0045a670
mov eax, dword [ebp - 0x174]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x174], 0x4b571c
mov eax, dword [ebp - 0x174]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x178], eax
lea ecx, [ebp - 0x164]
call fcn.00454d10
mov eax, dword [ebp - 0x174]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x174], 0x4b42e8
mov eax, dword [ebp - 0x174]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0x178], eax
lea eax, [ebp - 0x104]
mov byte [ebp - 4], 0xe
push eax
mov dword [ebp - 0x104], 0x4b4380
call fcn.00477a40
add esp, 4
lea ecx, [ebp - 0x68]
call fcn.00436170
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.0049f3c4
mov esp, ebp
pop ebp
ret 4
call fcn.004980a0
call fcn.004980a0
int3