Function at 0x412a70
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 0x412ce1
sub esp, 0x20
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
cmp byte [0x8f7ce4], 0
je 0x412aba
mov dword [esp], ecx
mov ebx, dword [esp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.00463090
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x30], ebx
add esp, 0x20
ret
mov edx, dword [0x8f7f00]
imul edx, eax
add edx, dword [esp + 0x28]
cmp eax, 0
jne 0x412af5
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 0x412b35
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 0x412acc
cmp eax, 4
jne 0x412b54
mov ebx, dword [ecx]
xor ebx, edx
imul ebx, ebx, 0xbce2d621
rol ebx, 0xf
imul ebx, ebx, 0xc70f85e1
mov edx, ebx
jmp 0x412acc
cmp eax, 8
ja 0x412b8f
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 0x412acc
cmp eax, 0x10
ja 0x412c02
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 0x412acc
mov dword [esp + 0x14], edx
mov edi, dword [0x8f7f04]
imul edi, dword [esp + 0x28]
mov esi, dword [0x8f7f08]
imul esi, dword [esp + 0x28]
mov edx, dword [0x8f7f0c]
imul edx, dword [esp + 0x28]
cmp eax, 0x10
jb 0x412cd0
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 0x412c30
mov ebx, dword [esp + 0x14]
xor ebx, edi
xor ebx, esi
xor ebx, edx
mov edx, ebx
jmp 0x412ac7
call fcn.004616d0
jmp fcn.00412a70