Function at 0x14008d970
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x30
mov rax, qword [rcx + 8]
xor edi, edi
mov r12, rdx
mov r15, rcx
mov r14d, edi
mov esi, edi
cmp rax, 0x40
jb 0x14008dc0c
mov rcx, qword [rcx]
mov edx, 0x5a4d
cmp word [rcx], dx
jne 0x14008dc0c
mov edx, dword [rcx + 0x3c]
add rax, 4
cmp rdx, rax
ja 0x14008dc0c
cmp edx, 4
jb 0x14008dc0c
mov qword [rsp + 0x50], rbx
lea rbx, [rcx - 4]
add rbx, rdx
add rcx, 0x40
cmp rbx, rcx
jb 0x14008da02
nop
cmp dword [rbx], 0x68636952
lea rax, [rbx - 4]
je 0x14008d9f9
mov rbx, rax
cmp rax, rcx
jae 0x14008d9e0
jmp 0x14008dc07
mov esi, dword [rbx + 4]
mov r14, rbx
mov rbx, rax
movaps xmmword [rsp + 0x20], xmm6
movd xmm6, esi
pshufd xmm6, xmm6, 0
test esi, esi
je 0x14008dc02
cmp rbx, rcx
jb 0x14008dc02
mov eax, esi
xor eax, dword [rbx]
cmp eax, 0x536e6144
je 0x14008da3a
sub rbx, 4
cmp rbx, rcx
jae 0x14008da21
jmp 0x14008dc02
sub r14, rbx
mov qword [rsp + 0x58], rbp
and r14, 0xfffffffffffffffc
mov rcx, r14
call fcn.140074030
mov rbp, rax
test rax, rax
je 0x14008dbfd
mov r8, r14
mov rdx, rbx
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
sub rbx, qword [r15]
lea r8, str.rich_signature.offset
mov rdx, qword [r15 + 0x20]
lea rcx, [r12 + rbx]
call fcn.14007ad00
mov rdx, qword [r15 + 0x20]
lea r8, str.rich_signature.length
mov rcx, r14
call fcn.14007ad00
mov rdx, qword [r15 + 0x20]
lea r8, str.rich_signature.key
mov ecx, esi
call fcn.14007ad00
mov rcx, r14
call fcn.140074030
mov rbx, rax
test rax, rax
jne 0x14008dabc
mov rcx, rbp
jmp 0x14008dbf8
mov r8, r14
mov rdx, rbp
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov rcx, r14
lea rdx, [r14 + rbx]
shr rcx, 2
mov rax, rbx
cmp rbx, rdx
mov r8, rdi
cmova rcx, rdi
test rcx, rcx
je 0x14008db43
cmp rcx, 0x10
jb 0x14008db43
and rcx, 0xfffffffffffffff0
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [rax]
add r8, 0x10
pxor xmm0, xmm6
movdqu xmmword [rax], xmm0
movdqu xmm0, xmmword [rax + 0x10]
pxor xmm0, xmm6
movdqu xmmword [rax + 0x10], xmm0
movdqu xmm0, xmmword [rax + 0x20]
pxor xmm0, xmm6
movdqu xmmword [rax + 0x20], xmm0
movdqu xmm0, xmmword [rax + 0x30]
pxor xmm0, xmm6
movdqu xmmword [rax + 0x30], xmm0
add rax, 0x40
cmp r8, rcx
jb 0x14008db00
cmp rax, rdx
jae 0x14008db5b
nop dword [rax + rax]
xor dword [rax], esi
add rax, 4
cmp rax, rdx
jb 0x14008db50
mov r8, qword [r15 + 0x20]
lea r9, str.rich_signature.raw_data
mov rdx, r14
mov rcx, rbp
call fcn.14007ad80
mov rcx, rbp
call fcn.140073fb0
mov r8, qword [r15 + 0x20]
lea r9, str.rich_signature.clear_data
mov rdx, r14
mov rcx, rbx
call fcn.14007ad80
add r14, 0xfffffffffffffff0
shr r14, 3
lea rbp, [r14*4]
mov rcx, rbp
call fcn.140074030
mov rsi, rax
test rax, rax
jne 0x14008dbb4
mov rcx, rbx
jmp 0x14008dbf8
test r14, r14
je 0x14008dbd7
mov rcx, rsi
lea r8, [rbx + 0x10]
mov eax, dword [r8]
lea r8, [r8 + 8]
inc edi
mov dword [rcx], eax
movsxd rax, edi
lea rcx, [rcx + 4]
cmp rax, r14
jl 0x14008dbc0
mov r8, qword [r15 + 0x20]
lea r9, str.rich_signature.version_data
mov rdx, rbp
mov rcx, rsi
call fcn.14007ad80
mov rcx, rbx
call fcn.140073fb0
mov rcx, rsi
call fcn.140073fb0
mov rbp, qword [rsp + 0x58]
movaps xmm6, xmmword [rsp + 0x20]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
ret