Function at 0x1801387d0
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 0x180138ac3
mov rcx, qword [rcx]
mov edx, 0x5a4d
cmp word [rcx], dx
jne 0x180138ac3
mov r8d, dword [rcx + 0x3c]
add rax, 4
cmp r8, rax
ja 0x180138ac3
cmp r8d, 4
jb 0x180138ac3
mov qword [rsp + 0x50], rdi
lea rdi, [rcx - 4]
add rdi, r8
add rcx, 0x40
cmp rdi, rcx
jb 0x180138abe
mov qword [rsp + 0x40], rbx
nop word [rax + rax]
cmp dword [rdi], 0x68636952
lea rbx, [rdi - 4]
je 0x180138866
mov rdi, rbx
cmp rbx, rcx
jae 0x180138840
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 0x180138ab9
cmp rbx, rcx
jb 0x180138ab9
nop dword [rax]
mov edx, dword [rbx]
mov eax, edx
xor eax, r8d
cmp eax, 0x536e6144
je 0x1801388a9
sub rbx, 4
cmp rbx, rcx
jae 0x180138880
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 0x180138ab4
cmp ecx, dword [rbx + 0xc]
jne 0x180138ab4
xor eax, edx
cmp eax, 0x536e6144
jne 0x180138ab4
sub rdi, rbx
mov qword [rsp + 0x20], r15
and rdi, 0xfffffffffffffffc
mov rcx, rdi
call fcn.18012ef30
mov r15, rax
test rax, rax
je 0x180138aaf
mov r8, rdi
mov rdx, rbx
mov rcx, rax
call fcn.180280e70
sub rbx, qword [r14]
lea r8, str.rich_signature.offset
mov rdx, qword [r14 + 0x20]
lea rcx, [rbx + rbp]
call fcn.1801490f0
mov rdx, qword [r14 + 0x20]
lea r8, str.rich_signature.length
mov rcx, rdi
call fcn.1801490f0
mov ecx, dword [rsi]
lea r8, str.rich_signature.key
mov rdx, qword [r14 + 0x20]
call fcn.1801490f0
mov rcx, rdi
call fcn.18012ef30
mov rbp, rax
test rax, rax
jne 0x180138958
mov rcx, r15
jmp 0x180138aaa
mov r8, rdi
mov rdx, r15
mov rcx, rbp
call fcn.180280e70
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 0x1801389ef
cmp rax, 0x10
jb 0x1801389ef
movd xmm1, dword [rsi]
lea r9, [rax*4 - 4]
add r9, rbp
pshufd xmm1, xmm1, 0
cmp rbp, rsi
ja 0x1801389a9
cmp r9, rsi
jae 0x1801389ef
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 0x1801389b0
cmp rcx, rdx
jae 0x180138a0d
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rsi]
xor dword [rcx], eax
add rcx, 4
cmp rcx, rdx
jb 0x180138a00
mov r8, qword [r14 + 0x20]
lea r9, str.rich_signature.raw_data
mov rdx, rdi
mov rcx, r15
call fcn.180149150
mov rcx, r15
call fcn.18012eeb0
mov r8, qword [r14 + 0x20]
lea r9, str.rich_signature.clear_data
mov rdx, rdi
mov rcx, rbp
call fcn.180149150
add rdi, 0xfffffffffffffff0
shr rdi, 3
lea r15, [rdi*4]
mov rcx, r15
call fcn.18012ef30
mov rsi, rax
test rax, rax
jne 0x180138a66
mov rcx, rbp
jmp 0x180138aaa
test rdi, rdi
je 0x180138a89
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 0x180138a72
mov r8, qword [r14 + 0x20]
lea r9, str.rich_signature.version_data
mov rdx, r15
mov rcx, rsi
call fcn.180149150
mov rcx, rbp
call fcn.18012eeb0
mov rcx, rsi
call fcn.18012eeb0
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