Function at 0x10af7a7
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
xor esi, esi
cmp dword [ebp + 8], esi
push edi
mov edi, ecx
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 4], esi
jne 0x10af7e8
call fcn.0136ac47
nop
inc esp
and dword [eax], edx
mov word [esi - 0x79774fbf], es
inc ecx
add bl, bh
add dword [eax], eax
rol bh, 0x45
or byte [edi], dl
pop es
sub cl, 0x61
add al, 0
add al, ch
cdq
sub al, 0xf9
inc dword [eax]
fld qword [eax + 0x60]
call fcn.01042486
add ch, bl
inc eax
pushal
cmpsd dword [esi], dword es:[edi]
cmp byte fs:[eax - 0x2e], dl
add byte [eax], al
xor ah, bh
fadd qword [eax + 0x40]
cmp dword [ebp + 0xc], esi
je 0x10af7c7
call fcn.011f8030
sahf
ja 0x10af819
loopne 0x10af858
xlatb
inc ecx
push eax
push eax
xlatb
inc ecx
mov al, byte [0x300000f2]
call fcn.011f3f3c
inc edi
adc al, 0
fadd qword [esi]
inc ecx
add al, bl
push es
inc ecx
adc byte [ebx + eax], dl
sub esi, dword [eax - 0x79]
add byte [eax], al
sar byte [ecx], 0x75
adc byte [esi + edx*4 + 0x39], dh
jne 0x10af848
je 0x10af7c7
call fcn.01299031
mov es, word [edx]
cmp dword [eax - 0x80], edx
aad 0x40
loopne 0x10af8c0
aad 0x40
jo 0x10af80e
add byte [eax], al
jo 0x10af834
div dword [ebx - 0x47d0ffd5]
cmp dword [eax - 0x5fbf32d8], edx
and al, 0xcd
inc eax
add byte [eax], al
nop
cmp dword [ebp + 0x18], esi
je 0x10af7c7
call fcn.0137441f
xor al, 0x7c
push ebx
shl byte [eax], 0x20
inc ecx
lock and eax, dword [eax]
add byte [eax + 0x1c], al
and byte [ecx + 0x60], al
lea eax, [ebp - 8]
push eax
push dword [ebp + 8]
call fcn.0105756e
cmp eax, esi
mov dword [ebp + 8], eax
jl 0x10afc49
mov eax, dword [0x1428610]
mov ecx, dword [eax]
lea edx, [ebp - 0x10]
push edx
push 0x10076c0
push dword [ebp - 8]
push 1
push eax
call dword [ecx + 0x34]
call fcn.01299031
jl 0x10af8a9
add dword [eax - 1], edx
push ecx
xor al, 0xe8
jle 0x10af848
push ds
add byte [esp + esi*8 + 4], bh
mov al, 0x4c
add al, 0xb0
dec esp
imul eax, dword [edx + 0x50], 0x48
imul eax, dword [edx + 0x50], 0x13
add byte [eax], al
pushal
cmp eax, esi
mov dword [ebp + 8], eax
jl 0x10afc49
mov eax, dword [ebp - 0x10]
push 4
mov ecx, 0x10076a4
pop ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10af8fd
cmp dx, si
je 0x10af8f9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10af8fd
add eax, ebx
add ecx, ebx
cmp dx, si
jne 0x10af8d9
xor eax, eax
jmp 0x10af902
sbb eax, eax
sbb eax, 0xffffffff
call fcn.010cff6b
mov cl, 0x47
test byte [eax], ah
fsub qword [ebx]
inc edx
invalid
call fcn.0136ac47
stc
scasd eax, dword es:[edi]
sub eax, dword [eax]
sbb eax, 0x7cc022b7
inc cx
nop
js 0x10afcbe
inc ecx
sub byte [ebx], 0
add al, dh
mov eax, dword [0x1426c54]
cmp eax, 0x1426c54
je 0x10afcaf
test byte [eax + 0x3c], 2
je 0x10afcaf
call fcn.011f3f3c
aam 0x74
inc ecx
jo 0x10afc4a
je 0x10afcbd
inc eax
rcl dword [esi]
and dh, byte [eax - 0xfffffdc]
call fcn.0136ac47
xor dword [edx + 0x34], esp
mov al, byte [0x3040f854]
push eax
clc
inc eax
and byte [eax + eax], bl
xor bh, bh
jne 0x10afca5
push 0x1006d70
push 0x1d
push dword [eax + 0x34]
jo 0x10afcdb
push dword [eax + 0x30]
call fcn.01043c41
call fcn.01200ea5
pop eax
inc ecx
xor cl, cl
outsd dx, dword [esi]
sub al, ah
push esp
inc ecx
inc ecx
invalid
inc ecx
pushal
and dword [eax], eax
add al, dh
lea ecx, [ebp - 0xc]
call fcn.010af58b
lea ecx, [ebp - 0x10]
call fcn.01051121
call fcn.011f8030
call 0x5dfb394e
cmpsd dword [esi], dword es:[edi]
inc eax
pushal
pushal
cmpsd dword [esi], dword es:[edi]
inc eax
ror byte [ebx], 0
invalid