Function at 0x45a5a0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov esi, dword [esp + 0x38]
mov edx, dword [0x5cf980]
mov eax, dword [0x5cf984]
lea ecx, [edx + 1]
imul ecx, edx
not ecx
or ecx, 0xfffffffe
sub esi, dword [esp + 0x34]
mov dword [esp + 4], esi
mov edx, dword [0x5cf988]
lea esi, [edx + 1]
imul esi, edx
mov edx, esi
xor edx, 0xfffffffe
test edx, esi
setne dl
sete dh
cmp dword [0x5cf98c], 0xa
setge bl
setl bh
xor bh, dh
or bl, dl
xor bl, 1
or bl, bh
mov edx, 0x76e50c41
mov esi, 0xeccb9f34
cmove edx, esi
mov dword [esp + 8], edx
mov edx, 0x2f90123a
cmove edx, esi
cmp ecx, 0xffffffff
sete byte [esp + 2]
mov ecx, 0x276ab71e
mov esi, 0xe6a83021
cmove esi, ecx
sete bl
cmp eax, 0xa
mov eax, 0xe6a83021
cmovge esi, eax
setl byte [esp + 3]
setl al
xor al, bl
cmovne esi, ecx
mov dword [esp + 0x10], esi
mov eax, 0xfd3e5ba3
nop word [eax + eax]
cmp eax, 0xfd3e5ba2
jg 0x45a790
cmp eax, 0xd39e94cd
je 0x45a7d2
cmp eax, 0xe6a83021
jne 0x45a650
mov esi, 0xd48bab83
xor edi, edi
mov ebp, 0x811c9dc5
jmp 0x45a690
inc edi
mov ebx, eax
mov esi, 0xd48bab83
nop word cs:[eax + eax]
mov ecx, esi
mov eax, ebx
cmp esi, 0x1cc2cfe
jg 0x45a6e0
cmp ecx, 0xdc7f496c
jg 0x45a710
mov ebx, eax
mov esi, edx
cmp ecx, 0x81082fa9
je 0x45a690
mov ebx, eax
mov esi, ecx
cmp ecx, 0xd48bab83
jne 0x45a690
cmp edi, dword [esp + 4]
mov esi, 0x245a91f1
mov ecx, 0x1cc2cff
cmovb esi, ecx
mov ebx, eax
jmp 0x45a690
cmp ecx, 0x2f901239
jg 0x45a738
cmp ecx, 0x1cc2cff
je 0x45a75f
mov ebx, eax
mov esi, ecx
cmp ecx, 0x245a91f1
jne 0x45a690
mov esi, 0x81082fa9
mov ebx, eax
jmp 0x45a690
cmp ecx, 0xdc7f496d
je 0x45a67b
mov ebx, eax
mov esi, ecx
cmp ecx, 0xeccb9f34
jne 0x45a690
mov esi, 0x2f90123a
mov ebx, eax
jmp 0x45a690
mov ebx, ebp
mov esi, dword [esp + 8]
cmp ecx, 0x2f90123a
je 0x45a690
mov ebx, eax
mov esi, ecx
cmp ecx, 0x76e50c41
jne 0x45a690
jmp 0x45a8f9
mov ecx, dword [esp + 0x34]
movzx ecx, byte [ecx + edi]
andn esi, ebp, ecx
andn ecx, ecx, ebp
or ecx, esi
imul ebp, ecx, 0x1000193
mov esi, 0xdc7f496d
mov ebx, eax
jmp 0x45a690
cmp eax, 0x276ab71e
je 0x45a920
cmp eax, 0xfd3e5ba3
jne 0x45a650
movzx ecx, byte [esp + 2]
movzx eax, byte [esp + 3]
mov ah, cl
xor ah, al
mov esi, 0xe6a83021
mov edi, 0xd39e94cd
cmovne esi, edi
test al, al
mov eax, esi
cmovne eax, edi
test cl, cl
cmove eax, esi
jmp 0x45a650
mov esi, 0xd48bab83
xor ebp, ebp
mov edi, 0x811c9dc5
jmp 0x45a7f0
inc ebp
mov eax, ebx
mov esi, 0xd48bab83
nop dword [eax + eax]
mov ecx, esi
mov ebx, eax
cmp esi, 0x1cc2cfe
jg 0x45a840
cmp ecx, 0xdc7f496c
jg 0x45a870
mov eax, ebx
mov esi, edx
cmp ecx, 0x81082fa9
je 0x45a7f0
mov eax, ebx
mov esi, ecx
cmp ecx, 0xd48bab83
jne 0x45a7f0
cmp ebp, dword [esp + 4]
mov esi, 0x245a91f1
mov eax, 0x1cc2cff
cmovb esi, eax
mov eax, ebx
jmp 0x45a7f0
cmp ecx, 0x2f901239
jg 0x45a898
cmp ecx, 0x1cc2cff
je 0x45a8bc
mov eax, ebx
mov esi, ecx
cmp ecx, 0x245a91f1
jne 0x45a7f0
mov esi, 0x81082fa9
mov eax, ebx
jmp 0x45a7f0
cmp ecx, 0xdc7f496d
je 0x45a7e0
mov eax, ebx
mov esi, ecx
cmp ecx, 0xeccb9f34
jne 0x45a7f0
mov esi, 0x2f90123a
mov eax, ebx
jmp 0x45a7f0
mov eax, edi
mov esi, dword [esp + 8]
cmp ecx, 0x2f90123a
je 0x45a7f0
mov eax, ebx
mov esi, ecx
cmp ecx, 0x76e50c41
jne 0x45a7f0
jmp 0x45a90b
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + ebp]
mov ecx, edi
not ecx
and ecx, 0xf9bce2b0
and edi, 0x6431d4f
or edi, ecx
mov ecx, eax
not ecx
and ecx, 0xf9bce2b0
and eax, 0x4f
or eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
mov esi, 0xdc7f496d
mov eax, ebx
jmp 0x45a7f0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov eax, 0xd39e94cd
jmp 0x45a650
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
jmp 0x45a650
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret 8