Function at 0x446420
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 0x446676
mov eax, dword [edi + 4]
mov dword [esp + 0x65c], eax
test ebx, ebx
je 0x446465
mov eax, ebx
call fcn.00408720
mov eax, ebx
call fcn.0043c344
mov edx, dword [0x8016b0]
test esi, esi
je 0x446770
mov eax, esi
call fcn.0045fe5c
mov dword [esp + 0x658], eax
mov ebx, eax
test ebx, ebx
je 0x446762
movsx ebx, byte [esi]
test ebx, ebx
je 0x44675b
xor ebx, ebx
mov eax, esi
movsx ecx, byte [eax]
cmp ecx, 0x2f
je 0x4464b4
movzx ecx, cl
movzx ecx, byte [ecx + 0x5b30a0]
inc ecx
movsx ecx, cl
add ebx, ecx
jmp 0x4464b9
lea esi, [eax + 1]
xor ebx, ebx
lea eax, [ebx + esi]
movsx ecx, byte [eax]
test ecx, ecx
jne 0x44649d
push 0x38
call fcn.00403564
pop ecx
mov dword [esp + 0x654], eax
test eax, eax
je 0x44673e
lea eax, [ebx + 1]
push eax
call fcn.0046769c
pop ecx
mov edx, eax
mov eax, dword [esp + 0x654]
mov dword [eax + 0x14], edx
test edx, edx
je 0x446721
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 0x446550
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 0x446523
mov edi, dword [esp + 0x650]
cmp eax, 3
je 0x446561
cmp eax, 2
je 0x44656a
cmp eax, 1
je 0x446573
jmp 0x44657e
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.0045fef4
mov eax, dword [esp + 0x654]
push eax
call fcn.004641c0
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 0x4466f8
test ecx, ecx
je 0x4466e3
mov eax, edx
imul eax, ebx
lea edx, [edx + eax + 4]
push edx
push ecx
call fcn.00467b38
add esp, 8
test eax, eax
je 0x446697
mov dword [esi + 0x90], eax
test eax, eax
je 0x446685
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.004647b4
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.004293ac
mov eax, dword [esp + 0x668]
push 0
push 1
push 0x1965e
mov dword [esp + 0x674], eax
call fcn.00464784
mov eax, dword [esp + 0x674]
add esp, 0x20
jmp 0x446642
mov eax, edx
imul eax, ebx
lea edx, [edx + eax + 4]
push edx
call fcn.0046769c
pop ecx
jmp 0x44663e
push ebx
mov edx, eax
push edx
push 0x8083cc
push 0x807270
call fcn.0040c5ac
push 1
push 0x186aa
call fcn.004647e0
add esp, 0x18
xor eax, eax
jmp 0x446642
push 1
push 0x186aa
call fcn.004647e0
add esp, 8
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x4465c9
push 1
push 0x186aa
call fcn.004647e0
add esp, 8
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x4465c9
xor ebx, ebx
jmp 0x4464c3
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x4465c9
push 1
push 0xdbbb4
call fcn.004647e0
add esp, 8
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x4465c9