Function at 0x4016a0
Capabilities:
Encode data using xor

Disassembly:
push 0x417b70
call sub.MSVBVM60.DLL_ThunRTMain
add byte [eax], al
add byte [eax], al
add byte [eax], al
xor byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi + ebx*2 - 0x50], dl
dec byte [edx - 0x58b320bd]
sti
stosd dword es:[edi], eax
fucompp
pushal
lcall 0, 0x6c
add byte [ecx], al
add byte [eax], al
add byte [esi + 0x40], dl
call dword es:[esi + 0x40]
mov ch, 0xd8
mov al, 0xf5
mov eax, 0xb9fad6a8
movsb byte es:[edi], byte [esi]
mov esi, 0x57ff00df
inc edx
add byte [eax], al
add byte [eax], al
dec esp
xor dword [eax], eax
or edx, dword [eax]
loopne 0x4016bb
inc ecx
mov eax, 0x99496870
mov bl, 1
out dx, al
pop edi
push ebp
and eax, 0xc169bdbb
and cl, byte [edx - 0xc6bb42b]
test al, 0x64
mov ah, 0x66
aad 0x3a
dec edi
lodsd eax, dword [esi]
xor ebx, dword [ecx - 0x48ee309a]
or al, 0
stosb byte es:[edi], al
add byte [eax - 0x2d], ah
xchg ebx, eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
lds esp, [edx + 1]
add byte [esi + 0x60], ah
add dword [eax], eax
add byte [edx], cl
add byte [ecx + 0x74], al
popal
push edx
popal
jb 0x40175f
or eax, 0xb5000c01
fdiv dword [eax - 0x2957470b]
cli
mov ecx, 0xdfbea4
sbb dword [ecx], eax
add byte [edx], al
and al, byte [ecx]
and edx, dword [esi]
pushal
add dword [eax], eax
insb byte es:[edi], dx
je 0x40177f
add byte [esi], cl
pushal
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
pop es
add byte [eax], dh
xor byte [eax], al
add byte [ecx], al
add byte [eax], cl
add byte [eax + 0x7600000e], ch
add byte [eax], al
add byte [eax], ah
and byte [eax], al
add byte [ecx], al
add byte [eax], cl
add byte [eax + 0x1e000008], ch
sldt word [eax]
adc byte [eax], dl
add byte [eax], al
add dword [eax], eax
or byte [eax], al
push 0xc6000005
pop ss
add byte [eax], al
add byte [eax + 0x10000], 0x20
add byte [eax], ch
or byte [ecx], al
add byte [esi], ch
sbb eax, 0x30300000
add byte [eax], al
add dword [eax], eax
and byte [eax], al
test al, 0x25
add byte [eax], al
push esi
and eax, 0x20200001
add byte [eax], al
add dword [eax], eax
and byte [eax], al
test al, 0x10
add byte [eax], al
dec byte [edx + 1]
add byte [eax], dl
adc byte [eax], al
add byte [ecx], al
add byte [eax], ah
add byte [eax + 4], ch
add byte [eax], al
cmpsb byte [esi], byte es:[edi]
pop ebx
add dword [eax], eax
sub byte [eax], al
add byte [eax], al
xor byte [eax], al
add byte [eax], al
pushal
add byte [eax], al
add byte [ecx], al
add byte [eax], cl
add byte [eax], al
add byte [eax], al
add byte [eax], al
or dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [edx], ch
adc eax, dword [ecx]
add byte [esi], bh
and al, 8
add byte [edi + 0x2e], al
or al, 0
push ecx
push es
add byte [edi + 0x31], bl
add dword [eax], eax
inc ebp
sub al, 0x14
add byte [ebx + esi + 0x18], cl
add byte [ebx + 0x37], dl
pop ss
add byte [ebx + 0x37], ch
add byte [eax], al
push ebp
cmp al, 0x21
add byte [edi + 0x45], dh
add eax, dword [eax]
jno 0x401894
pop es
add byte [eax + 0x45], ch
sbb eax, dword [eax]
ja 0x4018a7
push ss
add byte [esp + edx*2 + 0x1f], bh
add byte [ebx + eax*2 + 0x27], bl
add byte [ebp + 0x4a], ah
and eax, 0x214d7200
add byte [ebp + 0x50], ch
add byte cs:[esi + edx*2 + 0x26], bh
add byte [ebp + 0x54], ch
xor eax, 0x3e506a00
add byte [esi + 0x59], dh
xor eax, 0x3f617c00
add byte [eax + 0x60], bh
push ecx
add byte [ebp - 0x6bfffeba], al
inc eax
add byte [eax], al
xchg esp, eax
dec esi
add byte [eax], al
mov dword [esi + 3], edx
add byte [ecx - 0x7cfffaa4], bl
push eax
adc dword [eax], eax
mov byte [edi + 0x1a], dl
add byte [edx + ebx*2 + 0x5caa0012], dl
pop edx
adc al, byte [eax]
stosb byte es:[edi], al
pop esp
add dword [eax], eax
cdq
bound edx, qword [eax + eax]
cmpsb byte [esi], byte es:[edi]
imul ecx, dword [ecx], 0xa68b200
add byte [eax - 0x45fff28e], ch
jae 0x4018c6
add byte [edx - 0x4fffed97], ah
insd dword es:[edi], dx
mov al, 0x6d
adc al, byte [eax]
mov cl, 0x6e
pop ds
add byte [edi + esi*2 + 0x79bd001a], ch
adc al, 0
xchg dword [ebp + 0x2f], ebx
add byte [esi - 0x60ffdc9b], bl
insd dword es:[edi], dx
and al, 0
mov byte [esp + edi], ah
xchg esp, eax
xor al, 0
pushfd
jno 0x401923
add byte [ebp - 0x4dffd38f], ch
jge 0x40191b
add byte [ebp - 0x57ffc592], ah
je 0x401932
xor eax, 0x87dc200
add dl, al
jge 0x401909
add byte [edi - 0x68ffba97], al
insd dword es:[edi], dx
inc ecx
add byte [edi - 0x62ffbb8f], dl
jb 0x401954
add byte [edx - 0x62ffb38f], dl
jne 0x401963
add byte [ebp - 0x76ffb088], bl
outsd dx, dword [esi]
push esp
add byte [edi - 0x6bffae8a], dl
ja 0x40197e
js 0x40196c
add byte [ecx - 0x68ffab91], cl
jbe 0x401976
add byte [edi + esi*2 + 0x799b0055], dl
push esp
add byte [esp + edi*2 + 0x78a80059], bl
add byte [ebx - 0x63ffab87], bl
jl 0x40198a
add byte [eax - 0x5effbd88], ch
jl 0x40198d
test al, 0x78
inc edx
add byte [ecx - 0x71ffab84], ah
js 0x4019aa
add byte [esi - 0x43ff9288], cl
xchg byte [ecx], ah
add bh, cl
add byte [eax + eax], 0xd6
add byte [esi + eax*4 - 0x7d30ffdf], bh
add al, 0
salc
xchg dword [eax], eax
add bh, bl
xchg edx, eax
add dword [eax], eax
enter 0x1384, 0
ror dword [esi - 0x6926ffe7], 1
push ss
add bl, ch
lcall 0x19, 0x9ce00000
sbb dword [eax], eax
fst dword [esi - 0x6514ffea]
add byte [eax], al
loopne 0x4018fc
sbb dword [eax], eax
out dx, eax
mov al, byte [0xa8f30004]
push cs
add dl, ch
movsb byte es:[edi], byte [esi]
push ss
add cl, ah
mov al, byte [0xaaf2001e]
push ss
add ah, dh
scasb al, byte es:[edi]
pop ds
add al, cl
mov word [0x2693cc00], fs
add ah, dl
lcall 0x30, 0x8dc0002a
hlt
int3
retf
add ah, dl
pushfd
xor eax, dword [eax]
invalid
ljmp 0x2dac:0xe70026a8