Function at 0x401620
Capabilities:
Encode data using xor

Disassembly:
mov word [ecx], ss
inc eax
add bh, bh
and eax, sym.imp.MSVBVM60.DLL___vbaRecAnsiToUni
jmp dword [sym.imp.MSVBVM60.DLL___vbaSetSystemError]
push 0x4755b8
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
pop eax
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [0x3088370], al
fisttp dword es:[edx - 0x6e]
popfd
jl 0x4015ea
push cs
pop ss
test al, 0
add byte [eax], 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 [ecx + 0x72], dl
outsd dx, dword [esi]
je 0x4016c6
arpl word [eax], bp
push ecx
jb 0x4016d6
push esp
arpl word gs:[eax + 0x20], bp
and byte [edi + 0x61], al
jae 0x4016a0
inc esp
imul esp, dword [ebp + 0x73], 0x20206c65
dec ecx
outsb dx, byte [esi]
je 0x4016e2
jb 0x4016e5
popal
arpl word [ebp], sp
add byte [eax], al
add byte [eax], al
add bh, bh
int3
setl ah
mov cl, 0x4e
pushfd
out dx, eax
jns 0x40171f
and byte [esi + 0x4f3abdf1], dh
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 edi, dword [esi]
pop es
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 [ebx], ah
pop es
add ah, cl
xor eax, 0xa000007
add byte [ecx + 0x47], dl
popal
jae 0x401735
int3
imul esp, dword [ebp + 0x73], 0xd006c65
add dword [edx], edx
add byte [esi + 0x45], cl
push edi
push ecx
push edx
dec edi
push esp
inc ebp
inc ebx
dec eax
and byte [eax], ch
xor dword [eax], esi
sub eax, 0x293531
sbb dword [ecx], eax
add byte [edx], al
and dword [ebp + 0x6c0000f1], eax
je 0x40171b
add byte [ebp - 0xf], bh
add byte [eax], al
invalid
add bh, bh
fdivr st(7)
loopne 0x401725
adc byte [edx + 0x46], cl
dec ecx
inc esi
add byte [ecx], al
add dword [ecx], eax
add byte [eax], ah
pushal
add byte [eax], al
jmp ecx
loope 0x401737
and al, byte [ebp + 0x78]
imul esp, dword [esi], 0x4d4d00
sub al, byte [eax]
add byte [eax], al
or byte [eax], al
add dword [ecx], eax
adc al, byte [eax]
add eax, dword [eax]
add byte [eax], al
add dword [eax], eax
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add bh, bh
loop 0x40175d
sub byte [ecx + 0x43], cl
inc ebx
inc ebx
pop edi
push eax
push edx
dec edi
inc esi
dec ecx
dec esp
inc ebp
add byte [ecx], al
add dword [eax], eax
add byte [edx], al
sbb byte [eax], al
add byte [eax], al
add byte [eax + esi], al
add byte [eax], al
insd dword es:[edi], dx
outsb dx, byte [esi]
je 0x4017ec
push edx
inc edi
inc edx
and byte [eax + 0x59], bl
pop edx
and 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 + 0x63], ah
jae 0x401802
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 [ecx], al
add byte [eax], al
not dh
add byte [ecx], al
add byte [eax], al
add byte [eax], al
shr dword [0], cl
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
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], cl
jae 0x401855
add byte [eax], al
add al, dh
add byte [eax], al
add byte [edx + esi*2 + 0x58], dh
pop ecx
pop edx
add byte [eax], al
add dword [eax + eax], esp
add byte [eax], al
add byte [edi], dl
pop eax
pop ecx
pop edx
add byte [eax], al
add dword [eax], edi
add byte [eax], al
adc al, 0x62
pop eax
pop ecx
pop edx
add byte [eax], al
add dword [eax + eax + 0x72140000], ecx
push esp
push edx
inc ebx
add byte [eax], al
add dword [eax + 0x28000000], esp
push esp
push edx
inc ebx
add byte [eax], al
add dword [eax + 0x28000000], esp
bound edx, qword [edx + edx*2 + 0x43]
add byte [eax], al
add dword [eax + 0x28000000], esp
ja 0x4018b8
jo 0x4018ba
add byte [eax], al
add eax, ecx
add byte [eax], al
add byte [ebx], dl
jo 0x4018c3
je 0x401853
add byte [ecx], al
fadd qword [eax]
add byte [eax], al
cmp al, 0x6d
insb byte es:[edi], dx
jne 0x4018c1
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [0x53556e], cl
add byte [eax], al
pop eax
add byte [eax], al
add byte [eax + eax], bl
jae 0x401879
push edx
add byte [edi], al
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 [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
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
pop eax
pop ecx
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 + 0x59], bl
pop edx
and byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edi - 0x5e], ch
add byte [eax], al
cmp ch, dh
add byte [eax], al
add edx, dword [eax + 0x205a5958]
add byte [eax], al
add byte [eax], al
add byte [eax], al
bound ebx, qword [ecx - 0x7a490000]
add byte [eax], al
sbb dl, bl
pop eax
pop ecx
pop edx
and byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], ah
add byte [eax], al
je 0xcff6190a
jo 0x40196d
jb 0x40196f
add byte [eax], al
add byte [eax], al
add byte [eax + eax], al
add byte [eax], al
add ah, byte [esi + 0x66]
add byte [eax], al
repne cmpsd dword [esi], dword es:[edi]
add byte [eax], al
or eax, 0x13000059
rol byte [eax], 1
add byte [edx], cl
pop ebx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
pop eax
pop ecx
pop edx
and byte [eax], al
add byte [eax], al
add byte [eax], al
add dh, dh
salc
add byte [ecx], al
add byte [eax], al
add byte [eax], al
shr dword [0x63756c6d], cl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [0x53556e], cl
add byte [eax], al
and byte [eax], al
add byte [eax], al
sbb al, 0
inc edi
add byte [edi], ch
outsd dx, dword [esi]
add byte [edi], ah
insb byte es:[edi], dx
add byte [ebp], ah
add byte gs:[eax], ah
add byte [ecx], cl
outsb dx, byte [esi]
add byte [ebx], ah
and byte [eax], al
dec ecx
add byte [esi], ch
arpl word [eax], ax
add byte cs:[eax], ah
add byte [edx], dh
add byte [eax], dh
add byte [ecx], dh
add byte [esi], dh
invalid