// File: /workspace/github_c_makefile_star2_O0/LoupVaillant[P]Monocypher-Utils/src/monocypher.c
// Function: fe_invert
static void fe_invert(fe out, const fe z)
{
    fe t0, t1, t2, t3;
    fe_sq(t0, z );
    fe_sq(t1, t0);
    fe_sq(t1, t1);
    fe_mul(t1,  z, t1);
    fe_mul(t0, t0, t1);
    fe_sq(t2, t0);                                fe_mul(t1 , t1, t2);
    fe_sq(t2, t1); FOR (i, 1,   5) fe_sq(t2, t2); fe_mul(t1 , t2, t1);
    fe_sq(t2, t1); FOR (i, 1,  10) fe_sq(t2, t2); fe_mul(t2 , t2, t1);
    fe_sq(t3, t2); FOR (i, 1,  20) fe_sq(t3, t3); fe_mul(t2 , t3, t2);
    fe_sq(t2, t2); FOR (i, 1,  10) fe_sq(t2, t2); fe_mul(t1 , t2, t1);
    fe_sq(t2, t1); FOR (i, 1,  50) fe_sq(t2, t2); fe_mul(t2 , t2, t1);
    fe_sq(t3, t2); FOR (i, 1, 100) fe_sq(t3, t3); fe_mul(t2 , t3, t2);
    fe_sq(t2, t2); FOR (i, 1,  50) fe_sq(t2, t2); fe_mul(t1 , t2, t1);
    fe_sq(t1, t1); FOR (i, 1,   5) fe_sq(t1, t1); fe_mul(out, t1, t0);
    WIPE_BUFFER(t0);
    WIPE_BUFFER(t1);
    WIPE_BUFFER(t2);
    WIPE_BUFFER(t3);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x40(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x9d80
leaq -0x70(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x9d80
leaq -0x70(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x9d80
leaq -0x70(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x9180
leaq -0x40(%rbp), %rdi
leaq -0x40(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x9180
leaq -0xa0(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x9d80
leaq -0x70(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0xa0(%rbp), %rdx
callq 0x9180
leaq -0xa0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x9d80
movq $0x1, -0xd8(%rbp)
cmpq $0x5, -0xd8(%rbp)
jae 0xa69c
leaq -0xa0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x9d80
movq -0xd8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xd8(%rbp)
jmp 0xa66b
leaq -0x70(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x9180
leaq -0xa0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x9d80
movq $0x1, -0xe0(%rbp)
cmpq $0xa, -0xe0(%rbp)
jae 0xa6fc
leaq -0xa0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x9d80
movq -0xe0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xe0(%rbp)
jmp 0xa6cb
leaq -0xa0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x9180
leaq -0xd0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x9d80
movq $0x1, -0xe8(%rbp)
cmpq $0x14, -0xe8(%rbp)
jae 0xa762
leaq -0xd0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x9d80
movq -0xe8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xe8(%rbp)
jmp 0xa731
leaq -0xa0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
leaq -0xa0(%rbp), %rdx
callq 0x9180
leaq -0xa0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x9d80
movq $0x1, -0xf0(%rbp)
cmpq $0xa, -0xf0(%rbp)
jae 0xa7cb
leaq -0xa0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x9d80
movq -0xf0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xf0(%rbp)
jmp 0xa79a
leaq -0x70(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x9180
leaq -0xa0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x9d80
movq $0x1, -0xf8(%rbp)
cmpq $0x32, -0xf8(%rbp)
jae 0xa82b
leaq -0xa0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x9d80
movq -0xf8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xf8(%rbp)
jmp 0xa7fa
leaq -0xa0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x9180
leaq -0xd0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x9d80
movq $0x1, -0x100(%rbp)
cmpq $0x64, -0x100(%rbp)
jae 0xa891
leaq -0xd0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x9d80
movq -0x100(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x100(%rbp)
jmp 0xa860
leaq -0xa0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
leaq -0xa0(%rbp), %rdx
callq 0x9180
leaq -0xa0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x9d80
movq $0x1, -0x108(%rbp)
cmpq $0x32, -0x108(%rbp)
jae 0xa8fa
leaq -0xa0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x9d80
movq -0x108(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x108(%rbp)
jmp 0xa8c9
leaq -0x70(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x9180
leaq -0x70(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x9d80
movq $0x1, -0x110(%rbp)
cmpq $0x5, -0x110(%rbp)
jae 0xa951
leaq -0x70(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x9d80
movq -0x110(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x110(%rbp)
jmp 0xa926
movq -0x8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x40(%rbp), %rdx
callq 0x9180
leaq -0x40(%rbp), %rdi
movl $0x28, %esi
callq 0x1b40
leaq -0x70(%rbp), %rdi
movl $0x28, %esi
callq 0x1b40
leaq -0xa0(%rbp), %rdi
movl $0x28, %esi
callq 0x1b40
leaq -0xd0(%rbp), %rdi
movl $0x28, %esi
callq 0x1b40
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
nopl (%rax)