Function at 0x7ace08
Capabilities:
Encode data using xor

Disassembly:
mov dword [0x16710b37], eax
cwde
invalid
jmp 0x7ace12
pushal
call 0x7ace18
pop ebp
sub ebp, 0x10
sub ebp, 0x3ace08
mov al, byte [esp + 0x28]
cmp al, 1
je 0x7ace3c
popal
xor eax, eax
inc eax
ret 0xc
jmp 0x7ace45
mov eax, 0x3ace08
add eax, ebp
add eax, 0x63
mov ecx, 0x605
mov edx, 0x55f05880
xor byte [eax], dl
inc eax
dec ecx
jne 0x7ace5c
jmp 0x7ace6f
or ecx, dword [ebp + 0xb]
or dword [eax + eax*4 + 0x41018080], edi
js 0x7acdfb
add byte [eax - 0x7bc7b27d], 0x80
add byte [eax - 0x7f7f57c6], 0x80
ja 0x7aceed
or dword [eax + 0xb], 1
mov word [eax + 0x45838080], es
rcl al, 1
call 0x8109c9bc
call 0x8127a187
sub dword [esp - 0x18d20f18], 0x8085689e
add byte [eax - 0x7f7f5797], 0x80
aad 0xd4
fisttp qword [ebx]
add eax, 0x80808088
or edx, dword [0x8080808c]
or ecx, dword [0x80808090]
inc ecx
imul eax, dword [edx + 0x420382b1], 0x58fc984
je 0x7acf54
jg 0x7acf56
fld qword [edx - 0x74]
or byte [ebx], 0xc
movsb byte es:[edi], byte [esi]
test byte [eax + 0x20e88080], al
sti
mov es, word [eax - 0x532d1918]
add byte [ecx + 0x68d1a4ac], 0x85
lodsb al, byte [esi]
movsb byte es:[edi], byte [esi]
shr dword [eax - 0x7b], 1
add byte [eax - 0x7d329680], 0x80
or byte [0x97ca4e4], 0xac
int 0x82
add byte [eax + 0x7ca4e40d], 9
lodsb al, byte [esi]
movsb byte es:[edi], byte [esi]
or eax, 0x7f80a4ec
cmc
invalid
mov bl, 0x49
add dword [edx - 0x3d], esi
mov ah, 0x36
add dword [edx - 0x3d], esi
mov ah, 0x36
mov bl, 0x52
add ebp, dword [eax - 0x7b]
enter 0x48f, 0xffffffffffffffce
add byte [eax - 0x37f77080], 0x80
add byte [eax - 0x4663f41a], 0
jnp 0x7acfa5
pop dword [edx + ebx*4]
add byte [eax + 0x697b0080], 0x8f
add al, 0x91
add byte [eax + 0x7b01e680], 0x7f
movsd dword es:[edi], dword [esi]
add byte [eax], 0x7b
imul ecx, dword [edi - 0x7f7f6efc], 0x7b01e680
jg 0x7acef6
pop dword [edx*4 - 0x3e7f7f80]
imul ecx, dword [edi + edi*2 + 0x7f], 0xb9cca97f
add dword [ebx], 0x68038541
test byte [ecx + 0x3d], ch
jg 0x7acfea
add byte [eax + 0x4c69c180], 0x7f
jg 0x7acfdc
add cl, 0x69
dec esp
jg 0x7acfdb
jg 0x7acf07
test eax, 0x381b9cc
inc ecx
test dword [ebx], eax
push 0x7f3d6984
jg 0x7acfeb
int3
jg 0x7acf16
test eax, 0x382b9d4
inc ecx
aam 0xb9
add byte [ebx], 0x41
xchg byte [ebx], al
push 0xffffffffffffff84
add ebp, dword [eax - 0x7b]
imul ebp, dword [ebx], 0xb7f7f7f
lodsb al, byte [esi]
movsb byte es:[edi], byte [esi]
or eax, 0x4284a4e4
mov word [eax - 0x2993f42b], es
xlatb
aad 0xb
cmc
mov word [ebx], cs
std
mov byte [edx + esi], bh
or al, byte [esi - 0x7f7eb9ff]
add byte [eax + 0x47018708], 0x81
add byte [eax - 0x7f7dc480], 0x80
add byte [edx - 0x7afa70ae], 0x80
add byte [eax - 0x6d3969f6], 0x52
pop dword [ebx]
pop eax
jg 0x7ad03d
add byte [eax - 0x7f7f7dc5], 0x80
adc byte [edx - 0x71], 5
test dword [eax - 0x69f57f80], eax
invalid
jg 0x7acf42
push edx
pop dword [0x80808085]
or dl, byte [esi - 0x70ad6d3a]
add ebp, edx
add byte [eax - 0x7dbf4c80], 0x52
pop dword [0x80808085]
or byte [edx], 0x96
invalid
or dl, byte [esi - 0x70ad6d3a]
add ebp, dword [edx - 0x7d7f7f7f]
push edx
pop dword [0x80808085]
add eax, 0x80808085
test dword [eax - 0x69f57f80], eax
invalid
or dl, byte [esi - 0x6cad6d3a]
inc eax
adc byte [edx - 0x71], 5
test dword [eax - 0x69f57f80], eax
invalid
add dword [eax + 0x52828080], 0x8085058f
add byte [eax - 0x6d3969f6], 0x52
xchg ebx, eax
inc eax
adc byte [edx - 0x71], 5
test dword [eax - 0x69f57f80], eax
invalid