Function at 0x45c6a0
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 [0x4f002c]
movsd xmm0, qword [0x4cd4c8]
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 0x45c689
mov ebx, dword [ecx + 0x1c]
mov esi, ecx
mov cl, 3
cmp ebx, 0x1fffffff
setb al
cmp ebx, 0x200
jb 0x45c617
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 0x45c643
cmp edi, 0x40000000
jae 0x45c69b
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
push edi
call fcn.004165e0
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.00416290
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 0x45c689
mov ebx, dword [eax + 4]
jmp 0x45c675
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 0x45c6a0
cmp edi, ebx
jne 0x45c670
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048bd44
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00402700
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0x10]
cmp dword [eax + 0x14], 0xf
jbe 0x45c6b7
mov eax, dword [eax]
test esi, esi
mov ebx, 0x811c9dc5
mov dword [ebp - 0x10], eax
je 0x45c6df
mov edi, esi
nop word cs:[eax + eax]
nop
movzx edx, byte [eax]
inc eax
xor edx, ebx
imul ebx, edx, 0x1000193
dec edi
jne 0x45c6d0
mov edi, dword [ecx + 4]
and ebx, dword [ecx + 0x18]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ecx + 0xc]
mov edx, dword [ecx + ebx*8]
add ebx, ebx
mov dword [ebp - 0x18], edi
cmp edx, edi
je 0x45c706
lea eax, [ebx*4]
or eax, 4
mov eax, dword [ecx + eax]
mov edi, dword [eax]
cmp edx, edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], edx
je 0x45c750
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x45c74c
cmp dword [edi + 0x1c], 0xf
jbe 0x45c730
mov eax, dword [edi + 8]
jmp 0x45c733
lea eax, [edi + 8]
mov ecx, dword [ebp - 0x10]
push esi
push eax
push ecx
call fcn.004a79dd
add esp, 0xc
mov edx, dword [ebp - 0x1c]
test eax, eax
je 0x45c7e7
cmp edx, edi
jne 0x45c710
mov edi, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi]
mov edi, dword [ebp - 0x20]
cmp eax, edx
je 0x45c794
mov edi, dword [ebp + 0x10]
mov esi, edx
mov edx, dword [edi + 4]
mov dword [edx], eax
mov edx, dword [eax + 4]
mov dword [edx], esi
mov edx, dword [esi + 4]
mov dword [edx], edi
mov edx, dword [esi + 4]
mov dword [ebp - 0x10], edx
mov edx, dword [eax + 4]
mov dword [esi + 4], edx
mov edx, dword [edi + 4]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], eax
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0xc]
mov dword [ebp - 0x18], eax
mov edx, dword [edi + ebx*4]
mov esi, ecx
mov ecx, dword [ebp + 0x10]
lea eax, [edi + ebx*4]
cmp edx, dword [ebp - 0x18]
je 0x45c7d2
cmp edx, dword [ebp - 0x1c]
je 0x45c845
or ebx, 1
mov eax, dword [edi + ebx*4]
mov eax, dword [eax]
mov dword [edi + ebx*4], eax
mov edi, ecx
cmp eax, ecx
mov ecx, esi
je 0x45c84d
mov edx, dword [ecx + 0xc]
lea eax, [edx + ebx*4]
mov edx, dword [edx + ebx*4]
mov edx, dword [edx + 4]
jmp 0x45c84b
shl ebx, 2
mov dword [eax], ecx
mov edi, ecx
mov ecx, esi
or ebx, 4
mov edx, edi
add ebx, dword [esi + 0xc]
mov eax, ebx
jmp 0x45c84b
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 0x45c836
mov ecx, dword [edx + 8]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x45c829
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x45c866
add eax, 0x24
mov ecx, edx
mov esi, eax
push esi
push ecx
call fcn.0048bd31
add esp, 8
mov edx, dword [ebp + 0x10]
push 0x20
push edx
call fcn.0048bd31
add esp, 8
xor ecx, ecx
jmp 0x45c854
mov edi, ecx
mov edx, ecx
mov ecx, esi
mov dword [eax], edx
call fcn.0045c5b0
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.004b5789
int3