Function at 0x140091d00
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 0x140091f8c
mov rcx, qword [rcx]
mov edx, 0x5a4d
cmp word [rcx], dx
jne 0x140091f8c
mov edx, dword [rcx + 0x3c]
add rax, 4
cmp rdx, rax
ja 0x140091f8c
cmp edx, 4
jb 0x140091f8c
mov qword [rsp + 0x50], rbx
lea rbx, [rcx - 4]
add rbx, rdx
add rcx, 0x40
cmp rbx, rcx
jb 0x140091d92
nop
cmp dword [rbx], 0x68636952
lea rax, [rbx - 4]
je 0x140091d89
mov rbx, rax
cmp rax, rcx
jae 0x140091d70
jmp 0x140091f87
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 0x140091f82
cmp rbx, rcx
jb 0x140091f82
mov eax, esi
xor eax, dword [rbx]
cmp eax, 0x536e6144
je 0x140091dca
sub rbx, 4
cmp rbx, rcx
jae 0x140091db1
jmp 0x140091f82
sub r14, rbx
mov qword [rsp + 0x58], rbp
and r14, 0xfffffffffffffffc
mov rcx, r14
call fcn.14007cae0
mov rbp, rax
test rax, rax
je 0x140091f7d
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.14007e410
mov rdx, qword [r15 + 0x20]
lea r8, str.rich_signature.length
mov rcx, r14
call fcn.14007e410
mov rdx, qword [r15 + 0x20]
lea r8, str.rich_signature.key
mov ecx, esi
call fcn.14007e410
mov rcx, r14
call fcn.14007cae0
mov rbx, rax
test rax, rax
jne 0x140091e4c
mov rcx, rbp
jmp 0x140091f78
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 0x140091ec0
cmp rcx, 0x10
jb 0x140091ec0
and rcx, 0xfffffffffffffff0
movdqu xmm0, xmmword [rax]
add r8, 0x10
xorps xmm0, xmm6
movdqu xmmword [rax], xmm0
movdqu xmm0, xmmword [rax + 0x10]
xorps xmm0, xmm6
movdqu xmmword [rax + 0x10], xmm0
movdqu xmm0, xmmword [rax + 0x20]
xorps xmm0, xmm6
movdqu xmmword [rax + 0x20], xmm0
movdqu xmm0, xmmword [rax + 0x30]
xorps xmm0, xmm6
movdqu xmmword [rax + 0x30], xmm0
add rax, 0x40
cmp r8, rcx
jb 0x140091e81
cmp rax, rdx
jae 0x140091ed0
xor dword [rax], esi
add rax, 4
cmp rax, rdx
jb 0x140091ec5
mov r8, qword [r15 + 0x20]
lea r9, str.rich_signature.raw_data
mov rdx, r14
mov rcx, rbp
call fcn.14007e490
mov rcx, rbp
call fcn.14007ca60
mov r8, qword [r15 + 0x20]
lea r9, str.rich_signature.clear_data
mov rdx, r14
mov rcx, rbx
call fcn.14007e490
add r14, 0xfffffffffffffff0
shr r14, 3
lea rbp, [r14*4]
mov rcx, rbp
call fcn.14007cae0
mov rsi, rax
test rax, rax
jne 0x140091f29
mov rcx, rbx
jmp 0x140091f78
test r14, r14
je 0x140091f57
mov rcx, rsi
lea r8, [rbx + 0x10]
nop word [rax + rax]
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 0x140091f40
mov r8, qword [r15 + 0x20]
lea r9, str.rich_signature.version_data
mov rdx, rbp
mov rcx, rsi
call fcn.14007e490
mov rcx, rbx
call fcn.14007ca60
mov rcx, rsi
call fcn.14007ca60
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