clarify the purpose of this project
[nyanglibc.git] / iconv / gconv_conf.shared.s.in
blob46f579f5336ba450e6187ab808123e2f98421f7c
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 .section .rodata.str1.8,"aMS",@progbits,1
7 .align 8
8 .LC0:
9 .string "/root/wip/nyanglibc/fork/iconv/gconv_conf.c"
10 .section .rodata.str1.1,"aMS",@progbits,1
11 .LC1:
12 .string "result == NULL"
13 .LC2:
14 .string "default_gconv_path[0] == '/'"
15 .LC3:
16 .string ":"
17 .LC4:
18 .string "elem != NULL"
19 .LC5:
20 .string "cwd != NULL"
21 #NO_APP
22 .text
23 .p2align 4,,15
24 .type __gconv_get_path, @function
25 __gconv_get_path:
26 pushq %rbp
27 movq %rsp, %rbp
28 pushq %r15
29 pushq %r14
30 pushq %r13
31 pushq %r12
32 pushq %rbx
33 subq $56, %rsp
34 movq __gconv_path_elem@GOTPCREL(%rip), %rax
35 cmpq $0, (%rax)
36 jne .L28
37 movq __gconv_path_envvar(%rip), %rbx
38 movq default_gconv_path_bytes_n@GOTPCREL(%rip), %rax
39 testq %rbx, %rbx
40 movq (%rax), %r12
41 je .L29
42 movq %rbx, %rdi
43 call __GI_strlen
44 leaq 1(%r12,%rax), %r14
45 movq %rbx, %rsi
46 movq %rax, %rdx
47 leaq 30(%r14), %rcx
48 andq $-16, %rcx
49 subq %rcx, %rsp
50 leaq 15(%rsp), %rdi
51 andq $-16, %rdi
52 movq %rdi, -56(%rbp)
53 call __GI_mempcpy@PLT
54 movq default_gconv_path@GOTPCREL(%rip), %rbx
55 leaq 1(%rax), %rdi
56 movq %r12, %rdx
57 movb $58, (%rax)
58 movq %rbx, %rsi
59 call __GI_memcpy@PLT
60 xorl %esi, %esi
61 xorl %edi, %edi
62 call __GI___getcwd
63 testq %rax, %rax
64 movq %rax, %r13
65 je .L18
66 movq %rax, %rdi
67 call __GI_strlen
68 movq %rax, -80(%rbp)
69 .L6:
70 cmpb $47, (%rbx)
71 jne .L30
72 movq -56(%rbp), %rax
73 movl $58, %esi
74 movq %rax, %rdi
75 movq %rax, -96(%rbp)
76 call __GI_strchr
77 movq %rax, %rbx
78 movq -80(%rbp), %rax
79 addq $1, %rax
80 testq %rbx, %rbx
81 movq %rax, -72(%rbp)
82 je .L19
83 movl $1, %r15d
84 xorl %ecx, %ecx
85 jmp .L10
86 .p2align 4,,10
87 .p2align 3
88 .L21:
89 movq %rax, %rbx
90 .L10:
91 leal 1(%r15), %eax
92 addq $1, %rcx
93 cmpq %rcx, %rbx
94 movl %eax, %r12d
95 je .L9
96 leal 2(%r15), %r12d
97 movl %eax, %r15d
98 .L9:
99 leaq 1(%rbx), %rdi
100 movl $58, %esi
101 call __GI_strchr
102 testq %rax, %rax
103 movq %rbx, %rcx
104 jne .L21
105 movslq %r12d, %rdi
106 leal -1(%r15), %r8d
107 movslq %r15d, %r12
108 movq -72(%rbp), %r15
109 movq %rdi, %rax
110 movslq %r8d, %rdi
111 salq $4, %rax
112 imulq %rdi, %r15
113 .L8:
114 leaq (%rax,%r12), %rdi
115 addq %r14, %rdi
116 addq %r15, %rdi
117 call malloc@PLT
118 testq %rax, %rax
119 movq %rax, -88(%rbp)
120 je .L22
121 addq $1, %r12
122 movq -96(%rbp), %rdi
123 leaq .LC3(%rip), %rsi
124 salq $4, %r12
125 leaq (%rax,%r12), %r14
126 movq __gconv_max_path_elem_len@GOTPCREL(%rip), %rax
127 movq $0, (%rax)
128 leaq -56(%rbp), %rax
129 movq %rax, %rdx
130 movq %rax, -72(%rbp)
131 call __GI___strtok_r
132 testq %rax, %rax
133 movq %rax, %r15
134 je .L31
135 movq -88(%rbp), %rbx
136 xorl %r12d, %r12d
137 .p2align 4,,10
138 .p2align 3
139 .L17:
140 movq %r14, (%rbx)
141 cmpb $47, (%r15)
142 je .L13
143 testq %r13, %r13
144 je .L32
145 movq -80(%rbp), %rdx
146 movq %r14, %rdi
147 movq %r13, %rsi
148 call __GI_mempcpy@PLT
149 leaq 1(%rax), %r14
150 movb $47, (%rax)
151 .L13:
152 movq %r15, %rsi
153 movq %r14, %rdi
154 call __GI_stpcpy@PLT
155 cmpb $47, -1(%rax)
156 je .L15
157 movb $47, (%rax)
158 addq $1, %rax
159 .L15:
160 movq __gconv_max_path_elem_len@GOTPCREL(%rip), %rcx
161 movq %rax, %rdx
162 subq (%rbx), %rdx
163 cmpq (%rcx), %rdx
164 movq %rdx, 8(%rbx)
165 jbe .L16
166 movq %rdx, (%rcx)
167 .L16:
168 movq -72(%rbp), %rdx
169 leaq .LC3(%rip), %rsi
170 xorl %edi, %edi
171 movb $0, (%rax)
172 leaq 1(%rax), %r14
173 addl $1, %r12d
174 addq $16, %rbx
175 call __GI___strtok_r
176 testq %rax, %rax
177 movq %rax, %r15
178 jne .L17
179 movslq %r12d, %r12
180 salq $4, %r12
181 addq -88(%rbp), %r12
182 movq $0, (%r12)
183 movq $0, 8(%r12)
184 .L11:
185 movq -88(%rbp), %rsi
186 movq __gconv_path_elem@GOTPCREL(%rip), %rax
187 movq %r13, %rdi
188 movq %rsi, (%rax)
189 call free@PLT
190 leaq -40(%rbp), %rsp
191 popq %rbx
192 popq %r12
193 popq %r13
194 popq %r14
195 popq %r15
196 popq %rbp
198 .p2align 4,,10
199 .p2align 3
200 .L22:
201 leaq empty_path_elem(%rip), %rax
202 movq %rax, -88(%rbp)
203 jmp .L11
204 .p2align 4,,10
205 .p2align 3
206 .L29:
207 movq default_gconv_path@GOTPCREL(%rip), %rbx
208 movq %rbx, %rax
209 .L4:
210 movl (%rax), %ecx
211 addq $4, %rax
212 leal -16843009(%rcx), %edx
213 notl %ecx
214 andl %ecx, %edx
215 andl $-2139062144, %edx
216 je .L4
217 movl %edx, %ecx
218 movq %r12, %r14
219 shrl $16, %ecx
220 testl $32896, %edx
221 cmove %ecx, %edx
222 leaq 2(%rax), %rcx
223 movl %edx, %esi
224 cmove %rcx, %rax
225 addb %dl, %sil
226 movq %rbx, %rsi
227 sbbq $3, %rax
228 xorl %r13d, %r13d
229 subq %rbx, %rax
230 leaq 1(%rax), %rdx
231 addq $31, %rax
232 andq $-16, %rax
233 subq %rax, %rsp
234 leaq 15(%rsp), %rdi
235 andq $-16, %rdi
236 call __GI_memcpy@PLT
237 movq $0, -80(%rbp)
238 movq %rax, -56(%rbp)
239 jmp .L6
240 .p2align 4,,10
241 .p2align 3
242 .L19:
243 xorl %r15d, %r15d
244 movl $1, %r12d
245 movl $32, %eax
246 jmp .L8
247 .p2align 4,,10
248 .p2align 3
249 .L18:
250 movq $0, -80(%rbp)
251 jmp .L6
252 .L32:
253 leaq __PRETTY_FUNCTION__.11964(%rip), %rcx
254 leaq .LC0(%rip), %rsi
255 leaq .LC5(%rip), %rdi
256 movl $507, %edx
257 call __GI___assert_fail
258 .L30:
259 leaq __PRETTY_FUNCTION__.11964(%rip), %rcx
260 leaq .LC0(%rip), %rsi
261 leaq .LC2(%rip), %rdi
262 movl $474, %edx
263 call __GI___assert_fail
264 .L28:
265 leaq __PRETTY_FUNCTION__.11964(%rip), %rcx
266 leaq .LC0(%rip), %rsi
267 leaq .LC1(%rip), %rdi
268 movl $439, %edx
269 call __GI___assert_fail
270 .L31:
271 leaq __PRETTY_FUNCTION__.11964(%rip), %rcx
272 leaq .LC0(%rip), %rsi
273 leaq .LC4(%rip), %rdi
274 movl $501, %edx
275 call __GI___assert_fail
276 .size __gconv_get_path, .-__gconv_get_path
277 .section __libc_freeres_fn,"ax",@progbits
278 .p2align 4,,15
279 .type free_mem, @function
280 free_mem:
281 movq __gconv_path_elem@GOTPCREL(%rip), %rax
282 movq (%rax), %rdi
283 testq %rdi, %rdi
284 je .L33
285 leaq empty_path_elem(%rip), %rax
286 cmpq %rax, %rdi
287 je .L33
288 jmp free@PLT
289 .p2align 4,,10
290 .p2align 3
291 .L33:
292 rep ret
293 .size free_mem, .-free_mem
294 .text
295 .p2align 4,,15
296 .type insert_module, @function
297 insert_module:
298 pushq %r15
299 pushq %r14
300 movl %esi, %r14d
301 pushq %r13
302 pushq %r12
303 movq %rdi, %r13
304 pushq %rbp
305 pushq %rbx
306 leaq __gconv_modules_db(%rip), %rbp
307 subq $8, %rsp
308 jmp .L42
309 .p2align 4,,10
310 .p2align 3
311 .L52:
312 movq 0(%r13), %r12
313 movq (%rbx), %rsi
314 movq %r12, %rdi
315 call __GI_strcmp
316 testl %eax, %eax
317 je .L70
318 leaq 32(%rbx), %rbp
319 addq $48, %rbx
320 testl %eax, %eax
321 cmovns %rbx, %rbp
322 .L42:
323 movq 0(%rbp), %rbx
324 testq %rbx, %rbx
325 jne .L52
326 .L45:
327 movq %r13, 0(%rbp)
328 .L41:
329 addq $8, %rsp
330 popq %rbx
331 popq %rbp
332 popq %r12
333 popq %r13
334 popq %r14
335 popq %r15
337 .p2align 4,,10
338 .p2align 3
339 .L70:
340 movq 8(%r13), %r15
341 movq 8(%rbx), %rsi
342 movq %r15, %rdi
343 call __GI_strcmp
344 testl %eax, %eax
345 je .L71
346 .p2align 4,,10
347 .p2align 3
348 .L46:
349 leaq 40(%rbx), %rbp
350 movq 40(%rbx), %rbx
351 testq %rbx, %rbx
352 je .L45
353 movq (%rbx), %rsi
354 movq %r12, %rdi
355 call __GI_strcmp
356 testl %eax, %eax
357 jne .L46
358 movq 8(%rbx), %rsi
359 movq %r15, %rdi
360 call __GI_strcmp
361 testl %eax, %eax
362 jne .L46
363 .L71:
364 movl 16(%rbx), %eax
365 cmpl %eax, 16(%r13)
366 jl .L53
367 je .L72
368 .L48:
369 testl %r14d, %r14d
370 je .L41
371 movq %r13, %rdi
372 .L69:
373 addq $8, %rsp
374 popq %rbx
375 popq %rbp
376 popq %r12
377 popq %r13
378 popq %r14
379 popq %r15
380 jmp free@PLT
381 .p2align 4,,10
382 .p2align 3
383 .L72:
384 movl 20(%rbx), %eax
385 cmpl %eax, 20(%r13)
386 jge .L48
387 .L53:
388 movq 32(%rbx), %rax
389 movq %rbx, %rdi
390 movq %rax, 32(%r13)
391 movq 48(%rbx), %rax
392 movq %rax, 48(%r13)
393 movq 40(%rbx), %rax
394 movq %rax, 40(%r13)
395 movq %r13, 0(%rbp)
396 jmp .L69
397 .size insert_module, .-insert_module
398 .p2align 4,,15
399 .type detect_conflict, @function
400 detect_conflict:
401 pushq %rbp
402 pushq %rbx
403 subq $8, %rsp
404 movq __gconv_modules_db(%rip), %rbx
405 testq %rbx, %rbx
406 je .L78
407 movq %rdi, %rbp
408 jmp .L77
409 .p2align 4,,10
410 .p2align 3
411 .L75:
412 movq 48(%rbx), %rbx
413 testq %rbx, %rbx
414 je .L78
415 .L77:
416 movq (%rbx), %rsi
417 movq %rbp, %rdi
418 call __GI_strcmp
419 testl %eax, %eax
420 je .L79
421 jns .L75
422 movq 32(%rbx), %rbx
423 testq %rbx, %rbx
424 jne .L77
425 .L78:
426 addq $8, %rsp
427 xorl %eax, %eax
428 popq %rbx
429 popq %rbp
431 .p2align 4,,10
432 .p2align 3
433 .L79:
434 addq $8, %rsp
435 movl $1, %eax
436 popq %rbx
437 popq %rbp
439 .size detect_conflict, .-detect_conflict
440 .p2align 4,,15
441 .type add_module.isra.0, @function
442 add_module.isra.0:
443 pushq %rbp
444 movq %rdx, %r8
445 movq %rsi, %r9
446 movq %rsp, %rbp
447 pushq %r15
448 pushq %r14
449 pushq %r13
450 pushq %r12
451 movq %rdi, %r12
452 pushq %rbx
453 subq $72, %rsp
454 movsbq (%rdi), %rax
455 movq 104+_nl_C_locobj(%rip), %rdx
456 testb $32, 1(%rdx,%rax,2)
457 je .L150
458 .p2align 4,,10
459 .p2align 3
460 .L84:
461 addq $1, %r12
462 movsbq (%r12), %rax
463 testb $32, 1(%rdx,%rax,2)
464 movq %rax, %rsi
465 jne .L84
466 .L83:
467 testb %sil, %sil
468 je .L82
469 movq 120+_nl_C_locobj(%rip), %rsi
470 movq %r12, %rbx
471 jmp .L86
472 .p2align 4,,10
473 .p2align 3
474 .L153:
475 testb $32, 1(%rdx,%rax,2)
476 jne .L152
477 movq %rdi, %rbx
478 .L86:
479 movl (%rsi,%rax,4), %eax
480 leaq 1(%rbx), %rdi
481 movb %al, (%rbx)
482 movsbq 1(%rbx), %rax
483 testb %al, %al
484 jne .L153
485 .L82:
486 leaq -40(%rbp), %rsp
487 popq %rbx
488 popq %r12
489 popq %r13
490 popq %r14
491 popq %r15
492 popq %rbp
494 .p2align 4,,10
495 .p2align 3
496 .L152:
497 movsbq 1(%rdi), %rax
498 addq $2, %rbx
499 movb $0, (%rdi)
500 movq %rbx, %r15
501 testb $32, 1(%rdx,%rax,2)
502 movq %rax, %rdi
503 je .L89
504 .p2align 4,,10
505 .p2align 3
506 .L88:
507 addq $1, %r15
508 movsbq (%r15), %rax
509 testb $32, 1(%rdx,%rax,2)
510 movq %rax, %rdi
511 jne .L88
512 .L89:
513 testb %dil, %dil
514 movq %rbx, %r13
515 jne .L90
516 jmp .L82
517 .p2align 4,,10
518 .p2align 3
519 .L155:
520 testb $32, 1(%rdx,%rax,2)
521 jne .L154
522 movq %r10, %r13
523 .L90:
524 movl (%rsi,%rax,4), %eax
525 leaq 1(%r13), %r10
526 addq $1, %r15
527 movb %al, -1(%r10)
528 movsbq (%r15), %rax
529 testb %al, %al
530 jne .L155
531 jmp .L82
532 .p2align 4,,10
533 .p2align 3
534 .L154:
535 addq $2, %r13
536 movb $0, (%r10)
537 .p2align 4,,10
538 .p2align 3
539 .L92:
540 addq $1, %r15
541 movsbq (%r15), %rsi
542 testb $32, 1(%rdx,%rsi,2)
543 movq %rsi, %rax
544 jne .L92
545 testb %sil, %sil
546 je .L108
547 movq %r13, %r14
548 jmp .L94
549 .p2align 4,,10
550 .p2align 3
551 .L157:
552 movsbq %al, %rdi
553 testb $32, 1(%rdx,%rdi,2)
554 jne .L156
555 movq %rsi, %r14
556 .L94:
557 leaq 1(%r14), %rsi
558 addq $1, %r15
559 movb %al, -1(%rsi)
560 movzbl (%r15), %eax
561 testb %al, %al
562 jne .L157
563 .L93:
564 leaq 1(%rsi), %r14
565 movb $0, (%rsi)
566 movl $1, %r11d
567 .L101:
568 movzbl 1(%r10), %eax
569 testb %al, %al
570 je .L82
571 cmpb $47, %al
572 movl $0, %eax
573 movl $3, %r15d
574 cmove %rax, %r8
575 movq %r14, %rax
576 subq %r13, %rax
577 cmpq $3, %rax
578 movq %rax, -104(%rbp)
579 jle .L97
580 xorl %r15d, %r15d
581 cmpl $7303982, -4(%r14)
582 setne %r15b
583 leal (%r15,%r15,2), %r15d
584 .L97:
585 movq %rbx, %rax
586 movq %r12, %rdi
587 movq %r8, -88(%rbp)
588 subq %r12, %rax
589 movq %r9, -80(%rbp)
590 movl %r11d, -72(%rbp)
591 movq %rax, %rsi
592 movl %ecx, -92(%rbp)
593 movq %rax, -112(%rbp)
594 call __GI___strnlen
595 leaq 31(%rax), %rdx
596 movq %r12, %rsi
597 andq $-16, %rdx
598 subq %rdx, %rsp
599 movq %rax, %rdx
600 leaq 15(%rsp), %rdi
601 andq $-16, %rdi
602 movb $0, (%rdi,%rax)
603 call __GI_memcpy@PLT
604 leaq -64(%rbp), %rdi
605 leaq __gconv_alias_compare(%rip), %rdx
606 leaq __gconv_alias_db(%rip), %rsi
607 movq %rax, -64(%rbp)
608 call __GI___tfind
609 testq %rax, %rax
610 movl -72(%rbp), %r11d
611 movq -80(%rbp), %r9
612 movq -88(%rbp), %r8
613 jne .L82
614 subq %r12, %r14
615 movslq %r15d, %rax
616 movl $1, %edi
617 leaq 56(%r8,%r14), %rsi
618 movq %r9, -88(%rbp)
619 movl %r11d, -80(%rbp)
620 movq %r8, -72(%rbp)
621 addq %rax, %rsi
622 call calloc@PLT
623 testq %rax, %rax
624 movq %rax, %r14
625 je .L82
626 leaq 56(%rax), %rdi
627 movq -112(%rbp), %rdx
628 movq %r12, %rsi
629 movq %rdi, (%rax)
630 call __GI_mempcpy@PLT
631 movq %r13, %rdx
632 movq %rax, 8(%r14)
633 movq %rbx, %rsi
634 subq %rbx, %rdx
635 movq %rax, %rdi
636 call __GI_mempcpy@PLT
637 movq -72(%rbp), %r8
638 movl -80(%rbp), %r11d
639 movl -92(%rbp), %ecx
640 movq %rax, 24(%r14)
641 movq -88(%rbp), %r9
642 testq %r8, %r8
643 movl %r11d, 16(%r14)
644 movl %ecx, 20(%r14)
645 je .L98
646 movq %r8, %rdx
647 movq %r9, %rsi
648 movq %rax, %rdi
649 call __GI_mempcpy@PLT
650 .L98:
651 movq -104(%rbp), %rdx
652 movq %r13, %rsi
653 movq %rax, %rdi
654 call __GI_mempcpy@PLT
655 testl %r15d, %r15d
656 je .L99
657 movl $7303982, -1(%rax)
658 .L99:
659 movl $1, %esi
660 movq %r14, %rdi
661 call insert_module
662 jmp .L82
663 .p2align 4,,10
664 .p2align 3
665 .L150:
666 movq %rax, %rsi
667 jmp .L83
668 .p2align 4,,10
669 .p2align 3
670 .L156:
671 movb $0, (%rsi)
672 leaq -64(%rbp), %rsi
673 movl $10, %edx
674 movq %r15, %rdi
675 movl %ecx, -92(%rbp)
676 movq %r8, -88(%rbp)
677 movq %r9, -80(%rbp)
678 movq %r10, -72(%rbp)
679 call __GI_strtol
680 cmpq %r15, -64(%rbp)
681 movl %eax, %r11d
682 movq -72(%rbp), %r10
683 movq -80(%rbp), %r9
684 movq -88(%rbp), %r8
685 movl -92(%rbp), %ecx
686 je .L114
687 testl %eax, %eax
688 jle .L114
689 .L102:
690 addq $2, %r14
691 jmp .L101
692 .p2align 4,,10
693 .p2align 3
694 .L114:
695 movl $1, %r11d
696 jmp .L102
697 .L108:
698 movq %r13, %rsi
699 jmp .L93
700 .size add_module.isra.0, .-add_module.isra.0
701 .p2align 4,,15
702 .type add_alias2.isra.1.part.2, @function
703 add_alias2.isra.1.part.2:
704 pushq %r13
705 subq %rdi, %rdx
706 pushq %r12
707 pushq %rbp
708 pushq %rbx
709 movq %rdi, %r12
710 leaq 16(%rdx), %rdi
711 movq %rsi, %r13
712 movq %rdx, %rbp
713 subq $8, %rsp
714 call malloc@PLT
715 testq %rax, %rax
716 je .L158
717 leaq 16(%rax), %rdi
718 movq %rax, %rbx
719 movq %rbp, %rdx
720 movq %r12, %rsi
721 subq %r12, %r13
722 call __GI_memcpy@PLT
723 leaq __gconv_alias_compare(%rip), %rdx
724 movq %rax, (%rbx)
725 leaq __gconv_alias_db(%rip), %rsi
726 addq %r13, %rax
727 movq %rbx, %rdi
728 movq %rax, 8(%rbx)
729 call __GI___tsearch
730 testq %rax, %rax
731 je .L161
732 cmpq (%rax), %rbx
733 je .L158
734 .L161:
735 addq $8, %rsp
736 movq %rbx, %rdi
737 popq %rbx
738 popq %rbp
739 popq %r12
740 popq %r13
741 jmp free@PLT
742 .p2align 4,,10
743 .p2align 3
744 .L158:
745 addq $8, %rsp
746 popq %rbx
747 popq %rbp
748 popq %r12
749 popq %r13
751 .size add_alias2.isra.1.part.2, .-add_alias2.isra.1.part.2
752 .section .rodata.str1.1
753 .LC6:
754 .string "rce"
755 .LC7:
756 .string "alias"
757 .LC8:
758 .string "module"
759 .text
760 .p2align 4,,15
761 .type __gconv_read_conf, @function
762 __gconv_read_conf:
763 pushq %rbp
764 movq %rsp, %rbp
765 pushq %r15
766 pushq %r14
767 pushq %r13
768 pushq %r12
769 pushq %rbx
770 subq $104, %rsp
771 movq __libc_errno@gottpoff(%rip), %rax
772 movl %fs:(%rax), %ebx
773 movl %ebx, -116(%rbp)
774 call __gconv_load_cache
775 testl %eax, %eax
776 jne .L168
777 movq __libc_errno@gottpoff(%rip), %rax
778 movl %ebx, %fs:(%rax)
779 leaq -40(%rbp), %rsp
780 popq %rbx
781 popq %r12
782 popq %r13
783 popq %r14
784 popq %r15
785 popq %rbp
787 .L168:
788 call __gconv_get_path
789 movq __gconv_path_elem@GOTPCREL(%rip), %rax
790 leaq -64(%rbp), %r12
791 movq (%rax), %rax
792 movq (%rax), %rdi
793 testq %rdi, %rdi
794 movq %rdi, -96(%rbp)
795 je .L170
796 leaq -64(%rbp), %r12
797 movq 104+_nl_C_locobj(%rip), %r15
798 movq $16, -104(%rbp)
799 movq %r12, -88(%rbp)
800 .p2align 4,,10
801 .p2align 3
802 .L200:
803 movq 8(%rax), %rdx
804 movq -96(%rbp), %rsi
805 leaq 44(%rdx), %rax
806 movq %rdx, -112(%rbp)
807 andq $-16, %rax
808 subq %rax, %rsp
809 leaq 15(%rsp), %rbx
810 andq $-16, %rbx
811 movq %rbx, %rdi
812 call __GI_mempcpy@PLT
813 movabsq $8029123697353646951, %rsi
814 movl $115, %edx
815 movq %rbx, %rdi
816 movq %rsi, (%rax)
817 leaq .LC6(%rip), %rsi
818 movl $1701606756, 8(%rax)
819 movw %dx, 12(%rax)
820 call _IO_new_fopen@PLT
821 testq %rax, %rax
822 movq %rax, %rbx
823 movq $0, -72(%rbp)
824 movq $0, -64(%rbp)
825 je .L174
826 movl (%rax), %eax
827 leaq -72(%rbp), %r13
828 orb $-128, %ah
829 testb $16, %al
830 movl %eax, (%rbx)
831 jne .L199
832 .p2align 4,,10
833 .p2align 3
834 .L198:
835 movq -88(%rbp), %rsi
836 movq %rbx, %rcx
837 movl $10, %edx
838 movq %r13, %rdi
839 call _IO_getdelim@PLT
840 testq %rax, %rax
841 movq %rax, %r14
842 js .L199
843 movq -72(%rbp), %r12
844 movl $35, %esi
845 movq %r12, %rdi
846 call __GI_strchr
847 testq %rax, %rax
848 je .L175
849 movb $0, (%rax)
850 jmp .L247
851 .p2align 4,,10
852 .p2align 3
853 .L176:
854 addq $1, %r12
855 .L247:
856 movsbq (%r12), %rdx
857 testb $32, 1(%r15,%rdx,2)
858 jne .L176
859 cmpq %r12, %rax
860 je .L180
861 movsbq (%r12), %rax
862 testb %al, %al
863 je .L180
864 testb $32, 1(%r15,%rax,2)
865 jne .L180
866 movq %r12, %r8
867 jmp .L184
868 .p2align 4,,10
869 .p2align 3
870 .L182:
871 testb $32, 1(%r15,%rax,2)
872 jne .L248
873 .L184:
874 addq $1, %r8
875 movsbq (%r8), %rax
876 testb %al, %al
877 jne .L182
878 .L248:
879 movq %r8, %rax
880 subq %r12, %rax
881 cmpq $5, %rax
882 je .L249
883 cmpq $6, %rax
884 jne .L180
885 cmpl $1969516397, (%r12)
886 je .L250
887 .p2align 4,,10
888 .p2align 3
889 .L180:
890 movl (%rbx), %eax
891 .L252:
892 testb $16, %al
893 je .L198
894 .L199:
895 movq -72(%rbp), %rdi
896 call free@PLT
897 movq %rbx, %rdi
898 call _IO_new_fclose@PLT
899 .L174:
900 movq __gconv_path_elem@GOTPCREL(%rip), %rsi
901 movq -104(%rbp), %rdi
902 movq (%rsi), %rax
903 addq %rdi, %rax
904 addq $16, %rdi
905 movq (%rax), %rcx
906 movq %rdi, -104(%rbp)
907 testq %rcx, %rcx
908 movq %rcx, -96(%rbp)
909 jne .L200
910 movq -88(%rbp), %r12
911 .L170:
912 leaq builtin_modules(%rip), %r14
913 leaq __gconv_alias_compare(%rip), %rbx
914 leaq 672(%r14), %r13
915 jmp .L203
916 .p2align 4,,10
917 .p2align 3
918 .L202:
919 addq $56, %r14
920 cmpq %r14, %r13
921 je .L251
922 .L203:
923 movq (%r14), %rax
924 leaq __gconv_alias_db(%rip), %rsi
925 movq %rbx, %rdx
926 movq %r12, %rdi
927 movq %rax, -64(%rbp)
928 call __GI___tfind
929 testq %rax, %rax
930 jne .L202
931 xorl %esi, %esi
932 movq %r14, %rdi
933 addq $56, %r14
934 call insert_module
935 cmpq %r14, %r13
936 jne .L203
937 .L251:
938 leaq builtin_aliases(%rip), %r12
939 .p2align 4,,10
940 .p2align 3
941 .L205:
942 xorl %esi, %esi
943 movq %r12, %rdi
944 call __GI___rawmemchr
945 leaq 1(%rax), %rbx
946 xorl %esi, %esi
947 movq %rbx, %rdi
948 call __GI___rawmemchr
949 movq %r12, %rdi
950 movq %rax, %r13
951 leaq 1(%rax), %r14
952 call detect_conflict
953 testl %eax, %eax
954 jne .L204
955 movq %r14, %rdx
956 movq %rbx, %rsi
957 movq %r12, %rdi
958 call add_alias2.isra.1.part.2
959 .L204:
960 cmpb $0, 1(%r13)
961 movq %r14, %r12
962 jne .L205
963 movl -116(%rbp), %esi
964 movq __libc_errno@gottpoff(%rip), %rax
965 movl %esi, %fs:(%rax)
966 leaq -40(%rbp), %rsp
967 popq %rbx
968 popq %r12
969 popq %r13
970 popq %r14
971 popq %r15
972 popq %rbp
974 .p2align 4,,10
975 .p2align 3
976 .L250:
977 cmpw $25964, 4(%r12)
978 jne .L180
979 movl modcounter.11944(%rip), %ecx
980 movq -112(%rbp), %rdx
981 movq %r8, %rdi
982 movq -96(%rbp), %rsi
983 leal 1(%rcx), %eax
984 movl %eax, modcounter.11944(%rip)
985 call add_module.isra.0
986 movl (%rbx), %eax
987 jmp .L252
988 .p2align 4,,10
989 .p2align 3
990 .L175:
991 leaq -1(%r12,%r14), %rdx
992 cmpb $10, (%rdx)
993 jne .L247
994 movb $0, (%rdx)
995 jmp .L247
996 .p2align 4,,10
997 .p2align 3
998 .L249:
999 cmpl $1634298977, (%r12)
1000 jne .L180
1001 cmpb $115, 4(%r12)
1002 jne .L180
1003 movsbq (%r8), %rax
1004 testb $32, 1(%r15,%rax,2)
1005 movq %rax, %rcx
1006 je .L188
1007 .p2align 4,,10
1008 .p2align 3
1009 .L189:
1010 addq $1, %r8
1011 movsbq (%r8), %rax
1012 testb $32, 1(%r15,%rax,2)
1013 movq %rax, %rcx
1014 jne .L189
1015 .L188:
1016 testb %cl, %cl
1017 movq %r8, %rdx
1018 jne .L190
1019 jmp .L180
1020 .p2align 4,,10
1021 .p2align 3
1022 .L254:
1023 testb $32, 1(%r15,%rax,2)
1024 jne .L253
1025 movq %rcx, %rdx
1026 .L190:
1027 movq 120+_nl_C_locobj(%rip), %rsi
1028 leaq 1(%rdx), %rcx
1029 movl (%rsi,%rax,4), %eax
1030 movb %al, -1(%rcx)
1031 movsbq 1(%rdx), %rax
1032 testb %al, %al
1033 jne .L254
1034 jmp .L180
1035 .L253:
1036 movsbq 1(%rcx), %rax
1037 movb $0, (%rcx)
1038 leaq 2(%rdx), %r12
1039 movq %r12, %rdx
1040 testb $32, 1(%r15,%rax,2)
1041 movq %rax, %rcx
1042 je .L193
1043 .p2align 4,,10
1044 .p2align 3
1045 .L192:
1046 addq $1, %rdx
1047 movsbq (%rdx), %rax
1048 testb $32, 1(%r15,%rax,2)
1049 movq %rax, %rcx
1050 jne .L192
1051 .L193:
1052 testb %cl, %cl
1053 movq %r12, %rsi
1054 jne .L195
1055 jmp .L180
1056 .p2align 4,,10
1057 .p2align 3
1058 .L255:
1059 testb $32, 1(%r15,%rax,2)
1060 jne .L194
1061 movq %rcx, %rsi
1062 .L195:
1063 movq 120+_nl_C_locobj(%rip), %rdi
1064 leaq 1(%rsi), %rcx
1065 addq $1, %rdx
1066 movl (%rdi,%rax,4), %eax
1067 movb %al, -1(%rcx)
1068 movsbq (%rdx), %rax
1069 testb %al, %al
1070 jne .L255
1071 .L194:
1072 cmpq %rcx, %r12
1073 movq %rsi, -128(%rbp)
1074 je .L180
1075 movq %r8, %rdi
1076 movb $0, (%rcx)
1077 movq %r8, -136(%rbp)
1078 call detect_conflict
1079 testl %eax, %eax
1080 movq -136(%rbp), %r8
1081 movq -128(%rbp), %rsi
1082 jne .L180
1083 leaq 2(%rsi), %rdx
1084 movq %r8, %rdi
1085 movq %r12, %rsi
1086 call add_alias2.isra.1.part.2
1087 movl (%rbx), %eax
1088 jmp .L252
1089 .size __gconv_read_conf, .-__gconv_read_conf
1090 .p2align 4,,15
1091 .globl __gconv_load_conf
1092 .hidden __gconv_load_conf
1093 .type __gconv_load_conf, @function
1094 __gconv_load_conf:
1095 movl __libc_pthread_functions_init(%rip), %edx
1096 testl %edx, %edx
1097 je .L257
1098 movq 128+__libc_pthread_functions(%rip), %rax
1099 leaq __gconv_read_conf(%rip), %rsi
1100 leaq once(%rip), %rdi
1101 #APP
1102 # 619 "/root/wip/nyanglibc/fork/iconv/gconv_conf.c" 1
1103 ror $2*8+1, %rax
1104 xor %fs:48, %rax
1105 # 0 "" 2
1106 #NO_APP
1107 jmp *%rax
1108 .p2align 4,,10
1109 .p2align 3
1110 .L257:
1111 movl once(%rip), %eax
1112 testl %eax, %eax
1113 je .L263
1114 rep ret
1115 .p2align 4,,10
1116 .p2align 3
1117 .L263:
1118 subq $8, %rsp
1119 call __gconv_read_conf
1120 orl $2, once(%rip)
1121 addq $8, %rsp
1123 .size __gconv_load_conf, .-__gconv_load_conf
1124 .local modcounter.11944
1125 .comm modcounter.11944,4,4
1126 .section .rodata.str1.16,"aMS",@progbits,1
1127 .align 16
1128 .type __PRETTY_FUNCTION__.11964, @object
1129 .size __PRETTY_FUNCTION__.11964, 17
1130 __PRETTY_FUNCTION__.11964:
1131 .string "__gconv_get_path"
1132 .section __libc_subfreeres,"aw",@progbits
1133 .align 8
1134 .type __elf_set___libc_subfreeres_element_free_mem__, @object
1135 .size __elf_set___libc_subfreeres_element_free_mem__, 8
1136 __elf_set___libc_subfreeres_element_free_mem__:
1137 .quad free_mem
1138 .local once
1139 .comm once,4,4
1140 .hidden __gconv_path_envvar
1141 .comm __gconv_path_envvar,8,8
1142 .section .rodata
1143 .align 32
1144 .type builtin_aliases, @object
1145 .size builtin_aliases, 999
1146 builtin_aliases:
1147 .string "UCS4//"
1148 .string "ISO-10646/UCS4/"
1149 .string "UCS-4//"
1150 .string "ISO-10646/UCS4/"
1151 .string "UCS-4BE//"
1152 .string "ISO-10646/UCS4/"
1153 .string "CSUCS4//"
1154 .string "ISO-10646/UCS4/"
1155 .string "ISO-10646//"
1156 .string "ISO-10646/UCS4/"
1157 .string "10646-1:1993//"
1158 .string "ISO-10646/UCS4/"
1159 .string "10646-1:1993/UCS4/"
1160 .string "ISO-10646/UCS4/"
1161 .string "OSF00010104//"
1162 .string "ISO-10646/UCS4/"
1163 .string "OSF00010105//"
1164 .string "ISO-10646/UCS4/"
1165 .string "OSF00010106//"
1166 .string "ISO-10646/UCS4/"
1167 .string "WCHAR_T//"
1168 .string "INTERNAL"
1169 .string "UTF8//"
1170 .string "ISO-10646/UTF8/"
1171 .string "UTF-8//"
1172 .string "ISO-10646/UTF8/"
1173 .string "ISO-IR-193//"
1174 .string "ISO-10646/UTF8/"
1175 .string "OSF05010001//"
1176 .string "ISO-10646/UTF8/"
1177 .string "ISO-10646/UTF-8/"
1178 .string "ISO-10646/UTF8/"
1179 .string "UCS2//"
1180 .string "ISO-10646/UCS2/"
1181 .string "UCS-2//"
1182 .string "ISO-10646/UCS2/"
1183 .string "OSF00010100//"
1184 .string "ISO-10646/UCS2/"
1185 .string "OSF00010101//"
1186 .string "ISO-10646/UCS2/"
1187 .string "OSF00010102//"
1188 .string "ISO-10646/UCS2/"
1189 .string "ANSI_X3.4//"
1190 .string "ANSI_X3.4-1968//"
1191 .string "ISO-IR-6//"
1192 .string "ANSI_X3.4-1968//"
1193 .string "ANSI_X3.4-1986//"
1194 .string "ANSI_X3.4-1968//"
1195 .string "ISO_646.IRV:1991//"
1196 .string "ANSI_X3.4-1968//"
1197 .string "ASCII//"
1198 .string "ANSI_X3.4-1968//"
1199 .string "ISO646-US//"
1200 .string "ANSI_X3.4-1968//"
1201 .string "US-ASCII//"
1202 .string "ANSI_X3.4-1968//"
1203 .string "US//"
1204 .string "ANSI_X3.4-1968//"
1205 .string "IBM367//"
1206 .string "ANSI_X3.4-1968//"
1207 .string "CP367//"
1208 .string "ANSI_X3.4-1968//"
1209 .string "CSASCII//"
1210 .string "ANSI_X3.4-1968//"
1211 .string "OSF00010020//"
1212 .string "ANSI_X3.4-1968//"
1213 .string "UNICODELITTLE//"
1214 .string "ISO-10646/UCS2/"
1215 .string "UCS-2LE//"
1216 .string "ISO-10646/UCS2/"
1217 .string "UCS-2BE//"
1218 .string "UNICODEBIG//"
1219 .string ""
1220 .section .rodata.str1.1
1221 .LC9:
1222 .string "INTERNAL"
1223 .LC10:
1224 .string "ISO-10646/UCS4/"
1225 .LC11:
1226 .string "=INTERNAL->ucs4"
1227 .LC12:
1228 .string "=ucs4->INTERNAL"
1229 .LC13:
1230 .string "UCS-4LE//"
1231 .LC14:
1232 .string "=INTERNAL->ucs4le"
1233 .LC15:
1234 .string "=ucs4le->INTERNAL"
1235 .LC16:
1236 .string "ISO-10646/UTF8/"
1237 .LC17:
1238 .string "=INTERNAL->utf8"
1239 .LC18:
1240 .string "=utf8->INTERNAL"
1241 .LC19:
1242 .string "ISO-10646/UCS2/"
1243 .LC20:
1244 .string "=ucs2->INTERNAL"
1245 .LC21:
1246 .string "=INTERNAL->ucs2"
1247 .LC22:
1248 .string "ANSI_X3.4-1968//"
1249 .LC23:
1250 .string "=ascii->INTERNAL"
1251 .LC24:
1252 .string "=INTERNAL->ascii"
1253 .LC25:
1254 .string "UNICODEBIG//"
1255 .LC26:
1256 .string "=ucs2reverse->INTERNAL"
1257 .LC27:
1258 .string "=INTERNAL->ucs2reverse"
1259 .section .data.rel.local,"aw",@progbits
1260 .align 32
1261 .type builtin_modules, @object
1262 .size builtin_modules, 672
1263 builtin_modules:
1264 .quad .LC9
1265 .quad .LC10
1266 .long 1
1267 .long 2147483647
1268 .quad .LC11
1269 .zero 24
1270 .quad .LC10
1271 .quad .LC9
1272 .long 1
1273 .long 2147483647
1274 .quad .LC12
1275 .zero 24
1276 .quad .LC9
1277 .quad .LC13
1278 .long 1
1279 .long 2147483647
1280 .quad .LC14
1281 .zero 24
1282 .quad .LC13
1283 .quad .LC9
1284 .long 1
1285 .long 2147483647
1286 .quad .LC15
1287 .zero 24
1288 .quad .LC9
1289 .quad .LC16
1290 .long 1
1291 .long 2147483647
1292 .quad .LC17
1293 .zero 24
1294 .quad .LC16
1295 .quad .LC9
1296 .long 1
1297 .long 2147483647
1298 .quad .LC18
1299 .zero 24
1300 .quad .LC19
1301 .quad .LC9
1302 .long 1
1303 .long 2147483647
1304 .quad .LC20
1305 .zero 24
1306 .quad .LC9
1307 .quad .LC19
1308 .long 1
1309 .long 2147483647
1310 .quad .LC21
1311 .zero 24
1312 .quad .LC22
1313 .quad .LC9
1314 .long 1
1315 .long 2147483647
1316 .quad .LC23
1317 .zero 24
1318 .quad .LC9
1319 .quad .LC22
1320 .long 1
1321 .long 2147483647
1322 .quad .LC24
1323 .zero 24
1324 .quad .LC25
1325 .quad .LC9
1326 .long 1
1327 .long 2147483647
1328 .quad .LC26
1329 .zero 24
1330 .quad .LC9
1331 .quad .LC25
1332 .long 1
1333 .long 2147483647
1334 .quad .LC27
1335 .zero 24
1336 .section .rodata.cst16,"aM",@progbits,16
1337 .align 16
1338 .type empty_path_elem, @object
1339 .size empty_path_elem, 16
1340 empty_path_elem:
1341 .zero 16
1342 .comm __gconv_max_path_elem_len,8,8
1343 .comm __gconv_path_elem,8,8
1344 .globl default_gconv_path_bytes_n
1345 .data
1346 .align 8
1347 .type default_gconv_path_bytes_n, @object
1348 .size default_gconv_path_bytes_n, 8
1349 default_gconv_path_bytes_n:
1350 .quad CONF_DEFAULT_GCONV_PATH_STR_BYTES_N
1351 .globl default_gconv_path
1352 .align 32
1353 .type default_gconv_path, @object
1354 .size default_gconv_path, CONF_DEFAULT_GCONV_PATH_STR_BYTES_N
1355 default_gconv_path:
1356 .string "CONF_DEFAULT_GCONV_PATH_STR"
1357 .hidden __libc_pthread_functions
1358 .hidden __libc_pthread_functions_init
1359 .hidden __gconv_load_cache
1360 .hidden __gconv_alias_db
1361 .hidden __gconv_alias_compare
1362 .hidden _nl_C_locobj
1363 .hidden __gconv_modules_db