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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x547ae6
mov eax, dword fs:[0]
push eax
sub esp, 0x9c
mov eax, dword [0x58a710]
xor eax, ebp
mov dword [ebp - 0x10], 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.00404730
mov ecx, eax
test ecx, ecx
jne 0x4f0516
push 0x80004005
call fcn.004049a0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x98], eax
mov dword [ebp - 4], 0
test esi, esi
je 0x4f06c4
mov edx, esi
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x4f0538
sub edx, edi
je 0x4f06c4
push esi
lea ecx, [ebp - 0x94]
call fcn.004f00e0
mov edx, dword [eax]
mov byte [ebp - 4], 1
test edx, edx
jne 0x4f0561
xor ecx, ecx
jmp 0x4f056f
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4f0566
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x98]
call fcn.00405640
mov eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x90]
cmp eax, ecx
je 0x4f0595
push eax
call fcn.00524eae
add esp, 4
mov eax, dword [ebp - 0x98]
xor edi, edi
mov ebx, eax
mov esi, dword [eax - 0xc]
mov edx, esi
xor edx, 0x19870714
mov dword [ebp - 0x9c], edx
cmp esi, 8
jl 0x4f062c
mov eax, esi
shr eax, 3
mov dword [ebp - 0xa8], eax
neg eax
lea esi, [esi + eax*8]
mov eax, edx
mov dword [ebp - 0xa0], esi
mov esi, dword [ebp - 0xa8]
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 0x4f05d3
mov esi, dword [ebp - 0xa0]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x9c]
cmp esi, 4
jl 0x4f0658
mov ecx, dword [ebx]
add ebx, 4
imul edx, ecx, 0x5bd1e995
mov ecx, edx
shr ecx, 0x18
xor ecx, edx
imul edx, dword [ebp - 0x9c], 0x5bd1e995
imul ecx, ecx, 0x5bd1e995
xor edx, ecx
sub esi, 4
sub esi, 1
je 0x4f0679
sub esi, 1
je 0x4f0670
sub esi, 1
jne 0x4f0684
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 - 0x98], edx
jmp 0x4f06e1
xorps xmm0, xmm0
movlpd qword [ebp - 0xa4], xmm0
mov ecx, dword [ebp - 0xa4]
mov ebx, dword [ebp - 0xa0]
mov dword [ebp - 0x98], 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 0x4f0700
mov ecx, dword [edi]
push edi
mov esi, dword [ecx]
call dword [esi + 4]
mov eax, dword [ebp - 0x98]
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 - 0x10]
xor ecx, ebp
call fcn.005193a0
mov esp, ebp
pop ebp
ret 4