Function at 0x401614
Capabilities:
Encode data using xor

Disassembly:
push 0x40ce10
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 ah, ch
enter 0x45ca, 0x1f
push ebx
outsd dx, dword [esi]
inc esp
mov eax, 0x927c8fc0
mov byte [ebx + ebx*4], bh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
xor byte [edx], dh
xor byte [ebx + esi], dh
xor byte [eax + 0x72], dl
outsd dx, dword [esi]
push 0x65
arpl word [ecx + esi], si
xor byte [0x30303043], ch
sub eax, 0
dec esp
xor dword [eax], eax
sbb eax, 0x53a2d890
mov ebp, 0x87489238
in eax, 0x71
repne outsd dx, dword [esi]
test dword [ecx - 0x1c], edi
daa
push 0xffffffffffffff9e
add ebp, ecx
push ebp
sub ecx, dword [ebx - 0x64]
inc esp
pop esi
call [edi - 0x77]
loopne 0x4016d2
mov eax, esp
dec ecx
cmp cl, byte [edi - 0x53]
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
sal dword [esi - 0x50bd0000], 1
add byte [eax], al
add byte [0x726f4600], al
insd dword es:[edi], dx
xor dword [eax], eax
or eax, 0x20003301
push edi
imul ebp, dword [esi + 0x38], 0xb620312e
jge 0x401686
and byte [edi + 0x69], dl
outsb dx, byte [esi]
cmp byte [esi], ch
xor dword [eax], esp
mov dh, 0x7d
test eax, 0x2020206c
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ch
push edx
popal
insb byte es:[edi], dx
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
and byte [eax], ah
sub byte [edx + 0x61], dl
jns 0x40172e
add byte [ecx], bl
add dword [eax], eax
inc edx
add byte [ecx], ah
not byte [esi]
add byte [esp + esi*2], ch
add dh, ch
push esi
add byte [eax], al
inc edi
dec ecx
inc esi
cmp byte [ecx], bh
popal
cwde
add esi, edi
add edi, esi
inc dword [eax]
invalid
cmp dword [ecx], edi
cmp dword [edx + 0x42], eax
inc edx
dec edx
dec edx
dec edx
pop edx
pop edx
pop edx
jae 0x4017af
jae 0x4017b9
jnp 0x4017bb
test byte [esp + eax*4 - 0x63737374], al
pushfd
pushfd
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lodsd eax, dword [esi]
lodsd eax, dword [esi]
lodsd eax, dword [esi]
mov ch, 0xb5
mov ch, 0xbd
mov ebp, 0xc6c6c6bd
into
into
into
div edi
imul dword [ebp - 0x31005a5b]
into
invalid
imul dword [ebx + 0x31]
into
jae 0x4017ff
fimul word [edx + 8]
imul dword [ebx + 0x21]
imul esp, dword [ecx], 0xffffffe7
mov word [edx - 9], ds
arpl word [eax], dx
out 0x8c, eax
pop edx
mul dword [ebx + 0x10]
invalid
sbb byte [ebp - 0x5208f7a6], ah
push edx
out dx, eax
movsd dword es:[edi], dword [esi]
dec edx
salc
mov ebp, 0x94b5ce9c
out dx, eax
pushfd
xor edi, esi
mov ch, 0x52
push edx
xor dword [eax], eax
mov ch, 0xa5
invalid