clarify the purpose of this project
[nyanglibc.git] / io / euidaccess.s
blobaf0e3442d6f88a37b5388a748e64990ab18c21ab
1 .text
2 .p2align 4,,15
3 .globl __euidaccess
4 .type __euidaccess, @function
5 __euidaccess:
6 pushq %r15
7 pushq %r14
8 pushq %r13
9 pushq %r12
10 movq %rdi, %r12
11 pushq %rbp
12 pushq %rbx
13 movl %esi, %ebx
14 subq $152, %rsp
15 movq %rsp, %rsi
16 call __stat64
17 testl %eax, %eax
18 jne .L11
19 movl %ebx, %r13d
20 movl %eax, %ebp
21 andl $7, %r13d
22 jne .L17
23 .L1:
24 addq $152, %rsp
25 movl %ebp, %eax
26 popq %rbx
27 popq %rbp
28 popq %r12
29 popq %r13
30 popq %r14
31 popq %r15
32 ret
33 .p2align 4,,10
34 .p2align 3
35 .L17:
36 call __geteuid
37 movl %eax, %r14d
38 call __getegid
39 movl %eax, %r15d
40 call __getuid
41 cmpl %r14d, %eax
42 je .L18
43 .L4:
44 testl %r14d, %r14d
45 jne .L5
46 andl $1, %ebx
47 je .L1
48 testb $73, 24(%rsp)
49 jne .L1
50 .L5:
51 cmpl %r14d, 28(%rsp)
52 je .L19
53 movl 32(%rsp), %edi
54 cmpl %r15d, %edi
55 je .L10
56 call __group_member
57 testl %eax, %eax
58 je .L20
59 .L10:
60 leal 0(,%r13,8), %eax
61 andl 24(%rsp), %eax
62 shrl $3, %eax
63 jmp .L8
64 .p2align 4,,10
65 .p2align 3
66 .L19:
67 movl %r13d, %eax
68 sall $6, %eax
69 andl 24(%rsp), %eax
70 shrl $6, %eax
71 .L8:
72 cmpl %r13d, %eax
73 je .L1
74 movq __libc_errno@gottpoff(%rip), %rax
75 movl $-1, %ebp
76 movl $13, %fs:(%rax)
77 jmp .L1
78 .p2align 4,,10
79 .p2align 3
80 .L18:
81 call __getgid
82 cmpl %r15d, %eax
83 jne .L4
84 movl %r13d, %esi
85 movq %r12, %rdi
86 call __access
87 movl %eax, %ebp
88 jmp .L1
89 .p2align 4,,10
90 .p2align 3
91 .L20:
92 movl 24(%rsp), %eax
93 andl %r13d, %eax
94 jmp .L8
95 .p2align 4,,10
96 .p2align 3
97 .L11:
98 movl $-1, %ebp
99 jmp .L1
100 .size __euidaccess, .-__euidaccess
101 .weak eaccess
102 .set eaccess,__euidaccess
103 .weak euidaccess
104 .set euidaccess,__euidaccess
105 .hidden __access
106 .hidden __getgid
107 .hidden __group_member
108 .hidden __getuid
109 .hidden __getegid
110 .hidden __geteuid
111 .hidden __stat64