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

Disassembly:
mov ah, 4
fsub qword [edi + 0x41106f]
movsb byte es:[edi], byte [esi]
sbb byte [edi + 0x36128077], dl
je 0xa22f4b
stosd dword es:[edi], eax
xchg byte [eax], ch
add eax, 0x1d572f6a
inc ebp
and byte [eax + 5], al
cvtps2pd xmm2, qword [eax]
and byte [ecx], ah
pop es
xchg dword [ecx - 0x307cd690], ecx
lodsb al, byte [esi]
or edi, 0xffffffac
jb 0xa22f77
jb 0xa22ed9
invalid
iretd
std
daa
and al, byte [ebp + 0x102e2877]
inc dword [edi + eax*4 - 0x69]
dec edi
fidiv word [ebx]
push ds
pushal
add byte es:[eax], dh
push edx
jo 0xa22f68
inc edx
xchg ecx, eax
mov eax, 0xe744e91
push cs
xchg dword [ebx], ebp
daa
stc
and dl, ah
push edx
jo 0xa22fa4
jo 0xa22f8a
inc esi
out 8, eax
xor byte [ebx], al
pop ds
scasd eax, dword es:[edi]
mov ecx, dword [esi - 0xd]
pop edi
add cl, al
mov cl, 0x4e
fcomp dword [esi]
inc edx
in al, 0xc9
in al, dx
mov cl, byte [edi + 0xf]
invalid
inc eax
pop eax
nop
add eax, 0xf841a9c
jno 0xa22f3e
push edx
jmp 0xa22fdd
scasd eax, dword es:[edi]
in al, 0x84
aam 0x52
sub al, 0x52
add dword [edx + 0x28], esi
cmp dword [ebx + edx*2 + 0x2c], esi
push edx
and al, 0x8f
nop
add eax, dword [eax]
push ebx
sub al, 0x52
sbb al, 0x48
push ds
leave
add byte [ebx + edx*2 + 0x2c], cl
push edx
nop
inc edx
push ds
nop
pop eax
push ebx
sub al, 3
aad 0xc5
in eax, 0x3e
test byte [ecx - 0x6876ef9a], al
lodsb al, byte [esi]
ficomp dword [ecx + 0x41]
pop edx
add eax, 0x6381d617
xor eax, dword [eax - 0x17]
jae 0xa22fb3
dec esp
pop esi
dec esi
adc dword [edx + 0xf], edi
cmpsd dword [esi], dword es:[edi]
add al, 0xb6
push esp
add al, 0xbd
jg 0xa23007
or byte [ecx], dh
xchg edx, eax
adc esi, dword [edx + 0xe]
jb 0xa23017
sbb byte [edx - 0xe], al
jb 0xa23061
jne 0xa23012
nop
int3
inc esi
or dword [ecx + 0x50], esi
dec esi
dec esp
adc esp, edi
jge 0xa22fe6
test al, 0xf6
sbb byte [edx - 0x28bfcf5f], al
add ebx, dword [edx + 9]
sub dh, byte [eax + 0x92badc0]
adc al, 0xe4
inc ecx
or cl, ch
test dword [ebx + 0x1b], edx
adc byte [edx - 0x7b], al
mov al, 0x85
mov cl, 0x21
adc byte [esi - 0x6752f67d], dl
sub byte [edi], dl
pop es
enter 0xffffffffffffb050, 6
daa
mov al, 0xb0
dec esp
cmp dl, bh
and eax, 0x53831a50
inc edx
enter 0x1016, 0x25
scasd eax, dword es:[edi]
push eax
cmp dword [ebp - 0x75], esi
int1
lahf
xor cl, dh
jns 0xa22ffb
rol byte [esi], 0x58
pop edi
dec eax
sub dword [ecx], ebp
jecxz 0xa23083
xchg ecx, eax
pop edx
mov edi, 0x7372da8b
and dword [eax], 0x704d84ae
xor byte [edx - 0x74], al
pop es
sub byte [ecx + 0x2f44ff00], cl
inc edx
inc dword [edi + ebp + 0x42]
or dword [ebx], eax
sub esp, dword [esp + ebp]
lcall 0xf5, 0x835548d
mov ecx, 0xcaf32a0
sub edx, dword [0x58c3c208]
cmp al, byte [ebx + ebp*4]
push es
jo 0xa23071
cmp dh, byte [edx + 8]
in eax, 0x20
mov eax, dword [0x255348fd]
or ch, ah
and byte [ecx + 0x255348fd], ah
dec eax
push ebx
and eax, 0x765f0848
dec eax
or byte [edi + 0x76], bl
dec ebx
sar byte [edi], 1
jb 0xa2311d
ror byte [0x8f40510c], 1
pop ss
and al, 0xd0
test dword [edx - 0x28], edi
salc
dec ebp
add eax, 0x301a2262
mov dh, 0x98
rol ebx, 0xf
daa
inc edx
add dword [bx + 0x32], ebx
dec esp
cmp eax, edx
xchg esp, eax
sal byte [edx], 1
jg 0xa23149
inc eax
xchg esi, eax
retf 0x5ca7
aam 0xa0
aaa
cmc
bound edx, qword [ecx + 0x27]
pushal
pop ds
dec ecx
adc dh, byte [eax]
push 0x5b
push cs
jb 0xa230ab
adc edi, edi
push esp
jo 0xa2314e
call dword [eax + esi*2 + 0x30]
xor byte [esp + edx*2 + 0x70], al
test byte [esp + ebx + 0x30483042], bh
inc esp
in al, 0x24
inc esp
push esp
jo 0xa230a6
mov esp, 0x4830421c
xor byte [esp + 0x24], al
scasd eax, dword es:[edi]
in al, 0x54
push esp
jo 0xa23179
sal byte [eax], 1
dec ebp
and dword [edx + 0x70549c97], edx
dec ecx
xchg edx, eax
xchg edi, eax
pushfd
push esp
jo 0xa23183
rcl byte [edi]
nop
jl 0xa23108
xor byte [ebp - 8], al
pop ss
jo 0xa23175
cmp al, 0xc9
or edx, dword [edx - 0x1f8fa9b3]
dec ebp
push esi
jo 0xa2312d
popal
jo 0xa23134
and al, 0xf
fnstenv [eax]
dec esi
xor byte [esi + 0x56], al
jo 0xa2311a
dec ebx
xchg esp, eax
mov esp, 0xe4f5d048
aad 0x21
dec ecx
lahf
push ebp
jo 0xa23110
inc esp
sbb al, 0xde
adc ah, byte [ecx - 0x7f6dd074]
adc al, 0x2c
pop edi
jns 0xa2313f
leave
stosd dword es:[edi], eax
dec eax
call dword [esi + 0x70]
inc edi
push esi
jo 0xa231c3
shl byte [edx], 1
mov eax, 0x245f5728
or dword [eax + 0x10], ebx
aas
and al, 9
pop eax
adc byte [edi], bh
das
cmp ecx, ecx
mov edi, edi
xor byte [ecx + 0x57], cl
jo 0xa231d9
rcr byte [esi], 1
nop
inc ebx
and al, 0x30
inc ebp
clc
pop ss
jo 0xa23216
push ecx
jb 0xa231e8
xor byte [eax + ecx*2 - 0x30], al
jns 0xa231e6
jb 0xa231c8
pop eax
jo 0xa231f2
rol byte [eax], 1
in al, 0x25
daa
pop eax
jo 0xa231f9
rcr byte [esi], 1
and cl, byte [edi - 0xe]
xor byte [eax + 0x30], cl
dec eax
invalid
and al, 0x4f
add edx, esi
pop ecx
pop ecx
jo 0xa23239
pop ecx
jo 0xa2320a
push ecx
push eax
inc ebp
sal byte [eax], 1
inc esp
cmp bh, ah
pop ecx
out 0x59, eax
jo 0xa23217
and byte [edi - 0x80], bl
xor byte [esp + esi*8 - 0x12], al
pop ecx
jo 0xa231d7
inc eax
xchg esp, eax
rol byte [eax + edx*8 + 0x70], 1
pop edx
jo 0xa231b8
push ebx
and eax, 0x7064641f
ja 0xa23251
jo 0xa2326d
pop edx
jo 0xa2321a
pop ds
and al, 0x4f
inc edi
inc esp
sar bh, 1
pop edx
jo 0xa23228
pop edi
add dl, dh
cmp al, 0x66
jo 0xa23210
pop ebx
jo 0xa2322b
add dword [eax - 0x2fbc47c4], eax
xor byte [esi + 0x43], cl
mov eax, 0x4e30d043
inc ebx
and al, 0x27
daa
inc eax
xor byte [esi + 0x30], cl
push eax
enter 0xffffffffffff9229, 0x4f
xor byte [edi - 0x6e], cl
dec esi
xor byte [eax - 0x38], dl
sub dword [edx - 0x6db0cfb1], edx
add al, 0x1c
loope 0xa23248
and byte [edx], bl
dec edi
xchg edx, eax
sbb cl, byte [edi - 0x6e]
xchg edi, eax
inc ebx
inc ebp
push dword [eax]
dec ebp
xor byte [esi - 7], cl
and cl, bh
sub byte [ecx + ecx*8 + 0x49], al
dec ecx
pop esp
jo 0xa231d0
inc ebx
add al, 0xb2
xor byte [eax + 0x30], dl
push eax
sbb byte [ecx], ah
cmpsd dword [esi], dword es:[edi]
sub byte [eax], dh
push eax
or dl, byte es:[esp + edx*4]
int3
add eax, 0xd18350e0
sub eax, 0xa7880a60
xor eax, esp
jae 0xa23227
dec esp
mov esi, 0xcc614f13
lea esp, [ecx - 0x1e]
cmp al, 0xef
push ss
xchg edi, eax
push es
mov eax, dword [0xbc9a81]
movsd dword es:[edi], dword [esi]
jmp [esi]
pushal
mov esi, section.UPX1
lea edi, [esi - 0x543000]
mov dword [edi + 0x622c38], 0x81dc0e52
push edi
or ebp, 0xffffffff
jmp 0xbd239a
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0xbd23a1
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0xbd2390
mov eax, 1
add ebx, ebx
jne 0xbd23b3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0xbd23c4
jne 0xbd23e3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0xbd23e3
dec eax
add ebx, ebx
jne 0xbd23d0
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0xbd23a8
add ebx, ebx
jne 0xbd23df
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0xbd2435
xor ecx, ecx
sub eax, 3
jb 0xbd23fb
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0xbd246a
sar eax, 1
mov ebp, eax
jmp 0xbd2406
add ebx, ebx
jne 0xbd2406
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0xbd23d4
inc ecx
add ebx, ebx
jne 0xbd2414
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0xbd23d4
add ebx, ebx
jne 0xbd2421
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0xbd2416
jne 0xbd2432
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0xbd2416
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0xbd2454
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0xbd2446
jmp 0xbd2396
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0xbd2454
add edi, ecx
jmp 0xbd2396
pop esi
mov edi, esi
mov ecx, 0x5b9f02
mov al, 0xe8
repne scasb al, byte es:[edi]
jne 0xbd248f
cmp byte [edi], 0xcd
jne 0xbd2474
mov eax, dword [edi]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
add eax, esi
stosd dword es:[edi], eax
jmp 0xbd2472
lea edi, [esi + 0x7cb000]
mov eax, dword [edi]
or eax, eax
je 0xbd24d7
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x7d8d1c]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x7d8e98]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0xbd2495
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x7d8e9c]
or eax, eax
je 0xbd24d1
mov dword [ebx], eax
add ebx, 4
jmp 0xbd24b2
call dword [esi + 0x7d8eac]
mov ebp, dword [esi + 0x7d8ea0]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x21f]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0xbd250b
sub esp, 0xffffff80
jmp 0xa22f00