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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x70
mov edx, dword [ebp + 8]
mov eax, dword [0x742040]
xor eax, ebp
mov dword [ebp - 0x10], eax
movsx eax, byte [edx + 0xb]
test eax, eax
jns 0x4fcec8
mov esi, dword [edx]
mov dword [ebp - 0x5c], esi
test al, al
jns 0x4fcabe
mov eax, dword [edx + 4]
mov ebx, dword [ebp - 0x5c]
mov edx, eax
mov dword [ebp - 0x60], eax
cmp eax, 4
jb 0x4fcb06
mov eax, dword [ebp - 0x60]
mov edx, eax
mov ebx, dword [ebp - 0x5c]
nop word cs:[eax + eax]
imul esi, dword [ebx], 0x5bd1e995
mov edi, esi
shr edi, 0x18
xor edi, esi
imul esi, edi, 0x5bd1e995
imul eax, eax, 0x5bd1e995
xor eax, esi
add ebx, 4
add edx, 0xfffffffc
cmp edx, 3
ja 0x4fcae0
cmp edx, 2
je 0x4fcc3c
cmp edx, 3
je 0x4fcc33
cmp edx, 1
je 0x4fcc45
lea edx, [ecx + 0x20]
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x68], ecx
mov esi, dword [ecx + 0x24]
test esi, esi
je 0x4fcc80
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
imul eax, ecx, 0x5bd1e995
mov edi, eax
shr edi, 0xf
xor edi, eax
mov ecx, esi
shr ecx, 1
and ecx, 0x55555555
mov eax, esi
sub eax, ecx
mov ecx, eax
and ecx, 0x33333333
shr eax, 2
and eax, 0x33333333
add eax, ecx
mov ecx, eax
shr ecx, 4
add ecx, eax
and ecx, 0xf0f0f0f
imul eax, ecx, 0x1010101
shr eax, 0x18
mov dword [ebp - 0x7c], eax
cmp eax, 1
jbe 0x4fcebe
mov edx, edi
cmp edi, esi
jb 0x4fcb97
mov eax, edi
xor edx, edx
div esi
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
mov dword [ebp - 0x6c], edx
mov eax, dword [eax + edx*4]
test eax, eax
je 0x4fcc80
mov ebx, dword [eax]
test ebx, ebx
je 0x4fcc80
lea eax, [esi - 1]
mov dword [ebp - 0x78], eax
mov eax, dword [ebx + 4]
cmp eax, edi
jne 0x4fcc10
movzx eax, byte [ebx + 0x13]
test al, al
mov ecx, dword [ebx + 0xc]
mov edx, eax
cmovs edx, ecx
cmp edx, dword [ebp - 0x60]
jne 0x4fcc2b
test al, al
jns 0x4fcc55
push ecx
push dword [ebp - 0x5c]
push dword [ebx + 8]
call fcn.0054265d
add esp, 0xc
test eax, eax
jne 0x4fcc2b
add ebx, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005412b6
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
cmp dword [ebp - 0x7c], 1
jbe 0x4fced0
cmp eax, esi
mov ecx, dword [ebp - 0x6c]
jb 0x4fcc27
xor edx, edx
div esi
mov eax, edx
cmp eax, ecx
jne 0x4fcc80
mov ebx, dword [ebx]
test ebx, ebx
jne 0x4fcbba
jmp 0x4fcc80
movzx edx, byte [ebx + 2]
shl edx, 0x10
xor eax, edx
movzx edx, byte [ebx + 1]
shl edx, 8
xor eax, edx
movzx edx, byte [ebx]
xor edx, eax
imul eax, edx, 0x5bd1e995
jmp 0x4fcb21
test eax, eax
je 0x4fcbeb
xor ecx, ecx
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x64], ecx
mov dl, byte [ebx + ecx + 8]
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x64]
cmp dl, byte [ecx + esi]
mov esi, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x64]
jne 0x4fcc2b
inc ecx
cmp eax, ecx
jne 0x4fcc5e
jmp 0x4fcbeb
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax + 0x18]
lea eax, [ebp - 0x40]
push eax
call fcn.0050fb30
mov eax, dword [ebp + 8]
movsx ebx, byte [eax + 0xb]
mov ecx, eax
test ebx, ebx
jns 0x4fcca8
mov ebx, dword [eax + 4]
mov ecx, dword [eax]
test ebx, ebx
js 0x4fcf1d
sete al
test ecx, ecx
mov dword [ebp - 0x5c], ecx
setne cl
or cl, al
je 0x4fcf2c
mov esi, dword [ebp - 0x40]
mov eax, dword [esi]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [0x73c768]
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
push ebx
push dword [ebp - 0x5c]
call edi
mov ebx, eax
mov esi, dword [ebp - 0x40]
test esi, esi
je 0x4fccf1
dec dword [esi + 4]
je 0x4fcf69
test bl, bl
mov edx, dword [ebp + 8]
je 0x4fcf16
mov dword [ebp - 0x5c], esp
push eax
sub esp, 0x10
mov ebx, esp
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 0xc]
mov byte [ebp - 0x60], al
mov esi, ebx
add esi, 4
cmp byte [edx + 0xb], 0
jns 0x4fcedb
mov ecx, esi
push dword [edx + 4]
push dword [edx]
call fcn.004e28a0
mov ecx, dword [ebp - 0x68]
mov dword [ebx], ecx
mov dl, byte [ebp - 0x60]
mov byte [ebx + 0x10], dl
mov eax, dword [esi + 8]
lea edi, [ebp - 0x58]
mov dword [edi + 8], eax
movsd xmm0, qword [esi]
movsd qword [edi], xmm0
mov byte [edi + 0xc], dl
xorps xmm0, xmm0
movsd qword [esi], xmm0
mov dword [esi + 8], 0
mov ecx, dword [ecx + 0x18]
push edi
call fcn.0050f950
mov dword [edi + 0x10], eax
mov edi, dword [ebx]
mov eax, edi
shr eax, 0xe
mov ecx, edi
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x74ac68]
bt ecx, eax
jae 0x4fcead
push edi
call fcn.004f6930
add esp, 4
mov dword [ebp - 0x44], edi
cmp byte [ebx + 0xf], 0
js 0x4fcf4a
mov esp, dword [ebp - 0x5c]
mov edx, dword [ebp + 8]
cmp byte [edx + 0xb], 0
jns 0x4fceee
lea ecx, [ebp - 0x40]
push dword [edx + 4]
push dword [edx]
call fcn.004e28a0
lea ecx, [ebp - 0x34]
cmp byte [ebp - 0x4d], 0
jns 0x4fcf02
push dword [ebp - 0x54]
push dword [ebp - 0x58]
call fcn.004e28a0
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x28], eax
mov esi, dword [ebp - 0x44]
mov eax, esi
shr eax, 0xe
mov ecx, esi
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x74ac68]
bt ecx, eax
jae 0x4fce9c
push esi
call fcn.004f6930
add esp, 4
mov dword [ebp - 0x20], esi
lea esi, [ebp - 0x18]
mov ecx, dword [ebp - 0x70]
lea eax, [ebp - 0x40]
push eax
push eax
push esi
call fcn.004fd080
mov ebx, dword [esi]
mov eax, dword [ebp - 0x20]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x74ac68]
bt edx, ecx
jae 0x4fce33
push eax
call fcn.004f6a60
add esp, 4
mov dword [ebp - 0x20], 0
cmp byte [ebp - 0x29], 0
jns 0x4fce4b
push dword [ebp - 0x34]
call fcn.00540380
add esp, 4
cmp byte [ebp - 0x35], 0
js 0x4fcf59
mov eax, dword [ebp - 0x44]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x74ac68]
bt edx, ecx
jae 0x4fce77
push eax
call fcn.004f6a60
add esp, 4
mov dword [ebp - 0x44], 0
cmp byte [ebp - 0x4d], 0
jns 0x4fce8f
push dword [ebp - 0x58]
call fcn.00540380
add esp, 4
test ebx, ebx
jne 0x4fcbeb
jmp 0x4fcf3b
mov eax, esi
shr eax, 0x15
mov byte [eax + 0x752c68], 1
jmp 0x4fcdfb
mov eax, edi
shr eax, 0x15
mov byte [eax + 0x752c68], 1
jmp 0x4fcd87
lea edx, [esi - 1]
and edx, edi
jmp 0x4fcb97
mov dword [ebp - 0x5c], edx
jmp 0x4fcab7
and eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x6c]
jmp 0x4fcc27
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
movsd xmm0, qword [edx]
movsd qword [esi], xmm0
jmp 0x4fcd29
mov eax, dword [edx + 8]
mov dword [ebp - 0x38], eax
movsd xmm0, qword [edx]
movsd qword [ebp - 0x40], xmm0
jmp 0x4fcdb1
mov eax, dword [ebp - 0x50]
mov dword [ecx + 8], eax
movsd xmm0, qword [ebp - 0x58]
movsd qword [ecx], xmm0
jmp 0x4fcdc9
xor ebx, ebx
jmp 0x4fcbee
push 0x6bcfdb
push 0x6bd0bf
call fcn.0057cbd0
push 0x6bd0c2
push 0x6bd0bf
call fcn.0057cbd0
push 0x6c60cf
push 0x6bd0bf
call fcn.0057cbd0
push dword [esi]
call fcn.00540380
add esp, 4
jmp 0x4fcd94
push dword [ebp - 0x40]
call fcn.00540380
add esp, 4
jmp 0x4fce55
mov eax, dword [esi]
mov edi, dword [eax + 0x18]
mov ecx, edi
call dword [0x73c768]
mov ecx, esi
push 1
call edi
jmp 0x4fccf1