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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x44
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [0x5c50b0]
xor ecx, ebp
mov dword [ebp - 0x10], ecx
mov byte [ebp - 0x50], 0
mov byte [ebp - 0x4f], 0
mov byte [ebp - 0x4e], 0
mov byte [ebp - 0x4d], 0
mov byte [ebp - 0x4c], 0
mov byte [ebp - 0x4b], 0
mov byte [ebp - 0x4a], 0
mov byte [ebp - 0x49], 0
mov byte [ebp - 0x48], 0
mov byte [ebp - 0x47], 0
mov byte [ebp - 0x46], 0
mov byte [ebp - 0x45], 0
mov byte [ebp - 0x44], 0
mov byte [ebp - 0x43], 0
mov byte [ebp - 0x42], 0
mov byte [ebp - 0x41], 0
mov byte [ebp - 0x40], 0
mov byte [ebp - 0x3f], 0
mov byte [ebp - 0x3e], 0
mov byte [ebp - 0x3d], 0
mov byte [ebp - 0x3c], 0
mov byte [ebp - 0x3b], 0
mov byte [ebp - 0x3a], 0
mov byte [ebp - 0x39], 0
mov byte [ebp - 0x38], 0
mov byte [ebp - 0x37], 0
mov byte [ebp - 0x36], 0
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x34], 0
mov byte [ebp - 0x33], 0
mov byte [ebp - 0x32], 0
mov byte [ebp - 0x31], 0
mov byte [ebp - 0x30], 0
mov byte [ebp - 0x2f], 0
mov byte [ebp - 0x2e], 0
mov byte [ebp - 0x2d], 0
mov byte [ebp - 0x2c], 0
mov byte [ebp - 0x2b], 0
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x29], 0
mov byte [ebp - 0x28], 0
mov byte [ebp - 0x27], 0
mov byte [ebp - 0x26], 0
mov byte [ebp - 0x25], 0
mov byte [ebp - 0x24], 0
mov byte [ebp - 0x23], 0
mov byte [ebp - 0x22], 0
mov byte [ebp - 0x21], 0
mov byte [ebp - 0x20], 0
mov byte [ebp - 0x1f], 0
mov byte [ebp - 0x1e], 0
mov byte [ebp - 0x1d], 0
mov byte [ebp - 0x1c], 0
mov byte [ebp - 0x1b], 0
mov byte [ebp - 0x1a], 0
mov byte [ebp - 0x19], 0
mov byte [ebp - 0x18], 0
mov byte [ebp - 0x17], 0
mov byte [ebp - 0x16], 0
mov byte [ebp - 0x15], 0
mov byte [ebp - 0x14], 0
mov byte [ebp - 0x13], 0
mov byte [ebp - 0x12], 0
mov byte [ebp - 0x11], 0
lea ebx, [ebp - 0x50]
push esi
push eax
push ebx
call fcn.005cdb00
add esp, 0xc
test esi, esi
jle 0x5cd9de
xor eax, eax
jmp 0x5cd989
mov ecx, eax
inc ecx
mov eax, ecx
cmp esi, ecx
je 0x5cd9a1
movzx ecx, byte [ebp + eax - 0x50]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x19
ja 0x5cd980
or cl, 0x20
mov byte [ebp + eax - 0x50], cl
jmp 0x5cd980
cmp esi, 4
jl 0x5cd9de
lea ebx, [ebp - 0x50]
mov eax, esi
mov edx, edi
nop dword [eax]
imul ecx, dword [ebx], 0x5bd1e995
mov esi, ecx
shr esi, 0x18
xor esi, ecx
imul ecx, esi, 0x5bd1e995
imul edx, edx, 0x5bd1e995
xor edx, ecx
add ebx, 4
mov edi, edx
mov ecx, ebx
cmp eax, 7
lea eax, [eax - 4]
mov esi, eax
ja 0x5cd9b0
jmp 0x5cd9e0
mov ecx, ebx
mov eax, edi
cmp esi, 1
je 0x5cda10
mov edx, esi
cmp esi, 2
je 0x5cda01
mov esi, 0
cmp edx, 3
jne 0x5cda1d
movzx edx, byte [ecx + 2]
shl edx, 0x10
jmp 0x5cda03
xor edx, edx
movzx esi, byte [ecx + 1]
shl esi, 8
or esi, edx
mov edx, esi
jmp 0x5cda12
xor edx, edx
movzx ecx, byte [ecx]
xor ecx, edx
imul esi, ecx, 0x5bd1e995
mov ecx, esi
shr ecx, 0x18
xor ecx, esi
imul ecx, ecx, 0x5bd1e995
imul eax, eax, 0x5bd1e995
xor eax, ecx
imul ecx, dword [ebp + 0xc], 0x5bd1e995
mov edx, ecx
shr edx, 0x18
xor edx, ecx
imul ecx, edx, 0x5bd1e995
imul eax, eax, 0x5bd1e995
xor eax, ecx
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
imul eax, ecx, 0x5bd1e995
mov esi, eax
shr esi, 0xf
xor esi, eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004010cb
mov eax, esi
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret