Function at 0x1400c4970
Capabilities:
Encode data using xor

Disassembly:
endbr64
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x188
mov rdi, qword [0x14023b4a0]
pxor xmm0, xmm0
mov r13, rdx
mov r14, rcx
mov r12, rdx
mov rsi, r8
mov rax, qword [rdi]
mov qword [rsp + 0x178], rax
xor eax, eax
shr r13, 3
movups xmmword [rsp + 0x110], xmm0
mov dword [rsp + 0x124], 0
movsxd r15, r13d
mov qword [rsp + 0x11c], 0x10000
mov qword [rsp + 0x168], 0
movups xmmword [rsp + 0xe0], xmm0
movups xmmword [rsp + 0xf0], xmm0
movups xmmword [rsp + 0x100], xmm0
cmp r13d, 0x3f
jle 0x1400c4ddf
lea ebp, [r13 - 0x40]
mov rdi, rcx
lea rbx, [rsp + 0xe0]
shr ebp, 6
add ebp, 1
shl rbp, 6
add rbp, rcx
mov rdx, rdi
mov rcx, rbx
call sym.F512
add dword [rsp + 0x120], 1
jne 0x1400c4a38
add dword [rsp + 0x124], 1
add rdi, 0x40
cmp rbp, rdi
jne 0x1400c4a1b
mov ebp, dword [rsp + 0x168]
mov eax, r13d
sar eax, 0x1f
shr eax, 0x1a
lea edx, [rax + r13]
and edx, 0x3f
sub edx, eax
mov eax, r13d
sub eax, edx
cmp r13d, eax
jle 0x1400c4dee
sub r13d, eax
movsxd rdx, ebp
cdqe
lea r8d, [r13 - 1]
lea rcx, [rdx + rbx + 0x48]
add ebp, r13d
lea rdx, [r14 + rax]
add r8, 1
call sym.memcpy
mov dword [rsp + 0x168], ebp
and r12d, 7
jne 0x1400c4dc3
mov r12d, dword [rsp + 0x16c]
test r12d, r12d
jne 0x1400c4d6a
lea eax, [rbp + 1]
movsxd rbp, ebp
mov dword [rsp + 0x168], eax
mov byte [rsp + rbp + 0x128], pe_nt_image_headers64
cmp eax, 0x38
jg 0x1400c4d09
mov r12d, dword [rsp + 0x120]
lea rbp, [rsp + 0x128]
je 0x1400c4af4
lea ecx, [rax + 0x48]
mov r8d, 0x38
xor edx, edx
movsxd rcx, ecx
sub r8d, eax
add rcx, rbx
call sym.memset
add r12d, 1
jne 0x1400c4b02
add dword [rsp + 0x124], 1
mov r8d, dword [rsp + 0x124]
movzx eax, r12b
mov r11d, r12d
mov r10d, r12d
shl rax, 8
shr r11d, 0x10
mov dword [rsp + 0x168], 0x38
mov edx, r8d
movzx r9d, r11b
shr r10d, 0x18
mov ecx, r8d
shr edx, 0x18
shr ecx, 0x10
mov qword [rsp + 0x120], 0
mov r15d, edx
mov edx, r12d
movzx ecx, cl
movzx edi, dh
mov edx, r8d
or rax, rdi
movzx edi, dh
movzx edx, r15b
shl rax, 8
or rax, r9
movzx r9d, r10b
shl rax, 8
or rax, r9
movzx r9d, r8b
shl rax, 8
or rax, r9
shl rax, 8
or rax, rdi
shl rax, 8
or rax, rcx
mov rcx, rbx
shl rax, 8
or rax, rdx
mov rdx, rbp
mov qword [rsp + 0x160], rax
call sym.F512
add dword [rsp + 0x120], 1
jne 0x1400c4bb7
add dword [rsp + 0x124], 1
movdqu xmm1, xmmword [rsp + 0xe0]
lea r12, [rsp + 0x60]
xor r8d, r8d
movdqu xmm2, xmmword [rsp + 0xf0]
lea rbp, [rsp + 0x20]
lea r13, [rsp + 0xa0]
mov rdx, r12
movdqu xmm3, xmmword [rsp + 0x100]
movdqu xmm4, xmmword [rsp + 0x110]
mov rcx, rbp
movups xmmword [rsp + 0x20], xmm1
movups xmmword [rsp + 0x30], xmm2
movups xmmword [rsp + 0x40], xmm3
movups xmmword [rsp + 0x50], xmm4
call sym.RND512P
mov r8d, 1
mov rdx, r13
mov rcx, r12
call sym.RND512P
mov r8d, 2
mov rdx, r12
mov rcx, r13
call sym.RND512P
mov r8d, 3
mov rdx, r13
mov rcx, r12
call sym.RND512P
mov r8d, 4
mov rdx, r12
mov rcx, r13
call sym.RND512P
mov r8d, 5
mov rdx, r13
mov rcx, r12
call sym.RND512P
mov r8d, 6
mov rdx, r12
mov rcx, r13
call sym.RND512P
mov r8d, 7
mov rdx, r13
mov rcx, r12
call sym.RND512P
mov r8d, 8
mov rdx, r12
mov rcx, r13
call sym.RND512P
mov r8d, 9
mov rdx, rbp
mov rcx, r12
call sym.RND512P
mov rax, rbp
movdqu xmm0, xmmword [rbx]
pxor xmm0, xmmword [rax]
add rax, 0x10
add rbx, 0x10
movups xmmword [rbx - 0x10], xmm0
cmp r12, rax
jne 0x1400c4cab
movdqu xmm5, xmmword [rsp + 0x100]
movdqu xmm1, xmmword [rsp + 0x110]
movups xmmword [rsi], xmm5
movups xmmword [rsi + 0x10], xmm1
mov rsi, qword [0x14023b4a0]
mov rax, qword [rsp + 0x178]
sub rax, qword [rsi]
jne 0x1400c4df6
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp eax, 0x3f
jg 0x1400c4d3a
movsxd rcx, eax
mov edx, 0x40
lea r8, [rcx + rbx + 0x48]
sub edx, eax
je 0x1400c4d2f
xor eax, eax
mov ecx, eax
add eax, 1
mov byte [r8 + rcx], 0
cmp eax, edx
jb 0x1400c4d21
mov dword [rsp + 0x168], 0x40
lea rbp, [rsp + 0x128]
mov rcx, rbx
mov rdx, rbp
call sym.F512
mov r12d, dword [rsp + 0x120]
add r12d, 1
jne 0x1400c4d63
add dword [rsp + 0x124], 1
xor eax, eax
jmp 0x1400c4adb
lea r9d, [rbp - 1]
mov eax, ebp
movsxd r9, r9d
movzx edx, byte [rsp + r9 + 0x128]
mov r10d, 1
mov ecx, r12d
mov dword [rsp + 0x16c], 0
mov r8d, r10d
shl r8d, cl
mov ecx, 8
sub ecx, r12d
sub r8d, 1
shl r8d, cl
mov ecx, 7
sub ecx, r12d
and edx, r8d
shl r10d, cl
xor edx, r10d
mov byte [rsp + r9 + 0x128], dl
jmp 0x1400c4ac0
movzx edx, byte [r14 + r15]
lea eax, [rbp + 1]
movsxd r9, ebp
mov dword [rsp + 0x168], eax
mov byte [rsp + r9 + 0x128], dl
jmp 0x1400c4d7c
xor ebp, ebp
lea rbx, [rsp + 0xe0]
jmp 0x1400c4a48
movsxd r15, eax
jmp 0x1400c4a90
call dbg.__stack_chk_fail
nop
nop
nop
nop
nop