Function at 0x14001705f
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
movaps xmmword [rsp + 0x90], xmm6
mov rbx, rdx
mov rsi, rcx
mov rcx, qword [rdx]
call fcn.140014a2d
mov qword [rsp + 0x80], rax
mov rbp, qword [rbx]
mov rax, qword [rsi]
cmp rax, rbp
cmova rbp, rax
test rbp, rbp
mov r12d, 1
cmove rbp, r12
mov rcx, rbp
call fcn.140014a2d
mov r15, rax
mov rcx, rbp
call fcn.140014a2d
mov r13, rax
mov rax, qword [r15]
mov rcx, qword [r15 + 8]
mov rdi, qword [rsi]
mov qword [rsp + 0x70], rsi
mov rdx, qword [rsi + 8]
cmp rax, rdi
cmovb rdi, rax
lea rsi, [rdi*8]
mov r8, rsi
call fcn.14007e6c0
mov rdx, qword [r15]
sub rdx, rdi
shl rdx, 3
add rsi, qword [r15 + 8]
mov rcx, rsi
call fcn.140074310
mov rax, qword [r13]
mov rcx, qword [r13 + 8]
mov rdi, qword [rbx]
mov qword [rsp + 0x78], rbx
mov rdx, qword [rbx + 8]
cmp rax, rdi
cmovb rdi, rax
lea rsi, [rdi*8]
mov r8, rsi
call fcn.14007e6c0
mov rdx, qword [r13]
sub rdx, rdi
shl rdx, 3
add rsi, qword [r13 + 8]
mov rcx, rsi
call fcn.140074310
lea rsi, [rbp + 1]
mov rcx, rsi
call fcn.140014a2d
mov qword [rsp + 0x48], rax
mov rcx, rsi
call fcn.140014a2d
mov qword [rsp + 0x40], rax
mov rcx, rbp
call fcn.140014a2d
mov qword [rsp + 0x60], rax
mov r14, rbp
shl r14, 7
shl rbp, 8
mov qword [rsp + 0x50], rbp
lea rcx, [rbp + 0x40]
mov rbp, r13
dec rcx
shr rcx, 6
call fcn.140014a2d
mov r13, rax
test r14, r14
je 0x140017247
xor edi, edi
mov rcx, rbp
mov rdx, r15
call fcn.1400157cb
mov ebx, eax
mov rax, qword [r15 + 8]
mov esi, dword [rax]
mov eax, esi
mov rcx, qword [rbp + 8]
xor ebx, esi
and esi, dword [rcx]
mov ecx, 1
and eax, ecx
and esi, ecx
and ebx, esi
xor ebx, eax
mov rcx, r15
mov rdx, rbp
mov r8d, ebx
call fcn.140014be5
mov rax, rsi
neg rax
mov r8, rbp
mov ebp, eax
and ebp, 1
mov rdx, qword [r15]
mov rcx, qword [r15 + 8]
mov qword [rsp + 0x30], rbp
mov rbp, r8
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
mov r8, r15
mov r9, rbp
call fcn.140015728
mov r8d, 1
mov rcx, r15
mov rdx, r15
call fcn.14001521b
lea rdx, [r12 - 1]
mov rcx, r13
mov r8d, esi
call fcn.1400150b7
mov rcx, r13
mov rdx, r12
mov r8d, ebx
call fcn.1400150b7
inc rdi
add r12, 2
cmp rdi, r14
jb 0x14001719e
mov rbx, qword [rsp + 0x48]
mov rax, qword [rbx]
mov rcx, qword [rbx + 8]
mov rdi, qword [r15]
mov rdx, qword [r15 + 8]
cmp rax, rdi
cmovb rdi, rax
lea rsi, [rdi*8]
mov r8, rsi
call fcn.14007e6c0
mov rdx, qword [rbx]
sub rdx, rdi
shl rdx, 3
add rsi, qword [rbx + 8]
mov rcx, rsi
call fcn.140074310
mov rbx, qword [rsp + 0x40]
mov rax, qword [rbx]
mov rcx, qword [rbx + 8]
mov rdi, qword [rbp]
mov rdx, qword [rbp + 8]
cmp rax, rdi
cmovb rdi, rax
lea rsi, [rdi*8]
mov r8, rsi
call fcn.14007e6c0
mov rdx, qword [rbx]
sub rdx, rdi
shl rdx, 3
add rsi, qword [rbx + 8]
mov rcx, rsi
call fcn.140074310
mov qword [rsp + 0x68], rbp
mov rax, qword [rbp + 8]
mov ebp, dword [rax]
test r14, r14
je 0x140017432
dec r14
mov rax, r14
mov r14, qword [rsp + 0x50]
add r14, 0xfffffffffffffffe
xorps xmm6, xmm6
mov qword [rsp + 0x88], r13
mov rsi, qword [rsp + 0x68]
mov qword [rsp + 0x50], rax
shr rax, 5
movabs rcx, 0x3ffffffffffffff
and rax, rcx
cmp qword [r13], rax
mov dword [rsp + 0x5c], ebp
jbe 0x140017334
mov rcx, qword [r13 + 8]
mov r12, qword [rcx + rax*8]
mov ecx, r14d
and ecx, 0x3e
mov rbx, r12
shr rbx, cl
and ebx, 1
jmp 0x14001733f
mov ecx, r14d
and ecx, 0x3e
xor ebx, ebx
xor r12d, r12d
or cl, 1
shr r12, cl
and r12d, 1
mov r13, qword [rsp + 0x48]
mov rdx, qword [r13]
mov rcx, qword [r13 + 8]
mov rdi, qword [rcx]
and edi, 1
neg rdi
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rdi
mov r8, r13
mov r9, rsi
call fcn.140015728
mov rbp, qword [rsp + 0x40]
mov rdx, qword [rbp]
mov rcx, qword [rbp + 8]
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rdi
mov r8, rbp
mov r9, r15
call fcn.140015728
mov r8d, 1
mov rcx, r13
mov rdx, r13
call fcn.14001521b
neg rbx
mov rdx, qword [rbp]
mov rcx, qword [rbp + 8]
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rbx
mov r8, rbp
mov r9, r13
call fcn.140015728
mov r8d, 1
mov rcx, r15
mov rdx, r15
call fcn.140016066
mov rdx, qword [r15]
mov rcx, qword [r15 + 8]
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rbx
mov r8, r15
mov r9, rsi
call fcn.140015728
mov rcx, r15
mov rdx, rsi
mov r8d, r12d
call fcn.140014be5
mov rcx, r13
mov rdx, rbp
mov r8d, r12d
call fcn.140014be5
mov ebp, dword [rsp + 0x5c]
xor ebp, r12d
add r14, 0xfffffffffffffffe
mov rax, qword [rsp + 0x50]
add rax, 0xffffffffffffffff
mov r13, qword [rsp + 0x88]
jb 0x1400172fb
mov rcx, r15
mov rdx, qword [rsp + 0x70]
call fcn.14001588d
mov esi, eax
mov r14, qword [rsp + 0x68]
mov rcx, r14
mov rdx, qword [rsp + 0x78]
call fcn.14001588d
test eax, esi
jne 0x140017470
lea rcx, str.mp_cmp_eq_a__a_in___mp_cmp_eq_b__b_in_
lea rdx, str..._mpint.c
mov r8d, 0x6cf
call fcn.140088ff4
mov rbx, qword [rsp + 0x60]
mov rdx, qword [rbx]
mov rcx, qword [rbx + 8]
mov esi, 1
mov qword [rsp + 0x30], rsi
mov rdi, 0xffffffffffffffff
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
mov r8, r14
mov r12, qword [rsp + 0x48]
mov r9, r12
call fcn.140015728
mov rcx, r12
mov rdx, r12
mov r8, rbx
mov r9d, ebp
call fcn.140014b96
mov rdx, qword [rbx]
mov rcx, qword [rbx + 8]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
mov r8, r15
mov rsi, qword [rsp + 0x40]
mov r9, rsi
call fcn.140015728
mov rcx, rsi
mov rdx, rsi
mov r8, rbx
mov r9d, ebp
call fcn.140014b96
mov rbx, qword [rsp + 0x80]
test rbx, rbx
je 0x140017539
mov rax, qword [rbx]
mov rcx, qword [rbx + 8]
mov rdi, qword [r12]
mov rdx, qword [r12 + 8]
cmp rax, rdi
cmovb rdi, rax
lea rsi, [rdi*8]
mov r8, rsi
call fcn.14007e6c0
mov rdx, qword [rbx]
sub rdx, rdi
shl rdx, 3
add rsi, qword [rbx + 8]
mov rcx, rsi
call fcn.140074310
mov rcx, r15
call fcn.140014af7
mov rcx, r14
call fcn.140014af7
mov rcx, r12
call fcn.140014af7
mov rcx, qword [rsp + 0x40]
call fcn.140014af7
mov rcx, qword [rsp + 0x60]
call fcn.140014af7
mov rcx, r13
call fcn.140014af7
mov rax, rbx
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret