Function at 0x40f3ea
Capabilities:
Encode data using xor

Disassembly:
push esi
wait
std
sub byte [ebx], ah
lodsd eax, dword [esi]
fmul st(4)
leave
sub dword [eax - 0x7ceb9741], 0xfc96d1b8
push ds
dec ebp
insd dword es:[edi], dx
or edi, dword [ebx - 0x68]
and eax, 0xcaab1af6
sbb byte [edi + 0xc53e059], al
sbb al, 0x11
loopne 0x40f2a8
or al, 0x26
sbb al, 0x11
pop edi
sbb al, 0xe7
pop esi
push ebp
retf
mov cl, 0xed
pop ebp
stc
salc
test dword [ebx + 0x250b1227], 0x4c2daead
imul esi, eax, 0x34
or byte ss:[ebx + 0x56050730], dh
cmp esi, dword [esi]
mov ebp, 0xf5a05dad
popal
popfd
jge 0x40f253
mov ch, 0xa1
popal
mov eax, dword [0x9390eb61]
dec edx
push eax
pop es
mov esi, 0x9678b0a
jmp 0x40f232
mov esp, dword [edi + 9]
and esi, edx
push 0x6e900c8a
mov ebp, 0x5cdbf47c
fisttp qword [esi - 0x24]
fidivr dword [esp + eax*2]
sbb dword [esi - 0x40], edx
lea ebx, [ecx - 0x4d]
pop ebx
and dword [ebx - 0x17], eax
sub byte [ecx], 0xb7
out 0x53, eax
pushal
out 0x15, al
xchg esp, eax
aaa
js 0x40f2c3
pop esp
xchg esi, eax
test dword [ebx - 0x7eb540a0], ebx
jp 0x40f27a
pushal
mov edi, 0x9c7a814a
push ebx
pop ss
lcall 0x5e15, 0xe2bc1b94
mov dl, byte [ebp - 0x62adea47]
or eax, dword [edi - 0x36]
xchg ecx, eax
fdivr dword [edi]
aas
insd dword es:[edi], dx
mov ah, 0x61
mov al, byte [0x6a6fdaec]
pop edx
push eax
inc edi
push esp
insb byte es:[edi], dx
ja 0x40f29b
add byte [eax + 0x29ca250], dl
ja 0x40f30b
mov bl, 0x96
xchg esi, eax
mov dl, 0xca
mov dh, 0x19
push ds
or eax, 0xad76d9b1
std
loopne 0x40f29d
mov al, byte [0xe87a3cad]
jle 0x40f2a0
cdq
mov byte [ebp + 0x54], ch
imul edi, ecx, 0xffffffd4
mov cl, 0x75
adc dh, byte [ebp + ebx + 0xa]
sar dh, 1
adc dword cs:[eax - 0x6d], 0xe42bb74
je 0x40f2f0
inc edx
push cs
nop
cmp al, 3
jg 0x40f2f2
mov ch, 0xe2
jg 0x40f2d8
sub ch, al
shl byte [eax], cl
aas
nop
xchg ebp, eax
inc edi
invalid
push 0x46
push edi
jns 0x40f3a3
and byte [ebx + ebx - 0x1f2efb2], 0x37
out 0x5e, al
jle 0x40f333
div byte [edi - 0x74e57003]
jle 0x40f3be
dec esp
loop 0x40f3bb
popal
cmp dword [ecx], esp
les ecx, [ebx + ebx + 0x49]
dec ebp
mov word [eax + 0x10d2f743], ds
mov edx, 0xf11f6ea
rol edx, cl
jb 0x40f34a
cli
cdq
inc esp
dec si
and edx, dword [eax - 0x69]
vcmpps xmm2, xmm5, xmmword [ebp + 0x3f], 0xcb
ja 0x40f3ae
cmp al, 0xaf
jne 0x40f3c3
aaa
mov esp, 0xb85d6c50
leave
imul ebp, dword [0x6c6b306b], 0xffdad187
or eax, 0x5b9d506
xor bh, byte [ebp - 0x6a024ed6]
xchg byte [eax - 0x25], al
and ah, byte [esi - 0x4b7d5156]
rcr edx, 1
jmp dword [ebp + ecx + 6]
sub dh, byte [ecx + 0x408695fd]
invalid
retf
std
retf 0x8fcd
int 0x8f
loopne 0x40f34c
mov al, dl
inc edi
rol byte [edi + 0x56], 1
aad 0xbe
sub esi, dword [edx + edi*4 - 0x11]
cwde
les esp, [ecx + 0x34]
pop ss
movsb byte es:[edi], byte [esi]
sar byte [esi - 0xaf323d8], cl
jle 0x40f3c0
aad 0x67
div dword [edi]
cmp byte [ebx + 0x4bb23be6], ch
pop es
inc ebp
inc edx
popfd
test eax, 0xa5383993
fcmovu st(0), st(7)
je 0x40f441
mov al, 0x75
pop ss
jg 0x40f461
mov esi, 0xad0f3a53
lodsd eax, dword [esi]
frstor dword [esi - 0x6d6e9e0a]
call [edx - 0x2565c8c1]
aaa
mov dh, 0xdb
std
lds esi, [edi - 0x219beadd]
xchg ebx, eax
ja 0x40f42d
cmpsb byte [esi], byte es:[edi]
push cs
mov dh, 0xe3
invalid
dec ecx
xlatb
in al, 0xab
daa
scasd eax, dword es:[edi]
rol byte [edi - 0x32], cl
ficom word [ebp + 0xfa7b13f]
mov edx, 0xc7455886
in al, 0xfd
invalid
fdiv dword [edx + 0x4f]
cmc
mov edi, dword [esi - 0x74]
invalid