Function at 0x40129c
Capabilities:
Encode data using xor

Disassembly:
push 0x401600
call sub.MSVBVM60.DLL_ThunRTMain
add byte [eax], al
push 0x30000000
add byte [eax], al
add byte [eax], ah
add byte [eax], al
dec eax
add byte [eax], al
add byte [eax], bl
inc esi
imul edx, dword [ebx + 0x47a38d26], 0xbc6d90b3
jge 0x40130a
mov byte [0x4f], 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 [ebx + 0x41], dl
push eax
outsw dx, word [esi]
jb 0x40134c
jae 0x401333
arpl word [ebx + 0x65], dx
jb 0x40135d
jb 0x4012ea
add byte [eax], al
add byte [eax], al
add byte [eax], al
push ebx
inc ecx
push eax
outsw dx, word [esi]
jb 0x401364
jae 0x401319
push edx
arpl word [eax], sp
push ebx
jb 0x401377
and byte [ebx + 0x65], dl
jb 0x401377
jb 0x401304
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 [ecx], al
add byte [eax], al
mov al, 0
add byte [eax], al
enter 0, 0
add al, byte [eax]
add byte [eax], al
add al, byte [eax]
add byte [eax], al
pop esi
int 0x63
jo 0x4012fc
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [esi - 0x33], bl
arpl word [eax - 0x2d], si
lodsb al, byte [esi]
or eax, 0x16f19c4f
pop es
fcomp qword [esi]
sgdt ds:[eax]
sgdt [eax]
add byte [eax], al
mov eax, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
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 [edx + 0x66], dl
arpl word [ebx + 0x65], dx
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 edx
arpl word [ebx + 0x65], dx
jb 0x4013d5
add byte [edi - 0x1f], bl
mov eax, esi
jae 0x401381
dec ebx
sub dword [ecx + 0x3b], 0xfffffff4
cld
sub eax, 0x3352a8df
inc esi
and byte [ebx + 0x65], dh
jb 0x4013ee
jbe 0x4013de
jb 0x40139b
jb 0x40139b
outsd dx, dword [esi]
bound ebp, qword [edx + 0x65]
arpl word [esi + ebp + 0x20], si
inc ebx
popal
and byte cs:[ebx + 0x61], al
outsb dx, byte [esi]
and byte [edx + 0x65], ah
and byte [ebp + 0x73], dh
and byte fs:[esi + 0x6f], ah
jb 0x4013b3
arpl word [ecx + 0x6c], sp
insb byte es:[edi], dx
bound esp, qword [ecx + 0x63]
imul esi, dword [ebx + 0x20], 0x74
outsd dx, dword [esi]
jae 0x4013bd
je 0x40140e
and byte [edx + 0x2f], dl
xor ecx, dword [0xa]
mov al, 1
add byte [eax], al
dec eax
add dword [eax], eax
add byte [eax + 1], ch
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
leave
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add cl, cl
adc byte [edi + 0x4f], al
jae 0x401379
cmpsb byte [esi], byte es:[edi]
inc ebp
mov byte [edx + 0x7d], dh
xchg esp, eax
and byte [ecx], dl
cli
ret
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
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 [edx + 0x33], dl
inc esi
inc esi
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 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 edx
xor eax, dword [esi + 0x46]
imul esp, dword [ebp + 0x6c], 0x64
add byte [eax], al
add byte [eax], al
add dl, dl
ja 0x4013d6
mov esp, 0x43832dba
mov eax, dword [0x8b346aa2]
in eax, 0xf7
sbb byte [ebp + 0x6e], al
neg dword [eax]
inc ebp
outsb dx, byte [esi]
arpl word [ecx + 0x70], sp
jae 0x40148c
insb byte es:[edi], dx
popal
je 0x401484
outsd dx, dword [esi]
outsb dx, byte [esi]
and byte [edi + 0x66], ch
and byte [ecx + 0x20], ah
popal
jo 0x401496
insb byte es:[edi], dx
imul esp, dword [ebx + 0x61], 0x6e6f6974
and byte [esi + 0x69], ah
insb byte es:[edi], dx
and byte fs:[edi + 0x69], dh
je 0x4014a1
imul ebp, dword [esi + 0x20], 0x20656874
push edx
xor eax, dword [esi + 0x20]
imul bp, word [ebp + 0x20], 0x6f66
jb 0x4014ba
popal
je 0x40145d
or al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
clc
add dword [eax], eax
add byte [eax], dl
add al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, ch
fcomp qword [eax + esi*2 - 0x1c]
daa
ja 0x4014bc
cdq
nop
scasd eax, dword es:[edi]
adc byte [ecx + 0x1a51d4e], bl
add byte [eax], al
add byte [eax], al
add al, byte [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
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 [edx + 0x33], dl
inc esi
add byte [eax], al
add byte [eax], al
add byte [edx + 0x7d], bl
rcl dword [ecx], cl
test byte [edi - 0x6672ba71], ch
add byte [eax], al
add byte [edx], 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 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 edx
xor eax, dword [esi]
add byte [eax], al
add byte [eax], al
pop edx
jge 0x40147e
adc dword [edi + ebp*4 - 0x6672ba71], eax
xchg edi, eax
jecxz 0x40149e
jl 0x401514
dec ebx
inc ebp
outsb dx, byte [esi]
arpl word [ecx + 0x70], sp
jae 0x401534
jo 0x401531
jne 0x40152c
insb byte es:[edi], dx
popal
je 0x40152c
outsd dx, dword [esi]
outsb dx, byte [esi]
and byte [edi + 0x66], ch
and byte [edx + 0x33], dl
inc esi
and byte [esi + 0x69], ah
insb byte es:[edi], dx
and byte gs:[esi + 0x6f], ah
jb 0x401543
popal
je 0x401507
add byte [eax], al
add byte [ecx], al
add byte [esi], al
add byte [eax + 0x58], cl
inc eax
add byte [eax], al
add byte [eax], al
add bh, bh
add byte [eax], al
add byte [eax], al
add byte [esp + eax + 0x18], ch
add byte [edx + 0x1c0040], dl
sbb al, 0
inc edx
add byte [eax], al
pushal
inc eax
add byte [eax - 0xbffbf58], bh
pushal
inc eax
add byte [eax + 0x7f], al
inc eax
add al, ch
adc eax, 0x9880040
mov byte [ecx], cl
inc edx
add byte [eax], bh
xchg ebp, eax
inc eax
add byte [eax], ch
xchg ebp, eax
inc eax
add ah, al
test al, 0x40
sub byte [ebp - 0x573bffc0], dl
inc eax
add byte [eax - 0x13ffbf6f], ah
xchg ecx, eax
inc eax
add byte [eax + 0x5c004011], bh
xchg ecx, eax
inc 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 al, cl
cmp eax, 0xc8ba0041
cmp eax, 0x54b90041
adc al, byte [eax]
jmp ecx