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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, edx
push ebx
mov ebx, eax
sub esp, 0x2c
cmp edx, 0x18
ja 0x423ca0
cmp edx, 0xc
ja 0x423c37
cmp edx, 4
ja 0x423c0c
lea eax, [eax + edx]
mov edx, 9
cmp eax, ebx
je 0x423bfc
imul ecx, ecx, 0xcc9e2d51
movsx edi, byte [ebx]
inc ebx
add ecx, edi
xor edx, ecx
jmp 0x423be8
mov eax, esi
call fcn.00425110
mov edx, eax
mov eax, ecx
jmp 0x423c8f
mov edi, dword [eax + esi - 4]
add ecx, dword [eax]
lea edx, [edx + edx*4]
lea eax, [ecx + esi]
shr esi, 1
call fcn.00425110
add edi, edx
and esi, 4
mov edx, eax
mov eax, edi
call fcn.00425110
mov edx, eax
mov eax, dword [ebx + esi]
add eax, 9
jmp 0x423c8f
mov edi, dword [ebx + 4]
mov eax, edx
shr eax, 1
mov dword [ebp - 0x1c], edi
mov edi, dword [ebx + edx - 8]
mov dword [ebp - 0x20], edi
mov edi, dword [ebx + eax]
mov eax, dword [ebx + eax - 4]
mov dword [ebp - 0x24], edi
mov edi, dword [ebx]
mov dword [ebp - 0x28], edi
mov edi, dword [ebx + edx - 4]
lea edx, [edx + ecx]
call fcn.00425110
mov edx, eax
mov eax, dword [ebp - 0x1c]
call fcn.00425110
mov edx, eax
mov eax, dword [ebp - 0x20]
call fcn.00425110
mov edx, eax
mov eax, dword [ebp - 0x24]
call fcn.00425110
mov edx, eax
mov eax, dword [ebp - 0x28]
call fcn.00425110
mov edx, eax
mov eax, edi
call fcn.00425110
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
jmp 0x425130
imul eax, edx, 0xcc9e2d51
add ecx, esi
imul edx, dword [ebx + edx - 4], 0xcc9e2d51
imul edi, dword [ebx + esi - 0xc], 0xcc9e2d51
rol edx, 0xf
imul edx, edx, 0x1b873593
rol edi, 0xf
imul edi, edi, 0x1b873593
xor ecx, edx
imul edx, dword [ebx + esi - 0x10], 0xcc9e2d51
rol ecx, 0xd
lea ecx, [ecx + ecx*4]
rol edx, 0xf
sub ecx, 0x19ab949c
imul edx, edx, 0x1b873593
xor ecx, edx
imul edx, dword [ebx + esi - 8], 0xcc9e2d51
rol ecx, 0xd
lea ecx, [ecx + ecx*4]
rol edx, 0xf
sub ecx, 0x19ab949c
imul edx, edx, 0x1b873593
xor edx, eax
rol edx, 0xd
lea edx, [edx + edx*4]
sub edx, 0x19ab949c
xor edx, edi
rol edx, 0xd
lea edx, [edx + edx*4]
lea edi, [edx - 0x19ab949c]
xor edx, edx
mov dword [ebp - 0x1c], edi
imul edi, dword [ebx + esi - 0x14], 0xcc9e2d51
rol edi, 0xf
imul edi, edi, 0x1b873593
add edi, eax
lea eax, [esi - 1]
mov esi, 0x14
rol edi, 0xd
lea edi, [edi + edi*4]
sub edi, 0x19ab949c
div esi
mov dword [ebp - 0x24], eax
mov esi, dword [ebx + 4]
imul edx, dword [ebx], 0xcc9e2d51
add ebx, 0x14
add edi, esi
rol edi, 0xd
rol edx, 0xf
imul eax, edi, 0xcc9e2d51
imul edx, edx, 0x1b873593
mov dword [ebp - 0x20], eax
imul eax, dword [ebx - 8], 0xcc9e2d51
xor ecx, edx
mov dword [ebp - 0x28], edx
rol ecx, 0xe
rol eax, 0xf
imul eax, eax, 0x1b873593
add eax, esi
lea esi, [ecx + ecx*4]
mov ecx, dword [ebp - 0x1c]
sub esi, 0x19ab949c
xor eax, esi
rol eax, 0xd
add eax, dword [ebx - 4]
lea esi, [eax + eax*4]
imul eax, dword [ebx - 0xc], 0xcc9e2d51
sub esi, 0x19ab949c
rol eax, 0xf
imul eax, eax, 0x1b873593
add eax, ecx
rol eax, 0xe
lea eax, [eax + eax*4]
sub eax, 0x19ab949c
xor eax, dword [ebx - 4]
mov dword [esp], eax
call fcn.00410544
mov dword [esp], esi
lea edi, [eax + eax*4]
call fcn.00410544
dec dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
lea ecx, [eax + edx]
jne 0x423d55
mov eax, dword [ebp - 0x1c]
ror edi, 0xb
add esp, 0x2c
imul edi, edi, 0xcc9e2d51
pop ebx
pop esi
ror eax, 0xb
imul eax, eax, 0xcc9e2d51
rol edi, 0xf
rol eax, 0xf
imul eax, eax, 0xcc9e2d51
add eax, ecx
rol eax, 0xd
lea eax, [eax + eax*4]
sub eax, 0x19ab949c
rol eax, 0xf
add eax, edi
pop edi
pop ebp
imul eax, eax, 0xcc9e2d51
rol eax, 0xd
lea eax, [eax + eax*4]
sub eax, 0x19ab949c
rol eax, 0xf
imul eax, eax, 0xcc9e2d51
ret
mov edx, eax
shr edx, 0x10
xor eax, edx
imul eax, eax, 0x85ebca6b
mov edx, eax
shr edx, 0xd
xor edx, eax
imul edx, edx, 0xc2b2ae35
mov eax, edx
shr eax, 0x10
xor eax, edx
ret