Function at 0x401370
Capabilities:
Encode data using xor

Disassembly:
push 0xff004010
and eax, sym.imp.MSVBVM60.DLL___vbaFreeVar
jmp dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
push 0x401b04
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
push 0x40000000
add byte [eax], al
add byte [ebx - 0x51], bh
je 0x401328
fist word [ebx - 0xc7bb2]
test eax, 0xc5596869
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
bound esp, qword [ecx + 0x6c]
dec esi
popal
insd dword es:[edi], dx
push eax
push ebx
dec esp
push edx
insd dword es:[edi], dx
outsd dx, dword [esi]
je 0x40141a
add byte [ecx + 0x6c], ah
jae 0x40141f
or eax, 0x4c53500a
and byte [edx + 0x65], dl
insd dword es:[edi], dx
outsd dx, dword [esi]
je 0x40142b
and byte [ebx + 0x6f], al
outsb dx, byte [esi]
je 0x40143e
outsd dx, dword [esi]
insb byte es:[edi], dx
and byte [ebx + 0x6c], al
imul esp, dword [ebp + 0x6e], 0x65442074
jo 0x401446
outsd dx, dword [esi]
jns 0x401442
jb 0x4013df
jb 0x40144a
bound esi, qword [ebp + 0x74]
add byte [eax], al
add byte [eax], al
dec esp
xor dword [eax], eax
add edi, edi
xchg esp, eax
test al, 0x1d
fistp qword [eax]
retf
pushal
rcl dword [ebx], 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
bound eax, qword [esi]
add byte [eax], al
add byte [edx + 6], ah
push es
add byte [eax], al
add al, 6
push es
add byte [eax], al
add byte [edx], dl
add byte [esi + 0x72], ah
insd dword es:[edi], dx
adc al, byte [eax]
jb 0x4014bc
push eax
push ebx
dec esp
push edx
insd dword es:[edi], dx
outsd dx, dword [esi]
je 0x4014bd
inc ebx
insb byte es:[edi], dx
imul esp, dword [ebp + 0x6e], 0x10d0074
push ds
add byte [edx + 0x65], dl
insd dword es:[edi], dx
outsd dx, dword [esi]
je 0x4014ce
and byte [ebx + 0x6f], al
outsb dx, byte [esi]
je 0x4014e1
outsd dx, dword [esi]
insb byte es:[edi], dx
and byte [ebx + 0x6c], al
imul esp, dword [ebp + 0x6e], 0x65442074
jo 0x4014e9
outsd dx, dword [esi]
jns 0x4014e5
jb 0x401482
sbb dword [ecx], eax
add byte [edx], al
and al, byte [ebx]
and eax, dword [esi + 0x6c000005]
je 0x401491
add byte [esi + 5], bh
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add dword [eax], eax
adc byte [eax], dl
add byte [eax], al
add dword [eax], eax
or byte [eax], al
push 0x16000005
add byte [eax], al
add byte [eax], ch
add byte [eax], al
add byte [eax], dl
add byte [eax], al
add byte [eax], ah
add byte [eax], al
add byte [ecx], al
add byte [eax], cl
add byte [eax], al
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 [eax], al
add byte [ecx], al
add byte [eax], 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
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], ch
sub byte [eax + eax], ch
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
sub byte [eax], ch
sub al, 0
xor dword [ecx], esi
xor dword [eax], eax
aaa
aaa
add byte ds:[ebx + ebx], cl
pop eax
add byte [eax], cl
sbb ebx, dword [eax]
or al, 0x20
and byte [ebp], al
or al, 0x26
inc ebp
add byte [esi], cl
push ecx
add byte [eax], bl
push edx
add byte [edi], dl
and eax, 0x2d1f005f
pop ebp
add byte [esi], ch
cmp dword [ecx], eax
xor dword es:[ebx], edx
add bl, byte [eax]
insd dword es:[edi], dx
add byte [ebx], dl
xor byte [eax + eax + 0x3b], ah
push ecx
add byte [si], ah
inc ebp
jb 0x401514
inc edx
inc edx
inc edi
add byte [edi + 0x47], al
dec eax
add byte [esi + 0x48], al
dec edx
add byte [ecx + 0x51], cl
pop ebp
add byte [edx + 0x4d], cl
imul eax, dword [eax], 0x50
push edx
pushal
add byte [esi + 0x5e], bl
arpl word [eax], ax
dec eax
bound esi, qword [ebp]
imul esp, dword [ebx + 0x6e], 0x6e6c7000
add byte [esi + 0xc00747e], dl
and al, 0x8b
add byte [0x3118009a], cl
xchg ebp, eax
add byte [eax], bl
xor al, 0x9d
add byte [eax], bl
xor dword [ebp - 0x62cbe800], edx
add byte [eax], ch
cmp eax, 0x37240083
mov dword [eax], eax
add dword [eax], esp
mov dword [0xad2b0400], eax
add byte [eax], dl
sub al, 0xab
add byte [edx], dl
sub al, 0xae
add byte [esp + esi], cl
lodsd eax, dword [esi]
add byte [eax], dl
xor byte [esi - 0x50cbeb00], ch
add byte [eax], bl
cmp dword [ebx - 0x4ad3f300], ebp
add byte [0x1700b93f], dl
cmp eax, 0x463400bc
test byte [eax], al
xor edx, dword [ebp - 0x7d]
add byte [edx], ch
inc esi
lahf
add byte [eax], ah
inc ebx
mov eax, 0xb9462100
add byte [ecx], ah
inc ebx
mov edi, 0xbe462300
add byte [esi], dh
pop edx
mov ah, 0
inc edi
lea eax, gs:[eax]
pop edi
jnp 0x401547
add byte [ebp + 0x63], cl
mov edx, 0xb46f5900
add byte [edx + 0x74], bl
mov esp, 0xa87b6f00
add byte [esi + 0x7d], ch
mov ch, 0
push 0xa00bc7e
cmp al, 0xcf
add byte [ecx], dl
cmp al, 0xc9
add byte [edi], bl
inc esp
les eax, [eax]
sbb eax, dword [esi - 0x36]
add byte [edi], bl
dec ecx
rol byte [eax], cl
and byte [esi - 0x3e], al
add byte [eax], ah
inc edi
mov byte [eax], 0x23
dec ecx
ret 0x2500