clarify the purpose of this project
[nyanglibc.git] / pwd / getpwuid_r.shared.s
blob2629b42cd106d643c8c238c50363aa98ce7fa98a
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 .symver __new_getpwuid_r,getpwuid_r@@GLIBC_2.2.5
7 .section .rodata.str1.1,"aMS",@progbits,1
8 .LC0:
9 .string "getpwuid_r"
10 #NO_APP
11 .text
12 .p2align 4,,15
13 .globl __getpwuid_r
14 .hidden __getpwuid_r
15 .type __getpwuid_r, @function
16 __getpwuid_r:
17 pushq %r15
18 pushq %r14
19 pushq %r13
20 pushq %r12
21 pushq %rbp
22 pushq %rbx
23 subq $72, %rsp
24 leaq 56(%rsp), %r13
25 leaq 48(%rsp), %r12
26 movq %rsi, 8(%rsp)
27 leaq .LC0(%rip), %rsi
28 movl %edi, 32(%rsp)
29 movq %rdx, 16(%rsp)
30 movq %rcx, (%rsp)
31 xorl %edx, %edx
32 movq %r13, %rcx
33 movq %r12, %rdi
34 movq %r8, 40(%rsp)
35 call __GI___nss_passwd_lookup2
36 testl %eax, %eax
37 movl %eax, 36(%rsp)
38 jne .L2
39 xorl %ebp, %ebp
40 movq $0, 24(%rsp)
41 movq %fs:0, %r15
42 movq __libc_errno@gottpoff(%rip), %rbx
43 jmp .L13
44 .p2align 4,,10
45 .p2align 3
46 .L3:
47 testl %ebp, %ebp
48 je .L6
49 cmpl $1, %eax
50 jne .L7
51 movl $22, %fs:(%rbx)
52 xorl %ebp, %ebp
53 movl $-1, %r14d
54 .p2align 4,,10
55 .p2align 3
56 .L8:
57 leaq .LC0(%rip), %rsi
58 xorl %r9d, %r9d
59 xorl %edx, %edx
60 movl %r14d, %r8d
61 movq %r13, %rcx
62 movq %r12, %rdi
63 call __GI___nss_next2
64 testl %eax, %eax
65 jne .L35
66 .L13:
67 movq 56(%rsp), %rdi
68 call __GI__dl_mcount_wrapper_check
69 leaq (%r15,%rbx), %r8
70 movq (%rsp), %rcx
71 movq 16(%rsp), %rdx
72 movq 8(%rsp), %rsi
73 movl 32(%rsp), %edi
74 call *56(%rsp)
75 cmpl $-2, %eax
76 movl %eax, %r14d
77 jne .L3
78 cmpl $34, %fs:(%rbx)
79 je .L36
80 testl %ebp, %ebp
81 je .L6
82 .L7:
83 movq 48(%rsp), %rax
84 movl $22, %fs:(%rbx)
85 movl 8(%rax), %eax
86 shrl $6, %eax
87 andl $3, %eax
88 cmpl $2, %eax
89 jne .L17
90 .L11:
91 cmpq $0, 24(%rsp)
92 je .L37
93 .L10:
94 movl $22, %fs:(%rbx)
95 movl $-1, %r14d
96 movl $1, %ebp
97 jmp .L8
98 .p2align 4,,10
99 .p2align 3
100 .L6:
101 movq 48(%rsp), %rax
102 leal 4(%r14,%r14), %ecx
103 movl 8(%rax), %eax
104 shrl %cl, %eax
105 andl $3, %eax
106 cmpl $2, %eax
107 jne .L18
108 cmpl $1, %r14d
109 je .L11
110 .L18:
111 xorl %ebp, %ebp
112 jmp .L8
113 .p2align 4,,10
114 .p2align 3
115 .L17:
116 movl $1, %r14d
117 movl $1, %ebp
118 jmp .L8
119 .p2align 4,,10
120 .p2align 3
121 .L35:
122 movq 24(%rsp), %rdi
123 call free@PLT
124 cmpl $1, %r14d
125 movq 40(%rsp), %rax
126 je .L16
127 movq $0, (%rax)
128 jbe .L15
129 movl %fs:(%rbx), %eax
130 cmpl $34, %eax
131 movl %eax, 36(%rsp)
132 je .L38
133 .L1:
134 movl 36(%rsp), %eax
135 addq $72, %rsp
136 popq %rbx
137 popq %rbp
138 popq %r12
139 popq %r13
140 popq %r14
141 popq %r15
143 .p2align 4,,10
144 .p2align 3
145 .L16:
146 movq 8(%rsp), %rdx
147 movq %rdx, (%rax)
148 .L15:
149 movl 36(%rsp), %eax
150 movl %eax, %fs:(%rbx)
151 jmp .L1
152 .p2align 4,,10
153 .p2align 3
154 .L37:
155 movq (%rsp), %rdi
156 call malloc@PLT
157 testq %rax, %rax
158 movq %rax, 24(%rsp)
159 jne .L10
160 movq 40(%rsp), %rax
161 movl $12, %fs:(%rbx)
162 movl $12, 36(%rsp)
163 movq $0, (%rax)
164 jmp .L1
165 .p2align 4,,10
166 .p2align 3
167 .L36:
168 movq 24(%rsp), %rdi
169 call free@PLT
170 movq 40(%rsp), %rax
171 movl $34, 36(%rsp)
172 movq $0, (%rax)
173 jmp .L1
174 .L38:
175 cmpl $-2, %r14d
176 je .L1
177 .L19:
178 movl $22, 36(%rsp)
179 jmp .L15
180 .L2:
181 movq 40(%rsp), %rax
182 movq __libc_errno@gottpoff(%rip), %rbx
183 movq $0, (%rax)
184 movl %fs:(%rbx), %eax
185 cmpl $34, %eax
186 movl %eax, 36(%rsp)
187 jne .L1
188 jmp .L19
189 .size __getpwuid_r, .-__getpwuid_r
190 .globl __new_getpwuid_r
191 .set __new_getpwuid_r,__getpwuid_r