Function at 0xece690
Capabilities:
Encode data using xor

Disassembly:
push ebx
salc
int 0x3c
scasb al, byte es:[edi]
pop es
lodsd eax, dword [esi]
cld
and al, 0x7a
mov ecx, 0xb57a38fc
cld
or al, 0x7a
cmp esp, 0x7e18e700
xchg ebx, eax
add dl, byte [edx + eax*4]
stc
leave
not dword [esi - 0x6588e510]
invalid
retf
shl byte [edi], 1
pop esp
movsb byte es:[edi], byte [esi]
fdiv qword [ebx + ebx*4]
jge 0xece55f
sbb byte [edi + 0x18], dl
jg 0xece511
stc
in al, dx
or dword ds:[ecx - 0x20], ecx
or dword [ecx - 0x20], ecx
jp 0xece601
sub ebx, edi
mov esp, 0x42c82049
cmp byte [esi - 0x45eec56a], dh
inc ecx
invalid
push esp
mov bh, 0xd
jbe 0xece5b3
dec byte [edx + 0x1d861282]
mov cs, word [edx + 0x16]
sbb ebx, ebx
sti
sbb cl, bh
fld st(3)
popfd
enter 0xe37, 0x16
ret
push edx
xor dword [edx - 0x4259dfc6], edx
and bh, 0xe2
punpckldq mm0, dword [esi + eax - 0x732f8950]
inc esp
jp 0xece56e
ror byte [esp + eax*2 + 0x2706a07a], 1
push es
daa
mov fs, word [edx + edx + 0x1e70b196]
ja 0xece57f
lock sub dh, byte [edi - 0x56]
invalid
ja 0xece59f
invalid
dec eax
jb 0xece5c9
cld
pop esp
jp 0xece5d9
cld
push eax
jp 0xece5b9
cld
and al, 0xfb
ret 0x383a
adc bl, byte [edx]
mov edx, 0x8e9a331c
sbb al, 0xf
lcall 0x1596, 0x9a1b1c82
pop ss
mov esi, 0x4be30761
jle 0xece65c
dec edx
jb 0xece5df
retf
inc esp
xchg esi, eax
les edx, [ecx]
dec eax
xchg esi, eax
rcl byte [ecx]
pop esp
adc eax, 0x43a3c21
mov esp, 0xbc183a99
xchg ebp, eax
cmp ch, ah
mov esp, 0xbce03a61
jge 0xece6b3
hlt
jmp 0xece69a
pushal
call 0xece6a0
pop ebp
sub ebp, 0x10
sub ebp, 0xace690
jmp 0xece6b6
loop 0xece637
push edi
mov eax, 0xace690
add eax, ebp
add eax, 0x4c
mov ecx, 0x5d7
mov edx, 0xc3512a55
xor byte [eax], dl
inc eax
dec ecx
jne 0xece6cd
jmp 0xece6e0
ficomp word [eax + 0x5569dcde]
push ebp
push ebp
aam 0x94
lodsd eax, dword [esi]
push ebp
push ebp
push ebp
push esi
cwde
in eax, dx
push eax
push ebp
push ebp
push ebp
out dx, eax
jge 0xece74d
push ebp
push ebp
mov byte [0xde9d56b7], al
aam 0x59
push ebp
push ebp
push ebp
push esi
nop
fdiv dword [ecx]
jno 0xece6b3
fcom qword [ecx + 0x71]
add eax, 0x5be5c13d
push ebp
cmp eax, 0x55cb60a9
push esp
jns 0xece78c
cmp eax, 0xbdd63a50
mov ebp, 0x55555550
mov esp, 0x5555557d
add dh, bl
mov ecx, 0x555dd0de
push ebp
push ebp
faddp st(0)
pop ecx
push ebp
push ebp
push ebp
invalid
stosb byte es:[edi], al
or byte [edi - 0x2621aaa7], dl
jno 0xece7a7
push ebp
push ebp
push ebp
cmp eax, 0x555be5c1
cmp eax, 0x55cb60a9
push esp
jns 0xece7d7
add al, 0xbd
push eax
push ebp
push ebp
push ebp
mov esp, 0x55555714
add al, bl
cmp dword [ecx + 0x55], esi
stosb byte es:[edi], al
and byte [ecx - 0x56], bl
and byte [ebp - 0x43], bl
daa
push ebp
push ebp
push ebp
fsubp st(0)
pop ebp
push ebp
push ebp
push ebp
aam 0xa4
xabort 0xffffffffffffffdd
xor ah, dl
movsb byte es:[edi], byte [esi]
xabort 0xffffffffffffffdd
xor byte [esi - 0x64], ah
xchg si, dx
mov ebp, 0xd15a1d50
sbb edx, dword [ebp + 0x55]
push ebp
pop edx
fstp qword [0x33555555]
fimul word [ecx + 0x6c]
xor ebx, esi
dec ecx
insb byte es:[edi], dx
aad 0xae
mov ebp, 0x554fd15a
push ebp
push ebp
aad 0xae
mov esp, 0x5544d15a
push ebp
push ebp
xor edx, esp
scasb al, byte es:[edi]
stosb byte es:[edi], al
jo 0xece81d
rol dword [eax + 0x55], 1
push ebp
push ebp
adc al, 0xbc
cdq
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
jl 0xece7e9
insb byte es:[edi], dx
push esp
salc
xchg esp, eax
push eax
salc
mov ebp, 0xaae8bc51
stosb byte es:[edi], al
stosb byte es:[edi], al
push ecx
mov esp, 0xaaaaaae8
jl 0xece7e0
insb byte es:[edi], dx
push edi
salc
xchg esp, eax
push ebx
salc
mov edi, 0x50bdd651
push eax
mov esp, 0xaaaaaafe
or byte [edi - 0x21ffaaa7], dl
mov ecx, 0xde000203
and byte [ecx - 0x22], bl
sub byte [ebp - 0x57], bl
out 0xd5, eax
fist word [ebx - 0x2c]
xchg ebx, eax
push esp
push ebp
push ebp
push ebp
fst qword [edx - 0x2c]
xchg edx, eax
push esp
push ebp
push ebp
push ebp
out dx, al
push edi
push ebp
push ebp
push ebp
push edi
xchg dword [edx - 0x30], ebx
push eax
push ebp
push ebp
push ebp
fild word [ebx + 0x13]
inc edi
xchg dword [edx - 0x2a], ebx
lea ebp, [edx - 0x78a85556]
pop edx
rcl byte [eax + 0x55]
push ebp
push ebp
fild word [ebx + 0x13]
inc edi
xchg dword [edx - 0x2a], ebx
aas
push ebp
push ebp
push ebp
xchg bp, ax
push edi
xchg dword [edx - 0x30], ebx
push eax
push ebp
push ebp
push ebp
fild word [ebx + 0x13]
inc edi
xchg dword [edx - 0x2a], ebx
jg 0xece8a4
push ebp
push ebp
push edi
xchg dword [edx - 0x30], ebx
push eax
push ebp
push ebp
push ebp
fild word [ebx + 0x13]
inc edi
xchg dword [esi - 0x6b], eax
push edi
xchg dword [edx - 0x30], ebx
push eax
push ebp
push ebp
push ebp
fild word [ebx + 0x13]
inc edi
xchg dword [esi - 0x6b], eax
push edi
xchg dword [edx - 0x30], ebx
push eax
push ebp
push ebp
push ebp
fild word [ebx + 0x13]
inc edi
xchg dword [esi - 0x6b], eax
push edi
xchg dword [edx - 0x30], ebx
push eax
push ebp
push ebp
push ebp
fild word [ebx + 0x13]
inc edi
xchg dword [esi - 0x6b], eax
pop edx
rcl dword [ebx + 0x55]
push ebp
push ebp
fimul word [edx + 0x56df8d7e]
fst qword [edx + 0x12]
out dx, al
push edi
push ebp
push ebp
push ebp
mov esp, 0xaaaaaa25
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
in eax, dx
push esp
push ebp
push ebp
push ebp
push edi
xchg dword [edx - 0x30], ebx
push eax
push ebp
push ebp
push ebp
fild word [ebx + 0x13]
inc edi
xchg dword [esi - 0x6b], eax
push edi
xchg dword [edx - 0x30], ebx
push eax
push ebp
push ebp
push ebp
fild word [ebx + 0x13]
inc edi
xchg dword [edx - 0x29], ebx
mov ebp, dword [edx - 0x69815556]
out dx, al
push esp
push ebp
push ebp
push ebp
pop edx
shl byte [ecx + 0x55], 1
push ebp
push ebp
in al, dx
push esp
push ebp
push ebp
push ebp
push edi
xchg dword [edx - 0x30], ebx
push eax
push ebp
push ebp
push ebp
fild word [ebx + 0x13]
inc edi
xchg dword [esi - 0x64], eax
push edi
xchg dword [edx - 0x30], ebx
push eax
push ebp
push ebp
push ebp
fild word [ebx + 0x13]
inc edi
xchg dword [edx - 0x29], ebx
mov ebp, dword [edx - 0x21fc5556]
mov byte [0xf1a6a07e], al
or edi, dword [ebp + ebx*2 + 0x1daaaaaa]
xchg esp, eax
mov ch, 0x5d
fist word [ebx + 0x13]
fidivr word [ebp + 0x555554ec]
push ebp
push edi
xchg dword [edx - 0x30], ebx
push eax
push ebp
push ebp
push ebp
fild word [ebx + 0x13]
inc edi
xchg dword [esi - 0x64], eax
push edi
xchg dword [edx - 0x30], ebx
push eax
push ebp
push ebp
push ebp
fild word [ebx + 0x13]
inc edi
xchg dword [edx - 0x29], ebx
mov ebp, dword [edx - 0x522b5556]
push ebp
sub byte [ebp + 0x55], dl
aam 0x8c
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
aam 0xad
push ebp
push eax
push ebp
push ebp
aam 0x8c
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
aam 0xad
aad 0x55
push ebp
push ebp
aam 0x84
push ebp
push ebp
push ebp
push ebp
aam 0xad
aad 0x55
push ebp
push ebp
aam 0x84
push ebp
push ebp
push ebp
push ebp
add ebx, esi
mov byte [0xf1a6a57e], al
or edi, dword [esi + ecx*8 - 0x20555555]
push ebx
adc esp, dword [esi - 0x64]
xchg ebp, eax
mov ebp, 0x4fd15a54
push ebp
push ebp
push ebp
aam 0x84
push edi
push ebp
push ebp
push ebp
fidivr word [ebp + 0x7ea2de03]
movsd dword es:[edi], dword [esi]
cmpsb byte [esi], byte es:[edi]
int1
or ebp, esi
push esp
push ebp
push ebp
push ebp
mov esp, 0xaaaaab26
or byte [esi + 0x28], bh
pop ebp
ficom word [edx - 0x4f21f4f6]
or byte [edi + 0xb0a555d], dl
mov esp, 0x55555551
adc dword [eax - 0x3a124210], edi
mov bl, 0xf9
push ebp
push esi
nop
aam 0x95
xchg ebp, eax
push es
push esi
push ebp
push ebp
in al, dx
test dword [edi + 0x55], edx
push ebp
out dx, eax
xchg edi, eax
and bl, ch
cmp byte [ebp + 0x45], ah
adc eax, 0xa3d05a1c
stosb byte es:[edi], al
stosb byte es:[edi], al
stosb byte es:[edi], al
mov esp, 0x55555551
into
mov eax, dword [0x69103c2a]
adc byte [eax + 0x1c], ah
loopne 0xece999
adc byte [eax + 0x1c], ah
sub esp, dword [eax - 0x686868c9]
xchg esp, eax
imul eax, ecx, 0xe71c01cc
stosd dword es:[edi], eax
add dword [ebx + edx], ebx
cmpsd dword [esi], dword es:[edi]
mov dword [0xbc979797], eax
dec edi
sbb al, 0xc0
xchg edi, eax
sbb al, 0xd8
xchg ebx, eax
push ss
insd dword es:[edi], dx
xchg edi, eax
xchg edi, eax
xchg edi, eax
xchg edi, eax
cwde
adc edx, ecx
xchg edi, eax
xchg edi, eax
xchg edi, eax
xchg esp, eax
inc ecx
push ss
push eax
lahf
xchg edi, eax
xchg edi, eax
xchg edi, eax
push ss
jle 0xece9c5
xchg edi, eax
xchg edi, eax
xchg edi, eax
push ss
outsb dx, byte [esi]
xchg edi, eax
xchg edi, eax
xchg edi, eax
xchg edi, eax
cwde
adc eax, dword [ebx + 0x68]
push 0x901cf168
push esi
jg 0xece9d6
adc al, 0x77
cwde
push ss
outsd dx, dword [esi]
xchg esp, eax
xchg edi, eax
xchg edi, eax
xchg edi, eax
cwde
adc bl, byte [edx - 0xe686869]
sbb al, 0x90
push ss
ja 0xeceab8
cwde
xchg edi, eax
xchg edi, eax
xchg esp, eax
push ebp
xchg esi, eax
invalid
sbb al, 0xe4
in al, 0xe4
in al, 0xeb
popal
ljmp 0x9c6f