Function at 0xdd1107
Capabilities:
Authenticate hmac
Check for vm using instruction vpcext
Encode data using base64
Encode data using xor
Encrypt data using chaskey
Execute anti-debugging instructions
Parse pe header

Disassembly:
dec ecx
lea eax, [ebx + edx*8 + 0x14859b2e]
inc ebp
xor edi, edx
cwde
inc ecx
not edi
inc ecx
xor ebx, ebx
dec eax
sub dword [esp + edx - 0x3229b34], 0x78b6d0a5
inc ecx
mov ebp, 0xba3c3aae
inc ecx
ror edi, 1
dec eax
rol ebx, 0x83
inc si
xadd dword [esp + ebx - 0x7812c482], ebp
setl byte [esp + edx*2 - 0x6453668]
inc ecx
inc edi
dec edi
lea ebp, [ebx + ebx + 0x521ab36]
jmp 0xfd2383
and ecx, dword [esp + ecx]
call fcn.00c15773
mov ecx, 0xba11ff80
movsx ebx, cx
dec eax
bswap ebx
dec eax
mov esi, dword [edi]
inc ecx
mov ebx, 0xf22c648f
inc ecx
sub ebx, 0x7a19a00b
dec ebp
lea ebp, [ebx + ebx*2 + 0x6f019222]
inc esi
mov ebp, dword [esi + ebx - 0x7812c484]
dec esp
lea ecx, [ebx + ecx + 0x4918e20e]
dec ecx
lea edx, [ebx - 0x74f02950]
push ebx
dec edx
lea edi, [edi + ebx - 0x7812c480]
dec esp
lea esi, [ebx - 0xb439f5e]
inc sp
add esi, ebx
rol bx, 0x22
inc esi
mov dword [edi + ebx - 0x7812c484], ebp
sub ebx, dword [esp + edx*2 - 0x6453668]
inc esp
and dword [esp + ebx*2 + 4], ebx
dec ecx
sar ecx, 0xc8
inc esp
mov edi, dword [ebp + ebx]
dec eax
lea ebp, [ebp + ebx*2 + 4]
jne 0xc42da6
xor bl, cl
and dl, ah
call 0x10dd37d
mov eax, dword [ebp]
mov ecx, 0x224fe36
inc esp
movsx ebx, cx
dec edx
lea ebx, [ebx*4 - 0xc506355]
dec eax
lea ebp, [ebp + ecx*2 - 0x449fc68]
inc esp
movsx ebp, bl
dec ebp
lea edi, [ebp - 0x52590376]
inc ecx
xor eax, edx
dec eax
lea esi, [ebx + ecx*4 - 0x646022d9]
jmp 0xda52ac
inc esp
xor dword [esp + edx*2 - 0x6453668], edi
inc ecx
pop edx
shl eax, 0x3e
dec ebp
arpl di, di
inc sp
xchg ebx, ebx
dec ebp
adc esp, edi
inc ecx
jmp esp
neg esi
lea eax, [eax + ecx*2 - 0x32d5d183]
inc cx
and ecx, ebx
inc ebp
or bl, ch
ror eax, 2
dec ecx
xchg edi, ecx
dec ebp
or ebp, ebx
inc ecx
lea eax, [edi + eax - 0x255239c8]
neg eax
inc ecx
mov ecx, 0xdb06e6ad
inc ebp
and ebx, ecx
dec eax
lea edx, [ebx + 0x4ab48fab]
rol eax, 1
inc ecx
lea eax, [edi + eax + 0x7717a4fe]
inc cx
xor ecx, 0x41661a9f
shr edi, 0x6b
bts ecx, 0xd
bswap eax
dec eax
lea ecx, [ebx + ebx*4 - 0x457839e0]
ror eax, 3
and cx, 0xc501
inc ebp
add ecx, ebx
inc esp
movsx esi, dx
inc ecx
push edx
inc ebp
xor bh, ch
inc edx
xor dword [esp + edi - 0x22400a8], eax
inc ecx
inc ebx
inc ebp
movzx edx, bh
inc esp
movzx eax, dx
inc ecx
pop edx
dec eax
arpl ax, ax
inc cx
not ebp
neg dx
dec ecx
shl edi, 0x5c
dec esp
adc esp, eax
dec eax
shl ecx, 0xb7
inc cx
bts edi, ecx
inc ecx
sub ebx, ecx
mov edi, dword [ebx + edi - 0x3da1b2ac]
js 0xedab42
jp fcn.00d45932
xor al, bl
mov dword [esp + ecx*8], ecx
shl cl, 0xa5
xor al, 0x3a
jmp 0xd07a2c
xor ecx, ebx
cwd
lea edx, [eax*8 + 0x40e9608]
xchg edx, eax
neg ecx
bswap ecx
sub eax, eax
btc eax, 0x1f
xor ecx, 0x5c331a30
shr ax, 0x21
or dl, ah
not ax
ror ecx, 2
and eax, edx
rol dl, 0x83
jnp 0xf32929
jmp 0xeb1d2d
mov esi, dword [ebp + ecx*4 - 0x1b410]
inc ecx
movsx edx, bx
inc esp
movzx ecx, dl
dec edi
lea eax, [ecx + ebx*8 + 0x45360f03]
dec ecx
add ebp, ebx
call fcn.01018991
mov ecx, 0xe68b5917
mov eax, dword [edi]
xchg ch, cl
xadd cl, ch
lea edx, [ecx*4 - 0x21dda965]
lea edi, [edi + edx - 0x784fbc57]
xchg edx, ecx
xor eax, ebx
and cx, cx
xor dx, dx
push edx
xor eax, 0xc3b23520
sal dword [esp + ecx - 0x784fbc5b], cl
xor dl, byte [esp + ecx - 0x784fbc58]
lea ecx, [ecx + edx*4 - 0x337f47d5]
ror eax, 2
inc ecx
inc edi
and ecx, 0xcda11183
inc ecx
ror edi, 1
inc ecx
bswap edi
movzx esi, al
inc sp
bts ebx, ecx
inc ecx
push edx
jae 0x107107d
mov edx, 0xeb20de34
movzx eax, dx
mov ecx, dword [esi + eax*8 - 0x6f1a0]
lea esi, [esi + eax*4 - 0x378cc]
bt ax, 0xaf
jae 0x1046843
jb 0xe6058a
dec ecx
rol dx, 0xeb
neg ax
and eax, edx
xor ecx, 0xac3dd506
lea ecx, [edx + ecx + 0x203aee21]
btr ax, 0x10
sbb eax, edx
neg ecx
inc ecx
shr dx, 0xa2
not ecx
xadd ax, dx
adc ax, 0xd18b
xor ebx, ecx
add ebp, ecx
cdq
cdq
movzx ecx, byte [esi]
and al, ah
adc esi, 1
cwde
add eax, edx
neg eax
xor cl, bl
xor cl, dl
ror cl, 1
sar eax, 0x5f
adc dx, ax
adc cl, 0x30
sal al, 0x47
seta al
xor cl, 0xc
sar al, 0x81
sbb cl, 0x8a
neg cl
btc ax, 0x3b
jae 0xd288c7
mov eax, 0x5d3f2a9b
wait
sub bh, byte [edi]
aas
pop ebp
or ax, 0xcc20
mov eax, dword [eax + ebp - 0x5d3feebb]
mov edx, 0xa2a1fb0f
lea edx, [edx*2 + 0x79204a09]
mov edx, dword [ebp + 4]
adc ebp, 4
call fcn.00f57584
jno 0xf3299b
dec ebp
clc
xor eax, 0x3c4ecfa0
jno 0xf32a23
pop ss
aam 0x3d
jne 0xf3299d
sub al, 0xc2
invalid
sub dl, byte [edx - 0x14fc5f55]
cld
pop ds
test dword [edx + 0x76], eax
adc byte [edi + 0x6d289011], 0x1a
and eax, 0x20b357d8
adc al, 0xed
das
push es
pop esp
jecxz 0xf32a71
xchg edx, eax
mul edi
outsd dx, dword [esi]
aam 0x85
stosb byte es:[edi], al
jg 0xf32a74
xchg esp, eax
cld
adc dword [eax], 0xffffffa3
mov eax, 0xbf6469f5
jl 0xf32ad7
lodsd eax, dword [esi]
fsubr dword [ecx - 0x48]
sub dword [edx], 0x447cf440
stosb byte es:[edi], al
or eax, 0xbdca1cf9
wait
popal
jne 0xf32a8f
hlt
retf 0x9bbd
xchg edx, eax
in al, dx
scasb al, byte es:[edi]
shr byte [ebx - 0x6b], 0xf6
and eax, dword [edx]
clc
xchg ebp, eax
mul byte [ebx]
add bh, al
xchg edi, eax
in eax, dx
movsb byte es:[edi], byte [esi]
push edi
pop es
mov bl, 0xb9
jns 0xf32abe
and dh, byte [ebx - 0x1a]
sahf
jns 0xf32a5f
xor eax, 0xbd063ddf
mov edi, 0xf637781e
mov edi, 0x9c191cce
jg 0xf32af5
pushfd
rcl byte [edx - 0x5e]
sbb byte [esp + ebp], ah
mov edi, 0x7be07cf3
mov word [edx], ds
sub al, 0x3f
cmp ecx, edx
cmp eax, 0x28d8c23f
fsubr dword [eax]
jg 0xf32a66
dec ebp
leave
in eax, dx
or al, 0x14
outsb dx, byte [esi]
jo 0xf32aab
wait
sbb ebp, dword [ecx + 0x4e]
push ss
pop edx
outsd dx, dword [esi]
push 0xffffffffffffff8d
fld xword [ecx]
jmp 0xb480083f
mov dword [ecx + 0x63], esi
push ss
invalid
test eax, 0x32d81930
dec ebx
stc
dec edi
lodsd eax, dword [esi]
invalid
inc ecx
rol edi, 2
inc ax
inc ecx
dec edi
inc ecx
sal ch, 0x27
inc ecx
pop ebp
inc ecx
ror edi, 1
dec eax
sal ebx, 0x7a
ja 0xf05c71
inc ecx
mov ebx, 0x20b42d96
inc ebp
movzx ebx, byte [ebx + ebp - 0x20b42d96]
mov ecx, 0x37b0fabf
dec eax
lea ebp, [ecx + ebp - 0x37b0fabe]
dec esp
lea edi, [ecx + 0x68a26a9d]
inc esp
movzx ecx, cl
dec edx
lea ecx, [ecx + edi*4 - 0x7ede24d7]
inc ebp
xor bl, dl
inc ecx
movsx edx, cx
inc ecx
neg bl
inc ecx
xor edi, 0xee15a006
inc ecx
inc edi
inc ecx
mov esi, ecx
inc ecx
adc bl, 0xd
inc ecx
ror bl, 1
inc eax
dec dh
call fcn.00e4ace9
jae 0xd944af