Function at 0x401d90
Capabilities:
Encode data using xor

Disassembly:
push 0x403d98
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 byte [esi + 0x4545c814], cl
cmp al, 0xd0
inc esp
xchg ebx, eax
or byte [ebp - 0x7da48d36], al
lds eax, [eax]
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 0x6d], cl
jae 0x401e20
jb 0x401e39
dec eax
imul eax, dword [ebp + 0x6e], 0x74
dec eax
imul edx, dword [ebx + 0x74], 0x61
je 0x401dde
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
dec esp
xor dword [eax], eax
pop ds
push ecx
dec edi
mov cl, 0x2b
shl dword [ecx - 0x47ab002], 0x7c
nop
jb 0x401dde
push ds
and al, 0xa3
pop es
and esi, ebx
jmp 0xb78bb0ae
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 [esi + ebx], bl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb al, 0x1e
add byte [eax], al
pop edi
add byte [eax], al
add byte [eax], al
or al, 0
jb 0x401ebc
dec eax
outsd dx, dword [esi]
jne 0x401ec6
push ebx
je 0x401eb8
je 0x401e59
or eax, 0x48002001
outsd dx, dword [esi]
jne 0x401ed4
and byte gs:[ebx + 0x65], cl
jo 0x401ed1
outsb dx, byte [esi]
and byte [bp + di + 0x74], dl
popal
je 0x401ee5
jae 0x401e92
dec ebp
popal
imul ebp, dword [esi + 0x74], 0x6e616e65
arpl word [ebp], sp
sbb dword [ecx], eax
add byte [edx], al
and al, byte [ecx]
and al, 5
add byte [esi + 0x6f], al
jb 0x401ef9
xor dword [eax], eax
add byte es:[ecx], dh
push dword [0x537]
xor eax, 0x537
adc cl, byte [eax + eax]
add byte [edx], al
sbb al, 0
add byte [ebp + edx], dl
add bh, bh
add dword [edi + 0x1d000000], ecx
pop es
add byte [ebx + 0x74], ah
insb byte es:[edi], dx
dec eax
dec ebx
push ebx
dec ebp
add bh, bh
and byte [eax], al
inc esi
imul esp, dword [ebp + 0x73], 0x6c476174
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 0x401f3a
outsd dx, dword [esi]
insb byte es:[edi], dx
inc esi
imul esp, dword [ebp + 0x73], 0x6c476174
inc edi
insb byte es:[edi], dx
outsd dx, dword [esi]
bound esp, qword [ecx + 0x6c]
add byte [0x9424c], ch
dec eax
add byte [eax], al
add byte [ebx + 0x480000b2], dl
dec eax
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 0x401efb
je 0x401efd
add byte gs:[esi], ch
je 0x401f03
js 0x401f05
xchg ebp, eax
add al, byte [eax]
add byte [ebx], al
add byte [eax], cl
add byte [edx], cl
push edi
inc edi
loopne 0x401f12
invalid
invalid
add eax, 0x73695600
dec ebp
xor dword [eax], eax
dec dword [eax + eax]
push esi
dec ecx
push ebx
dec ebp
dec esp
imul esp, dword [edx + 0x2e], 0x4d736956
add byte [0x9424c], ch
sub al, 0
add byte [eax], al
add byte [eax], al
add dword [eax], eax
in eax, 2
add byte [eax], al
in eax, 2
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], al
or eax, 0x3e80a
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 [ecx], bh
jo 0x401f92
add byte [eax], al
cmp al, byte [edx + edx + 0x3ff0000]
and eax, dword [eax]
add byte [eax], al
add dword [0x61726600], ecx
add esp, dword [ebx]
add byte [eax], al
add byte [ecx], al
or eax, 0x61726600
dec eax
outsd dx, dword [esi]
jne 0x402014
push ebx
je 0x402006
je 0x401fda
add byte [ebx], al
add eax, 0x120c1068
dec edi
or ebx, edi
add dl, byte [edx]
or al, 0
inc dword [ecx]
cmp byte [eax], al
add byte [eax], al
add al, byte [edi]
add byte [ebx + 0x6d], ah
push ebx
popal
jbe 0x40202a
add byte [ecx + eax], al
add eax, 0x61532600
jbe 0x402034
add byte [esp + esi*4], al
add al, dh
add byte [edi + 0x11017704], bh
add eax, 0xe2500
push ebx
popal
jbe 0x402048
jae 0x402005
popal
and byte [edx + 0x65], dl
arpl word [edi + 0x72], bp
add bh, bh
add edi, dword [esi]
add byte [eax], al
add byte [ebx], al
or byte [eax], al
arpl word [ebp + 0x64], bp
inc ebx
insb byte es:[edi], dx
outsd dx, dword [esi]
jae 0x402064
add byte [ecx + eax], al
push es
add byte [esi], ah
inc ebx
insb byte es:[edi], dx
outsd dx, dword [esi]
jae 0x40206f
add byte [esp + ebx*8], al
add eax, 0x4bf00f0
ja 0x402015
adc dword [esi], eax
push es
add byte [edi + edi*8], dl
and eax, 0x6c430010
outsd dx, dword [esi]
jae 0x402086
jae 0x402043
je 0x40208d
imul esi, dword [ebx + 0x20], 0x6d726f46
jb 0x402099
add bh, bh
add al, byte [ebx]
and eax, dword [eax]
add byte [eax], al
add al, 0xd
add byte [esi + 0x72], ah
popal
dec eax
outsd dx, dword [esi]
jne 0x4020b1
push ebx
je 0x4020a3
je 0x402076
xor al, byte [eax]
add eax, dword [0x348003c]
add byte [ebx], al
add eax, 0x348003c
add byte [eax + 3], cl
jnp 0x402068
xchg edi, eax
push cs
adc cl, byte [ebx]
add bh, bh
add dword [eax + ebx + 0xc1f0000], eax
add byte [edi + 0x72], ah
dec eax
outsd dx, dword [esi]
jne 0x4020d5
push ebx
je 0x4020c7
je 0x402068
call dword [eax + eax]
inc esi
push eax
push ebx
jo 0x4020e2
jb 0x4020d6
popal
popal
inc ecx
inc esp
dec edi
jo 0x4020cd
jo 0x4020ee
popal
add byte fs:[ebx], al
js 0x402083
mov ah, 0
mov ebx, dword [edx]
imul ecx, dword [0x2d00040f], 0x4c
sbb ch, byte [ebx + 0xd]
invalid
dec esp
inc edx
or dword [eax], eax
inc edx
sbb byte [eax], al
add byte [eax], al
add byte [eax], cl
add dl, dl
add byte cs:[eax], al
shr byte [esi], cl
add byte [eax], al
stosd dword es:[edi], eax
pop ss
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 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 0x4020d3
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add dword [ecx], eax
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 0x4020d7
xchg ecx, eax
invalid
stosb byte es:[edi], al
add byte [ebx - 0x48], cl
dec ebx
mov eax, 0x151
add byte [eax + 0x1424401], dl
push ecx
add dword [eax], eax
add byte [eax], al
nop
add dword [edx + eax*2 + 1], eax
add byte [0x5320534d], cl
or eax, 0x5320534d
popal
outsb dx, byte [esi]
jae 0x40210b
push ebx
jb 0x402158
imul esp, dword [esi + 1], 0xc0c0c0
add ax, ax
rol al, 0
rol al, 0xc0
add byte [ecx], al
add dword [ecx], eax
add al, 0
add byte [eax], al
adc al, 0
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add dword [ecx], eax
add byte [eax], al
add dword [ecx], eax
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add dword [ebx], eax
add byte [ecx], al
sldt word [eax - 0x80]
add dword [ecx], eax
add dword [eax], eax
add byte [ecx], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add dword [ecx], eax
add eax, dword [eax]
add dword [edi], ecx
add byte [eax - 0x80], al
add byte [eax], 0x10
add byte [eax], al
cmp bh, 0xff
inc dword [eax]
pop eax
pop ss
add byte [eax], al
add dword [eax + ebx*2], eax
pop ss
add byte [eax], al
add byte gs:[eax], cl
add byte [eax], al
add byte [ecx], al
add byte [edi], bh
add byte [eax + eax], bl
add byte [edx], 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 0x402188
push ebx
jb 0x4021d5
add bh, al
cld
invalid
add byte [eax], al
dec ebp
push ebx
and byte [ebx + 0x61], dl
outsb dx, byte [esi]
jae 0x4021b2
push ebx
jb 0x4021ff
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
or al, 0
adc dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add dword [esi], edx
add byte [ecx], dl
add byte [eax], al
add byte [eax], al
add dword [eax], eax
cld
test eax, 0x624dd2f1
push eax
aas
and eax, dword [eax]
or eax, dword [eax]
add byte [eax], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ebp], eax
adc al, byte [eax]
add byte [eax], al
jno 0x4021d9
add byte [eax], al
jb 0x4021dd
add byte [eax], al
jae 0x4021e1
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], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
nop
add dword [eax], eax
add byte [eax], al
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 0x402241
push ebx
jb 0x40228e
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 0x4022b1
invalid
add byte [eax], al
jb 0x402292
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 0x40232c
or byte [eax], al
add byte [eax], al
add dword [eax], eax
je 0x402334
or byte [eax], al
add byte [eax], al
add byte [eax], al
jne 0x40233c
or byte [eax], al
add byte [eax], al
add byte [eax], al
jbe 0x402344
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 0x402358
or al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
jl 0x402362
or byte [eax], al
add byte [eax], al
add byte [eax], al
jge 0x40236a
and al, byte [ecx]
add byte [eax], al
jae 0x402306
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