Function at 0x401b88
Capabilities:
Encode data using xor

Disassembly:
push 0x411d2c
call sub.MSVBVM50.DLL_ThunRTMain
add byte [eax], al
inc eax
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edi + 0x63cee1c1], bl
jae 0x401b9f
inc edi
adc ecx, 0xffffffa3
adc al, 0xb3
lodsd eax, dword [esi]
pop ebp
or al, 0
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [0x30303043], ch
sub eax, 0x6a6f7250
je 0x401bfc
add byte [eax], al
xor byte [esi + esi], dh
jge 0x401bf5
xor ch, byte [esi]
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [esi], al
add byte [eax], al
add byte [ecx + 0x751aca1e], dh
invalid
fnstcw word [edx - 0x73]
add dword [eax], eax
add byte [eax], al
mov byte [eax], al
add byte [eax], al
cwde
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edi + 0x62], cl
push 0x65
add dword [eax], esp
cmp eax, 0x3030307b
xor bl, byte [eax + 0x4c]
pop edi
pop eax
push eax
add byte [eax], dh
xor byte [eax + 0x6ea3cb8f], dh
add al, 0xda
dec ebx
xchg dword [edi + 0x4b], eax
shr ah, cl
inc ecx
inc esi
stc
outsd dx, dword [esi]
sar byte [ecx], 0x50
mov bl, 0xbe
pop edx
dec esp
wait
mov edx, dword [edx - 0x41]
inc ecx
xor byte [ecx - 6], cl
dec esp
xor dword [eax], eax
cmp al, 0xc0
lcall 0x4045, 0xbe4b6c03
mov esp, 0xded06d29
loop 0x401c39
xchg ebx, eax
not dword [ecx]
add al, 0xc6
out dx, al
sbb eax, 0xd2a54bdf
push ebx
aad 0xb9
out 0xe4, al
sub edi, dword [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
and al, 0
add dword [eax], eax
dec ebx
add byte [eax], al
add byte [eax], al
add eax, 0x726f4600
insd dword es:[edi], dx
xor dword [eax], eax
or eax, 0x42001001
outsd dx, dword [esi]
jne 0x401d27
jne 0x401d16
jae 0x401cd3
push esp
insb byte es:[edi], dx
arpl word gs:[edi + 0x6d], bp
add byte [ecx], bl
add dword [eax], eax
inc edx
add byte [ebx], ah
add byte [eax], al
cmc
or al, byte [eax]
add byte [ebx + 0x41], dh
add byte [eax], al
invalid
add cl, byte [eax]
add byte [ebx + 0x6f], al
insd dword es:[edi], dx
insd dword es:[edi], dx
popal
outsb dx, byte [esi]
xor al, byte fs:[eax]
add al, 1
or byte [eax], al
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
insd dword es:[edi], dx
popal
outsb dx, byte [esi]
xor al, byte fs:[eax]
add al, 0xd9
pop ss
jae 0x401d48
mov edi, 0x901ef04
add byte [ecx], dl
cmp dword [eax], eax
inc dword [ebx]
sub al, 0
add byte [eax], al
add ecx, dword [eax]
add byte [ebx + 0x6f], al
insd dword es:[edi], dx
insd dword es:[edi], dx
popal
outsb dx, byte [esi]
xor dword fs:[eax], eax
add al, 1
or byte [eax], al
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
insd dword es:[edi], dx
popal
outsb dx, byte [esi]
xor dword fs:[eax], eax
add al, 0x93
adc dh, byte [ebx + 0x14]
mov edi, 0x901ef04
add byte [ecx], dl
cmp byte [eax], al
inc dword [ebx]
and dword [eax], eax
add byte [eax], al
add al, 6
add byte [ecx + ebp*2 + 0x6d], dl
jb 0x401daa
add byte [ebx], cl
add al, byte [eax]
add esi, dword [edx]
add byte [eax], al
add byte [edi], al
sbb ah, byte [edx]
add byte [eax], al
or byte [edx + 1], cl
add byte [eax], al
inc dword [ebx]
jg 0x401d90
add byte [eax], al
cmp byte [esi], al
add byte [eax + 0x4c], bl
pop edi
pop eax
push eax
xor dword [eax], eax
dec dword [0x6f725000]
push 0x65
je 0x401dd7
pop eax
dec esp
pop edi
pop eax
push eax
add byte [ebx], al
cmp al, 0
pop ebp
sub ch, byte [eax + 0x2e]
sub al, 1
pop es
add byte [edi], cl
aaa
add byte [0x9424c], ch
dec eax
add byte [eax], al
add byte [ebx + 0x480000b2], dl
add byte [eax], al
add byte [ebx], al
add byte [eax], cl
add byte [ebx], cl
push edi
inc edi
and byte [eax], al
add byte [eax], al
pop edi
add byte [ebp], ah
js 0x401dde
add byte [edi], bl
add byte gs:[eax], bh
je 0x401de0
add byte gs:[esi], ch
je 0x401de6
js 0x401de8
fist dword [ecx]
add byte [ebx], al
add byte [eax], cl
add byte [edx], cl
push edi
inc edi
loopne 0x401df5
invalid
invalid