Function at 0x6384d0
Capabilities:
Check for vm using instruction vpcext
Encode data using xor

Disassembly:
outsd dx, dword [esi]
jne 0x638536
push 0x444e5748
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x638520
inc esp
imul esi, dword [edx + 0x65], 0x49557463
inc eax
inc eax
push ebp
inc ebp
inc ecx
inc ecx
pop edi
dec esi
pop eax
pop edx
add byte [eax], al
and al, 5
aas
inc ebx
jb 0x63855f
popal
je 0x638562
push ebx
je 0x638579
insb byte es:[edi], dx
push eax
popal
jb 0x638579
jb 0x638549
dec eax
push edi
dec esi
inc esp
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x638555
inc esp
imul esi, dword [edx + 0x65], 0x49557463
inc eax
inc eax
push ebp
inc ebp
inc ecx
inc ecx
dec edx
push eax
inc ebp
inc ecx
push eax
inc ebp
inc ecx
push esi
inc esp
push ebp
dec ecx
pop eax
insd dword es:[edi], dx
insb byte es:[edi], dx
push eax
popal
jb 0x6385a8
jb 0x638578
jb 0x638578
xor al, byte [eax + 0x40]
pop edx
add byte [eax], al
invalid
ja 0x63858e
insb byte es:[edi], dx
popal
jae 0x6385c2
dec esi
popal
insd dword es:[edi], dx
inc ecx
outsb dx, byte [esi]
push ebx
je 0x6385d2
insb byte es:[edi], dx
inc eax
dec eax
push edi
dec esi
inc esp
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x6385a8
inc esp
imul esi, dword [edx + 0x65], 0x49557463
inc eax
inc eax
push ebp
inc ebp
inc ecx
inc ecx
pop eax
push eax
inc ebp
inc ecx
push eax
inc ebp
inc edx
inc edi
push eax
inc ebp
inc ecx
dec ecx
inc eax
pop edx
add byte [eax], al
invalid
push ebx
je 0x6385f2
je 0x6385f8
inc ebx
push 0x65676e61
inc eax
push esp
outsd dx, dword [esi]
jne 0x638602
push 0x444e5748
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x6385ec
inc esp
imul esi, dword [edx + 0x65], 0x49557463
inc eax
inc eax
dec ebp
inc ebp
inc ecx
inc ecx
pop eax
inc edi
inc edi
inc eax
pop edx
add byte [0x65473f07], ah
je 0x63860c
aas
inc edi
je 0x63860c
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x63860e
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x638626
jb 0x638647
jbe 0x638643
jb 0x63861e
inc esp
imul esi, dword [edx + 0x65], 0x49557463
inc eax
inc eax
push ebp
inc ebp
inc ecx
inc ecx
push eax
inc ebp
inc esp
push esi
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x638638
xor al, byte [eax + 0x58]
pop edx
add byte [eax], al
in eax, dx
push cs
aas
push esp
outsd dx, dword [esi]
jae 0x638678
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x63864d
inc eax
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x638665
jb 0x638686
jbe 0x638682
jb 0x63865d
inc esp
imul esi, dword [edx + 0x65], 0x49557463
inc eax
inc eax
push ebp
inc ebp
inc ecx
inc ecx
pop eax
pop eax
pop edx
add byte [eax], al
lock or edi, dword [edi]
push ecx
jne 0x63869b
jb 0x6386b1
dec ecx
outsb dx, byte [esi]
je 0x6386a1
jb 0x6386a4
popal
arpl word [ebp + 0x40], sp
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
outsb dx, byte [esi]
je 0x63869a
jb 0x6386bb
jbe 0x6386b7
imul esp, dword [ebp + 0x72], 0x72694440
arpl word gs:[ebp + edx*2 + 0x49], si
jb 0x638692
inc esp
imul esi, dword [edx + 0x65], 0x49557463
inc eax
inc eax
push ebp
inc ebp
inc ecx
inc ecx
dec edx
inc ecx
inc ebp
inc edx
push ebp
pop edi
inc edi
push ebp
dec ecx
inc esp
inc eax
inc eax
push eax
inc ebp
inc ecx
push eax
inc ebp
inc ecx
pop eax
inc eax
pop edx
add al, al
add edi, dword [edi]
aas
inc ecx
push edx
inc ax
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x6386d8
jb 0x6386f9
jbe 0x6386f5
jb 0x6386d0
inc esp
imul esi, dword [edx + 0x65], 0x49557463
jb 0x6386f9
arpl word [ebp + edx*2 + 0x49], si
inc eax
inc eax
push ebp
inc ebp
inc ecx
inc ecx
dec ebx
pop eax
pop edx
add byte [edi], al
adc byte [edi], bh
aas
je 0x638708
push eax
jb 0x63871b
jbe 0x638717
jb 0x638701
dec edi
jo 0x638728
imul ebp, dword [edi + 0x6e], 0x6c454073
jae 0x6386f9
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x638711
jb 0x638732
jbe 0x63872e
jb 0x638709
inc esp
imul esi, dword [edx + 0x65], 0x49557463
dec ecx
inc eax
inc eax
push ebp
inc ebp
inc ecx
inc ecx
dec edx
push eax
inc ebp
inc ecx
push edi
xor al, 0x50
jb 0x63874f
jbe 0x63874b
jb 0x638735
jo 0x63875c
imul ebp, dword [edi + 0x6e], 0x40404073
pop edx
add byte [eax], al
or al, 8
aas
inc edi
je 0x638749
jb 0x63876a
jo 0x638762
jb 0x638773
jns 0x638757
popal
insb byte es:[edi], dx
jne 0x63876a
inc eax
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x63875e
jb 0x63877f
jbe 0x63877b
imul esp, dword [ebp + 0x72], 0x72694440
arpl word gs:[ebp + edx*2 + 0x49], si
jb 0x638756
inc esp
imul esi, dword [edx + 0x65], 0x49557463
je 0x638772
dec ecx
inc eax
inc eax
push ebp
inc ebp
inc ecx
inc ecx
dec edx
dec eax
push eax
inc ebp
inc ecx
push ebp
je 0x63878d
push esi
inc ecx
push edx
dec ecx
inc ecx
dec esi
push esp
inc eax
inc eax
inc eax
pop edx
add byte [eax], al
dec dword [edi]
aas
je 0x6387a0
dec eax
outsd dx, dword [esi]
jae 0x6387b9
push edx
popal
ja 0x63878e
insb byte es:[edi], dx
insd dword es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x6387a0
push eax
jb 0x6387c1
jbe 0x6387bd
jb 0x638798
jb 0x638798
inc eax
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x6387b0
jb 0x6387d1
jbe 0x6387cd
jb 0x6387a8
inc esp
imul esi, dword [edx + 0x65], 0x49557463
jb 0x6387d1
arpl word [ebp + edx*2 + 0x49], si
inc eax
inc eax
push ebp
inc ebp
inc ecx
inc ecx
dec edx
push eax
inc ebp
inc ecx
push eax
inc ebp
inc ecx
push ebp
dec ecx
push edx
popal
ja 0x6387c8
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x6387da
jb 0x6387fb
jbe 0x6387f7
imul esp, dword [ebp + 0x72], 0x706d6953
insb byte es:[edi], dx
inc eax
jb 0x6387e5
imul ebp, dword [ebp + 0x70], 0x4040656c
inc eax
inc eax
pop edx
add byte [eax + 0x68533f0e], al
outsd dx, dword [esi]
ja 0x6387e7
push 0x6f43776f
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x63880d
js 0x63881e
dec ebp
outsb dx, byte gs:[esi]
jne 0x6387ef
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x638807
jb 0x638828
jbe 0x638824
jb 0x6387ff
jb 0x6387ff
inc esp
imul esi, dword [edx + 0x65], 0x49557463
jb 0x638828
arpl word [ebp + edx*2 + 0x49], si
inc eax
inc eax
push ebp
inc ebp
inc ecx
inc ecx
dec edx
pop eax
pop edx
add byte [eax], al
pop edx
or bh, byte [edi]
add byte [edx + 0xa], bl
aas
dec esi
popal
jbe 0x638842
popal
popal
je 0x638842
inc eax
inc ebp
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x638836
push eax
jb 0x638857
outsd dx, dword [esi]
jbe 0x638853
jb 0x63882e
inc esp
imul esi, dword [edx + 0x65], 0x49557463
inc eax
inc eax
push ebp
inc ebp
inc ecx
inc ecx
dec edx
push edi
xor al, 0x4e
dec esi
popal
jbe 0x63886c
popal
je 0x63886c
inc esp
imul esi, dword [edx + 0x65], 0x6f697463
outsb dx, byte [esi]
inc eax
inc eax
push eax
inc ebp
imul ebp, dword [edi + 0x6e], 0x45504040
inc ecx
push eax
inc ebp
inc ecx
push ebp
dec ecx
push edx
popal
ja 0x638863
insb byte es:[edi], dx
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x638875
push eax
jb 0x638896
jbe 0x638892
imul esp, dword [ebp + 0x72], 0x67617246
insd dword es:[edi], dx
jb 0x638873
jb 0x638890
popal
insd dword es:[di], dx
outsb dx, byte gs:[esi]
je 0x638875
inc eax
inc eax
pop edx
add byte [eax], al
inc esi
or byte [edi], bh
inc edi
je 0x638893
jne 0x6388b1
outsb dx, byte [esi]
je 0x6388ae
insd dword es:[edi], dx
dec ecx
inc eax
inc ebp
outsd dx, dword [esi]
jb 0x63889a
push ebx
push edx
arpl word gs:[ecx + 0x6e], si
arpl word [ecx + 0x6e], si
outsb dx, byte [esi]
insb byte es:[di], dx
inc eax
arpl word gs:[ebp + edx*2 + 0x49], si
push ebp
dec ecx