clarify the purpose of this project
[nyanglibc.git] / iconvdata / ibm256.shared.s
blobfeac378333f2f9ec75626c76ae6fea4b037884f7
1 .text
2 .p2align 4,,15
3 .type gconv_btowc, @function
4 gconv_btowc:
5 leaq to_ucs4(%rip), %rax
6 movzbl %sil, %edx
7 testb %sil, %sil
8 movl (%rax,%rdx,4), %eax
9 je .L1
10 testl %eax, %eax
11 movl $-1, %edx
12 cmove %edx, %eax
13 .L1:
14 rep ret
15 .size gconv_btowc, .-gconv_btowc
16 .section .rodata.str1.1,"aMS",@progbits,1
17 .LC0:
18 .string "IBM256//"
19 .text
20 .p2align 4,,15
21 .globl gconv_init
22 .type gconv_init, @function
23 gconv_init:
24 movq 24(%rdi), %rsi
25 leaq .LC0(%rip), %rdx
26 movq %rdi, %rax
27 movl $9, %ecx
28 movq %rdx, %rdi
29 repz cmpsb
30 jne .L10
31 movabsq $4294967297, %rdx
32 movabsq $17179869188, %rdi
33 movq $0, 96(%rax)
34 movq %rdx, 72(%rax)
35 leaq gconv_btowc(%rip), %rdx
36 movq %rdi, 80(%rax)
37 movl $0, 88(%rax)
38 movq %rdx, 48(%rax)
39 xorl %eax, %eax
40 ret
41 .p2align 4,,10
42 .p2align 3
43 .L10:
44 movq 32(%rax), %rsi
45 movl $9, %ecx
46 movq %rdx, %rdi
47 repz cmpsb
48 jne .L13
49 movabsq $17179869188, %rdi
50 movabsq $4294967297, %rdx
51 movq $-1, 96(%rax)
52 movq %rdi, 72(%rax)
53 movq %rdx, 80(%rax)
54 movl $0, 88(%rax)
55 xorl %eax, %eax
56 ret
57 .p2align 4,,10
58 .p2align 3
59 .L13:
60 movl $1, %eax
61 ret
62 .size gconv_init, .-gconv_init
63 .section .rodata.str1.1
64 .LC1:
65 .string "../iconv/skeleton.c"
66 .LC2:
67 .string "outbufstart == NULL"
68 .LC3:
69 .string "../iconv/loop.c"
70 .section .rodata.str1.8,"aMS",@progbits,1
71 .align 8
72 .LC4:
73 .string "(state->__count & 7) <= sizeof (state->__value)"
74 .align 8
75 .LC5:
76 .string "inlen_after <= sizeof (state->__value.__wchb)"
77 .align 8
78 .LC6:
79 .string "inptr - bytebuf > (state->__count & 7)"
80 .align 8
81 .LC7:
82 .string "inend != &bytebuf[MAX_NEEDED_INPUT]"
83 .align 8
84 .LC8:
85 .string "inend - inptr > (state->__count & ~7)"
86 .align 8
87 .LC9:
88 .string "inend - inptr <= sizeof (state->__value.__wchb)"
89 .section .rodata.str1.1
90 .LC10:
91 .string "outbuf == outerr"
92 .section .rodata.str1.8
93 .align 8
94 .LC11:
95 .string "nstatus == __GCONV_FULL_OUTPUT"
96 .align 8
97 .LC12:
98 .string "cnt_after <= sizeof (data->__statep->__value.__wchb)"
99 .text
100 .p2align 4,,15
101 .globl gconv
102 .type gconv, @function
103 gconv:
104 pushq %r15
105 pushq %r14
106 movq %r9, %r14
107 pushq %r13
108 pushq %r12
109 movq %rsi, %r12
110 pushq %rbp
111 pushq %rbx
112 leaq 104(%rdi), %rsi
113 movq %rcx, %rbp
114 subq $152, %rsp
115 movl 16(%r12), %r10d
116 movq %rsi, 80(%rsp)
117 leaq 48(%r12), %rsi
118 movq %rdi, 40(%rsp)
119 movq %rdx, 8(%rsp)
120 movq %r8, 48(%rsp)
121 testb $1, %r10b
122 movl 208(%rsp), %ebx
123 movq %rsi, 72(%rsp)
124 movq $0, 24(%rsp)
125 jne .L15
126 movq %rdi, %rax
127 movq 144(%rdi), %rdi
128 cmpq $0, 104(%rax)
129 movq %rdi, 24(%rsp)
130 je .L15
131 movq %rdi, %rax
132 #APP
133 # 410 "../iconv/skeleton.c" 1
134 ror $2*8+1, %rax
135 xor %fs:48, %rax
136 # 0 "" 2
137 #NO_APP
138 movq %rax, 24(%rsp)
139 .L15:
140 testl %ebx, %ebx
141 jne .L227
142 movq 8(%rsp), %rax
143 movq 48(%rsp), %rdi
144 leaq 112(%rsp), %rdx
145 movl 216(%rsp), %ecx
146 movq 8(%r12), %r11
147 testq %rdi, %rdi
148 movq (%rax), %r15
149 movq %rdi, %rax
150 cmove %r12, %rax
151 testq %r14, %r14
152 movq (%rax), %r13
153 movl $0, %eax
154 movq $0, 112(%rsp)
155 cmovne %rdx, %rax
156 testl %ecx, %ecx
157 movq %rax, 64(%rsp)
158 movq 40(%rsp), %rax
159 setne 103(%rsp)
160 movzbl 103(%rsp), %esi
161 movq 96(%rax), %rax
162 testq %rax, %rax
163 je .L121
164 testb %sil, %sil
165 je .L121
166 movq 32(%r12), %rbx
167 movl (%rbx), %edx
168 andl $7, %edx
169 jne .L228
170 .L121:
171 movq $0, 32(%rsp)
172 .L22:
173 movq %r14, 16(%rsp)
174 movq %r11, %r14
175 .p2align 4,,10
176 .p2align 3
177 .L110:
178 movq 16(%rsp), %rbx
179 testq %rbx, %rbx
180 je .L54
181 movq (%rbx), %rbx
182 addq %rbx, 32(%rsp)
183 .L54:
184 testq %rax, %rax
185 je .L229
186 leaq 136(%rsp), %rax
187 movq %r15, 128(%rsp)
188 movq %r13, %rbx
189 movq %r13, 136(%rsp)
190 movq %r15, %rdi
191 movl $4, %r11d
192 movq %rax, 56(%rsp)
193 leaq 128(%rsp), %rax
194 movq %rax, 88(%rsp)
195 .L62:
196 cmpq %rdi, %rbp
197 je .L63
198 .L73:
199 leaq 4(%rdi), %rax
200 cmpq %rax, %rbp
201 jb .L129
202 cmpq %rbx, %r14
203 jbe .L130
204 movl (%rdi), %r8d
205 cmpl $65534, %r8d
206 ja .L64
207 cmpl $255, %r8d
208 movl $402, %edx
209 leaq from_idx(%rip), %rsi
210 ja .L65
211 jmp .L230
212 .p2align 4,,10
213 .p2align 3
214 .L231:
215 movzwl 10(%rcx), %edx
216 movq %rcx, %rsi
217 .L65:
218 cmpl %edx, %r8d
219 leaq 8(%rsi), %rcx
220 ja .L231
221 movzwl (%rcx), %eax
222 cmpl %eax, %r8d
223 jb .L67
224 movl %r8d, %edx
225 addl 12(%rsi), %edx
226 .L66:
227 leaq from_ucs4(%rip), %rax
228 movzbl (%rax,%rdx), %eax
229 testb %al, %al
230 jne .L150
231 testl %r8d, %r8d
232 jne .L67
233 .L150:
234 leaq 1(%rbx), %rdx
235 movq %rdx, 136(%rsp)
236 movb %al, (%rbx)
237 movq 128(%rsp), %rax
238 movq 136(%rsp), %rbx
239 leaq 4(%rax), %rdi
240 cmpq %rdi, %rbp
241 movq %rdi, 128(%rsp)
242 jne .L73
243 .p2align 4,,10
244 .p2align 3
245 .L63:
246 cmpq $0, 48(%rsp)
247 movq 8(%rsp), %rax
248 movq %rdi, (%rax)
249 jne .L232
250 .L74:
251 addl $1, 20(%r12)
252 testb $1, 16(%r12)
253 jne .L233
254 cmpq %rbx, %r13
255 jnb .L134
256 movq 24(%rsp), %rdi
257 movq (%r12), %rax
258 movl %r11d, 56(%rsp)
259 movq %rax, 120(%rsp)
260 call _dl_mcount_wrapper_check@PLT
261 movl 216(%rsp), %edi
262 leaq 120(%rsp), %rdx
263 xorl %r8d, %r8d
264 movq %rbx, %rcx
265 pushq %rdi
266 pushq $0
267 movq 32(%rsp), %r9
268 movq 88(%rsp), %rsi
269 movq 96(%rsp), %rdi
270 movq 40(%rsp), %rax
271 call *%rax
272 popq %r8
273 cmpl $4, %eax
274 movl %eax, %r10d
275 popq %r9
276 movl 56(%rsp), %r11d
277 je .L78
278 movq 120(%rsp), %r11
279 cmpq %rbx, %r11
280 jne .L234
281 .L77:
282 testl %r10d, %r10d
283 jne .L146
284 .L109:
285 movq 112(%rsp), %rax
286 movq 8(%rsp), %rdi
287 movl 16(%r12), %r10d
288 movq (%r12), %r13
289 movq %rax, 32(%rsp)
290 movq 40(%rsp), %rax
291 movq (%rdi), %r15
292 movq 96(%rax), %rax
293 jmp .L110
294 .p2align 4,,10
295 .p2align 3
296 .L64:
297 shrl $7, %r8d
298 cmpl $7168, %r8d
299 je .L235
300 .L67:
301 cmpq $0, 64(%rsp)
302 je .L133
303 testb $8, 16(%r12)
304 jne .L236
305 .L71:
306 testb $2, %r10b
307 jne .L237
308 .L133:
309 cmpq $0, 48(%rsp)
310 movq 8(%rsp), %rax
311 movl $6, %r11d
312 movq %rdi, (%rax)
313 je .L74
314 .L232:
315 movq 48(%rsp), %rax
316 movl %r11d, %r9d
317 movq %rbx, (%rax)
318 .L14:
319 addq $152, %rsp
320 movl %r9d, %eax
321 popq %rbx
322 popq %rbp
323 popq %r12
324 popq %r13
325 popq %r14
326 popq %r15
328 .p2align 4,,10
329 .p2align 3
330 .L229:
331 cmpq %r15, %rbp
332 je .L124
333 leaq 4(%r13), %rdx
334 cmpq %rdx, %r14
335 jb .L125
336 movq %r15, %rax
337 movq %r13, %rbx
338 movl $4, %r11d
339 andl $2, %r10d
340 .p2align 4,,10
341 .p2align 3
342 .L57:
343 movzbl (%rax), %ecx
344 leaq to_ucs4(%rip), %r9
345 movq %rax, %rdi
346 movq %rcx, %rsi
347 movl (%r9,%rcx,4), %ecx
348 testl %ecx, %ecx
349 jne .L58
350 testb %sil, %sil
351 jne .L238
352 .L58:
353 addq $1, %rax
354 movl %ecx, (%rbx)
355 movq %rdx, %rbx
356 movq %rax, %rdi
357 .L59:
358 cmpq %rax, %rbp
359 je .L63
360 leaq 4(%rbx), %rdx
361 cmpq %rdx, %r14
362 jnb .L57
363 .L130:
364 movl $5, %r11d
365 jmp .L63
366 .p2align 4,,10
367 .p2align 3
368 .L78:
369 cmpl $5, %r11d
370 movl %r11d, %r10d
371 jne .L77
372 jmp .L109
373 .p2align 4,,10
374 .p2align 3
375 .L230:
376 movl %r8d, %edx
377 jmp .L66
378 .p2align 4,,10
379 .p2align 3
380 .L129:
381 movl $7, %r11d
382 jmp .L63
383 .p2align 4,,10
384 .p2align 3
385 .L236:
386 movl %r10d, 104(%rsp)
387 subq $8, %rsp
388 movq %rbp, %r8
389 pushq 72(%rsp)
390 movq 24(%rsp), %rax
391 movq %r12, %rsi
392 movq 56(%rsp), %rdi
393 movq 72(%rsp), %r9
394 movq 104(%rsp), %rcx
395 movq (%rax), %rdx
396 call __gconv_transliterate@PLT
397 popq %r10
398 cmpl $6, %eax
399 movl %eax, %r11d
400 popq %rbx
401 movq 128(%rsp), %rdi
402 movq 136(%rsp), %rbx
403 movl 104(%rsp), %r10d
404 je .L71
405 cmpl $5, %eax
406 jne .L62
407 jmp .L63
408 .p2align 4,,10
409 .p2align 3
410 .L237:
411 movq 64(%rsp), %rax
412 addq $4, %rdi
413 movl $6, %r11d
414 movq %rdi, 128(%rsp)
415 addq $1, (%rax)
416 jmp .L62
417 .L233:
418 movq 16(%rsp), %r14
419 movq %rbx, (%r12)
420 movl %r11d, %r9d
421 movq 112(%rsp), %rax
422 addq %rax, (%r14)
423 .L76:
424 movq 40(%rsp), %rax
425 cmpq $0, 96(%rax)
426 setne %al
427 testb %al, 103(%rsp)
428 je .L14
429 cmpl $7, %r9d
430 jne .L14
431 movq 8(%rsp), %rax
432 movq (%rax), %rsi
433 movq %rbp, %rax
434 subq %rsi, %rax
435 cmpq $4, %rax
436 ja .L112
437 xorl %edx, %edx
438 testq %rax, %rax
439 movq 32(%r12), %rcx
440 je .L114
441 .L113:
442 movzbl (%rsi,%rdx), %edi
443 movb %dil, 4(%rcx,%rdx)
444 addq $1, %rdx
445 cmpq %rdx, %rax
446 jne .L113
447 .L114:
448 movl (%rcx), %edx
449 movq 8(%rsp), %rbx
450 andl $-8, %edx
451 movq %rbp, (%rbx)
452 orl %edx, %eax
453 movl %eax, (%rcx)
454 jmp .L14
455 .p2align 4,,10
456 .p2align 3
457 .L134:
458 movl %r11d, %r10d
459 jmp .L77
460 .L238:
461 cmpq $0, 64(%rsp)
462 je .L133
463 testl %r10d, %r10d
464 je .L133
465 movq 64(%rsp), %rsi
466 leaq 1(%rax), %rax
467 movl $6, %r11d
468 movq %rax, %rdi
469 addq $1, (%rsi)
470 jmp .L59
471 .L234:
472 movq 16(%rsp), %rsi
473 xorl %eax, %eax
474 testq %rsi, %rsi
475 je .L80
476 movq (%rsi), %rax
477 .L80:
478 addq 112(%rsp), %rax
479 cmpq 32(%rsp), %rax
480 movq 8(%rsp), %rax
481 je .L239
482 movq %r15, (%rax)
483 movq 40(%rsp), %rax
484 movl 16(%r12), %ebx
485 cmpq $0, 96(%rax)
486 je .L240
487 leaq 136(%rsp), %rdi
488 movq %r15, 128(%rsp)
489 movq %r13, 136(%rsp)
490 movq %r13, %rdx
491 movl $4, %eax
492 movq %rdi, 32(%rsp)
493 leaq 128(%rsp), %rdi
494 movq %rdi, 56(%rsp)
495 .L95:
496 cmpq %r15, %rbp
497 je .L241
498 leaq 4(%r15), %rcx
499 cmpq %rcx, %rbp
500 jb .L139
501 cmpq %rdx, %r11
502 jbe .L143
503 movl (%r15), %r8d
504 cmpl $65534, %r8d
505 ja .L97
506 cmpl $255, %r8d
507 movl $402, %ecx
508 leaq from_idx(%rip), %rdi
509 ja .L98
510 jmp .L242
511 .p2align 4,,10
512 .p2align 3
513 .L243:
514 movzwl 10(%rsi), %ecx
515 movq %rsi, %rdi
516 .L98:
517 cmpl %ecx, %r8d
518 leaq 8(%rdi), %rsi
519 ja .L243
520 movzwl (%rsi), %ecx
521 cmpl %ecx, %r8d
522 jb .L100
523 movl %r8d, %ecx
524 addl 12(%rdi), %ecx
525 .L99:
526 leaq from_ucs4(%rip), %rdi
527 testl %r8d, %r8d
528 movzbl (%rdi,%rcx), %ecx
529 je .L151
530 testb %cl, %cl
531 je .L100
532 .L151:
533 leaq 1(%rdx), %rsi
534 movq %rsi, 136(%rsp)
535 movb %cl, (%rdx)
536 movq 128(%rsp), %rdi
537 movq 136(%rsp), %rdx
538 leaq 4(%rdi), %r15
539 movq %r15, 128(%rsp)
540 jmp .L95
541 .L228:
542 testq %rdi, %rdi
543 jne .L244
544 cmpl $4, %edx
545 movq %r15, 128(%rsp)
546 movq %r13, 136(%rsp)
547 ja .L24
548 leaq 120(%rsp), %rsi
549 movslq %edx, %rcx
550 xorl %eax, %eax
551 movq %rcx, 16(%rsp)
552 movq %rsi, 32(%rsp)
553 .L25:
554 movzbl 4(%rbx,%rax), %edx
555 movb %dl, (%rsi,%rax)
556 addq $1, %rax
557 cmpq %rcx, %rax
558 jne .L25
559 movq %r15, %rax
560 subq 16(%rsp), %rax
561 addq $4, %rax
562 cmpq %rax, %rbp
563 jb .L245
564 cmpq %r11, %r13
565 movl $5, %r9d
566 jnb .L14
567 movq 16(%rsp), %rdx
568 leaq 1(%r15), %rax
569 leaq 119(%rsp), %rsi
570 .L33:
571 movq %rax, 128(%rsp)
572 movzbl -1(%rax), %edi
573 addq $1, %rdx
574 movq %rax, %rcx
575 addq $1, %rax
576 cmpq $3, %rdx
577 movb %dil, (%rsi,%rdx)
578 ja .L148
579 cmpq %rcx, %rbp
580 ja .L33
581 .L148:
582 movl 120(%rsp), %ecx
583 movq 32(%rsp), %rax
584 movq %rdx, 16(%rsp)
585 cmpl $65534, %ecx
586 movq %rax, 128(%rsp)
587 ja .L35
588 cmpl $255, %ecx
589 movl $402, %eax
590 leaq from_idx(%rip), %rsi
591 ja .L36
592 jmp .L246
593 .p2align 4,,10
594 .p2align 3
595 .L247:
596 movzwl 10(%rdx), %eax
597 movq %rdx, %rsi
598 .L36:
599 cmpl %eax, %ecx
600 leaq 8(%rsi), %rdx
601 ja .L247
602 movzwl (%rdx), %eax
603 cmpl %eax, %ecx
604 jb .L38
605 movl %ecx, %eax
606 addl 12(%rsi), %eax
607 .L37:
608 leaq from_ucs4(%rip), %rdx
609 testl %ecx, %ecx
610 movzbl (%rdx,%rax), %eax
611 je .L149
612 testb %al, %al
613 jne .L149
614 .L38:
615 cmpq $0, 64(%rsp)
616 je .L123
617 testb $8, %r10b
618 jne .L248
619 andl $2, %r10d
620 je .L123
621 movq 32(%rsp), %rax
622 .L116:
623 movq 64(%rsp), %rsi
624 addq $4, %rax
625 movq %rax, 128(%rsp)
626 addq $1, (%rsi)
627 .L46:
628 cmpq 32(%rsp), %rax
629 jne .L39
630 .L123:
631 movl $6, %r9d
632 jmp .L14
633 .p2align 4,,10
634 .p2align 3
635 .L235:
636 movq %rax, 128(%rsp)
637 movq %rax, %rdi
638 jmp .L62
639 .L239:
640 movq 40(%rsp), %rdi
641 subq %r11, %rbx
642 movq (%rax), %rax
643 cmpq $0, 96(%rdi)
644 je .L249
645 salq $2, %rbx
646 subq %rbx, %rax
647 movq 8(%rsp), %rbx
648 movq %rax, (%rbx)
649 jmp .L77
650 .L149:
651 leaq 1(%r13), %rdx
652 movq %rdx, 136(%rsp)
653 movb %al, 0(%r13)
654 movq 128(%rsp), %rax
655 addq $4, %rax
656 cmpq 32(%rsp), %rax
657 movq %rax, 128(%rsp)
658 je .L220
659 .L39:
660 movl (%rbx), %edx
661 subq 32(%rsp), %rax
662 movl %edx, %ecx
663 andl $7, %ecx
664 cmpq %rcx, %rax
665 jle .L250
666 movq 8(%rsp), %rdi
667 subq %rcx, %rax
668 andl $-8, %edx
669 movq 136(%rsp), %r13
670 movl 16(%r12), %r10d
671 addq (%rdi), %rax
672 movq %rax, (%rdi)
673 movq %rax, %r15
674 movq 112(%rsp), %rax
675 movl %edx, (%rbx)
676 movq %rax, 32(%rsp)
677 movq 40(%rsp), %rax
678 movq 96(%rax), %rax
679 jmp .L22
680 .L125:
681 movq %r15, %rdi
682 movq %r13, %rbx
683 movl $5, %r11d
684 jmp .L63
685 .L227:
686 cmpq $0, 48(%rsp)
687 jne .L251
688 movq 32(%r12), %rax
689 xorl %r9d, %r9d
690 movq $0, (%rax)
691 testb $1, 16(%r12)
692 jne .L14
693 movq 24(%rsp), %r15
694 movq %r15, %rdi
695 call _dl_mcount_wrapper_check@PLT
696 movl 216(%rsp), %eax
697 movq %r14, %r9
698 xorl %r8d, %r8d
699 xorl %ecx, %ecx
700 xorl %edx, %edx
701 pushq %rax
702 pushq %rbx
703 movq 88(%rsp), %rsi
704 movq 96(%rsp), %rdi
705 call *%r15
706 popq %rsi
707 movl %eax, %r9d
708 popq %rdi
709 jmp .L14
710 .L146:
711 movl %r10d, %r9d
712 jmp .L76
713 .L100:
714 cmpq $0, 64(%rsp)
715 je .L144
716 testb $8, 16(%r12)
717 jne .L252
718 .L104:
719 testb $2, %bl
720 jne .L253
721 .L144:
722 movl $6, %eax
723 .L96:
724 movq 8(%rsp), %rbx
725 movq 120(%rsp), %r11
726 movq %r15, (%rbx)
727 .L94:
728 cmpq %r11, %rdx
729 jne .L86
730 cmpq $5, %rax
731 jne .L85
732 cmpq %rdx, %r13
733 jne .L77
734 .L88:
735 subl $1, 20(%r12)
736 jmp .L77
737 .L124:
738 movq %rbp, %rdi
739 movq %r13, %rbx
740 movl $4, %r11d
741 jmp .L63
742 .L252:
743 movq %r11, 104(%rsp)
744 movl %r10d, 88(%rsp)
745 subq $8, %rsp
746 pushq 72(%rsp)
747 movq 24(%rsp), %rax
748 movq %rbp, %r8
749 movq 48(%rsp), %r9
750 movq 72(%rsp), %rcx
751 movq %r12, %rsi
752 movq 56(%rsp), %rdi
753 movq (%rax), %rdx
754 call __gconv_transliterate@PLT
755 popq %rdx
756 cmpl $6, %eax
757 popq %rcx
758 movq 128(%rsp), %r15
759 movq 136(%rsp), %rdx
760 movl 88(%rsp), %r10d
761 movq 104(%rsp), %r11
762 je .L104
763 cmpl $5, %eax
764 jne .L95
765 .L143:
766 movl $5, %eax
767 jmp .L96
768 .L240:
769 cmpq %r15, %rbp
770 je .L254
771 leaq 4(%r13), %rcx
772 cmpq %r11, %rcx
773 ja .L255
774 movq 64(%rsp), %r9
775 andl $2, %ebx
776 movq %r13, %rdx
777 movl $4, %eax
778 movq %r15, %rdi
779 movl %ebx, 32(%rsp)
780 .L89:
781 movzbl (%rdi), %r8d
782 leaq to_ucs4(%rip), %rbx
783 movq %rdi, %rsi
784 movq %r8, %r15
785 movl (%rbx,%r8,4), %r8d
786 testl %r8d, %r8d
787 jne .L91
788 testb %r15b, %r15b
789 jne .L256
790 .L91:
791 addq $1, %rdi
792 movl %r8d, (%rdx)
793 movq %rcx, %rdx
794 movq %rdi, %rsi
795 .L92:
796 cmpq %rdi, %rbp
797 je .L257
798 leaq 4(%rdx), %rcx
799 cmpq %rcx, %r11
800 jnb .L89
801 movl $5, %eax
802 .L90:
803 movq 8(%rsp), %rbx
804 movq %rsi, (%rbx)
805 jmp .L94
806 .L242:
807 movl %r8d, %ecx
808 jmp .L99
809 .L139:
810 movl $7, %eax
811 jmp .L96
812 .L97:
813 shrl $7, %r8d
814 cmpl $7168, %r8d
815 jne .L100
816 movq %rcx, 128(%rsp)
817 movq %rcx, %r15
818 jmp .L95
819 .L249:
820 leaq 3(%rbx), %rdx
821 testq %rbx, %rbx
822 cmovs %rdx, %rbx
823 sarq $2, %rbx
824 subq %rbx, %rax
825 movq 8(%rsp), %rbx
826 movq %rax, (%rbx)
827 jmp .L77
828 .L245:
829 movq 8(%rsp), %rax
830 movq 16(%rsp), %rsi
831 movq %rbp, (%rax)
832 movq %rbp, %rax
833 subq %r15, %rax
834 addq %rsi, %rax
835 cmpq $4, %rax
836 ja .L27
837 cmpq %rsi, %rax
838 leaq 1(%r15), %rdx
839 movq 16(%rsp), %rcx
840 jbe .L29
841 .L30:
842 movq %rdx, 128(%rsp)
843 movzbl -1(%rdx), %esi
844 addq $1, %rdx
845 movb %sil, 4(%rbx,%rcx)
846 addq $1, %rcx
847 cmpq %rcx, %rax
848 jne .L30
849 .L29:
850 movl $7, %r9d
851 jmp .L14
852 .L253:
853 movq 64(%rsp), %rax
854 addq $4, %r15
855 movq %r15, 128(%rsp)
856 addq $1, (%rax)
857 movl $6, %eax
858 jmp .L95
859 .L257:
860 movq %rbp, %rsi
861 jmp .L90
862 .L246:
863 movl %ecx, %eax
864 jmp .L37
865 .L35:
866 shrl $7, %ecx
867 cmpl $7168, %ecx
868 jne .L38
869 movq 32(%rsp), %rax
870 addq $4, %rax
871 movq %rax, 128(%rsp)
872 jmp .L39
873 .p2align 4,,10
874 .p2align 3
875 .L241:
876 cltq
877 movq %rbp, %r15
878 jmp .L96
879 .L256:
880 testq %r9, %r9
881 je .L138
882 movl 32(%rsp), %edi
883 testl %edi, %edi
884 jne .L258
885 .L138:
886 movl $6, %eax
887 jmp .L90
888 .L258:
889 leaq 1(%rsi), %rdi
890 addq $1, (%r9)
891 movl $6, %eax
892 movq %rdi, %rsi
893 jmp .L92
894 .L248:
895 movq 32(%rsp), %rax
896 addq 16(%rsp), %rax
897 leaq 128(%rsp), %rcx
898 movq %r11, 104(%rsp)
899 movl %r10d, 88(%rsp)
900 subq $8, %rsp
901 movq %r15, %rdx
902 movq %r12, %rsi
903 movq %rax, 64(%rsp)
904 pushq 72(%rsp)
905 movq %rax, %r8
906 movq 56(%rsp), %rdi
907 leaq 152(%rsp), %r9
908 call __gconv_transliterate@PLT
909 popq %r15
910 cmpl $6, %eax
911 movl %eax, %r9d
912 popq %rdx
913 movl 88(%rsp), %r10d
914 movq 104(%rsp), %r11
915 movq 128(%rsp), %rax
916 je .L259
917 cmpq 32(%rsp), %rax
918 jne .L39
919 cmpl $7, %r9d
920 jne .L49
921 movq 32(%rsp), %rax
922 addq $4, %rax
923 cmpq %rax, 56(%rsp)
924 je .L260
925 movl (%rbx), %eax
926 movq 16(%rsp), %rsi
927 movl %eax, %edx
928 movq %rsi, %rdi
929 andl $-8, %eax
930 andl $7, %edx
931 subq %rdx, %rdi
932 movq %rdi, %rdx
933 movq 8(%rsp), %rdi
934 addq %rdx, (%rdi)
935 movslq %eax, %rdx
936 cmpq %rdx, %rsi
937 jle .L261
938 cmpq $4, 16(%rsp)
939 ja .L262
940 movq 16(%rsp), %rsi
941 orl %esi, %eax
942 testq %rsi, %rsi
943 movl %eax, (%rbx)
944 je .L29
945 movq 32(%rsp), %rcx
946 xorl %eax, %eax
947 .L53:
948 movzbl (%rcx,%rax), %edx
949 movb %dl, 4(%rbx,%rax)
950 addq $1, %rax
951 cmpq %rax, 16(%rsp)
952 jne .L53
953 jmp .L29
954 .L49:
955 testl %r9d, %r9d
956 jne .L14
957 .L220:
958 movq 112(%rsp), %rax
959 movq 8(%rsp), %rbx
960 movl 16(%r12), %r10d
961 movq %rax, 32(%rsp)
962 movq 40(%rsp), %rax
963 movq (%rbx), %r15
964 movq 96(%rax), %rax
965 jmp .L22
966 .L255:
967 cmpq %r13, %r11
968 je .L88
969 .L86:
970 leaq __PRETTY_FUNCTION__.9153(%rip), %rcx
971 leaq .LC1(%rip), %rsi
972 leaq .LC10(%rip), %rdi
973 movl $746, %edx
974 call __assert_fail@PLT
975 .L250:
976 leaq __PRETTY_FUNCTION__.9074(%rip), %rcx
977 leaq .LC3(%rip), %rsi
978 leaq .LC6(%rip), %rdi
979 movl $459, %edx
980 call __assert_fail@PLT
981 .L262:
982 leaq __PRETTY_FUNCTION__.9074(%rip), %rcx
983 leaq .LC3(%rip), %rsi
984 leaq .LC9(%rip), %rdi
985 movl $488, %edx
986 call __assert_fail@PLT
987 .L261:
988 leaq __PRETTY_FUNCTION__.9074(%rip), %rcx
989 leaq .LC3(%rip), %rsi
990 leaq .LC8(%rip), %rdi
991 movl $487, %edx
992 call __assert_fail@PLT
993 .L260:
994 leaq __PRETTY_FUNCTION__.9074(%rip), %rcx
995 leaq .LC3(%rip), %rsi
996 leaq .LC7(%rip), %rdi
997 movl $477, %edx
998 call __assert_fail@PLT
999 .L259:
1000 andb $2, %r10b
1001 je .L46
1002 jmp .L116
1003 .L27:
1004 leaq __PRETTY_FUNCTION__.9074(%rip), %rcx
1005 leaq .LC3(%rip), %rsi
1006 leaq .LC5(%rip), %rdi
1007 movl $424, %edx
1008 call __assert_fail@PLT
1009 .L254:
1010 cmpq %r13, %r11
1011 jne .L86
1012 .L85:
1013 leaq __PRETTY_FUNCTION__.9153(%rip), %rcx
1014 leaq .LC1(%rip), %rsi
1015 leaq .LC11(%rip), %rdi
1016 movl $747, %edx
1017 call __assert_fail@PLT
1018 .L112:
1019 leaq __PRETTY_FUNCTION__.9153(%rip), %rcx
1020 leaq .LC1(%rip), %rsi
1021 leaq .LC12(%rip), %rdi
1022 movl $799, %edx
1023 call __assert_fail@PLT
1024 .L251:
1025 leaq __PRETTY_FUNCTION__.9153(%rip), %rcx
1026 leaq .LC1(%rip), %rsi
1027 leaq .LC2(%rip), %rdi
1028 movl $420, %edx
1029 call __assert_fail@PLT
1030 .L24:
1031 leaq __PRETTY_FUNCTION__.9074(%rip), %rcx
1032 leaq .LC3(%rip), %rsi
1033 leaq .LC4(%rip), %rdi
1034 movl $395, %edx
1035 call __assert_fail@PLT
1036 .L244:
1037 leaq __PRETTY_FUNCTION__.9153(%rip), %rcx
1038 leaq .LC1(%rip), %rsi
1039 leaq .LC2(%rip), %rdi
1040 movl $564, %edx
1041 call __assert_fail@PLT
1042 .size gconv, .-gconv
1043 .section .rodata.str1.8
1044 .align 8
1045 .type __PRETTY_FUNCTION__.9074, @object
1046 .size __PRETTY_FUNCTION__.9074, 14
1047 __PRETTY_FUNCTION__.9074:
1048 .string "to_gap_single"
1049 .section .rodata.str1.1
1050 .type __PRETTY_FUNCTION__.9153, @object
1051 .size __PRETTY_FUNCTION__.9153, 6
1052 __PRETTY_FUNCTION__.9153:
1053 .string "gconv"
1054 .section .rodata
1055 .align 32
1056 .type from_ucs4, @object
1057 .size from_ucs4, 261
1058 from_ucs4:
1059 .byte 0
1060 .byte 1
1061 .byte 2
1062 .byte 3
1063 .byte 55
1064 .byte 45
1065 .byte 46
1066 .byte 47
1067 .byte 22
1068 .byte 5
1069 .byte 37
1070 .byte 11
1071 .byte 12
1072 .byte 13
1073 .byte 14
1074 .byte 15
1075 .byte 16
1076 .byte 17
1077 .byte 18
1078 .byte 19
1079 .byte 60
1080 .byte 61
1081 .byte 50
1082 .byte 38
1083 .byte 24
1084 .byte 25
1085 .byte 63
1086 .byte 39
1087 .byte 28
1088 .byte 29
1089 .byte 30
1090 .byte 31
1091 .byte 64
1092 .byte 79
1093 .byte 127
1094 .byte 123
1095 .byte 91
1096 .byte 108
1097 .byte 80
1098 .byte 125
1099 .byte 77
1100 .byte 93
1101 .byte 92
1102 .byte 78
1103 .byte 107
1104 .byte 96
1105 .byte 75
1106 .byte 97
1107 .byte -16
1108 .byte -15
1109 .byte -14
1110 .byte -13
1111 .byte -12
1112 .byte -11
1113 .byte -10
1114 .byte -9
1115 .byte -8
1116 .byte -7
1117 .byte 122
1118 .byte 94
1119 .byte 76
1120 .byte 126
1121 .byte 110
1122 .byte 111
1123 .byte 124
1124 .byte -63
1125 .byte -62
1126 .byte -61
1127 .byte -60
1128 .byte -59
1129 .byte -58
1130 .byte -57
1131 .byte -56
1132 .byte -55
1133 .byte -47
1134 .byte -46
1135 .byte -45
1136 .byte -44
1137 .byte -43
1138 .byte -42
1139 .byte -41
1140 .byte -40
1141 .byte -39
1142 .byte -30
1143 .byte -29
1144 .byte -28
1145 .byte -27
1146 .byte -26
1147 .byte -25
1148 .byte -24
1149 .byte -23
1150 .byte 74
1151 .byte -32
1152 .byte 90
1153 .byte 95
1154 .byte 109
1155 .byte 121
1156 .byte -127
1157 .byte -126
1158 .byte -125
1159 .byte -124
1160 .byte -123
1161 .byte -122
1162 .byte -121
1163 .byte -120
1164 .byte -119
1165 .byte -111
1166 .byte -110
1167 .byte -109
1168 .byte -108
1169 .byte -107
1170 .byte -106
1171 .byte -105
1172 .byte -104
1173 .byte -103
1174 .byte -94
1175 .byte -93
1176 .byte -92
1177 .byte -91
1178 .byte -90
1179 .byte -89
1180 .byte -88
1181 .byte -87
1182 .byte -64
1183 .byte -69
1184 .byte -48
1185 .byte -95
1186 .byte 7
1187 .byte 32
1188 .byte 33
1189 .byte 34
1190 .byte 35
1191 .byte 36
1192 .byte 21
1193 .byte 6
1194 .byte 23
1195 .byte 40
1196 .byte 41
1197 .byte 42
1198 .byte 43
1199 .byte 44
1200 .byte 9
1201 .byte 10
1202 .byte 27
1203 .byte 48
1204 .byte 49
1205 .byte 26
1206 .byte 51
1207 .byte 52
1208 .byte 53
1209 .byte 54
1210 .byte 8
1211 .byte 56
1212 .byte 57
1213 .byte 58
1214 .byte 59
1215 .byte 4
1216 .byte 20
1217 .byte 62
1218 .byte -1
1219 .byte 65
1220 .byte -86
1221 .byte -80
1222 .byte -79
1223 .byte -97
1224 .byte -78
1225 .byte 106
1226 .byte -75
1227 .byte -67
1228 .byte 0
1229 .byte -102
1230 .byte -118
1231 .byte -70
1232 .byte -54
1233 .byte -81
1234 .byte 0
1235 .byte -112
1236 .byte -113
1237 .byte -22
1238 .byte -6
1239 .byte -66
1240 .byte -96
1241 .byte -74
1242 .byte 0
1243 .byte -99
1244 .byte -38
1245 .byte -101
1246 .byte -117
1247 .byte -73
1248 .byte -72
1249 .byte -71
1250 .byte -85
1251 .byte 100
1252 .byte 101
1253 .byte 98
1254 .byte 102
1255 .byte 99
1256 .byte 103
1257 .byte -98
1258 .byte 104
1259 .byte 116
1260 .byte 113
1261 .byte 114
1262 .byte 115
1263 .byte 120
1264 .byte 117
1265 .byte 118
1266 .byte 119
1267 .byte -84
1268 .byte 105
1269 .byte -19
1270 .byte -18
1271 .byte -21
1272 .byte -17
1273 .byte -20
1274 .byte 0
1275 .byte -128
1276 .byte -3
1277 .byte -2
1278 .byte -5
1279 .byte -4
1280 .byte -83
1281 .byte -82
1282 .byte 89
1283 .byte 68
1284 .byte 69
1285 .byte 66
1286 .byte 70
1287 .byte 67
1288 .byte 71
1289 .byte -100
1290 .byte 72
1291 .byte 84
1292 .byte 81
1293 .byte 82
1294 .byte 83
1295 .byte 88
1296 .byte 85
1297 .byte 86
1298 .byte 87
1299 .byte -116
1300 .byte 73
1301 .byte -51
1302 .byte -50
1303 .byte -53
1304 .byte -49
1305 .byte -52
1306 .byte 0
1307 .byte 112
1308 .byte -35
1309 .byte -34
1310 .byte -37
1311 .byte -36
1312 .byte -115
1313 .byte -114
1314 .byte -33
1315 .byte -76
1316 .byte -31
1317 .byte -65
1318 .byte -68
1319 .byte -77
1320 .align 32
1321 .type from_idx, @object
1322 .size from_idx, 56
1323 from_idx:
1324 .value 0
1325 .value 255
1326 .long 0
1327 .value 402
1328 .value 402
1329 .long -146
1330 .value 8195
1331 .value 8195
1332 .long -7938
1333 .value 8215
1334 .value 8215
1335 .long -7957
1336 .value 8254
1337 .value 8254
1338 .long -7995
1339 .value 8359
1340 .value 8359
1341 .long -8099
1342 .value -1
1343 .value -1
1344 .long 0
1345 .align 32
1346 .type to_ucs4, @object
1347 .size to_ucs4, 1024
1348 to_ucs4:
1349 .zero 4
1350 .long 1
1351 .long 2
1352 .long 3
1353 .long 156
1354 .long 9
1355 .long 134
1356 .long 127
1357 .long 151
1358 .long 141
1359 .long 142
1360 .long 11
1361 .long 12
1362 .long 13
1363 .long 14
1364 .long 15
1365 .long 16
1366 .long 17
1367 .long 18
1368 .long 19
1369 .long 157
1370 .long 133
1371 .long 8
1372 .long 135
1373 .long 24
1374 .long 25
1375 .long 146
1376 .long 143
1377 .long 28
1378 .long 29
1379 .long 30
1380 .long 31
1381 .long 128
1382 .long 129
1383 .long 130
1384 .long 131
1385 .long 132
1386 .long 10
1387 .long 23
1388 .long 27
1389 .long 136
1390 .long 137
1391 .long 138
1392 .long 139
1393 .long 140
1394 .long 5
1395 .long 6
1396 .long 7
1397 .long 144
1398 .long 145
1399 .long 22
1400 .long 147
1401 .long 148
1402 .long 149
1403 .long 150
1404 .long 4
1405 .long 152
1406 .long 153
1407 .long 154
1408 .long 155
1409 .long 20
1410 .long 21
1411 .long 158
1412 .long 26
1413 .long 32
1414 .long 160
1415 .long 226
1416 .long 228
1417 .long 224
1418 .long 225
1419 .long 227
1420 .long 229
1421 .long 231
1422 .long 241
1423 .long 91
1424 .long 46
1425 .long 60
1426 .long 40
1427 .long 43
1428 .long 33
1429 .long 38
1430 .long 233
1431 .long 234
1432 .long 235
1433 .long 232
1434 .long 237
1435 .long 238
1436 .long 239
1437 .long 236
1438 .long 223
1439 .long 93
1440 .long 36
1441 .long 42
1442 .long 41
1443 .long 59
1444 .long 94
1445 .long 45
1446 .long 47
1447 .long 194
1448 .long 196
1449 .long 192
1450 .long 193
1451 .long 195
1452 .long 197
1453 .long 199
1454 .long 209
1455 .long 166
1456 .long 44
1457 .long 37
1458 .long 95
1459 .long 62
1460 .long 63
1461 .long 248
1462 .long 201
1463 .long 202
1464 .long 203
1465 .long 200
1466 .long 205
1467 .long 206
1468 .long 207
1469 .long 204
1470 .long 96
1471 .long 58
1472 .long 35
1473 .long 64
1474 .long 39
1475 .long 61
1476 .long 34
1477 .long 216
1478 .long 97
1479 .long 98
1480 .long 99
1481 .long 100
1482 .long 101
1483 .long 102
1484 .long 103
1485 .long 104
1486 .long 105
1487 .long 171
1488 .long 187
1489 .long 240
1490 .long 253
1491 .long 254
1492 .long 177
1493 .long 176
1494 .long 106
1495 .long 107
1496 .long 108
1497 .long 109
1498 .long 110
1499 .long 111
1500 .long 112
1501 .long 113
1502 .long 114
1503 .long 170
1504 .long 186
1505 .long 230
1506 .long 184
1507 .long 198
1508 .long 164
1509 .long 181
1510 .long 126
1511 .long 115
1512 .long 116
1513 .long 117
1514 .long 118
1515 .long 119
1516 .long 120
1517 .long 121
1518 .long 122
1519 .long 161
1520 .long 191
1521 .long 208
1522 .long 221
1523 .long 222
1524 .long 174
1525 .long 162
1526 .long 163
1527 .long 165
1528 .long 8359
1529 .long 402
1530 .long 167
1531 .long 182
1532 .long 188
1533 .long 189
1534 .long 190
1535 .long 172
1536 .long 124
1537 .long 8254
1538 .long 168
1539 .long 180
1540 .long 8215
1541 .long 123
1542 .long 65
1543 .long 66
1544 .long 67
1545 .long 68
1546 .long 69
1547 .long 70
1548 .long 71
1549 .long 72
1550 .long 73
1551 .long 173
1552 .long 244
1553 .long 246
1554 .long 242
1555 .long 243
1556 .long 245
1557 .long 125
1558 .long 74
1559 .long 75
1560 .long 76
1561 .long 77
1562 .long 78
1563 .long 79
1564 .long 80
1565 .long 81
1566 .long 82
1567 .long 185
1568 .long 251
1569 .long 252
1570 .long 249
1571 .long 250
1572 .long 255
1573 .long 92
1574 .long 8195
1575 .long 83
1576 .long 84
1577 .long 85
1578 .long 86
1579 .long 87
1580 .long 88
1581 .long 89
1582 .long 90
1583 .long 178
1584 .long 212
1585 .long 214
1586 .long 210
1587 .long 211
1588 .long 213
1589 .long 48
1590 .long 49
1591 .long 50
1592 .long 51
1593 .long 52
1594 .long 53
1595 .long 54
1596 .long 55
1597 .long 56
1598 .long 57
1599 .long 179
1600 .long 219
1601 .long 220
1602 .long 217
1603 .long 218
1604 .long 159