Function at 0x180001140
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rsi, rdx
mov r13, rcx
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_HeapCreate]
xor edx, edx
mov r8d, 0x900000
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebp, dword [r13]
mov r12d, dword [r13 + 4]
mov rdi, rax
xor ebx, ebx
nop dword [rax]
call fcn.18014a880
inc rbx
mov r11d, eax
mov eax, 0x81020409
imul r11d
add edx, r11d
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul edx, edx, 0x7f
sub r11d, edx
mov byte [rbx + rdi - 1], r11b
cmp rbx, 0x900000
jl 0x180001190
lea r14, [rsi + 0x1e8481]
mov r15d, 0x1a13a
xor eax, eax
inc bpl
movzx ebp, bpl
mov edi, dword [r13 + rbp*4 + 8]
add r12b, dil
movzx ecx, dil
test cl, cl
mov r10d, ecx
movzx r12d, r12b
mov r11d, dword [r13 + r12*4 + 8]
sete al
xor r8d, r8d
mov dword [r13 + rbp*4 + 8], r11d
mov dword [r13 + r12*4 + 8], edi
movzx edx, byte [r13 + rbp*4 + 8]
add eax, dword [r13 + rdx*4 + 8]
test dl, dl
mov dword [r13 + rbp*4 + 8], eax
mov eax, dword [r13 + rcx*4 + 8]
sete r8b
lea ecx, [r8 + rax]
lea eax, [rbp + r12]
mov dword [r13 + r12*4 + 8], ecx
movzx ecx, al
add r11b, cl
add r11b, dil
movzx ecx, r11b
movzx eax, byte [r13 + rcx*4 + 8]
xor byte [r14 - 1], al
mov eax, dword [r13 + rcx*4 + 8]
xor dword [r13 + rdx*4 + 8], eax
mov eax, dword [r13 + rbp*4 + 8]
inc bpl
lea ecx, [r8 + rax]
xor eax, eax
movzx ebp, bpl
xor dword [r13 + r10*4 + 8], ecx
mov edi, dword [r13 + rbp*4 + 8]
add r12b, dil
movzx ecx, dil
test cl, cl
movzx r12d, r12b
mov r10d, ecx
mov r11d, dword [r13 + r12*4 + 8]
sete al
xor r8d, r8d
mov dword [r13 + rbp*4 + 8], r11d
mov dword [r13 + r12*4 + 8], edi
movzx edx, byte [r13 + rbp*4 + 8]
add eax, dword [r13 + rdx*4 + 8]
test dl, dl
mov dword [r13 + rbp*4 + 8], eax
mov eax, dword [r13 + rcx*4 + 8]
sete r8b
lea ecx, [r8 + rax]
lea eax, [rbp + r12]
mov dword [r13 + r12*4 + 8], ecx
movzx ecx, al
add r11b, cl
add r11b, dil
movzx ecx, r11b
movzx eax, byte [r13 + rcx*4 + 8]
xor byte [r14], al
mov eax, dword [r13 + rcx*4 + 8]
xor dword [r13 + rdx*4 + 8], eax
mov eax, dword [r13 + rbp*4 + 8]
inc bpl
lea ecx, [r8 + rax]
movzx ebp, bpl
xor eax, eax
xor dword [r13 + r10*4 + 8], ecx
mov edi, dword [r13 + rbp*4 + 8]
add r12b, dil
movzx ecx, dil
movzx r12d, r12b
test cl, cl
mov r11d, dword [r13 + r12*4 + 8]
sete al
mov dword [r13 + rbp*4 + 8], r11d
mov dword [r13 + r12*4 + 8], edi
movzx edx, byte [r13 + rbp*4 + 8]
add eax, dword [r13 + rdx*4 + 8]
mov r10d, ecx
xor r8d, r8d
mov dword [r13 + rbp*4 + 8], eax
mov eax, dword [r13 + rcx*4 + 8]
test dl, dl
sete r8b
lea ecx, [r8 + rax]
lea eax, [rbp + r12]
mov dword [r13 + r12*4 + 8], ecx
movzx ecx, al
add r11b, cl
add r11b, dil
movzx ecx, r11b
movzx eax, byte [r13 + rcx*4 + 8]
xor byte [r14 + 1], al
mov eax, dword [r13 + rcx*4 + 8]
xor dword [r13 + rdx*4 + 8], eax
mov eax, dword [r13 + rbp*4 + 8]
inc bpl
lea ecx, [r8 + rax]
xor eax, eax
movzx ebp, bpl
xor dword [r13 + r10*4 + 8], ecx
mov edi, dword [r13 + rbp*4 + 8]
add r12b, dil
movzx ecx, dil
test cl, cl
mov r10d, ecx
movzx r12d, r12b
mov r11d, dword [r13 + r12*4 + 8]
sete al
xor r8d, r8d
mov dword [r13 + rbp*4 + 8], r11d
mov dword [r13 + r12*4 + 8], edi
movzx edx, byte [r13 + rbp*4 + 8]
add eax, dword [r13 + rdx*4 + 8]
test dl, dl
mov dword [r13 + rbp*4 + 8], eax
mov eax, dword [r13 + rcx*4 + 8]
sete r8b
lea ecx, [r8 + rax]
lea eax, [rbp + r12]
mov dword [r13 + r12*4 + 8], ecx
movzx ecx, al
add r11b, cl
add r11b, dil
movzx ecx, r11b
movzx eax, byte [r13 + rcx*4 + 8]
xor byte [r14 + 2], al
mov eax, dword [r13 + rcx*4 + 8]
xor dword [r13 + rdx*4 + 8], eax
mov eax, dword [r13 + rbp*4 + 8]
inc bpl
lea ecx, [r8 + rax]
xor eax, eax
movzx ebp, bpl
xor dword [r13 + r10*4 + 8], ecx
mov edi, dword [r13 + rbp*4 + 8]
add r12b, dil
movzx ecx, dil
test cl, cl
movzx r12d, r12b
mov r10d, ecx
mov r11d, dword [r13 + r12*4 + 8]
sete al
xor r8d, r8d
mov dword [r13 + rbp*4 + 8], r11d
mov dword [r13 + r12*4 + 8], edi
movzx edx, byte [r13 + rbp*4 + 8]
add eax, dword [r13 + rdx*4 + 8]
test dl, dl
mov dword [r13 + rbp*4 + 8], eax
mov eax, dword [r13 + rcx*4 + 8]
sete r8b
lea ecx, [r8 + rax]
lea eax, [rbp + r12]
mov dword [r13 + r12*4 + 8], ecx
movzx ecx, al
add r11b, cl
add r11b, dil
movzx ecx, r11b
add r14, 5
movzx eax, byte [r13 + rcx*4 + 8]
xor byte [r14 - 2], al
mov eax, dword [r13 + rcx*4 + 8]
xor dword [r13 + rdx*4 + 8], eax
mov eax, dword [r13 + rbp*4 + 8]
lea ecx, [r8 + rax]
xor dword [r13 + r10*4 + 8], ecx
dec r15
jne 0x1800011d1
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x60]
mov dword [r13], ebp
mov rbp, qword [rsp + 0x58]
mov dword [r13 + 4], r12d
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret