Function at 0x14004f2e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x30
mov r14, rcx
mov rax, rdx
sub rax, rcx
movzx ebx, r9b
mov rcx, rax
mov r15, r8
sar rcx, 3
mov rbp, rdx
cmp rcx, 0x20
jle 0x14004f535
nop dword [rax]
test r15, r15
jle 0x14004f595
sar rax, 4
lea r8, [rbp - 8]
movzx r9d, bl
mov rcx, r14
lea rsi, [r14 + rax*8]
mov rdx, rsi
call fcn.14004e050
lea rdi, [rsi + 8]
cmp r14, rsi
jae 0x14004f37f
nop dword [rax]
mov rcx, qword [rsi - 8]
lea rdx, [rsi - 8]
mov rax, qword [rsi]
movsd xmm0, qword [rcx + 0xa8]
movsd xmm1, qword [rax + 0xa8]
comisd xmm0, xmm1
ja 0x14004f37f
comisd xmm1, xmm0
ja 0x14004f37f
mov rsi, rdx
cmp r14, rdx
jb 0x14004f350
cmp rdi, rbp
jae 0x14004f3b0
mov rax, qword [rsi]
movsd xmm0, qword [rax + 0xa8]
nop
mov rax, qword [rdi]
movsd xmm1, qword [rax + 0xa8]
comisd xmm1, xmm0
ja 0x14004f3b0
comisd xmm0, xmm1
ja 0x14004f3b0
add rdi, 8
cmp rdi, rbp
jb 0x14004f390
mov rdx, rdi
mov r8, rsi
cmp rdx, rbp
jae 0x14004f3fd
nop dword [rax + rax]
mov rcx, qword [rdx]
mov rax, qword [rsi]
movsd xmm1, qword [rcx + 0xa8]
movsd xmm0, qword [rax + 0xa8]
comisd xmm0, xmm1
ja 0x14004f3f4
comisd xmm1, xmm0
ja 0x14004f3fd
cmp rdi, rdx
je 0x14004f3f0
mov rax, qword [rdi]
mov qword [rdi], rcx
mov qword [rdx], rax
add rdi, 8
add rdx, 8
cmp rdx, rbp
jb 0x14004f3c0
cmp r8, r14
jbe 0x14004f455
lea rcx, [r8 - 8]
nop word [rax + rax]
mov rax, qword [rsi]
mov r9, qword [rcx]
movsd xmm1, qword [rax + 0xa8]
movsd xmm0, qword [r9 + 0xa8]
comisd xmm0, xmm1
ja 0x14004f445
comisd xmm1, xmm0
ja 0x14004f452
sub rsi, 8
cmp rsi, rcx
je 0x14004f445
mov rax, qword [rsi]
mov qword [rsi], r9
mov qword [rcx], rax
sub r8, 8
sub rcx, 8
cmp r14, r8
jb 0x14004f410
cmp r8, r14
jne 0x14004f48a
cmp rdx, rbp
je 0x14004f4d3
cmp rdi, rdx
je 0x14004f46d
mov rax, qword [rdi]
mov rcx, qword [rsi]
mov qword [rsi], rax
mov qword [rdi], rcx
mov rax, qword [rdx]
add rdi, 8
mov rcx, qword [rsi]
mov qword [rsi], rax
add rsi, 8
mov qword [rdx], rcx
add rdx, 8
jmp 0x14004f3b6
add r8, 0xfffffffffffffff8
cmp rdx, rbp
jne 0x14004f4be
sub rsi, 8
cmp r8, rsi
je 0x14004f4a8
mov rax, qword [rsi]
mov rcx, qword [r8]
mov qword [r8], rax
mov qword [rsi], rcx
mov rax, qword [rdi - 8]
sub rdi, 8
mov rcx, qword [rsi]
mov qword [rsi], rax
mov qword [rdi], rcx
jmp 0x14004f3b6
mov rcx, qword [rdx]
mov rax, qword [r8]
mov qword [rdx], rax
add rdx, 8
mov qword [r8], rcx
jmp 0x14004f3b6
mov rcx, r15
mov rax, rsi
sar rcx, 2
sub rax, r14
sar r15, 1
and rax, 0xfffffffffffffff8
add r15, rcx
movzx r9d, bl
mov rcx, rbp
mov r8, r15
sub rcx, rdi
and rcx, 0xfffffffffffffff8
cmp rax, rcx
jge 0x14004f510
mov rdx, rsi
mov rcx, r14
call fcn.14004f2e0
mov r14, rdi
jmp 0x14004f51e
mov rdx, rbp
mov rcx, rdi
call fcn.14004f2e0
mov rbp, rsi
mov rax, rbp
sub rax, r14
mov rcx, rax
sar rcx, 3
cmp rcx, 0x20
jg 0x14004f320
cmp rcx, 2
jl 0x14004f71e
cmp r14, rbp
je 0x14004f71e
lea r15, [r14 + 8]
mov rbx, r15
cmp r15, rbp
je 0x14004f71e
mov edi, 8
nop dword [rax]
mov rsi, qword [rbx]
mov rdx, rbx
mov rax, qword [r14]
movsd xmm0, qword [rsi + 0xa8]
comisd xmm0, xmmword [rax + 0xa8]
jbe 0x14004f6e1
mov r8, rdi
mov rdx, r14
mov rcx, r15
call sub.VCRUNTIME140.dll_memmove
mov qword [r14], rsi
jmp 0x14004f70d
cmp rcx, 0x20
jle 0x14004f535
mov r10, rbp
sub r10, r14
sar r10, 3
mov r9, r10
sar r9, 1
test r9, r9
jle 0x14004f681
lea r11, [r10 - 1]
sar r11, 1
nop dword [rax + rax]
mov rdi, qword [r14 + r9*8 - 8]
dec r9
mov r8, r9
mov rcx, r9
cmp r9, r11
jge 0x14004f61d
nop dword [rax]
nop word [rax + rax]
lea rdx, [rcx + rcx]
mov rcx, qword [r14 + rdx*8 + 0x10]
mov rax, qword [r14 + rdx*8 + 8]
movsd xmm0, qword [rcx + 0xa8]
xor ecx, ecx
comisd xmm0, xmmword [rax + 0xa8]
seta cl
xor rcx, 1
inc rcx
add rcx, rdx
mov rax, qword [r14 + rcx*8]
mov qword [r14 + r8*8], rax
mov r8, rcx
cmp rcx, r11
jl 0x14004f5e0
cmp rcx, r11
jne 0x14004f635
test r10b, 1
jne 0x14004f635
mov rax, qword [r14 + r10*8 - 8]
mov qword [r14 + r8*8], rax
lea r8, [r10 - 1]
lea rax, [r8 - 1]
sar rax, 1
cmp r9, r8
jge 0x14004f674
movsd xmm1, qword [rdi + 0xa8]
nop dword [rax]
mov rcx, qword [r14 + rax*8]
movsd xmm0, qword [rcx + 0xa8]
comisd xmm0, xmm1
jbe 0x14004f674
mov qword [r14 + r8*8], rcx
mov r8, rax
dec rax
sar rax, 1
cmp r9, r8
jl 0x14004f650
mov qword [r14 + r8*8], rdi
test r9, r9
jg 0x14004f5c0
cmp r10, 2
jl 0x14004f71e
add rbp, 0xfffffffffffffff8
mov edi, 8
sub rdi, r14
cmp r10, 2
jl 0x14004f6ca
mov rax, qword [rbp]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x50], rax
mov r8, rbp
mov rax, qword [r14]
sub r8, r14
sar r8, 3
xor edx, edx
mov rcx, r14
mov qword [rbp], rax
mov byte [rsp + 0x20], bl
call fcn.14004ef70
sub rbp, 8
lea rax, [rdi + rbp]
sar rax, 3
mov r10, rax
cmp rax, 2
jge 0x14004f697
jmp 0x14004f71e
mov rax, rbx
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [rax - 8]
sub rax, 8
comisd xmm0, xmmword [rcx + 0xa8]
jbe 0x14004f70a
mov qword [rdx], rcx
mov rdx, rax
jmp 0x14004f6f0
mov qword [rdx], rsi
add rbx, 8
add rdi, 8
cmp rbx, rbp
jne 0x14004f560
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop rdi
ret