Function at 0x405eac
Capabilities:
Encode data using xor

Disassembly:
mov edx, gs
test dword [edx + 0x5692d0ee], ebx
mov eax, dword [0xa6eafc46]
cmp dword [ebx + 0x6e6f75cf], esp
mov ebx, 0x6556723c
jae 0x405ec5
cld
ljmp 0x6f75
int 0x26
sahf
pop es
das
aas
or esp, dword [ecx]
push ebp
sub byte [ecx + 0x202020c6], ah
mov al, byte [0x3a33f855]
xor eax, 0xeeaefa46
inc esi
cli
scasb al, byte es:[edi]
out dx, al
sub al, 0x89
push ecx
lodsb al, byte [esi]
adc dword [ebx - 0x5c], ebx
lodsd eax, dword [esi]
adc dword [ecx + 0x431de64d], eax
mov ecx, 0xaf925ac6
pop edx
xchg edx, eax
scasd eax, dword es:[edi]
xchg dword [edx], ebp
jno 0x405e36
pop es
jo 0x405e79
mov ah, 0x26
nop
jne 0x405e86
pop ebx
cmp byte [esi - 0x340bab3c], cl
mov dh, 0x7e
jg 0x405e40
jle 0x405e65
cmpsb byte ss:[esi], byte es:[edi]
jecxz 0x405ed0
les esi, [ebx]
cmp dh, byte [0x8d2dfdb6]
sub ebp, dword [edi]
leave
lodsd eax, dword [esi]
invalid
jmp dword [ecx + ebp + 0x1266a41]
movsb byte es:[edi], byte [esi]
sub dword [ecx + 0x6a], eax
add dword es:[eax + 0x45], ebp
inc ecx
push 0x26
add dword [eax + 0x45], ebp
inc edi
xor al, 0x3e
pop esp
ja 0x405f0d
push ebx
stosd dword es:[edi], eax
call 0x9ced2b6c
imul esi, esi, 0xffffffdc
jb 0x405eae
call 0x4d94571c
push edx
clc
push ebx
dec ebp
xor dword [ecx - 0x4d], esp
xchg dword [edi - 0x1c], esi
jge 0x405eab
jp 0x405f0f
and al, 0x21
push esp
jbe 0x405f49
enter 0x4215, 0x65
outsb dx, byte [esi]
test dl, 0x92
cmp al, 0x1b
jns 0x405e93
jno 0x405f4c
jle 0x405f4a
insd dword es:[edi], dx
insb byte es:[edi], dx
outsb dx, byte [esi]
jne 0x405f28
sub byte [ebx], 0xc2
push esi
or ch, byte [ebp + 4]
outsd dx, dword [esi]
lds edi, [0x8d356f4a]
popal
scasd eax, dword es:[edi]
movsd dword es:[edi], dword [esi]
and esi, dword [edx - 0x49]
in eax, dx
fnop
dec ebx
add bl, bh
xor eax, 0x2060e100
xlatb
and bh, dl
outsd dx, dword [esi]
push esi
scasb al, byte es:[edi]
invalid
pop esi
imul esi, dword [ecx - 0x199b6d75], 0x57
push 0x446b2f7a
scasb al, byte es:[edi]
insb byte es:[edi], dx
jl 0x405f60
and ah, byte [esi]
or ah, byte ds:[eax]
mov dword [0x7e7fdfe8], eax
scasb al, byte es:[di]
out 0x82, al
xor dword [ecx + 0x38], ebp
xor edi, dword [ecx]
sbb eax, 0x61706473
imul edi, dword [eax], 0x731d3933
jo 0x405fb3
cmp byte [ebx], dh
cmp dword [0x61706473], ebx
lcall 0xcea4, 0x726f5a8c
into
push ebx
movsd dword es:[edi], dword [esi]
salc
push ebp
sub byte [edx + 0x3b], cl
aam 0x68
xchg byte [ecx + 0x50e4638a], dl
dec esi
pop ebp
sub byte [edx + 0x68], dh
add byte [esp + 0x6e], al
push ebp
cmp ch, byte [ecx + 0x64]
mov al, 0xa4
je 0x405fe9
outsd dx, dword [esi]
add dword [ecx + 0x14e5691d], edi
jo 0x405fd4
loop 0x405fef
lcall 0x52c4, 0x6e64238e
or ch, byte [esi + 0x3e]
mov esi, esp
sub byte [0x3c202120], ah
xchg byte [edi + 0x7d1e31e3], al
xor eax, 0xb5796091
cmp al, 0x86
xchg ebx, esp
xor dword [esi], ebx
jge 0x405fd4
xchg ecx, eax
pushal
jns 0x405f58
mov ch, 0x25
and eax, 0x19ee466d
dec edx
aaa
insd dword es:[edi], dx
inc esi
out dx, al
sbb dword [edx + 0x37], ecx
cmp ah, byte [esi - 0x20]
clc
and ch, byte [esi]
jne 0x405f97
sub ebx, dword [esi]
push ds
or eax, 0xf66ab3eb
int 0x50
popal
out dx, al
jbe 0x405fa2
pop es
jo 0x405fa0
jb 0x405fef
das
xor eax, edx
lodsd eax, dword [esi]
cmp al, 0xe
pop esp
and dh, byte [edi + 0x555b5c9d]
adc ebp, dword [0x50d62713]
sub al, 0x65
adc esp, dword [edi]
salc
push eax
dec ebp
sub al, 0x20
add eax, 0x3a756f65
outsd dx, dword gs:[esi]
jne 0x40601c
cmp dword [ecx], 0xf02e2213
scasb al, byte es:[edi]
dec esi
jno 0x405fda
jbe 0x406034
pop ebx
xor eax, 0x73e64f46
jecxz 0x405fde
je 0x40605d
inc esp
imul ebx, dword [edx - 0x53], 0x4fa27f1c
cmp cl, byte [edx]
mov dword [0x60e6df28], eax
and eax, 0xed6ae636
mov ch, 0x32
in al, dx
movsb byte es:[edi], byte [esi]
outsb dx, byte [esi]
je 0x40607d
je 0x405fa4
mov dword [ebx + 0x405761aa], esp
sbb al, byte [eax + 0x25]
cmp eax, 0x689e955e
in al, 0xf
imul eax, dword [edi + 0x32], 0xc68b4165
xchg edi, eax
push cs
xor ah, dl
insb byte es:[edi], dx
in eax, dx
mov esp, 0xe55a1596
sub ah, byte [edx]
xchg esi, eax
adc eax, 0x222ae55a
in eax, 0x2a
and bl, cl
dec dword [ebx]
push esp
push cs
salc
fcos
or edx, dword [esi + ecx - 0x2a]
loope 0x40606a
push ebp
aaa
cmp eax, 0xfa857b9a
sub eax, 0x1db5eb65
push 0xffffffffffffffee
stosb byte es:[edi], al
stosd dword es:[edi], eax
mov byte [0xb97096a4], al
mov byte [ebx - 0x4a], bh
stosd dword es:[edi], eax
push ebp
inc esi
cmp al, ah
push 0xffffffffffffffbb
out dx, al
jns 0x406063
dec edx
in eax, 0x22
imul esp, ebp, 0x29
in eax, 0x29
jbe 0x40609a
lodsb al, byte [si]
std
push cs
sbb ebx, esi
pop esp
lcall 0x2f4d, 0x4d9dfb13
jne 0x406037
mov ecx, 0xf891bd51
pop ebp
lodsb al, byte [esi]
push ecx
mov ebp, 0xac5df891
adc byte [eax], ah
movsd dword es:[edi], dword [esi]
mov dh, 0xa3
sub byte [ecx - 0x45], dh
sbb al, 0x61
push edi
aam 0x76
sahf
in al, 0xf9
add dword [ecx - 0x84d8155], ebx
xchg edx, eax
nop
lcall 0xcd65, 0x23ae9167
not dword [edx + 0x679a3690]
xchg ecx, eax
scasb al, byte es:[edi]
and esp, dword [ebp - 0x33]
xchg ecx, eax
out 0x93, al
wait
push esi
cmp byte [ecx - 0xb], ch
xor eax, 0x2060e0d0
movsd dword es:[edi], dword [esi]
cld
sbb dword [ecx + 0x4b], ebp
mov bh, byte [edx]
insd dword es:[edi], dx
out 0x4b, eax
ljmp 0x2bed