Function at 0x401974
Capabilities:
Encode data using xor

Disassembly:
add bh, bh
and eax, sym.imp.MSVBVM60.DLL___vbaStrVarMove
jmp dword [sym.imp.MSVBVM60.DLL_EVENT_SINK_QueryInterface]
push 0x4120a0
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
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], dl
xor al, 0x44
xor ch, byte [edi - 0x52b618b7]
test byte [esp + eax], bh
jnp 0x401955
movsb byte es:[edi], byte [esi]
pop edi
add byte [eax], 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
push ebx
push ecx
add byte [eax], al
add byte [ebx + 0x51], dl
dec esp
sar byte [ebx - 0x4d4f0344], cl
xlatb
mov al, 0xb9
movsb byte es:[edi], byte [esi]
mov esi, 0xdf
add byte [eax], al
dec esp
xor dword [eax], eax
sub dword [esi - 0xb0804a0], eax
lcall 0x834f, 0xa2a74c2e
out 2, eax
sti
mov dword [0xd4e630c1], eax
cdq
push ds
dec eax
xchg esp, eax
cmp edx, eax
and al, 0xf9
jns 0x4019ad
or 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
jb 0x401a24
add dword [eax], eax
sub dword [0x5000000], ecx
add byte [esi + 0x6f], al
jb 0x401a99
add byte [eax], al
add eax, 0x726f4600
insd dword es:[edi], dx
xor dword [eax], eax
or eax, 0x53002201
push ecx
dec esp
xor dh, byte [eax]
xor byte [eax], dh
retf 0xbefd
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
cwde
cwde
cwde
cwde
cwde
cwde
test byte [esp + eax*4 - 0x67737374], al
cwde
cwde
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 - 0x7f7c6768], bl
cmp byte [ebp + 0x7d], 0x7d
cwde
cwde
cwde
cmpsd dword [esi], dword es:[edi]
xchg esp, eax
lea esi, [edi - 0x6f546865]
nop
xchg edi, eax
test byte [edi + 0x6c], bh
cwde
cwde
cwde
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
cwde
cwde
cwde
xchg edi, eax
test byte [edi - 0x38], bh
movsb byte es:[edi], byte [esi]
sahf
loopne 0x401b3e
mov bl, 0x6f
arpl word fs:[ebx - 0x5631746a], si
cwde
stc
invalid