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

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x24]
cmp dword [edi + 0x14], 0x10
mov ebp, dword [edi + 0x10]
mov dword [esp + 0x14], ebp
jb 0x40640c
mov esi, dword [edi]
jmp 0x40640e
mov esi, edi
xor ecx, ecx
mov edx, 0x811c9dc5
test ebp, ebp
je 0x406431
lea esp, [esp]
movzx eax, byte [esi + ecx]
xor edx, eax
inc ecx
imul edx, edx, 0x1000193
cmp ecx, ebp
jb 0x406420
mov esi, dword [0x47d540]
mov ecx, esi
and ecx, edx
cmp dword [0x47d544], ecx
ja 0x40644c
shr esi, 1
or eax, 0xffffffff
sub eax, esi
add ecx, eax
mov eax, dword [0x47d534]
lea edx, [eax + ecx*8]
mov dword [esp + 0x10], edx
mov eax, dword [edx]
mov dword [esp + 0x18], eax
mov ecx, eax
mov ebx, dword [0x47d52c]
cmp eax, ebx
jne 0x40646e
mov eax, ebx
jmp 0x406473
mov eax, dword [edx + 4]
mov eax, dword [eax]
cmp ecx, eax
je 0x4065fc
cmp dword [edi + 0x14], 0x10
lea edx, [ecx + 8]
jb 0x406486
mov edi, dword [edi]
cmp dword [edx + 0x14], 0x10
mov ebx, dword [edx + 0x10]
jb 0x406491
mov edx, dword [edx]
cmp ebx, ebp
mov esi, ebp
cmovb esi, ebx
test esi, esi
je 0x4064f1
sub esi, 4
jb 0x4064b2
mov eax, dword [edx]
cmp eax, dword [edi]
jne 0x4064b7
add edx, 4
add edi, 4
sub esi, 4
jae 0x4064a1
cmp esi, 0xfffffffc
je 0x4064eb
mov al, byte [edx]
cmp al, byte [edi]
jne 0x4064e4
cmp esi, 0xfffffffd
je 0x4064eb
mov al, byte [edx + 1]
cmp al, byte [edi + 1]
jne 0x4064e4
cmp esi, 0xfffffffe
je 0x4064eb
mov al, byte [edx + 2]
cmp al, byte [edi + 2]
jne 0x4064e4
cmp esi, 0xffffffff
je 0x4064eb
mov al, byte [edx + 3]
cmp al, byte [edi + 3]
je 0x4064eb
sbb eax, eax
or eax, 1
jmp 0x4064ed
xor eax, eax
test eax, eax
jne 0x406500
cmp ebx, ebp
jb 0x406500
xor eax, eax
cmp ebx, ebp
setne al
test eax, eax
je 0x406513
mov ecx, dword [ecx]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
jmp 0x406460
mov edx, ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x24]
lea ecx, [ecx]
mov eax, dword [esp + 0x10]
mov ebx, dword [0x47d52c]
cmp dword [eax], ebx
jne 0x406532
mov eax, ebx
jmp 0x406537
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp ecx, eax
je 0x4065e1
cmp dword [ecx + 0x1c], 0x10
mov ebp, dword [ecx + 0x18]
lea esi, [ecx + 8]
jb 0x40654d
mov esi, dword [esi]
cmp dword [edx + 0x14], 0x10
jb 0x406557
mov ebx, dword [edx]
jmp 0x406559
mov ebx, edx
mov eax, dword [esp + 0x14]
cmp eax, ebp
mov edi, ebp
cmovb edi, eax
test edi, edi
je 0x4065c4
sub edi, 4
jb 0x406581
lea ecx, [ecx]
mov eax, dword [ebx]
cmp eax, dword [esi]
jne 0x406586
add ebx, 4
add esi, 4
sub edi, 4
jae 0x406570
cmp edi, 0xfffffffc
je 0x4065ba
mov al, byte [ebx]
cmp al, byte [esi]
jne 0x4065b3
cmp edi, 0xfffffffd
je 0x4065ba
mov al, byte [ebx + 1]
cmp al, byte [esi + 1]
jne 0x4065b3
cmp edi, 0xfffffffe
je 0x4065ba
mov al, byte [ebx + 2]
cmp al, byte [esi + 2]
jne 0x4065b3
cmp edi, 0xffffffff
je 0x4065ba
mov al, byte [ebx + 3]
cmp al, byte [esi + 3]
je 0x4065ba
sbb eax, eax
or eax, 1
jmp 0x4065bc
xor eax, eax
test eax, eax
jne 0x4065db
mov eax, dword [esp + 0x14]
cmp eax, ebp
jb 0x4065db
xor eax, eax
cmp dword [edx + 0x10], ebp
setne al
test eax, eax
jne 0x4065db
mov ecx, dword [ecx]
jmp 0x406520
mov ebx, dword [0x47d52c]
mov edx, dword [esp + 0x18]
cmp edx, ecx
je 0x4065fc
mov eax, dword [esp + 0x20]
mov dword [eax], edx
mov dword [eax + 4], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebp
mov dword [eax], ebx
mov dword [eax + 4], ebx
pop ebx
add esp, 0xc
ret 8