Function at 0x40f3eb
Capabilities:
Encode data using xor

Disassembly:
mov dword [0xfb8401fb], eax
and dword [eax - 0x1c7fde1b], esi
jmp 0x66525e79
add dword [ebx + 0x6c], eax
insb byte es:[edi], dx
mov dword [0x6c1bd484], eax
insb byte es:[edi], dx
test dword [esi + 0x6e], esi
test ah, dl
sbb ebp, dword [esp + ebp*2 - 0x7b]
jbe 0x40f293
outsd dx, dword [esi]
outsd dx, dword [esi]
xor ebx, edi
cwde
cmp eax, 0x7821fb33
jecxz 0x40f1dd
js 0x40f218
and dword [eax], ebp
sti
dec ecx
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
sti
arpl word [eax], ax
ret
sti
add ebp, dword [eax + 0x6f]
mov word [ebx], cs
movsd dword es:[edi], dword [esi]
mov byte [0x35346c64], al
out 0x60, eax
inc eax
outsd dx, dword [esi]
invalid
insb byte es:[edi], dx
outsd dx, dword [esi]
adc dword [eax + 0x6f], edi
adc dword [edi + ebp*2 + 0x15846411], edx
dec ebx
insd dword es:[edi], dx
insb byte es:[edi], dx
sti
and dword [eax - 5], edi
sub al, 0x60
jecxz 0x40f21b
imul edi, ebx, 0x2de57839
in eax, 0x2d
pushal
add bl, bh
sub dword [esp + ebp*2 + 0x6c], ebp
insb byte es:[edi], dx
sti
or dword [eax - 0x1b], ebp
sub eax, dword [eax]
in eax, 0x49
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
femms
or esp, dword [ebp + 0x316c64a2]
sti
cwde
jecxz 0x40f24d
xor esi, dword fs:[esi]
aaa
push 0x536821e5
lodsb al, byte [esi]
cmp al, 0x3c
cmp al, 0x6f
adc dword [eax + 0x6f], ebp
adc dword [eax + 0x6f], esi
adc dword [edi + ebp*2 + 0x11], edi
js 0x40f33e
adc dword [esp + eax*4 + 0x2e], esp
pop ss
insb byte es:[edi], dx
insb byte es:[edi], dx
jecxz 0x40f278
dec esp
in eax, 0x21
xchg esp, eax
femms
or edi, ebx
and dword [ebx + edi*8 + 0x36a30981], edx
push 0x784010fb
sti
push ebx
mov esi, 0x6f9d0e84
outsd dx, dword [esi]
sbb ch, byte [esi + esi + 0x6f]
push ss
jo 0x40f36c
push ss
js 0x40f31a
insb byte es:[edi], dx
outsd dx, dword [esi]
adc byte [eax + 0x40], al
outsd dx, dword [esi]
push ss
jl 0x40f378
adc byte [eax + 0x40], al
test byte [ebx + 0x17], ah
insb byte es:[edi], dx
insb byte es:[edi], dx
jecxz 0x40f2b3
dec esp
push cs
mov dword [0xe398fb31], eax
cwde
push esp
xor ebp, ebp
jmp 0x6cae3687
mov byte [ebx - 0x3293d36d], bl
xchg esp, eax
wait
xchg ebx, eax
sub al, 0x6c
int 0x94
mov esp, dword [edx]
insb byte es:[edi], dx
stc
cmp dword [ebx + edx*2 - 0x73de1a53], esi
sti
and dword [ebp + 0x21], esi
cmp bl, 0x21
js 0x40f33f
and dword [ebx + edi*8 + 0x21e54821], eax
cwde
sti
and dword [ebp + 0x21], ecx
pushfd
jecxz 0x40f36b
nop
insb byte es:[edi], dx
jecxz 0x40f36f
xchg esp, eax
insb byte es:[edi], dx
jecxz 0x40f373
push 0x9001e56c
insb byte es:[edi], dx
in eax, 1
nop
in eax, 0x19
xchg esp, eax
add ch, cl
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
sbb dword [eax + eax + 0x6c6c6ccd], edx
insb byte es:[edi], dx
in eax, 0x21
mov ah, 0xf9
and dword [eax + eax + 0x6c6c6cc3], esi
insb byte es:[edi], dx
cmpsd dword [esi], dword es:[edi]
and dword [ebp + ebp*2 - 0x4939394], esp
sti
and dword [ebp + 0x21], esp
mov eax, 0xe57c21fb
and dword [esp + eax*4 + 0x6c6c526c], edi
sti
in al, dx
in al, dx
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
in eax, 0x21
mov al, 0xf9
and dword [eax + 0x6421fb3c], edi
outsd dx, dword [esi]
pop esp
outsd dx, dword [esi]
xor dword [eax + 0x1e33535], esi
movsb byte es:[edi], byte [esi]
insb byte es:[edi], dx
jecxz 0x40f3aa
push 0x77106c
sti
dec ecx
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
sti
arpl bx, di
or dword [ebp + 0x49e50063], esi
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
wait
sti
and dword [eax + eax + 0x6c6c6cc3], esi
insb byte es:[edi], dx
sti
and dword [ebx + ecx - 0x4ce5c5b], esp
cwde
cmp eax, 0x21fb6833
js 0x40f3f0
push 0xfb7821fb
and al, 0x64
push ebx
cmp dword [eax - 0x7c], edi
xor dword [edi + ebp*2 + 0x6421fb6f], ebx
sti
sub al, 0x60
jecxz 0x40f393
push es
adc byte [ebp - 5], bh
and dword [eax - 0x59], edi
sub al, 0x40
insd dword es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
push ebx
lodsb al, byte [esi]
sub al, 0x9b
sbb byte [ebx - 0x492e5e6], bl
and dword [eax + 0x6f], edi
sbb al, 0x74
sti
and dword [eax + 0x6f], edi
sbb al, 0x70
sti
and dword [eax + 0x6f], edi
sbb al, 0x78
sbb ch, byte [edi + ebp*2 + 0x11]
jl 0x40f430
insb byte es:[edi], dx
outsd dx, dword [esi]
adc dword [ebx + edi*8 + 0x21], edi
js 0x40f4a7
and dword [eax + 0x6f], edi
sbb al, 0x7c
outsd dx, dword [esi]
adc dword [esp + eax*4 - 0x4e], esp
adc dword [esp + ebp*2 - 0x1d], ebp
mov al, byte [0x7821fb4c]
jecxz 0x40f45e
inc eax
insb byte es:[edi], dx
adc dword [ebx + 0x6f], edi
adc dword [edi + ebp*2 + 0x11], esp
js 0x40f3d9
popal
outsb dx, byte [esi]
outsd dx, dword [esi]
outsd dx, dword [esi]
sbb ch, byte [edx + ebx + 0x6c]
sbb ch, byte [edx + ebx + 0x6c]
sbb ch, byte [ecx + edi*8 + 0x21]
push 0x6d43043c
insb byte es:[edi], dx
sbb ch, byte [edx + ebx + 0x6c]
stc
and dword [eax + 0x3c], ebp
add al, 0x43
insd dword es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
test cl, al
outsb dx, byte [esi]
outsd dx, dword [esi]
outsd dx, dword [esi]
jecxz 0x40f413
dec eax
sti
and dword [eax - 5], ebp
or dword [eax - 5], edi
add ecx, dword [eax - 5]
sbb ecx, dword [edi + ebp*2 - 0x74]
push ebx
lodsb al, byte [esi]
sub al, 0xb
movsd dword es:[edi], dword [esi]
mov dword [0x3d98fb31], eax
xor esi, dword [esi]
aaa
sti
jmp 0x7c68eff9
insb byte es:[edi], dx
insb byte es:[edi], dx
sti
cmp dword [eax + 0x3e], ebp
sti
cmpsb byte [esi], byte es:[edi]
sbb ebp, dword [eax + esi*2 + 0x39fbad63]
jl 0x40f50d
and al, 0x60
jmp 0x64652020
hlt
pushal
mov ecx, 0x2319c
mov bh, byte [ecx + 0x400fff]
xor bh, 0x6a
sub bh, 0x2d
sub bh, 0xd9
mov byte [ecx + 0x400fff], bh
loop 0x4241a1
popal
jmp 0x40f21d