Function at 0x401ad0
Capabilities:
Encode data using xor

Disassembly:
push 0x4543b4
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 [esp + ebp*4 + 0x2b924bae], cl
scasd eax, dword es:[edi]
dec eax
movsb byte es:[edi], byte [esi]
stosd dword es:[edi], eax
push ebp
push ebp
push ebp
enter 0x57c6, 0
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 + 0x72], dl
outsd dx, dword [esi]
push 0x65
imul esi, dword [ecx + esi], 0
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
and dh, dh
or byte [edi + esi*8 + 0x419a5884], bh
cmpsb byte [esi], byte es:[edi]
sub edi, dword [eax + 0x41]
mov al, byte [0x5ab60089]
add dh, dl
pop es
lea edi, [edx]
push edi
inc ebx
mov esi, 0x146af4b1
scasd eax, dword es:[edi]
wait
fstp xword [edx]
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
enter 0x527, 0
pop ss
or eax, 0x8000000
add byte [esi + 0x72], ah
insd dword es:[edi], dx
push ebx
je 0x401bfc
outsd dx, dword [esi]
insd dword es:[edi], dx
add byte [0x20000e01], cl
inc ebp
outsb dx, byte [esi]
jb 0x401bfe
imul esp, dword [ebp + 0x6b], 0x6574736f
outsb dx, byte [esi]
add byte [ebx], al
add byte [eax], 0
sbb dword [ecx], eax
add byte [edx], al
and al, byte [ecx]
and eax, esi
or al, 0
add byte [esp + esi*2], ch
add byte [esi + 0xc], bh
add byte [ecx], al
add byte [ecx], al
add byte [eax], ah
and byte [eax], al
add byte [ecx], al
add byte [eax], bl
add byte [eax + 0x1600000c], ch
add byte [eax], al
add byte [eax], ch
add byte [eax], al
add byte [eax], ah
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
sbb byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
pushal
add byte [eax], al
add byte [eax], ah
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
movsb byte es:[edi], byte [esi]
or esp, dword [ecx]
mov dword [0xba4200b], eax
and dword [ebx + ecx + 0x200ba521], esp
and byte [ebx + ecx + 0x210ba421], ah
or esp, dword [ecx]
movsb byte es:[edi], byte [esi]
or esp, dword [ecx]
movsd dword es:[edi], dword [esi]
or esp, dword [eax]
mov dword [0xba3210b], eax
and dword [edx + 0xba3200d], esp
and dword [edx + 0xba0220b], esp
push ds
mov al, byte [0xaa02109]
push ds
mov al, byte [0xba21c0b]
sbb ebx, dword [esi + 0xaa31f09]
and byte [eax + 0xaa21d0a], ah
and ah, byte [edx + ecx + 0x210aa322]
mov byte [0xca4220b], al
pop ds
movsb byte es:[edi], byte [esi]
or ebx, dword [edi]
mov byte [0xca1210a], al
and byte [ebx + 0xaa3230a], ah
and dword [ebp + 0x9a4220a], esp
and dword [ebp + 0x99f200a], ebx
and esp, dword [edx + ecx + 0x1b09a41d]
movsb byte es:[edi], byte [esi]
or dword [ebx], ebx
mov dword [0x7ad1b09], eax
sbb dword [eax + 0x5a32005], ebp
push ds
mov dword [0xaa21009], eax
adc al, 0xab
or byte [ebx], bl
mov al, byte [0x8c1106]
and edx, dword [edx + 0x8991d01]
push cs
mov byte [0x39c0b0c], al
and ebp, dword [ebp + 0xba22003]
pop ss
popfd
add dword [edi], edx
xchg ebp, eax
add byte [ebx], bl
pop dword [eax]
adc esp, dword [eax + ecx + 0x130aa119]
cmpsb byte [esi], byte es:[edi]
or byte [ebx], bl
test eax, 0xf9f1e09
or al, 0x9e
add eax, 0x1d07a820
mov al, byte [0x941a00]
add dword es:[0x26099e17], 0xa41d0aa3
or bl, byte [0xa51d0aa4]
or bl, byte [eax + ebp*4]
add eax, 0x240b8719
jg 0x401cce
sahf
add byte [edi], bl
pop ds
jle 0x401cd1
adc eax, 0x6e210782
add byte [ecx], bl
or dword [ebx + 0x7e], 0x786f2a5d
add byte [0x8633057b], dl
or dword [edi], edx
xchg ebp, eax
pop es
or eax, 0x6816057a
add esp, dword [esi*2 + 0x5a7f6520]
pop dword [esi + 0x5730500]
and dh, byte [ecx + 5]
and dword [edx + 0x19e2700], ecx
adc eax, 0x97100a97
add byte [esi], cl
jb 0x401d0e
and edi, dword [esi + 0x38]
jle 0x401d48
cmp byte [ebp + 0x3b], 0x75
nop
or dword [eax], esp
mov byte [0xaa11d0a], al
sbb eax, 0xa21d0aa1
or bl, byte [ebx]
xchg esi, eax
add byte [edx], bl
mov dl, byte [ecx + 0x71]
dec edi
sbb edx, dword [esi + 0x518a1a00]
jno 0x401d79
sbb dh, byte [eax + 0x64]
xor al, 0x93
push eax
inc eax
xchg esi, eax
pop ebx
aas
wait
pop edx
sub dh, byte [ebx + eax*2 + 0x37]
xchg esi, eax
sub ecx, dword [ebx - 0x34]
xchg byte ss:[esi + 0x2284b84e], al
pop eax
xchg esi, eax
push es
xor ch, byte [ecx + 0x47]
xchg ebx, eax
dec edx
pop edi
mov esp, 0x56852e34
jne 0x401d22
pop ecx
add byte [ecx], bl
inc esi
xor al, 0x8f
bound esi, qword [di + 0x3f68]
lcall 0x421b, 0x8a602260
imul eax, dword [edi - 0x77], 0x1fb5543e
cmp dword [edi + ebx*2 + 0x679c15d], ebx
xor byte [ecx + 0xaa21d0a], ah
sbb eax, 0xa21d0aa2
or bl, byte [edx]
scasb al, byte es:[edi]
sbb eax, 0xa21d0aa2
or bl, byte [0xae1a0aa2]
add byte [esi], bl
js 0x401dc7
push 0x32
xor cl, byte [ebx + 0x3dc1595d]
inc esp
cmpsd dword [esi], dword es:[edi]
push 0x63
enter 0x5b62, 0xffffffffffffff9e
dec esi
dec eax
popfd
dec ebx
inc esi
mov ebx, 0x54903d42
mov ecx, 0x7c4c2358
add byte [ebx], ah
inc edi
dec ecx
mov al, 0x4b
inc edi
mov al, 0x62
cmp byte [ecx + ebp*2 + 0x68], bh
rcr dword [ebx], 0x3e
pop edi
pop ebx
ret 0x3333
xor byte [ebp + eax*2 - 0x4c], al
dec eax
push esp
retf 0x364a