Function at 0x1400173c6
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
movaps xmmword [rsp + 0x80], xmm6
mov rbx, rdx
mov rsi, rcx
mov rcx, qword [rdx]
call fcn.140014b05
mov qword [rsp + 0x78], rax
mov rax, qword [rbx]
mov rcx, qword [rsi]
cmp rcx, rax
cmova rax, rcx
test rax, rax
mov ebp, 1
cmovne rbp, rax
mov rcx, rbp
call fcn.140014b05
mov r15, rax
mov rcx, rbp
call fcn.140014b05
mov r12, rax
mov rax, qword [r15]
mov rcx, qword [r15 + 8]
mov rdi, qword [rsi]
mov qword [rsp + 0x60], rsi
mov rdx, qword [rsi + 8]
cmp rax, rdi
cmovb rdi, rax
lea rsi, [rdi*8]
mov r8, rsi
call fcn.14007ef50
mov rdx, qword [r15]
sub rdx, rdi
shl rdx, 3
add rsi, qword [r15 + 8]
mov rcx, rsi
call fcn.140074a74
mov rax, qword [r12]
mov rcx, qword [r12 + 8]
mov rdi, qword [rbx]
mov qword [rsp + 0x68], rbx
mov rdx, qword [rbx + 8]
cmp rax, rdi
cmovb rdi, rax
lea rsi, [rdi*8]
mov r8, rsi
call fcn.14007ef50
mov rdx, qword [r12]
sub rdx, rdi
shl rdx, 3
add rsi, qword [r12 + 8]
mov rcx, rsi
call fcn.140074a74
lea rsi, [rbp + 1]
mov rcx, rsi
call fcn.140014b05
mov qword [rsp + 0x40], rax
mov rcx, rsi
call fcn.140014b05
mov qword [rsp + 0x38], rax
mov rcx, rbp
call fcn.140014b05
mov qword [rsp + 0x70], rax
mov r13, rbp
shl r13, 7
shl rbp, 8
mov qword [rsp + 0x48], rbp
lea rcx, [rbp + 0x40]
dec rcx
shr rcx, 6
call fcn.140014b05
mov r14, rax
test r13, r13
je 0x1400175a0
xor edi, edi
mov ebp, 1
mov rcx, r12
mov rdx, r15
call fcn.1400158ee
mov ebx, eax
mov rax, qword [r15 + 8]
mov esi, dword [rax]
mov eax, esi
mov rcx, qword [r12 + 8]
xor ebx, esi
and esi, dword [rcx]
and eax, 1
and esi, 1
and ebx, esi
xor ebx, eax
mov rcx, r15
mov rdx, r12
mov r8d, ebx
call fcn.140014cc0
mov rdx, qword [r15]
mov rcx, qword [r15 + 8]
mov qword [rsp + 0x30], rsi
mov rax, rsi
neg rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
mov r8, r15
mov r9, r12
call fcn.1400157e2
mov r8d, 1
mov rcx, r15
mov rdx, r15
call fcn.1400152b1
lea rdx, [rbp - 1]
mov rcx, r14
mov r8d, esi
call fcn.140015174
mov rcx, r14
mov rdx, rbp
mov r8d, ebx
call fcn.140015174
inc rdi
add rbp, 2
cmp rdi, r13
jb 0x140017505
mov rbx, qword [rsp + 0x40]
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.14007ef50
mov rdx, qword [rbx]
sub rdx, rdi
shl rdx, 3
add rsi, qword [rbx + 8]
mov rcx, rsi
call fcn.140074a74
mov rbx, qword [rsp + 0x38]
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.14007ef50
mov rdx, qword [rbx]
sub rdx, rdi
shl rdx, 3
add rsi, qword [rbx + 8]
mov rcx, rsi
call fcn.140074a74
mov rax, qword [r12 + 8]
mov ebx, dword [rax]
test r13, r13
mov qword [rsp + 0x58], r14
je 0x140017789
dec r13
mov rax, r13
mov r13, qword [rsp + 0x48]
add r13, 0xfffffffffffffffe
xorps xmm6, xmm6
mov dword [rsp + 0x54], ebx
mov rbx, r12
mov qword [rsp + 0x48], rax
shr rax, 5
movabs rcx, 0x3ffffffffffffff
and rax, rcx
cmp qword [r14], rax
jbe 0x140017685
mov rcx, qword [r14 + 8]
mov rsi, qword [rcx + rax*8]
mov ecx, r13d
and ecx, 0x3e
mov r12, rsi
shr r12, cl
and r12d, 1
jmp 0x140017690
mov ecx, r13d
and ecx, 0x3e
xor r12d, r12d
xor esi, esi
or ecx, 1
shr rsi, cl
and esi, 1
mov r14, qword [rsp + 0x40]
mov rdx, qword [r14]
mov rcx, qword [r14 + 8]
mov rdi, qword [rcx]
and edi, 1
neg rdi
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rdi
mov r8, r14
mov r9, rbx
call fcn.1400157e2
mov rbp, qword [rsp + 0x38]
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.1400157e2
mov r8d, 1
mov rcx, r14
mov rdx, r14
call fcn.1400152b1
neg r12
mov rdx, qword [rbp]
mov rcx, qword [rbp + 8]
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], r12
mov r8, rbp
mov r9, r14
call fcn.1400157e2
mov r8d, 1
mov rcx, r15
mov rdx, r15
call fcn.140016227
mov rdx, qword [r15]
mov rcx, qword [r15 + 8]
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], r12
mov r12, rbx
mov r8, r15
mov r9, rbx
call fcn.1400157e2
mov rcx, r15
mov rdx, rbx
mov r8d, esi
call fcn.140014cc0
mov rcx, r14
mov rdx, rbp
mov r8d, esi
call fcn.140014cc0
mov ebx, dword [rsp + 0x54]
xor ebx, esi
mov rax, qword [rsp + 0x48]
dec rax
add r13, 0xfffffffffffffffe
mov rcx, 0xffffffffffffffff
cmp rax, rcx
mov r14, qword [rsp + 0x58]
jne 0x140017649
mov rcx, r15
mov rdx, qword [rsp + 0x60]
call fcn.1400159ad
mov esi, eax
mov rcx, r12
mov rdx, qword [rsp + 0x68]
call fcn.1400159ad
test eax, esi
jne 0x1400177c2
lea rcx, str.mp_cmp_eq_a__a_in___mp_cmp_eq_b__b_in_
lea rdx, str..._mpint.c
mov r8d, 0x6b4
call fcn.140089884
mov rbp, qword [rsp + 0x70]
mov rdx, qword [rbp]
mov rcx, qword [rbp + 8]
mov esi, 1
mov qword [rsp + 0x30], rsi
mov rdi, 0xffffffffffffffff
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
mov r8, r12
mov r14, qword [rsp + 0x40]
mov r9, r14
call fcn.1400157e2
mov rcx, r14
mov rdx, r14
mov r8, rbp
mov r9d, ebx
call fcn.140014c71
mov rdx, qword [rbp]
mov rcx, qword [rbp + 8]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
mov r8, r15
mov rsi, qword [rsp + 0x38]
mov r9, rsi
call fcn.1400157e2
mov rcx, rsi
mov rdx, rsi
mov r8, rbp
mov r9d, ebx
call fcn.140014c71
mov rbx, qword [rsp + 0x78]
test rbx, rbx
je 0x140017888
mov rax, qword [rbx]
mov rcx, qword [rbx + 8]
mov rdi, qword [r14]
mov rdx, qword [r14 + 8]
cmp rax, rdi
cmovb rdi, rax
lea rsi, [rdi*8]
mov r8, rsi
call fcn.14007ef50
mov rdx, qword [rbx]
sub rdx, rdi
shl rdx, 3
add rsi, qword [rbx + 8]
mov rcx, rsi
call fcn.140074a74
mov rcx, r15
call fcn.140014bcf
mov rcx, r12
call fcn.140014bcf
mov rcx, r14
call fcn.140014bcf
mov rcx, qword [rsp + 0x38]
call fcn.140014bcf
mov rcx, rbp
call fcn.140014bcf
mov rcx, qword [rsp + 0x58]
call fcn.140014bcf
mov rax, rbx
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret