Function at 0x140002970
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
lea r8d, [rdx + 0x2a]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r11d, r11d
lea rsi, [0x140010330]
mov r9, rax
sub rbx, rax
movabs rdi, 0x8618618618618619
lea r10, [rax + 2]
nop dword [rax + rax]
movsxd r8, r11d
mov rax, rdi
mul r8
mov rax, r8
mov rcx, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 1]
xor al, byte [r10 + rbx - 2]
movsx eax, al
mov word [r10 - 2], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 2]
xor al, byte [rbx + r10]
movsx eax, al
mov word [r10], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 3]
xor al, byte [rbx + r10 + 2]
movsx eax, al
mov word [r10 + 2], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 4]
xor al, byte [rbx + r10 + 4]
movsx eax, al
mov word [r10 + 4], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 5]
xor al, byte [rbx + r10 + 6]
movsx eax, al
mov word [r10 + 6], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 6]
xor al, byte [rbx + r10 + 8]
movsx eax, al
mov word [r10 + 8], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 7]
xor al, byte [rbx + r10 + 0xa]
movsx eax, al
mov word [r10 + 0xa], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 8]
xor al, byte [rbx + r10 + 0xc]
movsx eax, al
mov word [r10 + 0xc], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 9]
xor al, byte [rbx + r10 + 0xe]
movsx eax, al
mov word [r10 + 0xe], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0xa]
xor al, byte [rbx + r10 + 0x10]
movsx eax, al
mov word [r10 + 0x10], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0xb]
xor al, byte [rbx + r10 + 0x12]
movsx eax, al
mov word [r10 + 0x12], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0xc]
xor al, byte [rbx + r10 + 0x14]
movsx eax, al
mov word [r10 + 0x14], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0xd]
xor al, byte [rbx + r10 + 0x16]
movsx eax, al
mov word [r10 + 0x16], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0xe]
xor al, byte [rbx + r10 + 0x18]
movsx eax, al
mov word [r10 + 0x18], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0xf]
xor al, byte [rbx + r10 + 0x1a]
movsx eax, al
mov word [r10 + 0x1a], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0x10]
xor al, byte [rbx + r10 + 0x1c]
movsx eax, al
mov word [r10 + 0x1c], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0x11]
xor al, byte [rbx + r10 + 0x1e]
movsx eax, al
mov word [r10 + 0x1e], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0x12]
xor al, byte [rbx + r10 + 0x20]
movsx eax, al
mov word [r10 + 0x20], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0x13]
xor al, byte [rbx + r10 + 0x22]
movsx eax, al
mov word [r10 + 0x22], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0x14]
xor al, byte [rbx + r10 + 0x24]
movsx eax, al
mov word [r10 + 0x24], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0x15]
xor al, byte [rbx + r10 + 0x26]
movsx eax, al
mov word [r10 + 0x26], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0x16]
xor al, byte [rbx + r10 + 0x28]
movsx eax, al
mov word [r10 + 0x28], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0x17]
xor al, byte [rbx + r10 + 0x2a]
movsx eax, al
mov word [r10 + 0x2a], ax
mov rax, rdi
lea r10, [r10 + 0x32]
mul rcx
mov rax, rcx
add r11d, 0x19
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0x18]
xor al, byte [rbx + r10 - 6]
movsx eax, al
mov word [r10 - 6], ax
mov rax, rdi
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 8
imul rax, rax, 0x150
sub rcx, rax
movzx eax, byte [rcx + rsi]
xor al, byte [r10 + rbx - 4]
movsx eax, al
mov word [r10 - 4], ax
cmp r11d, 0x19
jb 0x1400029c0
mov rbx, qword [rsp + 0x30]
mov rax, r9
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret