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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov edx, dword [ebp + 0xc]
movsx edi, byte [edx + 0xb]
test edi, edi
jns 0x4b8449
mov edi, dword [edx + 4]
mov edx, dword [edx]
mov eax, edi
mov dword [ebp - 0x1c], edx
mov esi, edi
mov dword [ebp - 0x18], edi
cmp edi, 4
jb 0x4b8486
mov eax, dword [ebp - 0x18]
mov esi, eax
mov edx, dword [ebp - 0x1c]
imul edi, dword [edx], 0x5bd1e995
mov ebx, edi
shr ebx, 0x18
xor ebx, edi
imul edi, ebx, 0x5bd1e995
imul eax, eax, 0x5bd1e995
xor eax, edi
add edx, 4
add esi, 0xfffffffc
cmp esi, 3
ja 0x4b8460
mov ebx, dword [ebp + 8]
jmp dword [esi*4 + 0x4b863c]
movzx esi, byte [edx + 1]
shl esi, 8
xor eax, esi
movzx edx, byte [edx]
xor edx, eax
imul eax, edx, 0x5bd1e995
mov edi, dword [ecx + 4]
xor esi, esi
test edi, edi
jne 0x4b84c6
mov dword [ebx], esi
mov eax, ebx
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret 8
movzx esi, byte [edx + 2]
shl esi, 0x10
xor eax, esi
jmp case.0x4b8489.2
mov edx, eax
shr edx, 0xd
xor edx, eax
imul eax, edx, 0x5bd1e995
mov ebx, eax
shr ebx, 0xf
xor ebx, eax
mov edx, edi
shr edx, 1
and edx, 0x55555555
mov eax, edi
sub eax, edx
mov edx, eax
and edx, 0x33333333
shr eax, 2
and eax, 0x33333333
add eax, edx
mov edx, eax
shr edx, 4
add edx, eax
and edx, 0xf0f0f0f
imul eax, edx, 0x1010101
shr eax, 0x18
cmp eax, 1
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x24], eax
ja 0x4b8623
lea edx, [edi - 1]
and edx, ebx
mov edi, ebx
mov eax, dword [ecx]
mov eax, dword [eax + edx*4]
test eax, eax
mov ebx, dword [ebp + 8]
je 0x4b84ad
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x4b84ad
cmp dword [ebp - 0x24], 2
mov dword [ebp - 0x20], edx
jae 0x4b8597
dec dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 4]
cmp eax, edi
jne 0x4b85d7
movsx eax, byte [edx + 0x13]
mov ecx, eax
test eax, eax
jns 0x4b8566
mov ecx, dword [edx + 0xc]
cmp ecx, dword [ebp - 0x18]
jne 0x4b85e3
test al, al
js 0x4b8574
lea eax, [edx + 8]
jmp 0x4b8577
mov eax, dword [edx + 8]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push eax
call fcn.005cb2cd
add esp, 0xc
test eax, eax
mov ebx, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
jne 0x4b85e3
mov esi, edx
jmp 0x4b84ad
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 4]
cmp eax, edi
jne 0x4b85f5
movsx eax, byte [edx + 0x13]
mov ecx, eax
test eax, eax
jns 0x4b85ae
mov ecx, dword [edx + 0xc]
cmp ecx, dword [ebp - 0x18]
jne 0x4b860c
test al, al
js 0x4b85bc
lea eax, [edx + 8]
jmp 0x4b85bf
mov eax, dword [edx + 8]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push eax
call fcn.005cb2cd
add esp, 0xc
test eax, eax
mov edx, dword [ebp - 0x10]
je 0x4b8590
jmp 0x4b860c
and eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x20]
jne 0x4b84ad
mov edx, dword [edx]
mov dword [ebp - 0x10], edx
test edx, edx
jne 0x4b854f
jmp 0x4b84ad
cmp eax, dword [ebp - 0x14]
jb 0x4b8601
xor edx, edx
div dword [ebp - 0x14]
mov eax, edx
cmp eax, dword [ebp - 0x20]
mov ebx, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
jne 0x4b861c
mov edx, dword [edx]
xor esi, esi
mov dword [ebp - 0x10], edx
test edx, edx
jne 0x4b8597
jmp 0x4b84ad
xor esi, esi
jmp 0x4b84ad
mov edx, ebx
cmp ebx, edi
mov edi, ebx
jb 0x4b8526
mov eax, edi
xor edx, edx
div dword [ebp - 0x14]
jmp 0x4b8526