Function at 0x40597c
Capabilities:
Encode data using xor

Disassembly:
push 0x407644
call sub.MSVBVM60.DLL_ThunRTMain
add byte [eax], al
push eax
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [eax], cl
add byte [eax], al
add byte [eax], al
add byte [eax], al
inc edi
movsb byte es:[edi], byte [esi]
dec edi
mov ecx, 0x45c332e6
mov al, byte [ebp + 0xb23a3c6]
popal
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 esi
outsd dx, dword [esi]
jb 0x405a1f
jp 0x405a20
inc ecx
outsb dx, byte [esi]
je 0x405a2c
push esi
imul esi, dword [edx + 0x75], 0x725f0073
add eax, dword [eax + 0x36af1]
add byte [ecx], al
add byte [eax], cl
add byte [eax], al
add al, cl
add byte [eax], al
add byte [eax], bl
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [0x5a000000], bl
inc edx
and al, 0x10
invalid
add byte [eax + 0x50], bl
pop eax
push eax
pop edi
push eax
jb 0x405a95
jb 0x405a8e
jae 0x405a9e
inc edx
popal
jb 0x405a2f
add al, bh
dec esp
push esi
cmp eax, 0x484df833
mov eax, 0x66c47ff0
add eax, ebx
arpl word [edx - 0x74f495b8], di
dec esp
iretd
add byte [eax], al
add byte [eax], al
add byte [eax + 0x72], dl
outsd dx, dword [esi]
jb 0x405b03
jae 0x405b13
inc edx
popal
jb 0x405aa4
add byte [eax], al
add byte [eax], al
lcall 0xaa2d, 0xcd1900d7
inc esp
xchg dword [ebp + 0x793983c1], eax
adc al, 0xc0
xlatb
jl 0x405abe
std
shr byte [ecx], 1
add byte [edx - 0x60], al
aad 0x63
mov eax, dword [0x6585e8c1]
add byte [eax], al
add byte [eax], al
mov byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, byte [eax]
add byte [eax], al
add dword [eax], eax
add byte [eax], al
jno 0x405b42
ret
inc dword [eax]
add byte [eax], al
add byte [eax + 0x3746f], al
add byte [eax], al
add byte [ebx + 0x68], dl
popal
jo 0x405b7a
inc edx
jne 0x405b8c
je 0x405b89
outsb dx, byte [esi]
add byte [eax], al
add byte [eax], al
add byte [ebx - 0x504a6ba3], bh
test byte [ecx], bl
dec esp
mov eax, dword [0xf6a6a956]
mov edx, 0xeb8a2354
pop ecx
mov byte [0x44b2493e], al
xchg ebp, eax
cmpsb byte [esi], byte es:[edi]
mov al, byte [0x13f3f59f]
sbb edi, edi
int3
xor dword [eax], eax
or ch, byte [ebx]
rcr dword [ebx + 0x73], 1
jg 0x405bb4
outsd dx, dword [esi]
inc edx
mov edx, ebp
xor edi, edx
sahf
xor dl, byte [eax - 0x28]
push edi
jno 0x405b4d
xor ebp, esp
push es
ror byte [esi - 0x60], 1
xchg edi, eax
add ebp, dword [bx + si + 0x567c]
mov esp, 0x33ad4f3a
cdq
iret
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
outsd dx, dword [esi]
pop ss
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 [edi + 0x17], ch
add byte [eax], al
push esi
add eax, dword [eax]
add byte [eax], al
or al, byte [eax]
jb 0x405c14
push ebx
je 0x405c0b
jb 0x405c20
jne 0x405c1e
add byte [0xffffff03], cl
add byte [ebx], cl
arpl word [ecx], bx
add dword [eax], eax
inc edx
add byte [edx], ah
add esp, dword [ebx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add al, 0
add byte [eax], al
add byte [eax], al
add byte [edx], 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
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 0x800000], al
add byte [eax], al
add byte [eax + 0x8000], 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
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], 0
add byte [eax + 0x800080], al
add byte [eax], al
add byte [eax], 0x80
add byte [eax - 0x3fffff80], al
rol al, 0
add byte [eax + 0x80], 0xff
add byte [eax], al
inc dword [eax]
add byte [eax], al
invalid