Function at 0x408020
Capabilities:
Encode data using xor
Hash data using murmur3

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x408291
sub esp, 0x20
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
cmp byte [0x6dbc73], 0
je 0x40806a
mov dword [esp], ecx
mov ebx, dword [esp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.00453c00
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x30], ebx
add esp, 0x20
ret
mov edx, dword [0x6dbe60]
imul edx, eax
add edx, dword [esp + 0x28]
cmp eax, 0
jne 0x4080a5
mov ebx, edx
shr ebx, 0x11
xor ebx, edx
imul ebx, ebx, 0x319bca41
mov ecx, ebx
shr ebx, 0xd
xor ebx, ecx
imul ebx, ebx, 0x8b421a21
mov ecx, ebx
shr ebx, 0x10
xor ebx, ecx
mov dword [esp + 0x30], ebx
add esp, 0x20
ret
cmp eax, 4
jae 0x4080e5
movzx ebp, byte [ecx]
mov esi, ebp
xor esi, edx
mov edx, eax
shr edx, 1
mov ebx, ecx
add ebx, edx
movzx ebp, byte [ebx]
mov edx, ebp
shl edx, 8
xor edx, esi
dec eax
mov ebx, ecx
add ebx, eax
movzx ebp, byte [ebx]
mov ebx, ebp
shl ebx, 0x10
xor ebx, edx
imul ebx, ebx, 0xbce2d621
rol ebx, 0xf
imul ebx, ebx, 0xc70f85e1
mov edx, ebx
jmp 0x40807c
cmp eax, 4
jne 0x408104
mov ebx, dword [ecx]
xor ebx, edx
imul ebx, ebx, 0xbce2d621
rol ebx, 0xf
imul ebx, ebx, 0xc70f85e1
mov edx, ebx
jmp 0x40807c
cmp eax, 8
ja 0x40813f
mov esi, edx
mov edx, dword [ecx]
xor edx, esi
imul edx, edx, 0xbce2d621
rol edx, 0xf
imul edx, edx, 0xc70f85e1
sub eax, 4
mov ebx, ecx
add ebx, eax
mov ebx, dword [ebx]
xor ebx, edx
imul ebx, ebx, 0xbce2d621
rol ebx, 0xf
imul ebx, ebx, 0xc70f85e1
mov edx, ebx
jmp 0x40807c
cmp eax, 0x10
ja 0x4081b2
mov esi, dword [ecx]
xor esi, edx
imul esi, esi, 0xbce2d621
rol esi, 0xf
imul esi, esi, 0xc70f85e1
mov edx, 4
mov ebx, ecx
add ebx, edx
mov ebx, dword [ebx]
xor ebx, esi
imul ebx, ebx, 0xbce2d621
rol ebx, 0xf
imul ebx, ebx, 0xc70f85e1
mov esi, ebx
mov edx, eax
sub edx, 8
mov ebx, ecx
add ebx, edx
mov edx, dword [ebx]
xor edx, esi
imul edx, edx, 0xbce2d621
rol edx, 0xf
imul edx, edx, 0xc70f85e1
sub eax, 4
mov ebx, ecx
add ebx, eax
mov ebx, dword [ebx]
xor ebx, edx
imul ebx, ebx, 0xbce2d621
rol ebx, 0xf
imul ebx, ebx, 0xc70f85e1
mov edx, ebx
jmp 0x40807c
mov dword [esp + 0x14], edx
mov edi, dword [0x6dbe64]
imul edi, dword [esp + 0x28]
mov esi, dword [0x6dbe68]
imul esi, dword [esp + 0x28]
mov edx, dword [0x6dbe6c]
imul edx, dword [esp + 0x28]
cmp eax, 0x10
jb 0x408280
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
mov ebp, dword [ecx]
mov dword [esp + 0x10], ebp
mov ebx, dword [esp + 0x10]
xor ebx, dword [esp + 0x18]
imul ebx, ebx, 0xbce2d621
rol ebx, 0xf
imul ebx, ebx, 0xc70f85e1
mov dword [esp + 0x14], ebx
mov ebx, ecx
mov ecx, 4
add ebx, ecx
mov dword [esp + 0x1c], edi
mov edi, dword [ebx]
xor edi, dword [esp + 0x1c]
imul edi, edi, 0xc70f85e1
rol edi, 0xf
imul edi, edi, 0x319bca41
mov ecx, 4
add ebx, ecx
mov dword [esp + 0x18], esi
mov esi, dword [ebx]
xor esi, dword [esp + 0x18]
imul esi, esi, 0x319bca41
rol esi, 0xf
imul esi, esi, 0x8b421a21
mov ecx, 4
add ebx, ecx
mov dword [esp + 0x1c], edx
mov edx, dword [ebx]
xor edx, dword [esp + 0x1c]
imul edx, edx, 0x8b421a21
rol edx, 0xf
imul edx, edx, 0xbce2d621
mov ecx, 4
add ebx, ecx
mov ecx, ebx
sub eax, 0x10
cmp eax, 0x10
jae 0x4081e0
mov ebx, dword [esp + 0x14]
xor ebx, edi
xor ebx, esi
xor ebx, edx
mov edx, ebx
jmp 0x408077
call fcn.00452240
jmp fcn.00408020