Function at 0x108ae08
Capabilities:
Encode data using xor

Disassembly:
loopne 0x108ade4
push ebp
push ebx
aam 0xbd
mov edx, 0x9185d841
xchg ebp, eax
sar dword [ebp - 0x5f], 1
cld
or al, 0x89
jge 0x108ae07
xchg ebp, eax
popal
jno 0x108ae05
mov eax, dword [0xfd34c12d]
xchg byte [ebp + esi - 0x7e], ch
pop ebp
sbb byte [ebp + 0x6c], 0xeb
or byte [eax], al
push 0x24
add byte [eax], al
insb byte es:[edi], dx
jmp 0x108ae12
pushal
call 0x108ae18
pop ebp
sub ebp, 0x10
sub ebp, 0xc8ae08
jmp 0x108ae2e
mov eax, 0xc8ae08
add eax, ebp
add eax, 0x4c
mov ecx, 0x5a7
mov edx, 0x8c707780
xor byte [eax], dl
inc eax
dec ecx
jne 0x108ae45
jmp 0x108ae58
or ecx, dword [ebp + 0xb]
or dword [eax + eax*4 + 0x41018080], edi
js 0x108ade4
add byte [eax - 0x79c7b27d], 0x80
add byte [eax - 0x7f7f57c6], 0x80
ja 0x108aed6
or dword [eax + 0xb], 1
mov word [eax + 0x45838080], es
rcl al, 1
call 0x81a5e9a9
call 0x8133216e
sub dword [esp - 0x22fd4a18], 0x808568ec
add byte [eax - 0x7f7f4b97], 0x80
or eax, 0x97ca4e4
lodsb al, byte [esi]
movsb byte es:[edi], byte [esi]
aam 0xdd
or eax, dword [0x80808088]
or edx, dword [0x8080808c]
or ecx, dword [0x80808090]
inc ecx
imul eax, dword [edx + 0x420382b1], 0x58fc984
je 0x108af43
jg 0x108af45
or ebp, dword [esp - 0x7b5b1bf3]
inc edx
mov word [eax - 0x7b5bf3f5], es
add byte [eax + 0x3b24e880], 0x9d
sub al, 0xe4
jb 0x108af0a
sub al, 0x24
cmp ebx, dword [ebp + 0x72e4e880]
sub al, byte [eax - 0x2e5b537f]
push 0x80808085
imul esi, dword [ebx - 0x2a7f7f7e], 0xf57f6c0b
add byte [ecx + 0x68d1a4ac], 0x85
add byte [eax - 0x7d4c9680], 0x80
adc ch, 0xb
insb byte es:[edi], dx
jg 0x108aee9
sub byte [ecx - 0x4d], 0x82
add byte [eax + 0x7f6c0bd5], 0xf5
invalid
mov byte [eax - 0x1a], ch
add byte [eax - 0x77c2f480], 0x80
add byte [eax + 0x52b349b3], 3
push 0x48fc885
into
enter 0x48f, 0xffffffffffffffce
add byte [eax - 0x37f77080], 0x80
add byte [eax - 0x4663f41a], 0
jnp 0x108af86
push 0x809a048f
add byte [eax - 0x70968500], 4
xchg ecx, eax
pop dword [edx + ebx*4]
add byte [eax + 0x697b0080], 0x8f
add al, 0x91
add byte [eax + 0x7b01e680], 0x7f
movsd dword es:[edi], dword [esi]
pop dword [edx*4 - 0x3e7f7f80]
imul ecx, dword [edi + edi*2 + 0x7f], 0xb9cca97f
add dword [ebx], 0x68038541
test byte [ecx + 0x3d], ch
jg 0x108afcb
inc ecx
test dword [ebx], eax
push 0x7f3d6984
jg 0x108afcc
add ebp, dword [eax - 0x7c]
imul edi, dword [0xa97f7f7f], 0x382b9d4
jg 0x108aef7
test eax, 0x382b9d4
aam 0xb9
add byte [ebx], 0x41
inc ecx
xchg byte [ebx], al
push 0xffffffffffffff84
add ebp, dword [eax - 0x7b]
imul ebp, dword [ebx], 0xdd7f7f7f
inc edx
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 0x108b018
jg 0x108af1d
push edx
pop dword [0x80808085]
or dl, byte [esi - 0x70ad6d3a]
add ebp, edx
add byte [eax - 0x7dbf4c80], 0x52
pop dword [0x80808085]
or dl, byte [esi - 0x70ad6d3a]
add ebp, dword [edx - 0x7d7f7f7f]
push edx
pop dword [0x80808085]
or dl, byte [esi - 0x6cad6d3a]
inc eax
adc byte [edx - 0x71], 5
test dword [eax - 0x69f57f80], eax
invalid
xchg esi, 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