Function at 0x40ec3e
Capabilities:
Encode data using xor

Disassembly:
add ah, byte [ecx - 0x59a9ac08]
out dx, eax
push 0x7ecfde4
push edi
adc al, 0x75
test al, 0x91
ror dx, 1
pop edx
and esi, dword [eax + 0x68]
aad 0xdc
lds esp, [eax - 0x7e]
out 0x92, al
neg ah
mov bl, 0xbc
inc ebx
cmp al, 0xc9
or al, 0x97
nop
and dword [ebp - 0x64], ecx
in al, dx
sal dword [edx + 0x7d3da4b2], cl
cmp eax, 0x94da0e7d
mov bl, 0xf5
jl 0x40ecb0
jnp 0x40ec0d
cmp eax, 0x94da0e7d
mov bl, 0xf5
jl 0x40ecb0
jnp 0x40ec0d
mov byte [esi - 3], 0xb2
mov byte [0x1034112c], al
xor al, 0x99
xor edi, dword [ebp + 0x77631610]
les esp, [0x7467d876]
fsub dword [edi + 0x74]
xchg esp, eax
xchg ebp, eax
mov al, 0xe6
in eax, 0x14
mov dl, byte [edx + 0x22]
loope 0x40ec1c
popal
movsb byte es:[edi], byte [esi]
mov eax, 0xc79bf302
stc
idiv dword [ebx + 0x51]
nop
cmp ebx, dword [ebx]
je 0x40ecbf
xor byte [esi + 0x76], dh
push ss
push es
and eax, 0xa22c3082
push edi
cmc
int 0x2b
and dword [edi + 0x469adbaa], 0xffffff84
lcall 0xa9b5, 0xa1ccd23b
not byte [edi - 0x7a]
movsd dword es:[edi], dword [esi]
or edx, dword [esi + eax - 0x3a]
iretd
push esi
jge 0x40ecf9
rcl dword [eax + eax*4 + 0x7f], 0xf
sbb dword [ebp + 0x5c], 0xe4e63011
in al, 0x80
push ebx
pushfd
cmpsb byte [esi], byte es:[edi]
adc byte [ebx - 0x64], 0xa6
mov dl, ch
mov bl, 0xbc
push ss
jbe 0x40ecbe
adc al, 0x30
push esp
lodsd eax, dword [esi]
shl esp, 1
inc esi
jbe 0x40ed4e
sbb dword [edx], eax
ja 0x40ec5e
shr dl, cl
push ebx
clc
mov cl, 0x62
add ah, byte [edx]
mov al, byte [eax]
fnsave dword [ecx - 0x6a]
out 0xb7, eax
bound edx, qword [edx - 3]
xchg edi, eax
xor ah, byte [edi - 0x74e9401d]
push esi
adc bl, bh
jle 0x40ed2a
loop 0x40ed00
mov byte [0x77e07261], al
xor al, 0x32
pop ss
adc dword [esi], 0x6ff8a3be
insd dword es:[edi], dx
loopne 0x40ed2c
sbb esi, 0x4122b333
pop es
mov cl, byte [edx + 0x43]
push 0x693bb06
xor dl, byte [edx]
mov ebx, 0xd3377dcf
outsb dx, byte [esi]
xchg edx, eax
xor al, byte [ebp + 0x71]
jb 0x40eccd
cmpsb byte [esi], byte es:[edi]
bound edx, qword [edi - 0x1dce789a]
xchg word [ecx], si
loop 0x40eda6
xor edx, esp
ja 0x40ed01
rol dword [esi - 0x27], 1
xchg esp, eax
aaa
sub cl, byte [0xa25fd102]
cmpsb byte [esi], byte es:[edi]
mov al, byte [esi]
jbe 0x40ed4c
inc esi
fst dword [edi + esi - 0x2efdf2d6]
pop edi
mov byte [0x76068aa6], al
or eax, 0x9305c691
sub byte [ecx - 0x762d7915], 0x5d
inc esi
lodsd eax, dword [esi]
xchg ecx, eax
mov byte [0xeba98293], 0x86
ror byte [ecx - 0x5a52b9a3], cl
movsd dword es:[edi], dword [esi]
cmp eax, 0x9948bb46
push esp
push es
inc esi
mov ebx, 0x6549948
imul dword [eax]
mov esp, edi
mov esp, edi
push ebx
cwde
xor ebx, dword [edx - 0x21acc63c]
dec esi
xchg ebx, eax
jb 0x40ed7c
mov dl, 0xe8
add byte [ecx + 0x76cab856], 0xe6
inc esi
mov ebp, 0x3b3212a2
dec edi
rol byte [eax], 0x26
xor byte [edi - 0x79d02580], cl
div byte [ebx - 0x2a]
das
xchg dh, dh
jae 0x40ed57
inc edx
salc
test cl, bl
cmpsd dword [esi], dword es:[edi]
mov dh, 0xfd
inc eax
cmpsd dword [esi], dword es:[edi]
cdq
aas
mov cl, 0xf6
mul byte [ebx]
inc esi
out 0xc6, al
sub eax, 0x66302fec
salc
xor bh, 0x1e
sbb al, 0x32
and ah, bl
cli
pop esp
rcl byte [ebx + 0x7c]
jl 0x40ed65
mov esi, 0x31365be
mov dh, 0x64
xor dl, ah
mov esi, 0xb6031365
xor dl, ah
mov dword [0x29170615], eax
ret 0xa6d