Function at 0x401e50
Capabilities:
Encode data using xor

Disassembly:
push 0x42d888
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
cmp byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov dh, 0xd1
sub ebp, 0x444e3bc7
movsb byte es:[edi], byte [esi]
cmp eax, ecx
adc ecx, dword [esi]
xor eax, 0xb49a
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
dec ebp
dec edi
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
or ah, byte [ebp - 0x4b]
cmp ebp, dword [0x4d226125]
lcall 0x940f, 0x58169d23
pop ebx
shl dword [edx], 0x7c
not byte [eax - 0x3f]
mov edx, 0x200cba44
cmp esp, dword [edi + 0x3a8f610b]
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
or edi, dword [ecx + 0x68ae0002]
add byte [eax], al
add byte [0x726f4600], al
insd dword es:[edi], dx
xor dword [eax], eax
or eax, 0x4d001701
inc ebx
dec edi
dec ebp
and byte [ebp + 0x78], al
je 0x401f81
popal
arpl word [ebp + 0x72], si
and byte [edi + ebp*2 + 0x6f], dl
insb byte es:[edi], dx
and byte [esi + 0x31], dl
xor al, byte [eax]
add edi, edi
invalid
add byte [eax], dh
xor byte [eax], al
add byte [ecx], al
add byte [eax], ah
add byte [eax + 0x6000025], ch
and al, 0
add byte [eax], ah
and byte [eax], al
add byte [ecx], al
add byte [eax], ah
add byte [eax - 0x51fffff0], ch
dec ecx
add byte [eax], al
sbb byte [eax], bl
add byte [eax], al
add dword [eax], eax
and byte [eax], al
mov byte [ecx], cl
add byte [eax], al
push esi
pop edx
add byte [eax], al
adc byte [eax], dl
add byte [eax], al
add dword [eax], eax
and byte [eax], al
push 0xde000004
arpl word [eax], ax
add byte [eax], ch
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [eax], ah
add byte [eax], al
add dword [eax], eax
or byte [eax], al
add byte [eax], al
add byte [eax], al
or byte [edx], 0
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 byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 0x8000], 0
and byte [eax + 0x40], ah
add byte [eax - 0x1fff5f60], ah
loopne 0x401fe1
add byte [eax], al
pushal
inc eax
add byte [eax - 0x5fff7f80], al
shl byte [eax + 0x40604000], 0
rol byte [eax], 0xe0
add byte [eax + 0x60], al
inc eax
add al, al
add al, ah
add byte [eax - 0x3fff7f60], al
inc eax
and byte [eax], al
loopne 0x402060
and byte [eax], al
add byte [eax - 0xffa0], 0xff
add byte [eax], al
loopne 0x40200d
add byte [eax + 0x20], ah
and byte [eax], al
add byte [eax + 0x20], al
add byte [eax - 0x3fffbfc0], ah
pushal
pushal
add byte [eax - 0x80], al
pushal
add byte [eax - 0x60], ah
add byte [eax], 0xe0
mov al, byte [0xc06000a0]
mov al, byte [0xa0a0c000]
add al, ah
rol al, 0
mov al, byte [0x60002020]
pushal
inc eax
add byte [eax], ah
and byte [eax], 0xb8
mov eax, 0x806000b8
pushal
add byte [eax], al
pushal
add byte [eax + 0x6000b8b8], bh
and byte [eax], 0
mov al, byte [0xe0a000a0]
rol byte [eax], 0x20
add byte [eax], al
add al, bh
clc
clc
add byte [eax], ah
add byte [eax], al
loopne 0x4020a0
add byte [eax], al
inc eax
and byte [eax], ah
add byte [eax + 0x40], ah
inc eax
add al, ah
pushal
inc eax
add byte [eax + 0x60], ah
pushal
add byte [eax + 0x18], dl
adc byte [eax], al
test al, 0x38
sub byte [eax], al
mov al, 0x40
sub byte [eax], al
mov al, byte [0xd0002838]
rcr al, 1
add byte [eax - 0x47ffdfd0], cl
inc eax
xor byte [eax], al
cwde
sub byte [eax], al
rcl al, 1
fadd dword [eax]
mov byte [eax], dh
and byte [eax], al
mov eax, 0x98003040
cmp byte [eax], ch
add byte [eax + 0x28], bh
and byte [eax], al
enter 0xffffffffffffd0c8, 0
rol al, 0xc8
add al, bl
fsub st(0)
add byte [eax - 0x7fffd7d0], bl
sub byte [eax], ah
add byte [eax + 0x20], ch
sbb byte [eax], al
jo 0x4020f8
sbb byte [eax], al
mov eax, 0xb000c0b8
rol byte [eax], 0xb0
cmp byte [eax], ch
add byte [eax + 0x10], cl
adc byte [eax], al
call 0x604109cb
and byte [eax], bl
add al, cl
pop eax
dec eax
add byte [eax - 0x3fffdfd0], bl
dec eax
xor byte [eax], al
loopne 0x4020d4
call 0x85068f9
add byte [eax + 0x20], bl
sbb byte [eax], al
test al, 0x30
and byte [eax], al
mov eax, 0xe8002840
call 0x189821fc
adc byte [eax], al
clc
or byte [eax], al
pop eax
and byte [eax], bl
add byte [eax - 0x47ffdfd0], ch
inc eax
sub byte [eax], al
call 0x584111f3
sbb byte [eax], dl
add al, bh
invalid