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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x664
mov edi, ecx
mov esi, edx
mov ebx, eax
mov eax, dword [edi]
mov dword [esp + 0x660], eax
cmp eax, 0x640
jne 0x446762
mov eax, dword [edi + 4]
mov dword [esp + 0x65c], eax
test ebx, ebx
je 0x446551
mov eax, ebx
call fcn.00408720
mov eax, ebx
call fcn.0043c3f0
mov edx, dword [0x8017b4]
test esi, esi
je 0x44685c
mov eax, esi
call fcn.00460040
mov dword [esp + 0x658], eax
mov ebx, eax
test ebx, ebx
je 0x44684e
movsx ebx, byte [esi]
test ebx, ebx
je 0x446847
xor ebx, ebx
mov eax, esi
movsx ecx, byte [eax]
cmp ecx, 0x2f
je 0x4465a0
movzx ecx, cl
movzx ecx, byte [ecx + 0x5b30a0]
inc ecx
movsx ecx, cl
add ebx, ecx
jmp 0x4465a5
lea esi, [eax + 1]
xor ebx, ebx
lea eax, [ebx + esi]
movsx ecx, byte [eax]
test ecx, ecx
jne 0x446589
push 0x38
call fcn.00403564
pop ecx
mov dword [esp + 0x654], eax
test eax, eax
je 0x44682a
lea eax, [ebx + 1]
push eax
call fcn.0046788c
pop ecx
mov edx, eax
mov eax, dword [esp + 0x654]
mov dword [eax + 0x14], edx
test edx, edx
je 0x44680d
push ebx
push esi
push edx
call dword [0x5d048c]
add esp, 0xc
mov eax, dword [esp + 0x654]
mov eax, dword [eax + 0x14]
xor ecx, ecx
mov byte [eax + ebx], cl
mov eax, ebx
xor ecx, ebx
cmp ebx, 4
jl 0x44663c
mov dword [esp + 0x650], edi
imul edx, dword [esi], 0x5bd1e995
mov edi, edx
shr edi, 0x18
xor edx, edi
imul edi, edx, 0x5bd1e995
imul ecx, ecx, 0x5bd1e995
xor ecx, edi
add esi, 4
add eax, 0xfffffffc
cmp eax, 4
jge 0x44660f
mov edi, dword [esp + 0x650]
cmp eax, 3
je 0x44664d
cmp eax, 2
je 0x446656
cmp eax, 1
je 0x44665f
jmp 0x44666a
movzx eax, byte [esi + 2]
shl eax, 0x10
xor ecx, eax
movzx eax, byte [esi + 1]
shl eax, 8
xor ecx, eax
movzx eax, byte [esi]
xor ecx, eax
imul ecx, ecx, 0x5bd1e995
mov esi, ecx
shr esi, 0xd
xor ecx, esi
imul esi, ecx, 0x5bd1e995
mov eax, esi
shr eax, 0xf
xor esi, eax
and esi, 0x7fffffff
xor ecx, ecx
mov edx, dword [esp + 0x654]
mov dword [edx + 0x1c], esi
mov dword [edx + 0x18], ebx
mov byte [edx + 0x30], cl
mov ebx, 1
mov dword [edx + 0x28], ebx
mov dword [edx + 0x2c], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x658]
call fcn.004600d8
mov eax, dword [esp + 0x654]
push eax
call fcn.004643b0
mov esi, eax
lea eax, [esp + 0x14]
lea ebx, [edi + 8]
mov edx, dword [esp + 0x664]
push edx
push ebx
push eax
call dword [0x5d048c]
add esp, 0x10
mov eax, dword [esp + 0x88]
mov dword [esp + 0x658], eax
mov dword [esi + 0x78], eax
mov ebx, dword [esp + 0x8c]
mov dword [esi + 0x7c], ebx
mov ecx, dword [esi + 0x90]
lea edx, [eax + eax]
add edx, edx
cmp eax, 0x2000
jg 0x4467e4
test ecx, ecx
je 0x4467cf
mov eax, edx
imul eax, ebx
lea edx, [edx + eax + 4]
push edx
push ecx
call fcn.00467d28
add esp, 8
test eax, eax
je 0x446783
mov dword [esi + 0x90], eax
test eax, eax
je 0x446771
mov edx, dword [esp + 0x660]
lea ebx, [edi + edx + 8]
mov ecx, dword [esp + 0x65c]
push ecx
push ebx
push eax
call dword [0x5d048c]
xor eax, eax
add esp, 0x670
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push 1
push 0x1a64e
call fcn.004649a4
add esp, 8
mov eax, 0xffffffff
add esp, 0x664
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push ebx
mov edx, dword [esp + 0x65c]
push edx
push 0
push 0x8083f4
push 0x807270
mov dword [esp + 0x668], eax
call fcn.00429460
mov eax, dword [esp + 0x668]
push 0
push 1
push 0x1965e
mov dword [esp + 0x674], eax
call fcn.00464974
mov eax, dword [esp + 0x674]
add esp, 0x20
jmp 0x44672e
mov eax, edx
imul eax, ebx
lea edx, [edx + eax + 4]
push edx
call fcn.0046788c
pop ecx
jmp 0x44672a
push ebx
mov edx, eax
push edx
push 0x8083cc
push 0x807270
call fcn.0040c5ac
push 1
push 0x186aa
call fcn.004649d0
add esp, 0x18
xor eax, eax
jmp 0x44672e
push 1
push 0x186aa
call fcn.004649d0
add esp, 8
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x4466b5
push 1
push 0x186aa
call fcn.004649d0
add esp, 8
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x4466b5
xor ebx, ebx
jmp 0x4465af
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x4466b5
push 1
push 0xdbbb4
call fcn.004649d0
add esp, 8
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x4466b5