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

Disassembly:
sub esp, 8
push ebx
mov ebx, dword [esp + 0x14]
push ebp
mov ebp, dword [ebx + 0x10]
push esi
push edi
mov edi, dword [ebx + 0x14]
cmp edi, 0x10
jb 0x40620a
mov esi, dword [ebx]
jmp 0x40620c
mov esi, ebx
xor ecx, ecx
mov edx, 0x811c9dc5
test ebp, ebp
je 0x406228
movzx eax, byte [esi + ecx]
xor edx, eax
inc ecx
imul edx, edx, 0x1000193
cmp ecx, ebp
jb 0x406217
mov esi, dword [0x47d540]
mov ecx, esi
and ecx, edx
cmp dword [0x47d544], ecx
ja 0x406243
shr esi, 1
or eax, 0xffffffff
sub eax, esi
add ecx, eax
mov eax, dword [0x47d534]
lea esi, [eax + ecx*8]
mov dword [esp + 0x14], esi
mov eax, dword [esi]
mov dword [esp + 0x10], eax
mov ecx, eax
jmp 0x406260
mov edx, dword [0x47d52c]
cmp eax, edx
jne 0x40626e
mov eax, edx
jmp 0x406273
mov eax, dword [esi + 4]
mov eax, dword [eax]
cmp ecx, eax
je 0x4063dd
lea edx, [ecx + 8]
cmp edi, 0x10
jb 0x406287
mov edi, dword [ebx]
jmp 0x406289
mov edi, ebx
cmp dword [edx + 0x14], 0x10
mov eax, dword [edx + 0x10]
mov dword [esp + 0x20], eax
jb 0x406298
mov edx, dword [edx]
cmp eax, ebp
mov esi, ebp
cmovb esi, eax
test esi, esi
je 0x4062fc
sub esi, 4
jb 0x4062b9
mov eax, dword [edx]
cmp eax, dword [edi]
jne 0x4062be
add edx, 4
add edi, 4
sub esi, 4
jae 0x4062a8
cmp esi, 0xfffffffc
je 0x4062f2
mov al, byte [edx]
cmp al, byte [edi]
jne 0x4062eb
cmp esi, 0xfffffffd
je 0x4062f2
mov al, byte [edx + 1]
cmp al, byte [edi + 1]
jne 0x4062eb
cmp esi, 0xfffffffe
je 0x4062f2
mov al, byte [edx + 2]
cmp al, byte [edi + 2]
jne 0x4062eb
cmp esi, 0xffffffff
je 0x4062f2
mov al, byte [edx + 3]
cmp al, byte [edi + 3]
je 0x4062f2
sbb eax, eax
or eax, 1
jmp 0x4062f4
xor eax, eax
test eax, eax
jne 0x40630d
mov eax, dword [esp + 0x20]
cmp eax, ebp
jb 0x40630d
xor eax, eax
cmp dword [esp + 0x20], ebp
setne al
test eax, eax
je 0x40631f
mov ecx, dword [ecx]
mov eax, dword [esp + 0x10]
mov edi, dword [ebx + 0x14]
mov esi, dword [esp + 0x14]
jmp 0x406260
cmp dword [ecx + 0x1c], 0x10
mov edi, dword [ecx + 0x18]
lea edx, [ecx + 8]
jb 0x40632d
mov edx, dword [edx]
cmp dword [ebx + 0x14], 0x10
jb 0x406335
mov ebx, dword [ebx]
cmp ebp, edi
mov esi, edi
cmovb esi, ebp
test esi, esi
je 0x406395
sub esi, 4
jb 0x406356
mov eax, dword [ebx]
cmp eax, dword [edx]
jne 0x40635b
add ebx, 4
add edx, 4
sub esi, 4
jae 0x406345
cmp esi, 0xfffffffc
je 0x40638f
mov al, byte [ebx]
cmp al, byte [edx]
jne 0x406388
cmp esi, 0xfffffffd
je 0x40638f
mov al, byte [ebx + 1]
cmp al, byte [edx + 1]
jne 0x406388
cmp esi, 0xfffffffe
je 0x40638f
mov al, byte [ebx + 2]
cmp al, byte [edx + 2]
jne 0x406388
cmp esi, 0xffffffff
je 0x40638f
mov al, byte [ebx + 3]
cmp al, byte [edx + 3]
je 0x40638f
sbb eax, eax
or eax, 1
jmp 0x406391
xor eax, eax
test eax, eax
jne 0x4063be
cmp ebp, edi
jb 0x4063be
xor eax, eax
cmp ebp, edi
setne al
test eax, eax
jne 0x4063be
mov eax, dword [esp + 0x1c]
pop edi
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x1c]
pop esi
mov ecx, dword [ecx]
pop ebp
mov dword [eax], ecx
pop ebx
add esp, 8
ret 8
mov eax, dword [0x47d52c]
pop edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1c]
pop esi
mov ecx, dword [ecx]
pop ebp
mov dword [eax], ecx
pop ebx
add esp, 8
ret 8
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 8
ret 8