Function at 0x1018baa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
movzx eax, byte [ebp + 0xc]
sub esp, 0x20
push ebx
push esi
push edi
sub eax, 0
je 0x1018bc58
sub eax, 1
jne 0x1018bdb7
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp + 8]
mov ecx, dword [ebp + 0x20]
lea esi, [eax + eax]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 4], esi
lea ebx, [eax + eax]
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0xc], ebx
cmp eax, 8
jne 0x1018bb93
mov dword [ebp - 0xc], ecx
test ecx, ecx
jle 0x1018bdb7
mov eax, dword [ebp + 0x14]
add eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp - 8]
add eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x10], 0
test eax, eax
jle 0x1018bb73
mov eax, ebx
mov dword [ebp - 0x14], esi
mov ebx, esi
sub eax, esi
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
nop
movzx eax, word [eax + ebx]
lea ebx, [ebx + 2]
movzx ecx, word [ebx - 2]
sub eax, ecx
mov ecx, 0x40
cdq
xor eax, edx
sub eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
add eax, 0x26
mov edx, eax
sar edx, 0x1f
not edx
and edx, eax
movzx eax, dl
cmp edx, ecx
cmovb ecx, eax
mov al, 0x40
sub al, cl
mov byte [esi + edi], al
inc esi
mov eax, dword [ebp - 0x18]
cmp esi, dword [ebp + 0x24]
jl 0x1018bb20
mov esi, dword [ebp - 4]
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
add esi, dword [ebp - 0x1c]
add ebx, edx
add edi, eax
mov dword [ebp + 0xc], ebx
sub ecx, 1
mov dword [ebp - 4], esi
mov dword [ebp - 0xc], ecx
jne 0x1018bb04
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
add eax, 0xfffffff8
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], eax
test ecx, ecx
jle 0x1018bdb7
mov eax, dword [ebp + 0x14]
add eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp - 0xc]
add eax, eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x24]
nop word [eax + eax]
mov dword [ebp - 0x1c], 0
test eax, eax
jle 0x1018bc38
mov eax, ebx
mov dword [ebp - 0x18], esi
mov ebx, esi
sub eax, esi
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
nop word [eax + eax]
movzx eax, word [ebx + eax]
lea ebx, [ebx + 2]
movzx ecx, word [ebx - 2]
sub eax, ecx
mov ecx, dword [ebp - 0x14]
cdq
xor eax, edx
sub eax, edx
sar eax, cl
mov ecx, 0x40
cdq
and edx, 0xf
add eax, edx
sar eax, 4
add eax, 0x26
mov edx, eax
sar edx, 0x1f
not edx
and edx, eax
movzx eax, dl
cmp edx, ecx
cmovb ecx, eax
mov al, 0x40
sub al, cl
mov byte [esi + edi], al
inc esi
mov eax, dword [ebp - 0x10]
cmp esi, dword [ebp + 0x24]
jl 0x1018bbe0
mov esi, dword [ebp - 4]
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
add esi, dword [ebp - 0x20]
add ebx, edx
add edi, eax
mov dword [ebp + 0xc], ebx
sub ecx, 1
mov dword [ebp - 4], esi
mov dword [ebp - 8], ecx
jne 0x1018bbc0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp + 0x20]
add esi, esi
mov edi, dword [ebp + 8]
lea ecx, [eax + eax]
mov dword [ebp - 4], esi
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0xc], edx
cmp eax, 8
jne 0x1018bd19
test edx, edx
jle 0x1018bdb7
mov eax, dword [ebp + 0x14]
add eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x1c]
add eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x24]
nop dword [eax]
xor ebx, ebx
test eax, eax
jle 0x1018bcfc
mov eax, ecx
mov dword [ebp - 0x20], esi
sub eax, esi
mov dword [ebp - 0x1c], eax
movzx eax, word [eax + esi]
lea esi, [esi + 2]
movzx ecx, word [esi - 2]
sub eax, ecx
mov ecx, 0x40
cdq
xor eax, edx
sub eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
add eax, 0x26
mov edx, eax
sar edx, 0x1f
not edx
and edx, eax
cmp edx, ecx
movzx eax, dl
cmovb ecx, eax
mov eax, dword [ebp - 0x1c]
mov byte [ebx + edi], cl
inc ebx
cmp ebx, dword [ebp + 0x24]
jl 0x1018bcb0
mov esi, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp - 0xc]
add ecx, dword [ebp - 0x18]
add edi, eax
add esi, dword [ebp - 0x14]
sub edx, 1
mov dword [ebp + 0xc], ecx
mov dword [ebp - 4], esi
mov dword [ebp - 0xc], edx
jne 0x1018bca0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
add eax, 0xfffffff8
mov dword [ebp - 0x1c], eax
test edx, edx
jle 0x1018bdb7
mov eax, dword [ebp + 0x14]
add eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x1c]
add eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x24]
nop word [eax + eax]
xor ebx, ebx
test eax, eax
jle 0x1018bda1
mov eax, ecx
mov dword [ebp - 0x20], esi
sub eax, esi
mov dword [ebp - 0x18], eax
movzx eax, word [eax + esi]
lea esi, [esi + 2]
movzx ecx, word [esi - 2]
sub eax, ecx
mov ecx, dword [ebp - 0x1c]
cdq
xor eax, edx
sub eax, edx
sar eax, cl
mov ecx, 0x40
cdq
and edx, 0xf
add eax, edx
sar eax, 4
add eax, 0x26
mov edx, eax
sar edx, 0x1f
not edx
and edx, eax
cmp edx, ecx
movzx eax, dl
cmovb ecx, eax
mov eax, dword [ebp - 0x18]
mov byte [ebx + edi], cl
inc ebx
cmp ebx, dword [ebp + 0x24]
jl 0x1018bd50
mov esi, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp - 0xc]
add ecx, dword [ebp - 0x14]
add edi, eax
add esi, dword [ebp - 0x10]
sub edx, 1
mov dword [ebp + 0xc], ecx
mov dword [ebp - 4], esi
mov dword [ebp - 0xc], edx
jne 0x1018bd40
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret