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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x493206
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
mov eax, dword [0x4c9070]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
call fcn.00404a20
mov ecx, eax
test ecx, ecx
jne 0x446f56
push 0x80004005
call fcn.00404ad0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa0], eax
mov dword [ebp - 4], 0
test esi, esi
je 0x447124
mov edx, esi
lea edi, [edx + 2]
nop dword [eax + eax]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x446f80
sub edx, edi
sar edx, 1
je 0x447124
push 3
lea eax, [ebp - 0x98]
push esi
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x9c], eax
call fcn.00404030
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x9c]
test edx, edx
jne 0x446fc1
xor ecx, ecx
jmp 0x446fcf
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x446fc6
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0xa0]
call fcn.00403450
mov eax, dword [ebp - 0x9c]
lea ecx, [ebp - 0x98]
cmp eax, ecx
je 0x446ff5
push eax
call fcn.00471958
add esp, 4
mov eax, dword [ebp - 0xa0]
xor edi, edi
mov ebx, eax
mov esi, dword [eax - 0xc]
mov edx, esi
xor edx, 0x19870714
mov dword [ebp - 0xa4], edx
cmp esi, 8
jl 0x44708c
mov eax, esi
shr eax, 3
mov dword [ebp - 0xb0], eax
neg eax
lea esi, [esi + eax*8]
mov eax, edx
mov dword [ebp - 0xa8], esi
mov esi, dword [ebp - 0xb0]
imul edx, dword [ebx], 0x5bd1e995
imul eax, eax, 0x5bd1e995
imul edi, edi, 0x5bd1e995
mov ecx, edx
shr ecx, 0x18
xor ecx, edx
imul ecx, ecx, 0x5bd1e995
xor eax, ecx
mov ecx, dword [ebx + 4]
imul edx, ecx, 0x5bd1e995
add ebx, 8
mov ecx, edx
shr ecx, 0x18
xor ecx, edx
imul ecx, ecx, 0x5bd1e995
xor edi, ecx
sub esi, 1
jne 0x447033
mov esi, dword [ebp - 0xa8]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa0]
mov edx, dword [ebp - 0xa4]
cmp esi, 4
jl 0x4470b8
mov ecx, dword [ebx]
add ebx, 4
imul edx, ecx, 0x5bd1e995
mov ecx, edx
shr ecx, 0x18
xor ecx, edx
imul edx, dword [ebp - 0xa4], 0x5bd1e995
imul ecx, ecx, 0x5bd1e995
xor edx, ecx
sub esi, 4
sub esi, 1
je 0x4470d9
sub esi, 1
je 0x4470d0
sub esi, 1
jne 0x4470e4
movzx ecx, byte [ebx + 2]
shl ecx, 0x10
xor edi, ecx
movzx ecx, byte [ebx + 1]
shl ecx, 8
xor edi, ecx
movzx ecx, byte [ebx]
xor ecx, edi
imul edi, ecx, 0x5bd1e995
mov ecx, edi
shr ecx, 0x12
xor ecx, edx
imul edx, ecx, 0x5bd1e995
mov ecx, edx
shr ecx, 0x16
xor ecx, edi
imul esi, ecx, 0x5bd1e995
mov ecx, esi
shr ecx, 0x11
xor ecx, edx
xor edx, edx
imul ebx, ecx, 0x5bd1e995
mov ecx, ebx
shr ecx, 0x13
xor ecx, esi
imul ecx, ecx, 0x5bd1e995
or edx, ecx
mov dword [ebp - 0xa0], edx
jmp 0x447141
xorps xmm0, xmm0
movlpd qword [ebp - 0xac], xmm0
mov ecx, dword [ebp - 0xac]
mov ebx, dword [ebp - 0xa8]
mov dword [ebp - 0xa0], ecx
lea edi, [eax - 0x10]
mov dword [ebp - 4], 0xffffffff
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x447160
mov ecx, dword [edi]
push edi
mov esi, dword [ecx]
call dword [esi + 4]
mov eax, dword [ebp - 0xa0]
mov edx, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0046be2f
mov esp, ebp
pop ebp
ret 4