clarify the purpose of this project
[nyanglibc.git] / malloc / malloc.s
blobd33deb659aca02db2865bfeb939fbdcc7ee3b4df
1 .text
2 .p2align 4,,15
3 .globl _dl_tunable_set_mmap_threshold
4 .type _dl_tunable_set_mmap_threshold, @function
5 _dl_tunable_set_mmap_threshold:
6 movq (%rdi), %rax
7 cmpq $33554432, %rax
8 ja .L1
9 movq %rax, 16+mp_(%rip)
10 movl $1, 52+mp_(%rip)
11 .L1:
12 rep ret
13 .size _dl_tunable_set_mmap_threshold, .-_dl_tunable_set_mmap_threshold
14 .p2align 4,,15
15 .globl _dl_tunable_set_mmaps_max
16 .type _dl_tunable_set_mmaps_max, @function
17 _dl_tunable_set_mmaps_max:
18 movq (%rdi), %rax
19 movl $1, 52+mp_(%rip)
20 movl %eax, 44+mp_(%rip)
21 ret
22 .size _dl_tunable_set_mmaps_max, .-_dl_tunable_set_mmaps_max
23 .p2align 4,,15
24 .globl _dl_tunable_set_top_pad
25 .type _dl_tunable_set_top_pad, @function
26 _dl_tunable_set_top_pad:
27 movq (%rdi), %rax
28 movl $1, 52+mp_(%rip)
29 movq %rax, 8+mp_(%rip)
30 ret
31 .size _dl_tunable_set_top_pad, .-_dl_tunable_set_top_pad
32 .p2align 4,,15
33 .globl _dl_tunable_set_perturb_byte
34 .type _dl_tunable_set_perturb_byte, @function
35 _dl_tunable_set_perturb_byte:
36 movq (%rdi), %rax
37 movl %eax, perturb_byte(%rip)
38 ret
39 .size _dl_tunable_set_perturb_byte, .-_dl_tunable_set_perturb_byte
40 .p2align 4,,15
41 .globl _dl_tunable_set_trim_threshold
42 .type _dl_tunable_set_trim_threshold, @function
43 _dl_tunable_set_trim_threshold:
44 movq (%rdi), %rax
45 movl $1, 52+mp_(%rip)
46 movq %rax, mp_(%rip)
47 ret
48 .size _dl_tunable_set_trim_threshold, .-_dl_tunable_set_trim_threshold
49 .p2align 4,,15
50 .globl _dl_tunable_set_arena_max
51 .type _dl_tunable_set_arena_max, @function
52 _dl_tunable_set_arena_max:
53 movq (%rdi), %rax
54 movq %rax, 32+mp_(%rip)
55 ret
56 .size _dl_tunable_set_arena_max, .-_dl_tunable_set_arena_max
57 .p2align 4,,15
58 .globl _dl_tunable_set_arena_test
59 .type _dl_tunable_set_arena_test, @function
60 _dl_tunable_set_arena_test:
61 movq (%rdi), %rax
62 movq %rax, 24+mp_(%rip)
63 ret
64 .size _dl_tunable_set_arena_test, .-_dl_tunable_set_arena_test
65 .p2align 4,,15
66 .globl _dl_tunable_set_tcache_max
67 .type _dl_tunable_set_tcache_max, @function
68 _dl_tunable_set_tcache_max:
69 movq (%rdi), %rax
70 cmpq $1032, %rax
71 ja .L10
72 movq %rax, 88+mp_(%rip)
73 addq $23, %rax
74 movl $1, %edx
75 cmpq $31, %rax
76 jbe .L12
77 andq $-16, %rax
78 subq $17, %rax
79 shrq $4, %rax
80 leaq 1(%rax), %rdx
81 .L12:
82 movq %rdx, 80+mp_(%rip)
83 .L10:
84 rep ret
85 .size _dl_tunable_set_tcache_max, .-_dl_tunable_set_tcache_max
86 .p2align 4,,15
87 .globl _dl_tunable_set_tcache_count
88 .type _dl_tunable_set_tcache_count, @function
89 _dl_tunable_set_tcache_count:
90 movq (%rdi), %rax
91 cmpq $65535, %rax
92 ja .L14
93 movq %rax, 96+mp_(%rip)
94 .L14:
95 rep ret
96 .size _dl_tunable_set_tcache_count, .-_dl_tunable_set_tcache_count
97 .p2align 4,,15
98 .globl _dl_tunable_set_tcache_unsorted_limit
99 .type _dl_tunable_set_tcache_unsorted_limit, @function
100 _dl_tunable_set_tcache_unsorted_limit:
101 movq (%rdi), %rax
102 movq %rax, 104+mp_(%rip)
104 .size _dl_tunable_set_tcache_unsorted_limit, .-_dl_tunable_set_tcache_unsorted_limit
105 .p2align 4,,15
106 .globl _dl_tunable_set_mxfast
107 .type _dl_tunable_set_mxfast, @function
108 _dl_tunable_set_mxfast:
109 movq (%rdi), %rax
110 cmpq $160, %rax
111 ja .L17
112 cmpq $7, %rax
113 movl $16, %edx
114 jbe .L19
115 leaq 8(%rax), %rdx
116 andq $-16, %rdx
117 .L19:
118 movq %rdx, global_max_fast(%rip)
119 .L17:
120 rep ret
121 .size _dl_tunable_set_mxfast, .-_dl_tunable_set_mxfast
122 .p2align 4,,15
123 .type mem2mem_check, @function
124 mem2mem_check:
125 testq %rdi, %rdi
126 movq %rdi, %rax
127 je .L22
128 leaq -16(%rdi), %rdx
129 movq %rdx, %rdi
130 shrq $11, %rdx
131 shrq $3, %rdi
132 xorl %edx, %edi
133 movl $2, %edx
134 cmpb $1, %dil
135 cmove %edx, %edi
136 movq -8(%rax), %rdx
137 movq %rdx, %rcx
138 andq $-8, %rcx
139 andl $2, %edx
140 sete %dl
141 movzbl %dl, %edx
142 leaq -17(%rcx,%rdx,8), %rcx
143 cmpq %rsi, %rcx
144 jbe .L25
145 movzbl %dil, %r8d
146 movl $255, %r10d
147 leaq -1(%r8), %r9
148 .p2align 4,,10
149 .p2align 3
150 .L27:
151 movq %rcx, %rdx
152 subq %rsi, %rdx
153 cmpq $255, %rdx
154 cmova %r10, %rdx
155 cmpq %r8, %rdx
156 cmove %r9, %rdx
157 movb %dl, (%rax,%rcx)
158 subq %rdx, %rcx
159 cmpq %rcx, %rsi
160 jb .L27
161 .L25:
162 movb %dil, (%rax,%rsi)
163 .L22:
164 rep ret
165 .size mem2mem_check, .-mem2mem_check
166 .p2align 4,,15
167 .type mem2chunk_check, @function
168 mem2chunk_check:
169 testb $15, %dil
170 jne .L69
171 leaq -16(%rdi), %rax
172 movq -8(%rdi), %r9
173 movq %rax, %r8
174 movq %rax, %rdx
175 shrq $11, %rdx
176 shrq $3, %r8
177 movq %r9, %rcx
178 xorl %edx, %r8d
179 andq $-8, %rcx
180 movl $2, %edx
181 cmpb $1, %r8b
182 cmove %edx, %r8d
183 testb $2, %r9b
184 jne .L37
185 movl 4+main_arena(%rip), %edx
186 andl $2, %edx
187 jne .L38
188 movq 72+mp_(%rip), %r10
189 cmpq %rax, %r10
190 ja .L69
191 addq 2184+main_arena(%rip), %r10
192 leaq (%rax,%rcx), %r11
193 cmpq %r10, %r11
194 jnb .L69
195 .L38:
196 cmpq $31, %rcx
197 jbe .L69
198 testb $8, %r9b
199 jne .L69
200 testb $1, -8(%rdi,%rcx)
201 je .L69
202 andl $1, %r9d
203 je .L89
204 .L39:
205 leaq 7(%rcx), %rdi
206 leaq (%rax,%rdi), %rcx
207 movzbl (%rcx), %edx
208 cmpb %dl, %r8b
209 je .L41
210 testq %rdx, %rdx
211 je .L69
212 leaq 16(%rdx), %rcx
213 cmpq %rcx, %rdi
214 jnb .L42
215 jmp .L69
216 .p2align 4,,10
217 .p2align 3
218 .L43:
219 testq %rdx, %rdx
220 je .L69
221 leaq 16(%rdx), %rcx
222 cmpq %rdi, %rcx
223 ja .L69
224 .L42:
225 subq %rdx, %rdi
226 leaq (%rax,%rdi), %rcx
227 movzbl (%rcx), %edx
228 cmpb %r8b, %dl
229 jne .L43
230 .L41:
231 movl %r8d, %edx
232 testq %rsi, %rsi
233 notl %edx
234 movb %dl, (%rcx)
235 je .L34
236 movq %rcx, (%rsi)
238 .p2align 4,,10
239 .p2align 3
240 .L89:
241 movq -16(%rdi), %rdi
242 testb $15, %dil
243 jne .L69
244 movq %rax, %r9
245 subq %rdi, %r9
246 testl %edx, %edx
247 jne .L40
248 cmpq %r9, 72+mp_(%rip)
249 ja .L69
250 .L40:
251 movq 8(%r9), %rdx
252 andq $-8, %rdx
253 cmpq %rdx, %rdi
254 je .L39
255 .p2align 4,,10
256 .p2align 3
257 .L69:
258 xorl %eax, %eax
259 .L34:
260 rep ret
261 .p2align 4,,10
262 .p2align 3
263 .L37:
264 movq _dl_pagesize(%rip), %rdx
265 movq %rdi, %r10
266 subq $1, %rdx
267 andq %rdx, %r10
268 leaq -16(%r10), %r11
269 testq $-17, %r11
270 je .L44
271 leaq -1(%r10), %r11
272 cmpq $8190, %r11
273 ja .L44
274 leaq -64(%r10), %r11
275 testq $-65, %r11
276 jne .L90
277 .L44:
278 andl $3, %r9d
279 cmpq $2, %r9
280 jne .L69
281 movq -16(%rdi), %rdi
282 movq %rax, %r9
283 subq %rdi, %r9
284 addq %rcx, %rdi
285 orq %r9, %rdi
286 testq %rdx, %rdi
287 jne .L69
288 leaq -1(%rcx), %rdx
289 leaq (%rax,%rdx), %rcx
290 movzbl (%rcx), %edi
291 cmpb %dil, %r8b
292 je .L41
293 testq %rdi, %rdi
294 je .L69
295 leaq 16(%rdi), %rcx
296 cmpq %rcx, %rdx
297 jnb .L45
298 jmp .L69
299 .p2align 4,,10
300 .p2align 3
301 .L46:
302 testq %rdi, %rdi
303 je .L69
304 leaq 16(%rdi), %rcx
305 cmpq %rdx, %rcx
306 ja .L69
307 .L45:
308 subq %rdi, %rdx
309 leaq (%rax,%rdx), %rcx
310 movzbl (%rcx), %edi
311 cmpb %r8b, %dil
312 jne .L46
313 jmp .L41
314 .p2align 4,,10
315 .p2align 3
316 .L90:
317 leaq -256(%r10), %r11
318 testq $-257, %r11
319 je .L44
320 leaq -1024(%r10), %r11
321 testq $-1025, %r11
322 je .L44
323 cmpq $4096, %r10
324 je .L44
325 xorl %eax, %eax
326 jmp .L34
327 .size mem2chunk_check, .-mem2chunk_check
328 .p2align 4,,15
329 .type malloc_init_state, @function
330 malloc_init_state:
331 leaq 96(%rdi), %rcx
332 leaq 2128(%rdi), %rdx
333 movq %rcx, %rax
334 .p2align 4,,10
335 .p2align 3
336 .L92:
337 movq %rax, 24(%rax)
338 movq %rax, 16(%rax)
339 addq $16, %rax
340 cmpq %rdx, %rax
341 jne .L92
342 leaq main_arena(%rip), %rax
343 cmpq %rax, %rdi
344 je .L93
345 orl $2, 4(%rdi)
346 .L94:
347 movl $0, 8(%rdi)
348 movq %rcx, 96(%rdi)
350 .L93:
351 movq $128, global_max_fast(%rip)
352 jmp .L94
353 .size malloc_init_state, .-malloc_init_state
354 .section .rodata.str1.1,"aMS",@progbits,1
355 .LC0:
356 .string "%s\n"
357 .text
358 .p2align 4,,15
359 .type malloc_printerr, @function
360 malloc_printerr:
361 leaq .LC0(%rip), %rsi
362 movq %rdi, %rdx
363 subq $8, %rsp
364 movl $1, %edi
365 xorl %eax, %eax
366 call __libc_message
367 .size malloc_printerr, .-malloc_printerr
368 .section .rodata.str1.1
369 .LC1:
370 .string "malloc: top chunk is corrupt"
371 .text
372 .p2align 4,,15
373 .type top_check, @function
374 top_check:
375 movq 96+main_arena(%rip), %rax
376 leaq 96+main_arena(%rip), %rdx
377 cmpq %rdx, %rax
378 je .L99
379 movq 8(%rax), %rdx
380 testb $2, %dl
381 jne .L101
382 movq %rdx, %rcx
383 andq $-8, %rcx
384 cmpq $31, %rcx
385 jbe .L101
386 andl $1, %edx
387 je .L101
388 testb $2, 4+main_arena(%rip)
389 jne .L99
390 movq 2184+main_arena(%rip), %rdx
391 addq 72+mp_(%rip), %rdx
392 addq %rcx, %rax
393 cmpq %rdx, %rax
394 jne .L101
395 .L99:
396 rep ret
397 .L101:
398 leaq .LC1(%rip), %rdi
399 subq $8, %rsp
400 call malloc_printerr
401 .size top_check, .-top_check
402 .section .rodata.str1.8,"aMS",@progbits,1
403 .align 8
404 .LC2:
405 .string "int_mallinfo(): unaligned fastbin chunk detected"
406 .text
407 .p2align 4,,15
408 .type int_mallinfo, @function
409 int_mallinfo:
410 pushq %rbp
411 pushq %rbx
412 leaq 16(%rdi), %r8
413 leaq 96(%rdi), %r9
414 xorl %r11d, %r11d
415 xorl %r10d, %r10d
416 subq $8, %rsp
417 .L112:
418 movq (%r8), %rax
419 testq %rax, %rax
420 jne .L111
421 jmp .L108
422 .p2align 4,,10
423 .p2align 3
424 .L110:
425 movq 8(%rax), %rdx
426 movq 16(%rax), %rcx
427 addl $1, %r11d
428 andq $-8, %rdx
429 addq %rdx, %r10
430 leaq 16(%rax), %rdx
431 shrq $12, %rdx
432 movq %rdx, %rax
433 xorq %rcx, %rax
434 cmpq %rcx, %rdx
435 je .L108
436 .L111:
437 testb $15, %al
438 je .L110
439 leaq .LC2(%rip), %rdi
440 call malloc_printerr
441 .L108:
442 addq $8, %r8
443 cmpq %r8, %r9
444 jne .L112
445 movq 96(%rdi), %rax
446 leaq 2128(%rdi), %rbx
447 movl $1, %ecx
448 movq 8(%rax), %rbp
449 andq $-8, %rbp
450 leaq (%r10,%rbp), %r8
451 .p2align 4,,10
452 .p2align 3
453 .L115:
454 movq 24(%r9), %rax
455 cmpq %rax, %r9
456 je .L113
457 .p2align 4,,10
458 .p2align 3
459 .L114:
460 movq 8(%rax), %rdx
461 movq 24(%rax), %rax
462 addl $1, %ecx
463 andq $-8, %rdx
464 addq %rdx, %r8
465 cmpq %rax, %r9
466 jne .L114
467 .L113:
468 addq $16, %r9
469 cmpq %r9, %rbx
470 jne .L115
471 movq 2184(%rdi), %rax
472 addq %rax, (%rsi)
473 movslq %r11d, %r11
474 movslq %ecx, %rcx
475 addq %r11, 16(%rsi)
476 addq %rcx, 8(%rsi)
477 movq %rax, %rdx
478 leaq main_arena(%rip), %rax
479 addq %r8, 64(%rsi)
480 subq %r8, %rdx
481 addq %r10, 48(%rsi)
482 addq %rdx, 56(%rsi)
483 cmpq %rax, %rdi
484 jne .L107
485 movslq 40+mp_(%rip), %rax
486 movq %rbp, 72(%rsi)
487 movq %rax, 24(%rsi)
488 movq 56+mp_(%rip), %rax
489 movq $0, 40(%rsi)
490 movq %rax, 32(%rsi)
491 .L107:
492 addq $8, %rsp
493 popq %rbx
494 popq %rbp
496 .size int_mallinfo, .-int_mallinfo
497 .section .rodata.str1.1
498 .LC3:
499 .string ": "
500 .LC4:
501 .string ""
502 .section .rodata.str1.8
503 .align 8
504 .LC5:
505 .string "%s%s%s:%u: %s%sAssertion `%s' failed.\n"
506 .text
507 .p2align 4,,15
508 .type __malloc_assert, @function
509 __malloc_assert:
510 subq $16, %rsp
511 movl %edx, %r9d
512 movq __progname(%rip), %rdx
513 leaq .LC3(%rip), %r10
514 leaq .LC4(%rip), %rax
515 movq %rsi, %r8
516 leaq .LC5(%rip), %rsi
517 cmpb $0, (%rdx)
518 pushq %rdi
519 pushq %r10
520 pushq %rcx
521 cmovne %r10, %rax
522 xorl %edi, %edi
523 movq %rax, %rcx
524 xorl %eax, %eax
525 call __fxprintf
526 movq stderr(%rip), %rdi
527 addq $32, %rsp
528 call fflush
529 call abort
530 .size __malloc_assert, .-__malloc_assert
531 .p2align 4,,15
532 .type new_heap, @function
533 new_heap:
534 pushq %r13
535 pushq %r12
536 addq %rdi, %rsi
537 pushq %rbp
538 pushq %rbx
539 subq $8, %rsp
540 cmpq $32767, %rsi
541 movq _dl_pagesize(%rip), %rbp
542 jbe .L143
543 cmpq $67108864, %rsi
544 ja .L160
545 .L132:
546 movq aligned_heap_area(%rip), %rdi
547 leaq -1(%rsi,%rbp), %rax
548 negq %rbp
549 andq %rax, %rbp
550 testq %rdi, %rdi
551 je .L135
552 xorl %r9d, %r9d
553 xorl %edx, %edx
554 movl $-1, %r8d
555 movl $16418, %ecx
556 movl $67108864, %esi
557 call __mmap
558 cmpq $-1, %rax
559 movq %rax, %rbx
560 movq $0, aligned_heap_area(%rip)
561 je .L135
562 testl $67108863, %eax
563 jne .L161
564 .L137:
565 movl $3, %edx
566 movq %rbp, %rsi
567 movq %rbx, %rdi
568 call __mprotect
569 testl %eax, %eax
570 jne .L158
571 movq %rbp, 16(%rbx)
572 movq %rbp, 24(%rbx)
573 .L131:
574 addq $8, %rsp
575 movq %rbx, %rax
576 popq %rbx
577 popq %rbp
578 popq %r12
579 popq %r13
581 .p2align 4,,10
582 .p2align 3
583 .L161:
584 movl $67108864, %esi
585 movq %rax, %rdi
586 call __munmap
587 .L135:
588 xorl %r9d, %r9d
589 xorl %edx, %edx
590 xorl %edi, %edi
591 movl $-1, %r8d
592 movl $16418, %ecx
593 movl $134217728, %esi
594 call __mmap
595 cmpq $-1, %rax
596 je .L138
597 leaq 67108863(%rax), %rbx
598 andq $-67108864, %rbx
599 movq %rbx, %r13
600 leaq 67108864(%rbx), %r12
601 subq %rax, %r13
602 jne .L162
603 movq %r12, aligned_heap_area(%rip)
604 .L140:
605 movl $67108864, %esi
606 movq %r12, %rdi
607 subq %r13, %rsi
608 call __munmap
609 jmp .L137
610 .p2align 4,,10
611 .p2align 3
612 .L143:
613 movl $32768, %esi
614 jmp .L132
615 .p2align 4,,10
616 .p2align 3
617 .L160:
618 cmpq $67108864, %rdi
619 movl $67108864, %esi
620 jbe .L132
621 .L159:
622 xorl %ebx, %ebx
623 jmp .L131
624 .p2align 4,,10
625 .p2align 3
626 .L162:
627 movq %r13, %rsi
628 movq %rax, %rdi
629 call __munmap
630 jmp .L140
631 .p2align 4,,10
632 .p2align 3
633 .L138:
634 xorl %r9d, %r9d
635 xorl %edx, %edx
636 xorl %edi, %edi
637 movl %eax, %r8d
638 movl $16418, %ecx
639 movl $67108864, %esi
640 call __mmap
641 cmpq $-1, %rax
642 movq %rax, %rbx
643 je .L159
644 testl $67108863, %eax
645 je .L137
646 .p2align 4,,10
647 .p2align 3
648 .L158:
649 movq %rbx, %rdi
650 movl $67108864, %esi
651 xorl %ebx, %ebx
652 call __munmap
653 jmp .L131
654 .size new_heap, .-new_heap
655 .section .rodata.str1.1
656 .LC6:
657 .string "malloc.c"
658 .LC7:
659 .string "chunk_is_mmapped (p)"
660 .section .rodata.str1.8
661 .align 8
662 .LC8:
663 .string "munmap_chunk(): invalid pointer"
664 .text
665 .p2align 4,,15
666 .type munmap_chunk, @function
667 munmap_chunk:
668 subq $8, %rsp
669 movq 8(%rdi), %rax
670 movq %rax, %rdx
671 andq $-8, %rdx
672 testb $2, %al
673 je .L168
674 movq (%rdi), %rsi
675 movq _dl_pagesize(%rip), %rax
676 leaq 16(%rdi), %rcx
677 subq %rsi, %rdi
678 addq %rdx, %rsi
679 subq $1, %rax
680 movq %rdi, %rdx
681 orq %rsi, %rdx
682 testq %rax, %rdx
683 jne .L165
684 andq %rcx, %rax
685 leaq -1(%rax), %rdx
686 testq %rax, %rdx
687 jne .L165
688 #APP
689 # 2997 "malloc.c" 1
690 lock;decl 40+mp_(%rip)
691 # 0 "" 2
692 #NO_APP
693 movq %rsi, %rax
694 negq %rax
695 #APP
696 # 2998 "malloc.c" 1
697 lock;addq %rax, 56+mp_(%rip)
698 # 0 "" 2
699 #NO_APP
700 addq $8, %rsp
701 jmp __munmap
702 .p2align 4,,10
703 .p2align 3
704 .L165:
705 leaq .LC8(%rip), %rdi
706 call malloc_printerr
707 .L168:
708 leaq __PRETTY_FUNCTION__.12735(%rip), %rcx
709 leaq .LC6(%rip), %rsi
710 leaq .LC7(%rip), %rdi
711 movl $2978, %edx
712 call __malloc_assert
713 .size munmap_chunk, .-munmap_chunk
714 .section .rodata.str1.8
715 .align 8
716 .LC9:
717 .string "mremap_chunk(): invalid pointer"
718 .section .rodata.str1.1
719 .LC10:
720 .string "aligned_OK (chunk2rawmem (p))"
721 .LC11:
722 .string "prev_size (p) == offset"
723 .text
724 .p2align 4,,15
725 .type mremap_chunk, @function
726 mremap_chunk:
727 pushq %r12
728 pushq %rbp
729 pushq %rbx
730 movq 8(%rdi), %rax
731 movq _dl_pagesize(%rip), %rcx
732 movq (%rdi), %rbp
733 movq %rax, %r12
734 andq $-8, %r12
735 testb $2, %al
736 je .L182
737 movq %rdi, %r9
738 leaq 0(%rbp,%r12), %r8
739 leaq -1(%rcx), %rax
740 subq %rbp, %r9
741 leaq 16(%rdi), %r10
742 movq %r9, %rdx
743 orq %r8, %rdx
744 testq %rax, %rdx
745 jne .L171
746 andq %r10, %rax
747 leaq -1(%rax), %rdx
748 testq %rax, %rdx
749 jne .L171
750 leaq 7(%rcx,%rsi), %rbx
751 negq %rcx
752 addq %rbp, %rbx
753 andq %rcx, %rbx
754 cmpq %rbx, %r8
755 je .L169
756 xorl %eax, %eax
757 movl $1, %ecx
758 movq %rbx, %rdx
759 movq %r8, %rsi
760 movq %r9, %rdi
761 call __mremap
762 cmpq $-1, %rax
763 je .L178
764 leaq (%rax,%rbp), %rdi
765 testb $15, %dil
766 jne .L183
767 cmpq %rbp, (%rdi)
768 jne .L184
769 movq %rbx, %rax
770 subq %r12, %rbx
771 subq %rbp, %rax
772 subq %rbp, %rbx
773 orq $2, %rax
774 movq %rax, 8(%rdi)
775 movq %rbx, %rax
776 lock xaddq %rax, 56+mp_(%rip)
777 addq %rax, %rbx
778 .L176:
779 movq 64+mp_(%rip), %rax
780 cmpq %rax, %rbx
781 jbe .L169
782 lock cmpxchgq %rbx, 64+mp_(%rip)
783 jne .L176
784 .L169:
785 popq %rbx
786 movq %rdi, %rax
787 popq %rbp
788 popq %r12
790 .p2align 4,,10
791 .p2align 3
792 .L171:
793 leaq .LC9(%rip), %rdi
794 call malloc_printerr
795 .p2align 4,,10
796 .p2align 3
797 .L178:
798 xorl %edi, %edi
799 jmp .L169
800 .L182:
801 leaq __PRETTY_FUNCTION__.12747(%rip), %rcx
802 leaq .LC6(%rip), %rsi
803 leaq .LC7(%rip), %rdi
804 movl $3016, %edx
805 call __malloc_assert
806 .L183:
807 leaq __PRETTY_FUNCTION__.12747(%rip), %rcx
808 leaq .LC6(%rip), %rsi
809 leaq .LC10(%rip), %rdi
810 movl $3040, %edx
811 call __malloc_assert
812 .L184:
813 leaq __PRETTY_FUNCTION__.12747(%rip), %rcx
814 leaq .LC6(%rip), %rsi
815 leaq .LC11(%rip), %rdi
816 movl $3042, %edx
817 call __malloc_assert
818 .size mremap_chunk, .-mremap_chunk
819 .p2align 4,,15
820 .type ptmalloc_init.part.0, @function
821 ptmalloc_init.part.0:
822 pushq %rbx
823 leaq main_arena(%rip), %rdi
824 subq $16, %rsp
825 movq thread_arena@gottpoff(%rip), %rax
826 movl $0, __libc_malloc_initialized(%rip)
827 leaq 8(%rsp), %rbx
828 movq %rdi, %fs:(%rax)
829 call malloc_init_state
830 leaq _dl_tunable_set_mallopt_check(%rip), %rdx
831 movq %rbx, %rsi
832 movl $30, %edi
833 call __tunable_get_val@PLT
834 leaq _dl_tunable_set_top_pad(%rip), %rdx
835 movq %rbx, %rsi
836 movl $11, %edi
837 call __tunable_get_val@PLT
838 leaq _dl_tunable_set_perturb_byte(%rip), %rdx
839 movq %rbx, %rsi
840 movl $3, %edi
841 call __tunable_get_val@PLT
842 leaq _dl_tunable_set_mmap_threshold(%rip), %rdx
843 movq %rbx, %rsi
844 movl $23, %edi
845 call __tunable_get_val@PLT
846 leaq _dl_tunable_set_trim_threshold(%rip), %rdx
847 movq %rbx, %rsi
848 movl $2, %edi
849 call __tunable_get_val@PLT
850 leaq _dl_tunable_set_mmaps_max(%rip), %rdx
851 movq %rbx, %rsi
852 movl $16, %edi
853 call __tunable_get_val@PLT
854 leaq _dl_tunable_set_arena_max(%rip), %rdx
855 movq %rbx, %rsi
856 movl $22, %edi
857 call __tunable_get_val@PLT
858 leaq _dl_tunable_set_arena_test(%rip), %rdx
859 movq %rbx, %rsi
860 movl $26, %edi
861 call __tunable_get_val@PLT
862 leaq _dl_tunable_set_tcache_max(%rip), %rdx
863 movq %rbx, %rsi
864 movl $29, %edi
865 call __tunable_get_val@PLT
866 leaq _dl_tunable_set_tcache_count(%rip), %rdx
867 movq %rbx, %rsi
868 movl $25, %edi
869 call __tunable_get_val@PLT
870 leaq _dl_tunable_set_tcache_unsorted_limit(%rip), %rdx
871 movq %rbx, %rsi
872 movl $18, %edi
873 call __tunable_get_val@PLT
874 leaq _dl_tunable_set_mxfast(%rip), %rdx
875 movq %rbx, %rsi
876 movl $9, %edi
877 call __tunable_get_val@PLT
878 movl $1, __libc_malloc_initialized(%rip)
879 addq $16, %rsp
880 popq %rbx
882 .size ptmalloc_init.part.0, .-ptmalloc_init.part.0
883 .section .rodata.str1.1
884 .LC12:
885 .string "corrupted size vs. prev_size"
886 .LC13:
887 .string "corrupted double-linked list"
888 .section .rodata.str1.8
889 .align 8
890 .LC14:
891 .string "corrupted double-linked list (not small)"
892 .text
893 .p2align 4,,15
894 .type unlink_chunk.isra.2, @function
895 unlink_chunk.isra.2:
896 subq $8, %rsp
897 movq 8(%rdi), %rcx
898 movq %rcx, %rax
899 andq $-8, %rax
900 cmpq (%rdi,%rax), %rax
901 jne .L200
902 movq 16(%rdi), %rax
903 movq 24(%rdi), %rdx
904 cmpq 24(%rax), %rdi
905 jne .L189
906 cmpq 16(%rdx), %rdi
907 jne .L189
908 cmpq $1023, %rcx
909 movq %rdx, 24(%rax)
910 movq %rax, 16(%rdx)
911 jbe .L187
912 movq 32(%rdi), %rdx
913 testq %rdx, %rdx
914 je .L187
915 cmpq 40(%rdx), %rdi
916 jne .L192
917 movq 40(%rdi), %rcx
918 cmpq 32(%rcx), %rdi
919 jne .L192
920 cmpq $0, 32(%rax)
921 je .L201
922 movq %rcx, 40(%rdx)
923 movq 40(%rdi), %rax
924 movq %rdx, 32(%rax)
925 .L187:
926 addq $8, %rsp
928 .p2align 4,,10
929 .p2align 3
930 .L189:
931 leaq .LC13(%rip), %rdi
932 call malloc_printerr
933 .p2align 4,,10
934 .p2align 3
935 .L201:
936 cmpq %rdx, %rdi
937 je .L202
938 movq %rdx, 32(%rax)
939 movq 32(%rdi), %rdx
940 movq %rcx, 40(%rax)
941 movq %rax, 40(%rdx)
942 movq 40(%rdi), %rdx
943 movq %rax, 32(%rdx)
944 jmp .L187
945 .p2align 4,,10
946 .p2align 3
947 .L202:
948 movq %rax, 40(%rax)
949 movq %rax, 32(%rax)
950 jmp .L187
951 .L200:
952 leaq .LC12(%rip), %rdi
953 call malloc_printerr
954 .L192:
955 leaq .LC14(%rip), %rdi
956 call malloc_printerr
957 .size unlink_chunk.isra.2, .-unlink_chunk.isra.2
958 .section .rodata.str1.8
959 .align 8
960 .LC15:
961 .string "malloc_consolidate(): unaligned fastbin chunk detected"
962 .align 8
963 .LC16:
964 .string "malloc_consolidate(): invalid chunk size"
965 .align 8
966 .LC17:
967 .string "corrupted size vs. prev_size in fastbins"
968 .text
969 .p2align 4,,15
970 .type malloc_consolidate, @function
971 malloc_consolidate:
972 pushq %r15
973 pushq %r14
974 leaq 96(%rdi), %rax
975 pushq %r13
976 pushq %r12
977 leaq 16(%rdi), %r14
978 pushq %rbp
979 pushq %rbx
980 movq %rdi, %r13
981 subq $56, %rsp
982 movl $0, 8(%rdi)
983 movq %rax, 32(%rsp)
984 leaq 88(%rdi), %rax
985 movq %rax, 40(%rsp)
986 .L215:
987 xorl %ebx, %ebx
988 #APP
989 # 4702 "malloc.c" 1
990 xchgq %rbx, (%r14)
991 # 0 "" 2
992 #NO_APP
993 testq %rbx, %rbx
994 jne .L214
995 jmp .L204
996 .p2align 4,,10
997 .p2align 3
998 .L226:
999 testb $1, 8(%rax,%rcx)
1000 je .L222
1001 andq $-2, 8(%rax)
1002 .L211:
1003 movq 112(%r13), %rax
1004 cmpq $1023, %rbp
1005 movq %rbx, 112(%r13)
1006 movq %rbx, 24(%rax)
1007 jbe .L212
1008 movq $0, 32(%rbx)
1009 movq $0, 40(%rbx)
1010 .L212:
1011 movq 32(%rsp), %rdx
1012 movq %rbp, %rcx
1013 movq %rax, 16(%rbx)
1014 orq $1, %rcx
1015 cmpq %r12, %r15
1016 movq %rcx, 8(%rbx)
1017 movq %rdx, 24(%rbx)
1018 movq %rbp, (%rbx,%rbp)
1019 movq %r9, %rbx
1020 je .L204
1021 .L214:
1022 testb $15, %bl
1023 jne .L223
1024 movq 8(%rbx), %rdi
1025 movl %edi, %eax
1026 shrl $4, %eax
1027 subl $2, %eax
1028 leaq 16(%r13,%rax,8), %rax
1029 cmpq %rax, %r14
1030 jne .L224
1031 movq %rdi, %rbp
1032 leaq 16(%rbx), %r15
1033 movq 16(%rbx), %r12
1034 andq $-8, %rbp
1035 leaq (%rbx,%rbp), %rax
1036 shrq $12, %r15
1037 movq %r15, %r9
1038 movq 8(%rax), %rcx
1039 xorq %r12, %r9
1040 andq $-8, %rcx
1041 andl $1, %edi
1042 jne .L207
1043 movq (%rbx), %rdi
1044 subq %rdi, %rbx
1045 addq %rdi, %rbp
1046 movq 8(%rbx), %r10
1047 andq $-8, %r10
1048 cmpq %rdi, %r10
1049 jne .L225
1050 movq %rbx, %rdi
1051 movq %rcx, 24(%rsp)
1052 movq %rax, 16(%rsp)
1053 movq %r9, 8(%rsp)
1054 call unlink_chunk.isra.2
1055 movq 24(%rsp), %rcx
1056 movq 16(%rsp), %rax
1057 movq 8(%rsp), %r9
1058 .L207:
1059 cmpq %rax, 96(%r13)
1060 jne .L226
1061 addq %rcx, %rbp
1062 orq $1, %rbp
1063 cmpq %r12, %r15
1064 movq %rbp, 8(%rbx)
1065 movq %rbx, 96(%r13)
1066 movq %r9, %rbx
1067 jne .L214
1068 .p2align 4,,10
1069 .p2align 3
1070 .L204:
1071 addq $8, %r14
1072 leaq -8(%r14), %rax
1073 cmpq %rax, 40(%rsp)
1074 jne .L215
1075 addq $56, %rsp
1076 popq %rbx
1077 popq %rbp
1078 popq %r12
1079 popq %r13
1080 popq %r14
1081 popq %r15
1083 .p2align 4,,10
1084 .p2align 3
1085 .L222:
1086 movq %rax, %rdi
1087 movq %r9, 8(%rsp)
1088 addq %rcx, %rbp
1089 call unlink_chunk.isra.2
1090 movq 8(%rsp), %r9
1091 jmp .L211
1092 .p2align 4,,10
1093 .p2align 3
1094 .L223:
1095 leaq .LC15(%rip), %rdi
1096 call malloc_printerr
1097 .p2align 4,,10
1098 .p2align 3
1099 .L225:
1100 leaq .LC17(%rip), %rdi
1101 call malloc_printerr
1102 .L224:
1103 leaq .LC16(%rip), %rdi
1104 call malloc_printerr
1105 .size malloc_consolidate, .-malloc_consolidate
1106 .section .rodata.str1.1
1107 .LC18:
1108 .string "arena.c"
1109 .section .rodata.str1.8
1110 .align 8
1111 .LC19:
1112 .string "replaced_arena->attached_threads > 0"
1113 .section .text.unlikely,"ax",@progbits
1114 .type detach_arena.part.3, @function
1115 detach_arena.part.3:
1116 leaq __PRETTY_FUNCTION__.11963(%rip), %rcx
1117 leaq .LC18(%rip), %rsi
1118 leaq .LC19(%rip), %rdi
1119 subq $8, %rsp
1120 movl $726, %edx
1121 call __malloc_assert
1122 .size detach_arena.part.3, .-detach_arena.part.3
1123 .section .rodata.str1.1
1124 .LC20:
1125 .string "result->attached_threads == 0"
1126 .text
1127 .p2align 4,,15
1128 .type get_free_list, @function
1129 get_free_list:
1130 cmpq $0, free_list(%rip)
1131 pushq %r12
1132 pushq %rbp
1133 pushq %rbx
1134 je .L241
1135 movq thread_arena@gottpoff(%rip), %rbp
1136 movq %fs:0(%rbp), %r12
1137 #APP
1138 # 813 "arena.c" 1
1139 movl %fs:24,%eax
1140 # 0 "" 2
1141 #NO_APP
1142 testl %eax, %eax
1143 jne .L232
1144 movl $1, %edx
1145 #APP
1146 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
1147 cmpxchgl %edx, free_list_lock(%rip)
1148 # 0 "" 2
1149 #NO_APP
1150 .L233:
1151 movq free_list(%rip), %rbx
1152 testq %rbx, %rbx
1153 je .L235
1154 cmpq $0, 2176(%rbx)
1155 movq 2168(%rbx), %rax
1156 movq %rax, free_list(%rip)
1157 jne .L251
1158 testq %r12, %r12
1159 movq $1, 2176(%rbx)
1160 je .L235
1161 movq 2176(%r12), %rax
1162 testq %rax, %rax
1163 je .L252
1164 subq $1, %rax
1165 movq %rax, 2176(%r12)
1166 .L235:
1167 #APP
1168 # 825 "arena.c" 1
1169 movl %fs:24,%eax
1170 # 0 "" 2
1171 #NO_APP
1172 testl %eax, %eax
1173 jne .L239
1174 subl $1, free_list_lock(%rip)
1175 .L240:
1176 testq %rbx, %rbx
1177 je .L241
1178 #APP
1179 # 830 "arena.c" 1
1180 movl %fs:24,%eax
1181 # 0 "" 2
1182 #NO_APP
1183 testl %eax, %eax
1184 jne .L242
1185 movl $1, %edx
1186 #APP
1187 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
1188 cmpxchgl %edx, (%rbx)
1189 # 0 "" 2
1190 #NO_APP
1191 .L243:
1192 movq %rbx, %fs:0(%rbp)
1193 movq %rbx, %rax
1194 popq %rbx
1195 popq %rbp
1196 popq %r12
1198 .p2align 4,,10
1199 .p2align 3
1200 .L241:
1201 xorl %ebx, %ebx
1202 movq %rbx, %rax
1203 popq %rbx
1204 popq %rbp
1205 popq %r12
1207 .p2align 4,,10
1208 .p2align 3
1209 .L242:
1210 xorl %eax, %eax
1211 movl $1, %edx
1212 lock cmpxchgl %edx, (%rbx)
1213 je .L243
1214 movq %rbx, %rdi
1215 call __lll_lock_wait_private
1216 jmp .L243
1217 .p2align 4,,10
1218 .p2align 3
1219 .L232:
1220 xorl %eax, %eax
1221 movl $1, %edx
1222 lock cmpxchgl %edx, free_list_lock(%rip)
1223 je .L233
1224 leaq free_list_lock(%rip), %rdi
1225 call __lll_lock_wait_private
1226 jmp .L233
1227 .p2align 4,,10
1228 .p2align 3
1229 .L239:
1230 xorl %eax, %eax
1231 #APP
1232 # 825 "arena.c" 1
1233 xchgl %eax, free_list_lock(%rip)
1234 # 0 "" 2
1235 #NO_APP
1236 cmpl $1, %eax
1237 jle .L240
1238 xorl %r10d, %r10d
1239 movl $1, %edx
1240 movl $129, %esi
1241 leaq free_list_lock(%rip), %rdi
1242 movl $202, %eax
1243 #APP
1244 # 825 "arena.c" 1
1245 syscall
1247 # 0 "" 2
1248 #NO_APP
1249 jmp .L240
1250 .L251:
1251 leaq __PRETTY_FUNCTION__.12067(%rip), %rcx
1252 leaq .LC18(%rip), %rsi
1253 leaq .LC20(%rip), %rdi
1254 movl $820, %edx
1255 call __malloc_assert
1256 .L252:
1257 call detach_arena.part.3
1258 .size get_free_list, .-get_free_list
1259 .section .rodata.str1.1
1260 .LC21:
1261 .string "p->attached_threads == 0"
1262 .text
1263 .p2align 4,,15
1264 .type arena_get2.part.4, @function
1265 arena_get2.part.4:
1266 pushq %r13
1267 pushq %r12
1268 pushq %rbp
1269 pushq %rbx
1270 subq $24, %rsp
1271 movq narenas_limit.12181(%rip), %rax
1272 movq narenas(%rip), %rdx
1273 testq %rax, %rax
1274 jne .L259
1275 movq 32+mp_(%rip), %rax
1276 testq %rax, %rax
1277 je .L255
1278 movq %rax, narenas_limit.12181(%rip)
1279 .L259:
1280 subq $1, %rax
1281 cmpq %rdx, %rax
1282 jnb .L320
1283 movq next_to_use.12122(%rip), %rbx
1284 testq %rbx, %rbx
1285 je .L321
1286 .L276:
1287 xorl %ecx, %ecx
1288 movl $1, %edx
1289 jmp .L280
1290 .p2align 4,,10
1291 .p2align 3
1292 .L323:
1293 #APP
1294 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
1295 cmpxchgl %edx, (%rbx)
1296 # 0 "" 2
1297 #NO_APP
1298 testl %eax, %eax
1299 je .L279
1300 .L324:
1301 movq 2160(%rbx), %rbx
1302 cmpq next_to_use.12122(%rip), %rbx
1303 je .L322
1304 .L280:
1305 #APP
1306 # 875 "arena.c" 1
1307 movl %fs:24,%eax
1308 # 0 "" 2
1309 #NO_APP
1310 testl %eax, %eax
1311 je .L323
1312 movl %ecx, %eax
1313 lock cmpxchgl %edx, (%rbx)
1314 setne %al
1315 movzbl %al, %eax
1316 testl %eax, %eax
1317 jne .L324
1318 .p2align 4,,10
1319 .p2align 3
1320 .L279:
1321 movq thread_arena@gottpoff(%rip), %rbp
1322 movq %fs:0(%rbp), %r12
1323 #APP
1324 # 897 "arena.c" 1
1325 movl %fs:24,%eax
1326 # 0 "" 2
1327 #NO_APP
1328 testl %eax, %eax
1329 jne .L283
1330 movl $1, %edx
1331 #APP
1332 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
1333 cmpxchgl %edx, free_list_lock(%rip)
1334 # 0 "" 2
1335 #NO_APP
1336 .L284:
1337 testq %r12, %r12
1338 je .L285
1339 movq 2176(%r12), %rax
1340 testq %rax, %rax
1341 je .L286
1342 subq $1, %rax
1343 movq %rax, 2176(%r12)
1344 .L285:
1345 movq free_list(%rip), %rdx
1346 testq %rdx, %rdx
1347 je .L287
1348 cmpq $0, 2176(%rdx)
1349 jne .L288
1350 cmpq %rdx, %rbx
1351 jne .L290
1352 jmp .L325
1353 .p2align 4,,10
1354 .p2align 3
1355 .L292:
1356 cmpq $0, 2176(%rax)
1357 jne .L288
1358 cmpq %rax, %rbx
1359 je .L326
1360 movq %rax, %rdx
1361 .L290:
1362 movq 2168(%rdx), %rax
1363 testq %rax, %rax
1364 jne .L292
1365 .L287:
1366 addq $1, 2176(%rbx)
1367 #APP
1368 # 912 "arena.c" 1
1369 movl %fs:24,%eax
1370 # 0 "" 2
1371 #NO_APP
1372 testl %eax, %eax
1373 jne .L293
1374 subl $1, free_list_lock(%rip)
1375 .L294:
1376 movq 2160(%rbx), %rax
1377 movq %rbx, %fs:0(%rbp)
1378 movq %rax, next_to_use.12122(%rip)
1379 .L253:
1380 addq $24, %rsp
1381 movq %rbx, %rax
1382 popq %rbx
1383 popq %rbp
1384 popq %r12
1385 popq %r13
1387 .p2align 4,,10
1388 .p2align 3
1389 .L255:
1390 cmpq %rdx, 24+mp_(%rip)
1391 jnb .L259
1392 movq %rsi, 8(%rsp)
1393 movq %rdi, (%rsp)
1394 call __get_nprocs
1395 testl %eax, %eax
1396 movq (%rsp), %rdi
1397 movq 8(%rsp), %rsi
1398 jle .L256
1399 sall $3, %eax
1400 movq narenas(%rip), %rdx
1401 cltq
1402 movq %rax, narenas_limit.12181(%rip)
1403 jmp .L259
1404 .p2align 4,,10
1405 .p2align 3
1406 .L322:
1407 cmpq %rbx, %rsi
1408 je .L327
1409 .L281:
1410 #APP
1411 # 890 "arena.c" 1
1412 movl %fs:24,%eax
1413 # 0 "" 2
1414 #NO_APP
1415 testl %eax, %eax
1416 jne .L282
1417 movl $1, %edx
1418 #APP
1419 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
1420 cmpxchgl %edx, (%rbx)
1421 # 0 "" 2
1422 #NO_APP
1423 jmp .L279
1424 .p2align 4,,10
1425 .p2align 3
1426 .L326:
1427 leaq 2168(%rdx), %rcx
1428 movq %rbx, %rdx
1429 .L289:
1430 movq 2168(%rdx), %rax
1431 movq %rax, (%rcx)
1432 jmp .L287
1433 .p2align 4,,10
1434 .p2align 3
1435 .L321:
1436 leaq main_arena(%rip), %rbx
1437 movq %rbx, next_to_use.12122(%rip)
1438 jmp .L276
1439 .p2align 4,,10
1440 .p2align 3
1441 .L327:
1442 movq 2160(%rbx), %rbx
1443 jmp .L281
1444 .p2align 4,,10
1445 .p2align 3
1446 .L320:
1447 leaq 1(%rdx), %rcx
1448 movq %rdx, %rax
1449 #APP
1450 # 960 "arena.c" 1
1451 cmpl $0, %fs:24
1452 je 0f
1453 lock
1454 0: cmpxchgq %rcx, narenas(%rip)
1455 # 0 "" 2
1456 #NO_APP
1457 cmpq %rdx, %rax
1458 je .L258
1459 movq narenas(%rip), %rdx
1460 movq narenas_limit.12181(%rip), %rax
1461 jmp .L259
1462 .p2align 4,,10
1463 .p2align 3
1464 .L283:
1465 xorl %eax, %eax
1466 movl $1, %edx
1467 lock cmpxchgl %edx, free_list_lock(%rip)
1468 je .L284
1469 leaq free_list_lock(%rip), %rdi
1470 call __lll_lock_wait_private
1471 jmp .L284
1472 .p2align 4,,10
1473 .p2align 3
1474 .L293:
1475 xorl %eax, %eax
1476 #APP
1477 # 912 "arena.c" 1
1478 xchgl %eax, free_list_lock(%rip)
1479 # 0 "" 2
1480 #NO_APP
1481 cmpl $1, %eax
1482 jle .L294
1483 xorl %r10d, %r10d
1484 movl $1, %edx
1485 movl $129, %esi
1486 leaq free_list_lock(%rip), %rdi
1487 movl $202, %eax
1488 #APP
1489 # 912 "arena.c" 1
1490 syscall
1492 # 0 "" 2
1493 #NO_APP
1494 jmp .L294
1495 .L325:
1496 leaq free_list(%rip), %rcx
1497 jmp .L289
1498 .L282:
1499 xorl %eax, %eax
1500 movl $1, %edx
1501 lock cmpxchgl %edx, (%rbx)
1502 je .L279
1503 movq %rbx, %rdi
1504 call __lll_lock_wait_private
1505 jmp .L279
1506 .L256:
1507 movq $16, narenas_limit.12181(%rip)
1508 movq narenas(%rip), %rdx
1509 movl $16, %eax
1510 jmp .L259
1511 .L258:
1512 movq 8+mp_(%rip), %rsi
1513 addq $2248, %rdi
1514 call new_heap
1515 testq %rax, %rax
1516 movq %rax, %rbp
1517 je .L328
1518 .L260:
1519 leaq 32(%rbp), %r12
1520 movq %r12, 0(%rbp)
1521 movq %r12, %rdi
1522 movq %r12, %rbx
1523 call malloc_init_state
1524 movq 16(%rbp), %rax
1525 leaq 2248(%rbp), %rcx
1526 movq $1, 2208(%rbp)
1527 leaq 2232(%rbp), %rdx
1528 andl $15, %ecx
1529 movq %rax, 2224(%rbp)
1530 movq %rax, 2216(%rbp)
1531 je .L262
1532 subq %rcx, %rdx
1533 addq $16, %rdx
1534 .L262:
1535 addq %rbp, %rax
1536 movq %rdx, 128(%rbp)
1537 subq %rdx, %rax
1538 orq $1, %rax
1539 movq %rax, 8(%rdx)
1540 movq thread_arena@gottpoff(%rip), %rax
1541 movl $0, 32(%rbp)
1542 movq %fs:(%rax), %r13
1543 movq %r12, %fs:(%rax)
1544 #APP
1545 # 773 "arena.c" 1
1546 movl %fs:24,%eax
1547 # 0 "" 2
1548 #NO_APP
1549 testl %eax, %eax
1550 jne .L263
1551 movl $1, %edx
1552 #APP
1553 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
1554 cmpxchgl %edx, list_lock(%rip)
1555 # 0 "" 2
1556 #NO_APP
1557 .L264:
1558 movq 2160+main_arena(%rip), %rax
1559 movq %rax, 2192(%rbp)
1560 movq %r12, 2160+main_arena(%rip)
1561 #APP
1562 # 783 "arena.c" 1
1563 movl %fs:24,%eax
1564 # 0 "" 2
1565 #NO_APP
1566 testl %eax, %eax
1567 jne .L265
1568 subl $1, list_lock(%rip)
1569 .L266:
1570 #APP
1571 # 785 "arena.c" 1
1572 movl %fs:24,%eax
1573 # 0 "" 2
1574 #NO_APP
1575 testl %eax, %eax
1576 jne .L267
1577 movl $1, %edx
1578 #APP
1579 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
1580 cmpxchgl %edx, free_list_lock(%rip)
1581 # 0 "" 2
1582 #NO_APP
1583 .L268:
1584 testq %r13, %r13
1585 je .L269
1586 movq 2176(%r13), %rax
1587 testq %rax, %rax
1588 je .L286
1589 subq $1, %rax
1590 movq %rax, 2176(%r13)
1591 .L269:
1592 #APP
1593 # 787 "arena.c" 1
1594 movl %fs:24,%eax
1595 # 0 "" 2
1596 #NO_APP
1597 testl %eax, %eax
1598 jne .L271
1599 subl $1, free_list_lock(%rip)
1600 .L272:
1601 #APP
1602 # 799 "arena.c" 1
1603 movl %fs:24,%eax
1604 # 0 "" 2
1605 #NO_APP
1606 testl %eax, %eax
1607 jne .L273
1608 movl $1, %edx
1609 #APP
1610 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
1611 cmpxchgl %edx, 32(%rbp)
1612 # 0 "" 2
1613 #NO_APP
1614 .L274:
1615 testq %r12, %r12
1616 jne .L253
1617 .L275:
1618 #APP
1619 # 964 "arena.c" 1
1620 cmpl $0, %fs:24
1621 je 0f
1622 lock
1623 0: decq narenas(%rip)
1624 # 0 "" 2
1625 #NO_APP
1626 xorl %ebx, %ebx
1627 jmp .L253
1628 .L288:
1629 leaq __PRETTY_FUNCTION__.12114(%rip), %rcx
1630 leaq .LC18(%rip), %rsi
1631 leaq .LC21(%rip), %rdi
1632 movl $846, %edx
1633 call __malloc_assert
1634 .L328:
1635 movq 8+mp_(%rip), %rsi
1636 movl $2248, %edi
1637 call new_heap
1638 testq %rax, %rax
1639 movq %rax, %rbp
1640 jne .L260
1641 jmp .L275
1642 .p2align 4,,10
1643 .p2align 3
1644 .L267:
1645 xorl %eax, %eax
1646 movl $1, %edx
1647 lock cmpxchgl %edx, free_list_lock(%rip)
1648 je .L268
1649 leaq free_list_lock(%rip), %rdi
1650 call __lll_lock_wait_private
1651 jmp .L268
1652 .p2align 4,,10
1653 .p2align 3
1654 .L265:
1655 xorl %eax, %eax
1656 #APP
1657 # 783 "arena.c" 1
1658 xchgl %eax, list_lock(%rip)
1659 # 0 "" 2
1660 #NO_APP
1661 cmpl $1, %eax
1662 jle .L266
1663 xorl %r10d, %r10d
1664 movl $1, %edx
1665 movl $129, %esi
1666 leaq list_lock(%rip), %rdi
1667 movl $202, %eax
1668 #APP
1669 # 783 "arena.c" 1
1670 syscall
1672 # 0 "" 2
1673 #NO_APP
1674 jmp .L266
1675 .p2align 4,,10
1676 .p2align 3
1677 .L263:
1678 xorl %eax, %eax
1679 movl $1, %edx
1680 lock cmpxchgl %edx, list_lock(%rip)
1681 je .L264
1682 leaq list_lock(%rip), %rdi
1683 call __lll_lock_wait_private
1684 jmp .L264
1685 .p2align 4,,10
1686 .p2align 3
1687 .L273:
1688 xorl %eax, %eax
1689 movl $1, %edx
1690 lock cmpxchgl %edx, (%r12)
1691 je .L274
1692 movq %r12, %rdi
1693 call __lll_lock_wait_private
1694 jmp .L274
1695 .p2align 4,,10
1696 .p2align 3
1697 .L271:
1698 xorl %eax, %eax
1699 #APP
1700 # 787 "arena.c" 1
1701 xchgl %eax, free_list_lock(%rip)
1702 # 0 "" 2
1703 #NO_APP
1704 cmpl $1, %eax
1705 jle .L272
1706 xorl %r10d, %r10d
1707 movl $1, %edx
1708 movl $129, %esi
1709 leaq free_list_lock(%rip), %rdi
1710 movl $202, %eax
1711 #APP
1712 # 787 "arena.c" 1
1713 syscall
1715 # 0 "" 2
1716 #NO_APP
1717 jmp .L272
1718 .L286:
1719 call detach_arena.part.3
1720 .size arena_get2.part.4, .-arena_get2.part.4
1721 .p2align 4,,15
1722 .type arena_get_retry, @function
1723 arena_get_retry:
1724 pushq %rbx
1725 leaq main_arena(%rip), %rax
1726 subq $16, %rsp
1727 cmpq %rax, %rdi
1728 je .L330
1729 #APP
1730 # 982 "arena.c" 1
1731 movl %fs:24,%eax
1732 # 0 "" 2
1733 #NO_APP
1734 testl %eax, %eax
1735 jne .L331
1736 subl $1, (%rdi)
1737 .L332:
1738 #APP
1739 # 984 "arena.c" 1
1740 movl %fs:24,%eax
1741 # 0 "" 2
1742 #NO_APP
1743 testl %eax, %eax
1744 jne .L333
1745 movl $1, %edx
1746 #APP
1747 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
1748 cmpxchgl %edx, main_arena(%rip)
1749 # 0 "" 2
1750 #NO_APP
1751 leaq main_arena(%rip), %rax
1752 .L329:
1753 addq $16, %rsp
1754 popq %rbx
1756 .p2align 4,,10
1757 .p2align 3
1758 .L330:
1759 movq %rsi, %rbx
1760 #APP
1761 # 988 "arena.c" 1
1762 movl %fs:24,%eax
1763 # 0 "" 2
1764 #NO_APP
1765 testl %eax, %eax
1766 jne .L335
1767 subl $1, (%rdi)
1768 .L336:
1769 call get_free_list
1770 testq %rax, %rax
1771 jne .L329
1772 addq $16, %rsp
1773 movq %rbx, %rdi
1774 leaq main_arena(%rip), %rsi
1775 popq %rbx
1776 jmp arena_get2.part.4
1777 .p2align 4,,10
1778 .p2align 3
1779 .L331:
1780 xorl %eax, %eax
1781 #APP
1782 # 982 "arena.c" 1
1783 xchgl %eax, (%rdi)
1784 # 0 "" 2
1785 #NO_APP
1786 cmpl $1, %eax
1787 jle .L332
1788 xorl %r10d, %r10d
1789 movl $1, %edx
1790 movl $129, %esi
1791 movl $202, %eax
1792 #APP
1793 # 982 "arena.c" 1
1794 syscall
1796 # 0 "" 2
1797 #NO_APP
1798 jmp .L332
1799 .p2align 4,,10
1800 .p2align 3
1801 .L333:
1802 xorl %eax, %eax
1803 movl $1, %edx
1804 lock cmpxchgl %edx, main_arena(%rip)
1805 leaq main_arena(%rip), %rax
1806 je .L329
1807 movq %rax, %rdi
1808 movq %rax, 8(%rsp)
1809 call __lll_lock_wait_private
1810 movq 8(%rsp), %rax
1811 jmp .L329
1812 .p2align 4,,10
1813 .p2align 3
1814 .L335:
1815 xorl %eax, %eax
1816 #APP
1817 # 988 "arena.c" 1
1818 xchgl %eax, (%rdi)
1819 # 0 "" 2
1820 #NO_APP
1821 cmpl $1, %eax
1822 jle .L336
1823 xorl %r10d, %r10d
1824 movl $1, %edx
1825 movl $129, %esi
1826 movl $202, %eax
1827 #APP
1828 # 988 "arena.c" 1
1829 syscall
1831 # 0 "" 2
1832 #NO_APP
1833 jmp .L336
1834 .size arena_get_retry, .-arena_get_retry
1835 .p2align 4,,15
1836 .globl _dl_tunable_set_mallopt_check
1837 .type _dl_tunable_set_mallopt_check, @function
1838 _dl_tunable_set_mallopt_check:
1839 movl (%rdi), %eax
1840 testl %eax, %eax
1841 je .L339
1842 leaq malloc_check(%rip), %rax
1843 movl $1, using_malloc_checking(%rip)
1844 movq %rax, __malloc_hook(%rip)
1845 leaq free_check(%rip), %rax
1846 movq %rax, __free_hook(%rip)
1847 leaq realloc_check(%rip), %rax
1848 movq %rax, __realloc_hook(%rip)
1849 leaq memalign_check(%rip), %rax
1850 movq %rax, __memalign_hook(%rip)
1851 .L339:
1852 rep ret
1853 .size _dl_tunable_set_mallopt_check, .-_dl_tunable_set_mallopt_check
1854 .section .rodata.str1.1
1855 .LC22:
1856 .string "<heap nr=\"%d\">\n<sizes>\n"
1857 .section .rodata.str1.8
1858 .align 8
1859 .LC23:
1860 .string "__malloc_info(): unaligned fastbin chunk detected"
1861 .align 8
1862 .LC24:
1863 .string " <size from=\"%zu\" to=\"%zu\" total=\"%zu\" count=\"%zu\"/>\n"
1864 .align 8
1865 .LC25:
1866 .string " <unsorted from=\"%zu\" to=\"%zu\" total=\"%zu\" count=\"%zu\"/>\n"
1867 .align 8
1868 .LC26:
1869 .string "</sizes>\n<total type=\"fast\" count=\"%zu\" size=\"%zu\"/>\n<total type=\"rest\" count=\"%zu\" size=\"%zu\"/>\n<system type=\"current\" size=\"%zu\"/>\n<system type=\"max\" size=\"%zu\"/>\n"
1870 .align 8
1871 .LC27:
1872 .string "<aspace type=\"total\" size=\"%zu\"/>\n<aspace type=\"mprotect\" size=\"%zu\"/>\n<aspace type=\"subheaps\" size=\"%zu\"/>\n"
1873 .align 8
1874 .LC28:
1875 .string "<aspace type=\"total\" size=\"%zu\"/>\n<aspace type=\"mprotect\" size=\"%zu\"/>\n"
1876 .section .rodata.str1.1
1877 .LC29:
1878 .string "</heap>\n"
1879 .section .rodata.str1.8
1880 .align 8
1881 .LC30:
1882 .ascii "<total type=\"fast\" count"
1883 .string "=\"%zu\" size=\"%zu\"/>\n<total type=\"rest\" count=\"%zu\" size=\"%zu\"/>\n<total type=\"mmap\" count=\"%d\" size=\"%zu\"/>\n<system type=\"current\" size=\"%zu\"/>\n<system type=\"max\" size=\"%zu\"/>\n<aspace type=\"total\" size=\"%zu\"/>\n<aspace type=\"mprotect\" size=\"%zu\"/>\n</malloc>\n"
1884 .text
1885 .p2align 4,,15
1886 .type __malloc_info.part.11, @function
1887 __malloc_info.part.11:
1888 pushq %r15
1889 pushq %r14
1890 leaq main_arena(%rip), %rax
1891 pushq %r13
1892 pushq %r12
1893 movq %rdi, %r13
1894 pushq %rbp
1895 pushq %rbx
1896 xorl %edx, %edx
1897 movq $-1, %r14
1898 subq $4520, %rsp
1899 movq %rax, (%rsp)
1900 leaq 128(%rsp), %rax
1901 movq $0, 96(%rsp)
1902 movq $0, 88(%rsp)
1903 movq $0, 80(%rsp)
1904 movq $0, 72(%rsp)
1905 movq $0, 48(%rsp)
1906 movq $0, 64(%rsp)
1907 movq $0, 40(%rsp)
1908 movq $0, 56(%rsp)
1909 movq %rax, 24(%rsp)
1910 .L362:
1911 leal 1(%rdx), %eax
1912 leaq .LC22(%rip), %rsi
1913 movq %r13, %rdi
1914 movl %eax, 36(%rsp)
1915 xorl %eax, %eax
1916 call fprintf
1917 #APP
1918 # 5701 "malloc.c" 1
1919 movl %fs:24,%eax
1920 # 0 "" 2
1921 #NO_APP
1922 testl %eax, %eax
1923 movq (%rsp), %rbx
1924 jne .L342
1925 movl $1, %esi
1926 #APP
1927 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
1928 cmpxchgl %esi, (%rbx)
1929 # 0 "" 2
1930 #NO_APP
1931 .L343:
1932 movq (%rsp), %rax
1933 movq 24(%rsp), %rdi
1934 movq $0, 8(%rsp)
1935 movq $0, 16(%rsp)
1936 movq 96(%rax), %r15
1937 leaq 16(%rax), %r8
1938 leaq 320(%rdi), %r10
1939 movq %rdi, %rbx
1940 movq 8(%r15), %r11
1941 .L348:
1942 movq (%r8), %r9
1943 testq %r9, %r9
1944 je .L344
1945 movq %r9, %rdx
1946 xorl %ecx, %ecx
1947 jmp .L346
1948 .p2align 4,,10
1949 .p2align 3
1950 .L345:
1951 leaq 16(%rdx), %rax
1952 movq 16(%rdx), %rsi
1953 addq $1, %rcx
1954 shrq $12, %rax
1955 movq %rax, %rdx
1956 xorq %rsi, %rdx
1957 cmpq %rsi, %rax
1958 je .L387
1959 .L346:
1960 testb $15, %dl
1961 je .L345
1962 leaq .LC23(%rip), %rdi
1963 call malloc_printerr
1964 .p2align 4,,10
1965 .p2align 3
1966 .L344:
1967 movq $0, 24(%rdi)
1968 movq $0, 8(%rdi)
1969 xorl %ecx, %ecx
1970 movq $0, (%rdi)
1971 .L347:
1972 imulq 8(%rdi), %rcx
1973 addq $32, %rdi
1974 addq $8, %r8
1975 movq %rcx, -16(%rdi)
1976 cmpq %rdi, %r10
1977 jne .L348
1978 movq 24(%rsp), %rax
1979 movq (%rsp), %rsi
1980 andq $-8, %r11
1981 movq %r11, %r10
1982 movl $1, %r12d
1983 leaq 320(%rax), %rcx
1984 leaq 96(%rsi), %r9
1985 leaq 4384(%rax), %r11
1986 .p2align 4,,10
1987 .p2align 3
1988 .L352:
1989 movq 16(%r9), %rdx
1990 movq %r14, (%rcx)
1991 movq $0, 24(%rcx)
1992 movq $0, 16(%rcx)
1993 movq $0, 8(%rcx)
1994 testq %rdx, %rdx
1995 je .L349
1996 cmpq %r9, %rdx
1997 je .L349
1998 xorl %esi, %esi
1999 movq $-1, %rdi
2000 xorl %ebp, %ebp
2001 xorl %r8d, %r8d
2002 .p2align 4,,10
2003 .p2align 3
2004 .L350:
2005 movq 8(%rdx), %rax
2006 movq 16(%rdx), %rdx
2007 addq $1, %r8
2008 addq %rax, %rbp
2009 cmpq %rax, %rdi
2010 cmova %rax, %rdi
2011 cmpq %rax, %rsi
2012 cmovb %rax, %rsi
2013 cmpq %r9, %rdx
2014 jne .L350
2015 testq %r8, %r8
2016 movq %r8, 24(%rcx)
2017 movq %rbp, 16(%rcx)
2018 movq %rdi, (%rcx)
2019 movq %rsi, 8(%rcx)
2020 je .L349
2021 addq %r8, %r12
2022 .L351:
2023 addq 16(%rcx), %r10
2024 addq $32, %rcx
2025 addq $16, %r9
2026 cmpq %r11, %rcx
2027 movq %r10, %rbp
2028 jne .L352
2029 leaq main_arena(%rip), %rsi
2030 cmpq %rsi, (%rsp)
2031 je .L363
2032 movq %r15, %rax
2033 xorl %esi, %esi
2034 xorl %ecx, %ecx
2035 andq $-67108864, %rax
2036 xorl %edx, %edx
2037 .p2align 4,,10
2038 .p2align 3
2039 .L354:
2040 addq 16(%rax), %rdx
2041 addq 24(%rax), %rcx
2042 addq $1, %rsi
2043 movq 8(%rax), %rax
2044 testq %rax, %rax
2045 jne .L354
2046 movq %rdx, 104(%rsp)
2047 movq %rcx, 112(%rsp)
2048 movq %rsi, 120(%rsp)
2049 .L353:
2050 #APP
2051 # 5787 "malloc.c" 1
2052 movl %fs:24,%eax
2053 # 0 "" 2
2054 #NO_APP
2055 testl %eax, %eax
2056 jne .L355
2057 movq (%rsp), %rax
2058 subl $1, (%rax)
2059 .L356:
2060 movq 8(%rsp), %rdi
2061 movq 16(%rsp), %rsi
2062 xorl %r15d, %r15d
2063 addq %rdi, 40(%rsp)
2064 addq %rsi, 48(%rsp)
2065 addq %r12, 56(%rsp)
2066 addq %rbp, 64(%rsp)
2067 .p2align 4,,10
2068 .p2align 3
2069 .L358:
2070 cmpq $10, %r15
2071 movq 24(%rbx), %r9
2072 je .L357
2073 testq %r9, %r9
2074 je .L357
2075 movq 8(%rbx), %rcx
2076 movq 16(%rbx), %r8
2077 leaq .LC24(%rip), %rsi
2078 movq (%rbx), %rdx
2079 movq %r13, %rdi
2080 xorl %eax, %eax
2081 call fprintf
2082 .L357:
2083 addq $1, %r15
2084 addq $32, %rbx
2085 cmpq $137, %r15
2086 jne .L358
2087 movq 472(%rsp), %r9
2088 testq %r9, %r9
2089 jne .L388
2090 .L359:
2091 movq (%rsp), %rbx
2092 leaq .LC26(%rip), %rsi
2093 movq %rbp, %r9
2094 movq %r12, %r8
2095 movq %r13, %rdi
2096 movq 2184(%rbx), %rax
2097 movq 2192(%rbx), %rdx
2098 addq %rax, 72(%rsp)
2099 addq %rdx, 80(%rsp)
2100 pushq %rdx
2101 pushq %rax
2102 xorl %eax, %eax
2103 movq 32(%rsp), %rcx
2104 movq 24(%rsp), %rdx
2105 call fprintf
2106 popq %rax
2107 leaq main_arena(%rip), %rax
2108 popq %rdx
2109 cmpq %rax, %rbx
2110 je .L360
2111 movq 112(%rsp), %r15
2112 movq 104(%rsp), %rbx
2113 leaq .LC27(%rip), %rsi
2114 movq 120(%rsp), %r8
2115 movq %r13, %rdi
2116 xorl %eax, %eax
2117 movq %r15, %rcx
2118 movq %rbx, %rdx
2119 call fprintf
2120 addq %rbx, 88(%rsp)
2121 addq %r15, 96(%rsp)
2122 .L361:
2123 leaq .LC29(%rip), %rdi
2124 movq %r13, %rsi
2125 leaq main_arena(%rip), %rbx
2126 call _IO_fputs
2127 movq (%rsp), %rax
2128 movl 36(%rsp), %edx
2129 movq 2160(%rax), %rax
2130 cmpq %rbx, %rax
2131 movq %rax, (%rsp)
2132 jne .L362
2133 movl 40+mp_(%rip), %eax
2134 pushq 96(%rsp)
2135 leaq .LC30(%rip), %rsi
2136 pushq 96(%rsp)
2137 pushq 96(%rsp)
2138 movq %r13, %rdi
2139 pushq 96(%rsp)
2140 pushq 56+mp_(%rip)
2141 pushq %rax
2142 movq 112(%rsp), %r9
2143 xorl %eax, %eax
2144 movq 104(%rsp), %r8
2145 movq 96(%rsp), %rcx
2146 movq 88(%rsp), %rdx
2147 call fprintf
2148 addq $4568, %rsp
2149 xorl %eax, %eax
2150 popq %rbx
2151 popq %rbp
2152 popq %r12
2153 popq %r13
2154 popq %r14
2155 popq %r15
2157 .p2align 4,,10
2158 .p2align 3
2159 .L387:
2160 movq 8(%r9), %rax
2161 addq %rcx, 8(%rsp)
2162 movq %rcx, 24(%rdi)
2163 andq $-8, %rax
2164 movq %rax, %rdx
2165 movq %rax, 8(%rdi)
2166 imulq %rcx, %rdx
2167 addq %rdx, 16(%rsp)
2168 leaq -15(%rax), %rdx
2169 movq %rdx, (%rdi)
2170 jmp .L347
2171 .p2align 4,,10
2172 .p2align 3
2173 .L349:
2174 movq $0, (%rcx)
2175 jmp .L351
2176 .L363:
2177 movq $0, 120(%rsp)
2178 movq $0, 112(%rsp)
2179 movq $0, 104(%rsp)
2180 jmp .L353
2181 .L342:
2182 xorl %eax, %eax
2183 movl $1, %edi
2184 lock cmpxchgl %edi, (%rbx)
2185 je .L343
2186 movq (%rsp), %rdi
2187 call __lll_lock_wait_private
2188 jmp .L343
2189 .L388:
2190 movq 464(%rsp), %r8
2191 movq 456(%rsp), %rcx
2192 leaq .LC25(%rip), %rsi
2193 movq 448(%rsp), %rdx
2194 movq %r13, %rdi
2195 xorl %eax, %eax
2196 call fprintf
2197 jmp .L359
2198 .L360:
2199 movq (%rsp), %rbx
2200 leaq .LC28(%rip), %rsi
2201 movq %r13, %rdi
2202 xorl %eax, %eax
2203 movq 2184(%rbx), %rdx
2204 movq %rdx, %rcx
2205 call fprintf
2206 movq 2184(%rbx), %rax
2207 addq %rax, 88(%rsp)
2208 addq %rax, 96(%rsp)
2209 jmp .L361
2210 .L355:
2211 xorl %eax, %eax
2212 movq (%rsp), %rdi
2213 #APP
2214 # 5787 "malloc.c" 1
2215 xchgl %eax, (%rdi)
2216 # 0 "" 2
2217 #NO_APP
2218 cmpl $1, %eax
2219 jle .L356
2220 xorl %r10d, %r10d
2221 movl $1, %edx
2222 movl $129, %esi
2223 movl $202, %eax
2224 #APP
2225 # 5787 "malloc.c" 1
2226 syscall
2228 # 0 "" 2
2229 #NO_APP
2230 jmp .L356
2231 .size __malloc_info.part.11, .-__malloc_info.part.11
2232 .p2align 4,,15
2233 .type systrim.isra.1.constprop.12, @function
2234 systrim.isra.1.constprop.12:
2235 movq 96+main_arena(%rip), %rax
2236 pushq %r12
2237 pushq %rbp
2238 pushq %rbx
2239 movq 8(%rax), %rbx
2240 andq $-8, %rbx
2241 leaq -33(%rbx), %rbp
2242 cmpq %rdi, %rbp
2243 jbe .L392
2244 movq _dl_pagesize(%rip), %rax
2245 subq %rdi, %rbp
2246 negq %rax
2247 andq %rax, %rbp
2248 je .L392
2249 xorl %edi, %edi
2250 call *__morecore(%rip)
2251 movq %rax, %r12
2252 movq 96+main_arena(%rip), %rax
2253 addq %rbx, %rax
2254 cmpq %rax, %r12
2255 jne .L392
2256 movq %rbp, %rdi
2257 negq %rdi
2258 call *__morecore(%rip)
2259 movq __after_morecore_hook(%rip), %rax
2260 testq %rax, %rax
2261 jne .L407
2262 .L393:
2263 xorl %edi, %edi
2264 call *__morecore(%rip)
2265 testq %rax, %rax
2266 je .L392
2267 subq %rax, %r12
2268 je .L392
2269 movq 96+main_arena(%rip), %rax
2270 subq %r12, %rbx
2271 subq %r12, 2184+main_arena(%rip)
2272 orq $1, %rbx
2273 movq %rbx, 8(%rax)
2274 movl $1, %eax
2275 popq %rbx
2276 popq %rbp
2277 popq %r12
2279 .p2align 4,,10
2280 .p2align 3
2281 .L392:
2282 popq %rbx
2283 xorl %eax, %eax
2284 popq %rbp
2285 popq %r12
2287 .p2align 4,,10
2288 .p2align 3
2289 .L407:
2290 call *%rax
2291 jmp .L393
2292 .size systrim.isra.1.constprop.12, .-systrim.isra.1.constprop.12
2293 .section .rodata.str1.1
2294 .LC31:
2295 .string "free(): invalid pointer"
2296 .LC32:
2297 .string "free(): invalid size"
2298 .section .rodata.str1.8
2299 .align 8
2300 .LC33:
2301 .string "free(): too many chunks detected in tcache"
2302 .align 8
2303 .LC34:
2304 .string "free(): unaligned chunk detected in tcache 2"
2305 .align 8
2306 .LC35:
2307 .string "free(): double free detected in tcache 2"
2308 .align 8
2309 .LC36:
2310 .string "free(): invalid next size (fast)"
2311 .align 8
2312 .LC37:
2313 .string "double free or corruption (fasttop)"
2314 .section .rodata.str1.1
2315 .LC38:
2316 .string "invalid fastbin entry (free)"
2317 .section .rodata.str1.8
2318 .align 8
2319 .LC39:
2320 .string "double free or corruption (top)"
2321 .align 8
2322 .LC40:
2323 .string "double free or corruption (out)"
2324 .align 8
2325 .LC41:
2326 .string "double free or corruption (!prev)"
2327 .align 8
2328 .LC42:
2329 .string "free(): invalid next size (normal)"
2330 .align 8
2331 .LC43:
2332 .string "corrupted size vs. prev_size while consolidating"
2333 .align 8
2334 .LC44:
2335 .string "free(): corrupted unsorted chunks"
2336 .section .rodata.str1.1
2337 .LC45:
2338 .string "heap->ar_ptr == av"
2339 .section .rodata.str1.8
2340 .align 8
2341 .LC46:
2342 .string "chunksize_nomask (p) == (0 | PREV_INUSE)"
2343 .align 8
2344 .LC47:
2345 .string "new_size > 0 && new_size < (long) (2 * MINSIZE)"
2346 .align 8
2347 .LC48:
2348 .string "new_size > 0 && new_size < HEAP_MAX_SIZE"
2349 .align 8
2350 .LC49:
2351 .string "((unsigned long) ((char *) p + new_size) & (pagesz - 1)) == 0"
2352 .align 8
2353 .LC50:
2354 .string "((char *) p + new_size) == ((char *) heap + heap->size)"
2355 .align 8
2356 .LC51:
2357 .string "/proc/sys/vm/overcommit_memory"
2358 .text
2359 .p2align 4,,15
2360 .type _int_free, @function
2361 _int_free:
2362 pushq %r15
2363 pushq %r14
2364 pushq %r13
2365 pushq %r12
2366 movl %edx, %r13d
2367 pushq %rbp
2368 pushq %rbx
2369 subq $72, %rsp
2370 movq 8(%rsi), %rax
2371 movq %rax, %r12
2372 andq $-8, %r12
2373 movq %r12, %rdx
2374 negq %rdx
2375 cmpq %rdx, %rsi
2376 ja .L409
2377 testb $15, %sil
2378 movq %rsi, %rbx
2379 jne .L409
2380 cmpq $31, %r12
2381 jbe .L411
2382 testb $8, %al
2383 jne .L411
2384 movq %fs:tcache@tpoff, %rcx
2385 movq %rdi, %rbp
2386 testq %rcx, %rcx
2387 je .L413
2388 leaq -17(%r12), %rdx
2389 shrq $4, %rdx
2390 cmpq %rdx, 80+mp_(%rip)
2391 jbe .L413
2392 cmpq 24(%rsi), %rcx
2393 leaq 16(%rsi), %r8
2394 movq 96+mp_(%rip), %rdi
2395 je .L533
2396 .L414:
2397 leaq (%rcx,%rdx,2), %r9
2398 movzwl (%r9), %r10d
2399 cmpq %rdi, %r10
2400 movq %r10, %rsi
2401 jb .L534
2402 .L413:
2403 cmpq global_max_fast(%rip), %r12
2404 ja .L423
2405 leaq (%rbx,%r12), %r14
2406 movq 8(%r14), %rax
2407 cmpq $16, %rax
2408 jbe .L424
2409 andq $-8, %rax
2410 cmpq 2184(%rbp), %rax
2411 jnb .L424
2412 .L425:
2413 movl perturb_byte(%rip), %eax
2414 testl %eax, %eax
2415 jne .L535
2416 .L433:
2417 shrl $4, %r12d
2418 leal -2(%r12), %eax
2419 movl $1, 8(%rbp)
2420 leaq 0(%rbp,%rax,8), %rcx
2421 movq %rax, %r12
2422 movq 16(%rcx), %rdx
2423 #APP
2424 # 4491 "malloc.c" 1
2425 movl %fs:24,%esi
2426 # 0 "" 2
2427 #NO_APP
2428 testl %esi, %esi
2429 jne .L434
2430 cmpq %rdx, %rbx
2431 je .L439
2432 leaq 16(%rbx), %rax
2433 shrq $12, %rax
2434 xorq %rdx, %rax
2435 movq %rax, 16(%rbx)
2436 movq %rbx, 16(%rcx)
2437 .L436:
2438 testq %rdx, %rdx
2439 je .L408
2440 andl $1, %r13d
2441 je .L408
2442 movq 8(%rdx), %rax
2443 shrl $4, %eax
2444 subl $2, %eax
2445 cmpl %r12d, %eax
2446 jne .L536
2447 .L408:
2448 addq $72, %rsp
2449 popq %rbx
2450 popq %rbp
2451 popq %r12
2452 popq %r13
2453 popq %r14
2454 popq %r15
2456 .p2align 4,,10
2457 .p2align 3
2458 .L423:
2459 testb $2, %al
2460 jne .L444
2461 #APP
2462 # 4529 "malloc.c" 1
2463 movl %fs:24,%eax
2464 # 0 "" 2
2465 #NO_APP
2466 testl %eax, %eax
2467 je .L491
2468 andl $1, %r13d
2469 je .L537
2470 .L491:
2471 movl $1, 20(%rsp)
2472 .L445:
2473 movq 96(%rbp), %rax
2474 leaq (%rbx,%r12), %r13
2475 cmpq %rbx, %rax
2476 je .L538
2477 testb $2, 4(%rbp)
2478 je .L539
2479 .L448:
2480 movq 8(%r13), %rax
2481 testb $1, %al
2482 je .L540
2483 movq %rax, %r14
2484 andq $-8, %r14
2485 cmpq $16, %rax
2486 jbe .L450
2487 cmpq %r14, 2184(%rbp)
2488 jbe .L450
2489 movl perturb_byte(%rip), %esi
2490 testl %esi, %esi
2491 jne .L541
2492 .L452:
2493 testb $1, 8(%rbx)
2494 jne .L453
2495 movq (%rbx), %rax
2496 subq %rax, %rbx
2497 addq %rax, %r12
2498 movq 8(%rbx), %rdx
2499 andq $-8, %rdx
2500 cmpq %rax, %rdx
2501 jne .L542
2502 movq %rbx, %rdi
2503 call unlink_chunk.isra.2
2504 .L453:
2505 cmpq %r13, 96(%rbp)
2506 je .L455
2507 testb $1, 8(%r13,%r14)
2508 je .L543
2509 andq $-2, 8(%r13)
2510 .L457:
2511 movq 112(%rbp), %rax
2512 leaq 96(%rbp), %rcx
2513 movq 24(%rax), %rdx
2514 cmpq %rcx, %rdx
2515 jne .L544
2516 cmpq $1023, %r12
2517 movq %rax, 16(%rbx)
2518 movq %rdx, 24(%rbx)
2519 ja .L545
2520 .L459:
2521 movq %rbx, 112(%rbp)
2522 movq %rbx, 24(%rax)
2523 movq %r12, %rax
2524 orq $1, %rax
2525 movq %rax, 8(%rbx)
2526 movq %r12, (%rbx,%r12)
2527 .L460:
2528 cmpq $65535, %r12
2529 ja .L546
2530 .L462:
2531 movl 20(%rsp), %eax
2532 testl %eax, %eax
2533 jne .L408
2534 #APP
2535 # 4650 "malloc.c" 1
2536 movl %fs:24,%eax
2537 # 0 "" 2
2538 #NO_APP
2539 testl %eax, %eax
2540 jne .L488
2541 subl $1, 0(%rbp)
2542 jmp .L408
2543 .p2align 4,,10
2544 .p2align 3
2545 .L534:
2546 leaq (%rcx,%rdx,8), %rdx
2547 movq %r8, %rax
2548 addl $1, %esi
2549 shrq $12, %rax
2550 movq %rcx, 24(%rbx)
2551 xorq 128(%rdx), %rax
2552 movq %rax, 16(%rbx)
2553 movq %r8, 128(%rdx)
2554 movw %si, (%r9)
2555 jmp .L408
2556 .p2align 4,,10
2557 .p2align 3
2558 .L444:
2559 movq %rbx, %rdi
2560 call munmap_chunk
2561 jmp .L408
2562 .p2align 4,,10
2563 .p2align 3
2564 .L409:
2565 leaq .LC31(%rip), %rdi
2566 call malloc_printerr
2567 .p2align 4,,10
2568 .p2align 3
2569 .L411:
2570 leaq .LC32(%rip), %rdi
2571 call malloc_printerr
2572 .p2align 4,,10
2573 .p2align 3
2574 .L424:
2575 testl %r13d, %r13d
2576 jne .L432
2577 #APP
2578 # 4472 "malloc.c" 1
2579 movl %fs:24,%eax
2580 # 0 "" 2
2581 #NO_APP
2582 testl %eax, %eax
2583 jne .L427
2584 movl %r13d, %eax
2585 movl $1, %edx
2586 #APP
2587 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
2588 cmpxchgl %edx, 0(%rbp)
2589 # 0 "" 2
2590 #NO_APP
2591 .L428:
2592 movq 8(%r14), %rax
2593 movl $1, %r8d
2594 cmpq $16, %rax
2595 jbe .L429
2596 xorl %r8d, %r8d
2597 andq $-8, %rax
2598 cmpq 2184(%rbp), %rax
2599 setnb %r8b
2600 .L429:
2601 #APP
2602 # 4475 "malloc.c" 1
2603 movl %fs:24,%eax
2604 # 0 "" 2
2605 #NO_APP
2606 testl %eax, %eax
2607 jne .L430
2608 subl $1, 0(%rbp)
2609 .L431:
2610 testl %r8d, %r8d
2611 je .L425
2612 .L432:
2613 leaq .LC36(%rip), %rdi
2614 call malloc_printerr
2615 .p2align 4,,10
2616 .p2align 3
2617 .L545:
2618 movq $0, 32(%rbx)
2619 movq $0, 40(%rbx)
2620 jmp .L459
2621 .p2align 4,,10
2622 .p2align 3
2623 .L536:
2624 leaq .LC38(%rip), %rdi
2625 call malloc_printerr
2626 .L427:
2627 movl $1, %edx
2628 movl %r13d, %eax
2629 lock cmpxchgl %edx, 0(%rbp)
2630 je .L428
2631 movq %rbp, %rdi
2632 call __lll_lock_wait_private
2633 jmp .L428
2634 .p2align 4,,10
2635 .p2align 3
2636 .L434:
2637 cmpq %rdx, %rbx
2638 je .L439
2639 leaq 16(%rbx), %rdi
2640 leaq 16(%rbp,%rax,8), %rsi
2641 movq %rdx, %rax
2642 shrq $12, %rdi
2643 xorq %rdi, %rax
2644 movq %rax, 16(%rbx)
2645 movq %rdx, %rax
2646 #APP
2647 # 4510 "malloc.c" 1
2648 cmpl $0, %fs:24
2649 je 0f
2650 lock
2651 0: cmpxchgq %rbx, (%rsi)
2652 # 0 "" 2
2653 #NO_APP
2654 cmpq %rdx, %rax
2655 movq %rax, %rcx
2656 jne .L438
2657 jmp .L436
2658 .p2align 4,,10
2659 .p2align 3
2660 .L530:
2661 movq %rcx, %rax
2662 xorq %rdi, %rax
2663 movq %rax, 16(%rbx)
2664 movq %rcx, %rax
2665 #APP
2666 # 4510 "malloc.c" 1
2667 cmpl $0, %fs:24
2668 je 0f
2669 lock
2670 0: cmpxchgq %rbx, (%rsi)
2671 # 0 "" 2
2672 #NO_APP
2673 cmpq %rax, %rcx
2674 je .L490
2675 movq %rax, %rcx
2676 .L438:
2677 cmpq %rbx, %rcx
2678 jne .L530
2679 .L439:
2680 leaq .LC37(%rip), %rdi
2681 call malloc_printerr
2682 .p2align 4,,10
2683 .p2align 3
2684 .L546:
2685 movl 8(%rbp), %eax
2686 testl %eax, %eax
2687 jne .L547
2688 .L463:
2689 leaq main_arena(%rip), %rax
2690 cmpq %rax, %rbp
2691 je .L548
2692 movq 96(%rbp), %rbx
2693 movq %rbx, %rdi
2694 andq $-67108864, %rdi
2695 movq (%rdi), %r15
2696 cmpq %rbp, %r15
2697 jne .L549
2698 movq 8+mp_(%rip), %rax
2699 leaq 32(%rdi), %rsi
2700 cmpq %rbx, %rsi
2701 movq %rax, 24(%rsp)
2702 movq _dl_pagesize(%rip), %rax
2703 movq %rax, 32(%rsp)
2704 jne .L550
2705 movq 8(%rdi), %r14
2706 movq 16(%r14), %rcx
2707 leaq -16(%rcx), %rdx
2708 leaq (%r14,%rdx), %rax
2709 andl $15, %eax
2710 subq %rax, %rdx
2711 addq %r14, %rdx
2712 cmpq $1, 8(%rdx)
2713 jne .L470
2714 movq 32(%rsp), %rbx
2715 movq 24(%rsp), %r8
2716 movl $67108864, %r13d
2717 movq %rbp, 40(%rsp)
2718 movq %r14, %rbp
2719 movq %r15, %r14
2720 leaq 32(%r8,%rbx), %r12
2721 subq $1, %rbx
2722 movq %rbx, 8(%rsp)
2723 jmp .L469
2724 .p2align 4,,10
2725 .p2align 3
2726 .L476:
2727 leaq (%rbx,%r15), %rax
2728 testq %rax, 8(%rsp)
2729 jne .L551
2730 movq 16(%rbp), %rdx
2731 addq %rbp, %rdx
2732 cmpq %rdx, %rax
2733 jne .L552
2734 leaq 32(%rbp), %rax
2735 orq $1, %r15
2736 movq %rbx, 96(%r14)
2737 movq %r15, 8(%rbx)
2738 cmpq %rax, %rbx
2739 jne .L553
2740 movq 8(%rbp), %r10
2741 movq %rbp, %rdi
2742 movq %rbx, %rsi
2743 movq 16(%r10), %rcx
2744 leaq -16(%rcx), %rdx
2745 leaq (%r10,%rdx), %rax
2746 andl $15, %eax
2747 subq %rax, %rdx
2748 addq %r10, %rdx
2749 cmpq $1, 8(%rdx)
2750 jne .L470
2751 movq %r10, %rbp
2752 .L469:
2753 movq %rdx, %rbx
2754 subq (%rdx), %rbx
2755 movq 8(%rbx), %rdx
2756 movq %rdx, %r10
2757 andq $-8, %r10
2758 addq %r10, %rax
2759 leaq 16(%rax), %r15
2760 addq $15, %rax
2761 cmpq $62, %rax
2762 ja .L554
2763 andl $1, %edx
2764 jne .L472
2765 addq (%rbx), %r15
2766 .L472:
2767 leaq -1(%r15), %rax
2768 cmpq $67108862, %rax
2769 ja .L555
2770 movq %r13, %rax
2771 subq %rcx, %rax
2772 addq %r15, %rax
2773 cmpq %r12, %rax
2774 jb .L556
2775 movq 16(%rdi), %rax
2776 subq %rax, 2184(%r14)
2777 leaq 67108864(%rdi), %rax
2778 cmpq %rax, aligned_heap_area(%rip)
2779 je .L557
2780 .L475:
2781 movl $67108864, %esi
2782 call __munmap
2783 testb $1, 8(%rbx)
2784 jne .L476
2785 subq (%rbx), %rbx
2786 movq %rbx, %rdi
2787 call unlink_chunk.isra.2
2788 jmp .L476
2789 .p2align 4,,10
2790 .p2align 3
2791 .L557:
2792 movq $0, aligned_heap_area(%rip)
2793 jmp .L475
2794 .p2align 4,,10
2795 .p2align 3
2796 .L455:
2797 addq %r14, %r12
2798 movq %r12, %rax
2799 orq $1, %rax
2800 movq %rax, 8(%rbx)
2801 movq %rbx, 96(%rbp)
2802 jmp .L460
2803 .p2align 4,,10
2804 .p2align 3
2805 .L450:
2806 leaq .LC42(%rip), %rdi
2807 call malloc_printerr
2808 .p2align 4,,10
2809 .p2align 3
2810 .L535:
2811 leaq 24(%rbx), %rdi
2812 leaq 16(%rbx), %rcx
2813 leaq -16(%r12), %rdx
2814 movabsq $72340172838076673, %rsi
2815 movzbl %al, %eax
2816 andq $-8, %rdi
2817 imulq %rsi, %rax
2818 subq %rdi, %rcx
2819 movl %edx, %esi
2820 addl %edx, %ecx
2821 shrl $3, %ecx
2822 movl %ecx, %ecx
2823 movq %rax, 16(%rbx)
2824 movq %rax, 8(%rbx,%rsi)
2825 rep stosq
2826 jmp .L433
2827 .p2align 4,,10
2828 .p2align 3
2829 .L543:
2830 movq %r13, %rdi
2831 addq %r14, %r12
2832 call unlink_chunk.isra.2
2833 jmp .L457
2834 .p2align 4,,10
2835 .p2align 3
2836 .L533:
2837 movq 128(%rcx,%rdx,8), %rsi
2838 testq %rsi, %rsi
2839 je .L414
2840 testq %rdi, %rdi
2841 je .L415
2842 testb $15, %sil
2843 jne .L416
2844 cmpq %rsi, %r8
2845 je .L417
2846 xorl %r9d, %r9d
2847 jmp .L418
2848 .p2align 4,,10
2849 .p2align 3
2850 .L420:
2851 cmpq %rsi, %r8
2852 je .L417
2853 .L418:
2854 movq (%rsi), %r10
2855 movq %rsi, %r11
2856 addq $1, %r9
2857 shrq $12, %r11
2858 movq %r11, %rsi
2859 xorq %r10, %rsi
2860 cmpq %r10, %r11
2861 je .L414
2862 cmpq %rdi, %r9
2863 je .L415
2864 testb $15, %sil
2865 je .L420
2866 .L416:
2867 leaq .LC34(%rip), %rdi
2868 call malloc_printerr
2869 .p2align 4,,10
2870 .p2align 3
2871 .L538:
2872 leaq .LC39(%rip), %rdi
2873 call malloc_printerr
2874 .p2align 4,,10
2875 .p2align 3
2876 .L539:
2877 movq 8(%rax), %rdx
2878 andq $-8, %rdx
2879 addq %rdx, %rax
2880 cmpq %rax, %r13
2881 jb .L448
2882 leaq .LC40(%rip), %rdi
2883 call malloc_printerr
2884 .p2align 4,,10
2885 .p2align 3
2886 .L540:
2887 leaq .LC41(%rip), %rdi
2888 call malloc_printerr
2889 .p2align 4,,10
2890 .p2align 3
2891 .L541:
2892 leaq -16(%r12), %rdx
2893 leaq 16(%rbx), %rdi
2894 call memset
2895 jmp .L452
2896 .p2align 4,,10
2897 .p2align 3
2898 .L556:
2899 movq 40(%rsp), %rbp
2900 movq 8(%rsi), %rdx
2901 movq %r14, %r15
2902 movq %rsi, %rbx
2903 movq %rdi, %r14
2904 .L468:
2905 andq $-8, %rdx
2906 cmpq %rdx, mp_(%rip)
2907 movq %rdx, %r13
2908 ja .L462
2909 movq %rdx, %r12
2910 subq $33, %r12
2911 js .L462
2912 movq 24(%rsp), %rax
2913 cmpq %r12, %rax
2914 jnb .L462
2915 subq %rax, %r12
2916 movq 32(%rsp), %rax
2917 negq %rax
2918 andq %rax, %r12
2919 je .L462
2920 movq 16(%r14), %rax
2921 subq %r12, %rax
2922 cmpq $31, %rax
2923 movq %rax, 8(%rsp)
2924 jle .L462
2925 movl may_shrink_heap.11292(%rip), %edx
2926 testl %edx, %edx
2927 js .L480
2928 setne %al
2929 .L481:
2930 movq 8(%rsp), %rcx
2931 testb %al, %al
2932 leaq (%r14,%rcx), %rdi
2933 jne .L558
2934 movl $4, %edx
2935 movq %r12, %rsi
2936 call __madvise
2937 .L487:
2938 movq 8(%rsp), %rax
2939 subq %r12, %r13
2940 orq $1, %r13
2941 movq %rax, 16(%r14)
2942 subq %r12, 2184(%r15)
2943 movq %r13, 8(%rbx)
2944 jmp .L462
2945 .p2align 4,,10
2946 .p2align 3
2947 .L547:
2948 movq %rbp, %rdi
2949 call malloc_consolidate
2950 jmp .L463
2951 .p2align 4,,10
2952 .p2align 3
2953 .L553:
2954 movq %r15, %rdx
2955 movq %r14, %r15
2956 movq %rbp, %r14
2957 movq 40(%rsp), %rbp
2958 jmp .L468
2959 .p2align 4,,10
2960 .p2align 3
2961 .L548:
2962 movq 96(%rbp), %rax
2963 movq 8(%rax), %rax
2964 andq $-8, %rax
2965 cmpq mp_(%rip), %rax
2966 jb .L462
2967 movq 8+mp_(%rip), %rdi
2968 call systrim.isra.1.constprop.12
2969 jmp .L462
2970 .L490:
2971 movq %rcx, %rdx
2972 jmp .L436
2973 .L537:
2974 #APP
2975 # 4533 "malloc.c" 1
2976 movl %fs:24,%r15d
2977 # 0 "" 2
2978 #NO_APP
2979 testl %r15d, %r15d
2980 movl %r15d, %eax
2981 movl %r15d, 20(%rsp)
2982 jne .L446
2983 movl $1, %edx
2984 #APP
2985 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
2986 cmpxchgl %edx, 0(%rbp)
2987 # 0 "" 2
2988 #NO_APP
2989 jmp .L445
2990 .L544:
2991 leaq .LC44(%rip), %rdi
2992 call malloc_printerr
2993 .L542:
2994 leaq .LC43(%rip), %rdi
2995 call malloc_printerr
2996 .L488:
2997 movl 20(%rsp), %r15d
2998 #APP
2999 # 4650 "malloc.c" 1
3000 xchgl %r15d, 0(%rbp)
3001 # 0 "" 2
3002 #NO_APP
3003 cmpl $1, %r15d
3004 jle .L408
3005 xorl %r10d, %r10d
3006 movl $1, %edx
3007 movl $129, %esi
3008 movq %rbp, %rdi
3009 movl $202, %eax
3010 #APP
3011 # 4650 "malloc.c" 1
3012 syscall
3014 # 0 "" 2
3015 #NO_APP
3016 jmp .L408
3017 .L430:
3018 xorl %eax, %eax
3019 #APP
3020 # 4475 "malloc.c" 1
3021 xchgl %eax, 0(%rbp)
3022 # 0 "" 2
3023 #NO_APP
3024 cmpl $1, %eax
3025 jle .L431
3026 xorl %r10d, %r10d
3027 movl $1, %edx
3028 movl $129, %esi
3029 movq %rbp, %rdi
3030 movl $202, %eax
3031 #APP
3032 # 4475 "malloc.c" 1
3033 syscall
3035 # 0 "" 2
3036 #NO_APP
3037 jmp .L431
3038 .L446:
3039 xorl %eax, %eax
3040 movl $1, %edx
3041 lock cmpxchgl %edx, 0(%rbp)
3042 movl $0, 20(%rsp)
3043 je .L445
3044 movq %rbp, %rdi
3045 call __lll_lock_wait_private
3046 jmp .L445
3047 .L550:
3048 movq 8(%rbx), %rdx
3049 movq %rdi, %r14
3050 jmp .L468
3051 .L555:
3052 leaq __PRETTY_FUNCTION__.11956(%rip), %rcx
3053 leaq .LC18(%rip), %rsi
3054 leaq .LC48(%rip), %rdi
3055 movl $669, %edx
3056 call __malloc_assert
3057 .L554:
3058 leaq __PRETTY_FUNCTION__.11956(%rip), %rcx
3059 leaq .LC18(%rip), %rsi
3060 leaq .LC47(%rip), %rdi
3061 movl $666, %edx
3062 call __malloc_assert
3063 .L470:
3064 leaq __PRETTY_FUNCTION__.11956(%rip), %rcx
3065 leaq .LC18(%rip), %rsi
3066 leaq .LC46(%rip), %rdi
3067 movl $663, %edx
3068 call __malloc_assert
3069 .L558:
3070 xorl %r9d, %r9d
3071 orl $-1, %r8d
3072 xorl %edx, %edx
3073 movl $50, %ecx
3074 movq %r12, %rsi
3075 call __mmap
3076 addq $1, %rax
3077 je .L462
3078 movq 8(%rsp), %rax
3079 movq %rax, 24(%r14)
3080 jmp .L487
3081 .L480:
3082 movl __libc_enable_secure(%rip), %ecx
3083 testl %ecx, %ecx
3084 movl %ecx, may_shrink_heap.11292(%rip)
3085 movl %ecx, 32(%rsp)
3086 jne .L483
3087 leaq .LC51(%rip), %rdi
3088 xorl %eax, %eax
3089 movl $524288, %esi
3090 call __open_nocancel
3091 testl %eax, %eax
3092 jns .L559
3093 .L483:
3094 cmpl $0, may_shrink_heap.11292(%rip)
3095 setne %al
3096 jmp .L481
3097 .L552:
3098 leaq __PRETTY_FUNCTION__.11956(%rip), %rcx
3099 leaq .LC18(%rip), %rsi
3100 leaq .LC50(%rip), %rdi
3101 movl $682, %edx
3102 call __malloc_assert
3103 .L551:
3104 leaq __PRETTY_FUNCTION__.11956(%rip), %rcx
3105 leaq .LC18(%rip), %rsi
3106 leaq .LC49(%rip), %rdi
3107 movl $681, %edx
3108 call __malloc_assert
3109 .L417:
3110 leaq .LC35(%rip), %rdi
3111 call malloc_printerr
3112 .L559:
3113 leaq 63(%rsp), %rsi
3114 movl $1, %edx
3115 movl %eax, %edi
3116 movl %eax, 24(%rsp)
3117 call __read_nocancel
3118 testq %rax, %rax
3119 movl 24(%rsp), %r8d
3120 movl 32(%rsp), %ecx
3121 jle .L485
3122 xorl %ecx, %ecx
3123 cmpb $50, 63(%rsp)
3124 sete %cl
3125 .L485:
3126 movl %r8d, %edi
3127 movl %ecx, may_shrink_heap.11292(%rip)
3128 call __close_nocancel
3129 jmp .L483
3130 .L415:
3131 leaq .LC33(%rip), %rdi
3132 call malloc_printerr
3133 .L549:
3134 leaq __PRETTY_FUNCTION__.13291(%rip), %rcx
3135 leaq .LC6(%rip), %rsi
3136 leaq .LC45(%rip), %rdi
3137 movl $4644, %edx
3138 call __malloc_assert
3139 .size _int_free, .-_int_free
3140 .section .rodata.str1.8
3141 .align 8
3142 .LC52:
3143 .string "((INTERNAL_SIZE_T) chunk2rawmem (mm) & MALLOC_ALIGN_MASK) == 0"
3144 .align 8
3145 .LC53:
3146 .string "(old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)"
3147 .align 8
3148 .LC54:
3149 .string "(unsigned long) (old_size) < (unsigned long) (nb + MINSIZE)"
3150 .align 8
3151 .LC55:
3152 .string "break adjusted to free malloc space"
3153 .section .rodata.str1.1
3154 .LC56:
3155 .string "correction >= 0"
3156 .section .rodata.str1.8
3157 .align 8
3158 .LC57:
3159 .string "((unsigned long) chunk2rawmem (brk) & MALLOC_ALIGN_MASK) == 0"
3160 .text
3161 .p2align 4,,15
3162 .type sysmalloc, @function
3163 sysmalloc:
3164 pushq %r15
3165 pushq %r14
3166 pushq %r13
3167 pushq %r12
3168 pushq %rbp
3169 pushq %rbx
3170 movq %rdi, %rbx
3171 subq $56, %rsp
3172 testq %rsi, %rsi
3173 movq _dl_pagesize(%rip), %r15
3174 je .L561
3175 cmpq %rdi, 16+mp_(%rip)
3176 movq %rsi, %rbp
3177 jbe .L660
3178 .L609:
3179 movb $0, (%rsp)
3180 .L562:
3181 leaq 7(%r15,%rbx), %rax
3182 movq %r15, %rdx
3183 leaq 96(%rbp), %r10
3184 negq %rdx
3185 movq %r15, %r14
3186 andq %rdx, %rax
3187 movq %r10, %r15
3188 movq %rax, 16(%rsp)
3189 .L608:
3190 movq 96(%rbp), %r13
3191 movq 8(%r13), %rax
3192 movq %rax, %r12
3193 andq $-8, %r12
3194 cmpq %r15, %r13
3195 leaq 0(%r13,%r12), %r11
3196 jne .L616
3197 testq %r12, %r12
3198 je .L571
3199 .L616:
3200 cmpq $31, %r12
3201 jbe .L573
3202 testb $1, %al
3203 je .L573
3204 leaq -1(%r14), %rax
3205 testq %rax, %r11
3206 jne .L573
3207 .L571:
3208 leaq 32(%rbx), %r10
3209 cmpq %r12, %r10
3210 jbe .L661
3211 leaq main_arena(%rip), %rax
3212 cmpq %rax, %rbp
3213 je .L575
3214 movq %r10, %rdx
3215 movq %r13, %r8
3216 subq %r12, %rdx
3217 andq $-67108864, %r8
3218 testq %rdx, %rdx
3219 jle .L576
3220 movq _dl_pagesize(%rip), %rax
3221 movq 16(%r8), %r9
3222 leaq -1(%rdx,%rax), %rcx
3223 negq %rax
3224 andq %rcx, %rax
3225 leaq (%rax,%r9), %rcx
3226 cmpq $67108864, %rcx
3227 ja .L576
3228 movq 24(%r8), %rdi
3229 cmpq %rdi, %rcx
3230 ja .L662
3231 movq %r10, %r14
3232 movq %r13, %rsi
3233 .L577:
3234 movq 2184(%rbp), %rdx
3235 movq %rcx, 16(%r8)
3236 subq %r9, %rdx
3237 addq %rcx, %rdx
3238 addq %r8, %rcx
3239 subq %r13, %rcx
3240 movq %rdx, 2184(%rbp)
3241 orq $1, %rcx
3242 movq %rcx, 8(%r13)
3243 .L578:
3244 cmpq %rdx, 2192(%rbp)
3245 jnb .L602
3246 movq %rdx, 2192(%rbp)
3247 .L602:
3248 movq 8(%rsi), %rdx
3249 andq $-8, %rdx
3250 cmpq %rdx, %r14
3251 ja .L603
3252 leaq main_arena(%rip), %rax
3253 subq %rbx, %rdx
3254 leaq (%rsi,%rbx), %rcx
3255 cmpq %rax, %rbp
3256 movq %rcx, 96(%rbp)
3257 setne %al
3258 orq $1, %rbx
3259 orq $1, %rdx
3260 movzbl %al, %eax
3261 addq $16, %rsi
3262 salq $2, %rax
3263 orq %rax, %rbx
3264 movq %rbx, -8(%rsi)
3265 movq %rdx, 8(%rcx)
3266 .L560:
3267 addq $56, %rsp
3268 movq %rsi, %rax
3269 popq %rbx
3270 popq %rbp
3271 popq %r12
3272 popq %r13
3273 popq %r14
3274 popq %r15
3276 .p2align 4,,10
3277 .p2align 3
3278 .L660:
3279 movl 44+mp_(%rip), %eax
3280 cmpl %eax, 40+mp_(%rip)
3281 jge .L609
3282 leaq 7(%r15,%rdi), %r12
3283 movq %r15, %rax
3284 negq %rax
3285 andq %rax, %r12
3286 cmpq %r12, %rdi
3287 jb .L663
3288 .L615:
3289 movb $1, (%rsp)
3290 jmp .L562
3291 .p2align 4,,10
3292 .p2align 3
3293 .L576:
3294 movq 8+mp_(%rip), %rsi
3295 leaq 64(%rbx), %rdi
3296 movq %r10, 8(%rsp)
3297 movq %r8, 24(%rsp)
3298 call new_heap
3299 testq %rax, %rax
3300 movq 8(%rsp), %r10
3301 je .L579
3302 movq 16(%rax), %rcx
3303 movq 2184(%rbp), %rdx
3304 leaq 32(%rax), %rsi
3305 movq 24(%rsp), %r8
3306 subq $32, %r12
3307 movq %rbp, (%rax)
3308 andq $-16, %r12
3309 movq %r10, %r14
3310 addq %rcx, %rdx
3311 subq $32, %rcx
3312 orq $1, %rcx
3313 movq %r8, 8(%rax)
3314 movq %rdx, 2184(%rbp)
3315 movq %rsi, 96(%rbp)
3316 movq %rcx, 40(%rax)
3317 leaq 16(%r12), %rax
3318 cmpq $31, %r12
3319 leaq 0(%r13,%rax), %rcx
3320 movq $1, 8(%rcx)
3321 ja .L664
3322 movq %rax, %rdi
3323 orq $1, %rdi
3324 movq %rdi, 8(%r13)
3325 movq %rax, (%rcx)
3326 jmp .L578
3327 .p2align 4,,10
3328 .p2align 3
3329 .L561:
3330 leaq 7(%r15,%rdi), %r12
3331 negq %r15
3332 andq %r15, %r12
3333 cmpq %rdi, %r12
3334 jbe .L659
3335 xorl %r9d, %r9d
3336 xorl %edi, %edi
3337 movl $-1, %r8d
3338 movl $34, %ecx
3339 movl $3, %edx
3340 movq %r12, %rsi
3341 call __mmap
3342 cmpq $-1, %rax
3343 je .L659
3344 .L605:
3345 leaq 16(%rax), %rsi
3346 testb $15, %sil
3347 jne .L665
3348 movq %r12, %rdx
3349 movq $0, (%rax)
3350 orq $2, %rdx
3351 movq %rdx, 8(%rax)
3352 movl $1, %edx
3353 lock xaddl %edx, 40+mp_(%rip)
3354 addl $1, %edx
3355 .L568:
3356 movl 48+mp_(%rip), %eax
3357 cmpl %eax, %edx
3358 jle .L567
3359 lock cmpxchgl %edx, 48+mp_(%rip)
3360 jne .L568
3361 .L567:
3362 movq %r12, %r15
3363 lock xaddq %r15, 56+mp_(%rip)
3364 addq %r15, %r12
3365 .L570:
3366 movq 64+mp_(%rip), %rax
3367 cmpq %rax, %r12
3368 jbe .L560
3369 lock cmpxchgq %r12, 64+mp_(%rip)
3370 je .L560
3371 jmp .L570
3372 .p2align 4,,10
3373 .p2align 3
3374 .L575:
3375 testb $2, 4(%rbp)
3376 movq %r14, %r15
3377 movq 8+mp_(%rip), %rax
3378 leaq -1(%r15), %rdi
3379 movq %r10, %r14
3380 leaq 32(%rbx,%rax), %rdx
3381 movq %rdi, 16(%rsp)
3382 movq %r15, %rax
3383 je .L666
3384 leaq (%rdx,%rdi), %r15
3385 negq %rax
3386 movq %rax, 24(%rsp)
3387 andq %rax, %r15
3388 testq %r15, %r15
3389 movq %r15, 8(%rsp)
3390 jle .L584
3391 .L607:
3392 movq %r11, (%rsp)
3393 movq %r15, %rdi
3394 call *__morecore(%rip)
3395 testq %rax, %rax
3396 movq %rax, %rcx
3397 movq (%rsp), %r11
3398 je .L667
3399 movq __after_morecore_hook(%rip), %rsi
3400 xorl %eax, %eax
3401 movl $1, %edi
3402 testq %rsi, %rsi
3403 jne .L668
3404 .L585:
3405 cmpq $0, 72+mp_(%rip)
3406 je .L669
3407 .L589:
3408 movq 2184+main_arena(%rip), %rdx
3409 addq %r15, %rdx
3410 cmpq %rcx, %r11
3411 movq %rdx, 2184+main_arena(%rip)
3412 jne .L590
3413 testb %dil, %dil
3414 je .L590
3415 addq %r12, %r15
3416 movq 96+main_arena(%rip), %rsi
3417 orq $1, %r15
3418 movq %r15, 8(%r13)
3419 jmp .L578
3420 .p2align 4,,10
3421 .p2align 3
3422 .L666:
3423 subq %r12, %rdx
3424 negq %rax
3425 leaq (%rdx,%rdi), %r15
3426 movq %rax, 24(%rsp)
3427 andq %rax, %r15
3428 testq %r15, %r15
3429 movq %r15, 8(%rsp)
3430 jg .L607
3431 .p2align 4,,10
3432 .p2align 3
3433 .L582:
3434 movq 16(%rsp), %rax
3435 addq %r12, %rax
3436 addq %rax, %r15
3437 andq 24(%rsp), %r15
3438 movq %r15, 8(%rsp)
3439 .L584:
3440 movq 8(%rsp), %rdi
3441 movl $1048576, %eax
3442 cmpq $1048576, %rdi
3443 cmovbe %rax, %rdi
3444 cmpq %rdi, %rbx
3445 movq %rdi, %r15
3446 jb .L586
3447 .L657:
3448 movq 2184+main_arena(%rip), %rdx
3449 .L658:
3450 movq 96+main_arena(%rip), %rsi
3451 jmp .L578
3452 .p2align 4,,10
3453 .p2align 3
3454 .L664:
3455 movq $17, 8(%r13,%r12)
3456 orq $5, %r12
3457 movq $16, (%rcx)
3458 movl $1, %edx
3459 movq %r13, %rsi
3460 movq %r12, 8(%r13)
3461 movq %rbp, %rdi
3462 call _int_free
3463 movq 2184(%rbp), %rdx
3464 movq 96(%rbp), %rsi
3465 jmp .L578
3466 .p2align 4,,10
3467 .p2align 3
3468 .L662:
3469 movq %rcx, %rsi
3470 movl $3, %edx
3471 movq %r10, 24(%rsp)
3472 subq %rdi, %rsi
3473 addq %r8, %rdi
3474 movq %r8, 8(%rsp)
3475 movq %r9, 40(%rsp)
3476 movq %rcx, 32(%rsp)
3477 call __mprotect
3478 testl %eax, %eax
3479 movq 8(%rsp), %r8
3480 movq 24(%rsp), %r10
3481 jne .L576
3482 movq 32(%rsp), %rcx
3483 movq %r10, %r14
3484 movq 40(%rsp), %r9
3485 movq 96(%rbp), %rsi
3486 movq %rcx, 24(%r8)
3487 jmp .L577
3488 .p2align 4,,10
3489 .p2align 3
3490 .L579:
3491 cmpb $0, (%rsp)
3492 jne .L670
3493 .L564:
3494 movq 16(%rsp), %rax
3495 cmpq %rbx, %rax
3496 movq %rax, %r12
3497 ja .L671
3498 .L565:
3499 movb $1, (%rsp)
3500 jmp .L608
3501 .p2align 4,,10
3502 .p2align 3
3503 .L603:
3504 movq __libc_errno@gottpoff(%rip), %rax
3505 movl $12, %fs:(%rax)
3506 .L659:
3507 xorl %esi, %esi
3508 jmp .L560
3509 .p2align 4,,10
3510 .p2align 3
3511 .L590:
3512 testb $2, 4+main_arena(%rip)
3513 jne .L591
3514 testq %r12, %r12
3515 je .L592
3516 cmpq %rcx, %r11
3517 ja .L672
3518 .L592:
3519 testq %r12, %r12
3520 je .L593
3521 movq %rcx, %rax
3522 subq %r11, %rax
3523 addq %rax, %rdx
3524 movq %rdx, 2184+main_arena(%rip)
3525 .L593:
3526 movq %rcx, %rax
3527 andl $15, %eax
3528 je .L612
3529 movl $16, %edx
3530 subq %rax, %rdx
3531 leaq (%rcx,%rdx), %rsi
3532 addq %r12, %rdx
3533 .L594:
3534 addq %rdx, %r15
3535 leaq (%rcx,%r15), %rax
3536 movq 16(%rsp), %r15
3537 subq %rax, %rdx
3538 addq %rax, %r15
3539 andq 24(%rsp), %r15
3540 addq %rdx, %r15
3541 testq %r15, %r15
3542 js .L673
3543 movq %rsi, 8(%rsp)
3544 movq %r15, (%rsp)
3545 movq %r15, %rdi
3546 call *__morecore(%rip)
3547 testq %rax, %rax
3548 movq (%rsp), %rcx
3549 movq 8(%rsp), %rsi
3550 jne .L596
3551 movq %rsi, (%rsp)
3552 xorl %edi, %edi
3553 call *__morecore(%rip)
3554 movq (%rsp), %rsi
3555 jmp .L597
3556 .p2align 4,,10
3557 .p2align 3
3558 .L667:
3559 testb $2, 4+main_arena(%rip)
3560 je .L582
3561 jmp .L584
3562 .p2align 4,,10
3563 .p2align 3
3564 .L670:
3565 movq %r10, %r14
3566 movq 2184(%rbp), %rdx
3567 movq 96(%rbp), %rsi
3568 jmp .L578
3569 .p2align 4,,10
3570 .p2align 3
3571 .L669:
3572 movq %rcx, 72+mp_(%rip)
3573 jmp .L589
3574 .p2align 4,,10
3575 .p2align 3
3576 .L591:
3577 testb $15, %cl
3578 jne .L674
3579 testq %rax, %rax
3580 jne .L613
3581 movq %rcx, (%rsp)
3582 xorl %edi, %edi
3583 call *__morecore(%rip)
3584 movq (%rsp), %rcx
3585 movq %rcx, %rsi
3586 .L597:
3587 testq %rax, %rax
3588 movq 2184+main_arena(%rip), %rdx
3589 je .L658
3590 .L656:
3591 xorl %r15d, %r15d
3592 xorl %ecx, %ecx
3593 .L599:
3594 subq %rsi, %rax
3595 addq %r15, %rdx
3596 movq %rsi, 96+main_arena(%rip)
3597 addq %rcx, %rax
3598 orq $1, %rax
3599 testq %r12, %r12
3600 movq %rax, 8(%rsi)
3601 movq %rdx, 2184+main_arena(%rip)
3602 je .L578
3603 subq $32, %r12
3604 andq $-16, %r12
3605 movq %r12, %rax
3606 orq $1, %rax
3607 cmpq $31, %r12
3608 movq %rax, 8(%r13)
3609 movq $17, 8(%r13,%r12)
3610 movq $17, 24(%r13,%r12)
3611 jbe .L578
3612 leaq main_arena(%rip), %rdi
3613 movl $1, %edx
3614 movq %r13, %rsi
3615 call _int_free
3616 jmp .L657
3617 .p2align 4,,10
3618 .p2align 3
3619 .L586:
3620 xorl %r9d, %r9d
3621 movl $34, %ecx
3622 movq %rdi, %rsi
3623 movl $-1, %r8d
3624 xorl %edi, %edi
3625 movl $3, %edx
3626 movq %r11, (%rsp)
3627 call __mmap
3628 cmpq $-1, %rax
3629 movq %rax, %rcx
3630 movq (%rsp), %r11
3631 je .L657
3632 orl $2, 4+main_arena(%rip)
3633 testq %rax, %rax
3634 je .L657
3635 addq %r15, %rax
3636 sete %dil
3637 jmp .L585
3638 .p2align 4,,10
3639 .p2align 3
3640 .L612:
3641 movq %r12, %rdx
3642 movq %rcx, %rsi
3643 jmp .L594
3644 .p2align 4,,10
3645 .p2align 3
3646 .L668:
3647 movb %dil, 40(%rsp)
3648 movq %rcx, 32(%rsp)
3649 movq %r11, 8(%rsp)
3650 movq %rax, (%rsp)
3651 call *%rsi
3652 movq (%rsp), %rax
3653 movq 8(%rsp), %r11
3654 movq 32(%rsp), %rcx
3655 movzbl 40(%rsp), %edi
3656 jmp .L585
3657 .p2align 4,,10
3658 .p2align 3
3659 .L596:
3660 movq __after_morecore_hook(%rip), %rdx
3661 testq %rdx, %rdx
3662 jne .L598
3663 movq 2184+main_arena(%rip), %rdx
3664 jmp .L599
3665 .p2align 4,,10
3666 .p2align 3
3667 .L613:
3668 movq %rcx, %rsi
3669 jmp .L656
3670 .L598:
3671 movq %rsi, 16(%rsp)
3672 movq %rcx, 8(%rsp)
3673 movq %rax, (%rsp)
3674 call *%rdx
3675 movq 2184+main_arena(%rip), %rdx
3676 movq (%rsp), %rax
3677 movq 8(%rsp), %rcx
3678 movq 16(%rsp), %rsi
3679 jmp .L599
3680 .L573:
3681 leaq __PRETTY_FUNCTION__.12690(%rip), %rcx
3682 leaq .LC6(%rip), %rsi
3683 leaq .LC53(%rip), %rdi
3684 movl $2542, %edx
3685 call __malloc_assert
3686 .L661:
3687 leaq __PRETTY_FUNCTION__.12690(%rip), %rcx
3688 leaq .LC6(%rip), %rsi
3689 leaq .LC54(%rip), %rdi
3690 movl $2545, %edx
3691 call __malloc_assert
3692 .L665:
3693 leaq __PRETTY_FUNCTION__.12690(%rip), %rcx
3694 leaq .LC6(%rip), %rsi
3695 leaq .LC52(%rip), %rdi
3696 movl $2487, %edx
3697 call __malloc_assert
3698 .L671:
3699 xorl %r9d, %r9d
3700 orl $-1, %r8d
3701 xorl %edi, %edi
3702 movl $34, %ecx
3703 movl $3, %edx
3704 movq %rax, %rsi
3705 call __mmap
3706 cmpq $-1, %rax
3707 jne .L605
3708 jmp .L565
3709 .L674:
3710 leaq __PRETTY_FUNCTION__.12690(%rip), %rcx
3711 leaq .LC6(%rip), %rsi
3712 leaq .LC57(%rip), %rdi
3713 movl $2796, %edx
3714 call __malloc_assert
3715 .L663:
3716 xorl %r9d, %r9d
3717 orl $-1, %r8d
3718 xorl %edi, %edi
3719 movl $34, %ecx
3720 movl $3, %edx
3721 movq %r12, %rsi
3722 call __mmap
3723 cmpq $-1, %rax
3724 jne .L605
3725 jmp .L615
3726 .L672:
3727 leaq .LC55(%rip), %rdi
3728 call malloc_printerr
3729 .L673:
3730 leaq __PRETTY_FUNCTION__.12690(%rip), %rcx
3731 leaq .LC6(%rip), %rsi
3732 leaq .LC56(%rip), %rdi
3733 movl $2764, %edx
3734 call __malloc_assert
3735 .size sysmalloc, .-sysmalloc
3736 .section .rodata.str1.8
3737 .align 8
3738 .LC58:
3739 .string "malloc(): unaligned fastbin chunk detected 2"
3740 .align 8
3741 .LC59:
3742 .string "malloc(): unaligned fastbin chunk detected"
3743 .align 8
3744 .LC60:
3745 .string "malloc(): memory corruption (fast)"
3746 .align 8
3747 .LC61:
3748 .string "malloc(): unaligned fastbin chunk detected 3"
3749 .align 8
3750 .LC62:
3751 .string "malloc(): smallbin double linked list corrupted"
3752 .align 8
3753 .LC63:
3754 .string "malloc(): invalid size (unsorted)"
3755 .align 8
3756 .LC64:
3757 .string "malloc(): invalid next size (unsorted)"
3758 .align 8
3759 .LC65:
3760 .string "malloc(): mismatching next->prev_size (unsorted)"
3761 .align 8
3762 .LC66:
3763 .string "malloc(): unsorted double linked list corrupted"
3764 .align 8
3765 .LC67:
3766 .string "malloc(): invalid next->prev_inuse (unsorted)"
3767 .section .rodata.str1.1
3768 .LC68:
3769 .string "chunk_main_arena (bck->bk)"
3770 .LC69:
3771 .string "chunk_main_arena (fwd)"
3772 .section .rodata.str1.8
3773 .align 8
3774 .LC70:
3775 .string "malloc(): largebin double linked list corrupted (nextsize)"
3776 .align 8
3777 .LC71:
3778 .string "malloc(): largebin double linked list corrupted (bk)"
3779 .align 8
3780 .LC72:
3781 .string "malloc(): unaligned tcache chunk detected"
3782 .align 8
3783 .LC73:
3784 .string "malloc(): corrupted unsorted chunks"
3785 .section .rodata.str1.1
3786 .LC74:
3787 .string "bit != 0"
3788 .section .rodata.str1.8
3789 .align 8
3790 .LC75:
3791 .string "(unsigned long) (size) >= (unsigned long) (nb)"
3792 .align 8
3793 .LC76:
3794 .string "malloc(): corrupted unsorted chunks 2"
3795 .section .rodata.str1.1
3796 .LC77:
3797 .string "malloc(): corrupted top size"
3798 .text
3799 .p2align 4,,15
3800 .type _int_malloc, @function
3801 _int_malloc:
3802 testq %rsi, %rsi
3803 js .L900
3804 pushq %r15
3805 leaq 23(%rsi), %rax
3806 pushq %r14
3807 pushq %r13
3808 pushq %r12
3809 movq %rsi, %r13
3810 pushq %rbp
3811 pushq %rbx
3812 movq %rdi, %r12
3813 subq $152, %rsp
3814 cmpq $31, %rax
3815 jbe .L901
3816 andq $-16, %rax
3817 testq %rdi, %rdi
3818 movq %rax, %r14
3819 je .L679
3820 movl %eax, %ebx
3821 shrl $4, %ebx
3822 cmpq global_max_fast(%rip), %rax
3823 ja .L684
3824 leal -2(%rbx), %eax
3825 leaq (%r12,%rax,8), %r8
3826 movq %rax, %rdi
3827 leaq 16(,%rax,8), %rsi
3828 movq 16(%r8), %rcx
3829 testq %rcx, %rcx
3830 je .L689
3831 .L685:
3832 testb $15, %cl
3833 jne .L902
3834 addq %r12, %rsi
3835 #APP
3836 # 3807 "malloc.c" 1
3837 movl %fs:24,%r9d
3838 # 0 "" 2
3839 #NO_APP
3840 leaq 16(%rcx), %rdx
3841 movq 16(%rcx), %r10
3842 movq %rdx, %rax
3843 shrq $12, %rax
3844 xorq %r10, %rax
3845 testl %r9d, %r9d
3846 jne .L687
3847 movq %rax, 16(%r8)
3848 .L688:
3849 movl 8(%rcx), %eax
3850 shrl $4, %eax
3851 subl $2, %eax
3852 cmpl %edi, %eax
3853 jne .L903
3854 movq %fs:tcache@tpoff, %r15
3855 testq %r15, %r15
3856 je .L710
3857 leaq -17(%r14), %rax
3858 shrq $4, %rax
3859 cmpq %rax, 80+mp_(%rip)
3860 jbe .L710
3861 movzwl (%r15,%rax,2), %edx
3862 cmpq %rdx, 96+mp_(%rip)
3863 jbe .L710
3864 movq 16(%r8), %rdx
3865 testq %rdx, %rdx
3866 je .L710
3867 testb $15, %dl
3868 jne .L695
3869 leaq (%r15,%rax,8), %r10
3870 leaq (%r15,%rax,2), %r9
3871 jmp .L696
3872 .p2align 4,,10
3873 .p2align 3
3874 .L904:
3875 movq %r12, 16(%r8)
3876 .L698:
3877 xorq 128(%r10), %rax
3878 movq %r15, 24(%rdx)
3879 movq %rax, 16(%rdx)
3880 movq %rbx, 128(%r10)
3881 movzwl (%r9), %eax
3882 addl $1, %eax
3883 movw %ax, (%r9)
3884 movzwl %ax, %eax
3885 cmpq 96+mp_(%rip), %rax
3886 jnb .L710
3887 movq 16(%r8), %rdx
3888 testq %rdx, %rdx
3889 je .L710
3890 testb $15, %dl
3891 jne .L695
3892 .L696:
3893 #APP
3894 # 3831 "malloc.c" 1
3895 movl %fs:24,%ebp
3896 # 0 "" 2
3897 #NO_APP
3898 leaq 16(%rdx), %rbx
3899 movq 16(%rdx), %r11
3900 movq %rbx, %rax
3901 movq %rbx, %rdi
3902 shrq $12, %rax
3903 movq %r11, %r12
3904 xorq %rax, %r12
3905 testl %ebp, %ebp
3906 je .L904
3907 jmp .L697
3908 .p2align 4,,10
3909 .p2align 3
3910 .L901:
3911 testq %rdi, %rdi
3912 je .L789
3913 cmpq $31, global_max_fast(%rip)
3914 ja .L790
3915 movl $2, %ebx
3916 movl $128, %eax
3917 movl $32, %r14d
3918 .L681:
3919 addq %r12, %rax
3920 movq 8(%rax), %rcx
3921 leaq -16(%rax), %r8
3922 cmpq %rcx, %r8
3923 je .L905
3924 movq 24(%rcx), %rdx
3925 cmpq %rcx, 16(%rdx)
3926 jne .L906
3927 leaq main_arena(%rip), %r10
3928 orq $1, 8(%rcx,%r14)
3929 movq %rdx, 8(%rax)
3930 movq %r8, 16(%rdx)
3931 cmpq %r10, %r12
3932 je .L707
3933 orq $4, 8(%rcx)
3934 .L707:
3935 movq %fs:tcache@tpoff, %r9
3936 testq %r9, %r9
3937 je .L710
3938 leaq -17(%r14), %rdx
3939 shrq $4, %rdx
3940 cmpq %rdx, 80+mp_(%rip)
3941 jbe .L710
3942 leaq (%r9,%rdx,2), %rbx
3943 movq 96+mp_(%rip), %rdi
3944 leaq (%r9,%rdx,8), %rbp
3945 movzwl (%rbx), %r11d
3946 .L711:
3947 movzwl %r11w, %esi
3948 jmp .L712
3949 .p2align 4,,10
3950 .p2align 3
3951 .L908:
3952 movq 8(%rax), %rdx
3953 cmpq %rdx, %r8
3954 je .L710
3955 testq %rdx, %rdx
3956 jne .L907
3957 .L712:
3958 cmpq %rdi, %rsi
3959 jb .L908
3960 .p2align 4,,10
3961 .p2align 3
3962 .L710:
3963 movl perturb_byte(%rip), %esi
3964 addq $16, %rcx
3965 testl %esi, %esi
3966 jne .L892
3967 .L675:
3968 addq $152, %rsp
3969 movq %rcx, %rax
3970 popq %rbx
3971 popq %rbp
3972 popq %r12
3973 popq %r13
3974 popq %r14
3975 popq %r15
3977 .p2align 4,,10
3978 .p2align 3
3979 .L909:
3980 testb $15, %r9b
3981 jne .L700
3982 .p2align 4,,10
3983 .p2align 3
3984 .L690:
3985 movq %rcx, %rax
3986 #APP
3987 # 3810 "malloc.c" 1
3988 cmpl $0, %fs:24
3989 je 0f
3990 lock
3991 0: cmpxchgq %r9, (%rsi)
3992 # 0 "" 2
3993 #NO_APP
3994 cmpq %rcx, %rax
3995 je .L688
3996 testq %rax, %rax
3997 je .L689
3998 movq 16(%rax), %r10
3999 leaq 16(%rax), %rdx
4000 movq %rax, %rcx
4001 .L687:
4002 shrq $12, %rdx
4003 movq %rdx, %r9
4004 xorq %r10, %r9
4005 cmpq %r10, %rdx
4006 je .L690
4007 jmp .L909
4008 .p2align 4,,10
4009 .p2align 3
4010 .L684:
4011 cmpq $1023, %rax
4012 jbe .L689
4013 movq %rax, %rcx
4014 movq %rax, %rdi
4015 movq %r14, %rax
4016 shrq $18, %rax
4017 movq %r14, %rsi
4018 movq %r14, %r15
4019 shrq $12, %rsi
4020 shrq $6, %rcx
4021 shrq $9, %rdi
4022 shrq $15, %r15
4023 movl $2, %edx
4024 cmpq $2, %rax
4025 cmova %rdx, %rax
4026 leal 48(%rcx), %r9d
4027 leal 110(%rsi), %r10d
4028 leal 124(%rax), %r8d
4029 movq %rsi, 104(%rsp)
4030 leal 119(%r15), %r11d
4031 movq %rsi, %rax
4032 movl %edi, %esi
4033 movq %rcx, 80(%rsp)
4034 addl $91, %esi
4035 cmpq $48, %rcx
4036 movq %rdi, 96(%rsp)
4037 movl %r9d, 92(%rsp)
4038 movq %r15, 112(%rsp)
4039 movl %r8d, 124(%rsp)
4040 movl %r11d, 128(%rsp)
4041 movl %r10d, 132(%rsp)
4042 movl %esi, 120(%rsp)
4043 movl %r9d, 8(%rsp)
4044 jbe .L715
4045 cmpq $20, %rdi
4046 movl %esi, 8(%rsp)
4047 jbe .L715
4048 cmpq $10, %rax
4049 movl %r10d, 8(%rsp)
4050 ja .L910
4051 .p2align 4,,10
4052 .p2align 3
4053 .L715:
4054 movl 8(%r12), %eax
4055 testl %eax, %eax
4056 jne .L911
4057 .L705:
4058 movq %fs:tcache@tpoff, %r15
4059 leaq -17(%r14), %rax
4060 shrq $4, %rax
4061 testq %r15, %r15
4062 movq %rax, %r11
4063 je .L795
4064 cmpq %rax, 80+mp_(%rip)
4065 movl $0, %eax
4066 cmova %r14, %rax
4067 movq %rax, 40(%rsp)
4068 .L716:
4069 leaq 96(%r12), %rbp
4070 xorl %r10d, %r10d
4071 movl %ebx, 88(%rsp)
4072 movq %r13, 56(%rsp)
4073 .L717:
4074 movq 104+mp_(%rip), %rax
4075 movq 120(%r12), %rdx
4076 xorl %r9d, %r9d
4077 xorl %r13d, %r13d
4078 movq %r11, 48(%rsp)
4079 movq %rax, 32(%rsp)
4080 movq 96+mp_(%rip), %rax
4081 movq %rax, 24(%rsp)
4082 leaq 32(%r14), %rax
4083 movq %rax, 72(%rsp)
4084 leaq (%r15,%r11,2), %rax
4085 movq %rax, 16(%rsp)
4086 leaq (%r15,%r11,8), %rax
4087 movq %rax, 64(%rsp)
4088 .L718:
4089 cmpq %rdx, %rbp
4090 je .L912
4091 movq 8(%rdx), %rax
4092 andq $-8, %rax
4093 cmpq $16, %rax
4094 leaq (%rdx,%rax), %rdi
4095 jbe .L719
4096 movq 2184(%r12), %rsi
4097 cmpq %rax, %rsi
4098 jb .L719
4099 movq 8(%rdi), %rcx
4100 cmpq $15, %rcx
4101 jbe .L807
4102 cmpq %rcx, %rsi
4103 jb .L807
4104 movq (%rdi), %rsi
4105 andq $-8, %rsi
4106 cmpq %rax, %rsi
4107 jne .L913
4108 movq 24(%rdx), %r8
4109 cmpq %rdx, 16(%r8)
4110 jne .L724
4111 movq 16(%rdx), %rbx
4112 cmpq %rbp, %rbx
4113 jne .L724
4114 testb $1, %cl
4115 jne .L914
4116 cmpq $1023, %r14
4117 ja .L727
4118 cmpq %rbp, %r8
4119 je .L915
4120 .L727:
4121 cmpq %rax, %r14
4122 movq %r8, 120(%r12)
4123 movq %rbp, 16(%r8)
4124 je .L916
4125 cmpq $1023, %rax
4126 ja .L734
4127 movl %eax, %ecx
4128 shrl $4, %ecx
4129 leal -2(%rcx,%rcx), %eax
4130 cltq
4131 leaq 112(%r12,%rax,8), %rax
4132 movq (%rax), %rdi
4133 leaq -16(%rax), %r8
4134 .L735:
4135 movl %ecx, %eax
4136 movl $1, %ebx
4137 addq $1, %r10
4138 sarl $5, %eax
4139 sall %cl, %ebx
4140 cltq
4141 orl %ebx, 2144(%r12,%rax,4)
4142 testl %r13d, %r13d
4143 movq %r8, 24(%rdx)
4144 movq %rdi, 16(%rdx)
4145 movq %rdx, 24(%rdi)
4146 movq %rdx, 16(%r8)
4147 je .L749
4148 movq 32(%rsp), %rax
4149 testq %rax, %rax
4150 je .L750
4151 cmpq %r10, %rax
4152 jnb .L750
4153 .L899:
4154 movq 48(%rsp), %r11
4155 .L897:
4156 leaq (%r15,%r11,8), %rdx
4157 movq 128(%rdx), %rcx
4158 testb $15, %cl
4159 jne .L917
4160 movq %rcx, %rax
4161 shrq $12, %rax
4162 xorq (%rcx), %rax
4163 movq %rax, 128(%rdx)
4164 subw $1, (%r15,%r11,2)
4165 movq $0, 8(%rcx)
4166 jmp .L675
4167 .p2align 4,,10
4168 .p2align 3
4169 .L790:
4170 xorl %eax, %eax
4171 xorl %edi, %edi
4172 movl $16, %esi
4173 leaq (%r12,%rax,8), %r8
4174 movl $2, %ebx
4175 movl $32, %r14d
4176 movq 16(%r8), %rcx
4177 testq %rcx, %rcx
4178 jne .L685
4179 .L689:
4180 leal 2147483647(%rbx), %eax
4181 addl %eax, %eax
4182 leaq 112(,%rax,8), %rax
4183 jmp .L681
4184 .p2align 4,,10
4185 .p2align 3
4186 .L699:
4187 movq %rdx, %rax
4188 #APP
4189 # 3835 "malloc.c" 1
4190 cmpl $0, %fs:24
4191 je 0f
4192 lock
4193 0: cmpxchgq %rbx, (%rsi)
4194 # 0 "" 2
4195 #NO_APP
4196 cmpq %rdx, %rax
4197 je .L918
4198 testq %rax, %rax
4199 je .L710
4200 movq 16(%rax), %r11
4201 leaq 16(%rax), %rdi
4202 movq %rax, %rdx
4203 .L697:
4204 shrq $12, %rdi
4205 movq %rdi, %rbx
4206 xorq %r11, %rbx
4207 cmpq %r11, %rdi
4208 je .L699
4209 testb $15, %bl
4210 je .L699
4211 .L700:
4212 leaq .LC59(%rip), %rdi
4213 call malloc_printerr
4214 .p2align 4,,10
4215 .p2align 3
4216 .L911:
4217 movq %r12, %rdi
4218 call malloc_consolidate
4219 jmp .L705
4220 .p2align 4,,10
4221 .p2align 3
4222 .L905:
4223 movq %r14, %rcx
4224 movq %r14, %rax
4225 movl %ebx, 8(%rsp)
4226 shrq $9, %rcx
4227 shrq $6, %rax
4228 movl $110, 132(%rsp)
4229 leal 91(%rcx), %edi
4230 movq %rax, 80(%rsp)
4231 addl $48, %eax
4232 movq %rcx, 96(%rsp)
4233 movl %eax, 92(%rsp)
4234 movl %edi, 120(%rsp)
4235 movl $119, 128(%rsp)
4236 movl $124, 124(%rsp)
4237 movq $0, 112(%rsp)
4238 movq $0, 104(%rsp)
4239 jmp .L705
4240 .p2align 4,,10
4241 .p2align 3
4242 .L916:
4243 leaq main_arena(%rip), %rax
4244 orq $1, %rcx
4245 movq %rcx, 8(%rdi)
4246 cmpq %rax, %r12
4247 je .L731
4248 orq $4, 8(%rdx)
4249 .L731:
4250 cmpq $0, 40(%rsp)
4251 leaq 16(%rdx), %rcx
4252 je .L732
4253 movq 16(%rsp), %rax
4254 movzwl (%rax), %esi
4255 cmpq 24(%rsp), %rsi
4256 movq %rsi, %rax
4257 jb .L919
4258 .L732:
4259 movq 56(%rsp), %r13
4260 .L895:
4261 movl perturb_byte(%rip), %esi
4262 testl %esi, %esi
4263 je .L675
4264 .L892:
4265 movq %rcx, %rdi
4266 xorb $-1, %sil
4267 movq %r13, %rdx
4268 call memset
4269 movq %rax, %rcx
4270 jmp .L675
4271 .p2align 4,,10
4272 .p2align 3
4273 .L750:
4274 addl $1, %r9d
4275 cmpl $9999, %r9d
4276 jg .L899
4277 .L890:
4278 movq 120(%r12), %rdx
4279 jmp .L718
4280 .p2align 4,,10
4281 .p2align 3
4282 .L719:
4283 leaq .LC63(%rip), %rdi
4284 call malloc_printerr
4285 .p2align 4,,10
4286 .p2align 3
4287 .L900:
4288 movq __libc_errno@gottpoff(%rip), %rax
4289 xorl %ecx, %ecx
4290 movl $12, %fs:(%rax)
4291 movq %rcx, %rax
4293 .p2align 4,,10
4294 .p2align 3
4295 .L789:
4296 movl $32, %r14d
4297 .L679:
4298 xorl %esi, %esi
4299 movq %r14, %rdi
4300 call sysmalloc
4301 testq %rax, %rax
4302 movq %rax, %rcx
4303 jne .L895
4304 .L785:
4305 xorl %ecx, %ecx
4306 jmp .L675
4307 .p2align 4,,10
4308 .p2align 3
4309 .L807:
4310 leaq .LC64(%rip), %rdi
4311 call malloc_printerr
4312 .p2align 4,,10
4313 .p2align 3
4314 .L734:
4315 movq %rax, %rcx
4316 shrq $6, %rcx
4317 cmpq $48, %rcx
4318 jbe .L920
4319 movq %rax, %rcx
4320 shrq $9, %rcx
4321 cmpq $20, %rcx
4322 ja .L738
4323 addl $91, %ecx
4324 .L737:
4325 leal -2(%rcx,%rcx), %esi
4326 movslq %esi, %rsi
4327 leaq 112(%r12,%rsi,8), %r8
4328 movq (%r8), %rsi
4329 leaq -16(%r8), %rdi
4330 cmpq %rsi, %rdi
4331 je .L741
4332 movq 8(%r8), %r8
4333 orq $1, %rax
4334 movq 8(%r8), %rbx
4335 testb $4, %bl
4336 jne .L921
4337 cmpq %rax, %rbx
4338 jbe .L743
4339 movq 40(%rsi), %rax
4340 movq %rsi, 32(%rdx)
4341 movq %rax, 40(%rdx)
4342 movq %rdx, 32(%rax)
4343 movq %rdx, 40(%rsi)
4344 jmp .L735
4345 .p2align 4,,10
4346 .p2align 3
4347 .L749:
4348 addl $1, %r9d
4349 cmpl $9999, %r9d
4350 jle .L890
4351 movq 48(%rsp), %r11
4352 .L753:
4353 cmpq $1023, %r14
4354 jbe .L756
4355 movl 8(%rsp), %eax
4356 addl $2147483647, %eax
4357 addl %eax, %eax
4358 leaq 112(%r12,%rax,8), %rax
4359 movq (%rax), %rdx
4360 leaq -16(%rax), %rcx
4361 cmpq %rcx, %rdx
4362 je .L756
4363 cmpq %r14, 8(%rdx)
4364 jnb .L922
4365 .L756:
4366 movl 8(%rsp), %eax
4367 leal 1(%rax), %ecx
4368 addl %eax, %eax
4369 leaq 96(%r12,%rax,8), %rdx
4370 movl $1, %eax
4371 movl %ecx, %edi
4372 sall %cl, %eax
4373 shrl $5, %edi
4374 movl %edi, %r9d
4375 movl 2144(%r12,%r9,4), %esi
4376 .L772:
4377 cmpl %esi, %eax
4378 ja .L768
4379 testl %eax, %eax
4380 jne .L769
4381 jmp .L768
4382 .p2align 4,,10
4383 .p2align 3
4384 .L770:
4385 addq $16, %rdx
4386 addl %eax, %eax
4387 je .L923
4388 .L769:
4389 testl %esi, %eax
4390 je .L770
4391 movq 24(%rdx), %r8
4392 cmpq %r8, %rdx
4393 jne .L771
4394 movl %eax, %ecx
4395 addq $16, %rdx
4396 addl %eax, %eax
4397 notl %ecx
4398 andl %ecx, %esi
4399 movl %esi, 2144(%r12,%r9,4)
4400 jmp .L772
4401 .p2align 4,,10
4402 .p2align 3
4403 .L795:
4404 movq $0, 40(%rsp)
4405 jmp .L716
4406 .p2align 4,,10
4407 .p2align 3
4408 .L724:
4409 leaq .LC66(%rip), %rdi
4410 call malloc_printerr
4411 .p2align 4,,10
4412 .p2align 3
4413 .L920:
4414 addl $48, %ecx
4415 jmp .L737
4416 .p2align 4,,10
4417 .p2align 3
4418 .L910:
4419 cmpq $4, %r15
4420 cmova %r8d, %r11d
4421 movl %r11d, 8(%rsp)
4422 jmp .L715
4423 .p2align 4,,10
4424 .p2align 3
4425 .L915:
4426 movq 104(%r12), %r11
4427 cmpq %rdx, %r11
4428 movq %r11, 136(%rsp)
4429 jne .L727
4430 cmpq %rax, 72(%rsp)
4431 jnb .L727
4432 subq %r14, %rsi
4433 addq %r14, %rdx
4434 movq 56(%rsp), %r13
4435 cmpq $1023, %rsi
4436 movq %rdx, 112(%r12)
4437 movq %rdx, 120(%r12)
4438 movq %rdx, 104(%r12)
4439 movq %rbx, 16(%rdx)
4440 movq %rbx, 24(%rdx)
4441 jbe .L728
4442 movq $0, 32(%rdx)
4443 movq $0, 40(%rdx)
4444 .L728:
4445 leaq main_arena(%rip), %rax
4446 xorl %ecx, %ecx
4447 movq 136(%rsp), %rbx
4448 cmpq %rax, %r12
4449 movq %r14, %rax
4450 setne %cl
4451 orq $1, %rax
4452 salq $2, %rcx
4453 orq %rcx, %rax
4454 leaq 16(%rbx), %rcx
4455 movq %rax, 8(%rbx)
4456 movq %rsi, %rax
4457 orq $1, %rax
4458 movq %rax, 8(%rdx)
4459 movl perturb_byte(%rip), %eax
4460 movq %rsi, (%rdi)
4461 testl %eax, %eax
4462 je .L675
4463 .L891:
4464 xorb $-1, %al
4465 movq %rcx, %rdi
4466 movq %r13, %rdx
4467 movl %eax, %esi
4468 call memset
4469 movq %rax, %rcx
4470 jmp .L675
4471 .p2align 4,,10
4472 .p2align 3
4473 .L925:
4474 movl %edi, %r9d
4475 movl 2144(%r12,%r9,4), %esi
4476 testl %esi, %esi
4477 jne .L924
4478 .L768:
4479 addl $1, %edi
4480 cmpl $4, %edi
4481 jne .L925
4482 .L767:
4483 movq 96(%r12), %rcx
4484 movq 8(%rcx), %rax
4485 andq $-8, %rax
4486 cmpq %rax, 2184(%r12)
4487 jb .L926
4488 leaq 32(%r14), %rdx
4489 cmpq %rax, %rdx
4490 jbe .L927
4491 movq %r11, 24(%rsp)
4492 movq %r10, 16(%rsp)
4493 movl 8(%r12), %eax
4494 testl %eax, %eax
4495 je .L783
4496 movq %r12, %rdi
4497 call malloc_consolidate
4498 movl 88(%rsp), %eax
4499 cmpq $1023, %r14
4500 movq 16(%rsp), %r10
4501 movq 24(%rsp), %r11
4502 movl %eax, 8(%rsp)
4503 jbe .L784
4504 cmpq $48, 80(%rsp)
4505 movl 92(%rsp), %eax
4506 movl %eax, 8(%rsp)
4507 jbe .L784
4508 cmpq $20, 96(%rsp)
4509 movl 120(%rsp), %eax
4510 movl %eax, 8(%rsp)
4511 jbe .L784
4512 cmpq $10, 104(%rsp)
4513 movl 132(%rsp), %eax
4514 movl %eax, 8(%rsp)
4515 jbe .L784
4516 cmpq $5, 112(%rsp)
4517 movl 124(%rsp), %eax
4518 cmovb 128(%rsp), %eax
4519 movl %eax, 8(%rsp)
4520 .L784:
4521 movq %fs:tcache@tpoff, %r15
4522 jmp .L717
4523 .p2align 4,,10
4524 .p2align 3
4525 .L695:
4526 leaq .LC61(%rip), %rdi
4527 call malloc_printerr
4528 .p2align 4,,10
4529 .p2align 3
4530 .L913:
4531 leaq .LC65(%rip), %rdi
4532 call malloc_printerr
4533 .p2align 4,,10
4534 .p2align 3
4535 .L902:
4536 leaq .LC58(%rip), %rdi
4537 call malloc_printerr
4538 .p2align 4,,10
4539 .p2align 3
4540 .L907:
4541 movq 24(%rdx), %rsi
4542 orq $1, 8(%rdx,%r14)
4543 cmpq %r10, %r12
4544 je .L713
4545 orq $4, 8(%rdx)
4546 .L713:
4547 leaq 16(%rdx), %r15
4548 movq %rsi, 8(%rax)
4549 addl $1, %r11d
4550 movq %r8, 16(%rsi)
4551 movq %r15, %rsi
4552 movq %r9, 24(%rdx)
4553 shrq $12, %rsi
4554 xorq 128(%rbp), %rsi
4555 movq %rsi, 16(%rdx)
4556 movq %r15, 128(%rbp)
4557 movw %r11w, (%rbx)
4558 jmp .L711
4559 .p2align 4,,10
4560 .p2align 3
4561 .L914:
4562 leaq .LC67(%rip), %rdi
4563 call malloc_printerr
4564 .p2align 4,,10
4565 .p2align 3
4566 .L919:
4567 movq 64(%rsp), %rbx
4568 movq %rcx, %rsi
4569 movq %r15, 24(%rdx)
4570 shrq $12, %rsi
4571 addl $1, %eax
4572 movl $1, %r13d
4573 xorq 128(%rbx), %rsi
4574 movq %rsi, 16(%rdx)
4575 movq %rcx, 128(%rbx)
4576 movq %r8, %rdx
4577 movq 16(%rsp), %rbx
4578 movw %ax, (%rbx)
4579 jmp .L718
4580 .p2align 4,,10
4581 .p2align 3
4582 .L903:
4583 leaq .LC60(%rip), %rdi
4584 call malloc_printerr
4585 .p2align 4,,10
4586 .p2align 3
4587 .L741:
4588 movq %rdx, 40(%rdx)
4589 movq %rdx, 32(%rdx)
4590 movq %rdi, %r8
4591 jmp .L735
4592 .p2align 4,,10
4593 .p2align 3
4594 .L906:
4595 leaq .LC62(%rip), %rdi
4596 call malloc_printerr
4597 .p2align 4,,10
4598 .p2align 3
4599 .L738:
4600 movq %rax, %rcx
4601 shrq $12, %rcx
4602 cmpq $10, %rcx
4603 ja .L739
4604 addl $110, %ecx
4605 jmp .L737
4606 .p2align 4,,10
4607 .p2align 3
4608 .L743:
4609 movq 8(%rsi), %rdi
4610 testb $4, %dil
4611 jne .L928
4612 movq 48(%rsp), %r11
4613 jmp .L744
4614 .p2align 4,,10
4615 .p2align 3
4616 .L745:
4617 movq 32(%rsi), %rsi
4618 movq 8(%rsi), %rdi
4619 testb $4, %dil
4620 jne .L929
4621 .L744:
4622 cmpq %rdi, %rax
4623 jb .L745
4624 movq %r11, 48(%rsp)
4625 je .L930
4626 movq 40(%rsi), %rax
4627 movq %rsi, 32(%rdx)
4628 movq %rax, 40(%rdx)
4629 movq 40(%rsi), %rax
4630 cmpq %rsi, 32(%rax)
4631 jne .L931
4632 movq %rdx, 40(%rsi)
4633 movq 40(%rdx), %rax
4634 movq %rsi, %rdi
4635 movq %rdx, 32(%rax)
4636 .L747:
4637 movq 24(%rdi), %r8
4638 cmpq %rdi, 16(%r8)
4639 je .L735
4640 leaq .LC71(%rip), %rdi
4641 call malloc_printerr
4642 .p2align 4,,10
4643 .p2align 3
4644 .L918:
4645 leaq 16(%rdx), %rbx
4646 movq %rbx, %rax
4647 shrq $12, %rax
4648 jmp .L698
4649 .p2align 4,,10
4650 .p2align 3
4651 .L912:
4652 testl %r13d, %r13d
4653 movq 48(%rsp), %r11
4654 je .L753
4655 jmp .L897
4656 .p2align 4,,10
4657 .p2align 3
4658 .L924:
4659 movl %edi, %eax
4660 sall $6, %eax
4661 subl $2, %eax
4662 leaq 96(%r12,%rax,8), %rdx
4663 movl $1, %eax
4664 jmp .L769
4665 .L739:
4666 movq %rax, %rcx
4667 shrq $15, %rcx
4668 cmpq $4, %rcx
4669 ja .L740
4670 addl $119, %ecx
4671 jmp .L737
4672 .L930:
4673 movq 16(%rsi), %rdi
4674 jmp .L747
4675 .L740:
4676 movq %rax, %rcx
4677 movl $2, %ebx
4678 shrq $18, %rcx
4679 cmpq $2, %rcx
4680 cmova %rbx, %rcx
4681 addl $124, %ecx
4682 jmp .L737
4683 .L771:
4684 movq 8(%r8), %r15
4685 movq 56(%rsp), %r13
4686 andq $-8, %r15
4687 cmpq %r15, %r14
4688 ja .L932
4689 movq %r15, %rbx
4690 movq %r8, %rdi
4691 movq %r8, 8(%rsp)
4692 subq %r14, %rbx
4693 call unlink_chunk.isra.2
4694 cmpq $31, %rbx
4695 movq 8(%rsp), %r8
4696 ja .L774
4697 leaq main_arena(%rip), %rax
4698 orq $1, 8(%r8,%r15)
4699 cmpq %rax, %r12
4700 je .L775
4701 orq $4, 8(%r8)
4702 .L775:
4703 movl perturb_byte(%rip), %eax
4704 leaq 16(%r8), %rcx
4705 testl %eax, %eax
4706 je .L675
4707 jmp .L891
4708 .L774:
4709 movq 112(%r12), %rdx
4710 leaq (%r8,%r14), %rax
4711 cmpq %rbp, 24(%rdx)
4712 jne .L933
4713 cmpq $1023, %r14
4714 movq %rbp, 24(%rax)
4715 movq %rdx, 16(%rax)
4716 movq %rax, 112(%r12)
4717 movq %rax, 24(%rdx)
4718 ja .L777
4719 movq %rax, 104(%r12)
4720 .L777:
4721 cmpq $1023, %rbx
4722 jbe .L778
4723 movq $0, 32(%rax)
4724 movq $0, 40(%rax)
4725 .L778:
4726 leaq main_arena(%rip), %rdx
4727 xorl %ecx, %ecx
4728 cmpq %rdx, %r12
4729 movq %r14, %rdx
4730 setne %cl
4731 orq $1, %rdx
4732 salq $2, %rcx
4733 orq %rcx, %rdx
4734 movq %rdx, 8(%r8)
4735 movq %rbx, %rdx
4736 orq $1, %rdx
4737 movq %rdx, 8(%rax)
4738 movq %rbx, (%r8,%r15)
4739 jmp .L775
4740 .L931:
4741 leaq .LC70(%rip), %rdi
4742 call malloc_printerr
4743 .L926:
4744 leaq .LC77(%rip), %rdi
4745 call malloc_printerr
4746 .L783:
4747 movq %r12, %rsi
4748 movq %r14, %rdi
4749 movq 56(%rsp), %r13
4750 call sysmalloc
4751 testq %rax, %rax
4752 movq %rax, %rcx
4753 je .L785
4754 movl perturb_byte(%rip), %eax
4755 testl %eax, %eax
4756 je .L675
4757 jmp .L891
4758 .L927:
4759 leaq main_arena(%rip), %rdx
4760 subq %r14, %rax
4761 xorl %esi, %esi
4762 leaq (%rcx,%r14), %rdi
4763 movq 56(%rsp), %r13
4764 cmpq %rdx, %r12
4765 movq %r14, %rdx
4766 setne %sil
4767 orq $1, %rdx
4768 orq $1, %rax
4769 salq $2, %rsi
4770 movq %rdi, 96(%r12)
4771 addq $16, %rcx
4772 orq %rsi, %rdx
4773 movq %rdx, -8(%rcx)
4774 movq %rax, 8(%rdi)
4775 movl perturb_byte(%rip), %eax
4776 testl %eax, %eax
4777 je .L675
4778 jmp .L891
4779 .L923:
4780 leaq __PRETTY_FUNCTION__.13182(%rip), %rcx
4781 leaq .LC6(%rip), %rsi
4782 leaq .LC74(%rip), %rdi
4783 movl $4240, %edx
4784 call __malloc_assert
4785 .L922:
4786 movq 56(%rsp), %r13
4787 movq 40(%rdx), %rbx
4788 jmp .L757
4789 .L758:
4790 movq 40(%rbx), %rbx
4791 .L757:
4792 movq 8(%rbx), %rdx
4793 movq %rdx, %r15
4794 andq $-8, %r15
4795 cmpq %r15, %r14
4796 ja .L758
4797 cmpq %rbx, 8(%rax)
4798 je .L759
4799 movq 16(%rbx), %rax
4800 cmpq 8(%rax), %rdx
4801 cmove %rax, %rbx
4802 .L759:
4803 movq %r15, %rsi
4804 movq %rbx, %rdi
4805 subq %r14, %rsi
4806 movq %rsi, 8(%rsp)
4807 call unlink_chunk.isra.2
4808 movq 8(%rsp), %rsi
4809 cmpq $31, %rsi
4810 ja .L760
4811 leaq main_arena(%rip), %rax
4812 orq $1, 8(%rbx,%r15)
4813 cmpq %rax, %r12
4814 je .L761
4815 orq $4, 8(%rbx)
4816 .L761:
4817 movl perturb_byte(%rip), %eax
4818 leaq 16(%rbx), %rcx
4819 testl %eax, %eax
4820 je .L675
4821 jmp .L891
4822 .L929:
4823 leaq __PRETTY_FUNCTION__.13182(%rip), %rcx
4824 leaq .LC6(%rip), %rsi
4825 leaq .LC69(%rip), %rdi
4826 movl $4079, %edx
4827 call __malloc_assert
4828 .L917:
4829 leaq .LC72(%rip), %rdi
4830 call malloc_printerr
4831 .L933:
4832 leaq .LC76(%rip), %rdi
4833 call malloc_printerr
4834 .L921:
4835 leaq __PRETTY_FUNCTION__.13182(%rip), %rcx
4836 leaq .LC6(%rip), %rsi
4837 leaq .LC68(%rip), %rdi
4838 movl $4062, %edx
4839 call __malloc_assert
4840 .L932:
4841 leaq __PRETTY_FUNCTION__.13182(%rip), %rcx
4842 leaq .LC6(%rip), %rsi
4843 leaq .LC75(%rip), %rdi
4844 movl $4259, %edx
4845 call __malloc_assert
4846 .L760:
4847 movq 112(%r12), %rdx
4848 leaq (%rbx,%r14), %rax
4849 cmpq %rbp, 24(%rdx)
4850 jne .L934
4851 cmpq $1023, %rsi
4852 movq %rbp, 24(%rax)
4853 movq %rdx, 16(%rax)
4854 movq %rax, 112(%r12)
4855 movq %rax, 24(%rdx)
4856 jbe .L763
4857 movq $0, 32(%rax)
4858 movq $0, 40(%rax)
4859 .L763:
4860 leaq main_arena(%rip), %rdx
4861 xorl %ecx, %ecx
4862 cmpq %rdx, %r12
4863 movq %r14, %rdx
4864 setne %cl
4865 orq $1, %rdx
4866 salq $2, %rcx
4867 orq %rcx, %rdx
4868 movq %rdx, 8(%rbx)
4869 movq %rsi, %rdx
4870 orq $1, %rdx
4871 movq %rdx, 8(%rax)
4872 movq %rsi, (%rbx,%r15)
4873 jmp .L761
4874 .L934:
4875 leaq .LC73(%rip), %rdi
4876 call malloc_printerr
4877 .L928:
4878 leaq __PRETTY_FUNCTION__.13182(%rip), %rcx
4879 leaq .LC6(%rip), %rsi
4880 leaq .LC69(%rip), %rdi
4881 movl $4075, %edx
4882 call __malloc_assert
4883 .size _int_malloc, .-_int_malloc
4884 .p2align 4,,15
4885 .type malloc_check, @function
4886 malloc_check:
4887 pushq %rbp
4888 pushq %rbx
4889 movq %rdi, %rbp
4890 subq $8, %rsp
4891 addq $1, %rbp
4892 jc .L937
4893 movq %rdi, %rbx
4894 #APP
4895 # 248 "hooks.c" 1
4896 movl %fs:24,%eax
4897 # 0 "" 2
4898 #NO_APP
4899 testl %eax, %eax
4900 jne .L940
4901 movl $1, %edx
4902 #APP
4903 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
4904 cmpxchgl %edx, main_arena(%rip)
4905 # 0 "" 2
4906 #NO_APP
4907 .L941:
4908 call top_check
4909 leaq main_arena(%rip), %rdi
4910 movq %rbp, %rsi
4911 call _int_malloc
4912 movq %rax, %r8
4913 #APP
4914 # 251 "hooks.c" 1
4915 movl %fs:24,%eax
4916 # 0 "" 2
4917 #NO_APP
4918 testl %eax, %eax
4919 jne .L942
4920 subl $1, main_arena(%rip)
4921 .L943:
4922 addq $8, %rsp
4923 movq %rbx, %rsi
4924 movq %r8, %rdi
4925 popq %rbx
4926 popq %rbp
4927 jmp mem2mem_check
4928 .p2align 4,,10
4929 .p2align 3
4930 .L940:
4931 xorl %eax, %eax
4932 movl $1, %edx
4933 lock cmpxchgl %edx, main_arena(%rip)
4934 je .L941
4935 leaq main_arena(%rip), %rdi
4936 call __lll_lock_wait_private
4937 jmp .L941
4938 .p2align 4,,10
4939 .p2align 3
4940 .L942:
4941 xorl %eax, %eax
4942 #APP
4943 # 251 "hooks.c" 1
4944 xchgl %eax, main_arena(%rip)
4945 # 0 "" 2
4946 #NO_APP
4947 cmpl $1, %eax
4948 jle .L943
4949 xorl %r10d, %r10d
4950 movl $1, %edx
4951 movl $129, %esi
4952 leaq main_arena(%rip), %rdi
4953 movl $202, %eax
4954 #APP
4955 # 251 "hooks.c" 1
4956 syscall
4958 # 0 "" 2
4959 #NO_APP
4960 jmp .L943
4961 .L937:
4962 movq __libc_errno@gottpoff(%rip), %rax
4963 movl $12, %fs:(%rax)
4964 xorl %eax, %eax
4965 popq %rdx
4966 popq %rbx
4967 popq %rbp
4969 .size malloc_check, .-malloc_check
4970 .p2align 4,,15
4971 .type tcache_init.part.6, @function
4972 tcache_init.part.6:
4973 movq thread_arena@gottpoff(%rip), %rax
4974 pushq %rbx
4975 movq %fs:(%rax), %rbx
4976 testq %rbx, %rbx
4977 je .L948
4978 #APP
4979 # 3151 "malloc.c" 1
4980 movl %fs:24,%eax
4981 # 0 "" 2
4982 #NO_APP
4983 testl %eax, %eax
4984 jne .L949
4985 movl $1, %edx
4986 #APP
4987 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
4988 cmpxchgl %edx, (%rbx)
4989 # 0 "" 2
4990 #NO_APP
4991 .L950:
4992 movl $640, %esi
4993 movq %rbx, %rdi
4994 call _int_malloc
4995 testq %rax, %rax
4996 movq %rax, %r8
4997 je .L955
4998 .L956:
4999 #APP
5000 # 3161 "malloc.c" 1
5001 movl %fs:24,%eax
5002 # 0 "" 2
5003 #NO_APP
5004 testl %eax, %eax
5005 jne .L953
5006 subl $1, (%rbx)
5007 .L952:
5008 testq %r8, %r8
5009 je .L947
5010 leaq 8(%r8), %rdi
5011 movq %r8, %fs:tcache@tpoff
5012 xorl %eax, %eax
5013 movq $0, (%r8)
5014 andq $-8, %rdi
5015 movq $0, 632(%r8)
5016 subq %rdi, %r8
5017 leal 640(%r8), %ecx
5018 shrl $3, %ecx
5019 rep stosq
5020 .L947:
5021 popq %rbx
5023 .p2align 4,,10
5024 .p2align 3
5025 .L948:
5026 call get_free_list
5027 testq %rax, %rax
5028 movq %rax, %rbx
5029 jne .L950
5030 xorl %esi, %esi
5031 movl $640, %edi
5032 call arena_get2.part.4
5033 movl $640, %esi
5034 movq %rax, %rdi
5035 movq %rax, %rbx
5036 call _int_malloc
5037 testq %rax, %rax
5038 movq %rax, %r8
5039 jne .L951
5040 testq %rbx, %rbx
5041 je .L951
5042 .p2align 4,,10
5043 .p2align 3
5044 .L955:
5045 movq %rbx, %rdi
5046 movl $640, %esi
5047 call arena_get_retry
5048 movl $640, %esi
5049 movq %rax, %rdi
5050 movq %rax, %rbx
5051 call _int_malloc
5052 movq %rax, %r8
5053 .L951:
5054 testq %rbx, %rbx
5055 je .L952
5056 jmp .L956
5057 .p2align 4,,10
5058 .p2align 3
5059 .L949:
5060 xorl %eax, %eax
5061 movl $1, %edx
5062 lock cmpxchgl %edx, (%rbx)
5063 je .L950
5064 movq %rbx, %rdi
5065 call __lll_lock_wait_private
5066 jmp .L950
5067 .p2align 4,,10
5068 .p2align 3
5069 .L953:
5070 xorl %eax, %eax
5071 #APP
5072 # 3161 "malloc.c" 1
5073 xchgl %eax, (%rbx)
5074 # 0 "" 2
5075 #NO_APP
5076 cmpl $1, %eax
5077 jle .L952
5078 xorl %r10d, %r10d
5079 movl $1, %edx
5080 movl $129, %esi
5081 movq %rbx, %rdi
5082 movl $202, %eax
5083 #APP
5084 # 3161 "malloc.c" 1
5085 syscall
5087 # 0 "" 2
5088 #NO_APP
5089 jmp .L952
5090 .size tcache_init.part.6, .-tcache_init.part.6
5091 .section .rodata.str1.8
5092 .align 8
5093 .LC78:
5094 .string "newsize >= nb && (((unsigned long) (chunk2rawmem (p))) % alignment) == 0"
5095 .text
5096 .p2align 4,,15
5097 .type _int_memalign, @function
5098 _int_memalign:
5099 pushq %r15
5100 pushq %r14
5101 pushq %r13
5102 pushq %r12
5103 pushq %rbp
5104 pushq %rbx
5105 subq $8, %rsp
5106 testq %rdx, %rdx
5107 js .L994
5108 addq $23, %rdx
5109 movl $32, %eax
5110 movq %rsi, %rbp
5111 movq %rdx, %r12
5112 movq %rdi, %r13
5113 andq $-16, %r12
5114 cmpq $31, %rdx
5115 cmovbe %rax, %r12
5116 leaq 32(%r12,%rsi), %rsi
5117 call _int_malloc
5118 testq %rax, %rax
5119 movq %rax, %rbx
5120 je .L973
5121 xorl %edx, %edx
5122 leaq -16(%rax), %rcx
5123 divq %rbp
5124 testq %rdx, %rdx
5125 je .L977
5126 leaq -1(%rbx,%rbp), %rax
5127 movq %rbp, %rdx
5128 negq %rdx
5129 andq %rdx, %rax
5130 subq $16, %rax
5131 movq %rax, %rdx
5132 leaq (%rax,%rbp), %r14
5133 subq %rcx, %rdx
5134 cmpq $32, %rdx
5135 cmovnb %rax, %r14
5136 movq -8(%rbx), %rax
5137 movq %r14, %rsi
5138 subq %rcx, %rsi
5139 movq %rax, %r15
5140 andq $-8, %r15
5141 subq %rsi, %r15
5142 andl $2, %eax
5143 jne .L995
5144 leaq main_arena(%rip), %rdx
5145 movq %r13, %rdi
5146 cmpq %rdx, %r13
5147 movl $4, %edx
5148 cmovne %rdx, %rax
5149 movq %r15, %rdx
5150 orq $1, %rdx
5151 orq %rax, %rdx
5152 movq %rdx, 8(%r14)
5153 orq $1, 8(%r14,%r15)
5154 movq -8(%rbx), %rdx
5155 andl $7, %edx
5156 orq %rsi, %rdx
5157 movq %rcx, %rsi
5158 orq %rdx, %rax
5159 movl $1, %edx
5160 movq %rax, -8(%rbx)
5161 call _int_free
5162 cmpq %r12, %r15
5163 jb .L981
5164 leaq 16(%r14), %rbx
5165 xorl %edx, %edx
5166 movq %rbx, %rax
5167 divq %rbp
5168 testq %rdx, %rdx
5169 jne .L981
5170 movq %r14, %rcx
5171 .L977:
5172 movq 8(%rcx), %rax
5173 testb $2, %al
5174 jne .L973
5175 leaq 32(%r12), %rdx
5176 andq $-8, %rax
5177 cmpq %rax, %rdx
5178 jnb .L973
5179 leaq main_arena(%rip), %rdx
5180 subq %r12, %rax
5181 leaq (%rcx,%r12), %rsi
5182 movq %r13, %rdi
5183 cmpq %rdx, %r13
5184 setne %dl
5185 orq $1, %rax
5186 movzbl %dl, %edx
5187 salq $2, %rdx
5188 orq %rdx, %rax
5189 movl $1, %edx
5190 movq %rax, 8(%rsi)
5191 movq 8(%rcx), %rax
5192 andl $7, %eax
5193 orq %rax, %r12
5194 movq %r12, 8(%rcx)
5195 call _int_free
5196 .L973:
5197 addq $8, %rsp
5198 movq %rbx, %rax
5199 popq %rbx
5200 popq %rbp
5201 popq %r12
5202 popq %r13
5203 popq %r14
5204 popq %r15
5206 .p2align 4,,10
5207 .p2align 3
5208 .L995:
5209 addq -16(%rbx), %rsi
5210 orq $2, %r15
5211 leaq 16(%r14), %rbx
5212 movq %r15, 8(%r14)
5213 movq %rsi, (%r14)
5214 jmp .L973
5215 .p2align 4,,10
5216 .p2align 3
5217 .L994:
5218 movq __libc_errno@gottpoff(%rip), %rax
5219 xorl %ebx, %ebx
5220 movl $12, %fs:(%rax)
5221 jmp .L973
5222 .L981:
5223 leaq __PRETTY_FUNCTION__.13380(%rip), %rcx
5224 leaq .LC6(%rip), %rsi
5225 leaq .LC78(%rip), %rdi
5226 movl $4967, %edx
5227 call __malloc_assert
5228 .size _int_memalign, .-_int_memalign
5229 .p2align 4,,15
5230 .type memalign_check, @function
5231 memalign_check:
5232 pushq %rbp
5233 pushq %rbx
5234 movq %rsi, %rbp
5235 subq $8, %rsp
5236 cmpq $16, %rdi
5237 jbe .L1013
5238 cmpq $31, %rdi
5239 ja .L1014
5240 cmpq $-65, %rsi
5241 ja .L1008
5242 movl $32, %ebx
5243 .L1002:
5244 #APP
5245 # 416 "hooks.c" 1
5246 movl %fs:24,%eax
5247 # 0 "" 2
5248 #NO_APP
5249 testl %eax, %eax
5250 jne .L1004
5251 movl $1, %edx
5252 #APP
5253 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
5254 cmpxchgl %edx, main_arena(%rip)
5255 # 0 "" 2
5256 #NO_APP
5257 .L1005:
5258 call top_check
5259 leaq 1(%rbp), %rdx
5260 leaq main_arena(%rip), %rdi
5261 movq %rbx, %rsi
5262 call _int_memalign
5263 movq %rax, %r8
5264 #APP
5265 # 419 "hooks.c" 1
5266 movl %fs:24,%eax
5267 # 0 "" 2
5268 #NO_APP
5269 testl %eax, %eax
5270 jne .L1006
5271 subl $1, main_arena(%rip)
5272 .L1007:
5273 addq $8, %rsp
5274 movq %rbp, %rsi
5275 movq %r8, %rdi
5276 popq %rbx
5277 popq %rbp
5278 jmp mem2mem_check
5279 .p2align 4,,10
5280 .p2align 3
5281 .L1014:
5282 movabsq $-9223372036854775808, %rdx
5283 cmpq %rdx, %rdi
5284 ja .L1015
5285 movq $-33, %rdx
5286 subq %rdi, %rdx
5287 cmpq %rsi, %rdx
5288 jb .L1008
5289 leaq -1(%rdi), %rdx
5290 testq %rdi, %rdx
5291 je .L1009
5292 cmpq $32, %rdi
5293 movl $32, %ebx
5294 je .L1002
5295 .p2align 4,,10
5296 .p2align 3
5297 .L1003:
5298 addq %rbx, %rbx
5299 cmpq %rbx, %rdi
5300 ja .L1003
5301 jmp .L1002
5302 .p2align 4,,10
5303 .p2align 3
5304 .L1013:
5305 addq $8, %rsp
5306 movq %rbp, %rdi
5307 xorl %esi, %esi
5308 popq %rbx
5309 popq %rbp
5310 jmp malloc_check
5311 .p2align 4,,10
5312 .p2align 3
5313 .L1004:
5314 xorl %eax, %eax
5315 movl $1, %edx
5316 lock cmpxchgl %edx, main_arena(%rip)
5317 je .L1005
5318 leaq main_arena(%rip), %rdi
5319 call __lll_lock_wait_private
5320 jmp .L1005
5321 .p2align 4,,10
5322 .p2align 3
5323 .L1006:
5324 xorl %eax, %eax
5325 #APP
5326 # 419 "hooks.c" 1
5327 xchgl %eax, main_arena(%rip)
5328 # 0 "" 2
5329 #NO_APP
5330 cmpl $1, %eax
5331 jle .L1007
5332 xorl %r10d, %r10d
5333 movl $1, %edx
5334 movl $129, %esi
5335 leaq main_arena(%rip), %rdi
5336 movl $202, %eax
5337 #APP
5338 # 419 "hooks.c" 1
5339 syscall
5341 # 0 "" 2
5342 #NO_APP
5343 jmp .L1007
5344 .p2align 4,,10
5345 .p2align 3
5346 .L1008:
5347 movq __libc_errno@gottpoff(%rip), %rax
5348 movl $12, %fs:(%rax)
5349 .L996:
5350 addq $8, %rsp
5351 xorl %eax, %eax
5352 popq %rbx
5353 popq %rbp
5355 .p2align 4,,10
5356 .p2align 3
5357 .L1015:
5358 movq __libc_errno@gottpoff(%rip), %rax
5359 movl $22, %fs:(%rax)
5360 jmp .L996
5361 .L1009:
5362 movq %rdi, %rbx
5363 jmp .L1002
5364 .size memalign_check, .-memalign_check
5365 .p2align 4,,15
5366 .type free_check, @function
5367 free_check:
5368 testq %rdi, %rdi
5369 je .L1030
5370 pushq %r12
5371 pushq %rbp
5372 movq __libc_errno@gottpoff(%rip), %rbp
5373 pushq %rbx
5374 movq %rdi, %rbx
5375 movl %fs:0(%rbp), %r12d
5376 #APP
5377 # 271 "hooks.c" 1
5378 movl %fs:24,%eax
5379 # 0 "" 2
5380 #NO_APP
5381 testl %eax, %eax
5382 jne .L1018
5383 movl $1, %edx
5384 #APP
5385 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
5386 cmpxchgl %edx, main_arena(%rip)
5387 # 0 "" 2
5388 #NO_APP
5389 .L1019:
5390 xorl %esi, %esi
5391 movq %rbx, %rdi
5392 call mem2chunk_check
5393 testq %rax, %rax
5394 movq %rax, %r8
5395 je .L1033
5396 testb $2, 8(%rax)
5397 je .L1021
5398 #APP
5399 # 277 "hooks.c" 1
5400 movl %fs:24,%eax
5401 # 0 "" 2
5402 #NO_APP
5403 testl %eax, %eax
5404 jne .L1022
5405 subl $1, main_arena(%rip)
5406 .L1023:
5407 movq %r8, %rdi
5408 call munmap_chunk
5409 .L1024:
5410 movl %r12d, %fs:0(%rbp)
5411 popq %rbx
5412 popq %rbp
5413 popq %r12
5415 .p2align 4,,10
5416 .p2align 3
5417 .L1021:
5418 leaq main_arena(%rip), %rdi
5419 movl $1, %edx
5420 movq %rax, %rsi
5421 call _int_free
5422 #APP
5423 # 286 "hooks.c" 1
5424 movl %fs:24,%eax
5425 # 0 "" 2
5426 #NO_APP
5427 testl %eax, %eax
5428 jne .L1025
5429 movl %r12d, %fs:0(%rbp)
5430 subl $1, main_arena(%rip)
5431 popq %rbx
5432 popq %rbp
5433 popq %r12
5435 .p2align 4,,10
5436 .p2align 3
5437 .L1030:
5438 rep ret
5439 .p2align 4,,10
5440 .p2align 3
5441 .L1018:
5442 xorl %eax, %eax
5443 movl $1, %edx
5444 lock cmpxchgl %edx, main_arena(%rip)
5445 je .L1019
5446 leaq main_arena(%rip), %rdi
5447 call __lll_lock_wait_private
5448 jmp .L1019
5449 .p2align 4,,10
5450 .p2align 3
5451 .L1022:
5452 xorl %eax, %eax
5453 #APP
5454 # 277 "hooks.c" 1
5455 xchgl %eax, main_arena(%rip)
5456 # 0 "" 2
5457 #NO_APP
5458 cmpl $1, %eax
5459 jle .L1023
5460 xorl %r10d, %r10d
5461 movl $1, %edx
5462 movl $129, %esi
5463 leaq main_arena(%rip), %rdi
5464 movl $202, %eax
5465 #APP
5466 # 277 "hooks.c" 1
5467 syscall
5469 # 0 "" 2
5470 #NO_APP
5471 jmp .L1023
5472 .p2align 4,,10
5473 .p2align 3
5474 .L1025:
5475 xorl %eax, %eax
5476 #APP
5477 # 286 "hooks.c" 1
5478 xchgl %eax, main_arena(%rip)
5479 # 0 "" 2
5480 #NO_APP
5481 cmpl $1, %eax
5482 jle .L1024
5483 xorl %r10d, %r10d
5484 movl $1, %edx
5485 movl $129, %esi
5486 leaq main_arena(%rip), %rdi
5487 movl $202, %eax
5488 #APP
5489 # 286 "hooks.c" 1
5490 syscall
5492 # 0 "" 2
5493 #NO_APP
5494 jmp .L1024
5495 .L1033:
5496 leaq .LC31(%rip), %rdi
5497 call malloc_printerr
5498 .size free_check, .-free_check
5499 .section .rodata.str1.1
5500 .LC79:
5501 .string "realloc(): invalid old size"
5502 .LC80:
5503 .string "!chunk_is_mmapped (oldp)"
5504 .LC81:
5505 .string "realloc(): invalid next size"
5506 .section .rodata.str1.8
5507 .align 8
5508 .LC82:
5509 .string "(unsigned long) (newsize) >= (unsigned long) (nb)"
5510 .text
5511 .p2align 4,,15
5512 .type _int_realloc, @function
5513 _int_realloc:
5514 pushq %r14
5515 pushq %r13
5516 pushq %r12
5517 pushq %rbp
5518 pushq %rbx
5519 subq $16, %rsp
5520 movq 8(%rsi), %rax
5521 cmpq $16, %rax
5522 jbe .L1035
5523 movq %rdi, %rbp
5524 movq 2184(%rdi), %rdi
5525 cmpq %rdx, %rdi
5526 jbe .L1035
5527 movq %rax, %r12
5528 andl $2, %r12d
5529 jne .L1061
5530 leaq (%rsi,%rdx), %r13
5531 movq %rsi, %rbx
5532 movq 8(%r13), %r8
5533 movq %r8, %rsi
5534 andq $-8, %rsi
5535 cmpq %rsi, %rdi
5536 jbe .L1055
5537 cmpq $16, %r8
5538 jbe .L1055
5539 cmpq %rcx, %rdx
5540 jb .L1062
5541 .L1053:
5542 movq %rdx, %rdi
5543 andl $7, %eax
5544 subq %rcx, %rdi
5545 cmpq $31, %rdi
5546 ja .L1049
5547 leaq main_arena(%rip), %rcx
5548 cmpq %rcx, %rbp
5549 movl $4, %ecx
5550 cmovne %rcx, %r12
5551 orq %rax, %rdx
5552 orq %r12, %rdx
5553 movq %rdx, 8(%rbx)
5554 orq $1, 8(%r13)
5555 .L1051:
5556 leaq 16(%rbx), %r14
5557 .L1034:
5558 addq $16, %rsp
5559 movq %r14, %rax
5560 popq %rbx
5561 popq %rbp
5562 popq %r12
5563 popq %r13
5564 popq %r14
5566 .p2align 4,,10
5567 .p2align 3
5568 .L1062:
5569 cmpq %r13, 96(%rbp)
5570 je .L1063
5571 testb $1, 8(%r13,%rsi)
5572 je .L1064
5573 .L1042:
5574 leaq -15(%rcx), %rsi
5575 movq %rbp, %rdi
5576 movq %rdx, 8(%rsp)
5577 movq %rcx, (%rsp)
5578 call _int_malloc
5579 testq %rax, %rax
5580 movq %rax, %r14
5581 je .L1034
5582 leaq -16(%rax), %rax
5583 movq (%rsp), %rcx
5584 movq 8(%rsp), %rdx
5585 cmpq %rax, %r13
5586 je .L1065
5587 movq 8(%rbx), %rax
5588 leaq 16(%rbx), %rsi
5589 movq %r14, %rdi
5590 movq %rax, %rdx
5591 andq $-8, %rdx
5592 testb $2, %al
5593 sete %al
5594 movzbl %al, %eax
5595 leaq -16(%rdx,%rax,8), %rdx
5596 call memcpy@PLT
5597 movq %rbx, %rsi
5598 movq %rbp, %rdi
5599 movl $1, %edx
5600 call _int_free
5601 addq $16, %rsp
5602 movq %r14, %rax
5603 popq %rbx
5604 popq %rbp
5605 popq %r12
5606 popq %r13
5607 popq %r14
5609 .p2align 4,,10
5610 .p2align 3
5611 .L1049:
5612 leaq main_arena(%rip), %rdx
5613 leaq (%rbx,%rcx), %rsi
5614 cmpq %rdx, %rbp
5615 movl $4, %edx
5616 cmovne %rdx, %r12
5617 orq $1, %rdi
5618 orq %rcx, %rax
5619 movq %rdi, %rdx
5620 orq %r12, %rax
5621 movq %rbp, %rdi
5622 orq %r12, %rdx
5623 movq %rax, 8(%rbx)
5624 movq %rdx, 8(%rsi)
5625 orq $1, 8(%r13)
5626 movl $1, %edx
5627 call _int_free
5628 jmp .L1051
5629 .p2align 4,,10
5630 .p2align 3
5631 .L1064:
5632 leaq (%rdx,%rsi), %r14
5633 cmpq %r14, %rcx
5634 ja .L1042
5635 movq %r13, %rdi
5636 movq %rcx, (%rsp)
5637 leaq (%rbx,%r14), %r13
5638 call unlink_chunk.isra.2
5639 movq 8(%rbx), %rax
5640 movq %r14, %rdx
5641 movq (%rsp), %rcx
5642 jmp .L1053
5643 .p2align 4,,10
5644 .p2align 3
5645 .L1065:
5646 movq -8(%r14), %rax
5647 andq $-8, %rax
5648 addq %rax, %rdx
5649 cmpq %rdx, %rcx
5650 ja .L1066
5651 movq 8(%rbx), %rax
5652 leaq (%rbx,%rdx), %r13
5653 jmp .L1053
5654 .p2align 4,,10
5655 .p2align 3
5656 .L1035:
5657 leaq .LC79(%rip), %rdi
5658 call malloc_printerr
5659 .p2align 4,,10
5660 .p2align 3
5661 .L1055:
5662 leaq .LC81(%rip), %rdi
5663 call malloc_printerr
5664 .p2align 4,,10
5665 .p2align 3
5666 .L1063:
5667 leaq (%rdx,%rsi), %rdi
5668 leaq 32(%rcx), %rsi
5669 cmpq %rdi, %rsi
5670 ja .L1042
5671 andl $7, %eax
5672 leaq 16(%rbx), %r14
5673 movq %rax, %rsi
5674 leaq main_arena(%rip), %rax
5675 cmpq %rax, %rbp
5676 movl $4, %eax
5677 cmovne %rax, %r12
5678 orq %rcx, %rsi
5679 subq %rcx, %rdi
5680 orq %r12, %rsi
5681 leaq (%rbx,%rcx), %rax
5682 movq %rsi, 8(%rbx)
5683 movq %rdi, %rsi
5684 orq $1, %rsi
5685 movq %rax, 96(%rbp)
5686 movq %rsi, 8(%rax)
5687 jmp .L1034
5688 .L1061:
5689 leaq __PRETTY_FUNCTION__.13362(%rip), %rcx
5690 leaq .LC6(%rip), %rsi
5691 leaq .LC80(%rip), %rdi
5692 movl $4793, %edx
5693 call __malloc_assert
5694 .L1066:
5695 leaq __PRETTY_FUNCTION__.13362(%rip), %rcx
5696 leaq .LC6(%rip), %rsi
5697 leaq .LC82(%rip), %rdi
5698 movl $4866, %edx
5699 call __malloc_assert
5700 .size _int_realloc, .-_int_realloc
5701 .section .rodata.str1.1
5702 .LC83:
5703 .string "realloc(): invalid pointer"
5704 .text
5705 .p2align 4,,15
5706 .type realloc_check, @function
5707 realloc_check:
5708 pushq %r15
5709 pushq %r14
5710 pushq %r13
5711 pushq %r12
5712 movq %rsi, %r13
5713 pushq %rbp
5714 pushq %rbx
5715 subq $24, %rsp
5716 addq $1, %r13
5717 jc .L1069
5718 testq %rdi, %rdi
5719 movq %rdi, %rbp
5720 movq %rsi, %rbx
5721 je .L1099
5722 testq %rsi, %rsi
5723 je .L1100
5724 #APP
5725 # 319 "hooks.c" 1
5726 movl %fs:24,%eax
5727 # 0 "" 2
5728 #NO_APP
5729 testl %eax, %eax
5730 jne .L1074
5731 movl $1, %edx
5732 #APP
5733 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
5734 cmpxchgl %edx, main_arena(%rip)
5735 # 0 "" 2
5736 #NO_APP
5737 .L1075:
5738 leaq 8(%rsp), %rsi
5739 movq %rbp, %rdi
5740 call mem2chunk_check
5741 movq %rax, %r12
5742 #APP
5743 # 321 "hooks.c" 1
5744 movl %fs:24,%eax
5745 # 0 "" 2
5746 #NO_APP
5747 testl %eax, %eax
5748 jne .L1076
5749 subl $1, main_arena(%rip)
5750 .L1077:
5751 testq %r12, %r12
5752 je .L1101
5753 testq %r13, %r13
5754 js .L1087
5755 leaq 23(%r13), %rax
5756 movl $32, %ecx
5757 movq 8(%r12), %r15
5758 movq %rax, %rsi
5759 andq $-16, %rsi
5760 cmpq $31, %rax
5761 cmova %rsi, %rcx
5762 movq %rcx, %r14
5763 #APP
5764 # 329 "hooks.c" 1
5765 movl %fs:24,%eax
5766 # 0 "" 2
5767 #NO_APP
5768 testl %eax, %eax
5769 jne .L1082
5770 movl $1, %ecx
5771 #APP
5772 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
5773 cmpxchgl %ecx, main_arena(%rip)
5774 # 0 "" 2
5775 #NO_APP
5776 .L1083:
5777 andq $-8, %r15
5778 testb $2, 8(%r12)
5779 je .L1084
5780 movq %r14, %rsi
5781 movq %r12, %rdi
5782 call mremap_chunk
5783 testq %rax, %rax
5784 je .L1085
5785 leaq 16(%rax), %rbp
5786 testq %rbp, %rbp
5787 jne .L1080
5788 .L1087:
5789 movq 8(%rsp), %rax
5790 xorl %ebp, %ebp
5791 notb (%rax)
5792 .L1080:
5793 #APP
5794 # 376 "hooks.c" 1
5795 movl %fs:24,%eax
5796 # 0 "" 2
5797 #NO_APP
5798 testl %eax, %eax
5799 jne .L1088
5800 subl $1, main_arena(%rip)
5801 .L1089:
5802 movq %rbx, %rsi
5803 movq %rbp, %rdi
5804 call mem2mem_check
5805 .L1067:
5806 addq $24, %rsp
5807 popq %rbx
5808 popq %rbp
5809 popq %r12
5810 popq %r13
5811 popq %r14
5812 popq %r15
5814 .p2align 4,,10
5815 .p2align 3
5816 .L1084:
5817 .L1086:
5818 call top_check
5819 leaq main_arena(%rip), %rdi
5820 movq %r14, %rcx
5821 movq %r15, %rdx
5822 movq %r12, %rsi
5823 call _int_realloc
5824 movq %rax, %rbp
5825 testq %rbp, %rbp
5826 jne .L1080
5827 jmp .L1087
5828 .p2align 4,,10
5829 .p2align 3
5830 .L1099:
5831 movq %rbx, %rdi
5832 xorl %esi, %esi
5833 call malloc_check
5834 addq $24, %rsp
5835 popq %rbx
5836 popq %rbp
5837 popq %r12
5838 popq %r13
5839 popq %r14
5840 popq %r15
5842 .p2align 4,,10
5843 .p2align 3
5844 .L1074:
5845 xorl %eax, %eax
5846 movl $1, %edx
5847 lock cmpxchgl %edx, main_arena(%rip)
5848 je .L1075
5849 leaq main_arena(%rip), %rdi
5850 call __lll_lock_wait_private
5851 jmp .L1075
5852 .p2align 4,,10
5853 .p2align 3
5854 .L1076:
5855 xorl %eax, %eax
5856 #APP
5857 # 321 "hooks.c" 1
5858 xchgl %eax, main_arena(%rip)
5859 # 0 "" 2
5860 #NO_APP
5861 cmpl $1, %eax
5862 jle .L1077
5863 xorl %r10d, %r10d
5864 movl $1, %edx
5865 movl $129, %esi
5866 leaq main_arena(%rip), %rdi
5867 movl $202, %eax
5868 #APP
5869 # 321 "hooks.c" 1
5870 syscall
5872 # 0 "" 2
5873 #NO_APP
5874 jmp .L1077
5875 .p2align 4,,10
5876 .p2align 3
5877 .L1088:
5878 xorl %eax, %eax
5879 #APP
5880 # 376 "hooks.c" 1
5881 xchgl %eax, main_arena(%rip)
5882 # 0 "" 2
5883 #NO_APP
5884 cmpl $1, %eax
5885 jle .L1089
5886 xorl %r10d, %r10d
5887 movl $1, %edx
5888 movl $129, %esi
5889 leaq main_arena(%rip), %rdi
5890 movl $202, %eax
5891 #APP
5892 # 376 "hooks.c" 1
5893 syscall
5895 # 0 "" 2
5896 #NO_APP
5897 jmp .L1089
5898 .p2align 4,,10
5899 .p2align 3
5900 .L1085:
5901 leaq -8(%r15), %rax
5902 cmpq %rax, %r14
5903 jbe .L1080
5904 call top_check
5905 leaq main_arena(%rip), %rdi
5906 movq %r13, %rsi
5907 call _int_malloc
5908 testq %rax, %rax
5909 movq %rax, %r13
5910 je .L1087
5911 leaq -16(%r15), %rdx
5912 movq %rbp, %rsi
5913 movq %rax, %rdi
5914 movq %r13, %rbp
5915 call memcpy@PLT
5916 movq %r12, %rdi
5917 call munmap_chunk
5918 jmp .L1080
5919 .p2align 4,,10
5920 .p2align 3
5921 .L1082:
5922 xorl %eax, %eax
5923 movl $1, %ecx
5924 lock cmpxchgl %ecx, main_arena(%rip)
5925 je .L1083
5926 leaq main_arena(%rip), %rdi
5927 call __lll_lock_wait_private
5928 jmp .L1083
5929 .p2align 4,,10
5930 .p2align 3
5931 .L1100:
5932 xorl %esi, %esi
5933 call free_check
5934 xorl %eax, %eax
5935 jmp .L1067
5936 .L1069:
5937 movq __libc_errno@gottpoff(%rip), %rax
5938 movl $12, %fs:(%rax)
5939 xorl %eax, %eax
5940 jmp .L1067
5941 .L1101:
5942 leaq .LC83(%rip), %rdi
5943 call malloc_printerr
5944 .size realloc_check, .-realloc_check
5945 .p2align 4,,15
5946 .globl __malloc_fork_lock_parent
5947 .hidden __malloc_fork_lock_parent
5948 .type __malloc_fork_lock_parent, @function
5949 __malloc_fork_lock_parent:
5950 movl __libc_malloc_initialized(%rip), %eax
5951 testl %eax, %eax
5952 jle .L1111
5953 pushq %r12
5954 pushq %rbp
5955 pushq %rbx
5956 #APP
5957 # 152 "arena.c" 1
5958 movl %fs:24,%eax
5959 # 0 "" 2
5960 #NO_APP
5961 testl %eax, %eax
5962 jne .L1104
5963 movl $1, %edx
5964 #APP
5965 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
5966 cmpxchgl %edx, list_lock(%rip)
5967 # 0 "" 2
5968 #NO_APP
5969 .L1105:
5970 leaq main_arena(%rip), %rbp
5971 xorl %r12d, %r12d
5972 movq %rbp, %rbx
5973 .p2align 4,,10
5974 .p2align 3
5975 .L1108:
5976 #APP
5977 # 156 "arena.c" 1
5978 movl %fs:24,%eax
5979 # 0 "" 2
5980 #NO_APP
5981 testl %eax, %eax
5982 movl $1, %edx
5983 jne .L1106
5984 #APP
5985 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
5986 cmpxchgl %edx, (%rbx)
5987 # 0 "" 2
5988 #NO_APP
5989 .L1107:
5990 movq 2160(%rbx), %rbx
5991 cmpq %rbp, %rbx
5992 jne .L1108
5993 popq %rbx
5994 popq %rbp
5995 popq %r12
5997 .p2align 4,,10
5998 .p2align 3
5999 .L1106:
6000 movl %r12d, %eax
6001 lock cmpxchgl %edx, (%rbx)
6002 je .L1107
6003 movq %rbx, %rdi
6004 call __lll_lock_wait_private
6005 jmp .L1107
6006 .p2align 4,,10
6007 .p2align 3
6008 .L1111:
6009 rep ret
6010 .p2align 4,,10
6011 .p2align 3
6012 .L1104:
6013 xorl %eax, %eax
6014 movl $1, %edx
6015 lock cmpxchgl %edx, list_lock(%rip)
6016 je .L1105
6017 leaq list_lock(%rip), %rdi
6018 call __lll_lock_wait_private
6019 jmp .L1105
6020 .size __malloc_fork_lock_parent, .-__malloc_fork_lock_parent
6021 .p2align 4,,15
6022 .globl __malloc_fork_unlock_parent
6023 .hidden __malloc_fork_unlock_parent
6024 .type __malloc_fork_unlock_parent, @function
6025 __malloc_fork_unlock_parent:
6026 movl __libc_malloc_initialized(%rip), %eax
6027 testl %eax, %eax
6028 jle .L1125
6029 leaq main_arena(%rip), %r9
6030 pushq %rbp
6031 movl $202, %ebp
6032 pushq %rbx
6033 xorl %ebx, %ebx
6034 movq %r9, %r8
6035 .p2align 4,,10
6036 .p2align 3
6037 .L1115:
6038 #APP
6039 # 171 "arena.c" 1
6040 movl %fs:24,%eax
6041 # 0 "" 2
6042 #NO_APP
6043 testl %eax, %eax
6044 jne .L1117
6045 subl $1, (%r8)
6046 .L1118:
6047 movq 2160(%r8), %r8
6048 cmpq %r9, %r8
6049 jne .L1115
6050 #APP
6051 # 176 "arena.c" 1
6052 movl %fs:24,%eax
6053 # 0 "" 2
6054 #NO_APP
6055 testl %eax, %eax
6056 jne .L1119
6057 subl $1, list_lock(%rip)
6058 .L1114:
6059 popq %rbx
6060 popq %rbp
6062 .p2align 4,,10
6063 .p2align 3
6064 .L1117:
6065 movl %ebx, %eax
6066 #APP
6067 # 171 "arena.c" 1
6068 xchgl %eax, (%r8)
6069 # 0 "" 2
6070 #NO_APP
6071 cmpl $1, %eax
6072 jle .L1118
6073 xorl %r10d, %r10d
6074 movl $1, %edx
6075 movl $129, %esi
6076 movq %r8, %rdi
6077 movl %ebp, %eax
6078 #APP
6079 # 171 "arena.c" 1
6080 syscall
6082 # 0 "" 2
6083 #NO_APP
6084 jmp .L1118
6085 .p2align 4,,10
6086 .p2align 3
6087 .L1125:
6088 rep ret
6089 .p2align 4,,10
6090 .p2align 3
6091 .L1119:
6092 xorl %eax, %eax
6093 #APP
6094 # 176 "arena.c" 1
6095 xchgl %eax, list_lock(%rip)
6096 # 0 "" 2
6097 #NO_APP
6098 cmpl $1, %eax
6099 jle .L1114
6100 xorl %r10d, %r10d
6101 movl $1, %edx
6102 movl $129, %esi
6103 leaq list_lock(%rip), %rdi
6104 movl $202, %eax
6105 #APP
6106 # 176 "arena.c" 1
6107 syscall
6109 # 0 "" 2
6110 #NO_APP
6111 jmp .L1114
6112 .size __malloc_fork_unlock_parent, .-__malloc_fork_unlock_parent
6113 .p2align 4,,15
6114 .globl __malloc_fork_unlock_child
6115 .hidden __malloc_fork_unlock_child
6116 .type __malloc_fork_unlock_child, @function
6117 __malloc_fork_unlock_child:
6118 movl __libc_malloc_initialized(%rip), %eax
6119 testl %eax, %eax
6120 jle .L1128
6121 movq thread_arena@gottpoff(%rip), %rax
6122 movl $0, free_list_lock(%rip)
6123 movq %fs:(%rax), %rcx
6124 testq %rcx, %rcx
6125 je .L1130
6126 movq $1, 2176(%rcx)
6127 .L1130:
6128 leaq main_arena(%rip), %rsi
6129 movq $0, free_list(%rip)
6130 xorl %edi, %edi
6131 xorl %edx, %edx
6132 movq %rsi, %rax
6133 .p2align 4,,10
6134 .p2align 3
6135 .L1132:
6136 cmpq %rax, %rcx
6137 movl $0, (%rax)
6138 je .L1131
6139 movq %rdx, 2168(%rax)
6140 movq $0, 2176(%rax)
6141 movq %rax, %rdx
6142 movl $1, %edi
6143 .L1131:
6144 movq 2160(%rax), %rax
6145 cmpq %rsi, %rax
6146 jne .L1132
6147 testb %dil, %dil
6148 jne .L1141
6149 .L1133:
6150 movl $0, list_lock(%rip)
6151 .L1128:
6152 rep ret
6153 .L1141:
6154 movq %rdx, free_list(%rip)
6155 jmp .L1133
6156 .size __malloc_fork_unlock_child, .-__malloc_fork_unlock_child
6157 .p2align 4,,15
6158 .globl __malloc_check_init
6159 .hidden __malloc_check_init
6160 .type __malloc_check_init, @function
6161 __malloc_check_init:
6162 leaq malloc_check(%rip), %rax
6163 movl $1, using_malloc_checking(%rip)
6164 movq %rax, __malloc_hook(%rip)
6165 leaq free_check(%rip), %rax
6166 movq %rax, __free_hook(%rip)
6167 leaq realloc_check(%rip), %rax
6168 movq %rax, __realloc_hook(%rip)
6169 leaq memalign_check(%rip), %rax
6170 movq %rax, __memalign_hook(%rip)
6172 .size __malloc_check_init, .-__malloc_check_init
6173 .section .rodata.str1.8
6174 .align 8
6175 .LC84:
6176 .string "!victim || chunk_is_mmapped (mem2chunk (victim)) || &main_arena == arena_for_chunk (mem2chunk (victim))"
6177 .align 8
6178 .LC85:
6179 .string "!victim || chunk_is_mmapped (mem2chunk (victim)) || ar_ptr == arena_for_chunk (mem2chunk (victim))"
6180 .text
6181 .p2align 4,,15
6182 .globl __libc_malloc
6183 .hidden __libc_malloc
6184 .type __libc_malloc, @function
6185 __libc_malloc:
6186 pushq %rbp
6187 pushq %rbx
6188 subq $8, %rsp
6189 movq __malloc_hook(%rip), %rax
6190 testq %rax, %rax
6191 jne .L1195
6192 testq %rdi, %rdi
6193 js .L1196
6194 leaq 23(%rdi), %rax
6195 xorl %ebp, %ebp
6196 cmpq $31, %rax
6197 ja .L1197
6198 .L1147:
6199 movq %fs:tcache@tpoff, %rax
6200 movq %rdi, %rbx
6201 testq %rax, %rax
6202 je .L1198
6203 cmpq 80+mp_(%rip), %rbp
6204 jb .L1163
6205 .L1149:
6206 #APP
6207 # 3227 "malloc.c" 1
6208 movl %fs:24,%eax
6209 # 0 "" 2
6210 #NO_APP
6211 testl %eax, %eax
6212 jne .L1152
6213 leaq main_arena(%rip), %rdi
6214 movq %rbx, %rsi
6215 call _int_malloc
6216 testq %rax, %rax
6217 movq %rax, %r8
6218 je .L1153
6219 movq -8(%rax), %rax
6220 testb $2, %al
6221 jne .L1143
6222 testb $4, %al
6223 je .L1143
6224 leaq -16(%r8), %rax
6225 leaq main_arena(%rip), %rdx
6226 andq $-67108864, %rax
6227 cmpq %rdx, (%rax)
6228 jne .L1199
6229 .L1143:
6230 addq $8, %rsp
6231 movq %r8, %rax
6232 popq %rbx
6233 popq %rbp
6235 .p2align 4,,10
6236 .p2align 3
6237 .L1197:
6238 andq $-16, %rax
6239 leaq -17(%rax), %rbp
6240 shrq $4, %rbp
6241 jmp .L1147
6242 .p2align 4,,10
6243 .p2align 3
6244 .L1198:
6245 cmpb $0, %fs:tcache_shutting_down@tpoff
6246 jne .L1149
6247 call tcache_init.part.6
6248 cmpq %rbp, 80+mp_(%rip)
6249 jbe .L1149
6250 movq %fs:tcache@tpoff, %rax
6251 testq %rax, %rax
6252 je .L1149
6253 .p2align 4,,10
6254 .p2align 3
6255 .L1163:
6256 leaq (%rax,%rbp,2), %rcx
6257 movzwl (%rcx), %edx
6258 testw %dx, %dx
6259 je .L1149
6260 leaq (%rax,%rbp,8), %rsi
6261 movq 128(%rsi), %r8
6262 testb $15, %r8b
6263 jne .L1200
6264 movq %r8, %rax
6265 subl $1, %edx
6266 shrq $12, %rax
6267 xorq (%r8), %rax
6268 movq %rax, 128(%rsi)
6269 movw %dx, (%rcx)
6270 movq %r8, %rax
6271 movq $0, 8(%r8)
6272 addq $8, %rsp
6273 popq %rbx
6274 popq %rbp
6276 .p2align 4,,10
6277 .p2align 3
6278 .L1153:
6279 addq $8, %rsp
6280 xorl %r8d, %r8d
6281 movq %r8, %rax
6282 popq %rbx
6283 popq %rbp
6285 .p2align 4,,10
6286 .p2align 3
6287 .L1195:
6288 movq 24(%rsp), %rsi
6289 addq $8, %rsp
6290 popq %rbx
6291 popq %rbp
6292 jmp *%rax
6293 .p2align 4,,10
6294 .p2align 3
6295 .L1196:
6296 movq __libc_errno@gottpoff(%rip), %rax
6297 xorl %r8d, %r8d
6298 movl $12, %fs:(%rax)
6299 jmp .L1143
6300 .p2align 4,,10
6301 .p2align 3
6302 .L1152:
6303 movq thread_arena@gottpoff(%rip), %rax
6304 movq %fs:(%rax), %rbp
6305 testq %rbp, %rbp
6306 je .L1154
6307 #APP
6308 # 3235 "malloc.c" 1
6309 movl %fs:24,%eax
6310 # 0 "" 2
6311 #NO_APP
6312 testl %eax, %eax
6313 jne .L1155
6314 movl $1, %edx
6315 #APP
6316 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
6317 cmpxchgl %edx, 0(%rbp)
6318 # 0 "" 2
6319 #NO_APP
6320 .L1156:
6321 movq %rbx, %rsi
6322 movq %rbp, %rdi
6323 call _int_malloc
6324 testq %rax, %rax
6325 movq %rax, %r8
6326 je .L1161
6327 .L1162:
6328 #APP
6329 # 3248 "malloc.c" 1
6330 movl %fs:24,%eax
6331 # 0 "" 2
6332 #NO_APP
6333 testl %eax, %eax
6334 jne .L1159
6335 subl $1, 0(%rbp)
6336 .L1158:
6337 testq %r8, %r8
6338 je .L1153
6339 movq -8(%r8), %rax
6340 testb $2, %al
6341 jne .L1143
6342 testb $4, %al
6343 leaq main_arena(%rip), %rdx
6344 je .L1160
6345 leaq -16(%r8), %rax
6346 andq $-67108864, %rax
6347 movq (%rax), %rdx
6348 .L1160:
6349 cmpq %rbp, %rdx
6350 je .L1143
6351 leaq __PRETTY_FUNCTION__.12849(%rip), %rcx
6352 leaq .LC6(%rip), %rsi
6353 leaq .LC85(%rip), %rdi
6354 movl $3253, %edx
6355 call __malloc_assert
6356 .p2align 4,,10
6357 .p2align 3
6358 .L1154:
6359 call get_free_list
6360 testq %rax, %rax
6361 movq %rax, %rbp
6362 jne .L1156
6363 xorl %esi, %esi
6364 movq %rbx, %rdi
6365 call arena_get2.part.4
6366 movq %rbx, %rsi
6367 movq %rax, %rdi
6368 movq %rax, %rbp
6369 call _int_malloc
6370 testq %rax, %rax
6371 movq %rax, %r8
6372 jne .L1157
6373 testq %rbp, %rbp
6374 je .L1157
6375 .p2align 4,,10
6376 .p2align 3
6377 .L1161:
6378 movq %rbp, %rdi
6379 movq %rbx, %rsi
6380 call arena_get_retry
6381 movq %rbx, %rsi
6382 movq %rax, %rdi
6383 movq %rax, %rbp
6384 call _int_malloc
6385 movq %rax, %r8
6386 .L1157:
6387 testq %rbp, %rbp
6388 je .L1158
6389 jmp .L1162
6390 .L1199:
6391 leaq __PRETTY_FUNCTION__.12849(%rip), %rcx
6392 leaq .LC6(%rip), %rsi
6393 leaq .LC84(%rip), %rdi
6394 movl $3231, %edx
6395 call __malloc_assert
6396 .p2align 4,,10
6397 .p2align 3
6398 .L1200:
6399 leaq .LC72(%rip), %rdi
6400 call malloc_printerr
6401 .L1155:
6402 xorl %eax, %eax
6403 movl $1, %edx
6404 lock cmpxchgl %edx, 0(%rbp)
6405 je .L1156
6406 movq %rbp, %rdi
6407 call __lll_lock_wait_private
6408 jmp .L1156
6409 .L1159:
6410 xorl %eax, %eax
6411 #APP
6412 # 3248 "malloc.c" 1
6413 xchgl %eax, 0(%rbp)
6414 # 0 "" 2
6415 #NO_APP
6416 cmpl $1, %eax
6417 jle .L1158
6418 xorl %r10d, %r10d
6419 movl $1, %edx
6420 movl $129, %esi
6421 movq %rbp, %rdi
6422 movl $202, %eax
6423 #APP
6424 # 3248 "malloc.c" 1
6425 syscall
6427 # 0 "" 2
6428 #NO_APP
6429 jmp .L1158
6430 .size __libc_malloc, .-__libc_malloc
6431 .globl malloc
6432 .set malloc,__libc_malloc
6433 .globl __malloc
6434 .set __malloc,__libc_malloc
6435 .p2align 4,,15
6436 .type malloc_hook_ini, @function
6437 malloc_hook_ini:
6438 movl __libc_malloc_initialized(%rip), %eax
6439 movq $0, __malloc_hook(%rip)
6440 testl %eax, %eax
6441 js .L1207
6442 jmp __libc_malloc
6443 .p2align 4,,10
6444 .p2align 3
6445 .L1207:
6446 subq $24, %rsp
6447 movq %rdi, 8(%rsp)
6448 call ptmalloc_init.part.0
6449 movq 8(%rsp), %rdi
6450 addq $24, %rsp
6451 jmp __libc_malloc
6452 .size malloc_hook_ini, .-malloc_hook_ini
6453 .section .rodata.str1.8
6454 .align 8
6455 .LC86:
6456 .string "!p || chunk_is_mmapped (mem2chunk (p)) || &main_arena == arena_for_chunk (mem2chunk (p))"
6457 .align 8
6458 .LC87:
6459 .string "!p || chunk_is_mmapped (mem2chunk (p)) || ar_ptr == arena_for_chunk (mem2chunk (p))"
6460 .text
6461 .p2align 4,,15
6462 .type _mid_memalign, @function
6463 _mid_memalign:
6464 movq __memalign_hook(%rip), %rax
6465 testq %rax, %rax
6466 jne .L1255
6467 cmpq $16, %rdi
6468 jbe .L1256
6469 cmpq $31, %rdi
6470 pushq %r12
6471 pushq %rbp
6472 pushq %rbx
6473 ja .L1257
6474 movl $32, %ebx
6475 .L1211:
6476 movq %rsi, %rbp
6477 #APP
6478 # 3502 "malloc.c" 1
6479 movl %fs:24,%eax
6480 # 0 "" 2
6481 #NO_APP
6482 testl %eax, %eax
6483 jne .L1215
6484 leaq main_arena(%rip), %rdi
6485 movq %rsi, %rdx
6486 movq %rbx, %rsi
6487 call _int_memalign
6488 testq %rax, %rax
6489 movq %rax, %r8
6490 je .L1216
6491 movq -8(%rax), %rax
6492 testb $2, %al
6493 jne .L1208
6494 testb $4, %al
6495 je .L1208
6496 leaq -16(%r8), %rax
6497 leaq main_arena(%rip), %rdx
6498 andq $-67108864, %rax
6499 cmpq %rdx, (%rax)
6500 jne .L1258
6501 .L1208:
6502 popq %rbx
6503 movq %r8, %rax
6504 popq %rbp
6505 popq %r12
6507 .p2align 4,,10
6508 .p2align 3
6509 .L1257:
6510 movabsq $-9223372036854775808, %rax
6511 cmpq %rax, %rdi
6512 ja .L1259
6513 leaq -1(%rdi), %rax
6514 testq %rdi, %rax
6515 je .L1227
6516 cmpq $32, %rdi
6517 movl $32, %ebx
6518 je .L1211
6519 .p2align 4,,10
6520 .p2align 3
6521 .L1214:
6522 addq %rbx, %rbx
6523 cmpq %rbx, %rdi
6524 ja .L1214
6525 jmp .L1211
6526 .p2align 4,,10
6527 .p2align 3
6528 .L1256:
6529 movq %rsi, %rdi
6530 jmp __libc_malloc
6531 .p2align 4,,10
6532 .p2align 3
6533 .L1216:
6534 xorl %r8d, %r8d
6535 popq %rbx
6536 movq %r8, %rax
6537 popq %rbp
6538 popq %r12
6540 .p2align 4,,10
6541 .p2align 3
6542 .L1255:
6543 jmp *%rax
6544 .p2align 4,,10
6545 .p2align 3
6546 .L1215:
6547 movq thread_arena@gottpoff(%rip), %rax
6548 movq %fs:(%rax), %r12
6549 testq %r12, %r12
6550 je .L1217
6551 #APP
6552 # 3510 "malloc.c" 1
6553 movl %fs:24,%eax
6554 # 0 "" 2
6555 #NO_APP
6556 testl %eax, %eax
6557 jne .L1218
6558 movl $1, %edx
6559 #APP
6560 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
6561 cmpxchgl %edx, (%r12)
6562 # 0 "" 2
6563 #NO_APP
6564 .L1219:
6565 movq %rbp, %rdx
6566 movq %rbx, %rsi
6567 movq %r12, %rdi
6568 call _int_memalign
6569 testq %rax, %rax
6570 movq %rax, %r8
6571 je .L1224
6572 .L1225:
6573 #APP
6574 # 3521 "malloc.c" 1
6575 movl %fs:24,%eax
6576 # 0 "" 2
6577 #NO_APP
6578 testl %eax, %eax
6579 jne .L1222
6580 subl $1, (%r12)
6581 .L1221:
6582 testq %r8, %r8
6583 je .L1216
6584 movq -8(%r8), %rax
6585 testb $2, %al
6586 jne .L1208
6587 testb $4, %al
6588 leaq main_arena(%rip), %rdx
6589 je .L1223
6590 leaq -16(%r8), %rax
6591 andq $-67108864, %rax
6592 movq (%rax), %rdx
6593 .L1223:
6594 cmpq %r12, %rdx
6595 je .L1208
6596 leaq __PRETTY_FUNCTION__.12988(%rip), %rcx
6597 leaq .LC6(%rip), %rsi
6598 leaq .LC87(%rip), %rdi
6599 movl $3524, %edx
6600 call __malloc_assert
6601 .p2align 4,,10
6602 .p2align 3
6603 .L1218:
6604 xorl %eax, %eax
6605 movl $1, %edx
6606 lock cmpxchgl %edx, (%r12)
6607 je .L1219
6608 movq %r12, %rdi
6609 call __lll_lock_wait_private
6610 jmp .L1219
6611 .p2align 4,,10
6612 .p2align 3
6613 .L1259:
6614 movq __libc_errno@gottpoff(%rip), %rax
6615 xorl %r8d, %r8d
6616 movl $22, %fs:(%rax)
6617 jmp .L1208
6618 .L1217:
6619 call get_free_list
6620 testq %rax, %rax
6621 movq %rax, %r12
6622 jne .L1219
6623 leaq 32(%rbx,%rbp), %rdi
6624 xorl %esi, %esi
6625 call arena_get2.part.4
6626 movq %rbp, %rdx
6627 movq %rbx, %rsi
6628 movq %rax, %rdi
6629 movq %rax, %r12
6630 call _int_memalign
6631 testq %rax, %rax
6632 movq %rax, %r8
6633 jne .L1220
6634 testq %r12, %r12
6635 je .L1220
6636 .p2align 4,,10
6637 .p2align 3
6638 .L1224:
6639 movq %r12, %rdi
6640 movq %rbp, %rsi
6641 call arena_get_retry
6642 movq %rbp, %rdx
6643 movq %rbx, %rsi
6644 movq %rax, %rdi
6645 movq %rax, %r12
6646 call _int_memalign
6647 movq %rax, %r8
6648 .L1220:
6649 testq %r12, %r12
6650 je .L1221
6651 jmp .L1225
6652 .L1222:
6653 xorl %eax, %eax
6654 #APP
6655 # 3521 "malloc.c" 1
6656 xchgl %eax, (%r12)
6657 # 0 "" 2
6658 #NO_APP
6659 cmpl $1, %eax
6660 jle .L1221
6661 xorl %r10d, %r10d
6662 movl $1, %edx
6663 movl $129, %esi
6664 movq %r12, %rdi
6665 movl $202, %eax
6666 #APP
6667 # 3521 "malloc.c" 1
6668 syscall
6670 # 0 "" 2
6671 #NO_APP
6672 jmp .L1221
6673 .L1258:
6674 leaq __PRETTY_FUNCTION__.12988(%rip), %rcx
6675 leaq .LC6(%rip), %rsi
6676 leaq .LC86(%rip), %rdi
6677 movl $3506, %edx
6678 call __malloc_assert
6679 .L1227:
6680 movq %rdi, %rbx
6681 jmp .L1211
6682 .size _mid_memalign, .-_mid_memalign
6683 .p2align 4,,15
6684 .type memalign_hook_ini, @function
6685 memalign_hook_ini:
6686 subq $24, %rsp
6687 movl __libc_malloc_initialized(%rip), %eax
6688 movq $0, __memalign_hook(%rip)
6689 testl %eax, %eax
6690 js .L1263
6691 movq 24(%rsp), %rdx
6692 addq $24, %rsp
6693 jmp _mid_memalign
6694 .p2align 4,,10
6695 .p2align 3
6696 .L1263:
6697 movq %rsi, 8(%rsp)
6698 movq %rdi, (%rsp)
6699 call ptmalloc_init.part.0
6700 movq 8(%rsp), %rsi
6701 movq (%rsp), %rdi
6702 movq 24(%rsp), %rdx
6703 addq $24, %rsp
6704 jmp _mid_memalign
6705 .size memalign_hook_ini, .-memalign_hook_ini
6706 .p2align 4,,15
6707 .globl __libc_free
6708 .hidden __libc_free
6709 .type __libc_free, @function
6710 __libc_free:
6711 pushq %rbp
6712 pushq %rbx
6713 subq $24, %rsp
6714 movq __free_hook(%rip), %rax
6715 testq %rax, %rax
6716 jne .L1284
6717 testq %rdi, %rdi
6718 je .L1264
6719 movq -8(%rdi), %rax
6720 movq __libc_errno@gottpoff(%rip), %rbx
6721 leaq -16(%rdi), %rsi
6722 testb $2, %al
6723 movl %fs:(%rbx), %ebp
6724 jne .L1285
6725 cmpq $0, %fs:tcache@tpoff
6726 je .L1286
6727 .L1270:
6728 testb $4, %al
6729 leaq main_arena(%rip), %rdi
6730 je .L1271
6731 movq %rsi, %rax
6732 andq $-67108864, %rax
6733 movq (%rax), %rdi
6734 .L1271:
6735 xorl %edx, %edx
6736 call _int_free
6737 movl %ebp, %fs:(%rbx)
6738 .L1264:
6739 addq $24, %rsp
6740 popq %rbx
6741 popq %rbp
6743 .p2align 4,,10
6744 .p2align 3
6745 .L1285:
6746 movl 52+mp_(%rip), %edx
6747 testl %edx, %edx
6748 jne .L1268
6749 cmpq 16+mp_(%rip), %rax
6750 jbe .L1268
6751 cmpq $33554432, %rax
6752 jbe .L1287
6753 .L1268:
6754 movq %rsi, %rdi
6755 call munmap_chunk
6756 movl %ebp, %fs:(%rbx)
6757 addq $24, %rsp
6758 popq %rbx
6759 popq %rbp
6761 .p2align 4,,10
6762 .p2align 3
6763 .L1284:
6764 movq 40(%rsp), %rsi
6765 addq $24, %rsp
6766 popq %rbx
6767 popq %rbp
6768 jmp *%rax
6769 .p2align 4,,10
6770 .p2align 3
6771 .L1287:
6772 andq $-8, %rax
6773 movq %rax, 16+mp_(%rip)
6774 addq %rax, %rax
6775 movq %rax, mp_(%rip)
6776 jmp .L1268
6777 .p2align 4,,10
6778 .p2align 3
6779 .L1286:
6780 cmpb $0, %fs:tcache_shutting_down@tpoff
6781 jne .L1270
6782 movq %rdi, 8(%rsp)
6783 movq %rsi, (%rsp)
6784 call tcache_init.part.6
6785 movq 8(%rsp), %rdi
6786 movq (%rsp), %rsi
6787 movq -8(%rdi), %rax
6788 jmp .L1270
6789 .size __libc_free, .-__libc_free
6790 .globl free
6791 .set free,__libc_free
6792 .globl __free
6793 .set __free,__libc_free
6794 .section .rodata.str1.8
6795 .align 8
6796 .LC88:
6797 .string "tcache_thread_shutdown(): unaligned tcache chunk detected"
6798 .section .rodata.str1.1
6799 .LC89:
6800 .string "a->attached_threads > 0"
6801 .text
6802 .p2align 4,,15
6803 .globl __malloc_arena_thread_freeres
6804 .hidden __malloc_arena_thread_freeres
6805 .type __malloc_arena_thread_freeres, @function
6806 __malloc_arena_thread_freeres:
6807 pushq %r12
6808 pushq %rbp
6809 pushq %rbx
6810 movq %fs:tcache@tpoff, %rbp
6811 testq %rbp, %rbp
6812 je .L1289
6813 movq $0, %fs:tcache@tpoff
6814 movb $1, %fs:tcache_shutting_down@tpoff
6815 leaq 128(%rbp), %rbx
6816 leaq 640(%rbp), %r12
6817 jmp .L1314
6818 .p2align 4,,10
6819 .p2align 3
6820 .L1291:
6821 movq %rdi, %rax
6822 shrq $12, %rax
6823 xorq (%rdi), %rax
6824 movq %rax, (%rbx)
6825 call __libc_free
6826 .L1314:
6827 movq (%rbx), %rdi
6828 testq %rdi, %rdi
6829 je .L1315
6830 testb $15, %dil
6831 je .L1291
6832 leaq .LC88(%rip), %rdi
6833 call malloc_printerr
6834 .p2align 4,,10
6835 .p2align 3
6836 .L1315:
6837 addq $8, %rbx
6838 cmpq %rbx, %r12
6839 jne .L1314
6840 movq %rbp, %rdi
6841 call __libc_free
6842 .p2align 4,,10
6843 .p2align 3
6844 .L1289:
6845 movq thread_arena@gottpoff(%rip), %rax
6846 movq %fs:(%rax), %rbx
6847 movq $0, %fs:(%rax)
6848 testq %rbx, %rbx
6849 je .L1288
6850 #APP
6851 # 1008 "arena.c" 1
6852 movl %fs:24,%eax
6853 # 0 "" 2
6854 #NO_APP
6855 testl %eax, %eax
6856 jne .L1298
6857 movl $1, %edx
6858 #APP
6859 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
6860 cmpxchgl %edx, free_list_lock(%rip)
6861 # 0 "" 2
6862 #NO_APP
6863 .L1299:
6864 movq 2176(%rbx), %rax
6865 testq %rax, %rax
6866 je .L1316
6867 subq $1, %rax
6868 testq %rax, %rax
6869 movq %rax, 2176(%rbx)
6870 jne .L1301
6871 movq free_list(%rip), %rax
6872 movq %rbx, free_list(%rip)
6873 movq %rax, 2168(%rbx)
6874 .L1301:
6875 #APP
6876 # 1017 "arena.c" 1
6877 movl %fs:24,%eax
6878 # 0 "" 2
6879 #NO_APP
6880 testl %eax, %eax
6881 jne .L1302
6882 subl $1, free_list_lock(%rip)
6883 .L1288:
6884 popq %rbx
6885 popq %rbp
6886 popq %r12
6888 .L1298:
6889 xorl %eax, %eax
6890 movl $1, %edx
6891 lock cmpxchgl %edx, free_list_lock(%rip)
6892 je .L1299
6893 leaq free_list_lock(%rip), %rdi
6894 call __lll_lock_wait_private
6895 jmp .L1299
6896 .L1302:
6897 xorl %eax, %eax
6898 #APP
6899 # 1017 "arena.c" 1
6900 xchgl %eax, free_list_lock(%rip)
6901 # 0 "" 2
6902 #NO_APP
6903 cmpl $1, %eax
6904 jle .L1288
6905 xorl %r10d, %r10d
6906 movl $1, %edx
6907 movl $129, %esi
6908 leaq free_list_lock(%rip), %rdi
6909 movl $202, %eax
6910 #APP
6911 # 1017 "arena.c" 1
6912 syscall
6914 # 0 "" 2
6915 #NO_APP
6916 jmp .L1288
6917 .L1316:
6918 leaq __PRETTY_FUNCTION__.12287(%rip), %rcx
6919 leaq .LC18(%rip), %rsi
6920 leaq .LC89(%rip), %rdi
6921 movl $1011, %edx
6922 call __malloc_assert
6923 .size __malloc_arena_thread_freeres, .-__malloc_arena_thread_freeres
6924 .section .rodata.str1.8
6925 .align 8
6926 .LC90:
6927 .string "!newp || chunk_is_mmapped (mem2chunk (newp)) || ar_ptr == arena_for_chunk (mem2chunk (newp))"
6928 .text
6929 .p2align 4,,15
6930 .globl __libc_realloc
6931 .hidden __libc_realloc
6932 .type __libc_realloc, @function
6933 __libc_realloc:
6934 pushq %r15
6935 pushq %r14
6936 pushq %r13
6937 pushq %r12
6938 pushq %rbp
6939 pushq %rbx
6940 subq $24, %rsp
6941 movq __realloc_hook(%rip), %rax
6942 testq %rax, %rax
6943 jne .L1363
6944 testq %rsi, %rsi
6945 movq %rsi, %r14
6946 movq %rdi, %rbx
6947 jne .L1319
6948 testq %rdi, %rdi
6949 jne .L1364
6950 .L1319:
6951 testq %rbx, %rbx
6952 je .L1365
6953 movq -8(%rbx), %rax
6954 xorl %r8d, %r8d
6955 leaq -16(%rbx), %rbp
6956 movq %rax, %r15
6957 andq $-8, %r15
6958 testb $2, %al
6959 je .L1366
6960 .L1322:
6961 movq %r15, %rdx
6962 negq %rdx
6963 cmpq %rbp, %rdx
6964 jb .L1324
6965 testb $15, %bpl
6966 jne .L1324
6967 testq %r14, %r14
6968 js .L1367
6969 leaq 23(%r14), %rdx
6970 movl $32, %ecx
6971 movq %rdx, %r13
6972 andq $-16, %r13
6973 cmpq $31, %rdx
6974 cmovbe %rcx, %r13
6975 testb $2, %al
6976 jne .L1368
6977 #APP
6978 # 3425 "malloc.c" 1
6979 movl %fs:24,%eax
6980 # 0 "" 2
6981 #NO_APP
6982 testl %eax, %eax
6983 jne .L1330
6984 movq %r13, %rcx
6985 movq %r15, %rdx
6986 movq %rbp, %rsi
6987 movq %r8, %rdi
6988 movq %r8, 8(%rsp)
6989 call _int_realloc
6990 testq %rax, %rax
6991 movq %rax, %r12
6992 je .L1317
6993 movq -8(%rax), %rax
6994 testb $2, %al
6995 jne .L1317
6996 testb $4, %al
6997 leaq main_arena(%rip), %rdx
6998 movq 8(%rsp), %r8
6999 je .L1331
7000 leaq -16(%r12), %rax
7001 andq $-67108864, %rax
7002 movq (%rax), %rdx
7003 .L1331:
7004 cmpq %rdx, %r8
7005 jne .L1369
7006 .L1317:
7007 addq $24, %rsp
7008 movq %r12, %rax
7009 popq %rbx
7010 popq %rbp
7011 popq %r12
7012 popq %r13
7013 popq %r14
7014 popq %r15
7016 .p2align 4,,10
7017 .p2align 3
7018 .L1366:
7019 cmpq $0, %fs:tcache@tpoff
7020 je .L1370
7021 .L1323:
7022 testb $4, %al
7023 leaq main_arena(%rip), %r8
7024 je .L1322
7025 movq %rbp, %rdx
7026 andq $-67108864, %rdx
7027 movq (%rdx), %r8
7028 jmp .L1322
7029 .p2align 4,,10
7030 .p2align 3
7031 .L1368:
7032 movq %r13, %rsi
7033 movq %rbp, %rdi
7034 call mremap_chunk
7035 testq %rax, %rax
7036 leaq 16(%rax), %r12
7037 jne .L1317
7038 leaq -8(%r15), %rax
7039 movq %rbx, %r12
7040 cmpq %r13, %rax
7041 jnb .L1317
7042 movq %r14, %rdi
7043 call __libc_malloc
7044 testq %rax, %rax
7045 movq %rax, %r12
7046 je .L1317
7047 leaq -16(%r15), %rdx
7048 movq %rbx, %rsi
7049 movq %rax, %rdi
7050 call memcpy@PLT
7051 movq %rbp, %rdi
7052 call munmap_chunk
7053 jmp .L1317
7054 .p2align 4,,10
7055 .p2align 3
7056 .L1365:
7057 addq $24, %rsp
7058 movq %r14, %rdi
7059 popq %rbx
7060 popq %rbp
7061 popq %r12
7062 popq %r13
7063 popq %r14
7064 popq %r15
7065 jmp __libc_malloc
7066 .p2align 4,,10
7067 .p2align 3
7068 .L1363:
7069 movq 72(%rsp), %rdx
7070 addq $24, %rsp
7071 popq %rbx
7072 popq %rbp
7073 popq %r12
7074 popq %r13
7075 popq %r14
7076 popq %r15
7077 jmp *%rax
7078 .p2align 4,,10
7079 .p2align 3
7080 .L1367:
7081 movq __libc_errno@gottpoff(%rip), %rax
7082 xorl %r12d, %r12d
7083 movl $12, %fs:(%rax)
7084 jmp .L1317
7085 .p2align 4,,10
7086 .p2align 3
7087 .L1364:
7088 call __libc_free
7089 xorl %r12d, %r12d
7090 jmp .L1317
7091 .p2align 4,,10
7092 .p2align 3
7093 .L1370:
7094 cmpb $0, %fs:tcache_shutting_down@tpoff
7095 jne .L1323
7096 call tcache_init.part.6
7097 movq -8(%rbx), %rax
7098 jmp .L1323
7099 .p2align 4,,10
7100 .p2align 3
7101 .L1330:
7102 #APP
7103 # 3434 "malloc.c" 1
7104 movl %fs:24,%eax
7105 # 0 "" 2
7106 #NO_APP
7107 testl %eax, %eax
7108 jne .L1332
7109 movl $1, %edx
7110 #APP
7111 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
7112 cmpxchgl %edx, (%r8)
7113 # 0 "" 2
7114 #NO_APP
7115 .L1333:
7116 movq %r13, %rcx
7117 movq %r15, %rdx
7118 movq %rbp, %rsi
7119 movq %r8, %rdi
7120 movq %r8, 8(%rsp)
7121 call _int_realloc
7122 movq %rax, %r12
7123 #APP
7124 # 3438 "malloc.c" 1
7125 movl %fs:24,%eax
7126 # 0 "" 2
7127 #NO_APP
7128 testl %eax, %eax
7129 movq 8(%rsp), %r8
7130 jne .L1334
7131 subl $1, (%r8)
7132 .L1335:
7133 testq %r12, %r12
7134 je .L1336
7135 movq -8(%r12), %rax
7136 testb $2, %al
7137 jne .L1317
7138 testb $4, %al
7139 leaq main_arena(%rip), %rdx
7140 je .L1337
7141 leaq -16(%r12), %rax
7142 andq $-67108864, %rax
7143 movq (%rax), %rdx
7144 .L1337:
7145 cmpq %rdx, %r8
7146 je .L1317
7147 leaq __PRETTY_FUNCTION__.12922(%rip), %rcx
7148 leaq .LC6(%rip), %rsi
7149 leaq .LC90(%rip), %rdi
7150 movl $3440, %edx
7151 call __malloc_assert
7152 .p2align 4,,10
7153 .p2align 3
7154 .L1336:
7155 movq %r14, %rdi
7156 movq %r8, 8(%rsp)
7157 call __libc_malloc
7158 testq %rax, %rax
7159 movq %rax, %r12
7160 je .L1317
7161 leaq -8(%r15), %rdx
7162 movq %rbx, %rsi
7163 movq %rax, %rdi
7164 call memcpy@PLT
7165 movq 8(%rsp), %r8
7166 xorl %edx, %edx
7167 movq %rbp, %rsi
7168 movq %r8, %rdi
7169 call _int_free
7170 jmp .L1317
7171 .L1334:
7172 xorl %eax, %eax
7173 #APP
7174 # 3438 "malloc.c" 1
7175 xchgl %eax, (%r8)
7176 # 0 "" 2
7177 #NO_APP
7178 cmpl $1, %eax
7179 jle .L1335
7180 xorl %r10d, %r10d
7181 movl $1, %edx
7182 movl $129, %esi
7183 movq %r8, %rdi
7184 movl $202, %eax
7185 #APP
7186 # 3438 "malloc.c" 1
7187 syscall
7189 # 0 "" 2
7190 #NO_APP
7191 jmp .L1335
7192 .p2align 4,,10
7193 .p2align 3
7194 .L1332:
7195 xorl %eax, %eax
7196 movl $1, %edx
7197 lock cmpxchgl %edx, (%r8)
7198 je .L1333
7199 movq %r8, %rdi
7200 movq %r8, 8(%rsp)
7201 call __lll_lock_wait_private
7202 movq 8(%rsp), %r8
7203 jmp .L1333
7204 .L1324:
7205 leaq .LC83(%rip), %rdi
7206 call malloc_printerr
7207 .L1369:
7208 leaq __PRETTY_FUNCTION__.12922(%rip), %rcx
7209 leaq .LC6(%rip), %rsi
7210 leaq .LC90(%rip), %rdi
7211 movl $3429, %edx
7212 call __malloc_assert
7213 .size __libc_realloc, .-__libc_realloc
7214 .globl realloc
7215 .set realloc,__libc_realloc
7216 .globl __realloc
7217 .set __realloc,__libc_realloc
7218 .p2align 4,,15
7219 .type realloc_hook_ini, @function
7220 realloc_hook_ini:
7221 movl __libc_malloc_initialized(%rip), %eax
7222 movq $0, __malloc_hook(%rip)
7223 movq $0, __realloc_hook(%rip)
7224 testl %eax, %eax
7225 js .L1377
7226 jmp __libc_realloc
7227 .p2align 4,,10
7228 .p2align 3
7229 .L1377:
7230 subq $24, %rsp
7231 movq %rsi, 8(%rsp)
7232 movq %rdi, (%rsp)
7233 call ptmalloc_init.part.0
7234 movq 8(%rsp), %rsi
7235 movq (%rsp), %rdi
7236 addq $24, %rsp
7237 jmp __libc_realloc
7238 .size realloc_hook_ini, .-realloc_hook_ini
7239 .p2align 4,,15
7240 .globl __libc_memalign
7241 .hidden __libc_memalign
7242 .type __libc_memalign, @function
7243 __libc_memalign:
7244 movq (%rsp), %rdx
7245 jmp _mid_memalign
7246 .size __libc_memalign, .-__libc_memalign
7247 .weak memalign
7248 .set memalign,__libc_memalign
7249 .globl __memalign
7250 .set __memalign,__libc_memalign
7251 .weak aligned_alloc
7252 .set aligned_alloc,__libc_memalign
7253 .p2align 4,,15
7254 .globl __libc_valloc
7255 .type __libc_valloc, @function
7256 __libc_valloc:
7257 subq $24, %rsp
7258 movl __libc_malloc_initialized(%rip), %eax
7259 movq %rdi, %rsi
7260 testl %eax, %eax
7261 js .L1382
7262 .L1380:
7263 movq 24(%rsp), %rdx
7264 movq _dl_pagesize(%rip), %rdi
7265 addq $24, %rsp
7266 jmp _mid_memalign
7267 .p2align 4,,10
7268 .p2align 3
7269 .L1382:
7270 movq %rdi, 8(%rsp)
7271 call ptmalloc_init.part.0
7272 movq 8(%rsp), %rsi
7273 jmp .L1380
7274 .size __libc_valloc, .-__libc_valloc
7275 .weak valloc
7276 .set valloc,__libc_valloc
7277 .globl __valloc
7278 .set __valloc,__libc_valloc
7279 .p2align 4,,15
7280 .globl __libc_pvalloc
7281 .type __libc_pvalloc, @function
7282 __libc_pvalloc:
7283 movl __libc_malloc_initialized(%rip), %eax
7284 pushq %rbx
7285 movq %rdi, %rbx
7286 testl %eax, %eax
7287 js .L1390
7288 .L1384:
7289 movq _dl_pagesize(%rip), %rdi
7290 movq 8(%rsp), %rdx
7291 leaq -1(%rdi), %rsi
7292 addq %rsi, %rbx
7293 jc .L1386
7294 movl $1, %esi
7295 subq %rdi, %rsi
7296 andq %rbx, %rsi
7297 popq %rbx
7298 jmp _mid_memalign
7299 .p2align 4,,10
7300 .p2align 3
7301 .L1390:
7302 call ptmalloc_init.part.0
7303 jmp .L1384
7304 .L1386:
7305 movq __libc_errno@gottpoff(%rip), %rax
7306 movl $12, %fs:(%rax)
7307 xorl %eax, %eax
7308 popq %rbx
7310 .size __libc_pvalloc, .-__libc_pvalloc
7311 .weak pvalloc
7312 .set pvalloc,__libc_pvalloc
7313 .globl __pvalloc
7314 .set __pvalloc,__libc_pvalloc
7315 .section .rodata.str1.8
7316 .align 8
7317 .LC91:
7318 .string "!mem || chunk_is_mmapped (mem2chunk (mem)) || av == arena_for_chunk (mem2chunk (mem))"
7319 .section .rodata.str1.1
7320 .LC92:
7321 .string "nclears >= 3"
7322 .text
7323 .p2align 4,,15
7324 .globl __libc_calloc
7325 .type __libc_calloc, @function
7326 __libc_calloc:
7327 pushq %r13
7328 pushq %r12
7329 movq %rdi, %rax
7330 pushq %rbp
7331 pushq %rbx
7332 subq $8, %rsp
7333 mulq %rsi
7334 movq %rax, %rbx
7335 seto %al
7336 testq %rbx, %rbx
7337 js .L1444
7338 movzbl %al, %eax
7339 testq %rax, %rax
7340 jne .L1444
7341 movq __malloc_hook(%rip), %rax
7342 testq %rax, %rax
7343 jne .L1447
7344 cmpq $0, %fs:tcache@tpoff
7345 je .L1448
7346 .L1399:
7347 #APP
7348 # 3605 "malloc.c" 1
7349 movl %fs:24,%eax
7350 # 0 "" 2
7351 #NO_APP
7352 testl %eax, %eax
7353 jne .L1449
7354 movq 96+main_arena(%rip), %r12
7355 leaq main_arena(%rip), %r13
7356 movq 8(%r12), %rbp
7357 andq $-8, %rbp
7358 .L1404:
7359 movq %rbx, %rsi
7360 movq %r13, %rdi
7361 call _int_malloc
7362 testq %rax, %rax
7363 movq %rax, %r8
7364 je .L1405
7365 movq -8(%rax), %rax
7366 testb $2, %al
7367 je .L1450
7368 .L1405:
7369 #APP
7370 # 3642 "malloc.c" 1
7371 movl %fs:24,%eax
7372 # 0 "" 2
7373 #NO_APP
7374 testl %eax, %eax
7375 jne .L1451
7376 .L1407:
7377 testq %r8, %r8
7378 je .L1410
7379 movq -8(%r8), %rdx
7380 movl perturb_byte(%rip), %eax
7381 testb $2, %dl
7382 je .L1411
7383 testl %eax, %eax
7384 jne .L1452
7385 .L1391:
7386 addq $8, %rsp
7387 movq %r8, %rax
7388 popq %rbx
7389 popq %rbp
7390 popq %r12
7391 popq %r13
7393 .p2align 4,,10
7394 .p2align 3
7395 .L1411:
7396 andq $-8, %rdx
7397 testl %eax, %eax
7398 je .L1453
7399 .L1412:
7400 subq $8, %rdx
7401 movq %rdx, %rax
7402 shrq $3, %rax
7403 cmpq $2, %rax
7404 jbe .L1454
7405 cmpq $9, %rax
7406 ja .L1455
7407 cmpq $4, %rax
7408 movq $0, (%r8)
7409 movq $0, 8(%r8)
7410 movq $0, 16(%r8)
7411 jbe .L1391
7412 cmpq $6, %rax
7413 movq $0, 24(%r8)
7414 movq $0, 32(%r8)
7415 jbe .L1391
7416 cmpq $9, %rax
7417 movq $0, 40(%r8)
7418 movq $0, 48(%r8)
7419 jne .L1391
7420 movq $0, 56(%r8)
7421 movq $0, 64(%r8)
7422 jmp .L1391
7423 .p2align 4,,10
7424 .p2align 3
7425 .L1450:
7426 testb $4, %al
7427 leaq main_arena(%rip), %rdx
7428 je .L1406
7429 leaq -16(%r8), %rax
7430 andq $-67108864, %rax
7431 movq (%rax), %rdx
7432 .L1406:
7433 cmpq %r13, %rdx
7434 je .L1405
7435 leaq __PRETTY_FUNCTION__.13069(%rip), %rcx
7436 leaq .LC6(%rip), %rsi
7437 leaq .LC91(%rip), %rdi
7438 movl $3640, %edx
7439 call __malloc_assert
7440 .p2align 4,,10
7441 .p2align 3
7442 .L1453:
7443 leaq -16(%r8), %rax
7444 cmpq %rax, %r12
7445 jne .L1412
7446 cmpq %rdx, %rbp
7447 cmovb %rbp, %rdx
7448 jmp .L1412
7449 .p2align 4,,10
7450 .p2align 3
7451 .L1455:
7452 movq %r8, %rdi
7453 xorl %esi, %esi
7454 call memset@PLT
7455 addq $8, %rsp
7456 movq %rax, %r8
7457 popq %rbx
7458 movq %r8, %rax
7459 popq %rbp
7460 popq %r12
7461 popq %r13
7463 .p2align 4,,10
7464 .p2align 3
7465 .L1444:
7466 movq __libc_errno@gottpoff(%rip), %rax
7467 xorl %r8d, %r8d
7468 movl $12, %fs:(%rax)
7469 addq $8, %rsp
7470 movq %r8, %rax
7471 popq %rbx
7472 popq %rbp
7473 popq %r12
7474 popq %r13
7476 .p2align 4,,10
7477 .p2align 3
7478 .L1447:
7479 movq 40(%rsp), %rsi
7480 movq %rbx, %rdi
7481 call *%rax
7482 xorl %esi, %esi
7483 testq %rax, %rax
7484 movq %rbx, %rdx
7485 movq %rax, %rdi
7486 je .L1410
7487 .L1446:
7488 addq $8, %rsp
7489 popq %rbx
7490 popq %rbp
7491 popq %r12
7492 popq %r13
7493 jmp memset@PLT
7494 .p2align 4,,10
7495 .p2align 3
7496 .L1448:
7497 cmpb $0, %fs:tcache_shutting_down@tpoff
7498 jne .L1399
7499 call tcache_init.part.6
7500 jmp .L1399
7501 .p2align 4,,10
7502 .p2align 3
7503 .L1449:
7504 movq thread_arena@gottpoff(%rip), %rax
7505 movq %fs:(%rax), %r13
7506 testq %r13, %r13
7507 je .L1401
7508 #APP
7509 # 3608 "malloc.c" 1
7510 movl %fs:24,%eax
7511 # 0 "" 2
7512 #NO_APP
7513 testl %eax, %eax
7514 jne .L1402
7515 movl $1, %edx
7516 #APP
7517 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
7518 cmpxchgl %edx, 0(%r13)
7519 # 0 "" 2
7520 #NO_APP
7521 .L1403:
7522 movq 96(%r13), %r12
7523 leaq main_arena(%rip), %rax
7524 movq 8(%r12), %rbp
7525 andq $-8, %rbp
7526 cmpq %rax, %r13
7527 je .L1404
7528 movq %r12, %rax
7529 andq $-67108864, %rax
7530 addq 24(%rax), %rax
7531 subq %r12, %rax
7532 cmpq %rax, %rbp
7533 cmovb %rax, %rbp
7534 jmp .L1404
7535 .p2align 4,,10
7536 .p2align 3
7537 .L1451:
7538 testq %r8, %r8
7539 jne .L1408
7540 testq %r13, %r13
7541 jne .L1456
7542 .L1408:
7543 testq %r13, %r13
7544 je .L1407
7545 #APP
7546 # 3652 "malloc.c" 1
7547 movl %fs:24,%eax
7548 # 0 "" 2
7549 #NO_APP
7550 testl %eax, %eax
7551 jne .L1409
7552 subl $1, 0(%r13)
7553 jmp .L1407
7554 .p2align 4,,10
7555 .p2align 3
7556 .L1456:
7557 movq %r13, %rdi
7558 movq %rbx, %rsi
7559 call arena_get_retry
7560 movq %rbx, %rsi
7561 movq %rax, %rdi
7562 movq %rax, %r13
7563 call _int_malloc
7564 movq %rax, %r8
7565 jmp .L1408
7566 .p2align 4,,10
7567 .p2align 3
7568 .L1410:
7569 xorl %r8d, %r8d
7570 jmp .L1391
7571 .p2align 4,,10
7572 .p2align 3
7573 .L1452:
7574 movq %rbx, %rdx
7575 xorl %esi, %esi
7576 movq %r8, %rdi
7577 jmp .L1446
7578 .p2align 4,,10
7579 .p2align 3
7580 .L1401:
7581 call get_free_list
7582 testq %rax, %rax
7583 movq %rax, %r13
7584 jne .L1403
7585 xorl %esi, %esi
7586 movq %rbx, %rdi
7587 call arena_get2.part.4
7588 testq %rax, %rax
7589 movq %rax, %r13
7590 jne .L1403
7591 xorl %ebp, %ebp
7592 xorl %r12d, %r12d
7593 jmp .L1404
7594 .L1402:
7595 xorl %eax, %eax
7596 movl $1, %edx
7597 lock cmpxchgl %edx, 0(%r13)
7598 je .L1403
7599 movq %r13, %rdi
7600 call __lll_lock_wait_private
7601 jmp .L1403
7602 .L1409:
7603 xorl %eax, %eax
7604 #APP
7605 # 3652 "malloc.c" 1
7606 xchgl %eax, 0(%r13)
7607 # 0 "" 2
7608 #NO_APP
7609 cmpl $1, %eax
7610 jle .L1407
7611 xorl %r10d, %r10d
7612 movl $1, %edx
7613 movl $129, %esi
7614 movq %r13, %rdi
7615 movl $202, %eax
7616 #APP
7617 # 3652 "malloc.c" 1
7618 syscall
7620 # 0 "" 2
7621 #NO_APP
7622 jmp .L1407
7623 .L1454:
7624 leaq __PRETTY_FUNCTION__.13069(%rip), %rcx
7625 leaq .LC6(%rip), %rsi
7626 leaq .LC92(%rip), %rdi
7627 movl $3691, %edx
7628 call __malloc_assert
7629 .size __libc_calloc, .-__libc_calloc
7630 .weak calloc
7631 .set calloc,__libc_calloc
7632 .globl __calloc
7633 .set __calloc,__libc_calloc
7634 .section .rodata.str1.8
7635 .align 8
7636 .LC93:
7637 .string "(char *) chunk2rawmem (p) + 2 * CHUNK_HDR_SZ <= paligned_mem"
7638 .align 8
7639 .LC94:
7640 .string "(char *) p + size > paligned_mem"
7641 .text
7642 .p2align 4,,15
7643 .globl __malloc_trim
7644 .type __malloc_trim, @function
7645 __malloc_trim:
7646 pushq %r15
7647 pushq %r14
7648 pushq %r13
7649 pushq %r12
7650 pushq %rbp
7651 pushq %rbx
7652 subq $40, %rsp
7653 movl __libc_malloc_initialized(%rip), %eax
7654 movq %rdi, 24(%rsp)
7655 testl %eax, %eax
7656 js .L1486
7657 .L1458:
7658 leaq main_arena(%rip), %rax
7659 movl $0, 20(%rsp)
7660 movq %rax, 8(%rsp)
7661 .L1477:
7662 #APP
7663 # 5063 "malloc.c" 1
7664 movl %fs:24,%eax
7665 # 0 "" 2
7666 #NO_APP
7667 testl %eax, %eax
7668 movl $1, %edx
7669 movq 8(%rsp), %rcx
7670 jne .L1459
7671 #APP
7672 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
7673 cmpxchgl %edx, (%rcx)
7674 # 0 "" 2
7675 #NO_APP
7676 .L1460:
7677 movq 8(%rsp), %rdi
7678 call malloc_consolidate
7679 movq _dl_pagesize(%rip), %rcx
7680 cmpq $1023, %rcx
7681 ja .L1461
7682 movl %ecx, %eax
7683 shrl $4, %eax
7684 movl %eax, 16(%rsp)
7685 .L1462:
7686 movq 8(%rsp), %rax
7687 leaq -1(%rcx), %rbp
7688 leaq 47(%rcx), %r13
7689 negq %rcx
7690 xorl %edx, %edx
7691 movl $1, %r15d
7692 movq %rcx, %r12
7693 leaq 96(%rax), %r14
7694 jmp .L1473
7695 .p2align 4,,10
7696 .p2align 3
7697 .L1488:
7698 cmpl %r15d, 16(%rsp)
7699 jle .L1478
7700 .L1467:
7701 addl $1, %r15d
7702 addq $16, %r14
7703 cmpl $128, %r15d
7704 je .L1487
7705 .L1473:
7706 cmpl $1, %r15d
7707 jne .L1488
7708 .L1478:
7709 movq 24(%r14), %rbx
7710 cmpq %rbx, %r14
7711 jne .L1472
7712 jmp .L1467
7713 .p2align 4,,10
7714 .p2align 3
7715 .L1469:
7716 movq 24(%rbx), %rbx
7717 cmpq %rbx, %r14
7718 je .L1467
7719 .L1472:
7720 movq 8(%rbx), %rsi
7721 andq $-8, %rsi
7722 cmpq %rsi, %r13
7723 jnb .L1469
7724 leaq (%rbx,%r13), %rdi
7725 leaq 48(%rbx), %rax
7726 andq %r12, %rdi
7727 cmpq %rax, %rdi
7728 jb .L1489
7729 leaq (%rbx,%rsi), %rax
7730 cmpq %rax, %rdi
7731 jnb .L1490
7732 movq %rdi, %rax
7733 subq %rbx, %rax
7734 subq %rax, %rsi
7735 cmpq %rsi, %rbp
7736 jnb .L1469
7737 movl $4, %edx
7738 andq %r12, %rsi
7739 call __madvise
7740 movl $1, %edx
7741 jmp .L1469
7742 .L1487:
7743 leaq main_arena(%rip), %rcx
7744 cmpq %rcx, 8(%rsp)
7745 je .L1491
7746 .L1474:
7747 orl %edx, 20(%rsp)
7748 #APP
7749 # 5065 "malloc.c" 1
7750 movl %fs:24,%eax
7751 # 0 "" 2
7752 #NO_APP
7753 testl %eax, %eax
7754 jne .L1475
7755 movq 8(%rsp), %rax
7756 subl $1, (%rax)
7757 .L1476:
7758 movq 8(%rsp), %rax
7759 leaq main_arena(%rip), %rcx
7760 movq 2160(%rax), %rax
7761 cmpq %rcx, %rax
7762 movq %rax, 8(%rsp)
7763 jne .L1477
7764 movl 20(%rsp), %eax
7765 addq $40, %rsp
7766 popq %rbx
7767 popq %rbp
7768 popq %r12
7769 popq %r13
7770 popq %r14
7771 popq %r15
7773 .L1461:
7774 movq %rcx, %rbp
7775 shrq $6, %rbp
7776 cmpq $48, %rbp
7777 ja .L1463
7778 leal 48(%rbp), %eax
7779 movl %eax, 16(%rsp)
7780 jmp .L1462
7781 .L1463:
7782 movq %rcx, %rbp
7783 shrq $9, %rbp
7784 cmpq $20, %rbp
7785 ja .L1464
7786 leal 91(%rbp), %eax
7787 movl %eax, 16(%rsp)
7788 jmp .L1462
7789 .L1491:
7790 movq 24(%rsp), %rdi
7791 movl %edx, 16(%rsp)
7792 call systrim.isra.1.constprop.12
7793 movl 16(%rsp), %edx
7794 orl %eax, %edx
7795 jmp .L1474
7796 .L1490:
7797 leaq __PRETTY_FUNCTION__.13394(%rip), %rcx
7798 leaq .LC6(%rip), %rsi
7799 leaq .LC94(%rip), %rdi
7800 movl $5023, %edx
7801 call __malloc_assert
7802 .L1489:
7803 leaq __PRETTY_FUNCTION__.13394(%rip), %rcx
7804 leaq .LC6(%rip), %rsi
7805 leaq .LC93(%rip), %rdi
7806 movl $5022, %edx
7807 call __malloc_assert
7808 .L1459:
7809 xorl %eax, %eax
7810 lock cmpxchgl %edx, (%rcx)
7811 je .L1460
7812 movq 8(%rsp), %rdi
7813 call __lll_lock_wait_private
7814 jmp .L1460
7815 .p2align 4,,10
7816 .p2align 3
7817 .L1464:
7818 movq %rcx, %rbp
7819 shrq $12, %rbp
7820 cmpq $10, %rbp
7821 ja .L1465
7822 leal 110(%rbp), %eax
7823 movl %eax, 16(%rsp)
7824 jmp .L1462
7825 .L1475:
7826 xorl %eax, %eax
7827 movq 8(%rsp), %rcx
7828 #APP
7829 # 5065 "malloc.c" 1
7830 xchgl %eax, (%rcx)
7831 # 0 "" 2
7832 #NO_APP
7833 cmpl $1, %eax
7834 jle .L1476
7835 xorl %r10d, %r10d
7836 movl $1, %edx
7837 movl $129, %esi
7838 movq %rcx, %rdi
7839 movl $202, %eax
7840 #APP
7841 # 5065 "malloc.c" 1
7842 syscall
7844 # 0 "" 2
7845 #NO_APP
7846 jmp .L1476
7847 .p2align 4,,10
7848 .p2align 3
7849 .L1486:
7850 call ptmalloc_init.part.0
7851 jmp .L1458
7852 .L1465:
7853 movq %rcx, %rbp
7854 shrq $15, %rbp
7855 cmpq $4, %rbp
7856 ja .L1466
7857 leal 119(%rbp), %eax
7858 movl %eax, 16(%rsp)
7859 jmp .L1462
7860 .L1466:
7861 movq %rcx, %rbp
7862 movl $2, %eax
7863 shrq $18, %rbp
7864 cmpq $2, %rbp
7865 cmova %rax, %rbp
7866 leal 124(%rbp), %eax
7867 movl %eax, 16(%rsp)
7868 jmp .L1462
7869 .size __malloc_trim, .-__malloc_trim
7870 .weak malloc_trim
7871 .set malloc_trim,__malloc_trim
7872 .section .rodata.str1.8
7873 .align 8
7874 .LC95:
7875 .string "malloc_check_get_size: memory corruption"
7876 .text
7877 .p2align 4,,15
7878 .globl __malloc_usable_size
7879 .type __malloc_usable_size, @function
7880 __malloc_usable_size:
7881 testq %rdi, %rdi
7882 je .L1502
7883 movq -8(%rdi), %rdx
7884 leaq -16(%rdi), %rsi
7885 movq %rdx, %rax
7886 andq $-8, %rdx
7887 andl $2, %eax
7888 cmpl $1, using_malloc_checking(%rip)
7889 je .L1516
7890 testq %rax, %rax
7891 je .L1501
7892 leaq -16(%rdx), %rax
7894 .p2align 4,,10
7895 .p2align 3
7896 .L1501:
7897 testb $1, -8(%rdi,%rdx)
7898 leaq -8(%rdx), %rcx
7899 cmovne %rcx, %rax
7901 .p2align 4,,10
7902 .p2align 3
7903 .L1502:
7904 xorl %eax, %eax
7906 .p2align 4,,10
7907 .p2align 3
7908 .L1516:
7909 movq %rsi, %r8
7910 movq %rsi, %rcx
7911 shrq $11, %rcx
7912 shrq $3, %r8
7913 xorl %ecx, %r8d
7914 movl $2, %ecx
7915 cmpb $1, %r8b
7916 cmove %ecx, %r8d
7917 testq %rax, %rax
7918 sete %al
7919 movzbl %al, %eax
7920 leaq -1(%rdx,%rax,8), %rax
7921 movzbl -16(%rdi,%rax), %edx
7922 cmpb %r8b, %dl
7923 je .L1497
7924 testb %dl, %dl
7925 je .L1498
7926 leaq 16(%rdx), %rcx
7927 cmpq %rcx, %rax
7928 jnb .L1499
7929 jmp .L1498
7930 .p2align 4,,10
7931 .p2align 3
7932 .L1500:
7933 testb %dl, %dl
7934 je .L1498
7935 leaq 16(%rdx), %rcx
7936 cmpq %rax, %rcx
7937 ja .L1498
7938 .L1499:
7939 subq %rdx, %rax
7940 movzbl (%rsi,%rax), %edx
7941 cmpb %r8b, %dl
7942 jne .L1500
7943 .L1497:
7944 subq $16, %rax
7946 .L1498:
7947 leaq .LC95(%rip), %rdi
7948 subq $8, %rsp
7949 call malloc_printerr
7950 .size __malloc_usable_size, .-__malloc_usable_size
7951 .weak malloc_usable_size
7952 .set malloc_usable_size,__malloc_usable_size
7953 .p2align 4,,15
7954 .globl __libc_mallinfo2
7955 .hidden __libc_mallinfo2
7956 .type __libc_mallinfo2, @function
7957 __libc_mallinfo2:
7958 pushq %r14
7959 pushq %r13
7960 movq %rdi, %r13
7961 pushq %r12
7962 pushq %rbp
7963 pushq %rbx
7964 subq $80, %rsp
7965 movl __libc_malloc_initialized(%rip), %eax
7966 testl %eax, %eax
7967 js .L1526
7968 .L1518:
7969 pxor %xmm0, %xmm0
7970 leaq main_arena(%rip), %rbp
7971 movq %rsp, %r12
7972 xorl %r14d, %r14d
7973 movq %rbp, %rbx
7974 movaps %xmm0, (%rsp)
7975 movaps %xmm0, 16(%rsp)
7976 movaps %xmm0, 32(%rsp)
7977 movaps %xmm0, 48(%rsp)
7978 movaps %xmm0, 64(%rsp)
7979 .p2align 4,,10
7980 .p2align 3
7981 .L1523:
7982 #APP
7983 # 5205 "malloc.c" 1
7984 movl %fs:24,%eax
7985 # 0 "" 2
7986 #NO_APP
7987 testl %eax, %eax
7988 movl $1, %edx
7989 jne .L1519
7990 #APP
7991 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
7992 cmpxchgl %edx, (%rbx)
7993 # 0 "" 2
7994 #NO_APP
7995 .L1520:
7996 movq %r12, %rsi
7997 movq %rbx, %rdi
7998 call int_mallinfo
7999 #APP
8000 # 5207 "malloc.c" 1
8001 movl %fs:24,%eax
8002 # 0 "" 2
8003 #NO_APP
8004 testl %eax, %eax
8005 jne .L1521
8006 subl $1, (%rbx)
8007 .L1522:
8008 movq 2160(%rbx), %rbx
8009 cmpq %rbp, %rbx
8010 jne .L1523
8011 movdqa (%rsp), %xmm0
8012 movq %r13, %rax
8013 movups %xmm0, 0(%r13)
8014 movdqa 16(%rsp), %xmm0
8015 movups %xmm0, 16(%r13)
8016 movdqa 32(%rsp), %xmm0
8017 movups %xmm0, 32(%r13)
8018 movdqa 48(%rsp), %xmm0
8019 movups %xmm0, 48(%r13)
8020 movdqa 64(%rsp), %xmm0
8021 movups %xmm0, 64(%r13)
8022 addq $80, %rsp
8023 popq %rbx
8024 popq %rbp
8025 popq %r12
8026 popq %r13
8027 popq %r14
8029 .p2align 4,,10
8030 .p2align 3
8031 .L1521:
8032 movl %r14d, %eax
8033 #APP
8034 # 5207 "malloc.c" 1
8035 xchgl %eax, (%rbx)
8036 # 0 "" 2
8037 #NO_APP
8038 cmpl $1, %eax
8039 jle .L1522
8040 xorl %r10d, %r10d
8041 movl $1, %edx
8042 movl $129, %esi
8043 movq %rbx, %rdi
8044 movl $202, %eax
8045 #APP
8046 # 5207 "malloc.c" 1
8047 syscall
8049 # 0 "" 2
8050 #NO_APP
8051 jmp .L1522
8052 .p2align 4,,10
8053 .p2align 3
8054 .L1519:
8055 movl %r14d, %eax
8056 lock cmpxchgl %edx, (%rbx)
8057 je .L1520
8058 movq %rbx, %rdi
8059 call __lll_lock_wait_private
8060 jmp .L1520
8061 .p2align 4,,10
8062 .p2align 3
8063 .L1526:
8064 call ptmalloc_init.part.0
8065 jmp .L1518
8066 .size __libc_mallinfo2, .-__libc_mallinfo2
8067 .weak mallinfo2
8068 .set mallinfo2,__libc_mallinfo2
8069 .globl __mallinfo2
8070 .set __mallinfo2,__libc_mallinfo2
8071 .p2align 4,,15
8072 .globl __libc_mallinfo
8073 .type __libc_mallinfo, @function
8074 __libc_mallinfo:
8075 pushq %rbx
8076 movq %rdi, %rbx
8077 subq $80, %rsp
8078 movq %rsp, %rdi
8079 call __libc_mallinfo2
8080 movq (%rsp), %rax
8081 movl %eax, (%rbx)
8082 movq 8(%rsp), %rax
8083 movl %eax, 4(%rbx)
8084 movq 16(%rsp), %rax
8085 movl %eax, 8(%rbx)
8086 movq 24(%rsp), %rax
8087 movl %eax, 12(%rbx)
8088 movq 32(%rsp), %rax
8089 movl %eax, 16(%rbx)
8090 movq 40(%rsp), %rax
8091 movl %eax, 20(%rbx)
8092 movq 48(%rsp), %rax
8093 movl %eax, 24(%rbx)
8094 movq 56(%rsp), %rax
8095 movl %eax, 28(%rbx)
8096 movq 64(%rsp), %rax
8097 movl %eax, 32(%rbx)
8098 movq 72(%rsp), %rax
8099 movl %eax, 36(%rbx)
8100 addq $80, %rsp
8101 movq %rbx, %rax
8102 popq %rbx
8104 .size __libc_mallinfo, .-__libc_mallinfo
8105 .weak mallinfo
8106 .set mallinfo,__libc_mallinfo
8107 .globl __mallinfo
8108 .set __mallinfo,__libc_mallinfo
8109 .section .rodata.str1.1
8110 .LC96:
8111 .string "Arena %d:\n"
8112 .LC97:
8113 .string "system bytes = %10u\n"
8114 .LC98:
8115 .string "in use bytes = %10u\n"
8116 .LC99:
8117 .string "Total (incl. mmap):\n"
8118 .LC100:
8119 .string "max mmap regions = %10u\n"
8120 .LC101:
8121 .string "max mmap bytes = %10lu\n"
8122 .text
8123 .p2align 4,,15
8124 .globl __malloc_stats
8125 .type __malloc_stats, @function
8126 __malloc_stats:
8127 pushq %r15
8128 pushq %r14
8129 pushq %r13
8130 pushq %r12
8131 pushq %rbp
8132 pushq %rbx
8133 subq $104, %rsp
8134 movl __libc_malloc_initialized(%rip), %eax
8135 movq 56+mp_(%rip), %rbp
8136 testl %eax, %eax
8137 movl %ebp, %r12d
8138 js .L1538
8139 .L1530:
8140 movq stderr(%rip), %rax
8141 leaq main_arena(%rip), %r13
8142 xorl %ebx, %ebx
8143 leaq 16(%rsp), %r15
8144 movq %r13, %r14
8145 movl 116(%rax), %ecx
8146 movl %ecx, %edx
8147 movl %ecx, 12(%rsp)
8148 orl $2, %edx
8149 movl %edx, 116(%rax)
8150 jmp .L1536
8151 .p2align 4,,10
8152 .p2align 3
8153 .L1539:
8154 addl $1, %ebx
8155 .L1536:
8156 pxor %xmm0, %xmm0
8157 movaps %xmm0, (%r15)
8158 movaps %xmm0, 16(%r15)
8159 movaps %xmm0, 32(%r15)
8160 movaps %xmm0, 48(%r15)
8161 movaps %xmm0, 64(%r15)
8162 #APP
8163 # 5259 "malloc.c" 1
8164 movl %fs:24,%eax
8165 # 0 "" 2
8166 #NO_APP
8167 testl %eax, %eax
8168 movl $1, %edx
8169 jne .L1531
8170 #APP
8171 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
8172 cmpxchgl %edx, (%r14)
8173 # 0 "" 2
8174 #NO_APP
8175 .L1532:
8176 movq %r15, %rsi
8177 movq %r14, %rdi
8178 call int_mallinfo
8179 movq stderr(%rip), %rdi
8180 leaq .LC96(%rip), %rsi
8181 movl %ebx, %edx
8182 xorl %eax, %eax
8183 call fprintf
8184 movl 16(%rsp), %edx
8185 movq stderr(%rip), %rdi
8186 leaq .LC97(%rip), %rsi
8187 xorl %eax, %eax
8188 call fprintf
8189 movl 72(%rsp), %edx
8190 movq stderr(%rip), %rdi
8191 leaq .LC98(%rip), %rsi
8192 xorl %eax, %eax
8193 call fprintf
8194 addl 16(%rsp), %r12d
8195 addl 72(%rsp), %ebp
8196 #APP
8197 # 5270 "malloc.c" 1
8198 movl %fs:24,%eax
8199 # 0 "" 2
8200 #NO_APP
8201 testl %eax, %eax
8202 jne .L1533
8203 subl $1, (%r14)
8204 .L1534:
8205 movq 2160(%r14), %r14
8206 cmpq %r13, %r14
8207 jne .L1539
8208 movq stderr(%rip), %rcx
8209 leaq .LC99(%rip), %rdi
8210 movl $20, %edx
8211 movl $1, %esi
8212 call fwrite@PLT
8213 movq stderr(%rip), %rdi
8214 leaq .LC97(%rip), %rsi
8215 movl %r12d, %edx
8216 xorl %eax, %eax
8217 call fprintf
8218 movq stderr(%rip), %rdi
8219 leaq .LC98(%rip), %rsi
8220 movl %ebp, %edx
8221 xorl %eax, %eax
8222 call fprintf
8223 movl 48+mp_(%rip), %edx
8224 movq stderr(%rip), %rdi
8225 leaq .LC100(%rip), %rsi
8226 xorl %eax, %eax
8227 call fprintf
8228 movq 64+mp_(%rip), %rdx
8229 movq stderr(%rip), %rdi
8230 leaq .LC101(%rip), %rsi
8231 xorl %eax, %eax
8232 call fprintf
8233 movq stderr(%rip), %rax
8234 movl 12(%rsp), %ecx
8235 movl %ecx, 116(%rax)
8236 addq $104, %rsp
8237 popq %rbx
8238 popq %rbp
8239 popq %r12
8240 popq %r13
8241 popq %r14
8242 popq %r15
8244 .p2align 4,,10
8245 .p2align 3
8246 .L1533:
8247 xorl %eax, %eax
8248 #APP
8249 # 5270 "malloc.c" 1
8250 xchgl %eax, (%r14)
8251 # 0 "" 2
8252 #NO_APP
8253 cmpl $1, %eax
8254 jle .L1534
8255 xorl %r10d, %r10d
8256 movl $1, %edx
8257 movl $129, %esi
8258 movq %r14, %rdi
8259 movl $202, %eax
8260 #APP
8261 # 5270 "malloc.c" 1
8262 syscall
8264 # 0 "" 2
8265 #NO_APP
8266 jmp .L1534
8267 .p2align 4,,10
8268 .p2align 3
8269 .L1531:
8270 xorl %eax, %eax
8271 lock cmpxchgl %edx, (%r14)
8272 je .L1532
8273 movq %r14, %rdi
8274 call __lll_lock_wait_private
8275 jmp .L1532
8276 .p2align 4,,10
8277 .p2align 3
8278 .L1538:
8279 call ptmalloc_init.part.0
8280 jmp .L1530
8281 .size __malloc_stats, .-__malloc_stats
8282 .weak malloc_stats
8283 .set malloc_stats,__malloc_stats
8284 .p2align 4,,15
8285 .globl __libc_mallopt
8286 .hidden __libc_mallopt
8287 .type __libc_mallopt, @function
8288 __libc_mallopt:
8289 pushq %rbp
8290 pushq %rbx
8291 movslq %esi, %rbp
8292 movl %edi, %ebx
8293 subq $8, %rsp
8294 movl __libc_malloc_initialized(%rip), %eax
8295 testl %eax, %eax
8296 js .L1564
8297 .L1541:
8298 #APP
8299 # 5420 "malloc.c" 1
8300 movl %fs:24,%eax
8301 # 0 "" 2
8302 #NO_APP
8303 testl %eax, %eax
8304 jne .L1542
8305 movl $1, %edx
8306 #APP
8307 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
8308 cmpxchgl %edx, main_arena(%rip)
8309 # 0 "" 2
8310 #NO_APP
8311 .L1543:
8312 leaq main_arena(%rip), %rdi
8313 call malloc_consolidate
8314 leal 8(%rbx), %eax
8315 cmpl $9, %eax
8316 ja .L1557
8317 leaq .L1546(%rip), %rdx
8318 movslq (%rdx,%rax,4), %rax
8319 addq %rdx, %rax
8320 jmp *%rax
8321 .section .rodata
8322 .align 4
8323 .align 4
8324 .L1546:
8325 .long .L1545-.L1546
8326 .long .L1547-.L1546
8327 .long .L1548-.L1546
8328 .long .L1557-.L1546
8329 .long .L1549-.L1546
8330 .long .L1550-.L1546
8331 .long .L1551-.L1546
8332 .long .L1552-.L1546
8333 .long .L1557-.L1546
8334 .long .L1553-.L1546
8335 .text
8336 .p2align 4,,10
8337 .p2align 3
8338 .L1564:
8339 call ptmalloc_init.part.0
8340 jmp .L1541
8341 .p2align 4,,10
8342 .p2align 3
8343 .L1552:
8344 movq %rbp, mp_(%rip)
8345 movl $1, 52+mp_(%rip)
8346 movl $1, %r8d
8347 .p2align 4,,10
8348 .p2align 3
8349 .L1544:
8350 #APP
8351 # 5474 "malloc.c" 1
8352 movl %fs:24,%eax
8353 # 0 "" 2
8354 #NO_APP
8355 testl %eax, %eax
8356 jne .L1555
8357 subl $1, main_arena(%rip)
8358 .L1540:
8359 addq $8, %rsp
8360 movl %r8d, %eax
8361 popq %rbx
8362 popq %rbp
8364 .p2align 4,,10
8365 .p2align 3
8366 .L1545:
8367 testl %ebp, %ebp
8368 movl $1, %r8d
8369 jle .L1544
8370 movq %rbp, 32+mp_(%rip)
8371 jmp .L1544
8372 .p2align 4,,10
8373 .p2align 3
8374 .L1553:
8375 xorl %r8d, %r8d
8376 cmpq $160, %rbp
8377 ja .L1544
8378 cmpq $7, %rbp
8379 movl $16, %eax
8380 jbe .L1554
8381 leaq 8(%rbp), %rax
8382 andq $-16, %rax
8383 .L1554:
8384 movq %rax, global_max_fast(%rip)
8385 movl %ebx, %r8d
8386 jmp .L1544
8387 .p2align 4,,10
8388 .p2align 3
8389 .L1549:
8390 movl %ebp, 44+mp_(%rip)
8391 movl $1, 52+mp_(%rip)
8392 movl $1, %r8d
8393 jmp .L1544
8394 .p2align 4,,10
8395 .p2align 3
8396 .L1547:
8397 testl %ebp, %ebp
8398 movl $1, %r8d
8399 jle .L1544
8400 movq %rbp, 24+mp_(%rip)
8401 jmp .L1544
8402 .p2align 4,,10
8403 .p2align 3
8404 .L1548:
8405 movl %ebp, perturb_byte(%rip)
8406 movl $1, %r8d
8407 jmp .L1544
8408 .p2align 4,,10
8409 .p2align 3
8410 .L1550:
8411 xorl %r8d, %r8d
8412 cmpq $33554432, %rbp
8413 ja .L1544
8414 movq %rbp, 16+mp_(%rip)
8415 movl $1, 52+mp_(%rip)
8416 movl $1, %r8d
8417 jmp .L1544
8418 .p2align 4,,10
8419 .p2align 3
8420 .L1551:
8421 movq %rbp, 8+mp_(%rip)
8422 movl $1, 52+mp_(%rip)
8423 movl $1, %r8d
8424 jmp .L1544
8425 .p2align 4,,10
8426 .p2align 3
8427 .L1557:
8428 movl $1, %r8d
8429 jmp .L1544
8430 .p2align 4,,10
8431 .p2align 3
8432 .L1555:
8433 xorl %eax, %eax
8434 #APP
8435 # 5474 "malloc.c" 1
8436 xchgl %eax, main_arena(%rip)
8437 # 0 "" 2
8438 #NO_APP
8439 cmpl $1, %eax
8440 jle .L1540
8441 xorl %r10d, %r10d
8442 movl $1, %edx
8443 movl $129, %esi
8444 leaq main_arena(%rip), %rdi
8445 movl $202, %eax
8446 #APP
8447 # 5474 "malloc.c" 1
8448 syscall
8450 # 0 "" 2
8451 #NO_APP
8452 jmp .L1540
8453 .p2align 4,,10
8454 .p2align 3
8455 .L1542:
8456 xorl %eax, %eax
8457 movl $1, %edx
8458 lock cmpxchgl %edx, main_arena(%rip)
8459 je .L1543
8460 leaq main_arena(%rip), %rdi
8461 call __lll_lock_wait_private
8462 jmp .L1543
8463 .size __libc_mallopt, .-__libc_mallopt
8464 .weak mallopt
8465 .set mallopt,__libc_mallopt
8466 .globl __mallopt
8467 .set __mallopt,__libc_mallopt
8468 .p2align 4,,15
8469 .globl __posix_memalign
8470 .type __posix_memalign, @function
8471 __posix_memalign:
8472 testb $7, %sil
8473 movl $22, %eax
8474 jne .L1571
8475 movq %rsi, %rax
8476 shrq $3, %rax
8477 leaq -1(%rax), %rcx
8478 testq %rax, %rcx
8479 jne .L1568
8480 testq %rsi, %rsi
8481 je .L1568
8482 pushq %rbx
8483 movq %rdx, %rcx
8484 movq 8(%rsp), %rdx
8485 movq %rsi, %rax
8486 movq %rdi, %rbx
8487 movq %rcx, %rsi
8488 movq %rax, %rdi
8489 call _mid_memalign
8490 testq %rax, %rax
8491 je .L1569
8492 movq %rax, (%rbx)
8493 xorl %eax, %eax
8494 popq %rbx
8496 .p2align 4,,10
8497 .p2align 3
8498 .L1568:
8499 movl $22, %eax
8501 .p2align 4,,10
8502 .p2align 3
8503 .L1571:
8504 rep ret
8505 .p2align 4,,10
8506 .p2align 3
8507 .L1569:
8508 movl $12, %eax
8509 popq %rbx
8511 .size __posix_memalign, .-__posix_memalign
8512 .weak posix_memalign
8513 .set posix_memalign,__posix_memalign
8514 .section .rodata.str1.1
8515 .LC102:
8516 .string "<malloc version=\"1\">\n"
8517 .text
8518 .p2align 4,,15
8519 .globl __malloc_info
8520 .type __malloc_info, @function
8521 __malloc_info:
8522 testl %edi, %edi
8523 jne .L1575
8524 movl __libc_malloc_initialized(%rip), %eax
8525 pushq %rbx
8526 movq %rsi, %rbx
8527 testl %eax, %eax
8528 js .L1580
8529 .L1576:
8530 leaq .LC102(%rip), %rdi
8531 movq %rbx, %rsi
8532 call _IO_fputs
8533 movq %rbx, %rdi
8534 popq %rbx
8535 jmp __malloc_info.part.11
8536 .p2align 4,,10
8537 .p2align 3
8538 .L1580:
8539 call ptmalloc_init.part.0
8540 jmp .L1576
8541 .L1575:
8542 movl $22, %eax
8544 .size __malloc_info, .-__malloc_info
8545 .weak malloc_info
8546 .set malloc_info,__malloc_info
8547 .section .rodata.str1.1
8548 .type __PRETTY_FUNCTION__.13394, @object
8549 .size __PRETTY_FUNCTION__.13394, 6
8550 __PRETTY_FUNCTION__.13394:
8551 .string "mtrim"
8552 .section .rodata.str1.8
8553 .align 8
8554 .type __PRETTY_FUNCTION__.13069, @object
8555 .size __PRETTY_FUNCTION__.13069, 14
8556 __PRETTY_FUNCTION__.13069:
8557 .string "__libc_calloc"
8558 .align 8
8559 .type __PRETTY_FUNCTION__.12988, @object
8560 .size __PRETTY_FUNCTION__.12988, 14
8561 __PRETTY_FUNCTION__.12988:
8562 .string "_mid_memalign"
8563 .align 8
8564 .type __PRETTY_FUNCTION__.12922, @object
8565 .size __PRETTY_FUNCTION__.12922, 15
8566 __PRETTY_FUNCTION__.12922:
8567 .string "__libc_realloc"
8568 .section .rodata.str1.16,"aMS",@progbits,1
8569 .align 16
8570 .type __PRETTY_FUNCTION__.12114, @object
8571 .size __PRETTY_FUNCTION__.12114, 22
8572 __PRETTY_FUNCTION__.12114:
8573 .string "remove_from_free_list"
8574 .local next_to_use.12122
8575 .comm next_to_use.12122,8,8
8576 .section .rodata.str1.8
8577 .align 8
8578 .type __PRETTY_FUNCTION__.11963, @object
8579 .size __PRETTY_FUNCTION__.11963, 13
8580 __PRETTY_FUNCTION__.11963:
8581 .string "detach_arena"
8582 .align 8
8583 .type __PRETTY_FUNCTION__.12067, @object
8584 .size __PRETTY_FUNCTION__.12067, 14
8585 __PRETTY_FUNCTION__.12067:
8586 .string "get_free_list"
8587 .local narenas_limit.12181
8588 .comm narenas_limit.12181,8,8
8589 .align 8
8590 .type __PRETTY_FUNCTION__.12849, @object
8591 .size __PRETTY_FUNCTION__.12849, 14
8592 __PRETTY_FUNCTION__.12849:
8593 .string "__libc_malloc"
8594 .align 8
8595 .type __PRETTY_FUNCTION__.13362, @object
8596 .size __PRETTY_FUNCTION__.13362, 13
8597 __PRETTY_FUNCTION__.13362:
8598 .string "_int_realloc"
8599 .align 8
8600 .type __PRETTY_FUNCTION__.12747, @object
8601 .size __PRETTY_FUNCTION__.12747, 13
8602 __PRETTY_FUNCTION__.12747:
8603 .string "mremap_chunk"
8604 .align 8
8605 .type __PRETTY_FUNCTION__.12735, @object
8606 .size __PRETTY_FUNCTION__.12735, 13
8607 __PRETTY_FUNCTION__.12735:
8608 .string "munmap_chunk"
8609 .data
8610 .align 4
8611 .type may_shrink_heap.11292, @object
8612 .size may_shrink_heap.11292, 4
8613 may_shrink_heap.11292:
8614 .long -1
8615 .section .rodata.str1.8
8616 .align 8
8617 .type __PRETTY_FUNCTION__.11956, @object
8618 .size __PRETTY_FUNCTION__.11956, 10
8619 __PRETTY_FUNCTION__.11956:
8620 .string "heap_trim"
8621 .align 8
8622 .type __PRETTY_FUNCTION__.13291, @object
8623 .size __PRETTY_FUNCTION__.13291, 10
8624 __PRETTY_FUNCTION__.13291:
8625 .string "_int_free"
8626 .align 8
8627 .type __PRETTY_FUNCTION__.12690, @object
8628 .size __PRETTY_FUNCTION__.12690, 10
8629 __PRETTY_FUNCTION__.12690:
8630 .string "sysmalloc"
8631 .align 8
8632 .type __PRETTY_FUNCTION__.13182, @object
8633 .size __PRETTY_FUNCTION__.13182, 12
8634 __PRETTY_FUNCTION__.13182:
8635 .string "_int_malloc"
8636 .align 8
8637 .type __PRETTY_FUNCTION__.13380, @object
8638 .size __PRETTY_FUNCTION__.13380, 14
8639 __PRETTY_FUNCTION__.13380:
8640 .string "_int_memalign"
8641 .section .rodata.str1.16
8642 .align 16
8643 .type __PRETTY_FUNCTION__.12287, @object
8644 .size __PRETTY_FUNCTION__.12287, 30
8645 __PRETTY_FUNCTION__.12287:
8646 .string "__malloc_arena_thread_freeres"
8647 .section .tbss,"awT",@nobits
8648 .align 8
8649 .type tcache, @object
8650 .size tcache, 8
8651 tcache:
8652 .zero 8
8653 .type tcache_shutting_down, @object
8654 .size tcache_shutting_down, 1
8655 tcache_shutting_down:
8656 .zero 1
8657 .local using_malloc_checking
8658 .comm using_malloc_checking,4,4
8659 .local aligned_heap_area
8660 .comm aligned_heap_area,8,8
8661 .hidden __libc_malloc_initialized
8662 .globl __libc_malloc_initialized
8663 .data
8664 .align 4
8665 .type __libc_malloc_initialized, @object
8666 .size __libc_malloc_initialized, 4
8667 __libc_malloc_initialized:
8668 .long -1
8669 .local list_lock
8670 .comm list_lock,4,4
8671 .local free_list
8672 .comm free_list,8,8
8673 .align 8
8674 .type narenas, @object
8675 .size narenas, 8
8676 narenas:
8677 .quad 1
8678 .local free_list_lock
8679 .comm free_list_lock,4,4
8680 .section .tbss
8681 .align 8
8682 .type thread_arena, @object
8683 .size thread_arena, 8
8684 thread_arena:
8685 .zero 8
8686 .local perturb_byte
8687 .comm perturb_byte,4,4
8688 .weak __after_morecore_hook
8689 .bss
8690 .align 8
8691 .type __after_morecore_hook, @object
8692 .size __after_morecore_hook, 8
8693 __after_morecore_hook:
8694 .zero 8
8695 .weak __memalign_hook
8696 .section .data.rel.local,"aw",@progbits
8697 .align 8
8698 .type __memalign_hook, @object
8699 .size __memalign_hook, 8
8700 __memalign_hook:
8701 .quad memalign_hook_ini
8702 .weak __realloc_hook
8703 .align 8
8704 .type __realloc_hook, @object
8705 .size __realloc_hook, 8
8706 __realloc_hook:
8707 .quad realloc_hook_ini
8708 .weak __malloc_hook
8709 .align 8
8710 .type __malloc_hook, @object
8711 .size __malloc_hook, 8
8712 __malloc_hook:
8713 .quad malloc_hook_ini
8714 .weak __free_hook
8715 .bss
8716 .align 8
8717 .type __free_hook, @object
8718 .size __free_hook, 8
8719 __free_hook:
8720 .zero 8
8721 .data
8722 .align 32
8723 .type mp_, @object
8724 .size mp_, 112
8725 mp_:
8726 .quad 131072
8727 .quad 131072
8728 .quad 131072
8729 .quad 8
8730 .zero 12
8731 .long 65536
8732 .zero 32
8733 .quad 64
8734 .quad 1032
8735 .quad 7
8736 .quad 0
8737 .section .data.rel.local
8738 .align 32
8739 .type main_arena, @object
8740 .size main_arena, 2200
8741 main_arena:
8742 .long 0
8743 .zero 2156
8744 .quad main_arena
8745 .zero 8
8746 .quad 1
8747 .zero 16
8748 .local global_max_fast
8749 .comm global_max_fast,8,8
8750 .globl __morecore
8751 .align 8
8752 .type __morecore, @object
8753 .size __morecore, 8
8754 __morecore:
8755 .quad __default_morecore
8756 .hidden __default_morecore
8757 .hidden __close_nocancel
8758 .hidden __read_nocancel
8759 .hidden __open_nocancel
8760 .hidden __madvise
8761 .hidden memset
8762 .hidden _IO_fputs
8763 .hidden fprintf
8764 .hidden __get_nprocs
8765 .hidden __lll_lock_wait_private
8766 .hidden __mremap
8767 .hidden __munmap
8768 .hidden __mprotect
8769 .hidden __mmap
8770 .hidden abort
8771 .hidden fflush
8772 .hidden __fxprintf
8773 .hidden __libc_message