Function at 0x1400f36d0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
movaps xmmword [rsp + 0x90], xmm6
mov r11, rcx
mov rax, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x30], rax
add rax, 0xc
mov rsi, rcx
jmp 0x1400f3734
mov r10d, dword [rax - 8]
mov r9d, dword [rax]
cmp r8d, edx
cmova edx, r8d
cmp r10d, r9d
cmovb r9d, r10d
inc r9d
add rax, 8
dec rcx
cmp edx, r9d
jbe 0x1400f3758
cmp rcx, 2
jb 0x1400f3f1a
mov r8d, dword [rax - 0xc]
mov edx, dword [rax - 4]
cmp r8d, edx
jb 0x1400f3710
jne 0x1400f3758
mov r10d, dword [rax - 8]
mov r9d, dword [rax]
cmp r10d, r9d
jb 0x1400f3717
mov rdx, rsi
cmp rsi, 0x15
mov qword [rsp + 0x38], r11
jae 0x1400f378d
cmp rdx, 1
jbe 0x1400f3e1d
mov r8d, 1
mov rcx, qword [rsp + 0x30]
call fcn.1400eed80
mov rdx, rsi
mov r11, qword [rsp + 0x38]
jmp 0x1400f3e26
movabs rax, 0x7ffffffffffffff8
lea rdx, [rdx*4]
and rdx, rax
movzx eax, byte [0x141ada129]
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x1400f3f36
mov r14, rax
movzx eax, byte [0x141ada129]
mov edx, 0x100
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x1400f3f36
mov rbp, rax
mov rax, qword [rsp + 0x30]
lea rcx, [rax + 8]
mov qword [rsp + 0x58], rcx
add rax, 0xfffffffffffffff8
mov qword [rsp + 0x50], rax
mov eax, 0x10
mov qword [rsp + 0x48], rax
xor ebx, ebx
movabs r13, 0x1ffffffffffffffe
xor r15d, r15d
mov qword [rsp + 0x20], r14
mov r10, rsi
mov qword [rsp + 0x40], rsi
jmp 0x1400f3834
mov r15d, 1
mov rbx, qword [rsp + 0x60]
cmp rbx, r10
jae 0x1400f3df0
mov rax, r10
sub rax, rbx
mov rcx, qword [rsp + 0x30]
lea rcx, [rcx + rbx*8]
cmp rax, 2
jae 0x1400f3860
mov r8, rax
lea rax, [r8 + rbx]
jmp 0x1400f39f0
mov edx, dword [rcx + 8]
cmp edx, dword [rcx]
jb 0x1400f3873
jne 0x1400f38b4
mov r8d, dword [rcx + 4]
cmp dword [rcx + 0xc], r8d
jae 0x1400f38b4
mov r8d, 2
cmp rax, 2
jne 0x1400f3898
jmp 0x1400f3902
inc r8
cmp rax, r8
je 0x1400f38ff
mov r9d, edx
mov edx, dword [rcx + r8*8]
cmp edx, r9d
jb 0x1400f3890
jne 0x1400f3902
mov r9d, dword [rcx + r8*8 - 4]
cmp dword [rcx + r8*8 + 4], r9d
jb 0x1400f3890
jmp 0x1400f3902
mov r8d, 2
cmp rax, 2
jne 0x1400f38dc
jmp 0x1400f384c
inc r8
cmp rax, r8
je 0x1400f3849
mov r9d, edx
mov edx, dword [rcx + r8*8]
cmp edx, r9d
jb 0x1400f384c
jne 0x1400f38d0
mov r9d, dword [rcx + r8*8 - 4]
cmp dword [rcx + r8*8 + 4], r9d
jae 0x1400f38d0
jmp 0x1400f384c
mov r8, rax
mov rax, r8
add rax, rbx
jb 0x1400f3f36
cmp rax, r10
ja 0x1400f3f36
cmp r8, 2
jae 0x1400f3928
mov r8d, 1
jmp 0x1400f39f0
mov r12, rax
mov qword [rsp + 0x28], r15
mov rax, r8
shr rax, 1
lea rdx, [rcx + r8*8]
lea r9, [rax*8]
sub rdx, r9
cmp rax, 1
jne 0x1400f3950
xor r9d, r9d
jmp 0x1400f39b6
movabs r9, 0x7ffffffffffffff8
lea r10, [r9 + 6]
and r10, rax
mov r9, qword [rsp + 0x58]
lea r11, [r9 + rbx*8]
mov r9, qword [rsp + 0x50]
lea rsi, [r9 + r12*8]
xor r9d, r9d
nop word cs:[rax + rax]
mov rdi, qword [rsi]
mov r14, qword [r11 + r9*8 - 8]
mov qword [r11 + r9*8 - 8], rdi
mov qword [rsi], r14
mov rdi, r9
xor rdi, r13
add rdi, rax
mov r14, qword [rdx + rdi*8]
mov r15, qword [r11 + r9*8]
mov qword [r11 + r9*8], r14
mov qword [rdx + rdi*8], r15
add r9, 2
add rsi, 0xfffffffffffffff0
cmp r10, r9
jne 0x1400f3980
test r8b, 2
je 0x1400f39d5
mov r10, r9
not r10
add rax, r10
mov r10, qword [rdx + rax*8]
mov r11, qword [rcx + r9*8]
mov qword [rcx + r9*8], r10
mov qword [rdx + rax*8], r11
mov r14, qword [rsp + 0x20]
mov r15, qword [rsp + 0x28]
mov r10, qword [rsp + 0x40]
mov rax, r12
nop word [rax + rax]
mov rsi, rax
sub rsi, rbx
jb 0x1400f3f36
cmp rax, r10
ja 0x1400f3f36
jae 0x1400f3a50
cmp r8, 0xa
jae 0x1400f3a50
cmp rbx, 0xfffffffffffffff6
jae 0x1400f3f36
lea rdi, [rbx + 0xa]
cmp rdi, r10
mov r12, r10
cmovae rdi, r10
cmp rax, rbx
mov eax, 1
cmove r8, rax
mov rsi, rdi
sub rsi, rbx
mov rdx, rsi
call fcn.1400eed80
mov rax, rdi
mov qword [rsp + 0x60], rax
cmp r15, qword [rsp + 0x48]
je 0x1400f3a5f
jmp 0x1400f3ab9
mov r12, r10
mov qword [rsp + 0x60], rax
cmp r15, qword [rsp + 0x48]
jne 0x1400f3ab9
mov rdx, r15
shl rdx, 5
movzx eax, byte [0x141ada129]
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x1400f3f36
mov r13, rax
lea rax, [r15 + r15]
mov qword [rsp + 0x48], rax
mov r8, r15
shl r8, 4
mov rcx, r13
mov rdx, rbp
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, rbp
call fcn.1401cdfe4
mov rbp, r13
movabs r13, 0x1ffffffffffffffe
mov r10, r12
mov rax, r15
shl rax, 4
mov qword [rbp + rax], rsi
mov qword [rbp + rax + 8], rbx
inc r15
mov rax, r15
cmp r15, 2
mov qword [rsp + 0x68], rbp
jae 0x1400f3b66
jmp 0x1400f3826
mov rsi, rbp
mov r14, qword [rsp + 0x20]
mov rdx, r14
mov rbp, qword [rsp + 0x68]
add rbx, rbp
sub r8, rdx
mov rcx, rsi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x70]
add rax, qword [rsp + 0x28]
mov qword [rbx], rax
mov rax, qword [rsp + 0x78]
mov qword [rbx + 8], rax
lea rdx, [r13 + 0x10]
mov rax, qword [rsp + 0x88]
not rax
add r12, rax
shl r12, 4
mov rcx, r13
mov r8, r12
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x80]
cmp rax, 1
mov r10, qword [rsp + 0x40]
movabs r13, 0x1ffffffffffffffe
jbe 0x1400f3820
mov r15, rax
lea r11, [rax - 1]
mov rcx, r11
shl rcx, 4
mov rax, qword [rbp + rcx]
mov rcx, qword [rbp + rcx + 8]
add rcx, rax
cmp rcx, r10
je 0x1400f3be0
mov rdx, r15
shl rdx, 4
mov r8, qword [rdx + rbp - 0x20]
cmp r8, rax
jbe 0x1400f3be0
cmp r15, 2
je 0x1400f3dda
lea rsi, [r15 - 3]
mov rcx, rsi
shl rcx, 4
mov rcx, qword [rbp + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x1400f3bf6
cmp r15, 3
jbe 0x1400f3de5
add r8, rcx
cmp qword [rdx + rbp - 0x40], r8
jbe 0x1400f3bf6
jmp 0x1400f3826
cmp r15, 2
je 0x1400f3bfb
lea rsi, [r15 - 3]
mov rcx, rsi
shl rcx, 4
mov rcx, qword [rbp + rcx]
cmp rcx, rax
jb 0x1400f3bff
lea rsi, [r15 - 2]
cmp rsi, r15
jae 0x1400f3f36
lea rbx, [rsi + 1]
cmp rbx, r15
jae 0x1400f3f36
mov r12, r15
mov r13, rsi
shl r13, 4
mov rcx, qword [rbp + r13 + 8]
shl rbx, 4
mov rax, qword [rbp + rbx]
mov rdi, qword [rbp + rbx + 8]
add rdi, rax
mov r15, rdi
sub r15, rcx
jb 0x1400f3f36
mov qword [rsp + 0x88], rsi
cmp rdi, r10
ja 0x1400f3f36
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x80], r11
add r13, rbp
mov rdx, qword [r13]
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x78], rcx
lea rsi, [rax + rcx*8]
lea rbp, [rsi + rdx*8]
mov r14, r15
sub r14, rdx
cmp r14, rdx
mov qword [rsp + 0x28], rdx
jae 0x1400f3d40
lea r8, [r14*8]
mov r15, qword [rsp + 0x20]
mov rcx, r15
mov rdx, rbp
call sub.msvcrt.dll_memcpy
lea r8, [r15 + r14*8]
cmp qword [rsp + 0x28], 0
jle 0x1400f3af0
test r14, r14
jle 0x1400f3af0
mov rax, qword [rsp + 0x50]
lea rax, [rax + rdi*8]
mov r14, qword [rsp + 0x20]
jmp 0x1400f3d12
mov ecx, dword [r8 - 4]
sete dl
cmp ecx, dword [rbp - 4]
setb cl
and cl, dl
movzx ecx, cl
lea rdx, [rcx*8]
sub rbp, rdx
lea r8, [r8 + rcx*8]
add r8, 0xfffffffffffffff8
test cl, cl
mov rcx, r8
cmovne rcx, rbp
mov rcx, qword [rcx]
mov qword [rax], rcx
cmp rbp, rsi
jbe 0x1400f3d2d
add rax, 0xfffffffffffffff8
cmp r8, r14
jbe 0x1400f3d2d
mov ecx, dword [rbp - 8]
cmp dword [r8 - 8], ecx
jae 0x1400f3cd0
add rbp, 0xfffffffffffffff8
mov rcx, rbp
mov rcx, qword [rcx]
mov qword [rax], rcx
cmp rbp, rsi
ja 0x1400f3d09
mov rsi, rbp
jmp 0x1400f3af8
lea r8, [rdx*8]
mov r14, qword [rsp + 0x20]
mov rcx, r14
mov rdx, rsi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x28]
lea r8, [r14 + rax*8]
test rax, rax
jle 0x1400f3af8
cmp r15, rax
jle 0x1400f3af8
mov rax, qword [rsp + 0x30]
lea rax, [rax + rdi*8]
mov rdx, r14
nop
mov r10d, dword [rdx]
mov cl, 1
mov r9, rbp
cmp dword [rbp], r10d
jb 0x1400f3da6
mov ecx, dword [rbp + 4]
sete r10b
cmp ecx, dword [rdx + 4]
setb cl
mov r9, rbp
and cl, r10b
jne 0x1400f3da6
mov r9, rdx
mov r9, qword [r9]
mov qword [rsi], r9
add rsi, 8
mov r9d, ecx
xor r9b, 1
movzx r9d, r9b
lea rdx, [rdx + r9*8]
cmp rdx, r8
jae 0x1400f3afb
movzx ecx, cl
lea rbp, [rbp + rcx*8]
cmp rbp, rax
jb 0x1400f3d80
jmp 0x1400f3afb
mov r15d, 2
jmp 0x1400f3826
mov r15d, 3
jmp 0x1400f3826
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, rbp
mov rsi, r10
call fcn.1401cdfe4
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, r14
call fcn.1401cdfe4
mov rdx, rsi
mov r11, qword [rsp + 0x38]
test rdx, rdx
je 0x1400f3f36
mov rsi, qword [r11 + 0x10]
xor eax, eax
jmp 0x1400f3e4a
movlps qword [rcx + rsi*8], xmm6
inc rsi
mov qword [r11 + 0x10], rsi
mov rax, rdi
mov rdx, r14
cmp r14, rdi
je 0x1400f3ef3
lea rdi, [rax + 1]
mov r14, rdx
cmp rsi, rdx
jbe 0x1400f3e8c
mov rcx, qword [r11 + 8]
mov r9d, dword [rcx + rsi*8 - 8]
mov edx, dword [rcx + rax*8]
cmp r9d, edx
mov r11d, edx
cmova r11d, r9d
mov r10d, dword [rcx + rsi*8 - 4]
mov r8d, dword [rcx + rdi*8 - 4]
cmp r10d, r8d
mov ebx, r8d
cmovb ebx, r10d
inc ebx
cmp r11d, ebx
mov r11, qword [rsp + 0x38]
jbe 0x1400f3ec0
cmp rax, rsi
jae 0x1400f3f36
mov rcx, qword [r11 + 8]
movsd xmm6, qword [rcx + rax*8]
cmp rsi, qword [r11]
jne 0x1400f3e30
mov rcx, r11
call fcn.14006bbb0
mov r11, qword [rsp + 0x38]
mov rcx, qword [r11 + 8]
mov rsi, qword [r11 + 0x10]
jmp 0x1400f3e30
cmp r9d, edx
cmovb edx, r9d
cmp r10d, r8d
cmova r8d, r10d
cmp edx, r8d
mov eax, r8d
cmova r8d, edx
cmovb eax, edx
mov dword [rcx + rsi*8 - 8], eax
mov dword [rcx + rsi*8 - 4], r8d
mov rax, rdi
mov rdx, r14
cmp r14, rdi
jne 0x1400f3e4a
sub rsi, rdx
jb 0x1400f3f36
mov qword [r11 + 0x10], 0
je 0x1400f3f1a
lea rdx, [rcx + r14*8]
lea r8, [rsi*8]
mov rdi, r11
call sub.msvcrt.dll_memmove
mov qword [rdi + 0x10], rsi
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2