Function at 0x42ff70
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 0x42ff8e
mov esi, dword [edi]
jmp 0x42ff90
mov esi, edi
xor ecx, ecx
mov edx, 0x811c9dc5
test eax, eax
je 0x42ffb4
mov edi, eax
nop dword [eax]
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x42ffa0
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 0x42ffdf
mov eax, ebx
jmp 0x42ffe3
mov eax, dword [eax]
mov eax, dword [eax]
cmp edx, eax
je 0x430136
cmp dword [edi + 0x14], 0x10
lea ecx, [edx + 8]
jb 0x42fff8
mov esi, dword [edi]
jmp 0x42fffa
mov esi, edi
cmp dword [ecx + 0x14], 0x10
mov ebx, dword [ecx + 0x10]
jb 0x430005
mov ecx, dword [ecx]
mov eax, dword [ebp - 4]
cmp ebx, eax
mov edx, eax
cmovb edx, ebx
test edx, edx
je 0x43006b
sub edx, 4
jb 0x430029
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x43002e
add ecx, 4
add esi, 4
sub edx, 4
jae 0x430018
cmp edx, 0xfffffffc
je 0x430062
mov al, byte [ecx]
cmp al, byte [esi]
jne 0x43005b
cmp edx, 0xfffffffd
je 0x430062
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x43005b
cmp edx, 0xfffffffe
je 0x430062
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x43005b
cmp edx, 0xffffffff
je 0x430062
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
je 0x430062
sbb eax, eax
or eax, 1
jmp 0x430064
xor eax, eax
test eax, eax
jne 0x43007b
mov eax, dword [ebp - 4]
cmp ebx, eax
jb 0x43007b
xor eax, eax
cmp ebx, dword [ebp - 4]
setne al
test eax, eax
je 0x43008e
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 0x42ffd4
mov ecx, dword [ebp + 0xc]
add ecx, 8
cmp dword [ecx + 0x14], 0x10
mov esi, dword [ecx + 0x10]
jb 0x43009f
mov ecx, dword [ecx]
cmp dword [edi + 0x14], 0x10
jb 0x4300a7
mov edi, dword [edi]
mov ebx, dword [ebp - 4]
mov edx, esi
cmp ebx, esi
cmovb edx, ebx
test edx, edx
je 0x430110
sub edx, 4
jb 0x4300d1
nop word [eax + eax]
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x4300d6
add edi, 4
add ecx, 4
sub edx, 4
jae 0x4300c0
cmp edx, 0xfffffffc
je 0x43010a
mov al, byte [edi]
cmp al, byte [ecx]
jne 0x430103
cmp edx, 0xfffffffd
je 0x43010a
mov al, byte [edi + 1]
cmp al, byte [ecx + 1]
jne 0x430103
cmp edx, 0xfffffffe
je 0x43010a
mov al, byte [edi + 2]
cmp al, byte [ecx + 2]
jne 0x430103
cmp edx, 0xffffffff
je 0x43010a
mov al, byte [edi + 3]
cmp al, byte [ecx + 3]
je 0x43010a
sbb eax, eax
or eax, 1
jmp 0x43010c
xor eax, eax
test eax, eax
jne 0x43011f
cmp ebx, esi
jb 0x43011f
xor eax, eax
cmp ebx, esi
setne al
test eax, eax
je 0x430125
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