Function at 0x4012f4
Capabilities:
Encode data using xor

Disassembly:
push 0x40157c
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 - 0x15], ch
inc esp
mov dword [0x4a44d03e], eax
nop
mov dh, 0x61
jp 0x401302
mov word [edi], fs
in eax, dx
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
push eax
jb 0x4013a2
jns 0x40139a
arpl word [edi + ebp*2 + 0x31], si
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add bh, bh
int3
add byte [eax], al
add byte [edi + 0x58000001], al
add byte [eax], al
add byte [eax], al
add eax, 0x726f4600
insd dword es:[edi], dx
xor dword [eax], eax
or eax, 0x46000501
outsd dx, dword [esi]
jb 0x401423
xor dword [eax], eax
sbb dword [ecx], eax
add byte [edx], al
and al, byte [ebx]
and edi, edi
invalid
add byte [ebx + 0x6d], ah
push eax
jb 0x40148f
jbe 0x401495
outsd dx, dword [esi]
jne 0x4014a2
add byte [ecx + eax], al
add dword [eax], eax
cmp al, 0
add al, 0x94
add al, al
adc bl, dh
add ebp, dword [eax + 1]
adc dword [edx], eax
add bh, bh
add esp, dword [edi]
add byte [eax], al
add byte [ebx], al
or byte [eax], al
je 0x4014c5
je 0x4014a3
js 0x4014c6
xor dword [eax], eax
add al, byte [eax + edi*2]
add byte [eax + 1], ch
xlatb
sbb dword [ebp + 0x50b01], edx
push esp
js 0x4014d9
xor dword [eax], eax
adc al, byte [ecx]
add bh, bh
add eax, dword [ebx]
add byte [eax], al
add al, 8
add byte [ebx + 0x6f], al
insd dword es:[edi], dx
insd dword es:[edi], dx
popal
outsb dx, byte [esi]
xor dword fs:[eax], eax
add al, 1
or byte [eax], al
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
insd dword es:[edi], dx
popal
outsb dx, byte [esi]
xor dword fs:[eax], eax
add al, 0x68
add dword [eax - 0x10e808f3], ebx
pop ss
out dx, eax
add dword [ecx], edx
add byte [eax], al
sbb eax, 1
nop
add dword [edx + eax*2 + 1], eax
add byte [0x5320534d], cl
popal
push ebx
and byte [ebx + 0x61], dl
outsb dx, byte [esi]
jae 0x4014c9
push ebx
jb 0x401516
inc word [ebx]
xor eax, 0x5000000
adc dword [eax], eax
insb byte es:[edi], dx
bound ebp, qword [edx + edx*2 + 0x65]
imul esi, dword [bp + di + 0x74], 0x63416f72
je 0x40153b
jne 0x401528
popal
insb byte es:[edi], dx
add byte [ecx], al
add dword [esi], eax
add dword [ecx], eax
push es
add byte [ecx + 0x62], cl
insb byte es:[edi], dx
xor dword [eax], eax
add eax, 0x1f2c16bc
pop eax
add bl, byte [0x51201]
sbb bh, bh
pop ds
add bh, bh
add edi, dword [eax + eax]
add byte [eax], al
push es
push cs
add byte [edx + 0x6c], ch
push edx
arpl word gs:[edi + 0x72], bp
inc ebx
outsd dx, dword [esi]
jne 0x401568
je 0x4014fc
add dword [0x191400f0], eax
cmp al, 0
cmp eax, dword [ecx]
adc al, byte [eax + eax]
sbb bh, bh
pop ds
add byte [1], ah
nop
add eax, eax
aam 1
add byte [eax], cl
push ebx
outsd dx, dword gs:[si]
add dword [eax], eax
or byte [ebx + 0x65], dl
outsd dx, dword [si]
and byte gs:[ebp + 0x49], dl
inc dword [edx]
add al, 6
add byte [eax], al
add al, bl
and eax, dword [eax]
push eax
add byte [eax], al
add byte [eax + 0x63ad6ba7], ah
fsub dword [ebx]
inc eax
add byte [eax], dl
add byte [eax], al
mov al, byte [0x63ad6ba7]
mov cs, ebp
dec ebp
mov word [ecx - 0x49f2a894], es
imul edi, dword [edx], 0
push edi
or eax, 0xba6bb6
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], dl
add eax, dword [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 al, ah
add dword [eax], eax
add byte [eax], al
add byte [eax], al
loopne 0x40156f
add byte [eax], al
add byte [eax], al
add byte [eax], al
inc esp
adc eax, dword [eax]
dec esp
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx + edx + 0x40], al
add byte [eax + eax], cl
add byte [esi + 0x42], dl
xor eax, 0x56263621
inc edx
inc ebp
push ebx
inc esp
dec esp
dec esp
add byte [eax], al
add byte [eax], al
add byte [edx], ch
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 [edx], cl
add byte [edx], cl
or al, 0
add byte [ecx], cl
add al, 0
add byte [eax], al
add byte [eax], al
add byte [esi + edx], dl
inc eax
add byte [esi], dl
lock xor byte [eax], al
add bh, bh
invalid