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

Disassembly:
call fcn.00b37ebd
mov edx, 0x6d218b84
bts edx, 0x96
lea eax, [edx + edx - 0x6c54eb46]
movzx ax, byte [ebp + eax - 0x6e6e2bc2]
movzx ecx, dx
jae 0xc5cf49
add dl, cl
xor dl, 0x21
pop eax
xor dl, cl
ror cl, 0xe1
rol dl, 1
cbw
bts ecx, 0x39
xor bl, dl
dec dword [esp + ecx*2 - 0x3ffffffe]
lea edx, [esp + edx + 4]
lea eax, [ecx*8 + 0x65ae1785]
movzx cx, byte [edx + ecx - 0x1fffffff]
call fcn.00d1f71e
jl 0xa91196
sal dword [esi - 0x7948a100], cl
jbe 0xa91201
sub byte ds:[edi - 0x79], dh
add al, 0xa
dec esi
or ebp, dword [edx + eax*8]
ret
push edx
inc esp
jle 0xa9124d
pop ebp
inc ebp
jae 0xa9126e
fld xword [esi + 0x5fd247ea]
pop es
push ecx
lodsb al, byte [esi]
or dh, byte [eax - 0x7d46a105]
sti
mov esp, 0x5fa163e6
add al, 5
or dword [esp + eax - 5], edi
jmp 0xfca5860a
ljmp 0xac51:0x75fd247
dec ebp
or ebp, dword [edx + edi]
cmp ebp, dword [ecx + 0x3b345399]
fxam
out 0xe2, eax
out dx, al
mov bh, 0x72
outsd dx, dword [esi]
imul esp, dword [edi + 0xd], 0xa08a04fd
pop es
retf 0x713
js 0xa9120b
sti
lahf
inc esp
ja 0xa9125f
mov edx, 0xbba42aa6
aas
adc byte [edx + ecx*8 + 0x37], bl
inc ebp
ficom word [ebp + 0x2f]
fild dword [edi + 0x58]
inc ebp
pop es
aam 0x31
pushfd
pop edi
mov esi, 0xb19d4284
mov ecx, 0x573cd44
sti
sbb eax, 0x6c9e22b
sti
adc byte [edx + 0x34], bh
sti
cli
dec ecx
invalid
hlt
sbb esp, dword [ebx]
sbb al, 0xbb
adc edx, dword [edi]
adc al, byte [ecx - 0x1a]
sub dword [ebx + 0x2a52b9e0], 0x76
jbe 0xb54f31
loopne 0xb54eec
push edx
sub dh, byte [esi + 0x76]
stc
or byte gs:[edi + ebp + 2], cl
pushfd
xor ecx, dword [esi + 4]
pushfd
jge 0xb54f78
adc dword [edx - 0x1465690], ecx
cld
invalid
test byte [ecx + 0x4b], ch
adc dl, ch
mov edi, 0xb1129627
jae 0xb54f41
in eax, dx
jle 0xb54f26
inc ebx
stc
or dl, byte [edx]
mov bl, byte [edi]
push esi
adc ah, byte [esi]
add eax, 0x8b8e69a8
invalid
lodsb al, byte [esi]
sub al, 0xd
invalid
shl si, 0x2f
mov edi, dword [esp + esi - 0x14867fe0]
jne 0xb87175
mov esp, 0x79802034
jmp 0xb54fc3
cli
mov byte [ecx + 0x19], dh
not byte [esi]
xor edi, dword [ecx + 0x51]
or dh, byte [ebp - 0x36ee0cd1]
mov ch, 0x2f
adc ecx, ecx
mov ebp, 0x6d0849ca
fisttp word [ebx + 0x465ac199]
jo 0xb54fad
sar byte [edi], cl
fsub qword [esi + ebx*2 + 0x59]
jge 0xb54f65
into
in eax, 0x8f
add cl, byte [ebp + ebp + 0x1cbaa09a]
mov ebp, ebp
xor al, 0xd1
imul eax
cwde
jecxz 0xb5504c
in eax, dx
adc ebp, 0xffffffad
mov dl, 0xe
jo 0xb55024
cmp ecx, edi
fcomp st(1)
invalid
mov dh, 6
call fcn.00c6c002
mov edx, 0x6b20929c
lea ebp, [edx + ebp - 0x6b2092a0]
movsx ecx, dx
mov eax, dword [edx + ebp - 0x6b20929c]
not edx
xor edx, ecx
push edx
xor eax, ebx
xor word [esp + edx - 0x6b20ffff], 0xdf8e
btc cx, dx
bswap eax
sbb edx, 0x727c42a
add dword [eax], eax
fist word [esi + ecx*4 - 0x44f09921]
ror dword [edi], 1
enter 0xffffffffffffda81, 0x2a
les esp, [edi]
pop es
or cl, ch
rol word [esp + edx - 0x63f93bd3], 0x66
rol eax, 1
sub cl, cl
xor dx, cx
sub ecx, edx
neg eax
and dword [esp + edx - 0x63f929d4], 0x20134306
not eax
dec cx
jge 0xc6f03e
xor ebx, eax
sar dword [esp + edx - 0x63f929d4], cl
adc esi, eax
mov edx, dword [edx + edi - 0x63f929d4]
sar cl, 0x63
mov ecx, dword ss:[edx]
mov eax, dword [esp]
mov dword [edi + eax*8 - 0x200000], ecx
mov dword [esp + eax - 0x40000], esi
ret
neg edi
ror edi, 2
imul ebp, ebp
neg edi
rol ecx, 0xc7
bswap edi
imul ecx, ebp
adc ebp, esi
adc edi, edx
btr ebp, ecx
movzx edx, cl
bts ebp, esi
mov dword [esp + esi*4 - 0x5219ffe4], ebx
mov dword [esp + edx - 0x37], eax
mov ebp, esp
mov eax, esi
movsx ebx, dx
lea esi, [ebp + esi*4 - 0x521a00e8]
mov esp, esi
mov ebx, edi
mov ecx, 0x2c242b83
mov edx, 0
sub ebx, edx
jmp 0xa91169
mov dword [esp + esi*4 - 0x5218b7fc], ecx
pop ecx
mov dword [esp + esi*2 - 0x290c5c02], edx
pushfd
lea ecx, [esi + esi*8 - 0xa6fedc3]
mov edx, 0xbe1477b6
push ebx
push ebp
mov edx, 0
movsx ebp, cl
sub ecx, ebp
rol ebp, 0x3a
push edi
mov dword [esp + esi - 0x14862df9], edx
jne 0xb54fa8
dec ecx
xor ebx, ecx
add esi, ecx
add ax, 0x38ab
mov ax, word [ebp + edx - 0xfc97]
setnp dl
call fcn.00bfecaf
mov edx, 0xf9bb059d
mov ecx, dword [ebp]
mov eax, edx
not dl
sal dx, 0xa8
mov edx, dword [ebp + 4]
call int.00bab3ac
mov cl, byte [ebp + ecx*2 - 0x11706]
ror edx, 0x8d
sar dl, 0xa3
lea ebp, [ebp + edx - 0x5c236aff]
shl al, cl
neg dl
shl dl, 0xc1
mov ecx, edx
mov word [ecx + ebp - 0x5c236bfe], ax
shl edx, cl
mov edx, dword [edx + edi - 0x80000000]
not ecx
lea eax, [ecx - 0x64e52480]
lea edi, [edi + eax - 0x3ef76f7d]
sub eax, 0xf1a34484
add ecx, 0x791ac19e
xor edx, ebx
not ecx
dec edx
bt eax, ecx
push eax
xor edx, 0x95b180af
shr eax, 0x1a
inc edx
xor edx, 0xccab0586
xor ebx, edx
or cx, 0x8d30
pop ecx
xor cx, ax
adc esi, edx
mov edx, 0x7a18232
sal edx, 0x86
jmp esi