Function at 0x14001796e
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
mov r15, rdx
mov rax, qword [0x1400ca0f0]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov r10, qword [rdx]
mov edx, 1
cmp r10, rdx
cmova rdx, r10
mov rsi, r9
mov r14, r8
mov qword [rsp + 0x48], rcx
xor eax, eax
xor ecx, ecx
cmp r10, rcx
jbe 0x1400179c4
mov rbp, qword [r15 + 8]
mov rbp, qword [rbp + rcx*8]
jmp 0x1400179c6
xor ebp, ebp
or rax, rbp
inc rcx
cmp rcx, rdx
jb 0x1400179b4
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
jne 0x1400179fb
lea rcx, str._mp_eq_integer_d__0_
lea rdx, str..._mpint.c
mov r8d, 0x71c
call fcn.140088ff4
mov r10, qword [r15]
mov qword [rsp + 0x78], rsi
test r10, r10
je 0x140017a74
mov r8, qword [r15 + 8]
xor ecx, ecx
xor ebp, ebp
xor edx, edx
xor ebx, ebx
xor edi, edi
mov r9, rdx
mov rsi, rbp
mov r11, rcx
mov rbp, qword [r8 + rdi*8]
mov rcx, rbp
shr rcx, 1
mov eax, ebp
and eax, 1
or rax, rcx
neg rax
sar rax, 0x3f
xor rbx, rdx
and rbx, rax
mov rdx, rbx
mov rbx, rbp
xor rbp, rsi
and rbp, rax
xor rbp, rsi
xor rdx, r9
mov rcx, rdi
xor rcx, r11
and rcx, rax
xor rcx, r11
inc rdi
cmp r10, rdi
jne 0x140017a13
shl rcx, 6
mov eax, 0x40
sub rax, rcx
mov qword [rsp + 0x38], rax
jmp 0x140017a82
mov eax, 0x40
mov qword [rsp + 0x38], rax
xor ebp, ebp
xor edx, edx
mov eax, 6
xor ebx, ebx
dec rax
mov esi, 1
mov ecx, eax
shl esi, cl
mov r9, rbp
mov r8, rbx
movsxd rbx, esi
mov ecx, ebx
neg cl
mov rsi, rbp
shr rsi, cl
mov rcx, rsi
shr rcx, 1
and esi, 1
or rsi, rcx
neg rsi
shr rsi, 0x3f
mov ecx, ebx
shld rbp, rdx, cl
or rsi, 0xfffffffffffffffe
mov rdi, rdx
shl rdi, cl
add rbx, r8
xor rbp, r9
inc rsi
and rbp, rsi
xor rbp, r9
xor rdi, rdx
and rdi, rsi
xor rdx, rdi
xor rbx, r8
and rbx, rsi
xor rbx, r8
test rax, rax
jne 0x140017a89
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x70], r14
shr rbp, 0x20
mov ecx, 0x90d876cd
lea rdx, [rcx + 0x2028d09]
imul rdx, rbp
shr rdx, 0x22
neg rdx
add rdx, rcx
add rdx, 0x6565fb1d
imul rdx, rbp
shr rdx, 0x22
neg rdx
add rdx, rcx
add rdx, 0x255eab1b
imul rdx, rbp
shr rdx, 0x21
neg rdx
add rdx, rcx
add rdx, 0xb552941
imul rdx, rbp
shr rdx, 0x20
neg rdx
add rdx, rcx
add rdx, 0x1a0194eb
imul rdx, rbp
shr rdx, 0x1f
neg rdx
add rdx, rcx
add rdx, 0x66845d36
imul rdx, rbp
shr rdx, 0x1f
neg rdx
add rdx, rcx
add rdx, 0x5c210374
imul rdx, rbp
shr rdx, 0x1f
sub rcx, rdx
imul rcx, rbp
and rcx, 0xfffffffffc000000
shl rcx, 6
movabs rbp, 0x682799a000000000
sub rbp, rcx
mov edx, 5
xor edi, edi
mov esi, 1
mov ecx, edx
shl esi, cl
mov r8, rdi
mov r9, rbp
mov rax, rbx
shr rax, cl
mov ecx, esi
shld rdi, rbp, cl
and eax, 1
shl rbp, cl
xor rdi, r8
neg rax
and rdi, rax
xor rdi, r8
xor rbp, r9
and rbp, rax
xor rbp, r9
add rdx, 0xffffffffffffffff
jb 0x140017bb7
mov rax, qword [rsp + 0x48]
add r10, qword [rax]
shl r10, 6
or r10, 3
xor r15d, r15d
mov r12d, 0xbf
sub r10, r12
mov esi, 0
cmovae rsi, r10
add rsi, 0x3f
and rsi, 0xffffffffffffffc0
lea r14, [rsi + 0x100]
shr r14, 6
mov rcx, r14
call fcn.140014a2d
mov r13, rax
add r12, rsi
mov rbx, qword [rsp + 0x38]
add rbx, rsi
shr rbx, 6
mov rcx, rax
mov rdx, rax
mov r8, rbp
mov r9, rbx
call fcn.140018075
inc rbx
mov rcx, r13
mov rdx, r13
mov r8, rdi
mov r9, rbx
call fcn.140018075
mov rcx, r14
call fcn.140014a2d
add rsi, 0xc0
shr rsi, 6
mov r8d, 1
mov rcx, rax
mov qword [rsp + 0x58], rax
mov rdx, rax
mov r9, rsi
call fcn.140018075
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax]
mov rdi, rax
add rcx, r14
call fcn.140014a2d
mov rbp, rax
mov rcx, qword [rax]
cmp r14, rcx
cmova rcx, r14
call fcn.140014a2d
mov rsi, rax
add r14, qword [rax]
mov rcx, r14
call fcn.140014a2d
mov r14, rax
mov qword [rsp + 0x50], rsi
mov rax, qword [rsi]
mov qword [rsp + 0x38], r13
mov rcx, qword [r13]
mov rdx, qword [r14]
cmp rcx, rax
cmova rax, rcx
cmp rax, rdx
cmova rax, rdx
add rax, rax
mov rdx, qword [rdi]
mov rbx, qword [rbp]
cmp rcx, rdx
cmova rdx, rcx
cmp rdx, rbx
cmova rdx, rbx
lea rcx, [rax + rax*2]
add rdx, rdx
lea rax, [rdx + rdx*2]
cmp rax, rcx
cmova rcx, rax
call fcn.140014a2d
mov rsi, rax
mov rax, qword [r14]
shr r12, 6
cmp rax, r12
mov qword [rsp + 0x68], r12
cmovb r12, rax
mov rdx, rax
sub rdx, r12
cmp rdx, rax
cmovae rdx, rax
mov qword [rsp + 0x90], rdx
shl r12, 3
mov qword [rsp + 0x40], r14
add r12, qword [r14 + 8]
mov qword [rsp + 0x98], r12
mov r12, rdi
mov rax, qword [rsp + 0x48]
mov rdi, qword [rax]
shl rdi, 6
or rdi, 4
cmp rdi, 0x15
jb 0x140017e2f
mov r14d, 0x14
mov rbx, qword [rsp + 0x38]
movups xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x80], xmm0
mov rcx, rbp
mov rdx, rbx
mov r8, r12
mov r13, rbp
lea r9, [rsp + 0x80]
call fcn.1400159ef
mov rbp, r12
mov r12, qword [rsp + 0x50]
mov rdx, qword [r12]
mov rcx, qword [r12 + 8]
mov rax, 0xffffffffffffffff
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], 1
mov r8, qword [rsp + 0x58]
mov r9, r13
call fcn.140015728
movups xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x80], xmm0
mov rcx, qword [rsp + 0x40]
mov rdx, rbx
mov r8, r12
mov r12, rbp
lea r9, [rsp + 0x80]
mov rbp, r13
call fcn.1400159ef
mov r8d, 0x3f
mov rcx, rbx
lea rdx, [rsp + 0x90]
call fcn.14001521b
add r14, r14
dec r14
cmp r14, rdi
jb 0x140017d85
mov rcx, rbp
call fcn.140014af7
mov rcx, qword [rsp + 0x50]
call fcn.140014af7
mov rcx, qword [rsp + 0x40]
call fcn.140014af7
mov rcx, rsi
call fcn.140014af7
mov rsi, qword [rsp + 0x48]
mov rcx, qword [rsi]
mov rdi, qword [rsp + 0x38]
add rcx, qword [rdi]
call fcn.140014a2d
mov rbx, rax
mov rcx, rax
mov rdx, rdi
mov r8, rsi
call fcn.1400152ad
mov rax, qword [rbx]
mov rdx, qword [rsp + 0x68]
cmp rax, rdx
cmovb rdx, rax
mov rcx, rax
sub rcx, rdx
cmp rcx, rax
cmovae rcx, rax
lea rdi, [rsp + 0x80]
mov qword [rdi], rcx
shl rdx, 3
mov qword [rsp + 0x40], rbx
add rdx, qword [rbx + 8]
mov qword [rdi + 8], rdx
mov rcx, qword [rsi]
call fcn.140014a2d
mov r13, rax
mov r8d, 0x3f
mov rcx, rax
mov rdx, rdi
call fcn.14001521b
mov rcx, qword [r12]
call fcn.140014a2d
mov r14, rax
mov rcx, rax
mov rdx, r13
mov r8, r12
call fcn.1400152ad
mov rdx, qword [r14]
mov rcx, qword [r14 + 8]
mov rax, 0xffffffffffffffff
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], 1
mov r8, rsi
mov r9, r14
call fcn.140015728
mov bl, 1
mov rcx, r14
mov rdx, r12
call fcn.1400157cb
mov edi, eax
and eax, 1
neg rax
mov esi, eax
and esi, 1
mov rdx, qword [r14]
mov rcx, qword [r14 + 8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], rsi
mov r8, r14
mov r9, r12
call fcn.140015728
add r15d, edi
test bl, 1
mov ebx, 0
jne 0x140017f15
mov r8d, r15d
mov rcx, r13
mov rdx, r13
call fcn.140014e36
mov rcx, r14
mov rdx, r12
call fcn.1400157cb
test eax, eax
je 0x140017f91
lea rcx, str._mp_cmp_hs_remainder__d_
lea rdx, str..._mpint.c
mov r8d, 0x82d
call fcn.140088ff4
mov rbp, qword [rsp + 0x70]
test rbp, rbp
mov rbx, qword [rsp + 0x78]
mov r15, qword [rsp + 0x38]
mov r12, qword [rsp + 0x58]
je 0x140017fe8
mov rax, qword [rbp]
mov rcx, qword [rbp + 8]
mov rsi, qword [r13]
mov rdx, qword [r13 + 8]
cmp rax, rsi
cmovb rsi, rax
lea rdi, [rsi*8]
mov r8, rdi
call fcn.14007e6c0
mov rdx, qword [rbp]
sub rdx, rsi
shl rdx, 3
add rdi, qword [rbp + 8]
mov rcx, rdi
call fcn.140074310
test rbx, rbx
je 0x140018028
mov rax, qword [rbx]
mov rcx, qword [rbx + 8]
mov rsi, qword [r14]
mov rdx, qword [r14 + 8]
cmp rax, rsi
cmovb rsi, rax
lea rdi, [rsi*8]
mov r8, rdi
call fcn.14007e6c0
mov rdx, qword [rbx]
sub rdx, rsi
shl rdx, 3
add rdi, qword [rbx + 8]
mov rcx, rdi
call fcn.140074310
mov rcx, r15
call fcn.140014af7
mov rcx, r12
call fcn.140014af7
mov rcx, qword [rsp + 0x40]
call fcn.140014af7
mov rcx, r13
call fcn.140014af7
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.14007d5e0
mov rcx, r14
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.140014af7