Function at 0x40f2e6
Capabilities:
Encode data using xor

Disassembly:
dec eax
in eax, 0x33
mov ah, ch
in ax, 0x67
out 0x2b, eax
mov byte [0xe4861f1e], al
adc ebp, dword [esi + 0x6e]
pop ss
pop ss
lodsd eax, dword [esi]
in eax, 0x13
xchg ch, ah
xor esp, dword [edx - 0x126dcc19]
sti
mov gs, word [esi + 3]
xor edx, dword [edx + 0x6e8efbed]
add esi, dword [eax + 0x1e]
jo 0x40f20c
xchg byte [ecx + esi*2], ah
outsb dx, byte [esi]
outsb dx, byte [esi]
xchg byte [ebx], dl
jno 0x40f265
outsb dx, byte [esi]
mov cl, 0x33
jp 0x40f274
jns 0x40f277
jns 0x40f1e5
xor edx, dword [edx - 0x51c2a27b]
lodsd eax, dword cs:[esi]
in eax, 0x13
xchg byte [ecx + 0x79787a33], dh
jns 0x40f28b
xor edi, dword [edx + 0x78]
jns 0x40f28a
jns 0x40f1c9
mov dh, 0x79
outsb dx, byte [esi]
jns 0x40f283
outsb dx, byte [esi]
outsb dx, byte [esi]
xchg byte [ebx], dl
dec ebp
outsb dx, byte [esi]
outsb dx, byte [esi]
lodsd eax, dword [esi]
xchg byte [esi - 0x789191fb], dh
pushal
js 0x40f29f
xchg dword [eax + 0x78], esp
jns 0x40f2a0
jns 0x40f24b
and esp, ebp
mov bl, byte [edi]
in eax, 0x8a
pop ds
sbb eax, 0xed6a33e5
scasb al, byte es:[edi]
push 0xffffffffffffffe7
xor edi, dword [edx + 0x12]
in eax, 0x5b
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
in eax, 0x6d
adc cl, ch
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
in eax, 0x33
in ax, 0x1b
push 0xffffffffffffffe5
or edi, dword [edx - 0x1b]
or eax, 0x158e797a
cmpsd dword [esi], dword es:[edi]
lodsb al, byte [esi]
outsb dx, byte [esi]
push ss
pop ss
int1
jb 0x40f2ae
jns 0x40f1ec
and esp, ebp
mov bl, byte [edi]
pop ds
sbb eax, 0xe5122120
inc ebx
and dword [edx], edx
in eax, 0x43
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
out 3, eax
jp 0x40f222
xor esi, dword [esi - 0xf]
jl 0x40f2a4
outsb dx, byte [esi]
add al, 0x6e
jns 0x40f27e
push 0x79
add esi, dword [esi + 0x79]
jbe 0x40f2f9
add esp, dword [esi - 0x7a]
not dword [ebp + 0x6f]
outsb dx, byte [esi]
in eax, 0x33
push 0xffffffffffffffe5
xor ebp, dword [edx - 0x1b]
in eax, 0x2e
jb 0x40f27b
jb 0x40f27b
invalid
jp 0x40f288
out 0x35, eax
xor eax, 0x6e5be712
adc ah, bh
pop ebx
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
sbb dword [eax], ebx
adc eax, 0x6e66aca7
outsb dx, byte [esi]
and esp, ebp
mov ch, ch
mov ah, byte [esi + 0x1d]
and byte [ecx], ah
jp 0x40f2a2
xor edi, dword [edx + 0x3d]
scasb al, byte es:[edi]
push ds
push ds
push ds
jns 0x40f2c7
jp 0x40f33f
add esp, dword [edx + 0x79]
add ebx, dword [esi + 0x79]
add ebp, dword [edx + 0x79]
bound edi, qword [ecx + 3]
pop esi
jns 0x40f2d0
push 0x79
add esp, dword [esi - 0x7a]
cmp byte [ecx], al
outsb dx, byte [esi]
outsb dx, byte [esi]
xchg byte [eax], bh
add dword [esi + 0x6e], ebp
in eax, dx
mov dl, 0x4e
out 0x33, eax
jbe 0x40f2f6
sbb byte [0xe57633e5], dl
xchg ebx, eax
sbb ebp, dword [ebp + 0x2e57a20]
push edx
push 0xffffffffffffffe5
sub byte [esi + 0x3d], ah
test al, 0x86
sbb byte [edi + 0x79], bh
jns 0x40f2fb
add al, 0x6e
outsb dx, byte [esi]
and byte [ecx], bh
jns 0x40f2fb
bound edi, qword [ecx]
push 4
outsb dx, byte [esi]
jns 0x40f305
push edx
push edx
jns 0x40f307
pop esi
jns 0x40f30c
push edx
push edx
xchg byte [ebp + 1], ch
outsb dx, byte [esi]
outsb dx, byte [esi]
in eax, dx
mov dl, 0x4e
sbb byte [ebp - 0x12751add], ch
mov dh, byte [esi]
sbb eax, 0x4d66fbef
outsd dx, dword [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
add ebx, dword [esi + esi*4 - 0x47]
jge 0x40f358
outsb dx, byte [esi]
in eax, 0x2b
push 0xffffffffffffffe7
outsd dx, dword [esi]
cmp eax, 0xbe872eae
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
in eax, dx
adc edx, dword [esi - 0x65cc4e92]
test dword [ebp + 0x2e], edi
outsb dx, byte [esi]
iretd
push 0xffffffffffffffe7
xor eax, dword [esi - 0x18a5cc1b]
xor ecx, dword [edx - 0x18b1cc1b]
xor edi, dword [esi - 0x13]
adc eax, dword [edx + 0x7613ed6e]
outsb dx, byte [esi]
in eax, dx
adc edi, dword [edx + 0x6e]
out 0x13, eax
and bh, 0xb
jbe 0x40f38d
iretd
xor esp, dword [esi + 0x6e6e6e6f]
in eax, 0x33
out 0x33, ax
stosb byte es:[edi], al
in eax, 0x33
pop esi
out 0x33, eax
sahf
xchg byte [esi + 0x3c], ch
outsb dx, byte [esi]
outsb dx, byte [esi]
in eax, 0xee
out dx, al
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
out 0x33, eax
mov byte [0x1eaa33eb], al
in eax, 0x33
jns 0x40f3f4
jns 0x40f3db
mov byte [0x13ed1717], al
cmpsb byte [esi], byte es:[edi]
outsb dx, byte [esi]
in eax, dx
sti
jp 0x40f431
add ah, byte [ecx + 0x12]
in eax, 0x5b
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
in eax, 0x6d
in eax, 0x1b
xchg esi, eax
out 0x6d, eax
adc ah, bh
pop ebx
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
test dword [edi - 0x1b], esp
xor edx, dword [esi + 0x6e6ecd12]
in eax, 0x33
xchg esi, eax
adc cl, ch
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
in eax, 0x33
cmpsb byte [esi], byte es:[edi]
adc eax, 0xe523ada7
mov bl, byte [edi]
sbb eax, 0x6a33e57a
push 0xffffffffffffffe5
cmp ax, 0x6a2b
in eax, 0x26
cmp ax, 0x6a2b
xchg byte [ebx], ah
jle 0x40f477
jns 0x40f3e5
xor esp, dword [esi - 0x1b]
jb 0x40f3f3
mov ss, word [eax]
add bl, byte [edi - 0x1b]
xor ebp, dword [edx - 0x4f]
push edx
outsd dx, dword [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
cmp eax, 0xa852eae
test dword [esp + eax], eax
outsd dx, dword [esi]
in eax, 0x33
push 0x79
invalid
jns 0x40f436
pop esi
in eax, 0x33
push 0x79
invalid
in eax, 0x1b
push 0xffffffffffffffe5
or eax, 0x4e05e55a
jns 0x40f410
cmp eax, 0xa7152eae
lodsd eax, dword [esi]
and esp, ebp
mov bl, byte [edi]
sbb eax, 0xfbe52120
in ax, 0x31
pop esi
in eax, 1
push 0xffffffffffffffe7
xor edi, dword [edx - 0x1b]
cwde
in eax, 0x98
test dword [ebx - 0x13], ecx
js 0x40f51b
add esi, dword [ebx - 0x7a]
aad 0
outsb dx, byte [esi]
outsb dx, byte [esi]
in eax, 0x2b
jp 0x40f4d5
in eax, 0xb0
add eax, 0xaf6d62ae
in eax, 0x2b
pop esi
aaa
jb 0x40f4b6
jae 0x40f4f2
clc
jae 0x40f4af
js 0x40f53d
add esp, dword [edi + 0x79]
sub ebp, dword [edx - 0x1b]
sbb esp, dword [esi - 0x19]
add esp, dword [esi - 0x13]
sti
push 0x6e
sti
movsb byte es:[edi], byte [esi]
in eax, 0x33
bound esi, qword [eax]
out 0x3e, eax
in eax, 0x33
push esi
out 0x56, eax
xor eax, 0x72016a19
xor eax, 0x8673007d
and byte [eax], al
outsb dx, byte [esi]
outsb dx, byte [esi]
in eax, 0xb0
add eax, 0x336d62ae
bound ebp, qword [ebp + 0x33]
jp 0x40f510
sbb byte [0x32e5ada7], dl
push edx
and ch, ah
add dl, byte [edx + 0x66]
out 0x70, eax
xchg bh, dl
outsb dx, byte ds:[esi]
outsb dx, byte [esi]
in eax, 0xee
salc
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
out 0x30, eax
jb 0x40f49b
in eax, 0x3e
outsb dx, byte [esi]
outsb dx, byte [esi]
out 0xbe, eax
salc
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
in eax, 0xb0
sbb byte [ebp + 0x6e3efa86], ch
outsb dx, byte [esi]
in eax, 0xee
salc
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
test dword [ebp - 0x1b], esp
xor ax, 0x522a
jb 0x40f539
in eax, 0x66
xor eax, 0x272522a
in eax, 0x2e
jb 0x40f52f
jb 0x40f52f
scasb al, byte es:[edi]
add edi, dword [edi + 0x2e]
lodsd eax, dword [esi]
cmp eax, 0x8620adae
adc al, 0x3e
outsb dx, byte [esi]
outsb dx, byte [esi]
in eax, 2
push edx
xor ax, 0xd6be
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
add edx, dword [ecx]
push cs
daa
outsb dx, byte ds:[esi]
outsb dx, byte [esi]
in eax, 0x28
jb 0x40f546
out 0xd6, al
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
sbb byte [ebp + 0x6e3e3786], ch
outsb dx, byte [esi]
in eax, 0xee
salc
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
test dword [edi - 0x1b], esp
jb 0x40f5ac
jg 0x40f57b
push 0xf6edafe5
jb 0x40f5ee
scasd eax, dword es:[edi]
in eax, dx
div byte [edx + 0x6e]
add edi, dword [edi + 0x18]
xchg dword [edx - 0x1a9191fd], edi
sub byte [edx - 0x19], dh
jb 0x40f5a7
lodsd eax, dword [esi]
and esp, ebp
mov ch, ch
mov dl, byte [esi - 0x31]
jbe 0x40f52e
sub al, 0x6e
in eax, dx
adc eax, dword [esi - 0x79d41492]
cmp eax, 0x662be5af
out 0x33, eax
jle 0x40f590
xor ebp, dword [edx - 0x19]
push 0xffffffffffffffe7
xor eax, dword [edx + 0x2e6233e5]
mov cl, 0x33
mov dl, byte [eax - 0x1891d184]
sub esi, dword [esi - 0x19]
xor edi, dword [edx + 0x12]
iretd
push ds
adc bh, byte [ecx + 0x43]
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
jmp 0x40f62a
xor dl, byte [edx + 0x6a]
inc ebp
adc dl, byte [edx + 0x6a]
sbb eax, 0x46e72120
in eax, 0x86
iretd