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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x50
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov ecx, dword [eax]
xor ecx, 2
or ecx, dword [eax + 4]
jne 0x4f770b
movdqu xmm0, xmmword [eax + 8]
movzx ebx, byte [edi + 8]
xor eax, eax
lea ecx, [esp + 8]
lea edx, [esp + 4]
pshufd xmm1, xmm0, 0x44
pshufd xmm2, xmm0, 0xee
cmp bl, 2
pxor xmm1, xmmword [str.uespemosarenegylmodnarodsetybdet]
pxor xmm2, xmmword [0x6039a0]
setne al
mov dword [esp + 4], eax
movdqu xmmword [esp + 8], xmm1
movdqu xmmword [esp + 0x18], xmm2
movdqu xmmword [esp + 0x28], xmm0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
push 4
call fcn.00424d00
add esp, 4
cmp bl, 2
jne 0x4f773f
movzx eax, byte [edi]
lea ecx, [esp + 8]
lea edx, [esp + 4]
mov dword [esp + 4], eax
push 4
jmp 0x4f7753
movzx ebx, byte [edi + 8]
xor ecx, ecx
mov edx, 0x5635bc91
cmp bl, 2
setne cl
xor ecx, 0x84222325
mov eax, ecx
mul edx
cmp bl, 2
jne 0x4f7a23
movzx ecx, byte [edi]
xor eax, ecx
imul eax, eax, 0xffffbc91
jmp 0x4f7a16
mov esi, dword [edi]
mov edi, dword [edi + 4]
test bl, bl
je 0x4f7a6e
lea ecx, [esp + 8]
mov edx, esi
push edi
call fcn.00424d00
add esp, 4
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
movdqu xmm0, xmmword [esp + 0x10]
movdqu xmm3, xmmword [esp + 8]
shl eax, 0x18
xor edx, ecx
movdqa xmm5, xmm0
or eax, dword [esp + 0x3c]
movd xmm4, edx
movd xmm2, edx
psrlq xmm5, 0x33
xor esi, eax
movd xmm1, esi
punpckldq xmm2, xmm1
punpcklqdq xmm1, xmm4
punpcklqdq xmm2, xmm3
shufps xmm1, xmm0, 0xe2
movaps xmm4, xmm1
paddq xmm2, xmm0
psllq xmm1, 0x10
psllq xmm0, 0xd
pshufd xmm3, xmm2, 0xff
psrlq xmm4, 0x30
movsd xmm0, xmm1
movdqa xmm1, xmm2
movd edx, xmm3
movsd xmm5, xmm4
orpd xmm0, xmm5
movd xmm3, edx
shufps xmm1, xmm3, 0x4e
xorpd xmm0, xmm2
shufps xmm1, xmm2, 0x42
movapd xmm2, xmm0
movapd xmm3, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
paddq xmm1, xmm0
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x11
movd esi, xmm1
psllq xmm2, 0x15
xor esi, ecx
movsd xmm0, xmm2
pshufd xmm2, xmm1, 0xff
movd edx, xmm2
pshufd xmm2, xmm1, 0x55
orpd xmm0, xmm3
movd xmm3, esi
movd edi, xmm2
xor edx, 0xff
xorpd xmm0, xmm1
xor edi, eax
movd xmm2, edx
movd xmm4, edi
shufpd xmm1, xmm2, 1
punpcklqdq xmm4, xmm3
movapd xmm3, xmm0
shufps xmm1, xmm0, 0xe2
shufps xmm3, xmm4, 0x24
movaps xmm4, xmm0
paddq xmm1, xmm3
psrlq xmm4, 0x33
pshufd xmm2, xmm1, 0xff
movd eax, xmm2
movaps xmm2, xmm0
psrlq xmm2, 0x30
movd xmm3, eax
movsd xmm4, xmm2
movaps xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
movdqa xmm2, xmm1
orpd xmm0, xmm4
shufps xmm2, xmm3, 0x4e
xorpd xmm0, xmm1
shufps xmm2, xmm1, 0x42
movapd xmm1, xmm0
movapd xmm3, xmm0
paddq xmm2, xmm0
psrlq xmm1, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm1
movdqa xmm1, xmm0
psllq xmm0, 0x11
psllq xmm1, 0x15
movsd xmm0, xmm1
pshufd xmm1, xmm2, 0xff
movd eax, xmm1
orpd xmm0, xmm3
movdqa xmm3, xmm2
movd xmm1, eax
xorpd xmm0, xmm2
shufps xmm3, xmm1, 0x4e
movapd xmm4, xmm0
shufps xmm3, xmm2, 0x42
psrlq xmm4, 0x33
paddq xmm3, xmm0
pshufd xmm1, xmm3, 0xff
movd eax, xmm1
movdqa xmm1, xmm0
psrlq xmm1, 0x30
movd xmm2, eax
movsd xmm4, xmm1
movdqa xmm1, xmm0
psllq xmm0, 0xd
psllq xmm1, 0x10
movsd xmm0, xmm1
movdqa xmm1, xmm3
orpd xmm0, xmm4
shufps xmm1, xmm2, 0x4e
xorpd xmm0, xmm3
shufps xmm1, xmm3, 0x42
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x11
psllq xmm2, 0x15
movsd xmm0, xmm2
pshufd xmm2, xmm1, 0xff
orpd xmm0, xmm3
movd eax, xmm2
xorpd xmm0, xmm1
movd xmm3, eax
pshufd xmm2, xmm0, 0xff
movd eax, xmm2
pshufd xmm2, xmm0, 0xee
movd edx, xmm2
movapd xmm2, xmm1
shufpd xmm2, xmm3, 1
mov ecx, edx
shufps xmm2, xmm1, 0x42
shld ecx, eax, 0xd
shld eax, edx, 0xd
movd edx, xmm0
paddq xmm2, xmm0
pshufd xmm0, xmm0, 0x55
movd xmm1, ecx
movd esi, xmm0
movd xmm0, eax
shld esi, edx, 0x10
shl edx, 0x10
punpckldq xmm1, xmm0
movd xmm3, esi
movd xmm0, edx
punpckldq xmm0, xmm3
punpcklqdq xmm0, xmm1
pxor xmm0, xmm2
pshufd xmm1, xmm0, 0xee
paddq xmm1, xmm2
movdqa xmm2, xmm0
psrlq xmm0, 0x2f
psrlq xmm2, 0x2b
pshufd xmm0, xmm0, 0xee
movd ecx, xmm1
pshufd xmm1, xmm1, 0x55
pxor xmm0, xmm2
movd edx, xmm1
movd eax, xmm0
xor eax, edx
xor eax, ecx
and eax, 0x7fff
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
imul ecx, ecx, 0x9ffaac08
test bl, bl
lea esi, [edx + ecx - 0x3d29b2dc]
mov ecx, edi
mov edi, dword [edi]
mov ecx, dword [ecx + 4]
je 0x4f7aa7
test ecx, ecx
je 0x4f7a16
nop
mov edx, ecx
movzx ecx, byte [edi]
inc edi
xor ecx, eax
mov eax, 0x100
mov ebx, ecx
imul ebx, eax
mov eax, ecx
mov ecx, edx
mov edx, 0x1b3
mul edx
add edx, ebx
mov ebx, 0x1b3
imul esi, ebx
add esi, edx
dec ecx
jne 0x4f7a40
jmp 0x4f7a16
test edi, edi
je 0x4f775b
lea ebx, [esp + 4]
nop word [eax + eax]
movzx eax, byte [esi]
inc esi
lea ecx, [esp + 8]
mov edx, ebx
movzx eax, byte [eax + 0x61bf08]
mov byte [esp + 4], al
push 1
call fcn.00424d00
add esp, 4
dec edi
jne 0x4f7a80
jmp 0x4f775b
test ecx, ecx
je 0x4f7a16
nop
mov edx, ecx
movzx ecx, byte [edi]
inc edi
movzx ecx, byte [ecx + 0x61bf08]
xor ecx, eax
mov eax, 0x100
mov ebx, ecx
imul ebx, eax
mov eax, ecx
mov ecx, edx
mov edx, 0x1b3
mul edx
add edx, ebx
mov ebx, 0x1b3
imul esi, ebx
add esi, edx
dec ecx
jne 0x4f7ab0
jmp 0x4f7a16