Function at 0xe7facc
Capabilities:
Encode data using xor

Disassembly:
jmp 0xe7fad6
pushal
call 0xe7fadc
pop ebp
sub ebp, 0x10
sub ebp, 0xa7facc
jmp 0xe7faf2
mov eax, 0xa7facc
add eax, ebp
add eax, 0x4c
mov ecx, 0x584
mov edx, 0x754f805a
xor byte [eax], dl
inc eax
dec ecx
jne 0xe7fb09
jmp 0xe7fb1c
rcl dword [edi + 0x5a66d3d1]
pop edx
pop edx
fistp dword [ebx + 0x5a5a5aa2]
pop ecx
xchg edi, eax
loop 0xe7fb81
pop edx
pop edx
pop edx
loopne 0xe7fba5
pop edx
pop edx
pop edx
lodsd eax, dword [esi]
mov eax, 0xdbd19259
push esi
pop edx
pop edx
pop edx
pop ecx
lahf
or cl, byte [edx]
xor ah, byte [edx + 0x43]
inc ebp
pop edx
xor cl, dh
mov ebx, 0x765b5ad2
jle 0xe7fb84
nop
and byte [esi + esi*2], 0xb2
pop edi
pop edx
pop edx
pop edx
mov bl, 0x72
pop edx
pop edx
pop edx
femms
pop es
rcr edi, 1
push edx
pop edx
pop edx
pop edx
ror edi, 1
push esi
pop edx
pop edx
pop edx
rcl edi, 1
dec edx
pop edx
pop edx
pop edx
wait
mov bl, 0x58
imul ebx, dword [eax - 0x27], 0xffffff98
pop esi
adc edx, dword [ebp - 0x21]
scasb al, byte es:[edi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop es
cwde
push esi
pop edx
rcl esi, 1
jle 0xe7fbea
pop edx
pop edx
pop edx
xor ah, byte [edx + 0x43]
inc ebp
pop edx
xor cl, dh
mov ebx, 0x765b5ad2
jle 0xe7fba8
mov dl, 0x5f
pop edx
pop edx
pop edx
mov bl, 0x1b
pop eax
pop edx
pop edx
invalid
xlatb
jle 0xe7fc06
movsd dword es:[edi], dword [esi]
das
push esi
movsd dword es:[edi], dword [esi]
das
push edx
mov dl, 0x28
pop edx
pop edx
pop edx
shl edi, 1
push edx
pop edx
pop edx
pop edx
fld xword [ebx + 0x653b5a6a]
fld xword [ebx + 0x653b5a6a]
imul edx, dword [ebx - 0x4d267797], 0xde55125f
adc al, 0x5a
pop edx
pop edx
push ebp
rcl byte [edx], cl
pop edx
pop edx
pop edx
cmp al, 0xd1
inc esi
arpl dx, bx
mov eax, dword [0x40de55b2]
pop edx
pop edx
pop edx
fisub dword [ecx + 0x4bde55b3]
pop edx
pop edx
pop edx
cmp al, 0xdb
mov eax, dword [0xde557fa5]
dec edi
pop edx
pop edx
pop edx
sbb esi, dword [ebx - 0x5a5a5a6a]
jae 0xe7fc1c
arpl word [ebx - 0x27], bx
wait
pop edi
fnstenv [edx - 0x5a184ca2]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jae 0xe7fc23
arpl word [eax - 0x27], bx
wait
pop esp
fnstenv [eax + 0x5fb2d95e]
mov bl, 0xf1
movsd dword es:[edi], dword [esi]
pop esi
fnstenv [edx - 0x5a0e4ca1]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop es
cwde
push esi
pop edx
psrlw mm6, qword [esi - 0x2ef0f2f4]
das
push esi
shl dword [edi], 1
push edx
cmpsb byte [esi], byte es:[edi]
call 0xdc44cd15
pushfd
pop ebx
pop edx
pop edx
pop edx
rcr byte [ebp - 0x25], cl
popfd
pop ebx
pop edx
pop edx
pop edx
loope 0xe7fca2
pop edx
pop edx
pop edx
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ebp - 0x27], dl
and byte [ebp - 0x77a75a5b], 0x55
fistp word [edi + 0x5a]
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ebp - 0x27], dl
xor byte [edx + 0x5a], bl
pop edx
imul ebx, dword [edx - 0x20aa77a8], 0x5a5a5a5f
ror byte [esp + ebx + 0x48], 1
mov byte [ebp - 0x27], dl
jo 0xe7fce1
pop edx
pop edx
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ecx - 0x66], cl
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
dec eax
mov byte [ecx - 0x66], cl
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ecx - 0x66], cl
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ecx - 0x66], cl
push ebp
ficomp word [edx + ebx*2 + 0x5a]
pop edx
rol dword [ebp + 0x59d08271], 1
rcr byte [ebp + 0x1d], cl
loope 0xe7fd2d
pop edx
pop edx
pop edx
mov bl, 0x2a
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
loop 0xe7fd3a
pop edx
pop edx
pop edx
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
sbb al, 0x48
mov byte [ecx - 0x66], cl
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ebp - 0x28], dl
test byte [ebp - 0x668e5a5b], ah
loope 0xe7fd63
pop edx
pop edx
pop edx
push ebp
fild qword [esi + 0x5a]
pop edx
pop edx
jecxz 0xe7fd6e
pop edx
pop edx
pop edx
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ecx - 0x6d], cl
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ebp - 0x28], dl
test byte [ebp - 0x2ef35a5b], ah
lodsd eax, dword [esi]
jno 0xe7fcec
test eax, 0x52b304fe
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
adc bl, byte [ebx + 0x5cd052ba]
sbb al, 0xd1
mov dl, 0xe3
pop ebx
pop edx
pop edx
pop edx
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ecx - 0x6d], cl
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ebp - 0x28], dl
test byte [ebp - 0x5d245a5b], ah
pop edx
daa
pop edx
pop edx
fild dword [ebx - 0x5a5a5a5b]
invalid