Function at 0x53a120
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
push ebx
push esi
push edi
mov ebx, ecx
push 0x7484b8
mov dword [ebp - 8], ebx
call fcn.005adc82
add esp, 4
test eax, eax
jne 0x53a36a
cmp dword [0x7484e4], 0x7fffffff
je 0x53a371
mov eax, dword [ebx + 0x14]
lea edi, [ebx + 0x14]
push 0xc
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x3c], 0
call fcn.005ab82c
mov edx, eax
add esp, 4
mov dword [edx], edx
mov dword [edx + 4], edx
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x28], eax
mov eax, dword [edi + 0x10]
sub eax, dword [edi + 0xc]
push edx
sar eax, 2
mov dword [ebp - 0x2c], ecx
lea ecx, [ebp - 0x38]
push eax
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
call fcn.004299f0
mov eax, dword [edi + 4]
lea ecx, [ebp - 0x44]
push eax
push dword [eax]
call fcn.0053a6c0
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0xc], esi
mov eax, dword [ebp - 0xc]
mov esi, dword [esi]
cmp esi, eax
je 0x53a305
nop
mov ebx, dword [esi + 8]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], ebx
cmp byte [ebx + 0x54], 0
je 0x53a365
mov eax, ebx
mov byte [ebx + 0x54], 0
shr eax, 8
movzx ecx, al
movzx eax, bl
xor eax, 0x811c9dc5
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, edi
push eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.004301e0
mov edx, dword [eax + 4]
test edx, edx
je 0x53a288
mov ecx, dword [edi + 0x18]
and ecx, dword [ebp - 0x18]
mov eax, dword [edi + 0xc]
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp dword [ecx + 4], edx
jne 0x53a265
cmp eax, edx
jne 0x53a25d
mov eax, dword [edi + 4]
mov dword [ecx], eax
mov dword [ecx + 4], eax
jmp 0x53a26d
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
jmp 0x53a26d
cmp eax, edx
jne 0x53a26d
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [edx]
dec dword [edi + 8]
mov eax, dword [edx + 4]
push 0xc
push edx
mov dword [eax], ecx
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
call fcn.005ab85c
add esp, 8
cmp dword [ebx + 0x50], 0
jne 0x53a2f5
mov ecx, ebx
call fcn.00539080
mov eax, dword [ebp - 8]
push ebx
mov edi, dword [eax + 0xc]
push edi
push dword [eax + 8]
mov dword [ebp - 0x18], edi
call fcn.005aedc0
mov ebx, eax
cmp ebx, edi
je 0x53a2f2
lea ecx, [ebx + 4]
cmp ecx, edi
je 0x53a2ca
mov edx, dword [ebp - 0x1c]
mov eax, dword [ecx]
cmp eax, edx
je 0x53a2c3
mov dword [ebx], eax
add ebx, 4
add ecx, 4
cmp ecx, edi
jne 0x53a2b8
cmp ebx, edi
je 0x53a2f2
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
mov edi, dword [edi + 0xc]
sub edi, eax
push edi
push eax
push ebx
call fcn.005c3580
lea eax, [edi + ebx]
add esp, 0xc
mov ebx, dword [ebp - 8]
mov edi, dword [ebp - 0x10]
mov dword [ebx + 0xc], eax
jmp 0x53a2f8
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov esi, dword [esi]
cmp esi, eax
jne 0x53a1d0
cmp byte [ebx + 4], 0
je 0x53a347
mov edi, dword [ebx + 0x18]
mov esi, dword [edi]
cmp esi, edi
je 0x53a347
mov ebx, dword [ebp + 8]
nop word [eax + eax]
mov ecx, dword [esi + 8]
lea edx, [ebp + 8]
mov dword [ebp + 8], 0
mov byte [ecx + 0x54], 1
call fcn.005391b0
lea eax, [ebp + 8]
mov ecx, ebx
push eax
call fcn.00443110
mov esi, dword [esi]
cmp esi, edi
jne 0x53a320
lea ecx, [ebp - 0x44]
call fcn.00435d60
push 0x7484b8
call fcn.005adcb4
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ebx, dword [ebp - 8]
jmp 0x53a2fb
push 5
call fcn.005adc4d
push 6
mov dword [0x7484e4], 0x7ffffffe
call fcn.005adc4d
int3