Function at 0x14001c8c0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
lea r15, [0x1400b3c44]
xor edi, edi
mov esi, 8
mov r13d, reloc.SHLWAPI.dll_SHCreateMemStream
mov ebp, 0x10
mov r10d, esi
mov r11d, r13d
mov r12d, 0x14
sub r10, r15
sub rbp, r15
sub r11, r15
mov r14, rdx
mov rbx, rcx
mov r9d, edi
sub r12, r15
nop
mov eax, dword [r9 + r15 - 4]
mov rcx, qword [rbx]
lea r8, [r9 + r15]
mov dword [r9 + rcx], eax
mov eax, dword [r8]
mov rcx, qword [rbx]
mov dword [r9 + rcx + 4], eax
mov rcx, qword [rbx]
mov eax, dword [r8 + 4]
lea rdx, [r10 + r8]
add r9, 0x18
mov dword [rdx + rcx], eax
mov rax, qword [rbx]
lea rcx, [r8 + rax]
mov eax, dword [r8 + 8]
mov dword [rcx + r11], eax
mov rax, qword [rbx]
lea rcx, [r8 + rax]
mov eax, dword [r8 + 0xc]
mov dword [rcx + rbp], eax
mov rax, qword [rbx]
lea rcx, [r8 + rax]
mov eax, dword [r8 + 0x10]
mov dword [rcx + r12], eax
cmp r9, 0x48
jl 0x14001c910
lea rbp, [0x1400b3c94]
mov r9, rdi
sub rsi, rbp
nop dword [rax]
lea r10, [r9 + 0xc]
mov r11d, 0x40
nop word [rax + rax]
mov rcx, qword [rbx + 8]
mov eax, dword [r9 + rbp - 4]
lea r8, [r9 + rbp]
mov dword [r9 + rcx], eax
mov rcx, qword [rbx + 8]
mov eax, dword [r8]
mov dword [r9 + rcx + 4], eax
mov rcx, qword [rbx + 8]
mov eax, dword [r8 + 4]
lea rdx, [rsi + r8]
add r10, 0x10
add r9, 0x10
dec r11
mov dword [rdx + rcx], eax
mov rcx, qword [rbx + 8]
mov eax, dword [r8 + 8]
mov dword [r10 + rcx - 0x10], eax
jne 0x14001c990
cmp r9, 0x1000
jl 0x14001c980
mov r10d, edi
mov r9, qword [rbx]
lea ecx, [r10 + 1]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r14]
movsxd rax, r10d
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
shl r8d, 8
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
or r8d, ecx
lea ecx, [r10 + 3]
add r10d, 4
shl r8d, 8
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
or r8d, ecx
xor dword [r13 + r9 - 0xc], r8d
mov r9, qword [rbx]
imul r10d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub r10d, eax
mov eax, 0x66666667
lea ecx, [r10 + 1]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r14]
movsxd rax, r10d
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
shl r8d, 8
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
or r8d, ecx
lea ecx, [r10 + 3]
add r10d, 4
shl r8d, 8
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
or r8d, ecx
xor dword [r13 + r9 - 8], r8d
imul r10d
mov r9, qword [rbx]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub r10d, eax
mov eax, 0x66666667
lea ecx, [r10 + 1]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r14]
movsxd rax, r10d
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
shl r8d, 8
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
or r8d, ecx
lea ecx, [r10 + 3]
add r10d, 4
shl r8d, 8
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
or r8d, ecx
xor dword [r13 + r9 - 4], r8d
imul r10d
sar edx, 2
mov r9, qword [rbx]
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub r10d, eax
mov eax, 0x66666667
lea ecx, [r10 + 1]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r14]
movsxd rax, r10d
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
shl r8d, 8
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
or r8d, ecx
lea ecx, [r10 + 3]
add r10d, 4
shl r8d, 8
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
or r8d, ecx
xor dword [r13 + r9], r8d
mov r9, qword [rbx]
imul r10d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub r10d, eax
mov eax, 0x66666667
lea ecx, [r10 + 1]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r14]
movsxd rax, r10d
movzx ecx, byte [rax + r14]
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
shl r8d, 8
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
or r8d, ecx
lea ecx, [r10 + 3]
add r10d, 4
shl r8d, 8
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
or r8d, ecx
xor dword [r13 + r9 + 4], r8d
imul r10d
mov r9, qword [rbx]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub r10d, eax
mov eax, 0x66666667
lea ecx, [r10 + 1]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx r8d, byte [rax + r14]
movsxd rax, r10d
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
shl ecx, 8
or r8d, ecx
lea ecx, [r10 + 2]
shl r8d, 8
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r14]
mov eax, 0x66666667
or r8d, ecx
lea ecx, [r10 + 3]
shl r8d, 8
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r14]
add r10d, 4
or r8d, ecx
mov eax, 0x66666667
xor dword [r13 + r9 + 8], r8d
add r13, 0x18
imul r10d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub r10d, eax
cmp r13, 0x54
jl 0x14001c9e2
mov dword [rsp + 0x70], edi
mov dword [rsp + 0x78], edi
mov rsi, rdi
nop
lea r8, [rsp + 0x78]
lea rdx, [rsp + 0x70]
mov rcx, rbx
call fcn.14001c000
mov r11, qword [rbx]
mov eax, dword [rsp + 0x70]
mov dword [rsi + r11], eax
mov rcx, qword [rbx]
mov eax, dword [rsp + 0x78]
mov dword [rsi + rcx + 4], eax
add rsi, 8
cmp rsi, 0x48
jl 0x14001ce10
nop word [rax + rax]
mov esi, 0x80
nop word [rax + rax]
lea r8, [rsp + 0x78]
lea rdx, [rsp + 0x70]
mov rcx, rbx
call fcn.14001c000
mov r11, qword [rbx + 8]
mov eax, dword [rsp + 0x70]
mov dword [rdi + r11], eax
mov rcx, qword [rbx + 8]
mov eax, dword [rsp + 0x78]
mov dword [rdi + rcx + 4], eax
add rdi, 8
dec rsi
jne 0x14001ce60
cmp rdi, 0x1000
jl 0x14001ce50
mov rbx, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret