Function at 0x1400175f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
mov rax, r8
mov rdi, rdx
mov rbx, rcx
mov qword [rsp + 0x20], r9
lea rcx, [rsp + 0x90]
mov rdx, rbx
mov r8, rdi
mov r9, rax
call fcn.140038980
mov rdx, qword [rsp + 0xe0]
mov r8, qword [rsp + 0x98]
cmp r8, rdx
sete r9b
cmp qword [rsp + 0x90], 0
mov rcx, qword [rsp + 0xd8]
je 0x140017925
mov rbp, qword [rsp + 0xb8]
mov r11, rdi
cmp rbp, rdx
je 0x140017a67
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], rdi
mov rax, qword [rsp + 0xf0]
lea r9, [rax - 1]
mov qword [rsp + 0x48], r9
mov r9, qword [rsp + 0xb0]
mov qword [rsp + 0x68], r9
mov r12, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0xc8]
mov r10, qword [rsp + 0xa8]
mov r11, rax
mov r9, r10
mov qword [rsp + 0x88], r10
sub r11, r10
mov qword [rsp + 0x78], r11
lea r9, [r8 - 1]
mov qword [rsp + 0x70], r9
cmp r9, rax
setb byte [rsp + 0x37]
mov r9, rbp
sub r9, r8
mov qword [rsp + 0x60], r9
lea r13, [rcx + rbp]
lea rdi, [rcx + r8]
lea rsi, [r12 + r8]
lea r9, [r12 + r8]
dec r9
mov qword [rsp + 0x80], r9
lea r9, [r8 + rbp]
dec r9
mov qword [rsp + 0x50], r9
mov r11, rbp
mov r9, qword [rsp + 0x48]
add r9, rbp
cmp r9, rdx
jae 0x140017a2b
mov r10, qword [rsp + 0x88]
add r10, r11
mov qword [rsp + 0x58], r10
lea rbp, [r11 + rax]
cmp rbx, 0xffffffffffffffff
je 0x140017810
mov r15, r11
jmp 0x140017756
xor ebx, ebx
mov r15, rbp
mov r9, qword [rsp + 0x48]
add r9, r15
cmp r9, rdx
jae 0x140017a2b
cmp r11, r15
jne 0x140017a2b
movzx r9d, byte [rcx + r9]
mov r10, qword [rsp + 0x68]
bt r10, r9
jae 0x140017740
cmp r8, rbx
mov r9, rbx
cmova r9, r8
mov r10, r9
nop dword [rax]
cmp r10, rax
jae 0x1400177b0
lea r14, [r11 + r10]
cmp r14, rdx
jae 0x140017aa3
lea r15, [r10 + 1]
movzx r14d, byte [r12 + r10]
cmp r14b, byte [r13 + r10]
mov r10, r15
je 0x140017780
add r15, qword [rsp + 0x60]
xor ebx, ebx
jmp 0x140017745
mov r10, r8
nop word cs:[rax + rax]
cmp rbx, r10
jae 0x140017800
dec r10
cmp r10, rax
jae 0x140017913
lea r9, [r10 + r11]
cmp r9, rdx
jae 0x140017a91
movzx r14d, byte [r12 + r10]
cmp r14b, byte [rcx + r9]
je 0x1400177c0
mov rbx, qword [rsp + 0x78]
mov r15, qword [rsp + 0x58]
jmp 0x140017745
xor ebx, ebx
jmp 0x1400178e7
mov r10, r11
jmp 0x140017831
mov r10, qword [rsp + 0x58]
nop word [rax + rax]
mov r9, qword [rsp + 0x48]
add r9, r10
cmp r9, rdx
jae 0x140017a2b
cmp r11, r10
jne 0x140017a2b
movzx r9d, byte [rcx + r9]
mov r10, qword [rsp + 0x68]
bt r10, r9
mov r10, rbp
jae 0x140017820
xor r9d, r9d
mov rbx, r11
nop word cs:[rax + rax]
lea r10, [r8 + r9]
cmp r10, rax
jae 0x140017890
lea r10, [r8 + rbx]
cmp r10, rdx
jae 0x140017aa0
movzx r14d, byte [rsi + r9]
lea r10, [rbx + 1]
inc r9
cmp r14b, byte [rdi + rbx]
mov rbx, r10
je 0x140017860
jmp 0x140017820
test byte [rsp + 0x37], 1
je 0x140017902
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x80]
mov rbx, r8
nop word [rax + rax]
sub rbx, 1
jb 0x1400178e0
cmp r9, rdx
jae 0x140017a91
movzx r15d, byte [r10]
dec r10
lea r14, [r9 - 1]
cmp r15b, byte [rcx + r9]
mov r9, r14
je 0x1400178b0
jmp 0x140017815
mov rbx, 0xffffffffffffffff
add qword [rsp + 0x60], rax
add r13, rax
add qword [rsp + 0x50], rax
cmp rbp, rdx
jne 0x140017702
jmp 0x140017a87
mov rbx, 0xffffffffffffffff
test r8, r8
je 0x1400178e7
mov r10, qword [rsp + 0x70]
lea r8, [0x1400f3418]
mov rcx, r10
mov rdx, rax
call fcn.1400a6890
cmp byte [rsp + 0xaa], 0
mov r11, rdi
jne 0x140017a67
movzx eax, byte [rsp + 0xa8]
test r9b, 1
je 0x1400179a0
test r8, r8
je 0x140017a47
cmp r8, rdx
jae 0x140017a56
cmp byte [rcx + r8], 0xc0
jl 0x140017abc
mov r11, rdi
test al, al
je 0x140017a67
nop dword [rax]
xor al, 1
jne 0x140017970
jmp 0x140017a64
movzx r10d, byte [rcx + r8]
test r10b, r10b
js 0x1400179c2
movzx r9d, r10b
mov r10d, eax
xor r10b, 1
test al, al
mov eax, r10d
je 0x140017a37
test r8, r8
je 0x140017980
cmp r8, rdx
jae 0x140017abc
movzx r10d, byte [rcx + r8]
cmp r10b, 0xbf
jle 0x140017abc
test r10b, r10b
jns 0x14001798a
mov r9d, r10d
and r9b, 0x1f
movzx r9d, r9b
movzx esi, byte [rcx + r8 + 1]
and esi, 0x3f
cmp r10b, 0xe0
jb 0x140017a13
movzx r11d, byte [rcx + r8 + 2]
shl esi, 6
and r11d, 0x3f
or r11d, esi
cmp r10b, 0xf0
jb 0x140017a1f
movzx r10d, byte [rcx + r8 + 3]
and r9d, 7
shl r9d, 0x12
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
or r9d, r10d
jmp 0x14001798e
shl r9d, 6
or r9d, esi
jmp 0x14001798e
shl r9d, 0xc
or r9d, r11d
jmp 0x14001798e
mov rdi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x38]
jmp 0x140017a67
cmp r9d, 0x110000
cmove r8, rdi
mov r11, r8
jmp 0x140017a67
mov r11, rdi
test al, al
je 0x140017a67
nop
xor al, 1
jne 0x140017a50
jmp 0x140017a64
mov r11, rdi
test al, al
je 0x140017a67
nop dword [rax]
xor al, 1
jne 0x140017a60
mov r11, rdi
add rbx, r11
sub rdi, r11
mov rax, rbx
mov rdx, rdi
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rsp + 0x40]
mov r11, rdi
jmp 0x140017a30
lea r8, [0x1400f3430]
mov rcx, r9
call fcn.1400a6890
mov r9, r8
add r9, r11
cmp rdx, r9
cmova r9, rdx
lea r8, [0x1400f3448]
mov rcx, r9
call fcn.1400a6890
lea rax, [0x1400f3488]
mov qword [rsp + 0x20], rax
mov r9, rdx
call fcn.1400a6c70
int3