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

Disassembly:
sub esp, 8
push ebx
mov ebx, dword [esp + 0x14]
push ebp
push esi
push edi
cmp ebx, 0x18
ja 0x4d19ec
cmp ebx, 0xc
ja 0x4d1904
cmp ebx, 4
ja 0x4d1863
xor esi, esi
xor edx, edx
lea edi, [esi + 9]
test ebx, ebx
je 0x4d1836
mov ebp, dword [esp + 0x1c]
movsx ecx, byte [edx + ebp]
inc edx
imul eax, esi, 0x3361d2af
sub ecx, eax
mov esi, ecx
xor edi, esi
cmp edx, ebx
jb 0x4d1821
imul eax, ebx, 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
xor eax, edi
ror eax, 0x13
add eax, 0xfaddaf14
lea ecx, [eax + eax*4]
imul eax, esi, 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
jmp 0x4d18cb
mov edx, dword [esp + 0x1c]
lea esi, [ebx + ebx*4]
mov eax, ebx
mov edi, 0x318f97d9
shr eax, 1
and eax, 4
imul eax, dword [eax + edx], 0x3361d2af
sub edi, eax
mov eax, dword [edx]
add eax, ebx
ror edi, 0x11
imul eax, eax, 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
xor eax, esi
ror eax, 0x13
add eax, 0xfaddaf14
lea ecx, [eax + eax*4]
mov eax, dword [edx + ebx - 4]
add eax, esi
imul eax, eax, 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
xor ecx, eax
ror ecx, 0x13
lea ecx, [ecx + ecx*4]
add ecx, 0xe6546b64
imul eax, edi, 0x1b873593
xor ecx, eax
ror ecx, 0x13
pop edi
pop esi
pop ebp
lea ecx, [ecx + ecx*4]
add ecx, 0xe6546b64
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul ecx, eax, 0x85ebca6b
pop ebx
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul eax, eax, 0xc2b2ae35
mov edx, eax
shr edx, 0x10
xor edx, eax
mov eax, edx
add esp, 8
ret
mov esi, dword [esp + 0x1c]
mov edx, ebx
shr edx, 1
pop edi
imul eax, dword [edx + esi - 4], 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
xor eax, ebx
ror eax, 0x13
add eax, 0xfaddaf14
lea ecx, [eax + eax*4]
imul eax, dword [esi + 4], 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
xor ecx, eax
imul eax, dword [esi + ebx - 8], 0xcc9e2d51
ror ecx, 0x13
ror eax, 0x11
lea ecx, [ecx + ecx*4]
imul eax, eax, 0x1b873593
add ecx, 0xe6546b64
xor ecx, eax
imul eax, dword [edx + esi], 0xcc9e2d51
ror ecx, 0x13
ror eax, 0x11
lea ecx, [ecx + ecx*4]
imul eax, eax, 0x1b873593
add ecx, 0xe6546b64
xor ecx, eax
imul eax, dword [esi], 0xcc9e2d51
ror ecx, 0x13
ror eax, 0x11
lea ecx, [ecx + ecx*4]
imul eax, eax, 0x1b873593
add ecx, 0xe6546b64
xor ecx, eax
imul eax, dword [esi + ebx - 4], 0xcc9e2d51
ror ecx, 0x13
pop esi
pop ebp
pop ebx
ror eax, 0x11
lea ecx, [ecx + ecx*4]
imul eax, eax, 0x1b873593
add ecx, 0xe6546b64
xor ecx, eax
ror ecx, 0x13
lea ecx, [ecx + ecx*4]
add ecx, 0xe6546b64
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul ecx, eax, 0x85ebca6b
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0xc2b2ae35
mov edx, ecx
shr edx, 0x10
xor edx, ecx
mov eax, edx
add esp, 8
ret
mov esi, dword [esp + 0x1c]
imul edx, ebx, 0xcc9e2d51
imul eax, dword [esi + ebx - 4], 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
xor eax, ebx
ror eax, 0x13
add eax, 0xfaddaf14
lea ecx, [eax + eax*4]
imul eax, dword [esi + ebx - 0x10], 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
xor ecx, eax
imul eax, dword [esi + ebx - 8], 0xcc9e2d51
ror ecx, 0x13
add ecx, 0xfaddaf14
ror eax, 0x11
imul eax, eax, 0x1b873593
lea ebp, [ecx + ecx*4]
xor eax, edx
ror eax, 0x13
add eax, 0xfaddaf14
lea ecx, [eax + eax*4]
imul eax, dword [esi + ebx - 0xc], 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
xor ecx, eax
ror ecx, 0x13
add ecx, 0xfaddaf14
lea eax, [ecx + ecx*4]
mov dword [esp + 0x10], eax
lea ecx, [ebx - 1]
imul eax, dword [esi + ebx - 0x14], 0xcc9e2d51
lea ebx, [esi + 0x10]
ror eax, 0x11
imul eax, eax, 0x1b873593
add eax, edx
ror eax, 0x13
lea eax, [eax + eax*4]
add eax, 0xe6546b64
mov dword [esp + 0x20], eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [esp + 0x14], edx
nop word [eax + eax]
imul eax, dword [ebx - 0x10], 0xcc9e2d51
lea ebx, [ebx + 0x14]
ror eax, 0x11
imul esi, eax, 0x1b873593
imul eax, dword [ebx - 0x18], 0xcc9e2d51
ror eax, 0x11
imul ecx, eax, 0x1b873593
mov eax, esi
xor eax, ebp
mov ebp, esi
ror eax, 0x12
add ecx, dword [ebx - 0x20]
lea eax, [eax + eax*4]
add eax, 0xe6546b64
xor ecx, eax
mov eax, dword [esp + 0x20]
add eax, dword [ebx - 0x20]
ror eax, 0x13
imul eax, eax, 0x3361d2af
ror ecx, 0x13
add ecx, dword [ebx - 0x14]
sub ebp, eax
imul eax, dword [ebx - 0x1c], 0xcc9e2d51
lea ecx, [ecx + ecx*4]
add ecx, 0xe6546b64
ror eax, 0x11
imul eax, eax, 0x1b873593
add eax, dword [esp + 0x10]
ror eax, 0x12
lea eax, [eax + eax*4]
add eax, 0xe6546b64
xor eax, dword [ebx - 0x14]
sub dword [esp + 0x14], 1
bswap eax
lea edx, [eax + eax*4]
mov eax, ecx
bswap eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], eax
jne 0x4d1ab0
ror eax, 0xb
imul eax, eax, 0xcc9e2d51
ror edx, 0xb
pop edi
pop esi
ror eax, 0x11
imul eax, eax, 0x3361d2af
sub ebp, eax
imul eax, edx, 0xcc9e2d51
ror ebp, 0x13
ror eax, 0x11
lea ecx, [ebp - 0x52250ec]
lea ecx, [ecx + ecx*4]
ror ecx, 0x11
add ecx, eax
imul eax, ecx, 0xcc9e2d51
pop ebp
pop ebx
ror eax, 0x13
lea eax, [eax + eax*4]
add eax, 0xe6546b64
ror eax, 0x11
imul eax, eax, 0xcc9e2d51
add esp, 8
ret