Function at 0x140030400
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r14
sub rsp, 0x28
mov rax, qword [rcx + 8]
mov rbp, rdx
mov r14, rcx
cmp rax, 0x40
jb 0x1400306f3
mov rcx, qword [rcx]
mov edx, 0x5a4d
cmp word [rcx], dx
jne 0x1400306f3
mov r8d, dword [rcx + 0x3c]
add rax, 4
cmp r8, rax
ja 0x1400306f3
cmp r8d, 4
jb 0x1400306f3
mov qword [rsp + 0x50], rdi
lea rdi, [rcx - 4]
add rdi, r8
add rcx, 0x40
cmp rdi, rcx
jb 0x1400306ee
mov qword [rsp + 0x40], rbx
nop word [rax + rax]
cmp dword [rdi], 0x68636952
lea rbx, [rdi - 4]
je 0x140030496
mov rdi, rbx
cmp rbx, rcx
jae 0x140030470
mov rbx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
add rsp, 0x28
pop r14
pop rbp
ret
mov r8d, dword [rdi + 4]
test r8d, r8d
je 0x1400306e9
cmp rbx, rcx
jb 0x1400306e9
nop dword [rax]
mov edx, dword [rbx]
mov eax, edx
xor eax, r8d
cmp eax, 0x536e6144
je 0x1400304d9
sub rbx, 4
cmp rbx, rcx
jae 0x1400304b0
mov rbx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
add rsp, 0x28
pop r14
pop rbp
ret
mov eax, dword [rbx + 4]
mov ecx, dword [rbx + 8]
mov qword [rsp + 0x48], rsi
lea rsi, [rbx + 4]
cmp eax, ecx
jne 0x1400306e4
cmp ecx, dword [rbx + 0xc]
jne 0x1400306e4
xor eax, edx
cmp eax, 0x536e6144
jne 0x1400306e4
sub rdi, rbx
mov qword [rsp + 0x20], r15
and rdi, 0xfffffffffffffffc
mov rcx, rdi
call fcn.14001cf70
mov r15, rax
test rax, rax
je 0x1400306df
mov r8, rdi
mov rdx, rbx
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
sub rbx, qword [r14]
lea r8, str.rich_signature.offset
mov rdx, qword [r14 + 0x20]
lea rcx, [rbx + rbp]
call fcn.14001e560
mov rdx, qword [r14 + 0x20]
lea r8, str.rich_signature.length
mov rcx, rdi
call fcn.14001e560
mov ecx, dword [rsi]
lea r8, str.rich_signature.key
mov rdx, qword [r14 + 0x20]
call fcn.14001e560
mov rcx, rdi
call fcn.14001cf70
mov rbp, rax
test rax, rax
jne 0x140030588
mov rcx, r15
jmp 0x1400306da
mov r8, rdi
mov rdx, r15
mov rcx, rbp
call sub.VCRUNTIME140.dll_memcpy
xor ebx, ebx
lea rdx, [rdi + rbp]
mov rax, rdi
mov rcx, rbp
shr rax, 2
mov r8d, ebx
cmp rbp, rdx
cmova rax, rbx
test rax, rax
je 0x14003061f
cmp rax, 0x10
jb 0x14003061f
movd xmm1, dword [rsi]
lea r9, [rax*4 - 4]
add r9, rbp
pshufd xmm1, xmm1, 0
cmp rbp, rsi
ja 0x1400305d9
cmp r9, rsi
jae 0x14003061f
and rax, 0xfffffffffffffff0
nop dword [rax]
movdqu xmm0, xmmword [rcx]
add r8, 0x10
xorps xmm0, xmm1
movdqu xmmword [rcx], xmm0
movdqu xmm0, xmmword [rcx + 0x10]
xorps xmm0, xmm1
movdqu xmmword [rcx + 0x10], xmm0
movdqu xmm0, xmmword [rcx + 0x20]
xorps xmm0, xmm1
movdqu xmmword [rcx + 0x20], xmm0
movdqu xmm0, xmmword [rcx + 0x30]
xorps xmm0, xmm1
movdqu xmmword [rcx + 0x30], xmm0
add rcx, 0x40
cmp r8, rax
jb 0x1400305e0
cmp rcx, rdx
jae 0x14003063d
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rsi]
xor dword [rcx], eax
add rcx, 4
cmp rcx, rdx
jb 0x140030630
mov r8, qword [r14 + 0x20]
lea r9, str.rich_signature.raw_data
mov rdx, rdi
mov rcx, r15
call fcn.14001e5c0
mov rcx, r15
call fcn.14001cef0
mov r8, qword [r14 + 0x20]
lea r9, str.rich_signature.clear_data
mov rdx, rdi
mov rcx, rbp
call fcn.14001e5c0
add rdi, 0xfffffffffffffff0
shr rdi, 3
lea r15, [rdi*4]
mov rcx, r15
call fcn.14001cf70
mov rsi, rax
test rax, rax
jne 0x140030696
mov rcx, rbp
jmp 0x1400306da
test rdi, rdi
je 0x1400306b9
mov rcx, rsi
lea r8, [rbp + 0x10]
mov eax, dword [r8]
lea r8, [r8 + 8]
inc ebx
mov dword [rcx], eax
movsxd rax, ebx
lea rcx, [rcx + 4]
cmp rax, rdi
jl 0x1400306a2
mov r8, qword [r14 + 0x20]
lea r9, str.rich_signature.version_data
mov rdx, r15
mov rcx, rsi
call fcn.14001e5c0
mov rcx, rbp
call fcn.14001cef0
mov rcx, rsi
call fcn.14001cef0
mov r15, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
add rsp, 0x28
pop r14
pop rbp
ret