Function at 0x14010d400
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2b8
mov edi, 0xfe
xor ebp, ebp
movabs rsi, 0x7ffffffffffff
mov rax, rdx
lea rbx, [rsp + 0xa8]
mov rdx, r8
mov qword [rsp + 0x300], rcx
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov rcx, rbx
movups xmmword [rsp + 0x88], xmm0
movups xmmword [rsp + 0x98], xmm1
call dbg.fe_frombytes
lea rax, [rsp + 0xd0]
mov rcx, rax
mov qword [rsp + 0x28], rax
call dbg.fe_1
lea rcx, [rsp + 0xf8]
call dbg.fe_0
lea rax, [rsp + 0x120]
mov rdx, rbx
mov rcx, rax
mov qword [rsp + 0x38], rax
call dbg.fe_limbs_copy
lea rcx, [rsp + 0x148]
call dbg.fe_1
mov eax, edi
mov ecx, edi
mov rdx, qword [rsp + 0x38]
mov r8d, ebp
sar eax, 3
and ecx, 7
lea rbx, [rsp + 0xf8]
cdqe
lea r14, [rsp + 0x1c0]
lea r12, [rsp + 0x1e8]
movzx eax, byte [rsp + rax + 0x88]
lea r13, [rsp + 0x198]
sar eax, cl
mov rcx, qword [rsp + 0x28]
and eax, 1
xor r8d, eax
mov ebp, eax
mov qword [rsp + 0x40], r8
call dbg.fe_cswap
lea rax, [rsp + 0x148]
mov r8, qword [rsp + 0x40]
mov rcx, rbx
mov rdx, rax
mov qword [rsp + 0x30], rax
call dbg.fe_cswap
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
lea rax, [rsp + 0x238]
mov rcx, rax
mov qword [rsp + 0x48], rax
call dbg.fiat_25519_sub
lea rax, [rsp + 0x260]
mov rdx, qword [rsp + 0x28]
mov r8, rbx
mov rcx, rax
mov qword [rsp + 0x40], rax
call dbg.fiat_25519_sub
mov rdx, qword [rsp + 0x28]
mov rcx, r14
mov r8, rbx
call dbg.fiat_25519_add
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
mov rcx, r12
call dbg.fiat_25519_add
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
mov r8, r14
call dbg.fiat_25519_carry_mul
mov r8, qword [rsp + 0x40]
mov rdx, r12
mov rcx, rbx
call dbg.fiat_25519_carry_mul
lea rax, [rsp + 0x170]
mov rdx, qword [rsp + 0x40]
mov rcx, rax
mov qword [rsp + 0x70], rax
call dbg.fiat_25519_carry_square
mov rdx, r14
mov rcx, r13
call dbg.fiat_25519_carry_square
lea rax, [rsp + 0x210]
mov rdx, qword [rsp + 0x30]
mov r8, rbx
mov rcx, rax
mov qword [rsp + 0x78], rax
call dbg.fiat_25519_add
mov rdx, qword [rsp + 0x30]
mov rcx, r12
mov r8, rbx
call dbg.fiat_25519_sub
mov r8, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x28]
mov rdx, r13
call dbg.fiat_25519_carry_mul
mov r8, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x40]
mov rdx, r13
call dbg.fiat_25519_sub
mov rdx, r12
mov rcx, rbx
call dbg.fiat_25519_carry_square
mov ecx, 0x1db42
mov rax, rcx
mul qword [rsp + 0x260]
mov r11, rdx
mov r10, rax
mov rax, rcx
mul qword [rsp + 0x268]
mov r8, r10
mov r9, r11
shrd r8, r11, 0x33
shr r9, 0x33
add r8, rax
mov rax, rcx
adc r9, rdx
mul qword [rsp + 0x270]
mov r12, r8
shrd r12, r9, 0x33
mov r13, r9
shr r13, 0x33
add rax, r12
adc rdx, r13
mov qword [rsp + 0x50], rax
mov rax, rcx
mov r14, qword [rsp + 0x50]
mov qword [rsp + 0x58], rdx
mul qword [rsp + 0x278]
mov r15, qword [rsp + 0x58]
shrd r14, r15, 0x33
shr r15, 0x33
add r14, rax
mov rax, rcx
adc r15, rdx
mul qword [rsp + 0x280]
mov r12, r14
shrd r12, r15, 0x33
mov r13, r15
shr r13, 0x33
add rax, r12
adc rdx, r13
mov qword [rsp + 0x60], rax
and r10, rsi
and r8, rsi
shrd rax, rdx, 0x33
mov qword [rsp + 0x68], rdx
and r14, rsi
imul r12, rax, 0x13
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x160], r14
and rax, rsi
add r12, r10
mov qword [rsp + 0x168], rax
mov rdx, r12
and r12, rsi
shr rdx, 0x33
mov qword [rsp + 0x148], r12
add rdx, r8
mov rcx, rdx
shr rdx, 0x33
and rcx, rsi
mov qword [rsp + 0x150], rcx
mov rcx, qword [rsp + 0x50]
and rcx, rsi
add rcx, rdx
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x158], rcx
mov rcx, qword [rsp + 0x38]
call dbg.fiat_25519_carry_square
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x48]
call dbg.fiat_25519_add
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0xa8]
mov r8, rbx
call dbg.fiat_25519_carry_mul
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov rcx, rbx
call dbg.fiat_25519_carry_mul
sub edi, 1
jae 0x14010d4a0
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x28]
mov r8d, ebp
mov qword [rsp + 0x40], r8
call dbg.fe_cswap
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x30]
mov rcx, rbx
call dbg.fe_cswap
lea rcx, [rsp + 0x288]
mov rdx, rbx
call dbg.fe_limbs_copy
mov rdx, rcx
mov rcx, rbx
call dbg.fe_loose_invert
mov rdx, qword [rsp + 0x28]
mov r8, rbx
mov rcx, rdx
call dbg.fiat_25519_carry_mul
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x300]
call dbg.fiat_25519_to_bytes
nop
add rsp, 0x2b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret