// File: /workspace/github_c_makefile_star2_O0/sbp[P]tweetnacl-tools/tweetnacl.c
// Function: modL
sv modL(u8 *r,i64 x[64])
{
  i64 carry,i,j;
  for (i = 63;i >= 32;--i) {
    carry = 0;
    for (j = i - 32;j < i - 12;++j) {
      x[j] += carry - 16 * x[i] * L[j - (i - 32)];
      carry = (x[j] + 128) >> 8;
      x[j] -= carry << 8;
    }
    x[j] += carry;
    x[i] = 0;
  }
  carry = 0;
  FOR(j,32) {
    x[j] += carry - (x[31] >> 4) * L[j];
    carry = x[j] >> 8;
    x[j] &= 255;
  }
  FOR(j,32) x[j] -= carry * L[j];
  FOR(i,32) {
    x[i+1] += x[i] >> 8;
    r[i] = x[i] & 255;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x3f, -0x20(%rbp)
cmpq $0x20, -0x20(%rbp)
jl 0x43a5
movq $0x0, -0x18(%rbp)
movq -0x20(%rbp), %rax
subq $0x20, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
subq $0xc, %rcx
cmpq %rcx, %rax
jge 0x4370
movq -0x18(%rbp), %rdx
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rax
shlq $0x4, %rax
movq -0x28(%rbp), %rsi
movq -0x20(%rbp), %rcx
subq $0x20, %rcx
subq %rcx, %rsi
leaq 0x22fe(%rip), %rcx      # 0x6610
imulq (%rcx,%rsi,8), %rax
subq %rax, %rdx
movq -0x10(%rbp), %rax
movq -0x28(%rbp), %rcx
addq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
movq -0x10(%rbp), %rax
movq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
addq $0x80, %rax
sarq $0x8, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rsi
shlq $0x8, %rsi
movq -0x10(%rbp), %rax
movq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
subq %rsi, %rdx
movq %rdx, (%rax,%rcx,8)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x42d3
movq -0x18(%rbp), %rdx
movq -0x10(%rbp), %rax
movq -0x28(%rbp), %rcx
addq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rcx
movq $0x0, (%rax,%rcx,8)
movq -0x20(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x42b4
movq $0x0, -0x18(%rbp)
movq $0x0, -0x28(%rbp)
cmpq $0x20, -0x28(%rbp)
jge 0x442b
movq -0x18(%rbp), %rdx
movq -0x10(%rbp), %rax
movq 0xf8(%rax), %rax
sarq $0x4, %rax
movq -0x28(%rbp), %rsi
leaq 0x2236(%rip), %rcx      # 0x6610
imulq (%rcx,%rsi,8), %rax
subq %rax, %rdx
movq -0x10(%rbp), %rax
movq -0x28(%rbp), %rcx
addq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
movq -0x10(%rbp), %rax
movq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
sarq $0x8, %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
andq $0xff, %rdx
movq %rdx, (%rax,%rcx,8)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x43b5
movq $0x0, -0x28(%rbp)
cmpq $0x20, -0x28(%rbp)
jge 0x446f
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rcx
leaq 0x21c7(%rip), %rax      # 0x6610
imulq (%rax,%rcx,8), %rsi
movq -0x10(%rbp), %rax
movq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
subq %rsi, %rdx
movq %rdx, (%rax,%rcx,8)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x4433
movq $0x0, -0x20(%rbp)
cmpq $0x20, -0x20(%rbp)
jge 0x44cd
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
sarq $0x8, %rdx
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rcx
addq 0x8(%rax,%rcx,8), %rdx
movq %rdx, 0x8(%rax,%rcx,8)
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rax
andq $0xff, %rax
movb %al, %dl
movq -0x8(%rbp), %rax
movq -0x20(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x4477
popq %rbp
retq
nop