Function at 0x7ffaec
Capabilities:
Encode data using xor

Disassembly:
dec esi
jb 0x7ffb47
dec esi
push ebx
jb 0x7ffb1f
invalid
jmp 0x7ffaf6
pushal
call 0x7ffafc
pop ebp
sub ebp, 0x10
sub ebp, 0x3ffaec
jmp 0x7ffb12
mov eax, 0x3ffaec
add eax, ebp
add eax, 0x4c
mov ecx, 0x5f9
mov edx, 0x802d6887
xor byte [eax], dl
inc eax
dec ecx
jne 0x7ffb29
jmp 0x7ffb3c
or al, 0x4a
or al, 0xe
mov ebx, 0x6878787
inc esi
jg 0x7ffacf
xchg dword [edi + 0x3f4a8487], eax
add dword [edi - 0x50c27879], 0x70878787
test byte gs:[edi + 0xc], cl
push es
xchg dword [edi - 0x7ec0b57c], eax
xchg dword [edi - 0x7850c279], eax
xchg dword [edi + 0x4f846570], eax
or al, 6
mov eax, dword [edi + 0x42848787]
xlatb
xlatb
out dx, eax
dec ebx
sub byte [ecx - 0x33671079], cl
mov dh, 0x87
xchg byte [ebx + 0x7530efa3], ch
or al, 0x68
outsd dx, dword [esi]
add byte [edi - 0x4c917879], 0x87
xchg dword [edi + 0x7ba3e30a], eax
push cs
stosd dword es:[edi], eax
mov dword [0x20c6b0c], eax
pop dword [edi + 0x120c8787]
mov eax, dword [edi + 0xa0c8787]
xchg edi, eax
xchg dword [edi - 0x7a91b979], eax
mov dh, 0x85
add al, 0x45
or esi, 0xffffff88
add dh, byte [ebx + 0x78]
js 0x7ffc22
or al, 0xab
mov dword [0x83a3e30a], eax
inc ebp
mov eax, dword [edi - 0x7c5cf4f4]
xchg dword [edi + 0x284bef87], eax
mov dword [edi - 0x49336711], eax
xchg dword [esi + 0x6fd6a3ab], eax
add byte [edi - 0x39917879], 0x85
xchg dword [edi - 0x5c14f52e], eax
xchg dword [eax - 0xe], edi
mov edi, dword [eax - 0xe]
stosd dword es:[edi], eax
mov dword [0x87826fd6], eax
xchg dword [edi - 0x787a3992], eax
xchg edx, edx
or ch, bl
mov byte [ebp + 0xad28787], 0xeb
mov dword [0x8bf27887], eax
js 0x7ffbcf
invalid
cmc
xchg dword [edi - 0x70c5f379], eax
xchg dword [edi + 0x64eb487], eax
jne 0x7ffbf7
jg 0x7ffbec
and al, 6
jne 0x7ffbfd
jg 0x7ffbf2
and al, 0xb4
push ebp
mov ah, 0x55
add al, 0x6f
or bh, 0x88
add ecx, ecx
mov byte [ebx], al
leave
xchg dword [edi - 0x30f07779], eax
xchg dword [edi - 0x64f31e79], eax
mov esi, 0x886f7c07
add ebx, dword [ebp + 0x7878787]
jl 0x7ffc87
popfd
xchg dword [edi + 0x6e7c0787], eax
mov byte [ebx], al
xchg esi, eax
xchg dword [edi + 0x7c06e187], eax
js 0x7ffbc6
mov byte [ebx], al
xchg edx, eax
xchg dword [edi + 0x4b6ec687], eax
js 0x7ffca7
js 0x7ffbdf
retf
add al, 0x5f
js 0x7ffd03
js 0x7ffc12
push ebp
mov byte [edx], al
add byte [edi - 0x6ef27879], 0xc1
xchg ebp, eax
push ebp
mov byte [ebp*8 - 0x4b787879], al
inc edi
test dword [ebp - 0x78], edx
add al, byte [edx + 0xd878787]
xchg ecx, eax
rcl dword [ebp - 0x52fb77ab], 0x86
xchg dword [edi + 0x2885585], eax
xchg dword [edi - 0x6a3e6ef3], eax
push ebp
mov byte [ebp*4 - 0x7a78787a], al
push ebp
mov byte [edx], al
add byte [edi - 0x6ef27879], 0xc1
xchg ebp, eax
push ebp
xchg esp, eax
inc edi
test dword [ebp - 0x78], edx
add al, byte [edx + 0xd878787]
xchg ecx, eax
rcl dword [ebp - 0x7ab86bab], 0x55
mov byte [edx], al
add byte [edi - 0x6ef27879], 0xc1
xchg ebp, eax
push ebp
xchg esp, eax
inc edi
test dword [ebp - 0x78], edx
add al, byte [edx + 0xd878787]
xchg ecx, eax
rcl dword [ebp - 0x77b86bab], 3
add dword [edi + 0x580c8787], 0x840d5fac
jo 0x880539c2
xchg dword [edi + 0x7878f76e], eax
xchg dword [esi - 9], ebp
js 0x7ffd80
js 0x7ffd49
xchg byte [edi + 0x55858787], al
mov byte [edx], al
add byte [edi - 0x6ef27879], 0xc1
xchg ebp, eax
push ebp
xchg esp, eax
inc edi
test dword [ebp - 0x78], edx
add al, byte [edx + 0xd878787]
xchg ecx, eax
rcl dword [ebp + 0x59058855], 0x78
js 0x7ffda8
add eax, 0x78787859
lodsb al, byte [esi]
inc esp
cmp al, 0x86
xchg dword [edi - 0x4cfd7779], eax
xchg dword [edi - 0x7879c179], eax
xchg dword [edi + 0x2885585], eax
add byte [edi - 0x6ef27879], 0xc1
mov byte [edx], al
mov bl, 0x87
xchg dword [edi - 0x787879c2], eax
xchg dword [ebp - 0x7dfd77ab], eax
xchg dword [edi - 0x3e6ef279], eax
xchg dword [0x5595c191], ecx
xchg ebp, eax
push ebp
xchg esp, eax
dec esi
test dword [ebp - 0x78], edx
add al, byte [edx + 0xd878787]
xchg ecx, eax
rcl dword [ebp + 0x59058855], 0x78
js 0x7ffddc
ror dword [eax + esi*2], 1
lodsb al, byte [esi]
jb 0x7ffdde
and ebx, ecx
outsb dx, byte [esi]
invalid
push ebp
mov byte [edx], al
add byte [edi - 0x6ef27879], 0xc1
xchg ebp, eax
push ebp
xchg esp, eax
dec esi
test dword [ebp - 0x78], edx
add al, byte [edx + 0xd878787]
xchg ecx, eax
rcl dword [ebp + 0x59058855], 0x78
js 0x7ffe19
push es
jg 0x7ffd2b
cli
xchg dword [edi + 0x78785e06], eax
pop esi
js 0x7ffe23
js 0x7ffe25
push es
jg 0x7ffd37
add byte [edi + 0x785e0687], 0x78
js 0x7ffe31
push es
jg 0x7ffdc3
xchg dword [edi - 0x78a9f979], eax
xchg dword [edi + 0x77f0687], eax
xchg dword [edi - 0x78a9f979], eax
xchg dword [edi + 0x700cd187], eax
lodsb al, byte [esi]
xchg dword [edi - 0x78f880fa], eax
xchg dword [edi - 0x7878a9fa], eax
xchg dword [edi - 0x538ff32f], eax
ja 0x7ffe4b
and ebx, ecx
outsb dx, byte [esi]
sbb al, 0x79
js 0x7ffe56
or eax, 0x4eb4c181
inc edi
outsd dx, dword [esi]
xchg byte [eax - 0x787862fd], cl
xchg dword [esi], eax
push esi
test dword [edi + 0x6f0c8787], eax
ror dword [eax + esi*2], 1
lodsb al, byte [esi]
ja 0x7ffe6e
and ebx, ecx
cmp al, 0x86
xchg dword [edi + 0x79f46e87], eax
js 0x7ffe7e
fisubr dword [edx + edi*8 - 0x27bff371]
invalid
mov dword [0x836ed983], eax
xchg dword [edi - 0x4449679], eax
sti
aas
aas
imul edi, dword [ebp - 0x48], 0xffffff87
test byte [edx + 6], al
inc edi
fadd dword [edi + eax*4 - 0x7a9ec179]
xchg dword [edi + 0x7d48db3d], eax
xchg dword [esi], edi
popal
test dword [edi + 0x48db3d87], eax
jge 0x7ffe3e
fisttp dword [eax + 0x7d]
add dh, byte [edi - 0x77313869]
add dh, byte [ecx + 0x78]
js 0x7ffebe
mov bh, 0x97
invalid
outsb dx, byte [esi]
add dword [edi - 0x488f7879], 0xffffff8b
add byte [ebp + 0x5c], bl
sub al, 0x50
lodsb al, byte [esi]
jo 0x7ffe04
mov eax, dword [eax]
pop esp
and eax, 0xac502c5c
out 0x5c, eax
pop esp
sub al, 0x50
in al, dx
jnp 0x7ffe38
fcmovnu st(0), st(3)
fsub dword [0x504d808d]
stosd dword es:[edi], eax
out 0x4d, eax
push eax
pop edi
jmp 0x7ffe5b
fcomi st(0)
add edx, dword [eax - 0x74]
fistp dword [edx + 0x50]
mov byte [0x5a225cdf], al
and ebx, ebx
fcmovnu st(0), st(3)
fcmovnbe st(0), st(4)
pop edi
popfd
fcmovnu st(0), st(3)
fcmovnu st(0), st(0)
or eax, 0xdbd31c5a
fcmovnu st(0), st(3)
pop edx
xor dl, bl
fcmovnu st(0), st(3)
fistp dword [edx + 0x22]
fcmovnu st(0), st(3)
fcmovnu st(0), st(3)
aam 0x5f
or esp, dword [esp]
and al, 0xbd
push eax
fcomp qword [edx]
xor edx, edi
pop eax
cmp edx, esp
pop edx
and ebx, eax
fcmovnu st(0), st(3)
fcmovnbe st(0), st(4)
pop esi
salc
fcmovnu st(0), st(3)
fstp xword [ebp + 0x3b5adc50]
and al, 0xd4
fcmovnu st(0), st(3)
fcomp dword [ecx]
fcmovb st(0), st(3)
xchg edx, eax
xchg edx, eax
pop eax
sbb al, 0xd9
xor dl, byte [ebx]
and al, 0x24
and al, 0x32
invalid
fcmovnu st(0), st(0)
sbb edx, ebx
ret