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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
mov esi, dword [ebp + 0xc]
mov eax, dword [0x5c4738]
xor eax, ebp
mov dword [ebp - 0x10], eax
movzx edx, byte [esi + 0xb]
mov edi, esi
test dl, dl
jns 0x44d3c5
mov edi, dword [esi]
mov edx, dword [esi + 4]
mov eax, edx
mov dword [ebp - 0x28], edi
mov ebx, edx
mov dword [ebp - 0x2c], edx
cmp edx, 4
jb 0x44d458
mov eax, dword [ebp - 0x2c]
lea ebx, [eax - 4]
test bl, 4
jne 0x44d40a
mov esi, eax
mov edi, dword [ebp - 0x28]
imul eax, dword [edi], 0x5bd1e995
mov edx, eax
shr edx, 0x18
xor edx, eax
imul edx, edx, 0x5bd1e995
imul eax, esi, 0x5bd1e995
xor eax, edx
add edi, 4
mov edx, ebx
jmp 0x44d40f
mov edx, eax
mov edi, dword [ebp - 0x28]
cmp ebx, 4
jb 0x44d458
imul esi, dword [edi], 0x5bd1e995
mov ebx, esi
shr ebx, 0x18
xor ebx, esi
imul esi, ebx, 0x5bd1e995
imul eax, eax, 0x5bd1e995
xor eax, esi
imul esi, dword [edi + 4], 0x5bd1e995
mov ebx, esi
shr ebx, 0x18
xor ebx, esi
imul esi, ebx, 0x5bd1e995
imul eax, eax, 0x5bd1e995
xor eax, esi
add edi, 8
add edx, 0xfffffff8
cmp edx, 3
ja 0x44d414
mov ebx, edx
cmp ebx, 1
je 0x44d479
cmp ebx, 2
je 0x44d470
cmp ebx, 3
jne 0x44d484
movzx edx, byte [edi + 2]
shl edx, 0x10
xor eax, edx
movzx edx, byte [edi + 1]
shl edx, 8
xor eax, edx
movzx edx, byte [edi]
xor edx, eax
imul eax, edx, 0x5bd1e995
mov edx, eax
shr edx, 0xd
xor edx, eax
imul esi, edx, 0x5bd1e995
mov eax, esi
shr eax, 0xf
xor esi, dword [ecx + 8]
xor esi, eax
mov edx, 0x7f4a7c15
mov eax, esi
mul edx
imul esi, esi, 0x9e3779b9
add esi, edx
mov edx, dword [ecx + 4]
mov dword [ebp - 0x24], ecx
mov eax, dword [ecx + 0x10]
mov ecx, edx
dec ecx
and ecx, esi
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x44d53b
mov dword [ebp - 0x20], ecx
xor ecx, 1
cmp esi, dword [eax + ecx*4]
je 0x44d543
mov edi, dword [ebp - 0x28]
movzx eax, byte [esi + 0xb]
mov ecx, eax
test al, al
jns 0x44d4dc
mov ecx, dword [esi + 4]
cmp ecx, dword [ebp - 0x2c]
jne 0x44d529
mov ecx, dword [esi]
mov edx, esi
test al, al
cmovs edx, ecx
js 0x44d511
test al, al
je 0x44d579
mov edx, dword [ebp - 0x28]
cmp byte [edx], cl
jne 0x44d529
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x44d579
mov dl, byte [esi + ecx]
lea ebx, [ecx + 1]
cmp dl, byte [edi + ecx]
mov ecx, ebx
je 0x44d4fe
jmp 0x44d529
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x44d579
push eax
push dword [ebp - 0x28]
push edx
call fcn.004cf0db
add esp, 0xc
test eax, eax
je 0x44d579
mov esi, dword [esi + 0x28]
test esi, esi
jne 0x44d4cf
xor esi, esi
xor edi, edi
xor eax, eax
mov ecx, dword [ebp - 0x20]
jmp 0x44d581
xor esi, esi
xor edi, edi
xor eax, eax
jmp 0x44d581
mov ecx, dword [ebp - 0x20]
and ecx, 0xfffffffe
mov dword [ebp - 0x20], ecx
mov ebx, dword [eax + ecx*4]
lea eax, [ebp - 0x18]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 4], ecx
lea esi, [ebp - 0x1c]
mov ecx, ebx
push eax
push esi
call fcn.005590e0
mov eax, dword [esi]
add ebx, 4
cmp eax, ebx
je 0x44d530
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x44d576
mov dword [ecx], eax
mov esi, dword [eax + 0x18]
mov ecx, dword [ebp - 0x20]
mov eax, ecx
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp + 8]
mov dword [ebx], esi
mov dword [ebx + 4], edi
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d25a3
mov eax, ebx
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret 0xc