clarify the purpose of this project
[nyanglibc.git] / iconv / gconv_db.shared.s
blob7cf1d76d77ab4272e3529322069b835e91258a52
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 #NO_APP
7 .p2align 4,,15
8 .globl __gconv_alias_compare
9 .hidden __gconv_alias_compare
10 .type __gconv_alias_compare, @function
11 __gconv_alias_compare:
12 movq (%rsi), %rsi
13 movq (%rdi), %rdi
14 jmp __GI_strcmp
15 .size __gconv_alias_compare, .-__gconv_alias_compare
16 .section __libc_freeres_fn,"ax",@progbits
17 .p2align 4,,15
18 .type free_derivation, @function
19 free_derivation:
20 pushq %r13
21 pushq %r12
22 movq %rdi, %r13
23 pushq %rbp
24 pushq %rbx
25 subq $8, %rsp
26 cmpq $0, 24(%rdi)
27 movq 16(%rdi), %rdx
28 je .L4
29 xorl %ebx, %ebx
30 xorl %r12d, %r12d
31 .p2align 4,,10
32 .p2align 3
33 .L6:
34 leaq (%rdx,%rbx), %rax
35 movl 16(%rax), %ecx
36 testl %ecx, %ecx
37 jle .L5
38 cmpq $0, (%rax)
39 je .L5
40 movq 64(%rax), %rbp
41 #APP
42 # 185 "gconv_db.c" 1
43 ror $2*8+1, %rbp
44 xor %fs:48, %rbp
45 # 0 "" 2
46 #NO_APP
47 testq %rbp, %rbp
48 je .L5
49 movq %rbp, %rdi
50 call __GI__dl_mcount_wrapper_check
51 movq 16(%r13), %rdi
52 addq %rbx, %rdi
53 call *%rbp
54 movq 16(%r13), %rdx
55 .L5:
56 addq $1, %r12
57 addq $104, %rbx
58 cmpq %r12, 24(%r13)
59 ja .L6
60 .L4:
61 testq %rdx, %rdx
62 je .L7
63 movq 24(%rdx), %rdi
64 call free@PLT
65 movq 24(%r13), %rax
66 leaq (%rax,%rax,2), %rdx
67 leaq (%rax,%rdx,4), %rax
68 movq 16(%r13), %rdx
69 leaq (%rdx,%rax,8), %rax
70 movq -72(%rax), %rdi
71 call free@PLT
72 movq 16(%r13), %rdi
73 call free@PLT
74 .L7:
75 addq $8, %rsp
76 movq %r13, %rdi
77 popq %rbx
78 popq %rbp
79 popq %r12
80 popq %r13
81 jmp free@PLT
82 .size free_derivation, .-free_derivation
83 .text
84 .p2align 4,,15
85 .type derivation_compare, @function
86 derivation_compare:
87 pushq %rbp
88 pushq %rbx
89 movq %rsi, %rbp
90 movq %rdi, %rbx
91 subq $8, %rsp
92 movq (%rsi), %rsi
93 movq (%rdi), %rdi
94 call __GI_strcmp
95 testl %eax, %eax
96 jne .L16
97 movq 8(%rbp), %rsi
98 movq 8(%rbx), %rdi
99 addq $8, %rsp
100 popq %rbx
101 popq %rbp
102 jmp __GI_strcmp
103 .p2align 4,,10
104 .p2align 3
105 .L16:
106 addq $8, %rsp
107 popq %rbx
108 popq %rbp
110 .size derivation_compare, .-derivation_compare
111 .p2align 4,,15
112 .globl __gconv_get_modules_db
113 .type __gconv_get_modules_db, @function
114 __gconv_get_modules_db:
115 movq __gconv_modules_db(%rip), %rax
117 .size __gconv_get_modules_db, .-__gconv_get_modules_db
118 .p2align 4,,15
119 .globl __gconv_get_alias_db
120 .type __gconv_get_alias_db, @function
121 __gconv_get_alias_db:
122 movq __gconv_alias_db(%rip), %rax
124 .size __gconv_get_alias_db, .-__gconv_get_alias_db
125 .section .rodata.str1.1,"aMS",@progbits,1
126 .LC0:
127 .string "gconv_db.c"
128 .LC1:
129 .string "step->__end_fct == NULL"
130 .text
131 .p2align 4,,15
132 .globl __gconv_release_step
133 .hidden __gconv_release_step
134 .type __gconv_release_step, @function
135 __gconv_release_step:
136 pushq %rbp
137 pushq %rbx
138 movq %rdi, %rbx
139 subq $8, %rsp
140 movq (%rdi), %rdi
141 testq %rdi, %rdi
142 je .L22
143 subl $1, 16(%rbx)
144 jne .L21
145 movq 64(%rbx), %rbp
146 #APP
147 # 213 "gconv_db.c" 1
148 ror $2*8+1, %rbp
149 xor %fs:48, %rbp
150 # 0 "" 2
151 #NO_APP
152 testq %rbp, %rbp
153 je .L24
154 movq %rbp, %rdi
155 call __GI__dl_mcount_wrapper_check
156 movq %rbx, %rdi
157 call *%rbp
158 movq (%rbx), %rdi
159 .L24:
160 call __gconv_release_shlib
161 movq $0, (%rbx)
162 .L21:
163 addq $8, %rsp
164 popq %rbx
165 popq %rbp
167 .p2align 4,,10
168 .p2align 3
169 .L22:
170 cmpq $0, 64(%rbx)
171 je .L21
172 leaq __PRETTY_FUNCTION__.9300(%rip), %rcx
173 leaq .LC0(%rip), %rsi
174 leaq .LC1(%rip), %rdi
175 movl $226, %edx
176 call __GI___assert_fail
177 .size __gconv_release_step, .-__gconv_release_step
178 .section .rodata.str1.1
179 .LC2:
180 .string "-"
181 .text
182 .p2align 4,,15
183 .type find_derivation, @function
184 find_derivation:
185 pushq %rbp
186 movq %rsi, %rax
187 movq %rsp, %rbp
188 pushq %r15
189 pushq %r14
190 pushq %r13
191 pushq %r12
192 pushq %rbx
193 movq %rdx, %rbx
194 subq $136, %rsp
195 testq %rsi, %rsi
196 movq %rdi, -136(%rbp)
197 cmove %rdi, %rax
198 testq %rcx, %rcx
199 movq %rsi, -152(%rbp)
200 movq %rcx, -144(%rbp)
201 movq %r8, -176(%rbp)
202 movq %r9, -120(%rbp)
203 movq %rax, -104(%rbp)
204 je .L191
205 movq -144(%rbp), %rax
206 leaq -80(%rbp), %rdi
207 leaq derivation_compare(%rip), %rdx
208 leaq known_derivations(%rip), %rsi
209 movq $0, -64(%rbp)
210 movq $0, -56(%rbp)
211 movq %rax, -80(%rbp)
212 movq -104(%rbp), %rax
213 movq %rax, -72(%rbp)
214 call __GI___tfind
215 testq %rax, %rax
216 je .L192
217 .L97:
218 movq (%rax), %rax
219 movq -176(%rbp), %rdx
220 movq 24(%rax), %r13
221 movq 16(%rax), %rcx
222 movq -120(%rbp), %rax
223 movq %rcx, (%rdx)
224 movq %r13, %r12
225 movq %rcx, -88(%rbp)
226 movq %r13, (%rax)
227 leaq 0(%r13,%r13,2), %rax
228 leaq 0(%r13,%rax,4), %r14
229 salq $3, %r14
230 testq %r12, %r12
231 leaq -104(%rcx,%r14), %rbx
232 je .L193
233 .L44:
234 movl 16(%rbx), %eax
235 leal 1(%rax), %edx
236 testl %eax, %eax
237 movl %edx, 16(%rbx)
238 jne .L37
239 movq 8(%rbx), %rdi
240 testq %rdi, %rdi
241 je .L37
242 call __gconv_find_shlib
243 testq %rax, %rax
244 movq %rax, (%rbx)
245 je .L194
246 movq 24(%rax), %rdx
247 movq 32(%rax), %r15
248 movq 40(%rax), %rax
249 movq $0, 48(%rbx)
250 movq %r15, 56(%rbx)
251 movq %rdx, 40(%rbx)
252 movq %rax, 64(%rbx)
253 xorl %eax, %eax
254 #APP
255 # 409 "gconv_db.c" 1
256 ror $2*8+1, %r15
257 xor %fs:48, %r15
258 # 0 "" 2
259 #NO_APP
260 testq %r15, %r15
261 je .L43
262 movq %r15, %rdi
263 call __GI__dl_mcount_wrapper_check
264 movq %rbx, %rdi
265 call *%r15
266 movq 48(%rbx), %rax
267 .L43:
268 #APP
269 # 415 "gconv_db.c" 1
270 xor %fs:48, %rax
271 rol $2*8+1, %rax
272 # 0 "" 2
273 #NO_APP
274 movq %rax, 48(%rbx)
275 .L37:
276 subq $1, %r12
277 subq $104, %rbx
278 testq %r12, %r12
279 jne .L44
280 .L193:
281 xorl %r8d, %r8d
282 jmp .L32
283 .L192:
284 movl $64, %r12d
285 subq %r12, %rsp
286 leaq 15(%rsp), %rax
287 andq $-16, %rax
288 movq %rax, %r15
289 movq %rax, -160(%rbp)
290 movq -144(%rbp), %rax
291 movq %rax, %rdi
292 movq %rax, (%r15)
293 call __GI_strlen
294 subq %r12, %rsp
295 movq %rax, 8(%r15)
296 movq $0, 16(%r15)
297 leaq 15(%rsp), %r12
298 movq $0, 24(%r15)
299 movq $0, 32(%r15)
300 movq $0, 40(%r15)
301 movq %rbx, %rdi
302 andq $-16, %r12
303 movq %rbx, (%r12)
304 call __GI_strlen
305 movq %rax, 8(%r12)
306 leaq 40(%r12), %rax
307 movq $0, 16(%r12)
308 movq $0, 24(%r12)
309 movq $0, 32(%r12)
310 movq $0, 40(%r12)
311 movq %r12, 40(%r15)
312 movq %rax, -168(%rbp)
313 .L95:
314 movq -160(%rbp), %r15
315 xorl %r14d, %r14d
316 xorl %r13d, %r13d
317 movl $2147483647, -124(%rbp)
318 movl $2147483647, -96(%rbp)
319 movq %r14, -112(%rbp)
320 .p2align 4,,10
321 .p2align 3
322 .L73:
323 cmpl -96(%rbp), %r13d
324 jg .L45
325 jne .L46
326 movl -124(%rbp), %eax
327 cmpl %eax, 16(%r15)
328 jge .L45
329 .L46:
330 movq __gconv_modules_db(%rip), %rbx
331 testq %rbx, %rbx
332 je .L45
333 movq (%r15), %r12
334 jmp .L71
335 .p2align 4,,10
336 .p2align 3
337 .L69:
338 movq 48(%rbx), %rbx
339 testq %rbx, %rbx
340 je .L45
341 .L71:
342 movq (%rbx), %rsi
343 movq %r12, %rdi
344 call __GI_strcmp
345 testl %eax, %eax
346 je .L68
347 jns .L69
348 movq 32(%rbx), %rbx
349 testq %rbx, %rbx
350 jne .L71
351 .p2align 4,,10
352 .p2align 3
353 .L45:
354 movq 40(%r15), %r15
355 testq %r15, %r15
356 je .L72
357 movl 20(%r15), %r13d
358 jmp .L73
359 .p2align 4,,10
360 .p2align 3
361 .L195:
362 subq $64, %rsp
363 movq %r12, %rdi
364 leaq 15(%rsp), %rdx
365 andq $-16, %rdx
366 movq %rdx, %r14
367 movq %r12, (%rdx)
368 call __GI_strlen
369 movq %rax, 8(%r14)
370 movl -88(%rbp), %eax
371 movl %r13d, 20(%r14)
372 movq %rbx, 24(%r14)
373 movq %r15, 32(%r14)
374 movq $0, 40(%r14)
375 movl %eax, 16(%r14)
376 movq -168(%rbp), %rax
377 movq %r14, (%rax)
378 leaq 40(%r14), %rax
379 movq %rax, -168(%rbp)
380 .p2align 4,,10
381 .p2align 3
382 .L55:
383 movq 40(%rbx), %rbx
384 testq %rbx, %rbx
385 je .L45
386 movl 20(%r15), %r13d
387 .L68:
388 movq 8(%rbx), %r12
389 leaq .LC2(%rip), %rdi
390 movl $2, %ecx
391 movl 16(%r15), %r14d
392 movq %r12, %rsi
393 repz cmpsb
394 cmove -104(%rbp), %r12
395 addl 20(%rbx), %r14d
396 movq -136(%rbp), %rsi
397 addl 16(%rbx), %r13d
398 movq %r12, %rdi
399 movl %r14d, -88(%rbp)
400 call __GI_strcmp
401 testl %eax, %eax
402 je .L49
403 movq -152(%rbp), %rax
404 testq %rax, %rax
405 je .L50
406 movq %rax, %rsi
407 movq %r12, %rdi
408 call __GI_strcmp
409 testl %eax, %eax
410 je .L49
411 .L50:
412 cmpl %r13d, -96(%rbp)
413 jg .L110
414 jne .L55
415 movl -88(%rbp), %edx
416 cmpl %edx, -124(%rbp)
417 jle .L55
418 .L110:
419 movq -160(%rbp), %r14
420 movq %r12, %rdi
421 movq (%r14), %rsi
422 call __GI_strcmp
423 testl %eax, %eax
424 je .L58
425 .p2align 4,,10
426 .p2align 3
427 .L196:
428 movq 40(%r14), %r14
429 testq %r14, %r14
430 je .L195
431 movq (%r14), %rsi
432 movq %r12, %rdi
433 call __GI_strcmp
434 testl %eax, %eax
435 jne .L196
436 .L58:
437 cmpl %r13d, 20(%r14)
438 jg .L101
439 jne .L55
440 movl -88(%rbp), %eax
441 cmpl %eax, 16(%r14)
442 jle .L55
443 .p2align 4,,10
444 .p2align 3
445 .L101:
446 movq -160(%rbp), %rdi
447 movq %rbx, 24(%r14)
448 movq %r15, 32(%r14)
449 .p2align 4,,10
450 .p2align 3
451 .L64:
452 movq 24(%rdi), %rax
453 testq %rax, %rax
454 je .L61
455 movq 32(%rdi), %rdx
456 movl 16(%rax), %esi
457 movl 20(%rax), %ecx
458 movq 24(%rdx), %rax
459 testq %rax, %rax
460 je .L62
461 .p2align 4,,10
462 .p2align 3
463 .L63:
464 movq 32(%rdx), %rdx
465 addl 16(%rax), %esi
466 addl 20(%rax), %ecx
467 movq 24(%rdx), %rax
468 testq %rax, %rax
469 jne .L63
470 .L62:
471 movl %esi, 20(%rdi)
472 movl %ecx, 16(%rdi)
473 .L61:
474 movq 40(%rdi), %rdi
475 testq %rdi, %rdi
476 jne .L64
477 movq -112(%rbp), %rax
478 testq %rax, %rax
479 je .L55
480 movl -124(%rbp), %edi
481 movl -96(%rbp), %r8d
482 jmp .L67
483 .p2align 4,,10
484 .p2align 3
485 .L198:
486 jne .L121
487 cmpl %edi, %ecx
488 jge .L121
489 .L65:
490 movq 40(%rax), %rax
491 testq %rax, %rax
492 je .L197
493 .L112:
494 movl %ecx, %edi
495 .L67:
496 movq 24(%rax), %rsi
497 movq 32(%rax), %rcx
498 movl 20(%rcx), %edx
499 addl 16(%rsi), %edx
500 movl 16(%rcx), %ecx
501 addl 20(%rsi), %ecx
502 cmpl %r8d, %edx
503 movl %edx, 20(%rax)
504 movl %ecx, 16(%rax)
505 jge .L198
506 movq 40(%rax), %rax
507 movl %edx, %r8d
508 testq %rax, %rax
509 jne .L112
510 .L197:
511 movl %r8d, -96(%rbp)
512 movl %ecx, -124(%rbp)
513 jmp .L55
514 .p2align 4,,10
515 .p2align 3
516 .L49:
517 movq -112(%rbp), %rax
518 testq %rax, %rax
519 je .L51
520 movq %rax, %r14
521 jmp .L53
522 .p2align 4,,10
523 .p2align 3
524 .L199:
525 movq 40(%r14), %r14
526 testq %r14, %r14
527 je .L51
528 .L53:
529 movq (%r14), %rsi
530 movq %r12, %rdi
531 call __GI_strcmp
532 testl %eax, %eax
533 jne .L199
534 cmpl %r13d, 20(%r14)
535 jg .L99
536 je .L200
537 .L54:
538 cmpl %r13d, -96(%rbp)
539 jg .L108
540 .L201:
541 jne .L55
542 movl -124(%rbp), %ecx
543 movl -88(%rbp), %eax
544 cmpl %eax, %ecx
545 cmovle %ecx, %eax
546 movl %eax, -124(%rbp)
547 jmp .L55
548 .p2align 4,,10
549 .p2align 3
550 .L51:
551 subq $64, %rsp
552 movq %r12, %rdi
553 leaq 15(%rsp), %rdx
554 andq $-16, %rdx
555 movq %rdx, %r14
556 movq %r12, (%rdx)
557 call __GI_strlen
558 movq %rax, 8(%r14)
559 movl -88(%rbp), %eax
560 cmpl %r13d, -96(%rbp)
561 movl %r13d, 20(%r14)
562 movq %rbx, 24(%r14)
563 movq %r15, 32(%r14)
564 movl %eax, 16(%r14)
565 movq -112(%rbp), %rax
566 movq %r14, -112(%rbp)
567 movq %rax, 40(%r14)
568 jle .L201
569 .L108:
570 movl -88(%rbp), %eax
571 movl %r13d, -96(%rbp)
572 movl %eax, -124(%rbp)
573 jmp .L55
574 .p2align 4,,10
575 .p2align 3
576 .L200:
577 movl -88(%rbp), %eax
578 cmpl %eax, 16(%r14)
579 jle .L54
580 .p2align 4,,10
581 .p2align 3
582 .L99:
583 movl -88(%rbp), %eax
584 movq %rbx, 24(%r14)
585 movq %r15, 32(%r14)
586 movl %r13d, 20(%r14)
587 movl %eax, 16(%r14)
588 jmp .L54
589 .p2align 4,,10
590 .p2align 3
591 .L72:
592 movq -112(%rbp), %r14
593 testq %r14, %r14
594 je .L74
595 movq 40(%r14), %rax
596 testq %rax, %rax
597 je .L75
598 movl 20(%r14), %ecx
599 cmpl %ecx, 20(%rax)
600 jl .L113
601 jne .L75
602 movl 16(%r14), %ecx
603 cmpl %ecx, 16(%rax)
604 cmovl %rax, %r14
605 .p2align 4,,10
606 .p2align 3
607 .L75:
608 movq 32(%r14), %rax
609 testq %rax, %rax
610 je .L76
611 xorl %r12d, %r12d
612 jmp .L77
613 .p2align 4,,10
614 .p2align 3
615 .L115:
616 movq %r13, %r12
617 .L77:
618 movq 32(%rax), %rax
619 leaq 1(%r12), %r13
620 testq %rax, %rax
621 jne .L115
622 leaq 0(%r13,%r13,2), %rax
623 leaq 0(%r13,%rax,4), %rdi
624 salq $3, %rdi
625 call malloc@PLT
626 testq %rax, %rax
627 movq %rax, %rbx
628 je .L78
629 movq -120(%rbp), %rax
630 testq %r13, %r13
631 movq %r13, (%rax)
632 je .L79
633 leaq (%r12,%r12,2), %rax
634 movq $0, -112(%rbp)
635 movq $0, -88(%rbp)
636 leaq (%r12,%rax,4), %rax
637 leaq (%rbx,%rax,8), %r15
638 movq %r15, %rax
639 movq %r14, %r15
640 movq %rax, %r14
641 jmp .L92
642 .p2align 4,,10
643 .p2align 3
644 .L85:
645 movq %r14, %rsi
646 call __gconv_get_builtin_trans
647 .L91:
648 subq $104, %r14
649 testq %r12, %r12
650 movq 32(%r15), %r15
651 leaq -1(%r12), %rax
652 movq %r12, %r13
653 je .L202
654 movq %rax, %r12
655 .L92:
656 testq %r12, %r12
657 je .L203
658 movq 32(%r15), %rax
659 movq (%rax), %rax
660 movq %rax, 24(%r14)
661 .L82:
662 movq -120(%rbp), %rax
663 cmpq %r13, (%rax)
664 je .L204
665 leaq 0(%r13,%r13,2), %rax
666 leaq 0(%r13,%rax,4), %rax
667 movq 24(%rbx,%rax,8), %rax
668 movq %rax, 32(%r14)
669 .L84:
670 movq 24(%r15), %rax
671 movl $1, 16(%r14)
672 movq $0, 96(%r14)
673 movq 24(%rax), %rdi
674 cmpb $47, (%rdi)
675 jne .L85
676 call __gconv_find_shlib
677 testq %rax, %rax
678 je .L189
679 movq (%rax), %rsi
680 movq %rax, (%r14)
681 movq %rsi, 8(%r14)
682 movq 24(%rax), %rsi
683 movq %rsi, 40(%r14)
684 movq 32(%rax), %rsi
685 movq 40(%rax), %rax
686 movq $0, 48(%r14)
687 movq %rsi, 56(%r14)
688 #APP
689 # 308 "gconv_db.c" 1
690 ror $2*8+1, %rsi
691 xor %fs:48, %rsi
692 # 0 "" 2
693 #NO_APP
694 testq %rsi, %rsi
695 movq %rax, 64(%r14)
696 je .L117
697 movq %rsi, %rdi
698 movq %rsi, -96(%rbp)
699 call __GI__dl_mcount_wrapper_check
700 movq %r14, %rdi
701 movq -96(%rbp), %rsi
702 call *%rsi
703 testl %eax, %eax
704 jne .L88
705 movq 48(%r14), %rax
706 .L87:
707 #APP
708 # 329 "gconv_db.c" 1
709 xor %fs:48, %rax
710 rol $2*8+1, %rax
711 # 0 "" 2
712 #NO_APP
713 movq %rax, 48(%r14)
714 jmp .L91
715 .p2align 4,,10
716 .p2align 3
717 .L203:
718 movq -144(%rbp), %rdi
719 call __GI___strdup
720 testq %rax, %rax
721 movq %rax, -88(%rbp)
722 movq %rax, 24(%rbx)
723 jne .L82
724 movl $1, %r13d
725 .L81:
726 movq -120(%rbp), %rax
727 cmpq %r13, (%rax)
728 jbe .L205
729 xorl %r8d, %r8d
730 .L89:
731 leaq 0(%r13,%r13,2), %rax
732 movq -120(%rbp), %r12
733 movl %r8d, %r14d
734 leaq 0(%r13,%rax,4), %rax
735 leaq (%rbx,%rax,8), %r15
736 .L93:
737 movq %r15, %rdi
738 addq $1, %r13
739 addq $104, %r15
740 call __gconv_release_step
741 cmpq (%r12), %r13
742 jb .L93
743 movq %rbx, %rdi
744 movl %r14d, -96(%rbp)
745 xorl %ebx, %ebx
746 call free@PLT
747 movq -88(%rbp), %rdi
748 xorl %r13d, %r13d
749 call free@PLT
750 movq -112(%rbp), %rdi
751 call free@PLT
752 movq -120(%rbp), %rax
753 movl -96(%rbp), %r8d
754 movq $0, (%rax)
755 movq -176(%rbp), %rax
756 testl %r8d, %r8d
757 movq $0, (%rax)
758 jne .L94
759 movl $1, %r8d
760 jmp .L94
761 .p2align 4,,10
762 .p2align 3
763 .L204:
764 movq (%r15), %rdi
765 call __GI___strdup
766 testq %rax, %rax
767 movq %rax, -112(%rbp)
768 movq %rax, 32(%r14)
769 jne .L84
770 .L189:
771 leaq 1(%r12), %r13
772 jmp .L81
773 .p2align 4,,10
774 .p2align 3
775 .L117:
776 xorl %eax, %eax
777 jmp .L87
778 .L202:
779 movq -120(%rbp), %rax
780 movq (%rax), %r13
781 .L79:
782 movq -176(%rbp), %rax
783 xorl %r8d, %r8d
784 movq %rbx, (%rax)
785 .L94:
786 movq -144(%rbp), %rdi
787 movl %r8d, -88(%rbp)
788 call __GI_strlen
789 movq -104(%rbp), %rdi
790 leaq 1(%rax), %r15
791 call __GI_strlen
792 leaq 1(%rax), %r12
793 leaq 32(%r15,%r12), %rdi
794 call malloc@PLT
795 testq %rax, %rax
796 movq %rax, %r14
797 movl -88(%rbp), %r8d
798 je .L32
799 leaq 32(%rax), %rdi
800 movq -144(%rbp), %rsi
801 movq %r15, %rdx
802 movq %rdi, (%rax)
803 call __GI_mempcpy@PLT
804 movq -104(%rbp), %rsi
805 movq %r12, %rdx
806 movq %rax, %rdi
807 call __GI_memcpy@PLT
808 leaq derivation_compare(%rip), %rdx
809 leaq known_derivations(%rip), %rsi
810 movq %rax, 8(%r14)
811 movq %rbx, 16(%r14)
812 movq %r13, 24(%r14)
813 movq %r14, %rdi
814 call __GI___tsearch
815 testq %rax, %rax
816 movl -88(%rbp), %r8d
817 je .L206
818 .L32:
819 leaq -40(%rbp), %rsp
820 movl %r8d, %eax
821 popq %rbx
822 popq %r12
823 popq %r13
824 popq %r14
825 popq %r15
826 popq %rbp
828 .p2align 4,,10
829 .p2align 3
830 .L191:
831 movq -104(%rbp), %rax
832 movq %rdx, -80(%rbp)
833 leaq -80(%rbp), %rdi
834 leaq derivation_compare(%rip), %rdx
835 leaq known_derivations(%rip), %rsi
836 movq $0, -64(%rbp)
837 movq $0, -56(%rbp)
838 movq %rax, -72(%rbp)
839 call __GI___tfind
840 testq %rax, %rax
841 jne .L97
842 subq $64, %rsp
843 movq %rbx, %rdi
844 leaq 15(%rsp), %rax
845 andq $-16, %rax
846 movq %rax, %r15
847 movq %rbx, (%rax)
848 movq %rax, -160(%rbp)
849 call __GI_strlen
850 movq %rax, 8(%r15)
851 leaq 40(%r15), %rax
852 movq $0, 16(%r15)
853 movq $0, 24(%r15)
854 movq $0, 32(%r15)
855 movq $0, 40(%r15)
856 movq %rax, -168(%rbp)
857 movq %rbx, -144(%rbp)
858 jmp .L95
859 .p2align 4,,10
860 .p2align 3
861 .L121:
862 movl %edi, %ecx
863 jmp .L65
864 .p2align 4,,10
865 .p2align 3
866 .L74:
867 movq -176(%rbp), %rax
868 xorl %ebx, %ebx
869 xorl %r13d, %r13d
870 movl $1, %r8d
871 movq $0, (%rax)
872 movq -120(%rbp), %rax
873 movq $0, (%rax)
874 jmp .L94
875 .L113:
876 movq %rax, %r14
877 jmp .L75
878 .L88:
879 movl %eax, %r8d
880 xorl %eax, %eax
881 subq $1, %r13
882 #APP
883 # 321 "gconv_db.c" 1
884 xor %fs:48, %rax
885 rol $2*8+1, %rax
886 # 0 "" 2
887 #NO_APP
888 movq %rax, 64(%r14)
889 movq -120(%rbp), %rax
890 cmpq %r13, (%rax)
891 ja .L89
892 movq %rbx, %rdi
893 movl %r8d, -96(%rbp)
894 xorl %ebx, %ebx
895 call free@PLT
896 movq -88(%rbp), %rdi
897 xorl %r13d, %r13d
898 call free@PLT
899 movq -112(%rbp), %rdi
900 call free@PLT
901 movq -120(%rbp), %rax
902 movl -96(%rbp), %r8d
903 movq $0, (%rax)
904 movq -176(%rbp), %rax
905 movq $0, (%rax)
906 jmp .L94
907 .L76:
908 xorl %edi, %edi
909 call malloc@PLT
910 testq %rax, %rax
911 movq %rax, %rbx
912 jne .L207
913 .L78:
914 movq -120(%rbp), %rax
915 xorl %ebx, %ebx
916 xorl %r13d, %r13d
917 movl $3, %r8d
918 movq $0, (%rax)
919 movq -176(%rbp), %rax
920 movq $0, (%rax)
921 jmp .L94
922 .L206:
923 movq %r14, %rdi
924 call free@PLT
925 movl -88(%rbp), %r8d
926 jmp .L32
927 .L194:
928 subl $1, 16(%rbx)
929 cmpq %r12, %r13
930 jbe .L42
931 leaq (%r12,%r12,2), %rax
932 movq -88(%rbp), %rcx
933 leaq (%r12,%rax,4), %rax
934 leaq (%rcx,%r14), %r13
935 leaq (%rcx,%rax,8), %rbx
936 .p2align 4,,10
937 .p2align 3
938 .L41:
939 movq %rbx, %rdi
940 addq $104, %rbx
941 call __gconv_release_step
942 cmpq %rbx, %r13
943 jne .L41
944 .L42:
945 movl $1, %r8d
946 jmp .L32
947 .L207:
948 movq -120(%rbp), %rax
949 xorl %r13d, %r13d
950 movq $0, (%rax)
951 jmp .L79
952 .L205:
953 movq %rbx, %rdi
954 xorl %r13d, %r13d
955 xorl %ebx, %ebx
956 call free@PLT
957 movq -88(%rbp), %rdi
958 call free@PLT
959 movq -112(%rbp), %rdi
960 call free@PLT
961 movq -120(%rbp), %rax
962 movl $1, %r8d
963 movq $0, (%rax)
964 movq -176(%rbp), %rax
965 movq $0, (%rax)
966 jmp .L94
967 .size find_derivation, .-find_derivation
968 .p2align 4,,15
969 .globl __gconv_compare_alias
970 .hidden __gconv_compare_alias
971 .type __gconv_compare_alias, @function
972 __gconv_compare_alias:
973 pushq %r12
974 pushq %rbp
975 movq %rsi, %rbp
976 pushq %rbx
977 movq %rdi, %rbx
978 subq $32, %rsp
979 call __gconv_load_conf
980 leaq 12(%rsp), %rdx
981 movq %rbp, %rsi
982 movq %rbx, %rdi
983 call __gconv_compare_alias_cache
984 testl %eax, %eax
985 jne .L209
986 movl 12(%rsp), %eax
987 addq $32, %rsp
988 popq %rbx
989 popq %rbp
990 popq %r12
992 .p2align 4,,10
993 .p2align 3
994 .L209:
995 leaq 16(%rsp), %r12
996 leaq __gconv_alias_compare(%rip), %rdx
997 leaq __gconv_alias_db(%rip), %rsi
998 movq %rbp, 16(%rsp)
999 movq %r12, %rdi
1000 call __GI___tfind
1001 testq %rax, %rax
1002 je .L212
1003 movq (%rax), %rax
1004 movq 8(%rax), %rax
1005 testq %rax, %rax
1006 cmovne %rax, %rbp
1007 .L212:
1008 leaq __gconv_alias_compare(%rip), %rdx
1009 leaq __gconv_alias_db(%rip), %rsi
1010 movq %r12, %rdi
1011 movq %rbx, 16(%rsp)
1012 call __GI___tfind
1013 testq %rax, %rax
1014 je .L214
1015 movq (%rax), %rax
1016 movq 8(%rax), %rax
1017 testq %rax, %rax
1018 cmovne %rax, %rbx
1019 .L214:
1020 movq %rbp, %rsi
1021 movq %rbx, %rdi
1022 call __GI_strcmp
1023 addq $32, %rsp
1024 popq %rbx
1025 popq %rbp
1026 popq %r12
1028 .size __gconv_compare_alias, .-__gconv_compare_alias
1029 .p2align 4,,15
1030 .globl __gconv_find_transform
1031 .hidden __gconv_find_transform
1032 .type __gconv_find_transform, @function
1033 __gconv_find_transform:
1034 pushq %r15
1035 pushq %r14
1036 movq %rcx, %r14
1037 pushq %r13
1038 pushq %r12
1039 movl %r8d, %r13d
1040 pushq %rbp
1041 pushq %rbx
1042 movq %rdi, %rbp
1043 movq %rsi, %rbx
1044 movq %rdx, %r12
1045 subq $40, %rsp
1046 call __gconv_load_conf
1047 #APP
1048 # 731 "gconv_db.c" 1
1049 movl %fs:24,%eax
1050 # 0 "" 2
1051 #NO_APP
1052 testl %eax, %eax
1053 jne .L221
1054 movl $1, %edx
1055 #APP
1056 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
1057 cmpxchgl %edx, __gconv_lock(%rip)
1058 # 0 "" 2
1059 #NO_APP
1060 .L222:
1061 movl %r13d, %r8d
1062 movq %r14, %rcx
1063 movq %r12, %rdx
1064 movq %rbx, %rsi
1065 movq %rbp, %rdi
1066 call __gconv_lookup_cache
1067 cmpl $2, %eax
1068 movl %eax, %r8d
1069 je .L223
1070 #APP
1071 # 737 "gconv_db.c" 1
1072 movl %fs:24,%eax
1073 # 0 "" 2
1074 #NO_APP
1075 testl %eax, %eax
1076 jne .L224
1077 subl $1, __gconv_lock(%rip)
1078 .L220:
1079 addq $40, %rsp
1080 movl %r8d, %eax
1081 popq %rbx
1082 popq %rbp
1083 popq %r12
1084 popq %r13
1085 popq %r14
1086 popq %r15
1088 .p2align 4,,10
1089 .p2align 3
1090 .L223:
1091 cmpq $0, __gconv_modules_db(%rip)
1092 je .L266
1093 leaq 16(%rsp), %r15
1094 leaq __gconv_alias_compare(%rip), %rdx
1095 leaq __gconv_alias_db(%rip), %rsi
1096 movq %rbx, 16(%rsp)
1097 movq %r15, %rdi
1098 call __GI___tfind
1099 xorl %ecx, %ecx
1100 testq %rax, %rax
1101 je .L228
1102 movq (%rax), %rax
1103 movq 8(%rax), %rcx
1104 .L228:
1105 leaq __gconv_alias_compare(%rip), %rdx
1106 leaq __gconv_alias_db(%rip), %rsi
1107 movq %r15, %rdi
1108 movq %rcx, 8(%rsp)
1109 movq %rbp, 16(%rsp)
1110 xorl %r15d, %r15d
1111 call __GI___tfind
1112 testq %rax, %rax
1113 movq 8(%rsp), %rcx
1114 je .L229
1115 movq (%rax), %rax
1116 movq 8(%rax), %r15
1117 .L229:
1118 andl $1, %r13d
1119 jne .L267
1120 .L230:
1121 movq %r12, %r8
1122 movq %r14, %r9
1123 movq %rbx, %rdx
1124 movq %r15, %rsi
1125 movq %rbp, %rdi
1126 call find_derivation
1127 movl %eax, %r8d
1128 #APP
1129 # 771 "gconv_db.c" 1
1130 movl %fs:24,%eax
1131 # 0 "" 2
1132 #NO_APP
1133 testl %eax, %eax
1134 jne .L234
1135 subl $1, __gconv_lock(%rip)
1136 .L235:
1137 testl %r8d, %r8d
1138 jne .L220
1139 xorl %r8d, %r8d
1140 cmpq $0, (%r12)
1141 sete %r8b
1142 jmp .L220
1143 .p2align 4,,10
1144 .p2align 3
1145 .L266:
1146 #APP
1147 # 744 "gconv_db.c" 1
1148 movl %fs:24,%eax
1149 # 0 "" 2
1150 #NO_APP
1151 testl %eax, %eax
1152 jne .L227
1153 subl $1, __gconv_lock(%rip)
1154 movl $1, %r8d
1155 jmp .L220
1156 .p2align 4,,10
1157 .p2align 3
1158 .L221:
1159 xorl %eax, %eax
1160 movl $1, %edx
1161 lock cmpxchgl %edx, __gconv_lock(%rip)
1162 je .L222
1163 leaq __gconv_lock(%rip), %rdi
1164 call __lll_lock_wait_private
1165 jmp .L222
1166 .p2align 4,,10
1167 .p2align 3
1168 .L224:
1169 xorl %eax, %eax
1170 #APP
1171 # 737 "gconv_db.c" 1
1172 xchgl %eax, __gconv_lock(%rip)
1173 # 0 "" 2
1174 #NO_APP
1175 cmpl $1, %eax
1176 jle .L220
1177 .L265:
1178 xorl %r10d, %r10d
1179 movl $1, %edx
1180 movl $129, %esi
1181 leaq __gconv_lock(%rip), %rdi
1182 movl $202, %eax
1183 #APP
1184 # 763 "gconv_db.c" 1
1185 syscall
1187 # 0 "" 2
1188 #NO_APP
1189 jmp .L220
1190 .p2align 4,,10
1191 .p2align 3
1192 .L267:
1193 movq %rbx, %rsi
1194 movq %rbp, %rdi
1195 movq %rcx, 8(%rsp)
1196 call __GI_strcmp
1197 testl %eax, %eax
1198 je .L231
1199 testq %r15, %r15
1200 movq 8(%rsp), %rcx
1201 je .L232
1202 movq %rbx, %rsi
1203 movq %r15, %rdi
1204 call __GI_strcmp
1205 testl %eax, %eax
1206 movq 8(%rsp), %rcx
1207 je .L231
1208 .L232:
1209 testq %rcx, %rcx
1210 je .L230
1211 movq %rcx, %rsi
1212 movq %rbp, %rdi
1213 movq %rcx, 8(%rsp)
1214 call __GI_strcmp
1215 testl %eax, %eax
1216 je .L231
1217 testq %r15, %r15
1218 movq 8(%rsp), %rcx
1219 je .L230
1220 movq %rcx, %rsi
1221 movq %r15, %rdi
1222 call __GI_strcmp
1223 testl %eax, %eax
1224 movq 8(%rsp), %rcx
1225 jne .L230
1226 .p2align 4,,10
1227 .p2align 3
1228 .L231:
1229 #APP
1230 # 763 "gconv_db.c" 1
1231 movl %fs:24,%eax
1232 # 0 "" 2
1233 #NO_APP
1234 testl %eax, %eax
1235 jne .L233
1236 subl $1, __gconv_lock(%rip)
1237 movl $-1, %r8d
1238 jmp .L220
1239 .p2align 4,,10
1240 .p2align 3
1241 .L234:
1242 xorl %eax, %eax
1243 #APP
1244 # 771 "gconv_db.c" 1
1245 xchgl %eax, __gconv_lock(%rip)
1246 # 0 "" 2
1247 #NO_APP
1248 cmpl $1, %eax
1249 jle .L235
1250 xorl %r10d, %r10d
1251 movl $1, %edx
1252 movl $129, %esi
1253 leaq __gconv_lock(%rip), %rdi
1254 movl $202, %eax
1255 #APP
1256 # 771 "gconv_db.c" 1
1257 syscall
1259 # 0 "" 2
1260 #NO_APP
1261 jmp .L235
1262 .p2align 4,,10
1263 .p2align 3
1264 .L227:
1265 xorl %eax, %eax
1266 #APP
1267 # 744 "gconv_db.c" 1
1268 xchgl %eax, __gconv_lock(%rip)
1269 # 0 "" 2
1270 #NO_APP
1271 cmpl $1, %eax
1272 movl $1, %r8d
1273 jle .L220
1274 jmp .L265
1275 .L233:
1276 xorl %eax, %eax
1277 #APP
1278 # 763 "gconv_db.c" 1
1279 xchgl %eax, __gconv_lock(%rip)
1280 # 0 "" 2
1281 #NO_APP
1282 cmpl $1, %eax
1283 movl $-1, %r8d
1284 jle .L220
1285 jmp .L265
1286 .size __gconv_find_transform, .-__gconv_find_transform
1287 .p2align 4,,15
1288 .globl __gconv_close_transform
1289 .hidden __gconv_close_transform
1290 .type __gconv_close_transform, @function
1291 __gconv_close_transform:
1292 pushq %r13
1293 pushq %r12
1294 movq %rdi, %r13
1295 pushq %rbp
1296 pushq %rbx
1297 movq %rsi, %r12
1298 subq $8, %rsp
1299 #APP
1300 # 790 "gconv_db.c" 1
1301 movl %fs:24,%eax
1302 # 0 "" 2
1303 #NO_APP
1304 testl %eax, %eax
1305 jne .L269
1306 movl $1, %edx
1307 #APP
1308 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
1309 cmpxchgl %edx, __gconv_lock(%rip)
1310 # 0 "" 2
1311 #NO_APP
1312 .L270:
1313 testq %r12, %r12
1314 je .L271
1315 leaq (%r12,%r12,2), %rax
1316 leaq -104(%r13), %rbp
1317 leaq (%r12,%rax,4), %rax
1318 leaq -104(%r13,%rax,8), %rbx
1319 .p2align 4,,10
1320 .p2align 3
1321 .L272:
1322 movq %rbx, %rdi
1323 subq $104, %rbx
1324 call __gconv_release_step
1325 cmpq %rbp, %rbx
1326 jne .L272
1327 .L271:
1328 movq %r12, %rsi
1329 movq %r13, %rdi
1330 call __gconv_release_cache
1331 #APP
1332 # 804 "gconv_db.c" 1
1333 movl %fs:24,%eax
1334 # 0 "" 2
1335 #NO_APP
1336 testl %eax, %eax
1337 jne .L273
1338 subl $1, __gconv_lock(%rip)
1339 .L274:
1340 addq $8, %rsp
1341 xorl %eax, %eax
1342 popq %rbx
1343 popq %rbp
1344 popq %r12
1345 popq %r13
1347 .p2align 4,,10
1348 .p2align 3
1349 .L269:
1350 xorl %eax, %eax
1351 movl $1, %edx
1352 lock cmpxchgl %edx, __gconv_lock(%rip)
1353 je .L270
1354 leaq __gconv_lock(%rip), %rdi
1355 call __lll_lock_wait_private
1356 jmp .L270
1357 .p2align 4,,10
1358 .p2align 3
1359 .L273:
1360 xorl %eax, %eax
1361 #APP
1362 # 804 "gconv_db.c" 1
1363 xchgl %eax, __gconv_lock(%rip)
1364 # 0 "" 2
1365 #NO_APP
1366 cmpl $1, %eax
1367 jle .L274
1368 xorl %r10d, %r10d
1369 movl $1, %edx
1370 movl $129, %esi
1371 leaq __gconv_lock(%rip), %rdi
1372 movl $202, %eax
1373 #APP
1374 # 804 "gconv_db.c" 1
1375 syscall
1377 # 0 "" 2
1378 #NO_APP
1379 jmp .L274
1380 .size __gconv_close_transform, .-__gconv_close_transform
1381 .section __libc_freeres_fn
1382 .p2align 4,,15
1383 .type free_modules_db, @function
1384 free_modules_db:
1385 pushq %rbp
1386 pushq %rbx
1387 movq %rdi, %rbx
1388 subq $8, %rsp
1389 movq 32(%rdi), %rdi
1390 testq %rdi, %rdi
1391 jne .L293
1392 movq 48(%rbx), %rdi
1393 testq %rdi, %rdi
1394 je .L284
1395 jmp .L294
1396 .p2align 4,,10
1397 .p2align 3
1398 .L283:
1399 testq %rbp, %rbp
1400 movq %rbp, %rbx
1401 je .L295
1402 .L284:
1403 movq 24(%rbx), %rax
1404 movq 40(%rbx), %rbp
1405 cmpb $47, (%rax)
1406 jne .L283
1407 movq %rbx, %rdi
1408 movq %rbp, %rbx
1409 call free@PLT
1410 testq %rbp, %rbp
1411 jne .L284
1412 .L295:
1413 addq $8, %rsp
1414 popq %rbx
1415 popq %rbp
1417 .p2align 4,,10
1418 .p2align 3
1419 .L293:
1420 call free_modules_db
1421 movq 48(%rbx), %rdi
1422 testq %rdi, %rdi
1423 je .L284
1424 .L294:
1425 call free_modules_db
1426 jmp .L284
1427 .size free_modules_db, .-free_modules_db
1428 .p2align 4,,15
1429 .type free_mem, @function
1430 free_mem:
1431 subq $8, %rsp
1432 call _nl_locale_subfreeres
1433 call _nl_finddomain_subfreeres
1434 movq __gconv_alias_db(%rip), %rdi
1435 testq %rdi, %rdi
1436 je .L297
1437 movq free@GOTPCREL(%rip), %rsi
1438 call __GI___tdestroy
1439 .L297:
1440 movq __gconv_modules_db(%rip), %rdi
1441 testq %rdi, %rdi
1442 je .L298
1443 call free_modules_db
1444 .L298:
1445 movq known_derivations(%rip), %rdi
1446 testq %rdi, %rdi
1447 je .L296
1448 leaq free_derivation(%rip), %rsi
1449 addq $8, %rsp
1450 jmp __GI___tdestroy
1451 .p2align 4,,10
1452 .p2align 3
1453 .L296:
1454 addq $8, %rsp
1456 .size free_mem, .-free_mem
1457 .section .rodata.str1.16,"aMS",@progbits,1
1458 .align 16
1459 .type __PRETTY_FUNCTION__.9300, @object
1460 .size __PRETTY_FUNCTION__.9300, 21
1461 __PRETTY_FUNCTION__.9300:
1462 .string "__gconv_release_step"
1463 .section __libc_subfreeres,"aw",@progbits
1464 .align 8
1465 .type __elf_set___libc_subfreeres_element_free_mem__, @object
1466 .size __elf_set___libc_subfreeres_element_free_mem__, 8
1467 __elf_set___libc_subfreeres_element_free_mem__:
1468 .quad free_mem
1469 .local known_derivations
1470 .comm known_derivations,8,8
1471 .hidden __gconv_lock
1472 .comm __gconv_lock,4,4
1473 .hidden __gconv_modules_db
1474 .comm __gconv_modules_db,8,8
1475 .hidden __gconv_alias_db
1476 .comm __gconv_alias_db,8,8
1477 .hidden _nl_finddomain_subfreeres
1478 .hidden _nl_locale_subfreeres
1479 .hidden __gconv_release_cache
1480 .hidden __lll_lock_wait_private
1481 .hidden __gconv_lookup_cache
1482 .hidden __gconv_compare_alias_cache
1483 .hidden __gconv_load_conf
1484 .hidden __gconv_get_builtin_trans
1485 .hidden __gconv_find_shlib
1486 .hidden __gconv_release_shlib