Function at 0x451120
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov eax, dword [0x54c03c]
movsd xmm0, qword [0x4fe240]
mov esi, ecx
xor eax, ebp
mov dword [ebp - 0x10], eax
movss xmm1, dword [ecx + 8]
movss xmm2, dword [ecx + 0x1c]
orpd xmm1, xmm0
orpd xmm2, xmm0
subsd xmm1, xmm0
subsd xmm2, xmm0
cvtsd2ss xmm1, xmm1
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm2
divss xmm1, xmm0
ucomiss xmm1, dword [ecx]
jbe 0x451109
mov ebx, dword [esi + 0x1c]
mov cl, 3
cmp ebx, 0x1fffffff
setb al
cmp ebx, 0x200
jb 0x451097
mov ecx, eax
mov eax, dword [esi + 0x14]
shl ebx, cl
lea ecx, [esi + 0xc]
lea edi, [ebx + ebx]
sub eax, dword [esi + 0xc]
sar eax, 2
cmp eax, edi
jae 0x4510c3
cmp edi, 0x40000000
jae 0x45111b
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
push edi
call fcn.0041b4f0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [esi + 4]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
push edi
call fcn.0041b190
lea eax, [ebx - 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ebx
mov eax, dword [esi + 4]
mov edi, dword [eax]
cmp edi, eax
je 0x451109
mov ebx, dword [eax + 4]
jmp 0x4510f5
mov eax, dword [esi + 4]
mov edi, dword [eax]
lea eax, [edi + 8]
mov ecx, esi
push edi
push eax
lea eax, [ebp - 0x18]
push eax
call 0x451120
cmp edi, ebx
jne 0x4510f0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d45c8
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00404900
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov edx, dword [ebp + 0xc]
mov esi, dword [edx + 0x10]
cmp dword [edx + 0x14], 0xf
jbe 0x451137
mov edx, dword [edx]
test esi, esi
mov ebx, 0x811c9dc5
mov dword [ebp - 0x10], edx
je 0x45115f
mov eax, esi
mov edi, edx
nop word [eax + eax]
movzx edx, byte [edi]
inc edi
xor edx, ebx
imul ebx, edx, 0x1000193
dec eax
jne 0x451150
and ebx, dword [ecx + 0x18]
mov edx, dword [ecx + 0xc]
mov edi, dword [ecx + 4]
mov dword [ebp - 0x14], ecx
mov ecx, dword [edx + ebx*8]
add ebx, ebx
mov dword [ebp - 0x18], edi
cmp ecx, edi
je 0x451186
lea eax, [ebx*4]
or eax, 4
mov eax, dword [edx + eax]
mov edi, dword [eax]
cmp ecx, edi
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
je 0x4511cf
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x4511cb
cmp dword [edi + 0x1c], 0xf
jbe 0x4511b0
mov eax, dword [edi + 8]
jmp 0x4511b3
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x10]
call fcn.004d836d
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
test eax, eax
je 0x45125e
cmp ecx, edi
jne 0x451190
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp - 0x20]
mov eax, dword [edi]
mov edx, edi
mov edi, dword [ebp - 0x14]
cmp eax, ecx
je 0x451214
mov esi, edx
mov edx, dword [edx + 4]
mov dword [edx], eax
mov edx, dword [eax + 4]
mov dword [edx], ecx
mov edx, dword [ecx + 4]
mov dword [edx], esi
mov edx, dword [ecx + 4]
mov dword [ebp - 0x10], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [esi + 4]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x10]
mov edx, esi
mov dword [esi + 4], eax
mov eax, dword [edi + 4]
mov esi, dword [edi + 0xc]
mov dword [ebp - 0x18], eax
mov ecx, edi
mov edi, edx
mov edx, dword [esi + ebx*4]
lea eax, [esi + ebx*4]
cmp edx, dword [ebp - 0x18]
je 0x45124d
cmp edx, dword [ebp - 0x1c]
je 0x4512bc
or ebx, 1
mov eax, dword [esi + ebx*4]
mov eax, dword [eax]
cmp eax, edi
mov dword [esi + ebx*4], eax
je 0x4512c0
mov edx, dword [ecx + 0xc]
lea eax, [edx + ebx*4]
mov edx, dword [edx + ebx*4]
mov edx, dword [edx + 4]
jmp 0x4512be
shl ebx, 2
mov dword [eax], edi
mov edx, edi
or ebx, 4
add ebx, dword [ecx + 0xc]
mov eax, ebx
jmp 0x4512be
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x14]
dec dword [eax + 8]
mov eax, dword [edx + 0x1c]
cmp eax, 0x10
jb 0x4512ad
mov ecx, dword [edx + 8]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x4512a0
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4512d9
add eax, 0x24
mov ecx, edx
mov esi, eax
push esi
push ecx
call fcn.004d4589
add esp, 8
mov edx, dword [ebp + 0x10]
push 0x20
push edx
call fcn.004d4589
add esp, 8
xor ecx, ecx
jmp 0x4512c7
mov edx, edi
mov dword [eax], edx
call fcn.00451030
mov cl, 1
mov eax, dword [ebp + 8]
mov dword [eax], edi
mov byte [eax + 4], cl
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
call fcn.004e40e0
int3