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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push esi
mov esi, dword [ebp + 0xc]
push edi
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], ecx
cmp ecx, 0x10
jb 0x47aef0
mov edi, dword [esi]
jmp 0x47aef2
mov edi, esi
xor ecx, ecx
mov edx, 0x811c9dc5
test eax, eax
je 0x47af14
mov esi, eax
nop
movzx eax, byte [edi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x47af00
mov esi, dword [ebp + 0xc]
mov ecx, dword [0x560ac4]
mov edi, ecx
and edi, edx
cmp dword [0x560ac8], edi
ja 0x47af2f
shr ecx, 1
or eax, 0xffffffff
sub eax, ecx
add edi, eax
mov edx, dword [0x560ab8]
lea eax, [edi + edi]
lea eax, [eax + 1]
mov ecx, dword [edx + edi*8]
mov edi, dword [edx + eax*4 - 4]
lea eax, [edx + eax*4]
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x10], eax
jmp 0x47af50
mov edx, dword [0x560ab0]
cmp edi, edx
jne 0x47af5e
mov eax, edx
jmp 0x47af62
mov eax, dword [eax]
mov eax, dword [eax]
cmp ecx, eax
je 0x47b0d9
cmp dword [esi + 0x14], 0x10
lea edx, [ecx + 8]
jb 0x47af77
mov edi, dword [esi]
jmp 0x47af79
mov edi, esi
cmp dword [edx + 0x14], 0x10
mov eax, dword [edx + 0x10]
mov dword [ebp - 8], eax
jb 0x47af87
mov edx, dword [edx]
mov eax, dword [ebp - 4]
mov esi, eax
cmp dword [ebp - 8], eax
cmovb esi, dword [ebp - 8]
test esi, esi
je 0x47aff3
sub esi, 4
jb 0x47afb1
lea esp, [esp]
mov eax, dword [edx]
cmp eax, dword [edi]
jne 0x47afb6
add edx, 4
add edi, 4
sub esi, 4
jae 0x47afa0
cmp esi, 0xfffffffc
je 0x47afea
mov al, byte [edx]
cmp al, byte [edi]
jne 0x47afe3
cmp esi, 0xfffffffd
je 0x47afea
mov al, byte [edx + 1]
cmp al, byte [edi + 1]
jne 0x47afe3
cmp esi, 0xfffffffe
je 0x47afea
mov al, byte [edx + 2]
cmp al, byte [edi + 2]
jne 0x47afe3
cmp esi, 0xffffffff
je 0x47afea
mov al, byte [edx + 3]
cmp al, byte [edi + 3]
je 0x47afea
sbb eax, eax
or eax, 1
jmp 0x47afec
xor eax, eax
test eax, eax
jne 0x47b006
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
cmp edx, eax
jb 0x47b006
xor eax, eax
cmp edx, dword [ebp - 4]
setne al
test eax, eax
je 0x47b016
mov ecx, dword [ecx]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
jmp 0x47af50
cmp dword [ecx + 0x1c], 0x10
lea edx, [ecx + 8]
mov eax, dword [edx + 0x10]
mov dword [ebp - 8], eax
jb 0x47b027
mov edx, dword [edx]
cmp dword [ebp - 0x14], 0x10
mov edi, dword [ebp + 0xc]
jb 0x47b032
mov edi, dword [edi]
cmp dword [ebp - 4], eax
mov esi, eax
cmovb esi, dword [ebp - 4]
test esi, esi
je 0x47b097
sub esi, 4
jb 0x47b055
mov eax, dword [edi]
cmp eax, dword [edx]
jne 0x47b05a
add edi, 4
add edx, 4
sub esi, 4
jae 0x47b044
cmp esi, 0xfffffffc
je 0x47b08e
mov al, byte [edi]
cmp al, byte [edx]
jne 0x47b087
cmp esi, 0xfffffffd
je 0x47b08e
mov al, byte [edi + 1]
cmp al, byte [edx + 1]
jne 0x47b087
cmp esi, 0xfffffffe
je 0x47b08e
mov al, byte [edi + 2]
cmp al, byte [edx + 2]
jne 0x47b087
cmp esi, 0xffffffff
je 0x47b08e
mov al, byte [edi + 3]
cmp al, byte [edx + 3]
je 0x47b08e
sbb eax, eax
or eax, 1
jmp 0x47b090
xor eax, eax
test eax, eax
jne 0x47b0bf
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
cmp edx, eax
jb 0x47b0bf
xor eax, eax
cmp edx, dword [ebp - 8]
setne al
test eax, eax
jne 0x47b0bf
mov eax, dword [ebp + 8]
mov dword [ebp + 0xc], ecx
lea ecx, [ebp + 0xc]
mov ecx, dword [ecx]
pop edi
mov dword [eax], ecx
pop esi
mov esp, ebp
pop ebp
ret 8
mov eax, dword [0x560ab0]
lea ecx, [ebp + 0xc]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ecx]
pop edi
pop esi
mov dword [eax], ecx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword [eax], edx
mov esp, ebp
pop ebp
ret 8