Function at 0x401114
Capabilities:
Encode data using xor

Disassembly:
push 0x405114
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
jge 0x401119
out dx, al
invalid
aam 0xf3
jns 0x401183
stosd dword es:[edi], eax
cmp byte [edi + 8], bh
push edi
ja 0x40111a
wait
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
sal bl, 0xe2
add eax, 0xccb3a4b9
xor dword [eax], eax
loop 0x40115d
add byte [eax], al
add byte [eax], al
dec esp
xor dword [eax], eax
pcmpgtw mm3, qword [esi]
and eax, 0xe51a5c2d
inc esp
movsb byte es:[edi], byte [esi]
cmp al, 0x34
retf
int3
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
push edi
aas
add byte [eax], al
push 0x1d
add eax, 0x726f4600
insd dword es:[edi], dx
xor dword [eax], eax
or eax, 0x46000501
outsd dx, dword [esi]
jb 0x40123b
xor dword [eax], eax
sbb dword [ecx], eax
add byte [edx], al
and al, byte [ecx]
and esp, dword [esi]
sbb eax, 0x746c0000
add byte [eax], al
push ds
sbb eax, 0
add dword [eax], eax
add dword [eax], eax
xor byte [eax], dh
add byte [eax], al
add dword [eax], eax
sbb byte [eax], al
or byte [0x160000], bl
add byte [eax], al
sub byte [eax], al
add byte [eax], al
xor byte [eax], al
add byte [eax], al
pushal
add byte [eax], al
add byte [ecx], al
add byte [eax], bl
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 [edx + 0x6d922979], bl
cmp dword [eax + 0x6d92396e], edx
cmp ecx, dword [ebx + 0x70883571]
xchg esp, eax
jno 0x401268
xchg esi, eax
jp 0x401256
cmpsd dword [esi], dword es:[edi]
add byte [edx], 0xb4
or byte [edx], 0xae
jg 0x401248
cmpsd dword [esi], dword es:[edi]
xchg dword [eax], eax
movsb byte es:[edi], byte [esi]
test dword [eax], eax
cmpsb byte [esi], byte es:[edi]
test dword [eax], eax
lodsb al, byte [esi]
xchg dword [eax], eax
scasd eax, dword es:[edi]
add byte [ebx], 0xb1
add byte [esi], 0xa7
add byte [esi - 0x7853ff7b], ah
add byte [edi - 0x7f4efc7e], ch
push es
cmpsd dword [esi], dword es:[edi]
or byte [edx], 0x96
ja 0x401277
xchg ebp, eax
jne 0x401291
xchg esp, eax
outsb dx, byte [esi]
cmp byte [eax + 0x6f90376f], dl
aaa
invalid
jno 0x40129e
lea esi, [ebx + 0x31]
nop
insb byte es:[edi], dx
xchg ebx, eax
insd dword es:[edi], dx
aaa
lcall 0xa712, 0x7ea52970
jle 0x40128b
cmpsd dword [esi], dword es:[edi]
jl 0x40128b
stosb byte es:[edi], al
jg 0x401289
movsd dword es:[edi], dword [esi]
test byte [0xb00086ac], al
add dword [ebx], 0xffffffa4
add dword [edx], 0xa616809a
jle 0x40129e
lcall 0xa80d, 0x7ea61680
add dword [ebx], 0xffffffaa
xchg byte [eax], al
test eax, 0x83b10186
add byte [ebx - 0x7e50fd7d], ch
add al, 0xaa
add dword [edx], 0xffffffa4
add dword [edi + ebx*4], 0xffffff83
pop es
test al, 0x83
add ebp, dword [edx - 0x7956ff7a]
add dword [ecx - 0x7c54ff7d], esi
add ch, byte [edi - 0x7c55fb7f]
add ah, byte [ebx + eax*4 + 0x7839f04]
add dword [edx], 0xffffffaf
add dword [edx + ebp*4], 0x83a40283
add al, 0x9f
add dword [edi], 0xffffff91
xchg ecx, eax
jg 0x4012bd
movsb byte es:[edi], byte [esi]
or dword [eax], 0x6e
push edi
push ebp
bound ecx, qword [ebx + 0x78]
push esi
inc edi
sbb byte [ecx + 0x46], 0x85
pop esp
inc esi
xchg dword [edi + 0x46], edx
test dword [esi + eax*2 - 0x79], ebx
push edi
inc esi
xchg byte [edx + 0x4a], ah
jp 0x401340
pop eax
pop ebp
test eax, 0x80b31a7c
add ch, byte [edi - 0x7a53fd7e]
add dword [ebp - 0x7c59fb7f], ebp
add al, 0xa5
mov byte [ecx], al
movsd dword es:[edi], dword [esi]
test dword [ebx], eax
mov dl, 0x84
add dword [ebx + 0x586a137f], esp
cmp dword [ecx + 0x50], ebx
jno 0x40134c
inc esp
sbb byte [ebx + 0x45], 0x86
pop ecx
inc ebx
mov ebx, dword [ebx + 0x42]
mov word [edi + 0x46], ds
test byte [ecx + ecx*2 + 0x7c], bl
popal
dec edi
jle 0x401371
push edi
je 0x40128b
push ecx
xchg ebx, eax
imul esi, dword [esi], 0xffffff9d
jns 0x40132a
movsb byte es:[edi], byte [esi]
jg 0x401323
scasb al, byte es:[edi]
or dword [eax], 0x900282a7
xchg dword [esi], ecx
aad 0xf9
lodsd eax, dword [esi]
outsd dx, dword [esi]
jne 0x40133f
xchg esp, eax
test dword [ebx], ecx
stosb byte es:[edi], al
xchg dword [edi], eax
movsb byte es:[edi], byte [esi]
test byte [0xa80283aa], al
or ebp, dword [edx - 0x7b5bf879]
add eax, 0xa80283aa
stosb byte es:[edi], al
add dword [edx], 0xffffffa8
test dword [eax], eax
scasd eax, dword es:[edi]
add byte [ebx], 0xb1
add byte [edx], 0x9a
or dword [0x7e1e8073], 0x7f876cae
sbb ch, byte [edx + 0x59]
xchg dword [edi + 0x1a], edi
jg 0x40135c
push 0x59
pop esp
pop esi
inc esi
invalid
and eax, 0xd5283cd4
inc ebx
das
mov bh, 0x5a
inc eax
xchg ebx, eax
jl 0x4013b1
mov word [0x82af1979], ax
add ebp, dword [ebx - 0x7951ff7b]
add byte [ecx - 0x7e52f980], dh
push es
test eax, 0x85a60484
sbb dword [edi - 0x7a54fc7e], ebp
add byte [esi - 0x7f4eff7a], ch
push es
lodsd eax, dword [esi]
add dword [esi], 0xa60484a9
test dword [eax], eax
scasd eax, dword es:[edi]
test dword [eax], eax
mov byte [0x566b127e], al
add byte [edi + 0x7ea20085], ch
adc ch, byte [ebx + 0x56]
cmp ebx, dword [ebx + ecx*2 + 0x7e]
inc edx
xor eax, 0xc9252eb9
xor dword [ecx], ebp
fidivr dword [edi]
retf
xchg esi, eax
pop esi
mov edi, dword [ebp + 0x1d]
mov eax, dword [0x84ac147f]
push es
stosd dword es:[edi], eax
xchg byte [eax], al
stosd dword es:[edi], eax
test dword [edi], eax
wait
test dword [esi], ecx
mov cl, byte [esi + 0x7f]
loope 0x401411
out dx, al
call 0x96659126
jns 0x4013f3
test dword [eax + 0x41], ebp
inc eax
xor eax, 0xd1292979
xor dword [ebx], esp
aad 0x7c
mov bh, 0x89
pop esi
dec ecx
movsb byte es:[edi], byte [esi]
js 0x401409
cmpsb byte [esi], byte es:[edi]
test byte [edx], al
lodsb al, byte [esi]
test dword [esi + ebp*4], eax
mov byte [edx], al
test al, 0x86
add byte [esi - 0x7b54fc7d], ah
add byte [ebp - 0x7c54fd7d], ch
add ch, byte [edi - 0x7c57fc7e]
add ebx, dword [edi + 0x7296177e]
cmp esi, dword ss:[ecx]
jle 0x401422
xchg esi, eax
jb 0x401444
cmp esi, dword [ecx]
mov ebp, dword [edi]
das
and al, 0xd4
and dl, ch
inc esp
xor byte [ecx - 0x64b69671], dh
je 0x40145d
and dword [edi + 0x49], 0x49
dec ecx
dec ecx
cmp bl, byte [ecx + 0x3a]
xor al, 0xbb
xor eax, 0x3249ce23
mov esp, 0x979f6d88
jae 0x401454
sahf
jle 0x40143f
add byte [eax - 0x34047ee4], 0x19
cmc
cmc
in eax, dx
jmp 0x551206d1
mov edx, esi
rcl dword [eax + edi*2 + 0x32]
lcall 0x7908, 0x7e9c0a80
jge 0x401471
pushal
xchg edi, eax
pop esi
inc ebp
out dx, eax
jmp 0x2a340679
hlt
sub esp, ebx
xchg dword [edi - 0x5e], esp
cdq
jne 0x40149e
scasd eax, dword es:[edi]
xchg dword [ecx], ecx
cmpsb byte [esi], byte es:[edi]
xchg byte [esp], al
add byte [edi], 0xaa
add byte [ebp*4 - 0x7b52fd7d], 0
lodsd eax, dword [esi]
add byte [ebx], 0xb1
add dword [ebx], 0xa80086a8
add dword [ebx], 0xffffffa6
add dword [ebx], 0xffffffa8
test byte [eax], cl
mov dword [0x3943127c], eax
outsb dx, byte [esi]
sub dword [ebx], esp
into
inc ebx
cmp dword [esi + 0x29], ebp
and ecx, esi
sub al, 0x20
in al, 0x56
inc ecx
movsb byte es:[edi], byte [esi]
popfd
jne 0x4014cf
test eax, 0x88a80b81
or dword [ebx + 0x62761482], esp
push ecx
inc edi
cdq
xor eax, 0x1f29ca25
int 0x94
je 0x40146f
xchg esp, eax
jo 0x4014fc
movsd dword es:[edi], dword [esi]
xchg dword [ecx], edx
xchg byte [bx + di], bl
dec ebp
cmc
shl byte [0xf00fe7f7], 0xf2
das
invalid
ret