clarify the purpose of this project
[nyanglibc.git] / grp / getgrnam_r.shared.s
blobcd56f41eccab861d452296acb1953d5d44900fa3
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 .symver __new_getgrnam_r,getgrnam_r@@GLIBC_2.2.5
7 .section .rodata.str1.1,"aMS",@progbits,1
8 .LC0:
9 .string "getgrnam_r"
10 #NO_APP
11 .text
12 .p2align 4,,15
13 .globl __getgrnam_r
14 .hidden __getgrnam_r
15 .type __getgrnam_r, @function
16 __getgrnam_r:
17 .LFB70:
18 pushq %r15
19 pushq %r14
20 pushq %r13
21 pushq %r12
22 movq %rcx, %r12
23 pushq %rbp
24 pushq %rbx
25 movq %rsi, %rbp
26 leaq .LC0(%rip), %rsi
27 movq %rdx, %r13
28 xorl %edx, %edx
29 subq $152, %rsp
30 leaq 88(%rsp), %rax
31 leaq 104(%rsp), %rcx
32 movq %rdi, 8(%rsp)
33 movq %r8, 72(%rsp)
34 movq $0, 96(%rsp)
35 movq %rax, %rdi
36 movq %rcx, 24(%rsp)
37 movq %rax, 32(%rsp)
38 call __GI___nss_group_lookup2
39 testl %eax, %eax
40 movl %eax, 60(%rsp)
41 jne .L2
42 movq __libc_errno@gottpoff(%rip), %r15
43 xorl %ebx, %ebx
44 movq $0, 40(%rsp)
45 movq %r15, %rax
46 addq %fs:0, %rax
47 movq %rax, 16(%rsp)
48 leaq 96(%rsp), %rax
49 movq %rax, 64(%rsp)
50 leaq 112(%rsp), %rax
51 movq %rax, 48(%rsp)
52 .p2align 4,,10
53 .p2align 3
54 .L12:
55 movq 104(%rsp), %rdi
56 call __GI__dl_mcount_wrapper_check
57 movq 16(%rsp), %r8
58 movq %r12, %rcx
59 movq %r13, %rdx
60 movq %rbp, %rsi
61 movq 8(%rsp), %rdi
62 call *104(%rsp)
63 cmpl $-2, %eax
64 movl %eax, %r14d
65 je .L44
66 testl %ebx, %ebx
67 je .L6
68 cmpl $1, %eax
69 jne .L7
70 movq 96(%rsp), %rdx
71 movq 40(%rsp), %rsi
72 movq %r13, %r9
73 movq 48(%rsp), %rdi
74 movq %rbp, %r8
75 movq %r12, %rcx
76 call __GI___merge_grp
77 testl %eax, %eax
78 movl %eax, %ebx
79 je .L8
80 cmpl $34, %eax
81 movl %eax, %fs:(%r15)
82 movl $0, %ebx
83 movl $-1, %r14d
84 jne .L9
85 movl $-2, %r14d
86 .p2align 4,,10
87 .p2align 3
88 .L9:
89 movq 24(%rsp), %rcx
90 movq 32(%rsp), %rdi
91 leaq .LC0(%rip), %rsi
92 xorl %r9d, %r9d
93 xorl %edx, %edx
94 movl %r14d, %r8d
95 call __GI___nss_next2
96 testl %eax, %eax
97 je .L12
98 movq 40(%rsp), %rdi
99 call free@PLT
100 cmpl $1, %r14d
101 movq 72(%rsp), %rax
102 jne .L45
103 movq %rbp, (%rax)
104 .L14:
105 movl 60(%rsp), %eax
106 movl %eax, %fs:(%r15)
107 .L1:
108 movl 60(%rsp), %eax
109 addq $152, %rsp
110 popq %rbx
111 popq %rbp
112 popq %r12
113 popq %r13
114 popq %r14
115 popq %r15
117 .p2align 4,,10
118 .p2align 3
119 .L44:
120 cmpl $34, %fs:(%r15)
121 je .L46
122 testl %ebx, %ebx
123 je .L9
124 .L7:
125 pushq 136(%rsp)
126 pushq 136(%rsp)
127 xorl %ecx, %ecx
128 pushq 136(%rsp)
129 pushq 136(%rsp)
130 movq %r13, %rdx
131 movq %rbp, %rsi
132 movq %r12, %rdi
133 movl $1, %ebx
134 call __GI___copy_grp
135 addq $32, %rsp
136 testl %eax, %eax
137 je .L8
138 movl %eax, %fs:(%r15)
139 .L8:
140 movq 88(%rsp), %rax
141 movl $1, %r14d
142 movl 8(%rax), %eax
143 shrl $6, %eax
144 andl $3, %eax
145 cmpl $2, %eax
146 jne .L9
147 .L16:
148 cmpq $0, 40(%rsp)
149 je .L47
150 .L10:
151 pushq 24(%rbp)
152 pushq 16(%rbp)
153 movq %r12, %rdi
154 pushq 8(%rbp)
155 pushq 0(%rbp)
156 movq 96(%rsp), %rcx
157 movq 72(%rsp), %rdx
158 movq 80(%rsp), %rsi
159 call __GI___copy_grp
160 addq $32, %rsp
161 testl %eax, %eax
162 je .L19
163 xorl %r14d, %r14d
164 cmpl $34, %eax
165 movl %eax, %fs:(%r15)
166 setne %r14b
167 movl $1, %ebx
168 subl $2, %r14d
169 jmp .L9
170 .p2align 4,,10
171 .p2align 3
172 .L6:
173 leal 4(%rax,%rax), %ecx
174 movq 88(%rsp), %rax
175 movl 8(%rax), %eax
176 shrl %cl, %eax
177 andl $3, %eax
178 cmpl $2, %eax
179 jne .L9
180 cmpl $1, %r14d
181 jne .L9
182 jmp .L16
183 .p2align 4,,10
184 .p2align 3
185 .L19:
186 movl $1, %r14d
187 movl $1, %ebx
188 jmp .L9
189 .p2align 4,,10
190 .p2align 3
191 .L47:
192 movq %r12, %rdi
193 call malloc@PLT
194 testq %rax, %rax
195 movq %rax, 40(%rsp)
196 jne .L10
197 movq 72(%rsp), %rax
198 movl $12, %fs:(%r15)
199 movl $12, 60(%rsp)
200 movq $0, (%rax)
201 jmp .L1
202 .p2align 4,,10
203 .p2align 3
204 .L45:
205 movq $0, (%rax)
206 jbe .L14
207 movl %fs:(%r15), %eax
208 cmpl $34, %eax
209 movl %eax, 60(%rsp)
210 jne .L1
211 cmpl $-2, %r14d
212 je .L1
213 .L21:
214 movl $22, 60(%rsp)
215 jmp .L14
216 .p2align 4,,10
217 .p2align 3
218 .L46:
219 movq 40(%rsp), %rdi
220 call free@PLT
221 movq 72(%rsp), %rax
222 movl $34, 60(%rsp)
223 movq $0, (%rax)
224 jmp .L1
225 .L2:
226 movq 72(%rsp), %rax
227 movq __libc_errno@gottpoff(%rip), %r15
228 movq $0, (%rax)
229 movl %fs:(%r15), %eax
230 cmpl $34, %eax
231 movl %eax, 60(%rsp)
232 jne .L1
233 jmp .L21
234 .LFE70:
235 .size __getgrnam_r, .-__getgrnam_r
236 .globl __new_getgrnam_r
237 .set __new_getgrnam_r,__getgrnam_r