Function at 0x40f3eb
Capabilities:
Encode data using xor

Disassembly:
test ah, dl
pop es
insb byte es:[edi], dx
insb byte es:[edi], dx
test dword [edx - 0x6e], edi
xchg ebx, eax
xchg ebx, eax
cmp edi, esp
cmp byte [0x6029e73f], 0xef
lodsb al, byte [esi]
pushal
in eax, 0x29
nop
or bh, ah
jno 0x40f2a5
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
out 0x6f, eax
or bh, cl
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
out 0x29, eax
out 0x31, eax
pushal
out 1, eax
nop
out 0xf, eax
nop
xchg ebx, eax
invalid
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
xor esi, dword [edx]
aaa
movsd dword es:[edi], dword [esi]
scasb al, byte es:[edi]
insb byte es:[edi], dx
cmp edi, esp
sub bh, 0x80
aas
cmp bh, byte [ebx]
nop
in eax, 0x29
nop
pop edi
lodsb al, byte [esi]
cmp al, 0x3c
cmp al, 0x93
sbb dword [eax - 0x6c87e66d], edx
sbb dword [ebx + edx*4 + 0x19], edi
pushal
xchg ebx, eax
sbb dword [esp + eax*4 + 0x52], esp
sbb ebp, dword [esp + ebp*2 - 0x11]
test al, 0x4c
in eax, 0x29
xchg esp, eax
xor esi, dword [edx]
aaa
out 0x29, eax
xchg esp, eax
out 0x89, eax
xor dword [edi + 0x18e7903a], ebp
dec eax
pushal
out 0x22, eax
pop edi
mov byte [0x939d3284], al
xchg ebx, eax
push es
insb byte es:[edi], dx
cmp dl, byte [ebx + 0x1a93781a]
pushal
push es
insb byte es:[edi], dx
xchg ebx, eax
sbb byte [eax + 0x48], cl
xchg ebx, eax
sbb bh, byte [ebx + edx*4 + 0x18]
dec eax
dec eax
test byte [edi + 0x1b], ch
insb byte es:[edi], dx
insb byte es:[edi], dx
out dx, eax
test al, 0x4c
xor ch, byte [edi - 0x107f18c7]
adc byte [edi + edi - 0x13], 0x11
dec edi
insd dword es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
sbb dword [esi - 0x2c], edi
rcr dword [edi + 0x21e76c2c], cl
pushal
in eax, 0x6d
pop edi
lodsb al, byte [esi]
sub al, 0x85
fsubr qword [esp + ebp*2 + 0x6c]
out dx, eax
or dword [esp + ebp*2 - 0x784fd655], esi
lahf
sub al, 0x6c
int 0x94
mov bh, 0x2e
insb byte es:[edi], dx
loope 0x40f36b
mov ah, 0x5f
lodsd eax, dword [esi]
in eax, 0x29
mov edi, fs
sub dword [ebp + 0x29], esi
mov bh, ah
sub dword [eax - 0x1b], esp
sub dword [edi + 0x29e57029], eax
and bh, 0x29
dec esp
in eax, 0x29
pushfd
out dx, eax
or dword [eax - 0x6bf61094], ebx
insb byte es:[edi], dx
out dx, eax
or dword [eax - 0x67f61a94], edx
insb byte es:[edi], dx
out dx, eax
or dword [esp + ebp*2 + 0x6c9009ef], edx
in eax, 9
cwde
in eax, 1
xchg esp, eax
or ch, cl
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
in eax, 0x29
mov ah, 0xe1
sub dword [eax + ecx + 0x6c6c6ccf], esi
insb byte es:[edi], dx
stosd dword es:[edi], eax
sub dword [ebp + ebp*2 - 0x18939394], esp
sub dword [ebp + 0x29], esp
mov al, byte [0xe57c29e7]
sub dword [esp + eax*4 + 0x6c6c5e6c], edi
out 0xec, eax
in al, dx
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
in eax, 0x29
mov eax, 0x3ca029e1
out 0x29, eax
xchg ebx, eax
pop esp
xchg ebx, eax
cmp dword [eax + 0x9ef3535], edi
movsb byte es:[edi], byte [esi]
insb byte es:[edi], dx
out dx, eax
adc dword [eax + 0x87b186c], edx
out 0x71, eax
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
out 0x6f, eax
out 0x31, eax
mov ah, 0xe5
outsd dx, dword [esi]
or ch, ah
jno 0x40f443
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
xchg dword [ebp - 0x19], esp
sub dword [eax + ecx + 0x6c6c6ccf], esi
insb byte es:[edi], dx
out 0x29, eax
movsb byte es:[edi], byte [esi]
aaa
movsd dword es:[edi], dword [esi]
scasd eax, dword es:[edi]
cmp edi, esp
cmp byte [0x29e7903f], 0x60
out 0x24, eax
pop edi
sub dword [eax - 0x19], esp
and al, 0x64
pop edi
and dword [eax - 0x7c], esp
cmp dword [ebx + edx*4 + 0x6429e793], ebx
out 0x2c, eax
push 0x180a8cef
jge 0x40f3f2
sub dword [eax - 0x55], esp
sub al, 0x48
insd dword es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
pop edi
lodsb al, byte [esi]
sub al, 0x87
add byte [edi - 0x1892f9fa], al
sub dword [eax - 0x6d], esp
sbb al, 0x74
out 0x29, eax
pushal
xchg ebx, eax
sbb al, 0x78
out 0x29, eax
pushal
xchg ebx, eax
sbb al, 0x60
push es
insb byte es:[edi], dx
xchg ebx, eax
sbb dword [edi + 0x29], edi
pushal
xchg ebx, eax
sbb al, 0x7c
xchg ebx, eax
sbb dword [esp + eax*4 - 0x42], esp
sbb dword [esp + ebp*2 - 0x11], ebp
test al, 0x4c
out 0x29, eax
pushal
out dx, eax
adc al, 0x48
insb byte es:[edi], dx
sbb dword [edi - 0x6d], esp
sbb dword [ebx + edx*4 + 0x19], esp
pushal
test byte [ecx - 0x6e], ch
xchg ebx, eax
xchg ebx, eax
push es
insb byte es:[edi], dx
push es
insb byte es:[edi], dx
push es
insb byte es:[edi], dx
push es
insb byte es:[edi], dx
push es
insb byte es:[edi], dx
loope 0x40f48e
nop
cmp al, 4
dec edi
insd dword es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
test cl, cl
xchg edx, eax
xchg ebx, eax
xchg ebx, eax
out dx, eax
test al, 0x70
out 0x29, eax
nop
out 0x31, eax
pushal
out 0xf, eax
jo 0x40f465
out 7, eax
pop es
dec esp
xchg ebx, eax
mov word [edi - 0x54], ds
sub al, 0x37
movsd dword es:[edi], dword [esi]
scasd eax, dword es:[edi]
cmp edi, esp
cmp byte [0xe73b3a3f], 0x11
out 0x2b, eax
cmp esp, edi
adc dword [edi + 0x2b], esp
jl 0x40f47d
sbb esp, dword [eax - 0x1b]
sub dword [eax + 0x4187b2e7], edx
out dx, eax
xchg edx, eax
xchg ebx, eax
sbb dword [ecx - 0x7c], ebp
neg dword [edx]
insb byte es:[edi], dx
insb byte es:[edi], dx
out 0x21, eax
nop
and ah, bh
stosb byte es:[edi], al
pop es
lodsb al, byte [esi]
js 0x40f522
lodsd eax, dword [esi]
out 0x21, eax
jl 0x40f50d
and al, 0x68
adc dword [ecx + 0x57], ebp
and al, 0x64
adc ch, byte [ecx - 0x11]
xchg edx, eax
xchg ebx, eax
sbb dword [ebp - 0x6d], esp
and dword [eax - 0x19], esp
xor dword [ebp + 0x19], esp
out dx, eax
adc dword [eax + 0x6c], esp
adc dword [esi + 0x2a7829e7], esp
in eax, 0x5c
out 0x29, eax
je 0x40f4c4
je 0x40f538
xor esp, dword [eax + 0x1b]
push 0x691a9f57
test byte [edx], bh
sbb ch, byte [esp + ebp*2 - 0x19]
stosb byte es:[edi], al
pop es
lodsb al, byte [esi]
js 0x40f563
sub dword [eax - 0x5ac8cdcd], edx
scasd eax, dword es:[edi]
out 0x28, eax
dec eax
cmp ah, bh
sbb byte [eax + 0x64], cl
in eax, 0x6a
test ch, dh
pop esp
insb byte es:[edi], dx
insb byte es:[edi], dx
out 0xec, eax
hlt
scasd eax, dword es:[edi]
test byte [eax], dl
pop esp
insb byte es:[edi], dx
insb byte es:[edi], dx
out 0xec, eax
hlt
out 0x2c, eax
push 0x9d19ace9
sub al, 0xaf
pop edi
lodsb al, byte [esi]
scasd eax, dword es:[edi]
cmp al, byte [esi + esi - 0x189393a4]
sbb byte [eax + 0x64], cl
push edi
fdivr st(4), st(0)
insb byte es:[edi], dx
insb byte es:[edi], dx
insb byte es:[edi], dx
sbb dword [ebx], ecx
or al, 0x25
pop esp
insb byte es:[edi], dx
insb byte es:[edi], dx
out 0x22, eax
push 0x6cf4e4e5
insb byte es:[edi], dx
insb byte es:[edi], dx
xor ch, byte [edi + 0x6c5c5584]
insb byte es:[edi], dx
out 0xec, eax
hlt
pushal
mov ecx, 0x2319c
mov bl, byte [ecx + 0x400fff]
xor bl, 0x59
sub bl, 0
xor bl, 0x35
mov byte [ecx + 0x400fff], bl
loop 0x4241a1
popal
jmp 0x40f21d