Function at 0x1401fbef0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rbp, r8
mov r14, rdx
mov rsi, rcx
mov rax, qword [rcx + 0x10]
mov rcx, qword [rax + 0x20]
sub rcx, qword [rax + 0x18]
sar rcx, 3
movabs rdi, 0x2e8ba2e8ba2e8ba3
imul rcx, rdi
movabs r8, 0xffffffff00000000
xor r8, rcx
mov r9d, 0x6ca5fa62
nop word [rax + rax]
mov rbx, qword [0x140527188]
movsxd r12, dword [rbx]
mov edx, dword [0x140576110]
lea eax, [rdx - 1]
imul eax, edx
mov r10d, dword [0x140527d28]
add r10d, r9d
xor edx, edx
div r10d
test edx, edx
je 0x1401fbf7e
mov rax, qword [0x140527188]
mov eax, dword [rax]
cmp dword [0x140527d28], 0x935a05a0
jmp 0x1401fbf40
lea rax, [fcn.1401fbef0]
add eax, eax
add eax, 0x49e0
mov edx, eax
not edx
test edx, eax
nop word cs:[rax + rax]
mov eax, dword [0x140576110]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
mov eax, 0x6ca5fa60
add eax, dword [0x140527d28]
cmp edx, eax
jne 0x1401fbfa0
mov eax, dword [0x140440358]
test r8, rcx
je 0x1401fc45c
mov dword [rsp + 0x24], eax
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14013cbc3.0]
test al, al
je 0x1401fc469
mov qword [rsp + 0x28], r14
add r12, rbx
mov ecx, dword [0x140576110]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140527d28]
lea r8d, [rcx + 0x6ca5fa62]
xor edx, edx
div r8d
add ecx, 0x6ca5fa60
cmp edx, ecx
jne 0x1401fc03c
mov rax, qword [rsi + 0x10]
mov r14, qword [rax + 0x20]
sub r14, qword [rax + 0x18]
mov rcx, qword [rsi + 0x78]
mov r15, qword [rsi + 0x80]
mov eax, dword [0x140576114]
cmp eax, 0x51
jl 0x1401fc055
xor eax, eax
nop
test al, al
mov ecx, dword [0x140576110]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x1401fc040
jmp 0x1401fc01a
sar r14, 3
imul r14, rdi
mov r13, r15
sub r13, rcx
sar r13, 4
cmp r14, r13
mov qword [rsp + 0x30], rbp
jae 0x1401fc098
mov eax, 0x6ca5fa61
add eax, dword [0x140527d28]
lea rdx, [fcn.1401fbef0]
add edx, edx
add edx, 0x2b80
test edx, eax
jne 0x1401fc309
jmp 0x1401fc2e9
lea r9, [rsi + 0x78]
nop dword [rax]
mov eax, dword [0x140576114]
cmp eax, 0x3b
jg 0x1401fc0a0
mov rbp, r14
sub rbp, r13
jbe 0x1401fc3ea
mov r11d, dword [0x140527180]
mov eax, r11d
neg eax
mov r8d, 1
sub r8d, eax
xor r11d, r8d
not r11d
and r11d, r8d
nop word cs:[rax + rax]
mov eax, dword [0x140576114]
cmp eax, 0x1a
jg 0x1401fc118
mov dword [0x140527180], r8d
mov ebx, dword [0x140527d28]
mov eax, dword [0x140576114]
mov edx, ebx
xor edx, 0x6ca5fa6d
mov r10d, ebx
and r10d, 0x6ca5fa6d
lea edx, [rdx + r10*2]
cmp eax, edx
jl 0x1401fc15c
mov edx, dword [0x140527d28]
mov dword [0x140527180], 0
mov r10d, dword [0x140576110]
mov eax, r10d
sub eax, edx
add eax, 0x935a059f
imul eax, r10d
mov r10d, edx
xor r10d, 0x6ca5fa62
and edx, 0x6ca5fa62
lea r10d, [r10 + rdx*2]
xor edx, edx
div r10d
test edx, edx
jne 0x1401fc0e0
jmp 0x1401fc0eb
add ebx, 0x6ca5fa60
cmp r11d, ebx
je 0x1401fc16b
xor edi, edi
jmp 0x1401fc1ac
xor eax, eax
mov edi, 0
mov r10d, dword [rsp + 0x24]
test r10d, r10d
jle 0x1401fc1ac
xor edx, edx
nop
cdqe
movzx r8d, word [r12 + rax]
mov edi, r8d
xor edi, r8d
not edi
and edi, edx
xor edi, r8d
neg eax
mov edx, eax
xor edx, 0xfffffffe
and eax, 0x7ffffffe
lea eax, [rdx + rax*2]
neg eax
mov edx, edi
cmp eax, r10d
jl 0x1401fc180
mov eax, dword [0x140576110]
mov eax, dword [0x140527d28]
lea edx, [rax + 0x6ca5fa61]
lea r8, [fcn.1401fbef0]
add r8d, r8d
add r8d, 0x2b20
mov r10d, r8d
xor r10d, edx
not edx
not r8d
and r8d, edx
or r8d, r10d
not r8d
mov edx, eax
xor edx, 0x6ca5fa60
and eax, 0x6ca5fa60
lea eax, [rdx + rax*2]
cmp r8d, eax
mov rax, qword [rsi + 0x88]
sub rax, rcx
mov ecx, dword [0x140527d30]
mov edx, ecx
xor edx, 0xa7
and ecx, 0x27
lea ecx, [rdx + rcx*2]
sar rax, cl
cmp rax, r14
jae 0x1401fc282
lea r8, [rsp + 0x20]
mov rcx, r9
mov rdx, r14
mov ebp, r11d
call fcn.1401fcb50
mov r10d, ebp
movzx eax, word [0x14044035c]
nop dword [rax]
mov ecx, dword [0x140576110]
mov edx, dword [0x140527d28]
add edx, ecx
inc edx
imul edx, ecx
test dl, 1
jne 0x1401fc275
xor ecx, ecx
cmp r10d, ebx
setne dl
mov r8d, dword [0x140576110]
lea r9d, [r8 + 1]
imul r9d, r8d
test r9b, 1
je 0x1401fc2ac
mov ecx, dword [0x140576114]
cmp ecx, 0x48
jge 0x1401fc240
jmp 0x1401fc258
mov eax, dword [0x140576114]
mov ecx, dword [0x140527d28]
mov edx, ecx
xor edx, 0x6ca5fab3
and ecx, 0x6ca5fab3
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jge 0x1401fc375
jmp 0x1401fc33d
mov cl, dl
or ecx, 0xd99a
mov edx, dword [0x140527d28]
lea r8d, [rdx + 0x6ca5fa61]
lea r9, [fcn.1401fbef0]
add r9d, r9d
add r9d, 0x4320
and r9d, r8d
add edx, 0x6ca5fa60
cmp r9d, edx
jne 0x1401fc516
jmp 0x1401fc4bd
mov rax, r14
shl rax, 4
add rax, rcx
mov qword [rsi + 0x80], rax
mov eax, dword [0x140576114]
cmp eax, 0x5d
jl 0x1401fc3ea
mov rax, r14
shl rax, 4
add rax, rcx
nop word cs:[rax + rax]
mov qword [rsi + 0x80], rax
mov edx, dword [0x140576110]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x1401fc320
jmp 0x1401fc2e9
mov eax, dword [0x140527d30]
mov ecx, eax
xor ecx, 0xa7
and eax, 0x27
lea ecx, [rcx + rax*2]
mov r12, rbp
shl r12, cl
xor edi, edi
mov rcx, r15
xor edx, edx
mov r8, r12
call fcn.14041da70
add r12, r15
mov qword [rsi + 0x80], r12
test dil, dil
je 0x1401fc3ea
mov rax, rbp
imul rax, r13
mov rcx, r14
sub rcx, rax
imul rcx, rax
neg rcx
lea rax, [r14 + rcx]
add rax, 0xfffffffffffffffc
movabs rcx, 0xe1cfc87e417080a7
add rcx, qword [0x140527d30]
imul rcx, rax
shl rcx, 2
mov eax, 0x14
sub rax, rcx
sub rcx, rax
add rcx, 0xfffffffffffffff0
imul rcx, rax
mov r12, rax
sub r12, rcx
mov ecx, r12d
sub ecx, eax
imul ecx, eax
shl r12, cl
mov rcx, r15
xor edx, edx
mov r8, r12
call fcn.14041da70
add r12, r15
mov qword [rsi + 0x80], r12
jmp 0x1401fc33d
mov rax, qword [rsi + 0x78]
mov rcx, qword [rsi + 0x80]
cmp rax, rcx
mov rdi, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
je 0x1401fc41f
add rax, 0x10
movups xmm0, xmmword [0x140440340]
nop
movups xmmword [rax - 0x10], xmm0
cmp rax, rcx
je 0x1401fc41f
add rax, 0x10
jmp 0x1401fc410
mov rax, qword [0x140576118]
add rax, qword [rsi + 0x78]
mov qword [rdx], rax
mov rcx, qword [rsi]
mov r9d, dword [0x140527d28]
lea edx, [r9 - 0xd22e90c]
lea r8d, [r9 + 0x2f4916fe]
add r9d, 0xc1d9412a
call fcn.1401fee20
test al, al
je 0x1401fc469
mov qword [0x140576108], rdi
mov eax, dword [0x140576114]
cmp eax, 0x2c
jg 0x1401fc490
jmp 0x1401fc46d
xor eax, eax
jmp 0x1401fc4ac
mov byte [rsi + 0x98], 1
mov eax, dword [0x140576114]
mov ecx, 0x6ca5fa6d
add ecx, dword [0x140527d28]
cmp eax, ecx
jl 0x1401fc4aa
nop dword [rax]
mov byte [rsi + 0x98], 1
mov eax, dword [0x140576110]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401fc490
jmp 0x1401fc46d
mov al, 1
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movsx edx, cx
add edx, 0x2665
nop word cs:[rax + rax]
mov r8d, dword [0x140576114]
cmp r8d, 0x24
jg 0x1401fc4f2
mov r8d, dword [0x140576110]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x1401fc501
mov r8d, dword [0x140576114]
cmp r8d, 0x2e
jge 0x1401fc4d0
jmp 0x1401fc4dd
mov r8d, dword [0x140576110]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x1401fc521
mov edx, dword [0x140576114]
cmp edx, 0x4f
jmp 0x1401fc4bd
mov ecx, dword [0x140576110]
lea r8d, [rcx - 1]
imul r8d, ecx
test r8b, 1
nop word cs:[rax + rax]
mov ecx, dword [0x140576110]
lea r8d, [rcx - 1]
imul r8d, ecx
test r8b, 1
jne 0x1401fc540
mov ecx, dword [0x140576110]
sub eax, edi
mov ecx, eax
xor ecx, edx
or eax, edx
not eax
or eax, ecx
mov ecx, 0x6ca5fabe
jmp 0x1401fc584
mov edx, dword [0x140576110]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x1401fc5c7
cmp dword [0x140527d28], 0x935a05a0
jne 0x1401fc5b0
mov edx, dword [0x140576110]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x1401fc570
nop word cs:[rax + rax]
mov edx, dword [0x140576114]
mov r8d, dword [0x140527d28]
add r8d, ecx
cmp edx, r8d
jge 0x1401fc5b0
jmp 0x1401fc590
not eax
movzx eax, ax
mov rcx, qword [0x140576118]
nop word cs:[rax + rax]
mov edx, dword [0x140576114]
cmp edx, 0xa
jle 0x1401fc5ff
mov edx, dword [0x140576110]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x1401fc5e0
mov rdx, rcx
xor rdx, rax
not rcx
not rax
and rax, rcx
or rax, rdx
not rax
lea rax, [rdx + rax*2]
mov ecx, 0x6ca5fa94
mov edx, 0x6ca5faa4
mov r8b, 1
nop word cs:[rax + rax]
mov r9d, dword [0x140576110]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
jne 0x1401fc670
mov qword [0x140576118], rax
mov r9d, dword [0x140576110]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
je 0x1401fc3ea
nop word cs:[rax + rax]
mov r9d, dword [0x140576114]
mov r10d, dword [0x140527d28]
add r10d, ecx
cmp r9d, r10d
jl 0x1401fc692
mov qword [0x140576118], rax
test r8b, r8b
je 0x1401fc670
mov qword [0x140576118], rax
mov r9d, dword [0x140576114]
mov r10d, dword [0x140527d28]
add r10d, edx
cmp r9d, r10d
jge 0x1401fc686
mov r9d, dword [0x140576114]
cmp r9d, 0x32
jge 0x1401fc630
jmp 0x1401fc645