Function at 0x407aa0
Capabilities:
Encode data using xor

Disassembly:
pop eax
insd dword es:[edi], dx
cmp eax, 0xff285e0d
adc byte [ebx], ah
pushal
rsm
and byte ds:[esi - 0x3e1d1ba7], ah
test eax, 0x9da1c15d
push ebp
pushfd
mov ecx, 0x3d819eaa
sahf
cmp eax, 0xa9a4c89d
sahf
mov ecx, 0xade22020
and dword [ecx - 0x63], ebx
mov ecx, 0xba8d9ee7
and byte [ecx - 0x63], bl
inc esp
dec cx
dec ecx
sub cl, dh
and ah, ah
loop 0x4067d2
and dword [ecx], ebp
lodsb al, byte [esi]
jo 0x406837
mov edi, 0x7e957a22
sub bh, bh
adc bh, ah
mov cl, 0xb9
stosd dword es:[edi], eax
sahf
movsd dword es:[edi], dword [esi]
mov edx, 0xba5468f0
xchg ah, bl
xchg ebp, eax
jmp 0xff68ccc6
sub bh, bh
adc ch, bl
pop ebp
mov esp, 0xa5919ea9
xchg ecx, eax
movsd dword es:[edi], dword [esi]
daa
fsubr st(2), st(0)
test eax, 0x45654422
dec bp
sub cl, dh
and ah, ah
loop 0x40680a
and dword [ecx], ebp
inc dword es:[eax]
sub dword [esi], esp
inc dword [eax]
and edx, esp
movsd dword es:[edi], dword [esi]
and dword [ecx - 0x63], ebx
mov ecx, 0x43919eab
dec cx
dec ecx
sub bh, bh
adc bh, ah
mov cl, 0xb9
stosd dword es:[edi], eax
sahf
movsd dword es:[edi], dword [esi]
mov edx, 0xba5468f0
xchg dh, bl
push 0xde86ba54
pop ebp
inc ebx
in al, 0xe2
test eax, 0x449d6dae
popaw
sahf
mov dword [eax], esi
adc byte [ebp - 0x33ae5be1], bl
sub esp, esp
loop 0x40682e
movsb byte es:[edi], byte [esi]
push ecx
int3
stosb byte es:[edi], al
sahf
mov dword [ebp - 0x561d23d9], esp
and al, byte [eax + ebp*2 + 0x3d]
sahf
inc ebp
popfd
daa
in al, 0xe2
popfd
stosb byte es:[edi], al
sahf
mov dword [ebp + 0x66], eax
inc ebp
sub cl, dh
and ah, ah
loop 0x406866
and dword [ecx], ebp
dec dword es:[eax]
in eax, 0xe2
mov eax, dword [0x8b7d9e4c]
sbb ebx, esp
loop 0x40684a
lodsb al, byte [esi]
sahf
test ecx, ecx
xlatb
pop ecx
add edi, dword [0xbe128919]
mov dword [0xabbc859e], eax
mov esi, 0xbc859ea3
stosd dword es:[edi], eax
sahf
add dword [edi + 0x35], 0x28ff2859
pop edx
insd dword es:[edi], dx
in eax, 0x65
inc ecx
outsb dx, byte [esi]
mov dl, 0xaa
sahf
jne 0x40685a
jge 0x40687d
jge 0x40687d
mov ecx, 0x449d5920
insw word es:[edi], dx
mov esi, 0x9fee4144
and byte [ecx + 0x26], bl
jl 0x40689a
sahf
test eax, 0xe1203142
frstor dword [ecx + ebx*2]
popfd
mov ecx, 0xcde2e420
test eax, 0x58a1c15d
aas
pushfd
mov ecx, 0xff281baa
xor dl, ah
lodsd eax, dword [esi]
inc esp
xor ax, 0xce2a
and ah, ah
loop 0x4068da
stosd dword es:[edi], eax
pop ecx
push cs
inc ebp
popal
sub byte [edi], cl
add ebx, esp
int1
frstor dword [edx]
mov eax, dword [0x986108dd]
mov ecx, 0x91e2e520
scasb al, byte es:[edi]
insd dword es:[edi], dx
popfd
inc esp
imul bp, word [eax], 0xa9ba
lodsd eax, dword [esi]
rol ecx, 0xab
scasb al, byte es:[edi]
test dword [ebx + 0x75], eax
jge 0x4068e1
inc edx
and eax, 0x1ba3857d
pop ecx
pushfd
movsd dword es:[edi], dword [esi]
and ch, cl
jge 0x4069c4
loop 0x4068d2
cmp eax, 0xff646a0d
sbb al, 0x5a
popfd
mov ecx, 0xb5e2e420
scasb al, byte es:[edi]
insd dword es:[edi], dx
popfd
inc esp
popaw
sahf
mov dword [eax], esi
adc byte [ebp + 0x1119a61f], bl
shl byte [ebx + 0xbbb999e], 0x41
call fs:[eax]
pop edx
popfd
mov ecx, 0xb5e2e420
pop eax
pushfd
mov ecx, 0xb9b1e6a0
stosd dword es:[edi], eax
sahf
movsd dword es:[edi], dword [esi]
mov edx, 0xba5468f0
xchg ah, bl
xchg ebp, eax
push ss
xchg ebp, eax
jo 0x4069bc
call [edi]
mov cl, 0xb9
stosd dword es:[edi], eax
sahf
movsd dword es:[edi], dword [esi]
mov edx, 0xba64bff0
jl 0x4069fc
call fs:[eax]
pop ebx
popfd
mov ecx, 0xc61adc20
and dh, cl
mov dl, 0x44
push bp
and byte [edx + 0x22], bh
out 0xb1, al
mov ecx, 0xbaa59eab
invalid
mov edx, 0xba64bff0
and byte [ecx - 0x78], bl
mov edi, 0x5920ba64
mov byte [edx], bl
call 0x20fafb68
pop ecx
popfd
inc esp
sbb ch, al
sahf
xchg ecx, eax
mov edx, 0x449d5920
dec bp
sub cl, dh
and ah, ah
loop 0x40699a
and dword [ecx], ebp
lodsb al, byte [esi]
jo 0x4069fb
mov edi, 0x85957a22
sub bh, bh
adc al, 0xe7
mov cl, 0xb9
stosd dword es:[edi], eax
sahf
test eax, 0xeae4e2ba
lodsd eax, dword [esi]
lodsb al, byte [esi]
sahf
cdq
mov ebx, 0xb1e2e4e1
and ah, byte [ecx]
sub al, dh
and ah, ah
loop 0x4069be
shl dword [ecx], 0x21
and dword [ecx], esp
and dword [eax + esi*2 - 0x35d940cd], ebp
mov dword [0xbbb919e], eax
sbb ebp, dword [eax]
unpckhps xmm4, xmm5
loop 0x4069c6
lodsb al, byte [esi]
jo 0x406a35
mov edi, 0x9ea3ca26
xchg ecx, eax
mov ebx, 0xf281b0b
adc eax, 0x22b5e2e5
sbb ebp, dword [eax]
call [eax]
pop ebx
insd dword es:[edi], dx
and bl, byte [ebx]
sub bh, bh
sbb byte [ebx + 0x6d], bl
inc edi
xor eax, 0x28ff2859
pop edx
insd dword es:[edi], dx
and al, ch
pop ecx
popfd
mov ecx, 0x42f21ce9
push es
fisttp qword [ecx - 0x66611836]
mov edx, 0x449d5920
push bp
sub cl, dh
and ah, ah
loop 0x4069fe
and dword [ecx], ebp
lodsb al, byte [esi]
jo 0x406a63
mov edi, 0x5f957a22
and bh, bh
sbb al, 0x5b
mov byte [ecx + 0x47999eac], ah
xor eax, 0x28ff2859
pop edx
insd dword es:[edi], dx
leave
xlatb
pop ecx
add edi, dword [0xd011b619]
stosd dword es:[edi], eax
sahf
cdq
inc edi
xor eax, 0x28ff2859
pop edx
insd dword es:[edi], dx
and al, ch
pop ecx
popfd
mov ecx, 0xbb99c6a3
or esi, dword [eax]
sub eax, 0x26aee483
lahf
je 0x406a5b
mov edx, ecx
stosd dword es:[edi], eax
sahf
lodsd eax, dword [esi]
jp 0x406a8f
jb 0x406aad
call dword [eax]
in eax, 0xe2
leave
loope 0x406ad0
lodsd eax, dword [esi]
inc ecx
dec dx
sub bh, bh
xor byte [edx], bl
test edx, eax
test al, 0x9e
pop dword [ebp + 0x66]
imul esp, dword [0xe22113ff], 0x9d5921b1
mov ecx, 0xba919ee7
and byte [ecx - 0x63], bl
inc esp
push cx
fdivr st(6)
sub al, 0xcc
fadd dword [esi + esi*2 + 0x61]
sub bh, bh
sbb byte [ebx + 0x6d], bl
leave
salc
jno 0x406aee
call dword [eax]
in eax, 0xf2
lodsd eax, dword [esi]
and ch, byte [ecx]
lodsb al, byte [esi]
outsd dx, dword [esi]
sub esp, esp
shr dword [ebx - 0xf446a62], 0x8a
shr dword [ebx - 0xf446a62], 0x8a
push 0xade1fb43
cmp al, 0x66
dec ebp
sahf
cmp al, 0x9e
dec ebp
mov eax, dword [0xe220282e]
lodsd eax, dword [esi]
and dword [ecx - 0x63], ebx
mov ecx, 0xbb959ea3
or edx, dword [edi]
sub eax, 0xf869e53d
sahf
xchg ebp, eax
mov ebx, 0x3d2d170b
in eax, 0x69
clc
push ss
in al, 0xae
lahf
movsb byte es:[edi], byte [esi]
inc ebp
lds eax, [eax - 0x3e5e829b]
and byte [ecx - 0x63], bl
inc esi
dec cx
mov esi, 0xb4d24144
and byte [ecx + 0x28], bl
jmp [edx + eax*8]
jmp 0x4068c0