Function at 0x1401e44e0
Capabilities:
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov r14d, dword [rsp + 0x98]
mov rbp, rcx
mov ebx, edx
mov rsi, r9
cmp r14d, 2
je 0x1401e4600
test r8, r8
je 0x1401e4521
mov rax, qword [r8 + 8]
test rax, rax
je 0x1401e4521
cmp dword [rax], 0xffffffff
jne 0x1401e45d0
test rsi, rsi
je 0x1401e45d0
cmp ebx, 0x40a
mov r12d, 0x20
setne dil
cmp ebx, 0x43f
setne al
and dil, al
je 0x1401e4559
xor r12d, r12d
cmp ebx, 0x40b
setne r12b
add r12d, 0x38
cmp r12d, dword [rsp + 0x90]
jne 0x1401e45d0
mov ecx, 0x48
call fcn.140274360
mov r13, rax
test rax, rax
je 0x1401e47e8
test r14d, r14d
jne 0x1401e462b
mov rax, qword [rsi]
lea rdi, [r13 + 8]
and rdi, 0xfffffffffffffff8
mov qword [r13], rax
mov eax, r12d
mov rdx, qword [rsi + rax - 8]
mov qword [r13 + rax - 8], rdx
mov rax, r13
sub rax, rdi
lea ecx, [r12 + rax]
sub rsi, rax
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
test rbp, rbp
je 0x1401e45c8
mov edx, ebx
mov rcx, rbp
call fcn.1402763d0
test eax, eax
je 0x1401e45c8
mov qword [rbp + 0x28], r13
mov eax, 1
jmp 0x1401e45e7
mov r8d, 0x66
mov edx, 0x10a
mov ecx, 0x10
call fcn.1402750a0
xor eax, eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 0x48
call fcn.140274360
mov r13, rax
test rax, rax
je 0x1401e47e8
cmp ebx, 0x43f
setne dil
cmp ebx, 0x40a
setne al
and edi, eax
mov r15d, 0x20
test dil, dil
jne 0x1401e46c0
xor r8d, r8d
lea rdx, [0x14042f918]
mov rcx, r15
call fcn.1402003e0
mov qword [r13 + 0x40], rax
mov r12, rax
test rax, rax
je 0x1401e4808
cmp r14d, 2
jne 0x1401e46e0
test dil, dil
je 0x1401e4770
cmp ebx, 0x40b
je 0x1401e47c0
mov edx, 0x39
mov rcx, rax
call fcn.14020e8f0
test eax, eax
jle 0x1401e4830
cmp ebx, 0x43f
je 0x1401e47b0
jg 0x1401e471b
cmp ebx, 0x40a
jne 0x1401e45b1
nop word [rax + rax]
mov rdx, r12
mov rcx, r13
call fcn.140252bf0
jmp 0x1401e45b1
xor r15d, r15d
cmp ebx, 0x40b
setne r15b
add r15, 0x38
jmp 0x1401e463a
mov rax, qword [rsi]
lea rdi, [r12 + 8]
and rdi, 0xfffffffffffffff8
mov qword [r12], rax
mov rax, qword [rsi + r15 - 8]
mov qword [r12 + r15 - 8], rax
mov rax, r12
sub rax, rdi
lea ecx, [r15 + rax]
sub rsi, rax
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
cmp ebx, 0x43f
je 0x1401e47b0
jle 0x1401e4740
cmp ebx, 0x440
jne 0x1401e45b1
mov rdx, r12
mov rcx, r13
call fcn.1402bd5f0
jmp 0x1401e45b1
cmp ebx, 0x40a
je 0x1401e46b0
cmp ebx, 0x40b
jne 0x1401e45b1
mov rdx, r12
mov rcx, r13
call fcn.140256130
jmp 0x1401e45b1
mov edx, 0x20
mov rcx, rax
call fcn.14020e8f0
test eax, eax
jle 0x1401e4830
cmp ebx, 0x40a
jne 0x1401e483a
movzx eax, byte [r12 + 0x1f]
and byte [r12], 0xf8
and eax, 0x7f
or eax, 0x40
mov byte [r12 + 0x1f], al
jmp 0x1401e46b0
mov rdx, r12
mov rcx, r13
call fcn.1402580e0
jmp 0x1401e45b1
mov edx, 0x38
mov rcx, rax
call fcn.14020e8f0
test eax, eax
jle 0x1401e4830
and byte [r12], 0xfc
or byte [r12 + 0x37], 0x80
jmp 0x1401e4758
mov r8d, 0x41
mov edx, 0x10a
mov ecx, 0x10
call fcn.1402750a0
jmp 0x1401e45e5
mov r8d, 0x41
mov edx, 0x10a
mov ecx, 0x10
call fcn.1402750a0
mov rcx, r13
call fcn.14034efb0
jmp 0x1401e45e5
mov rcx, r12
call fcn.14034efb0
jmp 0x1401e481d
cmp ebx, 0x40b
je 0x1401e47d1
cmp ebx, 0x43f
je 0x1401e47b0
jg 0x1401e471b
jmp 0x1401e45b1