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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov ebx, ecx
cmp dword [edi + 0x14], 0x10
mov eax, dword [edi + 0x10]
mov dword [ebp - 4], eax
jb 0x4fb8be
mov esi, dword [edi]
jmp 0x4fb8c0
mov esi, edi
xor ecx, ecx
mov edx, 0x811c9dc5
test eax, eax
je 0x4fb8e4
mov edi, eax
nop dword [eax]
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x4fb8d0
mov edi, dword [ebp + 0xc]
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0xc]
and eax, edx
mov ebx, dword [ebx + 4]
mov dword [ebp - 8], ebx
mov edx, dword [ecx + eax*8]
add eax, eax
mov esi, dword [ecx + eax*4]
inc eax
mov dword [ebp - 0xc], esi
lea eax, [ecx + eax*4]
mov dword [ebp - 0x10], eax
mov dword [ebp + 0xc], edx
cmp esi, ebx
jne 0x4fb90f
mov eax, ebx
jmp 0x4fb913
mov eax, dword [eax]
mov eax, dword [eax]
cmp edx, eax
je 0x4fba66
cmp dword [edi + 0x14], 0x10
lea ecx, [edx + 8]
jb 0x4fb928
mov esi, dword [edi]
jmp 0x4fb92a
mov esi, edi
cmp dword [ecx + 0x14], 0x10
mov ebx, dword [ecx + 0x10]
jb 0x4fb935
mov ecx, dword [ecx]
mov eax, dword [ebp - 4]
cmp ebx, eax
mov edx, eax
cmovb edx, ebx
test edx, edx
je 0x4fb99b
sub edx, 4
jb 0x4fb959
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x4fb95e
add ecx, 4
add esi, 4
sub edx, 4
jae 0x4fb948
cmp edx, 0xfffffffc
je 0x4fb992
mov al, byte [ecx]
cmp al, byte [esi]
jne 0x4fb98b
cmp edx, 0xfffffffd
je 0x4fb992
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x4fb98b
cmp edx, 0xfffffffe
je 0x4fb992
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4fb98b
cmp edx, 0xffffffff
je 0x4fb992
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
je 0x4fb992
sbb eax, eax
or eax, 1
jmp 0x4fb994
xor eax, eax
test eax, eax
jne 0x4fb9ab
mov eax, dword [ebp - 4]
cmp ebx, eax
jb 0x4fb9ab
xor eax, eax
cmp ebx, dword [ebp - 4]
setne al
test eax, eax
je 0x4fb9be
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov edx, dword [edx]
jmp 0x4fb904
mov ecx, dword [ebp + 0xc]
add ecx, 8
cmp dword [ecx + 0x14], 0x10
mov esi, dword [ecx + 0x10]
jb 0x4fb9cf
mov ecx, dword [ecx]
cmp dword [edi + 0x14], 0x10
jb 0x4fb9d7
mov edi, dword [edi]
mov ebx, dword [ebp - 4]
mov edx, esi
cmp ebx, esi
cmovb edx, ebx
test edx, edx
je 0x4fba40
sub edx, 4
jb 0x4fba01
nop word [eax + eax]
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x4fba06
add edi, 4
add ecx, 4
sub edx, 4
jae 0x4fb9f0
cmp edx, 0xfffffffc
je 0x4fba3a
mov al, byte [edi]
cmp al, byte [ecx]
jne 0x4fba33
cmp edx, 0xfffffffd
je 0x4fba3a
mov al, byte [edi + 1]
cmp al, byte [ecx + 1]
jne 0x4fba33
cmp edx, 0xfffffffe
je 0x4fba3a
mov al, byte [edi + 2]
cmp al, byte [ecx + 2]
jne 0x4fba33
cmp edx, 0xffffffff
je 0x4fba3a
mov al, byte [edi + 3]
cmp al, byte [ecx + 3]
je 0x4fba3a
sbb eax, eax
or eax, 1
jmp 0x4fba3c
xor eax, eax
test eax, eax
jne 0x4fba4f
cmp ebx, esi
jb 0x4fba4f
xor eax, eax
cmp ebx, esi
setne al
test eax, eax
je 0x4fba55
mov eax, dword [ebp - 8]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
pop edi
pop esi
mov dword [eax], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword [eax], ebx
pop ebx
mov esp, ebp
pop ebp
ret 8