Function at 0x140070af0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rdi
push r12
push r15
sub rsp, 0x20
movsxd r15, r8d
mov r12, rdx
mov rdi, rcx
call fcn.14006b720
mov edx, InitCommonControls
mov rcx, rdi
mov rbx, rax
call fcn.14008c130
cmp eax, 0xdead
je 0x140070b3c
mov edx, reloc.OLEAUT32.dll_SafeArrayLock
mov rcx, rdi
call fcn.14008c130
cmp eax, 0x2655
jne 0x140070b67
test rbx, rbx
je 0x140070b67
cmp byte [rbx], 0
je 0x140070b67
lea rdx, str.demo
xor r8d, r8d
mov rcx, rbx
call fcn.14002a750
test eax, eax
jne 0x140070b67
lea edx, [rax + 0x1b]
mov rcx, rdi
call fcn.14008c130
xor r9d, r9d
lea rcx, [0x14013bbc8]
xor edx, edx
lea r8d, [r9 + 8]
call fcn.14002a5a0
mov rcx, qword [rdi + 0x260]
mov eax, r15d
cdq
and edx, 7
add eax, edx
mov ebp, eax
and eax, 7
sub eax, edx
sar ebp, 3
cmp dword [rcx + 0xd08], 0
mov ebx, eax
jne 0x140070bcf
mov dword [rcx + 0xd08], 0x113e
mov rcx, qword [rdi + 0x260]
movsxd rdx, dword [rcx + 0xd08]
mov rcx, rdi
call fcn.140064770
mov rcx, qword [rdi + 0x260]
mov qword [rcx + 0xd00], rax
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], r14
test ebx, ebx
je 0x140070c5c
mov rax, qword [rdi + 0x260]
lea r14d, [r15 + 8]
inc ebp
mov rsi, qword [rax + 0xd00]
cmp dword [rax + 0xd08], r14d
jge 0x140070c2d
mov rcx, rsi
call fcn.140064760
mov rax, qword [rdi + 0x260]
mov dword [rax + 0xd08], r14d
mov rbx, qword [rdi + 0x260]
movsxd rcx, dword [rbx + 0xd08]
call fcn.140010258
mov rsi, rax
mov qword [rbx + 0xd00], rax
test rsi, rsi
jne 0x140070c39
xor eax, eax
jmp 0x140070dd1
movsxd r8, r14d
xor r9d, r9d
xor edx, edx
mov rcx, rsi
call fcn.14002a5a0
mov r8, r15
xor r9d, r9d
mov rdx, r12
mov rcx, rsi
call fcn.14002a480
jmp 0x140070c5f
mov rsi, r12
test ebp, ebp
jle 0x140070cd4
lea rbx, [rsi + 2]
mov esi, ebp
nop dword [rax]
movzx eax, byte [rbx - 2]
lea rcx, [0x14013bbc8]
xor byte [0x14013bbc8], al
movzx eax, byte [rbx - 1]
xor byte [0x14013bbc9], al
movzx eax, byte [rbx]
xor byte [0x14013bbca], al
movzx eax, byte [rbx + 1]
xor byte [0x14013bbcb], al
movzx eax, byte [rbx + 2]
xor byte [0x14013bbcc], al
movzx eax, byte [rbx + 3]
xor byte [0x14013bbcd], al
movzx eax, byte [rbx + 4]
xor byte [0x14013bbce], al
movzx eax, byte [rbx + 5]
xor byte [0x14013bbcf], al
call fcn.1400aebb0
lea rbx, [rbx + 8]
dec rsi
jne 0x140070c70
mov r8d, dword [rsp + 0x60]
cmp r8d, 0x66d8b337
jne 0x140070dc2
movzx ecx, byte [0x14013bbcf]
movsx r11d, cl
movsx eax, cl
and eax, 2
and r11d, 1
shl eax, 5
shl r11d, 7
or r11b, al
movsx eax, cl
and eax, 4
shl eax, 3
or r11b, al
movsx eax, cl
and eax, 8
add eax, eax
or r11b, al
movsx eax, cl
and eax, 0x10
shr eax, 1
or r11b, al
movsx eax, cl
and eax, 0x20
shr eax, 3
or r11b, al
movsx eax, cl
and eax, 0x40
shr eax, 5
or r11b, al
test cl, 0x80
movzx ecx, byte [0x14013bbce]
setne al
movsx r9d, cl
mov word [0x14013bbce], 0
or r11b, al
and r9d, 1
movsx eax, cl
and eax, 2
shl r9d, 7
shl eax, 5
or r9b, al
movsx eax, cl
and eax, 4
shl eax, 3
or r9b, al
movsx eax, cl
and eax, 8
add eax, eax
or r9b, al
movsx eax, cl
and eax, 0x10
shr eax, 1
or r9b, al
movsx eax, cl
and eax, 0x20
shr eax, 3
or r9b, al
movsx eax, cl
and eax, 0x40
shr eax, 5
or r9b, al
test cl, 0x80
setne r10b
add byte [0x14013bbc8], r11b
or r9b, r10b
add byte [0x14013bbc9], r9b
lea rdx, [0x14013bbc8]
mov rcx, rdi
call fcn.14006f660
mov r14, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r12
pop rdi
ret