Function at 0x401940
Capabilities:
Encode data using xor

Disassembly:
lodsb al, byte [esi]
adc byte [eax], al
jmp dword [sym.imp.MSVBVM60.DLL_EVENT_SINK_Release]
push 0x402934
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
dec eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dl, al
loope 0x401930
mov edi, 0x48f954b8
add byte [eax + 0x44aca428], 0xf6
je 0x40196d
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], ch
sub dword [0x4820200a], ecx
insd dword es:[edi], dx
jae 0x4019c9
outsb dx, byte [esi]
jno 0x4019d5
inc edi
jae 0x4019fb
dec esi
popal
je 0x4019f4
outsd dx, dword [esi]
outsb dx, byte [esi]
add byte [ebp + 0xd], ah
or al, byte [ebp + 0x6e]
add byte fs:[eax], al
or eax, 0x646e450a
add byte [eax], al
add byte [eax], al
dec esp
xor dword [eax], eax
and dword [ecx - 0x46ab3721], eax
mov eax, dword [0xfab54a6d]
and dword [esi + 0x44], ebp
jecxz 0x40198f
salc
inc eax
jmp 0x850addfe
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
inc eax
push cs
add byte [eax], al
popal
add byte [eax], al
add byte [eax], al
or al, byte [eax]
jb 0x401a6c
add byte [ecx], ah
add byte [eax], al
add byte [edx], cl
add byte [esi + 0x72], ah
insd dword es:[edi], dx
dec esi
popal
insd dword es:[edi], dx
dec ecx
outsb dx, byte [esi]
jno 0x401a07
or eax, 0x52002401
arpl word gs:[ebp + 0x70], sp
je 0x401a7b
outsd dx, dword [esi]
outsb dx, byte [esi]
and byte [ecx + 0x6e], cl
jno 0x401a8e
imul esi, dword [edx + 0x69], 0x2d207365
and byte [edx + 0x79], al
and byte [esi + 0x61], cl
je 0x401a91
outsd dx, dword [esi]
outsb dx, byte [esi]
popal
insb byte es:[edi], dx
imul esi, dword [ecx + edi*2], 0x42000119
add byte [edx], ah
add dword [eax + 0x726f4600], esp
insd dword es:[edi], dx
xor dword [eax], eax
add byte es:[0x96], dh
or al, 3
add byte [eax], al
inc ebx
add byte es:[eax], al
aaa
adc al, 0
add byte [esi + 3], al
inc dword [ecx]
nop
add byte [eax], al
add byte [edi], bl
or byte [eax], al
arpl word [esp + ebp*2 + 0x47], si
dec esi
popal
insd dword es:[edi], dx
add bh, bh
and byte [eax], al
inc esi
imul esp, dword [ebp + 0x73], 0x6c476174
jae 0x401ae3
popal
inc edi
insb byte es:[edi], dx
outsd dx, dword [esi]
bound esp, qword [ecx + 0x6c]
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x401aed
outsd dx, dword [esi]
insb byte es:[edi], dx
inc esi
imul esp, dword [ebp + 0x73], 0x6c476174
outsd dx, dword [esi]
bound esp, qword [ecx + 0x6c]
add byte [0x9424c], ch
or dword [eax], eax
dec eax
add byte [eax], al
add byte [ebx + 0x480000b2], dl
add byte [eax], al
add byte [ebx], al
add byte [eax], cl
add byte [ebx], cl
push edi
inc edi
and byte [eax], al
add byte [eax], al
pop edi
add byte [ebp], ah
js 0x401aae
je 0x401ab0
add byte gs:[esi], ch
je 0x401ab6
js 0x401ab8
xchg ebp, eax
add al, byte [eax]
add byte [ebx], al
add byte [eax], cl
add byte [edx], cl
push edi
inc edi
loopne 0x401ac5
invalid
invalid
adc al, byte [eax]
add bh, bh
add ebx, dword [eax + eax]
add byte [eax], al
add dword [esi], eax
push es
add byte [esi + 0x72], ah
popal
dec edi
outsb dx, byte [esi]
add byte gs:[ebx], al
add eax, 0xffc4003c
and byte [0x1c120393], 0
inc dword [ecx]
pop ds
add byte [eax], al
add byte [edx], al
or dword [eax], eax
arpl word [edx + 0x6f], sp
dec esi
popal
je 0x401b7c
outsd dx, dword [esi]
outsb dx, byte [esi]
add byte [edi], al
add eax, 0x18600b4
das
or eax, 0x1f13013b
add bh, bh
add ebx, dword [eax + eax]
add byte [eax], al
add eax, dword [esi]
add byte [esi + 0x72], ah
popal
push esp
ja 0x401ba1
add byte [ebx], al
add eax, 0x781f77
scasd eax, dword es:[edi]
add eax, 0x1e1202df
add bh, bh
add dword [eax + eax], esp
add byte [eax], al
add al, 5
add byte [ebx + 0x6d], ah
dec edi
dec ebx
add byte [ecx + eax], al
add eax, 0x69562600
ja 0x401b59
add al, 0x78
add al, dh
add byte [edi + 0x11017704], bh
add byte [eax], al
inc dword [edx]
add ebp, dword [eax + eax]
add byte [eax], al
add eax, 0x626c0007
insb byte es:[edi], dx
dec esi
popal
insd dword es:[edi], dx
add byte gs:[ecx], al
add dword [ebx], ecx
add byte [esi + 0x61], cl
popal
je 0x401be8
outsd dx, dword [esi]
outsb dx, byte [esi]
popal
insb byte es:[edi], dx
imul esi, dword [ecx + edi*2], 0xb400b405
add byte [ebp + ecx + 0x1d], bl
add dword [edx], edx
sbb eax, 0x302ff00
sbb eax, 0x6000000
pop es
add byte [esi + 0x72], al
popal
jae 0x401c12
jo 0x401c15
jb 0x401c08
add byte fs:[ebx], al
add byte [ebx], al
add eax, 0x32a003c
ja 0x401bbd
cmp eax, 0x1b120e
inc dword [ecx]
fadd dword [esi]
add byte [eax], al
and byte [edi], al
add byte [edi + 0x72], ah
dec esi
popal
insd dword es:[edi], dx
add bh, bh
adc al, 0
inc esi
push eax
push ebx
jo 0x401c3d
popal
inc ecx
inc esp
dec edi
jo 0x401c28
jo 0x401c49
popal
add byte fs:[ebx], al
cmp al, 0
mov ah, 0
dec dword [edi]
jnp 0x401bf0
sgdt [eax]
sub eax, 0x9424c
dec esp
inc edx
or dword [eax], eax
wait
push es
add byte [eax], al
add byte [eax], al
or byte [eax], al
aaa
sbb al, 0
add byte [esi + edx], al
add byte [eax], al
inc eax
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add dword [ecx], eax
add dword [edx], eax
add byte [ecx], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [ebx], al
push edx
jecxz 0x401c32
add dword [ecx], eax
add dword [ecx], eax
add al, byte [eax]
add dword [ecx], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add edx, dword [edx - 0x1d]
or edx, dword [ecx - 0x62ee3171]
jecxz 0x401c2e
xchg ecx, eax
invalid
stosb byte es:[edi], al
add byte [ebx - 0x48], cl
push ecx
add dword [eax], eax
add byte [eax], al
mov esp, 0x1424402
add byte [0x5320534d], cl
or eax, 0x5320534d
popal
outsb dx, byte [esi]
jae 0x401c66
push ebx
jb 0x401cb3
imul esp, dword [esi + 1], 0xc0c0c0
add ax, ax
rol al, 0
rol al, 0xc0
add byte [ecx], al
add dword [ecx], eax
add eax, dword [eax]
add byte [eax], al
sldt word [eax]
add byte [ecx], al
add byte [eax], al
add al, byte [eax]
add byte [eax], al
add byte [ecx], al
add dword [eax], eax
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [ecx], eax
add eax, dword [eax]
add dword [eax], eax
add byte [ecx], al
add byte [eax], al
adc byte [eax], 0
add byte [eax - 0x7ffffff2], al
mov cl, 5
add byte [eax], al
add dword [ecx + esi*4], eax
add eax, 0x650000
or byte [eax], al
add byte [eax], al
add dword [eax], eax
aas
add byte [esi + 0x3000000], al
add byte [ecx], bh
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 1], dl
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [esi], cl
add byte [eax], al
add byte [eax], al
push cs
add byte [eax], al
add byte [ebp + 0x53], cl
and byte [ebx + 0x61], dl
outsb dx, byte [esi]
jae 0x401ce3
push ebx
jb 0x401d30
add bh, al
cld
invalid
add byte [eax], al
dec ebp
push ebx
and byte [ebx + 0x61], dl
outsb dx, byte [esi]
jae 0x401d0d
push ebx
jb 0x401d5a
add bh, al
cld
invalid
add byte [eax], al
dec ebp
push ebx
and byte [ebx + 0x61], dl
outsb dx, byte [esi]
jae 0x401d37
push ebx
jb 0x401d84
add byte [ebx], cl
add byte [eax + eax], cl
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add dword [eax], eax
push ss
add byte [ecx], dl
add byte [eax], al
add byte [eax], al
add dword [eax], eax
cld
test eax, 0x624dd2f1
push eax
aas
bound edx, qword [eax + 0x3f]
and eax, dword [eax]
or eax, dword [eax]
add byte [eax], al
add dword [ecx], eax
add dword [ecx], eax
add dword [eax + eax], esp
or byte [eax], al
add byte [eax], al
add byte [eax], al
inc ebp
add byte [edx], dl
add byte [eax], al
add byte [ecx], dh
add byte [eax], al
jb 0x401d59
add byte [eax], al
jae 0x401d5d
add byte [ebx], dh
add byte [eax], al
inc edi
add byte [edi], al
add byte [eax], al
add byte [eax], al
push ecx
add byte [0], bh
hlt
add byte [eax + 1], dl
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [esi], cl
add byte [eax], al
add byte [ebp + 0x53], cl
and byte [ebx + 0x61], dl
outsb dx, byte [esi]
jae 0x401dbd
push ebx
jb 0x401e0a
add byte [edx], cl
pop es
add byte [eax], al
add byte [edi], cl
push eax
add byte [eax], cl
add byte [eax], al
add byte [ebx], cl
or byte [ebx], dl
or byte [eax], al
add byte [eax], al
add byte [eax], al
push esp
add byte [eax], cl
add byte [eax], al
add byte [eax], al
add byte [edi], dl
or al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
pop eax
add byte [edx], dl
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], ch
adc al, byte [eax]
add byte [eax], al
add byte [eax], al
xor esi, dword [ebx]
xor esi, dword [ebx]
xor esi, dword [ebx]
jecxz 0x401e2d
invalid
add byte [eax], al
jb 0x401e0e
lcall pe_dos_header, 0
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
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
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
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
add byte [ebx], dh
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
jae 0x401ea8
or byte [eax], al
add byte [eax], al
add dword [eax], eax
je 0x401eb0
or byte [eax], al
add byte [eax], al
add byte [eax], al
jne 0x401eb8
or byte [eax], al
add byte [eax], al
add byte [eax], al
jbe 0x401ec0
or al, 0
add byte [eax], al
or eax, 0x4b800000
add byte [edx], bh
or byte [eax], al
add byte [eax], al
add byte [eax], al
jnp 0x401ed4
or al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
jl 0x401ede
or byte [eax], al
add byte [eax], al
add byte [eax], al
jge 0x401ee6
and al, byte [ecx]
add byte [eax], al
jae 0x401e82
mov esi, 0x634b4200
add byte [ebp + 0x69], dl
xchg ecx, eax
add bh, dl
out 0xf7, al
add cl, bl
out 0xf9, eax
add byte [esi - 0x3cff0e2c], bh
salc
add bl, al
salc
add byte [edi - 0x5eff0b2e], dh
mov edx, 0xb9aa00dd
int 0
mov eax, dword [0xaa00ddba]
mov ecx, 0x6e3c00cd
scasd eax, dword es:[edi]
add byte [ebp + 0x69], dl
xchg ecx, eax
add byte [esi + ebp*2], bh
scasd eax, dword es:[edi]
add dl, dh
xchg ebp, eax
add byte ss:[esi - 0x44ff314a], bl
invalid