Function at 0x406d90
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 0x407001
sub esp, 0x20
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
cmp byte [0x6d9c93], 0
je 0x406dda
mov dword [esp], ecx
mov ebx, dword [esp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.00452970
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x30], ebx
add esp, 0x20
ret
mov edx, dword [0x6d9e80]
imul edx, eax
add edx, dword [esp + 0x28]
cmp eax, 0
jne 0x406e15
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 0x406e55
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 0x406dec
cmp eax, 4
jne 0x406e74
mov ebx, dword [ecx]
xor ebx, edx
imul ebx, ebx, 0xbce2d621
rol ebx, 0xf
imul ebx, ebx, 0xc70f85e1
mov edx, ebx
jmp 0x406dec
cmp eax, 8
ja 0x406eaf
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 0x406dec
cmp eax, 0x10
ja 0x406f22
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 0x406dec
mov dword [esp + 0x14], edx
mov edi, dword [0x6d9e84]
imul edi, dword [esp + 0x28]
mov esi, dword [0x6d9e88]
imul esi, dword [esp + 0x28]
mov edx, dword [0x6d9e8c]
imul edx, dword [esp + 0x28]
cmp eax, 0x10
jb 0x406ff0
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 0x406f50
mov ebx, dword [esp + 0x14]
xor ebx, edi
xor ebx, esi
xor ebx, edx
mov edx, ebx
jmp 0x406de7
call fcn.00450fb0
jmp fcn.00406d90