Function at 0x1401fa280
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x40], xmm6
mov qword [rbp + 0x38], 0xfffffffffffffffe
mov edi, r8d
mov r15, rdx
mov r13, rcx
mov rsi, qword [rdx + 0x18]
cmp qword [rdx + 0x20], 0x10
jb 0x1401fa2c1
mov r15, qword [r15 + 8]
jmp 0x1401fa2c5
add r15, 8
lea r14, [rbp - 0x58]
cmp rsi, 0xf
ja 0x1401fa2df
movups xmm0, xmmword [r15]
movups xmmword [r14], xmm0
mov r12d, 0xf
jmp 0x1401fa33f
mov r12, rsi
or r12, 0xf
movabs rax, 0x7fffffffffffffff
cmp r12, rax
cmovae r12, rax
cmp r12, 0xfff
jb 0x1401fa31d
lea rcx, [r12 + 0x28]
mov edx, 0x3d0e5be4
call fcn.1400a24b0
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x1401fa32f
lea rcx, [r12 + 1]
mov edx, 0x3d0e5be4
call fcn.1400a24b0
mov rcx, rax
mov qword [rbp - 0x58], rcx
lea r8, [rsi + 1]
mov rdx, r15
call fcn.140335e20
mov qword [rbp - 0x48], rsi
mov qword [rbp - 0x40], r12
lea rbx, [0x14034fe38]
mov qword [rbp - 0x60], rbx
mov byte [rbp - 0x38], dil
lea rcx, [rbp - 0x30]
call fcn.1401fad40
mov rcx, qword [rbp - 0x30]
mov r15, qword [rcx + 8]
mov rax, qword [rcx + 0x10]
cmp r15, rax
mov qword [rbp + 0x28], rcx
mov qword [rbp], r13
je 0x1401fa3b3
xorps xmm0, xmm0
movups xmmword [r15 + 0x18], xmm0
mov r13, r12
cmp r12, 0x10
jb 0x1401fa38d
mov r14, qword [rbp - 0x58]
mov rbx, r14
mov r14d, edi
lea r12, [r15 + 8]
cmp rsi, 0xf
ja 0x1401fa46d
movups xmm0, xmmword [rbx]
movups xmmword [r12], xmm0
mov edi, 0xf
jmp 0x1401fa585
mov byte [rbp + 0x18], dil
mov rcx, qword [rcx]
mov rdi, r15
sub rdi, rcx
sar rdi, 4
movabs rdx, 0xaaaaaaaaaaaaaaab
imul rdi, rdx
lea r10, [rdi + 1]
sub rax, rcx
sar rax, 4
imul rax, rdx
mov r8, rax
shr r8, 1
movabs rdx, 0x555555555555555
mov rcx, rdx
sub rcx, r8
add r8, rax
cmp r8, r10
mov r9, r10
mov qword [rbp - 0x10], r10
cmovbe r8, r10
cmp rax, rcx
cmova r8, rdx
movabs rax, 0x555555555555556
cmp r8, rax
jae 0x1401fa97f
mov rax, r8
shl rax, 4
lea rcx, [rax + rax*2]
cmp r8, 0x56
mov rax, r8
mov qword [rbp + 8], r8
jb 0x1401fa4b5
cmp r8, rdx
jae 0x1401fa989
add rcx, 0x27
call fcn.14030debc
mov rcx, rax
add rcx, 0x27
mov r8d, ecx
not r8d
xor rcx, 0xffffffffffffffe0
and r8d, 0x1f
or r8, rcx
not r8
mov qword [r8 - 8], rax
jmp 0x1401fa4c6
mov rdi, rsi
or rdi, 0xf
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
cmovae rdi, rax
cmp rdi, 0xfff
jb 0x1401fa569
lea rcx, [rdi + 0x28]
call fcn.14030debc
mov rdx, rax
add rdx, 0x27
mov rcx, rdx
xor rcx, 0x1f
and rcx, rdx
mov qword [rcx - 8], rax
jmp 0x1401fa575
test r8, r8
je 0x1401fa972
call fcn.14030debc
mov r8, rax
lea rbx, [0x14034fe38]
lea rdi, [rdi + rdi*2]
shl rdi, 4
xorps xmm0, xmm0
movups xmmword [r8 + rdi + 0x18], xmm0
cmp r12, 0x10
jb 0x1401fa4e8
mov r14, qword [rbp - 0x58]
mov qword [rbp - 0x18], r12
lea rdx, [r8 + rdi]
add rdx, 0x30
cmp rsi, 0xf
mov r13, qword [rbp + 0x28]
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x10], rdx
ja 0x1401fa519
movups xmm0, xmmword [r14]
movups xmmword [rdx - 0x28], xmm0
mov r12d, 0xf
jmp 0x1401fa5e4
mov rbx, r14
mov r12, rsi
or r12, 0xf
movabs rax, 0x7fffffffffffffff
cmp r12, rax
cmovae r12, rax
cmp r12, 0xfff
jb 0x1401fa5b0
lea rcx, [r12 + 0x28]
mov qword [rbp + 0x20], rdx
call fcn.14030debc
mov rdx, rax
add rdx, 0x27
mov ecx, edx
not ecx
xor rdx, 0xffffffffffffffe0
and ecx, 0x1f
or rcx, rdx
not rcx
mov qword [rcx - 8], rax
jmp 0x1401fa5c1
lea rcx, [rdi + 1]
call fcn.14030debc
mov rcx, rax
mov qword [r12], rcx
lea r8, [rsi + 1]
mov rdx, rbx
call fcn.140335e20
mov qword [r15 + 0x18], rsi
mov qword [r15 + 0x20], rdi
lea rax, [0x14034fe38]
mov qword [r15], rax
mov byte [r15 + 0x28], r14b
mov rax, qword [rbp + 0x28]
add qword [rax + 8], 0x30
mov r15, r13
mov r12, qword [rbp]
jmp 0x1401fa7c7
lea rcx, [r12 + 1]
mov qword [rbp + 0x20], rdx
call fcn.14030debc
mov rcx, rax
mov rax, qword [rbp + 0x10]
mov qword [rax - 0x28], rcx
lea r8, [rsi + 1]
mov rdx, rbx
call fcn.140335e20
mov r13, qword [rbp + 0x28]
mov r8, qword [rbp + 0x30]
lea rbx, [0x14034fe38]
lea rcx, [r8 + rdi]
mov qword [rcx + 0x18], rsi
mov qword [rcx + 0x20], r12
mov qword [rcx], rbx
movzx eax, byte [rbp + 0x18]
mov byte [r8 + rdi + 0x28], al
mov rbx, qword [r13]
mov rsi, qword [r13 + 8]
cmp rsi, r15
je 0x1401fa849
mov qword [rbp + 0x20], rcx
mov rcx, rbx
mov rdx, r15
call fcn.1401fbb60
mov rax, qword [rbp + 0x28]
mov rdx, qword [rax + 8]
mov rax, qword [rbp + 0x30]
mov qword [rbp + 0x20], rax
mov rcx, r15
mov r8, qword [rbp + 0x10]
call fcn.1401fbb60
mov r13, qword [rbp + 0x28]
mov rbx, qword [r13]
mov r8, qword [rbp + 0x30]
test rbx, rbx
mov r15, qword [rbp - 0x18]
mov r12, qword [rbp]
je 0x1401fa79d
mov rsi, qword [r13 + 8]
movsxd rdi, dword [0x1403616c0]
mov r14d, dword [0x1403616b0]
cmp rbx, rsi
je 0x1401fa764
lea rax, [0x1403616c0]
add rdi, rax
jmp 0x1401fa6b0
add r9, 0x28
mov rdx, r9
mov rcx, r11
call fcn.1400a22e0
mov qword [rbx + 0x18], 0
mov qword [rbx + 0x20], 0xf
mov byte [rbx + 8], 0
add rbx, 0x30
cmp rbx, rsi
je 0x1401fa764
mov eax, dword [0x140441c00]
lea r8d, [rax + 1]
mov dword [0x140441c00], r8d
test eax, r8d
jne 0x1401fa6cb
test r14d, r14d
jg 0x1401fa73e
xor r10d, r10d
mov r9, qword [rbx + 0x20]
cmp byte [0x140477668], 0
jne 0x1401fa6e1
cmp r9, 0xf
jbe 0x1401fa68f
mov rcx, qword [rbx + 8]
lea rdx, [r9 + 1]
cmp rdx, 0x1000
jb 0x1401fa68a
mov r11, qword [rcx - 8]
mov rdx, qword [0x1403616c8]
and eax, r8d
cmp eax, 1
mov eax, 0
sbb rax, rax
sub rdx, r10
and rdx, rax
setne al
or al, byte [0x14047786c]
and al, 1
mov byte [0x14047786c], al
jne 0x1401fa680
sub rcx, r11
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jb 0x1401fa680
jmp 0x1401fa97a
xor ecx, ecx
xor r10d, r10d
nop word cs:[rax + rax]
movsxd rcx, ecx
xor r10, qword [rdi + rcx]
add ecx, 8
cmp ecx, r14d
jl 0x1401fa750
jmp 0x1401fa6ce
mov rcx, qword [r13]
mov rdx, qword [r13 + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x1401fa794
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1401fa98e
add rdx, 0x27
mov rcx, rax
call fcn.1400a22e0
mov r8, qword [rbp + 0x30]
mov qword [r13], r8
mov rax, qword [rbp - 0x10]
lea rax, [rax + rax*2]
shl rax, 4
add rax, r8
mov qword [r13 + 8], rax
mov rax, qword [rbp + 8]
lea rax, [rax + rax*2]
shl rax, 4
add rax, r8
mov qword [r13 + 0x10], rax
mov rax, qword [r12]
inc qword [rax + 8]
cmp byte [rbp - 0x20], 0
je 0x1401fa7de
mov rcx, qword [rbp - 0x28]
call fcn.14030f284
cmp r15, 0x10
jb 0x1401fa80f
mov rcx, qword [rbp - 0x58]
cmp r15, 0xfff
jb 0x1401fa827
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x1401fa984
add r15, 0x28
mov rcx, rax
jmp 0x1401fa82a
movaps xmm6, xmmword [rbp + 0x40]
add rsp, 0xd8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
inc r15
mov rdx, r15
movaps xmm6, xmmword [rbp + 0x40]
add rsp, 0xd8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp fcn.1400a22e0
cmp rbx, rsi
je 0x1401fa644
lea r15, [r8 + 0x28]
xor edx, edx
xorps xmm6, xmm6
mov qword [rbp - 8], rcx
jmp 0x1401fa8b3
movups xmm0, xmmword [r14]
movups xmmword [r13], xmm0
mov r12d, 0xf
mov qword [r15 + rdx - 0x10], rdi
mov qword [r15 + rdx - 8], r12
lea rax, [0x14034fe38]
mov qword [r15 + rdx - 0x28], rax
movzx eax, byte [rbx + rdx + 0x28]
mov byte [r15 + rdx], al
lea rax, [rbx + rdx]
add rax, 0x30
add rdx, 0x30
cmp rax, rsi
je 0x1401fa638
movups xmmword [r15 + rdx - 0x10], xmm6
cmp qword [rbx + rdx + 0x20], 0x10
jb 0x1401fa8d0
mov r14, qword [rbx + rdx + 8]
jmp 0x1401fa8d8
lea r14, [rbx + rdx]
add r14, 8
lea r13, [r15 + rdx]
add r13, 0xffffffffffffffe0
mov rdi, qword [rbx + rdx + 0x18]
cmp rdi, 0xf
jbe 0x1401fa870
mov qword [rbp + 0x18], rdx
mov r12, rdi
or r12, 0xf
movabs rax, 0x7fffffffffffffff
cmp r12, rax
cmovae r12, rax
cmp r12, 0xfff
jb 0x1401fa940
lea rcx, [r12 + 0x28]
call fcn.14030debc
mov rcx, rax
xor rax, 0x27
mov edx, ecx
and edx, 0x27
lea rax, [rax + rdx*2]
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1401fa94a
lea rcx, [r12 + 1]
call fcn.14030debc
mov qword [r13], rax
mov rcx, rdi
xor rcx, 1
mov edx, edi
and edx, 1
lea r8, [rcx + rdx*2]
mov rcx, rax
mov rdx, r14
call fcn.140335e20
mov rdx, qword [rbp + 0x18]
jmp 0x1401fa87f
xor r8d, r8d
jmp 0x1401fa4cd
call fcn.1402ee57c
call fcn.14008c5a0
call fcn.1402ee57c
call fcn.14008c5a0
call fcn.1402ee57c
int3