Function at 0x451f50
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 0xf000
mov edi, ecx
push esi
push 0x1127
push dword [edi + 0x234]
call dword [sym.imp.USER32.dll_SendMessageW]
shr eax, 0xc
and eax, 0xf
cmp eax, 2
je 0x451f8c
cmp eax, 3
je 0x451f8c
xor bl, bl
jmp 0x451f8e
mov bl, 1
cmp byte [edi + 0x2d0], 0
mov byte [esp + 0xc], bl
je 0x4521d1
mov ecx, dword [edi + 0x18c]
mov eax, dword [ecx]
call dword [eax + 0x60]
mov esi, eax
mov dword [esp + 0x20], 4
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
push eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0x113e
push dword [edi + 0x234]
mov dword [esp + 0x20], esi
movlpd qword [esp + 0x38], xmm0
movlpd qword [esp + 0x40], xmm0
movlpd qword [esp + 0x48], xmm0
movlpd qword [esp + 0x50], xmm0
call eax
push dword [esp + 0xc]
xor ecx, ecx
test eax, eax
cmovne ecx, dword [esp + 0x48]
push ecx
mov ecx, esi
call fcn.0049b2e0
mov eax, dword [esi + 8]
xor ebx, ebx
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x4521b8
xor ecx, ecx
mov dword [esp + 0xc], ecx
nop
movzx eax, bl
xor eax, 0x811c9dc5
mov edx, dword [edi + 0x338]
imul ecx, eax, 0x1000193
mov eax, ebx
sar eax, 8
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
sar eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
sar eax, 0x18
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [edi + 0x344]
and ecx, eax
lea eax, [ecx*8]
mov ecx, dword [edx + eax]
add edx, 4
mov esi, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [edi + 0x330]
add eax, edx
mov dword [esp + 0x18], eax
mov edx, esi
nop dword [eax]
cmp edx, ecx
jne 0x452098
mov eax, ecx
jmp 0x45209c
mov eax, dword [eax]
mov eax, dword [eax]
cmp esi, eax
je 0x4520ad
cmp dword [esi + 8], ebx
je 0x4520af
mov esi, dword [esi]
mov eax, dword [esp + 0x18]
jmp 0x452090
mov esi, ecx
cmp esi, ecx
je 0x4521a8
mov edx, dword [esp + 0xc]
test edx, edx
js 0x45227b
mov eax, dword [esp + 0x10]
cmp ebx, dword [eax + 8]
jge 0x45227b
mov eax, dword [eax + 4]
add eax, 0x20
add eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp dword [eax - 0xc], 0
jl 0x45210b
push 0x584904
push eax
call fcn.005223f0
add esp, 8
test eax, eax
je 0x452107
mov ecx, dword [esp + 0x18]
sub eax, dword [ecx]
sar eax, 1
cmp eax, 0xffffffff
jne 0x4521a8
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
cmp ebx, dword [eax + 8]
jge 0x45227b
mov eax, dword [eax + 4]
mov ecx, 0x1000
push 0
push 0xf000
cmp byte [edx + eax + 0x69], 0
mov eax, 0x2000
cmovne ecx, eax
push ecx
push 0
push 0
push 0
push 8
push dword [esi + 0xc]
lea ecx, [edi + 0x234]
call fcn.00452f10
mov eax, dword [esp + 0x10]
cmp ebx, dword [eax + 8]
jge 0x45227b
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0xc]
cmp byte [ecx + eax + 0x69], 0
lea eax, [edi + 0x1ac]
jne 0x452172
lea eax, [edi + 0x1dc]
cmp dword [eax + 0x14], 8
jb 0x45217a
mov eax, dword [eax]
mov ecx, dword [edi + 0x2d8]
sub ecx, dword [edi + 0x2d4]
push eax
mov eax, 0x2aaaaaab
imul ecx
lea ecx, [edi + 0x1f4]
sar edx, 4
mov eax, edx
dec edx
shr eax, 0x1f
add eax, edx
push eax
push dword [esi + 0xc]
call fcn.004545d0
add dword [esp + 0xc], 0x74
inc ebx
cmp ebx, dword [esp + 0x1c]
jl 0x452020
push 1
push 0
push dword [edi + 0x1f8]
call dword [sym.imp.USER32.dll_InvalidateRect]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea eax, [esp + 0x20]
mov dword [esp + 0x24], esi
push eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
xorps xmm0, xmm0
push 0
push 0x113e
push dword [edi + 0x234]
movlpd qword [esp + 0x38], xmm0
movlpd qword [esp + 0x40], xmm0
movlpd qword [esp + 0x48], xmm0
movlpd qword [esp + 0x50], xmm0
mov dword [esp + 0x30], 4
call eax
xor ecx, ecx
test eax, eax
cmovne ecx, dword [esp + 0x44]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x452272
cmp byte [edi + 0x2e4], 0
jne 0x452247
mov byte [edi + 0x2e4], 1
mov edx, dword [edi + 0x190]
mov ecx, dword [edi + 0x18c]
call fcn.00470a00
mov ecx, dword [esp + 0x1c]
movzx eax, bl
add eax, 2
push eax
push ecx
push esi
mov ecx, edi
call fcn.00451690
push esi
push 9
push 0x110b
push dword [edi + 0x234]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, edi
call fcn.00451810
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 1
push 0xc000008c
call fcn.0040f790
int3