Function at 0x401180
Capabilities:
Encode data using xor

Disassembly:
push 0x430108
call sub.MSVBVM60.DLL_ThunRTMain
add byte [eax], al
dec eax
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
call 0x5db1486
cdq
sbb eax, 0x6221bf42
or al, byte [esi + 0x10]
xchg byte [ebx], 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 0x40122e
push 0x65
arpl word [ecx + esi], si
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov bh, 0x53
add al, 0x48
jp 0x401219
add dword [eax], eax
add byte [eax], al
add byte [eax], dl
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx + 0x6109ae4c], bl
and eax, 0xaaa54a5a
adc eax, 0x62df8a97
xchg edi, eax
add dword [eax], eax
add byte [eax], al
mov al, byte [0xb0000000]
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], al
and byte [edi + 4], cl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx + 0x75], al
je 0x401294
outsd dx, dword [esi]
outsb dx, byte [esi]
inc ebp
js 0x401225
add byte [eax], al
add byte [eax], al
add byte [eax], al
add ah, bh
out dx, al
sub eax, 0x7e985f88
dec eax
mov dword [ebp + 0x3fd0bc49], edx
mov cl, 0xc8
sbb dword [eax + 0x196bb137], eax
pop ebx
inc esp
lcall 0x7edc, 0x7aa4bbfa
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
add byte [eax], al
add byte [edx - 0x12], ah
add al, byte [eax]
xacquire xchg byte [eax], al
add byte [eax], al
add eax, 0x726f4600
insd dword es:[edi], dx
xor dword [eax], eax
or eax, 0x42001e01
jne 0x401331
je 0x40132e
outsb dx, byte [esi]
inc ebp
js 0x4012e3
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x40133a
outsd dx, dword [esi]
insb byte es:[edi], dx
and byte [edx + 0x79], ah
and byte [edx + 0x2e], cl
and byte [eax + 0x65], dl
popal
jb 0x401349
outsd dx, dword [esi]
outsb dx, byte [esi]
add byte [ecx], bl
add eax, dword [eax]
inc ebx
add byte [ecx], ah
fidivr word [ebx]
add byte [esp + esi*2], ch
insb byte es:[edi], dx
je 0x4012e6
add dh, dl
jnp 0x4012ea
add bh, bh
fdivr st(7)
loopne 0x4012f0
adc byte [edx + 0x46], cl
dec ecx
inc esi
add byte [ecx], al
add byte [ecx], al
add byte [eax], ah
pushal
add byte [eax], al
invalid
push cs
adc dl, byte [ecx]
adc byte [ebx], dl
sbb byte [eax], ch
sbb bl, byte [eax]
push ss
push ss
sbb byte [ecx], dh
and esp, dword [0x333a281d]
xor dword [ebx], esp
and eax, 0x333a281d
cmp eax, 0x3833393c
aaa
inc eax
dec eax
pop esp
dec esi
inc eax
inc esp
push edi
inc ebp
aaa
cmp byte [eax + 0x6d], dl
push ecx
push edi
pop edi
bound esp, qword [edi + 0x68]
dec ebp
jno 0x4013d7
jo 0x4013c4
js 0x4013be
arpl word gs:[bx + di], ax
adc dword [edx], edx
adc bl, byte [eax]
adc eax, 0x1a1a2f18
das
arpl word [edx + 0x38], ax
inc edx
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx + 0x63], sp
arpl word [ebx - 1], sp
les eax, [ecx]
mov byte [0x5010000], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [edx], eax
add eax, dword [eax + 0x9080706]
or cl, byte [ebx]
add dword [eax], eax
add eax, dword [ecx]
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add byte [eax], al
add byte [eax], al
or dword [edx], ecx
or eax, dword [ecx]
add byte [ebx], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add al, byte [ebx]
add al, 5
push es
pop es
or byte [ecx], cl
add byte [eax], al
add dword [edx], eax
add eax, dword [eax + 0x9080706]
or cl, byte [ebx]
adc byte [eax], al
add al, byte [ecx]
add eax, dword [ebx]
add al, byte [ebx + eax]
add eax, 0x40405
add byte [ecx], al
jge 0x4013f7
add al, byte [ebx]
add byte [ecx + edx], al
add eax, dword [eax]
add al, 0x11
add eax, 0x41312112
push es
adc edx, dword [ecx + 0x61]
pop es
and dh, byte [ecx + 0x14]
xor al, byte [ecx + 0x2308a191]
inc edx
mov cl, 0xc1
adc eax, 0x24f0d152
xor esp, dword [edx + 0x72]
or byte [ecx], 0xa
push ss
pop ss
sbb byte [ecx], bl
sbb ah, byte [0x29282726]
sub dh, byte [esi + 0x39383736]
cmp al, byte [ebx + 0x44]
inc ebp
inc esi
inc edi
dec eax
dec ecx
dec edx
push ebx
push esp
push ebp
push esi
push edi
pop eax
pop ecx
pop edx
arpl word [ebp + 0x66], sp
push 0x74736a69
jne 0x4014c0
ja 0x4014c4
jns 0x4014c8
add dword [ebp + eax*4 - 0x7677787a], 0xffffff8a
xchg edx, eax
xchg ebx, eax
xchg esp, eax
xchg ebp, eax
xchg esi, eax
xchg edi, eax
cwde
cdq
lcall 0xa7a6, 0xa5a4a3a2
test al, 0xa9
stosb byte es:[edi], al
mov dl, 0xb3
mov ah, 0xb5
mov dh, 0xb7
mov eax, 0xc3c2bab9
invalid
mov eax, dword [0x2309c1b1]
xor edx, dword [edx - 0x10]
and esi, dword [ebx]
push edx
invalid
adc eax, 0xad17262
push ss
and al, 0x34
loope 0x4014f7
int1
pop ss
sbb byte [ecx], bl
sbb ah, byte [esi]
daa
sub byte [ecx], ch
sub dh, byte [0x39383736]
cmp al, byte [ebx + 0x44]
inc ebp
inc esi
inc edi
dec eax
dec ecx
dec edx
push ebx
push esp
push ebp
push esi
push edi
pop eax
pop ecx
pop edx
arpl word [ebp + 0x66], sp
push 0x74736a69
push 0x74736a69
jne 0x401574
ja 0x401578
jns 0x40157c
add byte [ebx - 0x78797a7c], 0x88
mov dword [edx - 0x6a6b6c6e], ecx
xchg esi, eax
xchg edi, eax
cwde
cdq
lcall 0xa7a6, 0xa5a4a3a2
test al, 0xa9
stosb byte es:[edi], al
mov dl, 0xb3
mov ah, 0xb5
mov dh, 0xb7
mov eax, 0xc3c2bab9
invalid
jnp 0x4015eb
invalid
add byte [ebx], bh
test esi, eax
xor esi, dword [edi + edi*2 + 0x603a577]
enter 0xffffffffffff866c, 0x19
sbb eax, 0x150dc33
xchg ebx, eax
pushfd
xchg ebp, eax
sbb bh, al
cmp byte [edi], bh
popfd
add dl, byte [eax + esi*8]
inc esi
nop dword [esi - 0x2c]
or al, 0x5a
add al, 0x14
add byte [eax + 3], dl
dec eax
enter 0x7520, 0x22
cwde
push es
inc ebx
add cl, byte [eax]
and bl, ah
lcall 0xb037, 0x1fc82940
enter 0x683d, 0x18
wait
xor al, 0xc0
scasb al, byte es:[edi]
jp 0x4015bb
adc byte [edx + eax*4], 0xe
cmp eax, 0x3a00ff
pop edx
add al, 0x14
add byte [eax + 4], dl
insb byte es:[edi], dx
inc edx
cmp byte [ebx - 0x25], dh
scasb al, byte es:[edi]
cmp eax, 0x2edc0128
xor dword [ebp + 0x28bdfba3], ebx
sbb byte [esi], dh
inc ebx
xor al, cl
jmp 0xcc0f88b
or byte [esp + ebx*4], 0xe4
test al, 0xc6
cmp ecx, eax
cld
call 0x30c2bd09
js 0x4015f5
adc byte [edi - 0x587cf7e], ah
mul byte [eax - 0x5fdf2f9e]
add al, byte [eax + 0x341461a]
test eax, 0x1832c014
adc byte [ecx + 7], al
sbb al, 0xd2
add dword [esi + 0x40], ecx
stc
mov ebp, 0x40eb4186
invalid