Function at 0x401ac8
Capabilities:
Encode data using xor

Disassembly:
push 0x402a80
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
inc ebp
pop esi
sar ch, cl
out 0xb, al
pop ebp
inc eax
mov dl, 0x8e
test al, 0xc
sub dword [esi + 0x3532], ebx
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
pop esp
xlatb
rol bl, 0xe6
pop esp
jae 0x401b7a
popal
jb 0x401b7d
jne 0x401b7b
add byte [eax], al
add byte [eax], al
add bh, bh
int3
or eax, 0x73000701
je 0x401be2
add dword [edi], eax
add byte [ebx + 0x74], dh
popal
jb 0x401bf7
jne 0x401bf5
add byte [ecx], bl
add dword [eax], eax
inc edx
add byte [edx], ah
add byte [ebx], ah
invalid
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
cmp dword [eax], edi
cmp dword [edx + 0x34], eax
sub dword [ecx], edi
xor al, 0x29
inc edx
xor al, 0x29
cmp dword [eax], esi
sub dword [ecx], edi
xor byte [ecx], ch
cmp dword [ecx], ebp
cmp dword [ecx], ebp
cmp dword [ecx + ebp], ebp
sub dword [eax], esp
sbb byte [ecx], ch
sbb al, 0x10
sub dword [eax + edx], ebx
sub dword [eax], esp
sbb byte [eax], dl
or byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx + 0x65], ah
arpl word [eax], ax
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
and dword [ecx], esp
add byte [eax], al
add byte [eax], al
and byte [ecx], bh
add byte [eax], ah
cmp dword [eax], eax
and byte [ecx], bh
add byte [eax], ah
cmp dword [eax], eax
and al, 0x39
add byte [ecx + edi], ah
add byte [ecx + edi], ah
add byte [ecx + edi], ah
add byte [eax], ch
inc edx
add byte [eax], ch
inc edx
add byte [eax], ch
inc edx
add byte [eax], ch
inc edx
add byte [edx + eax*2], ch
add byte [edx + ecx*2], ch
add byte [edx + edx*2], dh
add byte [eax], dl
sbb byte [eax], dl
or al, 8
jae 0x401cfd
jae 0x401c8a
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
and dword [eax + ebx], ebx
add byte [eax], al
add byte [eax], al
imul esp, dword [ebp + 0xffa200], 0x9e00ff9e
inc dword [eax]
sahf
inc dword [eax]
sahf
inc dword [eax]
mov byte [0xffa200ff], al
add byte [edx - 0x5dff01], ah
add byte [edx - 0x59ff01], ah
add byte [edx - 0x5dff01], ah
add byte [edx - 0x55ff01], ah
add byte [edx + 0x100c00d6], cl
adc byte [eax + edx], dl
jnp 0x401d68
jnp 0x401ced
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
sbb byte [eax], bl
sbb byte [eax], al
add byte [eax], al
add byte [ebp - 0x53], ch
add byte [esi - 0x61ff01], ah
add byte [esi - 0x61ff01], bl
add byte [edx - 0x5dff01], ah
add byte [edx - 0x5dff01], ah
add byte [edx - 0x5dff01], ah
add byte [edx - 0x5dff01], ah
add byte [edx - 0x5dff01], ah
add byte [edx - 0x61ff01], ah
add byte [edx - 0x3179ff01], ch
add byte [eax + ecx], al
sbb byte [eax], bl
adc 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 + 0x71], dh
jae 0x401d68
add byte [eax], al
add byte [ecx - 0x53], ch
add byte [esi - 0x865ff01], ah
add byte [esi - 0x61ff01], bl
add byte [esi - 0x61ff01], bl
add byte [edx - 0x5df701], ah
or byte [edx - 0x5df701], ah
or byte [edx - 0x5df701], ah
or byte [edx - 0x5df701], ah
or byte [edx - 0x5df701], ah
or byte [edx - 0x861f701], ah
or byte [edx - 0x3982f701], ch
add byte [eax + ecx], al
push edx
push ecx
dec edx
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 + 0x71], dh
jae 0x401dc8
or al, 0x10
add byte [edx - 0x55ff11], dl
add byte [edx - 0x51f701], ch
or byte [esi - 0x51f701], ch
or byte [esi - 0x51f701], ch
or byte [edx - 0x4df701], dh
or byte [edx - 0x4df701], dh
or byte [edx - 0x4df701], dh
or byte [edx - 0x4df701], dh
or byte [edx - 0x4df701], dh
or byte [esi - 0x55f701], ch
adc byte [edx + 0x312000ff], bh
push edx
dec ecx
dec dword [eax]
mov dl, 0xff
or byte [edx - 0x4df701], dh
or byte [edx - 0x51f701], dh
or byte [edx - 0x45ef01], ch
add byte [eax], ah
xor dword [edx + 0x49], edx
inc edx
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 + 0x71], dh
imul eax, dword [eax], 0xc
adc byte [eax], al
jns 0x401df3
add byte [ebp - 0x43], dh
add byte [ecx - 0x4b], dh
add byte [ecx - 0x53], ch
add byte [ebp - 0x4b], ch
add byte [ebp - 0x4b], ch
add byte [ebp - 0x4b], ch
add byte [ecx - 0x4b], dh
add byte [ecx - 0x4b], dh
add byte [ecx - 0x4b], dh
add byte [ecx - 0x4b], dh
add byte [ecx - 0x4b], dh
add byte [ecx - 0x4b], dh
add byte [ecx - 0x4b], dh
add byte [ecx - 0x4b], dh
add byte [ecx - 0x4b], dh
add byte [ecx - 0x4b], dh
add byte [ebp - 0x53], ch
add byte [ebp - 0x4b], dh
add byte [ecx - 0x43], bh
adc byte [edx + 0x312400e7], bl
push edx
dec ecx
inc edx
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 + 0x6d], dh
imul eax, dword [eax], 0x14
and dword [eax], ecx
push ebp
test byte [eax], dl
add al, 0
test byte [ecx + 0x6b], bh
mov ebp, 0xa2ad9cb2
xchg esp, eax
lodsd eax, dword [esi]
cmpsb byte [esi], byte es:[edi]
xchg esp, eax
lodsd eax, dword [esi]
cmpsb byte [esi], byte es:[edi]
xchg esp, eax
lodsd eax, dword [esi]
cmpsb byte [esi], byte es:[edi]
xchg esp, eax
lodsd eax, dword [esi]
cmpsb byte [esi], byte es:[edi]
xchg esp, eax
lodsd eax, dword [esi]
cmpsb byte [esi], byte es:[edi]
xchg esp, eax
lodsd eax, dword [esi]
cmpsb byte [esi], byte es:[edi]
xchg esp, eax
lodsd eax, dword [esi]
cmpsb byte [esi], byte es:[edi]
xchg esp, eax
lodsd eax, dword [esi]
cmpsb byte [esi], byte es:[edi]
xchg esp, eax
lodsd eax, dword [esi]
cmpsb byte [esi], byte es:[edi]
xchg esp, eax
lodsd eax, dword [esi]
cmpsb byte [esi], byte es:[edi]
xchg esp, eax
lodsd eax, dword [esi]
cmpsb byte [esi], byte es:[edi]
xchg esp, eax
lodsd eax, dword [esi]
mov byte [0x9caeb594], al
mov word [esi + 0x8187b], es
and dword [ecx - 0x5b], edi
add byte [eax], ch
inc edx
push edx
dec ecx
inc edx
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 + 0x6d], 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
jae 0x401f53
imul eax, dword [eax], 0x14
and dword [eax], ecx
pop ecx
test byte [esi + ecx*4 + 0x42454284], dl
out dx, eax
jmp 0x401ed4
cmp dword [ecx + edi], edi
div ebx
fsubrp st(7)
out 0xd6, eax
out 0xe7, eax
salc
out 0xe7, eax
salc
out 0xe7, eax
salc
out 0xe7, eax
salc
out 0xe3, eax
salc
out 0xe7, eax
salc
out 0xe7, eax
salc
out 0xe7, eax
salc
out 0xe7, eax
salc
out 0xe3, eax
salc
push edi
out 0x4a, eax
dec ebp
inc edx
test byte [edx - 0x39201085], al
sub dword [ebp - 0x53], edi
add byte [eax], ch
cmp dword [edx + 0x49], edx
inc edx
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 + 0x6d], dh
imul eax, dword [eax], 0x18
and dword [eax], eax
push ecx
jnp 0x401f74
mov edx, 0xf7ffffa5
arpl word [ecx + 0x5a], sp
imul ebp, dword [ecx + 0x63], 0xffffffff
invalid