Function at 0x140197600
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x60]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
cmp qword [0x1404f13b8], 0
jne 0x140197650
mov ecx, 0x900
mov edx, 0x9c16a8f0
call fcn.140084df0
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.14006eb40
mov rax, qword [rbp - 8]
mov qword [0x1404f13b8], rax
mov rbx, qword [0x1404f13b8]
mov rax, qword [rbx + 0x5e0]
lea rdx, [rsi + 0x2d0]
mov rcx, qword [rsi + 0x18]
call qword [case.0x14014757d.0]
cmp qword [rsi + 0x2d0], 0
je 0x14019771e
mov r13, qword [0x1404a2090]
nop word cs:[rax + rax]
movsxd r15, dword [r13]
mov eax, dword [0x1404eeb9c]
cmp eax, 0x13
jle 0x1401976a5
mov eax, dword [r13]
jmp 0x140197690
mov r12d, dword [0x1403bf790]
mov rax, qword [rbx + 0x5c8]
lea r8, [rsi + 0x2e0]
mov rcx, qword [rsi + 0x18]
xor edi, edi
xor edx, edx
xor r9d, r9d
call qword [case.0x14014757d.0]
mov rax, qword [0x1404eebb8]
add rax, qword [rsi + 0x2e0]
jne 0x1401979d1
mov dword [rbp - 0x10], 0
mov eax, dword [rsi + 0x2f8]
mov ecx, eax
not ecx
xor eax, 4
and ecx, 0xfffffffb
or ecx, eax
cmp ecx, 0xffffffff
je 0x140197725
mov rax, qword [rsi + 0x2d0]
cmp rax, 0x1000
cdqe
mov edx, 0x1000
cmovl rdx, rax
lea rcx, [rsi + 0xa8]
jmp 0x140197732
xor edi, edi
jmp 0x1401979d1
lea rcx, [rsi + 0xa8]
mov edx, dword [rsi + 0x2d0]
call fcn.1401531c0
mov r8, qword [rsi + 0x2d0]
lea rax, [r8 + 0xfff]
add r8, 0x1ffe
test rax, rax
cmovns r8, rax
sar r8, 0xc
cmp qword [rsi + 0x100], r8
jae 0x1401977cd
lea rcx, [rsi + 0xe8]
mov r14, qword [rsi + 0xf8]
test r14, r14
je 0x1401977d6
mov rdi, qword [rsi + 0xf0]
xorps xmm0, xmm0
movups xmmword [rsi + 0xf0], xmm0
mov qword [rsi + 0x100], 0
mov byte [rsi + 0x108], 1
xor edx, edx
call fcn.1401a0400
test rdi, rdi
je 0x1401977dd
lea rax, [rsi + 0xf0]
mov rcx, qword [rax]
mov r8, r14
shl r8, 4
add r8, r14
mov rdx, rdi
call fcn.14039e2f0
mov rcx, rdi
mov edx, 0x8706179b
call fcn.140084c10
jmp 0x1401977dd
mov qword [rsi + 0xf8], r8
jmp 0x1401977dd
xor edx, edx
call fcn.1401a0400
mov rcx, qword [rsi + 0x18]
mov rdx, qword [rsi + 0xb8]
cmp rdx, 0x1000
mov r8d, 0x1000
cmovb r8, rdx
mov rax, qword [rbx + 0x5b8]
test rdx, rdx
je 0x14019780c
mov rdx, qword [rsi + 0xb0]
mov qword [rsp + 0x20], 0
lea r9, [rbp - 0x10]
call qword [case.0x14014757d.0]
test eax, eax
setne dil
je 0x140197836
mov rax, qword [rsi + 0xf0]
mov byte [rax], 1
jmp 0x1401979d1
or byte [rsi + 0x10], 0x20
lea rax, [rsi + 0x308]
cmp qword [rsi + 0x320], 0x10
mov qword [rbp - 8], rax
jb 0x140197856
mov rax, qword [rsi + 0x308]
mov qword [rsi + 0x318], 0
mov byte [rax], 0
lea r14, [rbp - 0x30]
mov ebx, dword [0x1404a2074]
mov eax, ebx
xor eax, 1
mov ecx, ebx
and ecx, 1
lea eax, [rax + rcx*2]
mov dword [0x1404a2074], eax
mov dword [rbp - 0xc], eax
test ebx, eax
jne 0x1401978b5
add r15, r13
nop dword [rax + rax]
mov eax, dword [0x1404eeb9c]
cmp eax, 0x1d
jle 0x1401978ac
mov eax, dword [0x1404eeb98]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jmp 0x140197890
test r12d, r12d
jg 0x1401979e4
xor r13d, r13d
mov qword [rbp - 0x20], 0
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], 0
mov dword [rsp + 0x20], 0xfd0a29c1
mov ecx, 1
xor edx, edx
mov r8d, 1
mov r9d, 1
call fcn.1401a3d30
mov edx, 0x2f
mov rcx, r14
mov r9, rax
call fcn.140072260
lea rax, [0x1403b9448]
mov qword [rbp - 0x38], rax
mov r8, qword [rbp - 0x20]
cmp qword [rbp - 0x18], 0x10
jb 0x140197916
mov r14, qword [rbp - 0x30]
mov rcx, qword [rsi + 0x318]
mov rax, qword [rsi + 0x320]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
mov r12, qword [rbp - 8]
jae 0x140197948
mov qword [rsp + 0x20], r8
mov rcx, r12
mov rdx, r8
mov r9, r14
call fcn.1400729a0
jmp 0x140197970
lea r15, [rcx + r8]
mov qword [rsi + 0x318], r15
cmp rax, 0x10
jb 0x140197960
mov r12, qword [rsi + 0x308]
add rcx, r12
mov rdx, r14
call fcn.14039e2f0
mov byte [r12 + r15], 0
mov rax, qword [rbp - 0x18]
cmp rax, 0x10
jb 0x1401979d1
mov rcx, qword [rbp - 0x30]
movzx edx, byte [0x1403bf7ac]
and ebx, dword [rbp - 0xc]
xor r8d, r8d
cmp ebx, 1
sbb r8d, r8d
sub dl, r13b
and dl, r8b
add byte [0x1404eebc8], dl
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1401979cc
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x140197a01
sub rax, qword [0x1404eebc0]
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140084c10
mov eax, edi
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor eax, eax
xor r13d, r13d
nop dword [rax]
xor r13b, byte [r15 + rax]
inc rax
cmp eax, r12d
jl 0x1401979f0
jmp 0x1401978b8
call fcn.140356a3c
int3