small_sort

创建于 差异永不过期
682 删除
703
669 添加
690
.file "small_sort.cpp"
.text
.intel_syntax noprefix
.intel_syntax noprefix
.file "small_sort.cpp"
# Start of file scope inline assembly
.globl _ZSt21ios_base_library_initv

# End of file scope inline assembly
.section .rodata.cst16,"aM",@progbits,16
.p2align 4, 0x0 # -- Begin function main
.LCPI0_0:
.long 0 # 0x0
.long 1 # 0x1
.long 2 # 0x2
.long 3 # 0x3
.LCPI0_1:
.long 12996205 # 0xc64e6d
.long 12996205 # 0xc64e6d
.long 12996205 # 0xc64e6d
.long 12996205 # 0xc64e6d
.LCPI0_2:
.long 12345 # 0x3039
.long 12345 # 0x3039
.long 12345 # 0x3039
.long 12345 # 0x3039
.LCPI0_3:
.long 1665517 # 0x1969ed
.long 1665517 # 0x1969ed
.long 1665517 # 0x1969ed
.long 1665517 # 0x1969ed
.LCPI0_4:
.byte 255 # 0xff
.byte 255 # 0xff
.byte 255 # 0xff
.byte 0 # 0x0
.byte 255 # 0xff
.byte 255 # 0xff
.byte 255 # 0xff
.byte 0 # 0x0
.byte 255 # 0xff
.byte 255 # 0xff
.byte 255 # 0xff
.byte 0 # 0x0
.byte 255 # 0xff
.byte 255 # 0xff
.byte 255 # 0xff
.byte 0 # 0x0
.LCPI0_5:
.long 8 # 0x8
.long 8 # 0x8
.long 8 # 0x8
.long 8 # 0x8
.text
.text
#APP
.globl main
.globl _ZSt21ios_base_library_initv
.p2align 4, 0x90
#NO_APP
.type main,@function
.p2align 4
main: # @main
.type _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEljNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.isra.0, @function
.Lfunc_begin0:
_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEljNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.isra.0:
.LFB3313:
.cfi_startproc
.cfi_startproc
lea rax, -1[rdx]
.cfi_personality 155, DW.ref.__gxx_personality_v0
push r13
.cfi_lsda 27, .Lexception0
# %bb.0:
push rbp
.cfi_def_cfa_offset 16
.cfi_def_cfa_offset 16
.cfi_offset 13, -16
push r15
mov r13, rdx
mov r8, rsi
push r12
.cfi_def_cfa_offset 24
.cfi_offset 12, -24
mov r9d, ecx
mov r12, rdx
and r13d, 1
push rbp
.cfi_def_cfa_offset 32
.cfi_offset 6, -32
mov rbp, rax
shr rbp, 63
push rbx
.cfi_def_cfa_offset 40
.cfi_offset 3, -40
add rbp, rax
sar rbp
cmp rsi, rbp
jl .L4
jmp .L2
.p2align 4,,10
.p2align 3
.L9:
mov rsi, rax
.L4:
lea rdx, 1[rsi]
lea rax, [rdx+rdx]
lea rdx, [rdi+rdx*8]
lea r10, -1[rax]
mov ecx, DWORD PTR [rdx]
lea r11, [rdi+r10*4]
mov ebx, DWORD PTR [r11]
cmp ecx, ebx
jnb .L3
mov ecx, ebx
mov rdx, r11
mov rax, r10
.L3:
mov DWORD PTR [rdi+rsi*4], ecx
cmp rbp, rax
jg .L9
test r13, r13
je .L8
.L5:
lea rsi, -1[rax]
mov rcx, rsi
shr rcx, 63
add rcx, rsi
sar rcx
cmp rax, r8
jg .L7
jmp .L6
.p2align 4,,10
.p2align 3
.L16:
mov DWORD PTR [rdx], esi
lea rdx, -1[rcx]
mov rax, rdx
shr rax, 63
add rax, rdx
sar rax
mov rdx, rax
mov rax, rcx
cmp r8, rcx
jge .L15
mov rcx, rdx
.L7:
lea r10, [rdi+rcx*4]
lea rdx, [rdi+rax*4]
mov esi, DWORD PTR [r10]
cmp esi, r9d
jb .L16
.L6:
mov DWORD PTR [rdx], r9d
pop rbx
.cfi_remember_state
.cfi_def_cfa_offset 32
pop rbp
.cfi_def_cfa_offset 24
.cfi_def_cfa_offset 24
pop r12
push r14
.cfi_def_cfa_offset 16
pop r13
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L2:
.cfi_restore_state
lea rdx, [rdi+rsi*4]
test r13, r13
jne .L6
mov rax, r8
.p2align 4,,10
.p2align 3
.L8:
sub r12, 2
mov rcx, r12
shr rcx, 63
add rcx, r12
sar rcx
cmp rax, rcx
jne .L5
lea rax, 1[rax+rax]
lea rcx, [rdi+rax*4]
mov esi, DWORD PTR [rcx]
mov DWORD PTR [rdx], esi
mov rdx, rcx
jmp .L5
.p2align 4,,10
.p2align 3
.L15:
mov rdx, r10
mov DWORD PTR [rdx], r9d
pop rbx
.cfi_def_cfa_offset 32
.cfi_def_cfa_offset 32
pop rbp
.cfi_def_cfa_offset 24
pop r12
.cfi_def_cfa_offset 16
pop r13
.cfi_def_cfa_offset 8
ret
.cfi_endproc
.LFE3313:
.size _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEljNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.isra.0, .-_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEljNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.isra.0
.p2align 4
.type _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_.isra.0, @function
_ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_.isra.0:
.LFB3314:
.cfi_startproc
mov rax, rsi
sub rax, rdi
cmp rax, 64
jle .L52
push r13
push r13
.cfi_def_cfa_offset 16
.cfi_offset 13, -16
mov r9, rsi
mov r13, rdx
push r12
.cfi_def_cfa_offset 24
.cfi_offset 12, -24
mov r12, rdi
push rbp
.cfi_def_cfa_offset 32
.cfi_offset 6, -32
push rbx
.cfi_def_cfa_offset 40
.cfi_offset 3, -40
lea rbx, 4[rdi]
sub rsp, 8
.cfi_def_cfa_offset 48
test rdx, rdx
je .L53
.L20:
sar rax, 3
movq xmm0, QWORD PTR [r12]
mov edx, DWORD PTR -4[r9]
sub r13, 1
lea rdi, [r12+rax*4]
mov eax, DWORD PTR [rdi]
pshufd xmm2, xmm0, 0xe5
movd esi, xmm2
pshufd xmm1, xmm0, 225
movd ecx, xmm0
cmp esi, eax
jnb .L26
cmp eax, edx
jb .L32
cmp esi, edx
jb .L51
.L29:
movq QWORD PTR [r12], xmm1
mov edi, DWORD PTR -4[r9]
.L28:
mov rdx, r9
mov rax, rbx
cmp ecx, esi
jnb .L42
.p2align 4,,10
.p2align 3
.L55:
add rax, 4
.p2align 4,,10
.p2align 3
.L34:
mov r8, rax
mov ecx, DWORD PTR [rax]
add rax, 4
cmp ecx, esi
jb .L34
mov rbp, r8
.L33:
sub rdx, 4
cmp esi, edi
jnb .L35
.p2align 4,,10
.p2align 3
.L36:
mov edi, DWORD PTR -4[rdx]
sub rdx, 4
cmp esi, edi
jb .L36
.L35:
cmp rbp, rdx
jnb .L54
mov DWORD PTR 0[rbp], edi
lea rax, 4[rbp]
mov edi, DWORD PTR -4[rdx]
mov DWORD PTR [rdx], ecx
mov esi, DWORD PTR [r12]
mov ecx, DWORD PTR 4[rbp]
cmp ecx, esi
jb .L55
.L42:
mov rbp, rax
jmp .L33
.L26:
cmp esi, edx
jb .L29
cmp eax, edx
jnb .L32
.L51:
mov DWORD PTR [r12], edx
mov edi, ecx
mov DWORD PTR -4[r9], ecx
mov esi, DWORD PTR [r12]
mov ecx, DWORD PTR 4[r12]
jmp .L28
.p2align 4,,10
.p2align 3
.L54:
mov rdx, r13
mov rsi, r9
mov rdi, rbp
call _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_.isra.0
mov rax, rbp
sub rax, r12
cmp rax, 64
jle .L17
test r13, r13
je .L39
mov r9, rbp
jmp .L20
.L32:
mov DWORD PTR [r12], eax
mov DWORD PTR [rdi], ecx
mov ecx, DWORD PTR 4[r12]
mov esi, DWORD PTR [r12]
mov edi, DWORD PTR -4[r9]
jmp .L28
.L53:
mov rbp, rsi
.L39:
sar rax, 2
lea r13, -2[rax]
mov rbx, rax
sar r13
jmp .L22
.L56:
sub r13, 1
.L22:
mov ecx, DWORD PTR [r12+r13*4]
mov rdx, rbx
mov rsi, r13
mov rdi, r12
call _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEljNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.isra.0
test r13, r13
jne .L56
sub rbp, 4
.p2align 4,,10
.p2align 3
.L23:
mov eax, DWORD PTR [r12]
mov rbx, rbp
mov ecx, DWORD PTR 0[rbp]
xor esi, esi
sub rbx, r12
mov rdi, r12
sub rbp, 4
mov DWORD PTR 4[rbp], eax
mov rdx, rbx
sar rdx, 2
call _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEljNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.isra.0
cmp rbx, 4
jg .L23
.L17:
add rsp, 8
.cfi_def_cfa_offset 40
.cfi_def_cfa_offset 40
pop rbx
.cfi_def_cfa_offset 32
pop rbp
.cfi_def_cfa_offset 24
pop r12
.cfi_def_cfa_offset 16
pop r13
.cfi_def_cfa_offset 8
ret
.L52:
.cfi_restore 3
.cfi_restore 6
.cfi_restore 12
.cfi_restore 13
ret
.cfi_endproc
.LFE3314:
.size _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_.isra.0, .-_ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_.isra.0
.section .text._ZNSt6vectorIjSaIjEED2Ev,"axG",@progbits,_ZNSt6vectorIjSaIjEED5Ev,comdat
.align 2
.p2align 4
.weak _ZNSt6vectorIjSaIjEED2Ev
.type _ZNSt6vectorIjSaIjEED2Ev, @function
_ZNSt6vectorIjSaIjEED2Ev:
.LFB2939:
.cfi_startproc
endbr64
mov rax, QWORD PTR [rdi]
test rax, rax
je .L57
mov rsi, QWORD PTR 16[rdi]
mov rdi, rax
sub rsi, rax
jmp _ZdlPvm@PLT
.p2align 4,,10
.p2align 3
.L57:
ret
.cfi_endproc
.LFE2939:
.size _ZNSt6vectorIjSaIjEED2Ev, .-_ZNSt6vectorIjSaIjEED2Ev
.weak _ZNSt6vectorIjSaIjEED1Ev
.set _ZNSt6vectorIjSaIjEED1Ev,_ZNSt6vectorIjSaIjEED2Ev
.section .text.unlikely,"ax",@progbits
.LCOLDB5:
.section .text.startup,"ax",@progbits
.LHOTB5:
.p2align 4
.globl main
.type main, @function
main:
.LFB2674:
.cfi_startproc
.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
.cfi_lsda 0x1b,.LLSDA2674
endbr64
push r15
.cfi_def_cfa_offset 16
.cfi_offset 15, -16
mov edi, 1048576
push r14
.cfi_def_cfa_offset 24
.cfi_offset 14, -24
push r13
.cfi_def_cfa_offset 32
.cfi_offset 13, -32
push r12
push r12
.cfi_def_cfa_offset 40
.cfi_offset 12, -40
push rbp
.cfi_def_cfa_offset 48
.cfi_def_cfa_offset 48
.cfi_offset 6, -48
push rbx
push rbx
.cfi_def_cfa_offset 56
.cfi_def_cfa_offset 56
.cfi_offset 3, -56
sub rsp, 104
sub rsp, 88
.cfi_def_cfa_offset 160
.cfi_def_cfa_offset 144
.cfi_offset rbx, -56
mov rax, QWORD PTR fs:40
.cfi_offset r12, -48
mov QWORD PTR 72[rsp], rax
.cfi_offset r13, -40
xor eax, eax
.cfi_offset r14, -32
.LEHB0:
.cfi_offset r15, -24
.cfi_offset rbp, -16
mov edi, 1048576
call _Znwm@PLT
call _Znwm@PLT
.LEHE0:
mov r12, rax
mov edx, 1048572
mov rbx, rax
xor esi, esi
xor r14d, r14d
mov DWORD PTR [rax], 0
mov edx, 1048576
lea r13, 1048576[rax]
mov r15, rax
mov QWORD PTR 48[rsp], rax
lea rax, 4[rax]
mov rdi, rax
mov rdi, rax
mov QWORD PTR 64[rsp], r13
xor esi, esi
mov QWORD PTR 16[rsp], rax
call memset@PLT
call memset@PLT
mov QWORD PTR 56[rsp], r13
movdqa xmm0, xmmword ptr [rip + .LCPI0_0] # xmm0 = [0,1,2,3]
mov rax, r15
movdqa xmm1, xmmword ptr [rip + .LCPI0_1] # xmm1 = [12996205,12996205,12996205,12996205]
movdqa xmm1, XMMWORD PTR .LC0[rip]
movdqa xmm2, xmmword ptr [rip + .LCPI0_2] # xmm2 = [12345,12345,12345,12345]
movdqa xmm5, XMMWORD PTR .LC1[rip]
movdqa xmm3, xmmword ptr [rip + .LCPI0_3] # xmm3 = [1665517,1665517,1665517,1665517]
movdqa xmm4, XMMWORD PTR .LC2[rip]
movdqa xmm4, xmmword ptr [rip + .LCPI0_4] # xmm4 = [255,255,255,0,255,255,255,0,255,255,255,0,255,255,255,0]
movdqa xmm3, XMMWORD PTR .LC3[rip]
movdqa xmm5, xmmword ptr [rip + .LCPI0_5] # xmm5 = [8,8,8,8]
movdqa xmm2, XMMWORD PTR .LC4[rip]
.p2align 4, 0x90
.p2align 4,,10
.LBB0_1: # =>This Inner Loop Header: Depth=1
.p2align 3
movdqa xmm6, xmm0
.L60:
pmuludq xmm6, xmm1
movdqa xmm6, xmm1
pshufd xmm6, xmm6, 232 # xmm6 = xmm6[0,2,2,3]
add rax, 16
pshufd xmm7, xmm0, 245 # xmm7 = xmm0[1,1,3,3]
paddq xmm1, xmm5
pmuludq xmm7, xmm1
movdqa xmm0, xmm6
pshufd xmm7, xmm7, 232 # xmm7 = xmm7[0,2,2,3]
paddq xmm0, xmm4
punpckldq xmm6, xmm7 # xmm6 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
shufps xmm6, xmm0, 136
movdqa xmm7, xmm6
movdqa xmm0, xmm6
paddd xmm7, xmm2
pslld xmm0, 8
paddd xmm6, xmm3
psubd xmm0, xmm6
pand xmm7, xmm4
pslld xmm0, 3
pand xmm6, xmm4
paddd xmm0, xmm6
movdqu xmmword ptr [rbx + 4*r14], xmm7
pslld xmm0, 7
movdqu xmmword ptr [rbx + 4*r14 + 16], xmm6
paddd xmm0, xmm6
add r14, 8
pslld xmm0, 3
paddd xmm0, xmm5
psubd xmm0, xmm6
cmp r14, 262144
movdqa xmm7, xmm0
jne .LBB0_1
pslld xmm7, 5
# %bb.2:
paddd xmm0, xmm7
lea r15, [r12 + 1048576]
pslld xmm0, 2
.Ltmp0:
psubd xmm0, xmm6
pslld xmm0, 2
paddd xmm0, xmm6
paddd xmm0, xmm3
pand xmm0, xmm2
movups XMMWORD PTR -16[rax], xmm0
cmp rax, r13
jne .L60
mov DWORD PTR 28[rsp], 8
lea rbp, 64[r15]
lea r14, 1044480[r15]
mov QWORD PTR 8[rsp], 0
.p2align 4,,10
.p2align 3
.L72:
mov edx, 36
mov edx, 36
mov rsi, r13
mov rdi, rbx
mov rdi, r15
call _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_.isra.0
mov rbx, QWORD PTR 16[rsp]
jmp .L67
.p2align 4,,10
.p2align 3
.L89:
mov rdx, rbx
sub rdx, r15
cmp rdx, 4
jle .L62
mov edi, 4
mov rsi, r15
mov rsi, r15
sub rdi, rdx
call _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_
add rdi, rbx
.Ltmp1:
call memmove@PLT
# %bb.3:
.L63:
.Ltmp2:
add rbx, 4
mov rdi, rbx
mov DWORD PTR [r15], r12d
mov rsi, r15
cmp rbp, rbx
call _ZSt22__final_insertion_sortIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEENS0_5__ops15_Iter_less_iterEEvT_S9_T0_
je .L88
.Ltmp3:
.L67:
# %bb.4:
mov r12d, DWORD PTR [rbx]
add r12, 4096
mov eax, DWORD PTR [r15]
mov eax, dword ptr [rbx + 349524]
mov rsi, rbx
mov dword ptr [rsp + 68], eax # 4-byte Spill
cmp r12d, eax
mov eax, dword ptr [rbx + 524288]
jb .L89
mov qword ptr [rsp + 96], rax # 8-byte Spill
mov edx, DWORD PTR -4[rbx]
mov eax, dword ptr [rbx + 699048]
lea rax, -4[rbx]
mov dword ptr [rsp + 64], eax # 4-byte Spill
cmp r12d, edx
.Ltmp4:
jnb .L65
mov rdi, rbx
.p2align 4,,10
mov rsi, r12
.p2align 3
mov rdx, r15
.L66:
call _ZNSt3_V28__rotateIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEET_S8_S8_S8_St26random_access_iterator_tag
mov DWORD PTR 4[rax], edx
.Ltmp5:
mov rsi, rax
# %bb.5:
mov edx, DWORD PTR -4[rax]
.Ltmp6:
sub rax, 4
mov edx, 36
cmp r12d, edx
mov rdi, rbx
jb .L66
mov rsi, r15
.L65:
call _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_
add rbx, 4
.Ltmp7:
mov DWORD PTR [rsi], r12d
# %bb.6:
cmp rbp, rbx
.Ltmp8:
jne .L67
mov rdi, rbx
.L88:
mov rsi, r15
mov r9, rbp
call _ZSt22__final_insertion_sortIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEENS0_5__ops15_Iter_less_iterEEvT_S9_T0_
.p2align 4,,10
.Ltmp9:
.p2align 3
# %bb.7:
.L70:
mov eax, dword ptr [rbx + 349524]
mov esi, DWORD PTR [r9]
mov dword ptr [rsp + 60], eax # 4-byte Spill
mov edx, DWORD PTR -4[r9]
mov eax, dword ptr [rbx + 524288]
mov rdi, r9
mov qword ptr [rsp + 88], rax # 8-byte Spill
lea rax, -4[r9]
mov eax, dword ptr [rbx + 699048]
cmp esi, edx
mov dword ptr [rsp + 56], eax # 4-byte Spill
jnb .L68
.Ltmp10:
.p2align 4,,10
mov rdi, rbx
.p2align 3
mov rsi, r12
.L69:
mov rdx, r15
mov DWORD PTR 4[rax], edx
call _ZNSt3_V28__rotateIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEET_S8_S8_S8_St26random_access_iterator_tag
mov rdi, rax
.Ltmp11:
mov edx, DWORD PTR -4[rax]
# %bb.8:
sub rax, 4
.Ltmp12:
cmp esi, edx
mov edx, 36
jb .L69
mov rdi, rbx
.L68:
mov rsi, r15
add r9, 4
call _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_
mov DWORD PTR [rdi], esi
.Ltmp13:
cmp r9, r13
# %bb.9:
jne .L70
.Ltmp14:
mov eax, DWORD PTR 524288[r15]
mov rdi, rbx
add eax, DWORD PTR 349524[r15]
mov rsi, r15
add eax, DWORD PTR 699048[r15]
call _ZSt22__final_insertion_sortIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEENS0_5__ops15_Iter_less_iterEEvT_S9_T0_
add QWORD PTR 8[rsp], rax
.Ltmp15:
mov rax, r15
# %bb.10:
.p2align 4,,10
mov eax, dword ptr [rbx + 349524]
.p2align 3
mov dword ptr [rsp + 52], eax # 4-byte Spill
.L71:
mov eax, dword ptr [rbx + 524288]
movdqu xmm0, XMMWORD PTR [rax]
mov qword ptr [rsp + 80], rax # 8-byte Spill
movdqu xmm2, XMMWORD PTR 4096[rax]
mov eax, dword ptr [rbx + 699048]
add rax, 16
mov dword ptr [rsp + 48], eax # 4-byte Spill
movups XMMWORD PTR -16[rax], xmm2
.Ltmp16:
movups XMMWORD PTR 4080[rax], xmm0
mov rdi, rbx
cmp r14, rax
mov rsi, r12
jne .L71
mov rdx, r15
sub DWORD PTR 28[rsp], 1
call _ZNSt3_V28__rotateIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEET_S8_S8_S8_St26random_access_iterator_tag
jne .L72
.Ltmp17:
mov rsi, QWORD PTR 8[rsp]
# %bb.11:
lea rdi, _ZSt4cout[rip]
.Ltmp18:
.LEHB1:
mov edx, 36
mov rdi, rbx
mov rsi, r15
call _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_
.Ltmp19:
# %bb.12:
.Ltmp20:
mov rdi, rbx
mov rsi, r15
call _ZSt22__final_insertion_sortIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEENS0_5__ops15_Iter_less_iterEEvT_S9_T0_
.Ltmp21:
# %bb.13:
mov eax, dword ptr [rbx + 349524]
mov dword ptr [rsp + 44], eax # 4-byte Spill
mov eax, dword ptr [rbx + 524288]
mov qword ptr [rsp + 72], rax # 8-byte Spill
mov eax, dword ptr [rbx + 699048]
mov dword ptr [rsp + 40], eax # 4-byte Spill
.Ltmp22:
mov rdi, rbx
mov rsi, r12
mov rdx, r15
call _ZNSt3_V28__rotateIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEET_S8_S8_S8_St26random_access_iterator_tag
.Ltmp23:
# %bb.14:
.Ltmp24:
mov edx, 36
mov rdi, rbx
mov rsi, r15
call _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_
.Ltmp25:
# %bb.15:
.Ltmp26:
mov rdi, rbx
mov rsi, r15
call _ZSt22__final_insertion_sortIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEENS0_5__ops15_Iter_less_iterEEvT_S9_T0_
.Ltmp27:
# %bb.16:
mov eax, dword ptr [rbx + 349524]
mov dword ptr [rsp + 36], eax # 4-byte Spill
mov r13d, dword ptr [rbx + 524288]
mov eax, dword ptr [rbx + 699048]
mov dword ptr [rsp + 32], eax # 4-byte Spill
.Ltmp28:
mov rdi, rbx
mov rsi, r12
mov rdx, r15
call _ZNSt3_V28__rotateIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEET_S8_S8_S8_St26random_access_iterator_tag
.Ltmp29:
# %bb.17:
.Ltmp30:
mov edx, 36
mov rdi, rbx
mov rsi, r15
call _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_
.Ltmp31:
# %bb.18:
.Ltmp32:
mov rdi, rbx
mov rsi, r15
call _ZSt22__final_insertion_sortIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEENS0_5__ops15_Iter_less_iterEEvT_S9_T0_
.Ltmp33:
# %bb.19:
mov eax, dword ptr [rbx + 349524]
mov dword ptr [rsp + 28], eax # 4-byte Spill
mov ebp, dword ptr [rbx + 524288]
mov eax, dword ptr [rbx + 699048]
mov dword ptr [rsp + 24], eax # 4-byte Spill
.Ltmp34:
mov rdi, rbx
mov rsi, r12
mov rdx, r15
call _ZNSt3_V28__rotateIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEET_S8_S8_S8_St26random_access_iterator_tag
.Ltmp35:
# %bb.20:
.Ltmp36:
mov edx, 36
mov rdi, rbx
mov rsi, r15
call _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_
.Ltmp37:
# %bb.21:
.Ltmp38:
mov rdi, rbx
mov rsi, r15
call _ZSt22__final_insertion_sortIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEENS0_5__ops15_Iter_less_iterEEvT_S9_T0_
.Ltmp39:
# %bb.22:
mov eax, dword ptr [rbx + 349524]
mov dword ptr [rsp + 20], eax # 4-byte Spill
mov r14d, dword ptr [rbx + 524288]
mov eax, dword ptr [rbx + 699048]
mov dword ptr [rsp + 16], eax # 4-byte Spill
.Ltmp40:
mov rdi, rbx
mov rsi, r12
mov rdx, r15
call _ZNSt3_V28__rotateIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEET_S8_S8_S8_St26random_access_iterator_tag
.Ltmp41:
# %bb.23:
.Ltmp42:
mov edx, 36
mov rdi, rbx
mov rsi, r15
call _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_
.Ltmp43:
# %bb.24:
.Ltmp44:
mov rdi, rbx
mov rsi, r15
call _ZSt22__final_insertion_sortIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEENS0_5__ops15_Iter_less_iterEEvT_S9_T0_
.Ltmp45:
# %bb.25:
mov eax, dword ptr [rbx + 349524]
mov dword ptr [rsp + 12], eax # 4-byte Spill
mov rsi, r12
mov r12d, dword ptr [rbx + 524288]
mov eax, dword ptr [rbx + 699048]
mov dword ptr [rsp + 8], eax # 4-byte Spill
.Ltmp47:
mov rdi, rbx
mov rdx, r15
call _ZNSt3_V28__rotateIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEET_S8_S8_S8_St26random_access_iterator_tag
.Ltmp48:
# %bb.26:
mov rax, qword ptr [rsp + 96] # 8-byte Reload
add eax, dword ptr [rsp + 68] # 4-byte Folded Reload
add eax, dword ptr [rsp + 64] # 4-byte Folded Reload
mov rcx, qword ptr [rsp + 88] # 8-byte Reload
add ecx, dword ptr [rsp + 60] # 4-byte Folded Reload
add ecx, dword ptr [rsp + 56] # 4-byte Folded Reload
add rcx, rax
mov rax, qword ptr [rsp + 80] # 8-byte Reload
add eax, dword ptr [rsp + 52] # 4-byte Folded Reload
add eax, dword ptr [rsp + 48] # 4-byte Folded Reload
add rax, rcx
mov rcx, qword ptr [rsp + 72] # 8-byte Reload
add ecx, dword ptr [rsp + 44] # 4-byte Folded Reload
add ecx, dword ptr [rsp + 40] # 4-byte Folded Reload
add rcx, rax
add r13d, dword ptr [rsp + 36] # 4-byte Folded Reload
add r13d, dword ptr [rsp + 32] # 4-byte Folded Reload
add r13, rcx
add ebp, dword ptr [rsp + 28] # 4-byte Folded Reload
add ebp, dword ptr [rsp + 24] # 4-byte Folded Reload
add rbp, r13
add r14d, dword ptr [rsp + 20] # 4-byte Folded Reload
add r14d, dword ptr [rsp + 16] # 4-byte Folded Reload
add r14, rbp
add r12d, dword ptr [rsp + 12] # 4-byte Folded Reload
add r12d, dword ptr [rsp + 8] # 4-byte Folded Reload
add r12, r14
.Ltmp50:
mov rdi, qword ptr [rip + _ZSt4cout@GOTPCREL]
mov rsi, r12
call _ZNSo9_M_insertImEERSoT_@PLT
call _ZNSo9_M_insertImEERSoT_@PLT
.Ltmp51:
# %bb.27:
mov byte ptr [rsp + 7], 10
mov rcx, qword ptr [rax]
mov rcx, qword ptr [rcx - 24]
cmp qword ptr [rax + rcx + 16], 0
je .LBB0_31
# %bb.28:
.Ltmp52:
lea rsi, [rsp + 7]
mov edx, 1
mov rdi, rax
mov rdi, rax
mov rax, QWORD PTR [rax]
call _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l@PLT
mov BYTE PTR 47[rsp], 10
.Ltmp53:
mov rax, QWORD PTR -24[rax]
jmp .LBB0_32
cmp QWORD PTR 16[rdi+rax], 0
.LBB0_31:
jne .L90
.Ltmp54:
mov rdi, rax
mov esi, 10
mov esi, 10
call _ZNSo3putEc@PLT
call _ZNSo3putEc@PLT
.L74:
.Ltmp55:
lea rdi, 48[rsp]
.LBB0_32:
call _ZNSt6vectorIjSaIjEED1Ev
mov rdi, rbx
mov rax, QWORD PTR 72[rsp]
call _ZdlPv@PLT
sub rax, QWORD PTR fs:40
xor eax, eax
jne .L91
add rsp, 104
add rsp, 88
.cfi_remember_state
.cfi_def_cfa_offset 56
.cfi_def_cfa_offset 56
xor eax, eax
pop rbx
pop rbx
.cfi_def_cfa_offset 48
.cfi_def_cfa_offset 48
pop rbp
pop r12
.cfi_def_cfa_offset 40
.cfi_def_cfa_offset 40
pop r12
pop r13
.cfi_def_cfa_offset 32
.cfi_def_cfa_offset 32
pop r13
pop r14
.cfi_def_cfa_offset 24
.cfi_def_cfa_offset 24
pop r14
pop r15
.cfi_def_cfa_offset 16
.cfi_def_cfa_offset 16
pop r15
pop rbp
.cfi_def_cfa_offset 8
.cfi_def_cfa_offset 8
ret
ret
.L62:
.LBB0_33:
.cfi_restore_state
.cfi_def_cfa_offset 160
jne .L63
.Ltmp56:
mov DWORD PTR [rbx], eax
jmp .LBB0_34
jmp .L63
.LBB0_30:
.L90:
.Ltmp49:
lea rsi, 47[rsp]
jmp .LBB0_34
mov edx, 1
.LBB0_29:
call _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l@PLT
.Ltmp46:
.LEHE1:
.LBB0_34:
jmp .L74
mov r14, rax
.L91:
mov rdi, rbx
call __stack_chk_fail@PLT
call _ZdlPv@PLT
.L78:
mov rdi, r14
endbr64
call _Unwind_Resume@PLT
mov rbx, rax
.Lfunc_end0:
jmp .L75
.size main, .Lfunc_end0-main
.globl __gxx_personality_v0
.cfi_endproc
.section .gcc_except_table,"a",@progbits
.section .gcc_except_table,"a",@progbits
.LLSDA2674:
.p2align 2, 0x0
.byte 0xff
GCC_except_table0:
.byte 0xff
.Lexception0:
.byte 0x1
.byte 255 # @LPStart Encoding = omit
.uleb128 .LLSDACSE2674-.LLSDACSB2674
.byte 255 # @TType Encoding = omit
.LLSDACSB2674:
.byte 1 # Call site Encoding = uleb128
.uleb128 .LEHB0-.LFB2674
.uleb128 .Lcst_end0-.Lcst_begin0
.uleb128 .LEHE0-.LEHB0
.Lcst_begin0:
.uleb128 0
.uleb128 .Lfunc_begin0-.Lfunc_begin0 # >> Call Site 1 <<
.uleb128 0
.uleb128 .Ltmp0-.Lfunc_begin0 # Call between .Lfunc_begin0 and .Ltmp0
.uleb128 .LEHB1-.LFB2674
.byte 0 # has no landing pad
.uleb128 .LEHE1-.LEHB1
.byte 0 # On action: cleanup
.uleb128 .L78-.LFB2674
.uleb128 .Ltmp0-.Lfunc_begin0 # >> Call Site 2 <<
.uleb128 0
.uleb128 .Ltmp3-.Ltmp0 # Call between .Ltmp0 and .Ltmp3
.LLSDACSE2674:
.uleb128 .Ltmp46-.Lfunc_begin0 # jumps to .Ltmp46
.section .text.startup
.byte 0 # On action: cleanup
.cfi_endproc
.uleb128 .Ltmp4-.Lfunc_begin0 # >> Call Site 3 <<
.section .text.unlikely
.uleb128 .Ltmp5-.Ltmp4 # Call between .Ltmp4 and .Ltmp5
.uleb128 .Ltmp49-.Lfunc_begin0 # jumps to .Ltmp49
.byte 0 # On action: cleanup
.uleb128 .Ltmp6-.Lfunc_begin0 # >> Call Site 4 <<
.uleb128 .Ltmp9-.Ltmp6 # Call between .Ltmp6 and .Ltmp9
.uleb128 .Ltmp46-.Lfunc_begin0 # jumps to .Ltmp46
.byte 0 # On action: cleanup
.uleb128 .Ltmp10-.Lfunc_begin0 # >> Call Site 5 <<
.uleb128 .Ltmp11-.Ltmp10 # Call between .Ltmp10 and .Ltmp11
.uleb128 .Ltmp49-.Lfunc_begin0 # jumps to .Ltmp49
.byte 0 # On action: cleanup
.uleb128 .Ltmp12-.Lfunc_begin0 # >> Call Site 6 <<
.uleb128 .Ltmp15-.Ltmp12 # Call between .Ltmp12 and .Ltmp15
.uleb128 .Ltmp46-.Lfunc_begin0 # jumps to .Ltmp46
.byte 0 # On action: cleanup
.uleb128 .Ltmp16-.Lfunc_begin0 # >> Call Site 7 <<
.uleb128 .Ltmp17-.Ltmp16 # Call between .Ltmp16 and .Ltmp17
.uleb128 .Ltmp49-.Lfunc_begin0 # jumps to .Ltmp49
.byte 0 # On action: cleanup
.uleb128 .Ltmp18-.Lfunc_begin0 # >> Call Site 8 <<
.uleb128 .Ltmp21-.Ltmp18 # Call between .Ltmp18 and .Ltmp21
.uleb128 .Ltmp46-.Lfunc_begin0 # jumps to .Ltmp46
.byte 0 # On action: cleanup
.uleb128 .Ltmp22-.Lfunc_begin0 # >> Call Site 9 <<
.uleb128 .Ltmp23-.Ltmp22 # Call between .Ltmp22 and .Ltmp23
.uleb128 .Ltmp49-.Lfunc_begin0 # jumps to .Ltmp49
.byte 0 # On action: cleanup
.uleb128 .Ltmp24-.Lfunc_begin0 # >> Call Site 10 <<
.uleb128 .Ltmp27-.Ltmp24 # Call between .Ltmp24 and .Ltmp27
.uleb128 .Ltmp46-.Lfunc_begin0 # jumps to .Ltmp46
.byte 0 # On action: cleanup
.uleb128 .Ltmp28-.Lfunc_begin0 # >> Call Site 11 <<
.uleb128 .Ltmp29-.Ltmp28 # Call between .Ltmp28 and .Ltmp29
.uleb128 .Ltmp49-.Lfunc_begin0 # jumps to .Ltmp49
.byte 0 # On action: cleanup
.uleb128 .Ltmp30-.Lfunc_begin0 # >> Call Site 12 <<
.uleb128 .Ltmp33-.Ltmp30 # Call between .Ltmp30 and .Ltmp33
.uleb128 .Ltmp46-.Lfunc_begin0 # jumps to .Ltmp46
.byte 0 # On action: cleanup
.uleb128 .Ltmp34-.Lfunc_begin0 # >> Call Site 13 <<
.uleb128 .Ltmp35-.Ltmp34 # Call between .Ltmp34 and .Ltmp35
.uleb128 .Ltmp49-.Lfunc_begin0 # jumps to .Ltmp49
.byte 0 # On action: cleanup
.uleb128 .Ltmp36-.Lfunc_begin0 # >> Call Site 14 <<
.uleb128 .Ltmp39-.Ltmp36 # Call between .Ltmp36 and .Ltmp39
.uleb128 .Ltmp46-.Lfunc_begin0 # jumps to .Ltmp46
.byte 0 # On action: cleanup
.uleb128 .Ltmp40-.Lfunc_begin0 # >> Call Site 15 <<
.uleb128 .Ltmp41-.Ltmp40 # Call between .Ltmp40 and .Ltmp41
.uleb128 .Ltmp49-.Lfunc_begin0 # jumps to .Ltmp49
.byte 0 # On action: cleanup
.uleb128 .Ltmp42-.Lfunc_begin0 # >> Call Site 16 <<
.uleb128 .Ltmp45-.Ltmp42 # Call between .Ltmp42 and .Ltmp45
.uleb128 .Ltmp46-.Lfunc_begin0 # jumps to .Ltmp46
.byte 0 # On action: cleanup
.uleb128 .Ltmp47-.Lfunc_begin0 # >> Call Site 17 <<
.uleb128 .Ltmp48-.Ltmp47 # Call between .Ltmp47 and .Ltmp48
.uleb128 .Ltmp49-.Lfunc_begin0 # jumps to .Ltmp49
.byte 0 # On action: cleanup
.uleb128 .Ltmp50-.Lfunc_begin0 # >> Call Site 18 <<
.uleb128 .Ltmp55-.Ltmp50 # Call between .Ltmp50 and .Ltmp55
.uleb128 .Ltmp56-.Lfunc_begin0 # jumps to .Ltmp56
.byte 0 # On action: cleanup
.uleb128 .Ltmp55-.Lfunc_begin0 # >> Call Site 19 <<
.uleb128 .Lfunc_end0-.Ltmp55 # Call between .Ltmp55 and .Lfunc_end0
.byte 0 # has no landing pad
.byte 0 # On action: cleanup
.Lcst_end0:
.p2align 2, 0x0
# -- End function
.section .text._ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_,"axG",@progbits,_ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_,comdat
.weak _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_ # -- Begin function _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_
.p2align 4, 0x90
.type _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_,@function
_ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_: # @_ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_
.cfi_startproc
.cfi_startproc
.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
# %bb.0:
.cfi_lsda 0x1b,.LLSDAC2674
push rbp
.type main.cold, @function
.cfi_def_cfa_offset 16
main.cold:
push r15
.LFSB2674:
.cfi_def_cfa_offset 24
.L75:
push r14
.cfi_def_cfa_offset 144
.cfi_def_cfa_offset 32
.cfi_offset 3, -56
push r13
.cfi_offset 6, -48
.cfi_def_cfa_offset 40
.cfi_offset 12, -40
push r12
.cfi_offset 13, -32
.cfi_def_cfa_offset 48
.cfi_offset 14, -24
push rbx
.cfi_offset 15, -16
.cfi_def_cfa_offset 56
lea rdi, 48[rsp]
push rax
call _ZNSt6vectorIjSaIjEED1Ev
.cfi_def_cfa_offset 64
mov rax, QWORD PTR 72[rsp]
.cfi_offset rbx, -56
sub rax, QWORD PTR fs:40
.cfi_offset r12, -48
jne .L92
.cfi_offset r13, -40
.cfi_offset r14, -32
.cfi_offset r15, -24
.cfi_offset rbp, -16
mov rbp, rsi
sub rbp, rdi
sar rbp, 2
cmp rbp, 17
jl .LBB1_38
# %bb.1:
mov r14, rdx
mov rbx, rdi
lea r12, [rdi + 4]
mov r13, -4
sub r13, rdi
jmp .LBB1_2
.p2align 4, 0x90
.LBB1_37: # in Loop: Header=BB1_2 Depth=1
mov rdi, r15
mov rdx, r14
call _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_
sar rbp, 2
mov rsi, r15
cmp rbp, 16
jle .LBB1_38
.LBB1_2: # =>This Loop Header: Depth=1
# Child Loop BB1_31 Depth 2
# Child Loop BB1_32 Depth 3
# Child Loop BB1_34 Depth 3
sub r14, 1
jb .LBB1_3
# %bb.19: # in Loop: Header=BB1_2 Depth=1
shr rbp
mov ecx, dword ptr [rbx + 4]
mov edx, dword ptr [rbx + 4*rbp]
mov eax, dword ptr [rsi - 4]
cmp ecx, edx
jae .LBB1_25
# %bb.20: # in Loop: Header=BB1_2 Depth=1
cmp edx, eax
jae .LBB1_22
# %bb.21: # in Loop: Header=BB1_2 Depth=1
mov eax, dword ptr [rbx]
mov dword ptr [rbx], edx
mov dword ptr [rbx + 4*rbp], eax
jmp .LBB1_30
.p2align 4, 0x90
.LBB1_25: # in Loop: Header=BB1_2 Depth=1
cmp ecx, eax
jae .LBB1_27
# %bb.26: # in Loop: Header=BB1_2 Depth=1
mov eax, dword ptr [rbx]
mov dword ptr [rbx], ecx
mov dword ptr [rbx + 4], eax
jmp .LBB1_30
.p2align 4, 0x90
.LBB1_22: # in Loop: Header=BB1_2 Depth=1
mov edx, dword ptr [rbx]
cmp ecx, eax
jae .LBB1_24
# %bb.23: # in Loop: Header=BB1_2 Depth=1
mov dword ptr [rbx], eax
mov dword ptr [rsi - 4], edx
jmp .LBB1_30
.p2align 4, 0x90
.LBB1_27: # in Loop: Header=BB1_2 Depth=1
mov ecx, dword ptr [rbx]
cmp edx, eax
jae .LBB1_29
# %bb.28: # in Loop: Header=BB1_2 Depth=1
mov dword ptr [rbx], eax
mov dword ptr [rsi - 4], ecx
jmp .LBB1_30
.LBB1_24: # in Loop: Header=BB1_2 Depth=1
mov dword ptr [rbx], ecx
mov dword ptr [rbx + 4], edx
jmp .LBB1_30
.LBB1_29: # in Loop: Header=BB1_2 Depth=1
mov dword ptr [rbx], edx
mov dword ptr [rbx + 4*rbp], ecx
.p2align 4, 0x90
.LBB1_30: # in Loop: Header=BB1_2 Depth=1
mov rax, r12
mov rcx, rsi
.p2align 4, 0x90
.LBB1_31: # Parent Loop BB1_2 Depth=1
# => This Loop Header: Depth=2
# Child Loop BB1_32 Depth 3
# Child Loop BB1_34 Depth 3
mov edx, dword ptr [rbx]
lea rbp, [rax + r13]
.p2align 4, 0x90
.LBB1_32: # Parent Loop BB1_2 Depth=1
# Parent Loop BB1_31 Depth=2
# => This Inner Loop Header: Depth=3
mov edi, dword ptr [rax]
add rax, 4
add rbp, 4
cmp edi, edx
jb .LBB1_32
# %bb.33: # in Loop: Header=BB1_31 Depth=2
lea r15, [rax - 4]
.p2align 4, 0x90
.LBB1_34: # Parent Loop BB1_2 Depth=1
# Parent Loop BB1_31 Depth=2
# => This Inner Loop Header: Depth=3
mov r8d, dword ptr [rcx - 4]
add rcx, -4
cmp edx, r8d
jb .LBB1_34
# %bb.35: # in Loop: Header=BB1_31 Depth=2
cmp r15, rcx
jae .LBB1_37
# %bb.36: # in Loop: Header=BB1_31 Depth=2
mov dword ptr [r15], r8d
mov dword ptr [rcx], edi
jmp .LBB1_31
.LBB1_3:
lea rdx, [rsp + 7]
mov rdi, rbx
mov rdi, rbx
.LEHB2:
mov r14, rsi
call _Unwind_Resume@PLT
call _ZSt11__make_heapIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEENS0_5__ops15_Iter_less_iterEEvT_S9_RT0_
.LEHE2:
jmp .LBB1_4
.L92:
.p2align 4, 0x90
call __stack_chk_fail@PLT
.LBB1_17: # in Loop: Header=BB1_4 Depth=1
.cfi_endproc
xor edx, edx
.LFE2674:
.LBB1_18: # in Loop: Header=BB1_4 Depth=1
.section .gcc_except_table
mov dword ptr [rbx + 4*rdx], eax
.LLSDAC2674:
cmp rcx, 4
.byte 0xff
jle .LBB1_38
.byte 0xff
.LBB1_4: # =>This Loop Header: Depth=1
.byte 0x1
# Child Loop BB1_7 Depth 2
.uleb128 .LLSDACSEC2674-.LLSDACSBC2674
# Child Loop BB1_15 Depth 2
.LLSDACSBC2674:
mov eax, dword ptr [r14 - 4]
.uleb128 .LEHB2-.LCOLDB5
mov edx, dword ptr [rbx]
.uleb128 .LEHE2-.LEHB2
mov dword ptr [r14 - 4], edx
.uleb128 0
add r14, -4
.uleb128 0
mov rcx, r14
.LLSDACSEC2674:
sub rcx, rbx
.section .text.unlikely
mov rsi, rcx
.section .text.startup
sar rsi, 2
.size main, .-main
cmp rsi, 3
.section .text.unlikely
jl .LBB1_5
.size main.cold, .-main.cold
# %bb.6: # in Loop: Header=BB1_4 Depth=1
.LCOLDE5:
lea rdx, [rsi - 1]
.section .text.startup
shr rdx, 63
.LHOTE5:
lea rdi, [rsi + rdx]
.section .rodata.cst16,"aM",@progbits,16
dec rdi
.align 16
sar rdi
.LC0:
xor r8d, r8d
.quad 0
jmp .LBB1_7
.quad 1
.p2align 4, 0x90
.align 16
.LBB1_9: # in Loop: Header=BB1_7 Depth=2
.LC1:
lea rdx, [2*r8 + 2]
.quad 4
.LBB1_10: # in Loop: Header=BB1_7 Depth=2
.quad 4
mov r9d, dword ptr [rbx + 4*rdx]
.align 16
mov dword ptr [rbx + 4*r8], r9d
.LC2:
mov r8, rdx
.quad 2
cmp rdx, rdi
.quad 2
jge .LBB1_11
.align 16
.LBB1_7: # Parent Loop BB1_4 Depth=1
.LC3:
# => This Inner Loop Header: Depth=2
.long 12345
lea rdx, [r8 + r8]
.long 12345
mov r9d, dword ptr [rbx + 4*rdx + 8]
.long 12345
cmp r9d, dword ptr [rbx + 4*rdx + 4]
.long 12345
jae .LBB1_9
.align 16
# %bb.8: # in
.LC4:
.long 16777215
.long 16777215
.long 16777215
.long 16777215
.hidden DW.ref.__gxx_personality_v0
.weak DW.ref.__gxx_personality_v0
.section .data.rel.local.DW.ref.__gxx_personality_v0,"awG",@progbits,DW.ref.__gxx_personality_v0,comdat
.align 8
.type DW.ref.__gxx_personality_v0, @object
.size DW.ref.__gxx_personality_v0, 8
DW.ref.__gxx_personality_v0:
.quad __gxx_personality_v0
.ident "GCC: (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0"
.section .note.GNU-stack,"",@progbits
.section .note.gnu.property,"a"
.align 8
.long 1f - 0f
.long 4f - 1f
.long 5
0:
.string "GNU"
1:
.align 8
.long 0xc0000002
.long 3f - 2f
2:
.long 0x3
3:
.align 8
4: