Function at 0x4687f1
Capabilities:
Encode data using xor
Hash data using murmur2

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x18
mov dword [esp + 0x14], ecx
mov ebx, edx
mov edx, eax
test ebx, ebx
je 0x468a60
mov eax, ebx
call fcn.00463ae8
mov dword [esp + 0x10], eax
mov ecx, eax
test ecx, ecx
je 0x4689e1
movsx ecx, byte [ebx]
test ecx, ecx
je 0x468a59
xor ebp, ebp
mov ecx, ebx
movsx edx, byte [ecx]
cmp edx, 0x2f
je 0x468846
movzx edx, dl
movzx ecx, byte [edx + 0x5bc4a0]
inc ecx
movsx esi, cl
add ebp, esi
jmp 0x46884b
lea ebx, [ecx + 1]
xor ebp, ebp
lea ecx, [ebp + ebx]
movsx edx, byte [ecx]
test edx, edx
jne 0x46882f
push 0x48
call fcn.00403564
pop ecx
mov esi, eax
test esi, esi
je 0x468a43
lea ecx, [ebp + 1]
push ecx
call fcn.004704bc
pop ecx
mov dword [esi + 0x14], eax
test eax, eax
je 0x468a2d
push ebp
push ebx
push eax
call dword [0x5d9aac]
add esp, 0xc
mov ecx, dword [esi + 0x14]
xor edx, edx
mov byte [ecx + ebp], dl
inc dword [0x841ea4]
mov ecx, ebp
xor edx, ebp
cmp ebp, 4
jl 0x4688c6
imul eax, dword [ebx], 0x5bd1e995
mov edi, eax
shr edi, 0x18
xor eax, edi
imul edi, eax, 0x5bd1e995
imul edx, edx, 0x5bd1e995
xor edx, edi
add ebx, 4
add ecx, 0xfffffffc
cmp ecx, 4
jge 0x4688a0
cmp ecx, 3
je 0x4688d7
cmp ecx, 2
je 0x4688e0
cmp ecx, 1
je 0x4688e9
jmp 0x4688f4
movzx ecx, byte [ebx + 2]
shl ecx, 0x10
xor edx, ecx
movzx ecx, byte [ebx + 1]
shl ecx, 8
xor edx, ecx
movzx ecx, byte [ebx]
xor edx, ecx
imul edx, edx, 0x5bd1e995
mov ecx, edx
shr ecx, 0xd
xor edx, ecx
imul edi, edx, 0x5bd1e995
mov ebx, edi
shr ebx, 0xf
xor edi, ebx
and edi, 0x7fffffff
mov edx, dword [esp + 0x14]
mov ecx, edx
shl ecx, 0x1f
add ecx, edi
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x18], ebp
mov byte [esi + 0x40], dl
mov ebp, dword [esp + 0x34]
mov dword [esi + 0x38], ebp
mov edx, dword [esp + 0x38]
mov dword [esi + 0x3c], edx
mov edx, dword [esp + 0x10]
cmp dword [edx + 0x20], 0
je 0x46896a
mov eax, dword [esp + 0x10]
mov edx, esi
call fcn.00463a04
mov ecx, dword [esp + 0x34]
mov dword [esp + 8], ecx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x10]
mov edx, esi
call fcn.0042bcb0
mov eax, esi
add esp, 0x18
pop ebx
pop ebp
pop esi
pop edi
ret
push 0x4000
call fcn.00403564
pop ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x20], eax
test eax, eax
je 0x468a17
push 0x4000
call fcn.00403564
pop ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x24], eax
test eax, eax
je 0x468a01
push 0x202
call fcn.00403564
pop ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x28], eax
test eax, eax
je 0x4689eb
push 0x202
call fcn.00403564
pop ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x2c], eax
test eax, eax
je 0x4689d2
mov dword [ecx + 0x30], 0
jmp 0x46893a
push 1
push 0x186aa
call fcn.0046d5d4
add esp, 8
xor eax, eax
add esp, 0x18
pop ebx
pop ebp
pop esi
pop edi
ret
push 1
push 0x186aa
call fcn.0046d5d4
xor eax, eax
add esp, 0x20
pop ebx
pop ebp
pop esi
pop edi
ret
push 1
push 0x186aa
call fcn.0046d5d4
xor eax, eax
add esp, 0x20
pop ebx
pop ebp
pop esi
pop edi
ret
push 1
push 0x186aa
call fcn.0046d5d4
xor eax, eax
add esp, 0x20
pop ebx
pop ebp
pop esi
pop edi
ret
push 1
push 0x186aa
call fcn.0046d5d4
xor eax, eax
add esp, 0x20
pop ebx
pop ebp
pop esi
pop edi
ret
push 1
push 0x186aa
call fcn.0046d5d4
xor eax, eax
add esp, 0x20
pop ebx
pop ebp
pop esi
pop edi
ret
xor ebp, ebp
jmp 0x468856
push 1
push 0xdbbb4
call fcn.0046d5d4
xor eax, eax
add esp, 0x20
pop ebx
pop ebp
pop esi
pop edi
ret